On 12/04/13 23:47, Stuart Henderson wrote:
> On 2013/12/05 00:13, Jérémie Courrèges-Anglas wrote:
>> Peter Fraser <p...@thinkage.ca> writes:
>>
>>> samba required the e2fsprogs package. The problem occurs when trying to use 
>>> samba's net command.
>>> The net command requires libuuid.
>>
>> This kind of report should go to ports@... (redirecting there on
>> purpose).
>>
>> What's the exact error / problem?
> 
> Looks like Samba has a hidden dep on e2fsprogs - i.e. the configure
> process picks it up if present at build time, but it's not recorded in
> WANTLIB/LIB_DEPENDS. At least the amd64 release packages for 5.4 picked
> it up.
> 
> In this situation we can either add it as a proper dependency or modify
> the port to not pick it up (either patch, or set autoconf flags, etc).
> 
> It looks like it's required for samba's dns update support, so in this
> case it would make more sense to add the dep.
> 
> 
>>>  It was not easy to find where libuuid was located.
> 
> Ah, I see you haven't been introduced to the "pkglocatedb" package yet :)
> 
> 
> 

the problem is this - for amd64/i386 current.

$ cd /usr/ports/packages/amd64/all
$ check-lib-depends -d . samba-*

samba-3.6.15p2-ads(net/samba,-main,ads):
Missing lib: uuid.14 (/usr/local/bin/net) (NOT REACHABLE)
Scanning: ok

This check is run every now and then for all ports. 
The ads FLAVOR might have been missed being checked, using 
make lib-depends-check or make port-lib-depends-check
only checking the unflavored version.

$ env FLAVOR=ads make show="BUILD_DEPENDS RUN_DEPENDS LIB_DEPENDS WANTLIB" 
devel/metaauto devel/autoconf/2.69 sysutils/e2fsprogs devel/gmake 
STEM->=1.21:textproc/groff
converters/libiconv
STEM->=1.2.7:databases/tdb devel/iniparser devel/libexecinfo devel/libtalloc 
devel/popt print/cups,-libs databases/openldap converters/libiconv
c cups execinfo iniparser ncurses popt pthread readline talloc tdb z ldap lber 
asn1 crypto gssapi heimbase krb5 roken wind com_err iconv>=2

sysutils/e2fsprogs is in the build depends so would be picked up by the 
configuration.

The LIB_DEPENDS for ads FLAVOR doesn't include sysutils/e2fsprogs.
The WANTLIB for ads FLAVOR doesn't include uuid

Something like this should fix current, 

$ cvs -R -q diff -uNp
Index: Makefile
===================================================================
RCS file: /home/cvs/ports/net/samba/Makefile,v
retrieving revision 1.188
diff -u -p -r1.188 Makefile
--- Makefile    6 Oct 2013 22:00:48 -0000       1.188
+++ Makefile    4 Dec 2013 23:35:39 -0000
@@ -9,7 +9,7 @@ DISTNAME=               samba-3.6.15
 PKGNAME-main=          ${DISTNAME}
 FULLPKGNAME-docs=      ${DISTNAME:S/-/-docs-/}
 FULLPKGPATH-docs=      net/samba,-docs
-REVISION-main=         2
+REVISION-main=         3
 
 SHARED_LIBS=           smbclient       3.0 \
                        smbsharemodes   1.0 \
@@ -110,9 +110,10 @@ CONFIGURE_ARGS+=   --with-krb5="${WRKDIR}/
 #CONFIGURE_ARGS+=      --enable-merged-build
 #MODULES+=             lang/python
 #MODPY_RUNDEP=         No
+LIB_DEPENDS +=                 sysutils/e2fsprogs
 
 WANTLIB += asn1 crypto gssapi heimbase krb5 roken
-WANTLIB += wind com_err
+WANTLIB += wind com_err uuid
 .else
 CONFIGURE_ARGS+=       --without-ads
 .endif


$  env FLAVOR=ads make show="BUILD_DEPENDS RUN_DEPENDS LIB_DEPENDS WANTLIB"  
devel/metaauto devel/autoconf/2.69 sysutils/e2fsprogs devel/gmake 
STEM->=1.21:textproc/groff
converters/libiconv
STEM->=1.2.7:databases/tdb devel/iniparser devel/libexecinfo devel/libtalloc 
devel/popt print/cups,-libs databases/openldap sysutils/e2fsprogs 
converters/libiconv
c cups execinfo iniparser ncurses popt pthread readline talloc tdb z ldap lber 
asn1 crypto gssapi heimbase krb5 roken wind com_err uuid iconv>=2

Tried building using these changes on i386, amd64 machine busy building other 
ports.

$ ls samba-*                                 
samba-3.6.15p2-ads.tgz  samba-3.6.15p2-ldap.tgz samba-3.6.15p2.tgz      
samba-3.6.15p3-ads.tgz  samba-3.6.15p3-ldap.tgz samba-3.6.15p3.tgz      
samba-docs-3.6.15.tgz

$ check-lib-depends -d . samba-3.6.15p3*.tgz 
Scanning: ok

$ pkg_info -Sq samba-3.6.15p3*.tgz           
samba-3.6.15p3-ads,@cups-libs-1.7.0,@e2fsprogs-1.42.7p0,@iniparser-3.1p0,@libexecinfo-0.2p3v0,@libiconv-1.14p1,@libtalloc-2.0.1,@openldap-client-2.4.38,@popt-1.16,@tdb-1.2.7,asn1.20.0,c.71.0,com_err.20.0,crypto.23.0,cups.6.1,execinfo.2.0,gssapi.7.1,heimbase.1.0,iconv.6.0,iniparser.0.0,krb5.20.0,lber.12.0,ldap.13.0,ncurses.13.0,popt.1.0,pthread.18.0,readline.4.0,roken.1.0,talloc.0.0,tdb.3.0,uuid.14.0,wind.1.0,z.5.0
samba-3.6.15p3-ldap,@cups-libs-1.7.0,@iniparser-3.1p0,@libexecinfo-0.2p3v0,@libiconv-1.14p1,@libtalloc-2.0.1,@openldap-client-2.4.38,@popt-1.16,@tdb-1.2.7,c.71.0,cups.6.1,execinfo.2.0,iconv.6.0,iniparser.0.0,lber.12.0,ldap.13.0,ncurses.13.0,popt.1.0,pthread.18.0,readline.4.0,talloc.0.0,tdb.3.0,z.5.0
samba-3.6.15p3,@cups-libs-1.7.0,@iniparser-3.1p0,@libexecinfo-0.2p3v0,@libiconv-1.14p1,@libtalloc-2.0.1,@popt-1.16,@tdb-1.2.7,c.71.0,cups.6.1,execinfo.2.0,iconv.6.0,iniparser.0.0,ncurses.13.0,popt.1.0,pthread.18.0,readline.4.0,talloc.0.0,tdb.3.0,z.5.0

e2fsprogs now appears in the signature for the ads flavor, and 
check-lib-depends no longer gives the NOT REACHABLE message.

If it's not the ads flavor your using, then the dependency is hidden, in which 
case the FLAVORS other 
than ads will require changes.

Reply via email to