ports/148102: make install can fail for ports-mgmt/packagekit [patch]

Don Lewis truckman at FreeBSD.org
Thu Jul 1 05:30:52 UTC 2010


On 24 Jun, Jeremy Messenger wrote:
> On Thu, 24 Jun 2010 17:38:36 -0500, Don Lewis <truckman at freebsd.org> wrote:

>> make.out:xsltproc  
>> http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl  
>> pkcon.xml &> /dev/null
>> make.out:xsltproc  
>> http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl  
>> pkmon.xml &> /dev/null
>> make.out:xsltproc  
>> http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl  
>> pkgenpack.xml &> /dev/null
>> make.out:xsltproc  
>> http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl  
>> pk-debuginfo-install.xml &> /dev/null
>>
>> The others instances are in contrib/device-rebind/ and client/, though
>> the former doesn't appear to get executed.
> 
> Quick way would be add in the post-patch something looks like this:
> 
> 	@${FIND} ${WRKSRC} -name Makefile.in | ${XARGS} ${REINPLACE_CMD} -e \
> 		's|.xml [$$]? &> /dev|.xml $$? > /dev|g'
> 
> It's untest, I will test it this weekend and see if it works.

It should be possible to trigger the bug by unplugging your internet
connection during "make build".  xsltproc won't be able to download the
stylesheet, but make won't detect the failure because xsltproc is
running in the background.  During the subsequent "make install", make
will detect that the man page is missing and will run xsltproc again.
Because xsltproc is being run in the background, its output might not
get created before make tries to install it, causing the install to
fail.

It seems rather unfriendly and unreliable to repeatedly download the
stylesheet for each man page.  It should probably be done once as a
separate port that is listed as a build dependency.  This probably
affects some huge number of ports ...




More information about the freebsd-gnome mailing list