Bug#619186: Fix multiarch FHS exception for i386 in light of recent discussions

2011-03-21 Thread Aurelien Jarno
On Mon, Mar 21, 2011 at 02:34:36PM -0700, Steve Langasek wrote:
> Package: debian-policy
> Version: 3.9.1.0
> Severity: normal
> Tags: patch
> User: debian-pol...@packages.debian.org
> Usertags: normative
> 
> Hi guys,
> 
> Attached is a patch to update policy's FHS exception to reflect the current
> consensus among the gcc, eglibc, and dpkg maintainers around the paths to
> use for implementation and the interface packages should use to query these
> paths.
> 
> Cc:ing the respective maintainer mailing lists for sign-off.
> 
> Thanks,
> -- 
> Steve Langasek   Give me a lever long enough and a Free OS
> Debian Developer   to set it on, and I can move the world.
> Ubuntu Developerhttp://www.debian.org/
> slanga...@ubuntu.com vor...@debian.org

> From 1f0f1281c53701e2fe549ed9f80a265ebcd9282a Mon Sep 17 00:00:00 2001
> From: Steve Langasek 
> Date: Mon, 21 Mar 2011 02:17:14 -0700
> Subject: [PATCH] Fix multiarch FHS exception for i386 in light of recent 
> discussions
> 
> The current value of DEB_HOST_GNU_TYPE on i386 is unsuitable for
> cross-distro standardization, because it varies according to the default CPU
> target of the toolchain.  Discussion with the toolchain and dpkg maintainers
> yielded an alternative solution, a new dpkg-architecture variable
> DEB_HOST_MULTIARCH which is committed to dpkg upstream in commit
> af3153d09aa3ed5597d6d415e5ab7cc3ba972e7c and will be included in the upload
> of dpkg 1.16.0.  Update Policy to document this new requirement for
> multiarch.
> ---
>  policy.sgml  |4 ++--
>  upgrading-checklist.sgml |7 +++
>  2 files changed, 9 insertions(+), 2 deletions(-)
> 
> diff --git a/policy.sgml b/policy.sgml
> index 6e04c81..c708a18 100644
> --- a/policy.sgml
> +++ b/policy.sgml
> @@ -6027,13 +6027,13 @@ install -m644 debian/shlibs.package 
> debian/package/DEBIAN/
>/lib/triplet and
>/usr/lib/triplet, where
>triplet is the value returned by
> -  dpkg-architecture -qDEB_HOST_GNU_TYPE for the
> +  dpkg-architecture -qDEB_HOST_MULTIARCH for the
>architecture of the package.  Packages may not
>install files to any triplet path other
>than the one matching the architecture of that package;
>for instance, an Architecture: amd64 package
>containing 32-bit x86 libraries may not install these
> -  libraries to /usr/lib/i486-linux-gnu.
> +  libraries to /usr/lib/i386-linux-gnu.
>
>  This is necessary in order to reserve the directories for
>  use in cross-installation of library packages from other
> diff --git a/upgrading-checklist.sgml b/upgrading-checklist.sgml
> index e696077..2138b5c 100644
> --- a/upgrading-checklist.sgml
> +++ b/upgrading-checklist.sgml
> @@ -58,6 +58,13 @@ Unreleased.
>that install /usr/bin/mailx and implement at least the
>POSIX-required interface.
>
> +9.1.1
> +  Packages installing to architecture-specific subdirectories of
> +  /url/lib must use the value returned by
> +  dpkg-architecture -qDEB_HOST_MULTIARCH, not by
> +  dpkg-architecture -qDEB_HOST_GNU_TYPE; this is a path change
> +  on i386 architectures and a no-op for other architectures.
> +  
>  
>  
>   Version 3.9.1.0
> -- 
> 1.7.1
> 

Signed-off-by: Aurelien Jarno 

-- 
Aurelien Jarno  GPG: 1024D/F1BCDB73
aurel...@aurel32.net http://www.aurel32.net


signature.asc
Description: Digital signature


Bug#619186: Fix multiarch FHS exception for i386 in light of recent discussions

2011-03-21 Thread Steve Langasek
Package: debian-policy
Version: 3.9.1.0
Severity: normal
Tags: patch
User: debian-pol...@packages.debian.org
Usertags: normative

Hi guys,

Attached is a patch to update policy's FHS exception to reflect the current
consensus among the gcc, eglibc, and dpkg maintainers around the paths to
use for implementation and the interface packages should use to query these
paths.

Cc:ing the respective maintainer mailing lists for sign-off.

Thanks,
-- 
Steve Langasek   Give me a lever long enough and a Free OS
Debian Developer   to set it on, and I can move the world.
Ubuntu Developerhttp://www.debian.org/
slanga...@ubuntu.com vor...@debian.org
From 1f0f1281c53701e2fe549ed9f80a265ebcd9282a Mon Sep 17 00:00:00 2001
From: Steve Langasek 
Date: Mon, 21 Mar 2011 02:17:14 -0700
Subject: [PATCH] Fix multiarch FHS exception for i386 in light of recent discussions

The current value of DEB_HOST_GNU_TYPE on i386 is unsuitable for
cross-distro standardization, because it varies according to the default CPU
target of the toolchain.  Discussion with the toolchain and dpkg maintainers
yielded an alternative solution, a new dpkg-architecture variable
DEB_HOST_MULTIARCH which is committed to dpkg upstream in commit
af3153d09aa3ed5597d6d415e5ab7cc3ba972e7c and will be included in the upload
of dpkg 1.16.0.  Update Policy to document this new requirement for
multiarch.
---
 policy.sgml  |4 ++--
 upgrading-checklist.sgml |7 +++
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/policy.sgml b/policy.sgml
index 6e04c81..c708a18 100644
--- a/policy.sgml
+++ b/policy.sgml
@@ -6027,13 +6027,13 @@ install -m644 debian/shlibs.package debian/package/DEBIAN/
   /lib/triplet and
   /usr/lib/triplet, where
   triplet is the value returned by
-  dpkg-architecture -qDEB_HOST_GNU_TYPE for the
+  dpkg-architecture -qDEB_HOST_MULTIARCH for the
   architecture of the package.  Packages may not
   install files to any triplet path other
   than the one matching the architecture of that package;
   for instance, an Architecture: amd64 package
   containing 32-bit x86 libraries may not install these
-  libraries to /usr/lib/i486-linux-gnu.
+  libraries to /usr/lib/i386-linux-gnu.
   
 This is necessary in order to reserve the directories for
 use in cross-installation of library packages from other
diff --git a/upgrading-checklist.sgml b/upgrading-checklist.sgml
index e696077..2138b5c 100644
--- a/upgrading-checklist.sgml
+++ b/upgrading-checklist.sgml
@@ -58,6 +58,13 @@ Unreleased.
   that install /usr/bin/mailx and implement at least the
   POSIX-required interface.
   
+9.1.1
+  Packages installing to architecture-specific subdirectories of
+  /url/lib must use the value returned by
+  dpkg-architecture -qDEB_HOST_MULTIARCH, not by
+  dpkg-architecture -qDEB_HOST_GNU_TYPE; this is a path change
+  on i386 architectures and a no-op for other architectures.
+  
 
 
  Version 3.9.1.0
-- 
1.7.1



signature.asc
Description: Digital signature


Bug#591791: Bug#619093: splashy and systemd: error when trying to install together

2011-03-21 Thread Michael Biebl
Hi Steve!

Am 21.03.2011 18:58, schrieb Steve Langasek:
> On Mon, Mar 21, 2011 at 11:30:06AM +0100, Michael Biebl wrote:

> 
> Right, in the policy proposal I am describing that each init script is
> responsible for checking this.  But the actual *implementation* of this
> check can and should use a common shell library to do the heavy lifting.
> Sorry, I didn't think that specifying that belonged in policy.  Do you think
> the use of a common shell library should be enforced in policy as part of
> this?

I do think it would make sense to agree on the name of such a shell library and
at least mention and recommend it in the policy text.
My concern is that if we don't encourage a common shell lib we get all sorts of
inconsistencies and if we need to make adjustments later on (return codes etc)
it's much easier to do it in one place.


>> I'd much prefer if we could use the /lib/lsb/init-functions lib to do the
>> same kind of redirecting for upstart.  That is, all a package needs to do
>> if it ships a native upstart job (or systemd service), is to include .
>> /lib/lsb/init-functions in its sysv init script.  lib/lsb/init-functions
>> /would then do the correct thing, when it is run under
>> systemd or upstart.
> 
>> Steve, do you think this would be an approach that works for upstart (and
>> Ubuntu)?
> 
> I hadn't thought about having /lib/lsb/init-functions automatically do this
> checking when sourced.  I think on some level the idea offends me, the same
> way having C libraries call setuid() or exit() offends me. :)  Also, this
> check is only needed for those packages that *ship* an upstart job, and
> surely those packages know who they are and can handle the conversion easily
> enough if we give them a function to call?

True. The current version of upstart does not (yet) natively support SysV init
scripts, and relies on /etc/init.d/rc to start those services. SysV services in
upstart don't run under the supervision of upstart.
In systemd the situation is a bit different, as SysV init scripts are basically
just another configuration source and we also want to start SysV services under
the supervision of systemd.
I remember though Scott saying though that "native" SysV support was planned in
upstart. So I'm just thinking ahead a bit.
Using /lib/lsb/init-functions has the huge advantage that we already have a
pretty good coverage of SysV init scripts using it (~70 %), which don't need to
be changed to support this redirection scheme.

For upstart with its current features, the shell lib would only redirect the
call to initctl/upstart if if finds a upstart job with the same name as the SysV
init script and would be a nop otherwise.

Regarding the redirection scheme and your loathing of exit, how would you
envision such an interface should look like?

Cheers,
Michael

-- 
Why is it that all of the instruments seeking intelligent life in the
universe are pointed away from Earth?



signature.asc
Description: OpenPGP digital signature


Bug#591791: Bug#619093: splashy and systemd: error when trying to install together

2011-03-21 Thread Steve Langasek
Hi Michael,

On Mon, Mar 21, 2011 at 11:30:06AM +0100, Michael Biebl wrote:

> So, in #591791 Steve proposed that packages should continue to ship sysv
> init script, regardless if they have a native upstart job or not, and I
> basically agree with that.

> What I don't like about the proposal in #591791 is, that each sysv init
> script should check itself, if it is run under upstart and exit.

> This means we duplicate a lot of code and add upstart specific interna to
> every init script shipping a native upstart job.

Right, in the policy proposal I am describing that each init script is
responsible for checking this.  But the actual *implementation* of this
check can and should use a common shell library to do the heavy lifting.
Sorry, I didn't think that specifying that belonged in policy.  Do you think
the use of a common shell library should be enforced in policy as part of
this?

> I'd much prefer if we could use the /lib/lsb/init-functions lib to do the
> same kind of redirecting for upstart.  That is, all a package needs to do
> if it ships a native upstart job (or systemd service), is to include .
> /lib/lsb/init-functions in its sysv init script.  lib/lsb/init-functions
> /would then do the correct thing, when it is run under
> systemd or upstart.

> Steve, do you think this would be an approach that works for upstart (and
> Ubuntu)?

I hadn't thought about having /lib/lsb/init-functions automatically do this
checking when sourced.  I think on some level the idea offends me, the same
way having C libraries call setuid() or exit() offends me. :)  Also, this
check is only needed for those packages that *ship* an upstart job, and
surely those packages know who they are and can handle the conversion easily
enough if we give them a function to call?

-- 
Steve Langasek   Give me a lever long enough and a Free OS
Debian Developer   to set it on, and I can move the world.
Ubuntu Developerhttp://www.debian.org/
slanga...@ubuntu.com vor...@debian.org


signature.asc
Description: Digital signature


Bug#591791: Bug#619093: splashy and systemd: error when trying to install together

2011-03-21 Thread Michael Biebl
Am 21.03.2011 10:56, schrieb Michael Biebl:
> Am 21.03.2011 08:07, schrieb Ralf Treinen:
> 
>> Here is a list of files that are known to be shared by both packages
>> (according to the Contents file for sid/amd64, which may be
>> slightly out of sync):
>>
>>   /etc/lsb-base-logging.sh
> 
> The two packages don't share any kind of functionality in
> /etc/lsb-base-logging.sh, so an alternatives approach or a simple Replaces 
> won't
> work.
> 
> splashy uses it to overwrite the logging calls, systemd to redirect the 
> complete
> script to systemd, i.e. a call to
> /etc/init.d/ 
> translates into
> systemctl  
> 
> One might argue, that /etc/lsb-base-logging.sh is not the best place for that,
> and I wouldn't disagree. Unfortunately there is afaik currently no better 
> place
> to hook into the lsb init functions library.
> 
> So I guess it's best if we move the systemd bits directly into lsb-base itself
> and use a Conflicts against splashy until this is done.
> 
> Chris, would you be ok with shipping the functionality of the systemd lsb init
> hook [1] in lsb-base (/lib/lsb/init-functions) itself?
> 
> 
> [1]
> http://git.err.no/cgi-bin/gitweb.cgi?p=systemd;a=blob;f=debian/lsb-base-logging.sh;h=2998bdbb37df219e73e149b4b45ee400a9870a30;hb=refs/heads/debian

I think this also affects #591791, so I CCed Steve and the debian-policy bug.

Our original idea for upstart and sysv compatibility was, that packages shipping
native upstart jobs would ship a symlink from
/etc/init.d/foo → /lib/init/upstart-job, which translates it to initctl/upstart
calls.

This approach works, if you can rely on upstart being installed, which on
Debian, especially on kfreebsd is not the case, so this idea never really took 
of.

So, in #591791 Steve proposed that packages should continue to ship sysv init
script, regardless if they have a native upstart job or not, and I basically
agree with that.
What I don't like about the proposal in #591791 is, that each sysv init script
should check itself, if it is run under upstart and exit.

This means we duplicate a lot of code and add upstart specific interna to every
init script shipping a native upstart job.

I'd much prefer if we could use the /lib/lsb/init-functions lib to do the same
kind of redirecting for upstart. That is, all a package needs to do if it ships
a native upstart job (or systemd service), is to include .
/lib/lsb/init-functions in its sysv init script.
/lib/lsb/init-functions would then do the correct thing, when it is run under
systemd or upstart.

Steve, do you think this would be an approach that works for upstart (and 
Ubuntu)?

Michael





-- 
Why is it that all of the instruments seeking intelligent life in the
universe are pointed away from Earth?



signature.asc
Description: OpenPGP digital signature