touch-packages team mailing list archive
-
touch-packages team
-
Mailing list archive
-
Message #12945
[Bug 1325142] Re: failure to update libpam-systemd in 14.04 due to missing logind init script
I have investigated this some more. I will provide a solution for UCK
(Ubuntu Customization Kit) but it might apply to other contexts as well.
It is actually 3 distinct issues:
The main problem is the missing init scripts. This is a result from UCK
deactivating initctl (see also in the output of uck-chroot-rootfs:
"Deactivating initctl..."). This makes invoke-rc.d fail when trying to
run upstart jobs (Ubuntu uses upstart (not init) for the services in
question). The "/etc/init.d/* not found" is a followup error and
actually misleading.
The fix described previously (modifying .prerm/.postinst files) does
work, but it's better to fix it globally and not for each affected
package. I found it's best to do it right in invoke-rc.d. Just change
all "exit 100" to "exit 0" in /usr/sbin/invoke-rc.d (in the chroot!).
That will generally ignore missing init scripts. Don't forget to revert
the change afterwards.
The second problem is the missing /scripts directory ("Can't open
/scripts/casper-functions" error). This can be fixed with the following
command (in the chroot!):
ln -s /usr/share/initramfs-tools/scripts /scripts
The third problem is that the UCK applies a hack on the zz-update-grub
scripts which in my case creates an invalid syntax and thus breaks the
upgrade as well (dependency problems on the linux-image-generic
package). The fix is described in my comment #10.
In order to avoid applying these patches manually each time, I modified
UCK to apply it when entering chroot, and revert it when exiting
(amongst the other stuff that UCK does in these stages). It's all in
/usr/lib/uck/remaster-live-cd.sh.
I made a fork of the UCK source code on github and applied the changes.
You may just get the follwing file
https://raw.githubusercontent.com/jox/UCK/master/libraries/remaster-
live-cd.sh
and replace your /usr/lib/uck/remaster-live-cd.sh with it (this time
*not* in the chroot...).
You might also apply the attached patch as follows:
$ cd /usr/lib/uck
$ sudo patch -p2 remaster-live-cd.sh.bak < \
/path/to/fix-uck-missing-initd-scripts-1.patch
(The path in the patch is different since it is from the source code. Running patch with -p2 from the directory the file is located will apply it properly.)
You may view the changes on github as well:
Fixed missing /scripts dir in chroot.
https://github.com/jox/UCK/commit/2f14005cd47845d7496e6a2b1bdd72a553fd6be2
Fixed "grub-probe postinst/postrm hack" in chroot.
https://github.com/jox/UCK/commit/d2e2ffbbae80392357b8bf442d28678f9298c52a
Added hack to invoke-rc.d in chroot to ignore missing init scripts.
https://github.com/jox/UCK/commit/4c8277459c42f089fd73e6ae9a25d3e73177f491
Hope this helps
** Patch added: "Patch to apply fixes to /usr/lib/uck/remaster-live-cd.sh"
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1325142/+attachment/4190563/+files/fix-uck-missing-initd-scripts-1.patch
--
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to systemd in Ubuntu.
https://bugs.launchpad.net/bugs/1325142
Title:
failure to update libpam-systemd in 14.04 due to missing logind init
script
Status in “systemd” package in Ubuntu:
Fix Released
Status in “systemd” source package in Trusty:
Triaged
Status in “systemd” source package in Utopic:
Fix Released
Bug description:
Hi,
while running inside an i386 lubuntu 14.04 chroot, upgrading libpam-
systemd to version 204-5ubuntu20.2 fails leaving dpkg in a broken
state. 'apt-get -f install' from within the chroot will not fix it,
but if the build is made bootable and put into a iso/VM you can
recover that way in a live session.
the problem seems to be the /var/lib/dpkg/info/libpam-systemd:i386.prerm script failing to bring down the logind daemon with 'invoke-rc.d systemd-logind stop', because invoke-rd.d is only looking for the /etc/init.d/ script (doesn't exist) and not /etc/init/systemd-logind.conf (does exist).
?
Reading package lists...
Building dependency tree...
Reading state information...
The following packages will be upgraded:
libpam-systemd
1 upgraded, 0 newly installed, 0 to remove and 113 not upgraded.
3 not fully installed or removed.
Need to get 0 B/25.2 kB of archives.
After this operation, 1024 B of additional disk space will be used.
(Reading database ... 113986 files and directories currently installed.)
Preparing to unpack .../libpam-systemd_204-5ubuntu20.2_i386.deb ...
invoke-rc.d: unknown initscript, /etc/init.d/systemd-logind not found.
dpkg: warning: subprocess old pre-removal script returned error exit status 100
dpkg: trying script from the new package instead ...
invoke-rc.d: unknown initscript, /etc/init.d/systemd-logind not found.
dpkg: error processing archive /var/cache/apt/archives/libpam-systemd_204-5ubuntu20.2_i386.deb (--unpack):
subprocess new pre-removal script returned error exit status 100
invoke-rc.d: unknown initscript, /etc/init.d/systemd-logind not found.
dpkg: error while cleaning up:
subprocess installed post-installation script returned error exit status 100
Errors were encountered while processing:
/var/cache/apt/archives/libpam-systemd_204-5ubuntu20.2_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
Our build logs available upon request, but the scripts to setup the chroot to recreate it are here:
https://trac.osgeo.org/osgeo/browser/livedvd/gisvm/trunk/bin/build_chroot_nightly.sh
https://trac.osgeo.org/osgeo/browser/livedvd/gisvm/trunk/bin/inchroot_nightly.sh
In a web-search I notice a few others running into the same bug,
chatter on irc at [18:10], http://irclogs.ubuntu.com/2013/05/28
/%23ubuntu-devel.txt
someone else's build log:
https://launchpad.net/~qutim/+archive/qutim/+build/6039800
launchpad bug #1323575 seems to be a duplicate of this one.
perhaps related to older launchpad bug #1305395 ?
note we are also suffering from a failure with update-initramfs, not sure of the root cause of that one but I thought I'd mention it in case they were related, since they both started happening about the same time, a couple weeks ago. (launchpad bug #1317602)
It all worked ok after the inital releases of 14.04, so something to do with a package update since then.
thanks,
Hamish
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1325142/+subscriptions