On 09/29/11 17:17, Amit Kulkarni wrote: >>>> Here is a WIP update of texlive 2011. >>> >>> Here is the latest diff I am working with. >>> >>> I have tried: >>> * install on amd64 >>> * install on i386 >>> * upgrade from -current/texlive-2010 -> texlive-2011 (on amd64) >>> * upgrade from -current/texlive-2010 -> texlive-2011 (on i386) >>> >>> All of the above have worked seamlessy. >>> >>> Now I am waiting for a sparc64 build to complete. >>> >> Hi, >> >> For print/texlive/base, make print-package-signature does not match >> pkg_info -S, causing unnecessary rebuilds, this is because of the >> >> LIB_DEPENDS += devel/ffcall >> >> which is not required, there is already a BUILD_DEPENDS for clisp. >> clisp has a LIB_DEPENDS for ffcall and avcall callback in the WANTLIB, >> ensuring ffcall is installed at runtime with clisp. The only requirement >> I can find so far for ffcall in print/texlive/base, is related to the >> building and running of clisp, and not directly to this port. >> >> From the xindy INSTALL file, the requirement is "the clisp command >> must be available at build and runtime". The texlive/base RUN_DEPENDS >> doesn't >> include clisp (on amd64 where xinidy is enabled). Looking at the >> installed perl script for xindy clearly this uses clisp. >> >> $ fgrep clisp /usr/local/share/texmf/scripts/xindy/xindy.pl >> our $clisp = ( $is_windows ? 'clisp.exe' : 'clisp' ) ; >> # clisp runtime >> $clisp = $xindy_run if -e $xindy_run; >> my @command = ($clisp, '-M', $mem_file, '-E', 'iso-8859-1'); >> # xindy.run does not exist any more, call clisp directly. >> >> >> The change below has been tried by removing all installed packages, >> then building print/texlive/base, on amd64 current. >> >> Nigel >> >> --- Makefile.orig Wed Sep 28 19:35:22 2011 >> +++ Makefile Wed Sep 28 21:45:47 2011 >> @@ -62,7 +62,7 @@ >> # clisp limits which arches we can use xindy on >> .if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "amd64" >> BUILD_DEPENDS += lang/clisp >> -LIB_DEPENDS += devel/ffcall >> +RUN_DEPENDS += lang/clisp >> CONFIGURE_ARGS += --enable-xindy \ >> --disable-xindy-rules >> PKG_ARGS += -Dxindy=1 # Note. texmf-full required for xindy > > minor nit. > > since this is a i386/amd64 and both are shared lib arches, we can simply > change BUILD_DEPENDS on lang/clisp to LIB_DEPENDS, and drop devel/ffcall. > > bsd.port.mk says LIB_DEPENDS almost euqivalent to BUILD_DEPENDS & > RUN_DEPENDS on shared lib arches. > > thanks > Hi,
The LIB_DEPENDS, is the very reason why the make print-package-signature doesn't match the pkg_info -S for ports, and why there is a rebuild problem, on a number of ports. See man library-specs(7) RUN_DEPENDS always creates a @depends line, LIB_DEPENDS doesn't. clisp is required for building, and running the port, it is not required for the libraries as using LIB_DEPENDS implies. make print-package-signature assumes LIB_DEPENDS will be turned into a @depends, that there is a matching WANTLIB library to be using the LIB_DEPENDS in the first place. pkg_create drops the @depends when no library can be found in the WANTLIB so pkg_info -S will have lost the dependency and not appear in the signature, and signatures do not match. Maybe make lib-depends-check should display warnings about any LIB_DEPENDS package paths that don't have any of their libraries appearing in the WANTLIB. What you suggest will change the signature mismatch from devel/ffcall to lang/clisp, there will be no run time @depends to install clisp in the package created. I haven't tried your change because I have already tried and tested the change above it solved the rebuild issue and correctly installed clisp at runtime. Nigel