Bug#771413: dracut installs dead symlinks in /lib/systemd/system/{initrd,sysinit}.target.wants/

2014-12-07 Thread Tilman Schröder
Control: tags 771413 + patch

Dear maintainer,

I believe the reason for the broken symlinks is that they violated the Debian 
policy on symbolic links,
https://www.debian.org/doc/debian-policy/ch-files.html#s10.5
and were therefore omitted by the packaging programs. They violated the policy 
because the missing links were relative links from one top-level directory into 
another, but they should have been absolute.

The attached patch fixes the bug. It uses dh_link to create the problematic 
links and not ln.

Cheers,
Tilman



On Sat, 29 Nov 2014 11:55:00 +0100 =?UTF-8?B?VGlsbWFuIFNjaHLDtmRlcg==?=
 wrote:
> Package: dracut
> Version: 040+1-1
> Severity: normal
>
> Dear Maintainer,
>
> dracut installs dead symlinks in
> /lib/systemd/system/{initrd,sysinit}.target.wants/:
>
> The links
> /lib/systemd/system/initrd.target.wants/dracut-cmdline.service
> /lib/systemd/system/initrd.target.wants/dracut-initqueue.service
> /lib/systemd/system/initrd.target.wants/dracut-mount.service
> /lib/systemd/system/initrd.target.wants/dracut-pre-mount.service
> /lib/systemd/system/initrd.target.wants/dracut-pre-pivot.service
> /lib/systemd/system/initrd.target.wants/dracut-pre-trigger.service
> /lib/systemd/system/initrd.target.wants/dracut-pre-udev.service
> /lib/systemd/system/sysinit.target.wants/dracut-shutdown.service
>
> are all pointing to files in the parent directory with the same name,
> but none
> of these files exist. I believe the links should all point to the
> corresponding
> files in /usr/lib/dracut/modules.d/98systemd/.
>
> I ran into this issue while trying to install apparmor which fails because
> systemd is unable to find dracut-shutdown.service.
>
> For more information on this please see my bug report on apparmor at
> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=771240
>
> Cheers and thanks for your awesome work,
> Tilman
>
>
>
> -- System Information:
> Debian Release: jessie/sid
> APT prefers testing
> APT policy: (990, 'testing'), (500, 'testing-updates')
> Architecture: amd64 (x86_64)
> Foreign Architectures: i386
>
> Kernel: Linux 3.16.0-4-amd64 (SMP w/2 CPU cores)
> Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
> Shell: /bin/sh linked to /bin/dash
>
> Versions of packages dracut depends on:
> ii console-setup 1.114
> ii cpio 2.11+dfsg-2+b1
> ii kmod 18-3
> ii kpartx 0.5.0-5
> ii libc6 2.19-13
> ii pkg-config 0.28-1
> ii udev 215-6
> ii util-linux 2.25.2-3
>
> Versions of packages dracut recommends:
> ii cryptsetup 2:1.6.6-3
> ii dmraid 1.0.0.rc16-5



-- 
Sichere Kommunikation?
GPG: 0x70755E61 auf keys.gnupg.net

Author: Tilman Schröder 
Description: Use dh_link during installation to create symlinks where the 
target is an absolute filename, update clean target in Makefile.
Bug-Debian: https://bugs.debian.org/771413
--- a/Makefile
+++ b/Makefile
@@ -124,10 +124,9 @@
 endif
if [ -n "$(systemdsystemunitdir)" ]; then \
mkdir -p $(DESTDIR)$(systemdsystemunitdir); \
-   ln -srf 
$(DESTDIR)$(pkglibdir)/modules.d/98systemd/dracut-shutdown.service 
$(DESTDIR)$(systemdsystemunitdir)/dracut-shutdown.service; \
+   echo "$(pkglibdir)/modules.d/98systemd/dracut-shutdown.service 
$(systemdsystemunitdir)/dracut-shutdown.service" >> debian/dracut.links; \
mkdir -p 
$(DESTDIR)$(systemdsystemunitdir)/sysinit.target.wants; \
-   ln -s ../dracut-shutdown.service \
-   
$(DESTDIR)$(systemdsystemunitdir)/sysinit.target.wants/dracut-shutdown.service; 
\
+   ln -s ../dracut-shutdown.service 
$(DESTDIR)$(systemdsystemunitdir)/sysinit.target.wants/dracut-shutdown.service; 
\
mkdir -p $(DESTDIR)$(systemdsystemunitdir)/initrd.target.wants; 
\
for i in \
dracut-cmdline.service \
@@ -138,9 +137,8 @@
dracut-pre-trigger.service \
dracut-pre-udev.service \
; do \
-   ln -srf $(DESTDIR)$(pkglibdir)/modules.d/98systemd/$$i 
$(DESTDIR)$(systemdsystemunitdir); \
-   ln -s ../$$i \
-   
$(DESTDIR)$(systemdsystemunitdir)/initrd.target.wants/$$i; \
+   echo "$(pkglibdir)/modules.d/98systemd/$$i 
$(systemdsystemunitdir)/$$i" >> debian/dracut.links; \
+   ln -s ../$$i 
$(DESTDIR)$(systemdsystemunitdir)/initrd.target.wants/$$i; \
done \
fi
if [ -f install/dracut-install ]; then \
@@ -171,6 +169,8 @@
$(RM) skipcpio/skipcpio $(SKIPCPIO_OBJECTS)
$(RM) $(manpages) dracut.html
$(MAKE) -C test clean
+   $(RM) debian/dracut.links
+   $(RM) Makefile.inc
 
 dist: dracut-$(VERSION).tar.xz
 


signature.asc
Description: OpenPGP digital signature


Bug#771413: dracut installs dead symlinks in /lib/systemd/system/{initrd,sysinit}.target.wants/

2014-11-29 Thread Tilman Schröder
Package: dracut
Version: 040+1-1
Severity: normal

Dear Maintainer,

dracut installs dead symlinks in
/lib/systemd/system/{initrd,sysinit}.target.wants/:

The links
/lib/systemd/system/initrd.target.wants/dracut-cmdline.service
/lib/systemd/system/initrd.target.wants/dracut-initqueue.service
/lib/systemd/system/initrd.target.wants/dracut-mount.service
/lib/systemd/system/initrd.target.wants/dracut-pre-mount.service
/lib/systemd/system/initrd.target.wants/dracut-pre-pivot.service
/lib/systemd/system/initrd.target.wants/dracut-pre-trigger.service
/lib/systemd/system/initrd.target.wants/dracut-pre-udev.service
/lib/systemd/system/sysinit.target.wants/dracut-shutdown.service

are all pointing to files in the parent directory with the same name,
but none
of these files exist. I believe the links should all point to the
corresponding
files in /usr/lib/dracut/modules.d/98systemd/.

I ran into this issue while trying to install apparmor which fails because
systemd is unable to find dracut-shutdown.service.

For more information on this please see my bug report on apparmor at
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=771240

Cheers and thanks for your awesome work,
Tilman



-- System Information:
Debian Release: jessie/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'testing-updates')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.16.0-4-amd64 (SMP w/2 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages dracut depends on:
ii  console-setup  1.114
ii  cpio   2.11+dfsg-2+b1
ii  kmod   18-3
ii  kpartx 0.5.0-5
ii  libc6  2.19-13
ii  pkg-config 0.28-1
ii  udev   215-6
ii  util-linux 2.25.2-3

Versions of packages dracut recommends:
ii  cryptsetup  2:1.6.6-3
ii  dmraid  1.0.0.rc16-5
ii  dmsetup 2:1.02.90-2
ii  lvm22.02.111-2
ii  mdadm   3.3.2-2

Versions of packages dracut suggests:
pn  dracut-network  

-- no debconf information

-- 
Sichere Kommunikation?
GPG: 0x70755E61 auf keys.gnupg.net



signature.asc
Description: OpenPGP digital signature