Bug#594127: Fix for bug number 590028 is incomplete

2010-08-30 Thread Stephen Powell
On Sun, 29 Aug 2010 21:53:24 -0400 (EDT), Ben Hutchings wrote:
 
 I don't think this urgently needs to be fixed before squeeze, as it is
 only affects unofficial kernel packages.

And that is the first explanation from *anyone* as to why the
severity should be important instead of serious.  If Bastian had
said that in the first place, it would have been helpful.
I was only trying to follow the policy as I understood it.
But regardless of what is done about symlinks, s390-tools is
still lacking an initramfs hook, which is not policy compliant.
That is very easy to fix, however.

Well, you all are now well aware of the problem, and you can decide
what you want to do about it.  And I have a circumvention which I
will publish on my kernel building web site for anyone else who may
wish to implement my solution until an official solution is available.

-- 
  .''`. Stephen Powell
 : :'  :
 `. `'`
   `-



-- 
To UNSUBSCRIBE, email to debian-s390-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/2003377395.464049.1283167122449.javamail.r...@md01.wow.synacor.com



Bug#594127: Fix for bug number 590028 is incomplete

2010-08-29 Thread Ben Hutchings
On Fri, 2010-08-27 at 09:50 -0400, Stephen Powell wrote:
[...]
 Personally, I think that the requirement to maintain symlinks, if used,
 is implicit in the purpose of the boot loader hook script.
[...]

After thinking about this some more and actually trying to implement the
hook scripts, I think I agree.  These symlinks are horrible and by
default we should not create them.  As a stopgap, boot loader packages
may create and then use the links, but I would much prefer that they
construct a menu of all installed kernel versions, as GRUB and extlinux
do.

Ben.

-- 
Ben Hutchings
Once a job is fouled up, anything done to improve it makes it worse.


signature.asc
Description: Digital signature


Bug#594127: Fix for bug number 590028 is incomplete

2010-08-29 Thread Stephen Powell
On Sun, 29 Aug 2010 16:20:20 -0400 (EDT), Ben Hutchings wrote:
 On Fri, 2010-08-27 at 09:50 -0400, Stephen Powell wrote:
 [...]
 Personally, I think that the requirement to maintain symlinks, if used,
 is implicit in the purpose of the boot loader hook script.
 [...]
 
 After thinking about this some more and actually trying to implement the
 hook scripts, I think I agree.  These symlinks are horrible and by
 default we should not create them.  As a stopgap, boot loader packages
 may create and then use the links, but I would much prefer that they
 construct a menu of all installed kernel versions, as GRUB and extlinux
 do.

Hmm.  Well, I agree that the approach taken by grub-legacy and extlinux
is more flexible.  It allows more than two kernels to be bootable.
But boot loaders such as lilo and zipl have historically used
symlinks, and the symlink maintenance logic in my generic boot loader
hook scripts,
http://www.wowway.com/~zlinuxman/kernel/postinst.d/zz-bootloader and
http://www.wowway.com/~zlinuxman/kernel/postrm.d/zz-bootloader,
isn't really that complex.  I'm curious as to why you consider symlinks
to be horrible.

For now, on my own systems, I have extracted the symlink maintenance
logic from the above generic boot loader hook scripts and have created
new hook scripts which I call zy-symlinks.  It allows me to use the
new boot loader packages with their kernel hook scripts which only
invoke the boot loader installer without modifying them.  I also
have my own generic initramfs hook script which I use with zipl,
http://www.wowway.com/~zlinuxman/initramfs/post-update.d/bootloader.
(By the way, I like the way you were able to avoid a bashism,
namely substring expansion, by using a case statement in lilo's
initramfs hook.  Very clever!)

But Debian clearly needs to do *something* about this problem
*somewhere*.

-- 
  .''`. Stephen Powell
 : :'  :
 `. `'`
   `-



-- 
To UNSUBSCRIBE, email to debian-s390-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/631424779.459359.1283131904359.javamail.r...@md01.wow.synacor.com



Bug#594127: Fix for bug number 590028 is incomplete

2010-08-29 Thread Ben Hutchings
On Sun, 2010-08-29 at 21:31 -0400, Stephen Powell wrote:
 On Sun, 29 Aug 2010 16:20:20 -0400 (EDT), Ben Hutchings wrote:
  On Fri, 2010-08-27 at 09:50 -0400, Stephen Powell wrote:
  [...]
  Personally, I think that the requirement to maintain symlinks, if used,
  is implicit in the purpose of the boot loader hook script.
  [...]
  
  After thinking about this some more and actually trying to implement the
  hook scripts, I think I agree.  These symlinks are horrible and by
  default we should not create them.  As a stopgap, boot loader packages
  may create and then use the links, but I would much prefer that they
  construct a menu of all installed kernel versions, as GRUB and extlinux
  do.
 
 Hmm.  Well, I agree that the approach taken by grub-legacy and extlinux
 is more flexible.  It allows more than two kernels to be bootable.
 But boot loaders such as lilo and zipl have historically used
 symlinks, and the symlink maintenance logic in my generic boot loader
 hook scripts,
 http://www.wowway.com/~zlinuxman/kernel/postinst.d/zz-bootloader and
 http://www.wowway.com/~zlinuxman/kernel/postrm.d/zz-bootloader,
 isn't really that complex.  I'm curious as to why you consider symlinks
 to be horrible.

Because of the limitation to two versions, arbitrarily designated
'current' and 'old'; the fact that they could be in /, /boot, or even
configured to be elsewhere; and the problem of stale links.

 For now, on my own systems, I have extracted the symlink maintenance
 logic from the above generic boot loader hook scripts and have created
 new hook scripts which I call zy-symlinks.  It allows me to use the
 new boot loader packages with their kernel hook scripts which only
 invoke the boot loader installer without modifying them.  I also
 have my own generic initramfs hook script which I use with zipl,
 http://www.wowway.com/~zlinuxman/initramfs/post-update.d/bootloader.
 (By the way, I like the way you were able to avoid a bashism,
 namely substring expansion, by using a case statement in lilo's
 initramfs hook.  Very clever!)
 
 But Debian clearly needs to do *something* about this problem
 *somewhere*.

I met Colin Watson last night and he said that he (as GRUB maintainer)
and Daniel Baumann (as syslinux maintainer) had discussed writing a
common boot loader policy.  Due to the interaction with kernel packages
and initramfs builders, I think we could combine this with the extension
of the kernel and initramfs hooks policy.

I don't think this urgently needs to be fixed before squeeze, as it is
only affects unofficial kernel packages.

Ben.

-- 
Ben Hutchings
Once a job is fouled up, anything done to improve it makes it worse.


signature.asc
Description: This is a digitally signed message part


Bug#594127: Fix for bug number 590028 is incomplete

2010-08-27 Thread Stephen Powell
On Thu, 26 Aug 2010 18:48:57 -0400 (EDT), Ben Hutchings wrote:
 On Thu, 2010-08-26 at 15:04 -0400, Stephen Powell wrote:
 Ben,
 
 I could use your help on bug number 594127.  Am I not understanding
 the policy?  Please read the bug log and advise.  Thanks.
 
 Assuming that s390 kernels normally use an initramfs to boot, I think
 you're right about the lack of an initramfs hook.

Thanks for your reply.
Well, all the stock kernels do, of course.  And, while it is possible
to create a custom kernel that doesn't use an initramfs, every custom
kernel that I've ever created uses one too.
 
 As for maintaining symlinks, that is not described by the policy at all,
 though it should be.

Strictly speaking, that is true.  Symlinks are not explicitly mentioned.
But what is the purpose of the boot loader hook scripts?  Is it not to
bring the boot loader in sync with the just-installed (or just-removed)
kernel?

Suppose two kernels are installed: A and B.  B is the newer kernel, so
vmlinuz points to it.  vmlinuz.old points to A.  (The same applies to
the initramfs symlinks, of course.)  And let's say that the boot loader
config file (/etc/zipl.conf in this case) uses symlinks, which it
historically does as set up by the Debian installer.  Now suppose that
a new kernel, C, is installed.  The hook script will be invoked, and
the map installer will be run, but it will accomplish nothing.  vmlinuz
still points to B and vmlinuz.old still points to A.  Kernel C, just
installed, is not bootable, even though the boot loader's map installer
has just been run.

On the other hand, suppose that instead of installing a new kernel C
we de-install kernel B.  vmlinuz is now a broken link, and when the
postrm hook script invokes the boot loader, it will fail.  For a boot
loader of this type either the hook script must maintain the symlinks
before invoking the boot loader, or it must maintain the boot loader
configuration file (/etc/zipl.conf, /etc/lilo.conf, etc.) to point
to the appropriate kernels directly, without using symlinks.  If it
doesn't do one of those two things before invoking the boot loader,
then invoking the boot loader does not accomplish the intended purpose
of the hook script.

FOR OFFICIAL DEBIAN STOCK KERNELS ONLY, the symlinks can still be
maintained by means of do_symlinks = yes in /etc/kernel-img.conf.
But kernel image packages created by the Squeeze version of make-kpkg
(package kernel-package) or kernel image packages created by make deb-pkg
do not have any other means of maintaining the symlinks.  If the boot
loader hook scripts do not maintain the symlinks, they won't get
maintained, and the whole purpose of having a boot loader hook script
will be defeated.

 We could perhaps put hook scripts for that in
 linux-base.

It theory, I suppose symlinks could be maintained in a separate hook
script.  But now we're getting into the whole execution order issue
again.  Such a hook script must execute *after* the initramfs hook
script which creates or deletes the initial RAM file system, but
*before* the boot loader hook script executes.  So what are we going
to call it?  zy-symlinks?

Personally, I think that the requirement to maintain symlinks, if used,
is implicit in the purpose of the boot loader hook script.  But we
have to solve this problem some way.  The template hook scripts which
I provided at the beginning of the bug log do what needs to
be done.  They need to be tweaked a little to make them specific
to a single boot loader, but the symlink logic is there.  If you
don't like my symlink logic, then you can write
your own.  I don't care what color the cat is as long as it catches
mice.

As to the severity, I set it to serious because your original bug
report, 590028, was set to serious, and the fix did not solve the
problem (at least not in the general case).  Another reason that I
set it to serious is that, as I understand the policy, the package
is not currently policy compliant.  Bastian obviously disagrees with
me, but unlike me he has offered no justification or rationale as
to why the severity should be important.  Since both of you
are on the kernel team, I will let you two duke it out as to what
the severity should be.  Normally, I wouldn't care all that much
as to whether the severity should be serious or important.  But in
this case it makes a difference as to whether the bug is fixed in
Squeeze or in Squeeze+1.  And if it's not fixed in Squeeze, you're
going to have to keep the boot-loader-specific logic in
initramfs-tools for yet one more release.  I'm trying to help you
out here.

-- 
  .''`. Stephen Powell
 : :'  :
 `. `'`
   `-



-- 
To UNSUBSCRIBE, email to debian-s390-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/2127039792.409627.1282917047662.javamail.r...@md01.wow.synacor.com



Bug#594127: Fix for bug number 590028 is incomplete

2010-08-27 Thread Ben Hutchings
On Fri, Aug 27, 2010 at 09:50:47AM -0400, Stephen Powell wrote:
[...]
 Personally, I think that the requirement to maintain symlinks, if used,
 is implicit in the purpose of the boot loader hook script.
[...]

No, that means it has to be repeated in many different packages.

Ben.

-- 
Ben Hutchings
We get into the habit of living before acquiring the habit of thinking.
  - Albert Camus



-- 
To UNSUBSCRIBE, email to debian-s390-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100827152502.gs5...@decadent.org.uk



Bug#594127: Fix for bug number 590028 is incomplete

2010-08-27 Thread Stephen Powell
On Fri, 27 Aug 2010 11:25:02 -0400 (EDT), Ben Hutchings wrote:
 On Fri, Aug 27, 2010 at 09:50:47AM -0400, Stephen Powell wrote:
 [...]
 Personally, I think that the requirement to maintain symlinks, if used,
 is implicit in the purpose of the boot loader hook script.
 [...]
 
 No, that means it has to be repeated in many different packages.

That's true.  I guess I wasn't thinking along those lines because
I created a one-size-fits-all boot loader hook script for my own
use before boot loader packages started including
boot-loader-specific hook scripts.

The alternative, obviously, is a separate hook script to maintain symlinks.
That immediately raises two more questions: (1) How do we make sure that
it executes *after* the initramfs hook and *before* the boot loader hook, and
(2) which (required) package will own and maintain it?  Your thoughts?

-- 
  .''`. Stephen Powell
 : :'  :
 `. `'`
   `-



-- 
To UNSUBSCRIBE, email to debian-s390-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/1946156595.417436.1282932133585.javamail.r...@md01.wow.synacor.com



Bug#594127: Fix for bug number 590028 is incomplete

2010-08-27 Thread Stephen Powell
On Fri, 27 Aug 2010 14:02:13 -0400 (EDT), Stephen Powell wrote:

 The alternative, obviously, is a separate hook script to maintain symlinks.
 That immediately raises two more questions: (1) How do we make sure that
 it executes *after* the initramfs hook and *before* the boot loader hook, and
 (2) which (required) package will own and maintain it?  Your thoughts?

I just thought of something else.  Currently, the default value for
do_symlinks in /etc/kernel-img.conf is yes, if I'm not mistaken.
But in Squeeze, that will only apply to stock kernels.  In order to take
care of symlinks for kernels created by make-kpkg and make deb-pkg,
a symlink hook script will be needed.  But then, for stock kernels,
symlinks will be maintained twice, which is duplication of effort.
So the default value for do_symlinks should change to no, once the
hook script is in place.

As for the hook script itself, it doesn't need to examine /etc/kernel-img.conf.
The logic could say, for example, if /vmlinuz exists and is a symbolic
link, or if /boot/vmlinuz exists and is a symbolic link, then maintain
symbolic links.  Otherwise don't.  Or maybe you want to check for all
four of the standard symlink names (vmlinuz, vmlinuz.old, initrd.img,
initrd.img.old) instead of just vmlinuz.  Your thoughts?

All of this still leaves zipl without a (required) initramfs hook, though.

-- 
  .''`. Stephen Powell
 : :'  :
 `. `'`
   `-



-- 
To UNSUBSCRIBE, email to debian-s390-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/1655031521.417755.1282933247863.javamail.r...@md01.wow.synacor.com



Bug#594127: Fix for bug number 590028 is incomplete

2010-08-26 Thread Stephen Powell
Quoting from http://www.debian.org/Bugs/Developer#severities

 Severity levels
 ...
 serious
  is a severe violation of Debian policy (roughly, it violates a must
  or required directive), or, in the package maintainer's or release
  manager's opinion, makes the package unsuitable for release.

The previous post shows that a *must* directive is being violated.
Therefore, setting severity to serious.

-- 
  .''`. Stephen Powell
 : :'  :
 `. `'`
   `-



-- 
To UNSUBSCRIBE, email to debian-s390-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/2081948446.389791.1282846668676.javamail.r...@md01.wow.synacor.com



Bug#594127: Fix for bug number 590028 is incomplete

2010-08-26 Thread Bastian Blank
severity 594127 important
thanks

On Thu, Aug 26, 2010 at 02:17:48PM -0400, Stephen Powell wrote:
 The previous post shows that a *must* directive is being violated.
 Therefore, setting severity to serious.

Don't play bts ping-pong.

Bastian

-- 
Earth -- mother of the most beautiful women in the universe.
-- Apollo, Who Mourns for Adonais? stardate 3468.1



-- 
To UNSUBSCRIBE, email to debian-s390-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100826184757.gb10...@wavehammer.waldi.eu.org



Processed: Re: Bug#594127: Fix for bug number 590028 is incomplete

2010-08-26 Thread Debian Bug Tracking System
Processing commands for cont...@bugs.debian.org:

 severity 594127 important
Bug #594127 [s390-tools] Fix for bug number 590028 is incomplete
Severity set to 'important' from 'serious'

 thanks
Stopping processing here.

Please contact me if you need assistance.
-- 
594127: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=594127
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems


-- 
To UNSUBSCRIBE, email to debian-s390-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/handler.s.c.12828484968700.transcr...@bugs.debian.org



Bug#594127: Fwd: Re: Bug#594127: Fix for bug number 590028 is incomplete

2010-08-26 Thread Ben Hutchings
On Thu, 2010-08-26 at 15:04 -0400, Stephen Powell wrote:
 Ben,
 
 I could use your help on bug number 594127.  Am I not understanding
 the policy?  Please read the bug log and advise.  Thanks.

Assuming that s390 kernels normally use an initramfs to boot, I think
you're right about the lack of an initramfs hook.

As for maintaining symlinks, that is not described by the policy at all,
though it should be.  We could perhaps put hook scripts for that in
linux-base.

Ben.

-- 
Ben Hutchings
Once a job is fouled up, anything done to improve it makes it worse.


signature.asc
Description: This is a digitally signed message part


Bug#594127: Fix for bug number 590028 is incomplete

2010-08-24 Thread Stephen Powell
On Mon, 23 Aug 2010 17:32:36 -0400 (EDT), Bastian Blank wrote:
 On Mon, Aug 23, 2010 at 05:17:31PM -0400, Stephen Powell wrote:
 (1) the hook scripts provided,
 /etc/kernel/postinst.d/zz-zipl and /etc/kernel/postrm.d/zz-zipl,
 do not maintain the symbolic links.  The zipl boot loader typically
 uses the historic symbolic links (/boot/vmlinuz, /boot/initrd.img,
 /boot/vmlinuz.old, and /boot/initrd.img.old) in its configuration
 file (/etc/zipl.conf) so that the configuration file does not need
 to be updated with each kernel install or remove, as grub-legacy's
 configuration file does (/boot/grub/menu.lst).  The advantage of
 using the symbolic links is that the configuration file never
 needs to be maintained when a kernel is installed or removed.
 The disadvantage of this method is that the symbolic links
 themselves must be maintained when a kernel image is installed
 or removed.
 
 They are still maintaned by the kernel. If you think this is wrong, go
 there.

For stock kernels, yes, if do_symlinks = yes is specified in
/etc/kernel-img.conf.  But the maintainer scripts packaged with
kernel image packages created by the squeeze version of make-kpkg,
which is what I use, do not maintain symbolic links, even if
do_symlinks = yes is specified in /etc/kernel-img.conf.  I have
verified this by experimentation.  I haven't yet tried building a
kernel image package with make deb-pkg (part of upstream kernel
source code for 2.6.31 kernels and later), but I doubt that its
maintainer scripts maintain the symbolic links either.  For this
reason I think the severity should be serious (rc).

 (2) The second reason that this fix is incomplete is that the package
 does not contain an initramfs hook script.  The latest version of
 initramfs-tools, 0.98, now expects boot loaders which rely on a
 list of blocks saved at boot loader map installer time, such as lilo
 and zipl, to provide a hook script in /etc/initramfs/post-update.d
 to react to update-initramfs -u   This script does not
 use the zz- prefix, nor does it need to maintain symbolic links,
 but it does need to re-run the boot loader, redirecting standard
 output to standard error as the kernel hook scripts do.
 
 No, it does not yet.

Present behavior of initramfs-tools is as follows:  if the file
/etc/initramfs/post-update.d exists, and is a directory,
then the run-parts utility will be invoked to run whatever
executable files are found in that directory in alphabetical
order.  If /etc/initramfs/post-update.d does not exist, or is
not a directory, zipl will be invoked anyway as long as
/etc/zipl.conf exists.  So yes, zipl will still get run.
Nevertheless, current policy does require an initramfs hook
script.

Packages for boot loaders that need to be updated whenever
the files they load are modified *must* also install hook
scripts in /etc/initramfs/post-update.d.

(See http://kernel-handbook.alioth.debian.org/ch-update-hooks.html,
section 7.3, initramfs hooks.)

And since s390-tools does not provide this hook script, the
package is not policy compliant.  Therefore, the initial
severity of serious is correct.

-- 
  .''`. Stephen Powell
 : :'  :
 `. `'`
   `-



-- 
To UNSUBSCRIBE, email to debian-s390-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/1225016804.325400.1282658643136.javamail.r...@md01.wow.synacor.com



Bug#594127: Fix for bug number 590028 is incomplete

2010-08-23 Thread Stephen Powell
Package: s390-tools
Version: 1.8.3-2
Severity: serious

s390-tools version 1.8.3-2 was recently migrated to testing, and it
contained a fix for Debian bug report 590028.  However, this fix is
incomplete, for two reasons:

(1) the hook scripts provided,
/etc/kernel/postinst.d/zz-zipl and /etc/kernel/postrm.d/zz-zipl,
do not maintain the symbolic links.  The zipl boot loader typically
uses the historic symbolic links (/boot/vmlinuz, /boot/initrd.img,
/boot/vmlinuz.old, and /boot/initrd.img.old) in its configuration
file (/etc/zipl.conf) so that the configuration file does not need
to be updated with each kernel install or remove, as grub-legacy's
configuration file does (/boot/grub/menu.lst).  The advantage of
using the symbolic links is that the configuration file never
needs to be maintained when a kernel is installed or removed.
The disadvantage of this method is that the symbolic links
themselves must be maintained when a kernel image is installed
or removed.

Historically, the maintainer scripts for the kernel image package,
whether they are for a stock kernel or a custom kernel created by
make-kpkg, maintained the symbolic links, subject to configuration
statements in /etc/kernel-img.conf, such as do_symlinks,
relative_links, and link_in_boot.  The maintainer scripts for
stock kernel images still support this, as far as I know.
However, the maintainer scripts for kernel image packages created
by newer releases of make-kpkg, as well as the maintainer scripts
for kernel image packages created by make deb-pkg (from 2.6.31
kernel source packages and later) do not contain logic to maintain
the symbolic links.  For boot loaders which rely on symbolic links,
such as zipl and lilo typically do, the boot loader hook scripts
must maintain the symbolic links.

(The alternative, of course, is for the boot loader hook scripts
to maintain the boot loader configuration file directly,
/etc/zipl.conf in this case, so that symbolic links are not needed.)

(2) The second reason that this fix is incomplete is that the package
does not contain an initramfs hook script.  The latest version of
initramfs-tools, 0.98, now expects boot loaders which rely on a
list of blocks saved at boot loader map installer time, such as lilo
and zipl, to provide a hook script in /etc/initramfs/post-update.d
to react to update-initramfs -u   This script does not
use the zz- prefix, nor does it need to maintain symbolic links,
but it does need to re-run the boot loader, redirecting standard
output to standard error as the kernel hook scripts do.

I one again encourage you to look at the following generic scripts
which I have been using for months quite satisfactorily.  I believe
that they can be made zipl-specific without much effort:

http://www.wowway.com/~zlinuxman/kernel/postinst.d/zz-bootloader
(for installation in /etc/kernel/postinst.d)

http://www.wowway.com/~zlinuxman/kernel/postrm.d/zz-bootloader
(for installation in /etc/kernel/postrm.d)

http://www.wowway.com/~zlinuxman/initramfs/post-update.d/bootloader
(for installation in /etc/initramfs/post-update.d)

-- 
  .''`. Stephen Powell
 : :'  :
 `. `'`
   `-



-- 
To UNSUBSCRIBE, email to debian-s390-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/752774451.308739.1282598251474.javamail.r...@md01.wow.synacor.com