Bug 238118

Summary: textproc/groff: install fails when graphics/netpbm is installed but X11 not selected
Product: Ports & Packages Reporter: Helge Oldach <freebsd>
Component: Individual Port(s)Assignee: freebsd-ports-bugs (Nobody) <ports-bugs>
Status: Closed FIXED    
Severity: Affects Some People CC: bapt, freebsd, olli, rozhuk.im
Priority: ---    
Version: Latest   
Hardware: Any   
OS: Any   

Description Helge Oldach 2019-05-25 13:10:14 UTC
groff exhibits an odd /negative/ dependency on graphics/netpbm: install fails if graphics/netpbm is installed and X11 is not selected.

# make -C /usr/ports/graphics/netpbm install
===>  Installing for netpbm-10.86.03
===>  Checking if netpbm is already installed
===>   Registering installation for netpbm-10.86.03
Installing netpbm-10.86.03...
===> SECURITY REPORT: 
      This port has installed the following files which may act as network
      servers and may therefore pose a remote security risk to the system.
/usr/local/bin/ppmtompeg

      If there are vulnerabilities in these programs there may be a security
      risk to the system. FreeBSD makes no guarantee about the security of
      ports included in the Ports Collection. Please type 'make deinstall'
      to deinstall the port if this is a concern.

      For more information, and contact details about the security
      status of this software, see the following webpage: 
http://netpbm.sourceforge.net/
# make -C /usr/ports/textproc/groff showconfig
===> The following configuration options are available for groff-1.22.4_2:
     URWFONTS=off: URW fonts support (needed for growpdf)
     X11=off: X11 devices (-TX*) and gxditview
===> Use 'make config' to modify these settings
# make -C /usr/ports/textproc/groff clean all
...---snip---...
install  -m 0644 /usr/ports/textproc/groff/files/mdoc.local /usr/obj/usr/ports/textproc/groff/work/stage//usr/local/share/groff/site-tmac
====> Compressing man pages (compress-man)
# make -C /usr/ports/textproc/groff install
===>  Installing for groff-1.22.4_2
===>  Checking if groff is already installed
===>   Registering installation for groff-1.22.4_2
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/examples/img/webpage1.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/examples/img/webpage2.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/examples/webpage-1.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/examples/webpage-10.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/examples/webpage-11.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/examples/webpage-12.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/examples/webpage-13.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/examples/webpage-14.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/examples/webpage-15.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/examples/webpage-16.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/examples/webpage-17.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/examples/webpage-2.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/examples/webpage-3.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/examples/webpage-4.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/examples/webpage-5.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/examples/webpage-6.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/examples/webpage-7.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/examples/webpage-8.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/examples/webpage-9.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/examples/webpage.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic1.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic10.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic11.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic12.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic13.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic14.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic15.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic16.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic17.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic18.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic19.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic2.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic20.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic21.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic22.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic23.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic24.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic25.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic26.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic27.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic28.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic29.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic3.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic30.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic31.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic32.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic33.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic34.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic35.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic36.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic37.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic38.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic39.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic4.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic40.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic41.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic42.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic43.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic44.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic45.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic47.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic48.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic49.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic5.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic50.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic51.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic6.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic7.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic8.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/img/pic9.png:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/pic-1.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/pic-10.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/pic-11.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/pic-12.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/pic-13.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/pic-14.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/pic-15.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/pic-16.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/pic-17.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/pic-18.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/pic-19.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/pic-2.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/pic-20.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/pic-21.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/pic-22.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/pic-23.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/pic-3.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/pic-4.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/pic-5.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/pic-6.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/pic-7.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/pic-8.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/pic-9.html:No such file or directory
pkg-static: Unable to access file /usr/obj/usr/ports/textproc/groff/work/stage/usr/local/share/doc/groff-1.22.4/html/pic.html:No such file or directory
*** Error code 74

Stop.
make[1]: stopped in /usr/ports/textproc/groff
*** Error code 1

Stop.
make: stopped in /usr/ports/textproc/groff
# make -C /usr/ports/graphics/netpbm deinstall
===>  Deinstalling for netpbm
===>   Deinstalling netpbm-10.86.03
Checking integrity... done (0 conflicting)
Deinstallation has been requested for the following 1 packages (of 0 packages in the universe):

Installed packages to be REMOVED:
        netpbm-10.86.03

Number of packages to be removed: 1

The operation will free 9 MiB.
[1/1] Deinstalling netpbm-10.86.03...
[1/1] Deleting files for netpbm-10.86.03: 100%
# make -C /usr/ports/textproc/groff clean all
...---snip---...
install  -m 0644 /usr/ports/textproc/groff/files/mdoc.local /usr/obj/usr/ports/textproc/groff/work/stage//usr/local/share/groff/site-tmac
====> Compressing man pages (compress-man)
# make -C /usr/ports/textproc/groff install
===>  Installing for groff-1.22.4_2
===>  Checking if groff is already installed
===>   Registering installation for groff-1.22.4_2
Installing groff-1.22.4_2...
#
Comment 1 Ivan Rozhuk 2019-07-09 14:03:17 UTC
.if exists(${LOCALBASE}/bin/pnmcut) && exists(${LOCALBASE}/bin/pnmcrop) && \
    exists(${LOCALBASE}/bin/pnmtops) && exists(${LOCALBASE}/bin/pnmtopng)
PLIST_SUB+=	HTMLDOCS=""
.else
PLIST_SUB+=	HTMLDOCS="@comment "
.endif

this check should be removed, and leave only:
PLIST_SUB+=	HTMLDOCS="@comment "
Comment 2 Oliver Fromme freebsd_committer freebsd_triage 2019-08-30 09:23:02 UTC
This problem affects me, too, on several machines.
It still exists in the ports tree today (2019-08-30).
It happens when these two conditions are met:
 - The X11 option is DISABLED.
 - graphics/netpbm is already installed.
In that case the textproc/groff port tries to install the HTML docs without building them first, leading to the failure described by the reporter above.
This needs to be fixed.  I don't think the situation is very uncommon.

As a workaround I've appended the following lines to /etc/make.conf:

.if ${.CURDIR:M*/ports/textproc/groff}
PLIST_SUB+=     HTMLDOCS="@comment "
.endif
Comment 3 Baptiste Daroussin freebsd_committer freebsd_triage 2019-10-02 18:41:01 UTC
The X11 dependency is totally gone and netpbm has been removed from the dependency list in favor of an optional dependency (to the user convenience).

That should address your issue.