Bug 236424 - print/ghostscript9-agpl-base indirectly depends on X11
Summary: print/ghostscript9-agpl-base indirectly depends on X11
Status: Open
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: doceng
Depends on:
Reported: 2019-03-09 16:56 UTC by ke.freebsd
Modified: 2019-03-17 21:22 UTC (History)
3 users (show)

See Also:
bugzilla: maintainer-feedback? (doceng)
ke.freebsd: maintainer-feedback?


Note You need to log in before you can comment on or make changes to this bug.
Description ke.freebsd 2019-03-09 16:56:12 UTC
It is stated that ghostscript9-agpl-base is supposed not to depend on X11.
However, by requiring print/cups (due to library libcupsimage.so) the dependency chain from cups includes libraries:
libavahi-client.so : net/avahi-app
libdbus-1.so : devel/dbus
both of which depend on X11. This conflicts with the intention of not requiring X11.

This dependency seems to be a consequence of merging cups-image into cups on 11 Mar 2016, as previously (valid when ghostscript9-agpl-base was created to be the non-X11 part on 2015-08-22) libcupsimage.so was in print/cups-image and did not cause this dependency.

(Note, I am using packages, so I cannot choose to unselect CUPS. I do not need CUPS, actually I would not even need ghostscript itself but it is a dependency of graphics/ImageMagick7-nox11 and since ghostscript9-agpl-base also claims to not depend on X11, I think this is the right point to intervene.)
Comment 1 Hiroki Sato freebsd_committer 2019-03-17 18:40:03 UTC
Add tijl@ (print/cups maintainer) because this is not a problem of GS9 itself.

GS9 uses libcupsimage.so to implement a driver for CUPS raster format and
technically speaking, it does not require X11 dependency, as you pointed out.
Comment 2 Tijl Coosemans freebsd_committer 2019-03-17 21:22:40 UTC
cups and avahi don't have an x11 dependency either.  Both depend on dbus which contains dbus-launch that links to x11 libraries.  Dbus-launch creates a user session bus when you start an x11 session.  If you don't run x11 dbus-launch should never be used.

It won't help to split cups back into daemon and libs packages because libcupsimage depends on libcups which depends on libavahi which depends on dbus.  Perhaps dbus could be split into daemon and libs packages.  Or maybe its X11 option can be disabled by default.  I believe dbus-launch only uses x11 to store information about a dbus socket into an x11 atom so remote x clients can connect with dbus on the local machine.  Maybe this isn't important enough to be enabled by default?