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

Reply via email to