Bug#747073: [cups-daemon] Doesn't work with systemd

Didier 'OdyX' Raboud odyx at debian.org
Sun Aug 3 13:06:10 BST 2014


Hi Marco, hi all,

Le dimanche, 3 août 2014, 12.11:58 Marco d'Itri a écrit :
> > systemd maintainers: I think Listen*=[::1]:$port stanzas shouldn't
> > make the .socket-file loading fail if the ipv6 module is not
> > loaded. It should certainly spit out a warning though.
> 
> There is no magic "we do not care if it does not work" address family:
> if a unit is configured to open a socket but this fails then the unit
> must fail.

Fair enough.

Assuming there's no good way to make this work within systemd, I see 
three ways forward to fix this in cups:

a) declare that ipv6 is mandatory these days, document this in
   README.Debian, let users cope with it.
   Pros: it works for most, ipv6 is coming anyway
   Cons: changes done through cups would break the user override every
         time.

b) Detect whether there's a local ipv6 address both in the
   cups-daemon.preinst and in the cups code through  
   cupsd-write-systemd-Port.patch.
   Pros: would work for everyone
   Cons: wouldn't make cups work over ipv6 if the latter is enabled
          after cups is installed; more fault-potential os-specific
          code.

c) Replace address-based ListenStream stanzas with a combination of
   BindIPv6Only and FreeBind to configure systemd to bind only local or
   all available interfaces. The problem with that is that CUPS does
   address-based checking to verify that its bound addresses are really
   local. That could be patched out or corrected though.
   Pros: Probably the cleanest solution 
   Cons: Needs good C-fu which I'm not sure to have
         Will imply extensive testing to fix a setup that currently
          works for most cases.
         No idea if this works as I think it should.

The current setup took quite some intensive iterations to work as it 
currently does; it's only drawback is that it fails to give proper 
feedback to users who have disabled ipv6 for some reason.

I'm currently leaning towards either leaving this bug as a documentation 
trace (+wontfix) or tackling the c)-idea above but would welcome 
feedback from systemd maintainers on whether this has a chance to 
actually work.

Cheers,
OdyX




More information about the Pkg-systemd-maintainers mailing list