Date: Wednesday, May 2, 2012 @ 22:49:32 Author: dreisner Revision: 158120
upgpkg: systemd 44-7 - remove /lib symlink. warn user on install. Modified: systemd/trunk/PKGBUILD systemd/trunk/systemd.install -----------------+ PKGBUILD | 5 ++--- systemd.install | 20 ++++++++------------ 2 files changed, 10 insertions(+), 15 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2012-05-03 02:26:57 UTC (rev 158119) +++ PKGBUILD 2012-05-03 02:49:32 UTC (rev 158120) @@ -4,7 +4,7 @@ pkgbase=systemd pkgname=('systemd' 'libsystemd') pkgver=44 -pkgrel=6 +pkgrel=7 arch=('i686' 'x86_64') url="http://www.freedesktop.org/wiki/Software/systemd" license=('GPL2' 'LGPL2.1' 'MIT') @@ -76,9 +76,8 @@ chmod 644 "$pkgdir/usr/lib/tmpfiles.d/console.conf" # symlink to /bin/systemd for compat and sanity - install -dm755 "$pkgdir/bin" "$pkgdir/lib/systemd" + install -dm755 "$pkgdir/bin" ln -s ../usr/lib/systemd/systemd "$pkgdir/bin/systemd" - ln -s ../../usr/lib/systemd/systemd "$pkgdir/lib/systemd/systemd" # use python2 for systemd-analyze sed -i '1s/python$/python2/' "$pkgdir/usr/bin/systemd-analyze" Modified: systemd.install =================================================================== --- systemd.install 2012-05-03 02:26:57 UTC (rev 158119) +++ systemd.install 2012-05-03 02:49:32 UTC (rev 158120) @@ -29,18 +29,14 @@ fi if sd_booted; then - systemctl daemon-reload - systemctl daemon-reexec - fi - - newpkgver=${1%-*} - oldpkgver=${2%-*} - - # catch v31 need for restarting systemd-logind.service - if [ "$newpkgver" -ge 31 ] && [ "$oldpkgver" -lt 31 ]; then - # but only if systemd is running - if sd_booted; then - systemctl try-restart systemd-logind.service + # we moved the binary in 44-2 to /usr, so a reexec leads to a + # coredump. refuse this reexec and warn the user that they should + # reboot instead. + if [ "$(vercmp 44-2 "$2")" -eq 1 ]; then + echo "warning: refusing to reexec systemd. the system should be rebooted." + else + systemctl daemon-reload + systemctl daemon-reexec fi fi }