Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 10 Dec 2013 18:53:50 +0200
From:      Kozlov Sergey <kozlov.sergey.404@gmail.com>
To:        Gerald Pfeifer <gerald@pfeifer.com>
Cc:        Mathieu Arnold <mat@FreeBSD.org>, Greg Larkin <glarkin@FreeBSD.org>, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org, ports-committers@freebsd.org
Subject:   Re: svn commit: r335189 - in head/print/pdftk: . files
Message-ID:  <52A7471E.6080109@gmail.com>
In-Reply-To: <alpine.LNX.2.00.1312082235050.2197@tuna.site>
References:  <201311291548.rATFm8g7098382@svn.freebsd.org> <alpine.LNX.2.00.1312012257230.2185@tuna.site> <C89CD972357B819FE03015D6@atuin.in.mat.cc> <529C7599.1050509@gmail.com> <alpine.LNX.2.00.1312082235050.2197@tuna.site>

next in thread | previous in thread | raw e-mail | index | archive | help
On 08.12.2013 23:39, Gerald Pfeifer wrote:
> On Mon, 2 Dec 2013, Kozlov Sergey wrote:
>
>> 1. GCC does not always come with gcj, user can compile the port without
>> it. So pdftk needs both gcc and gcj to build, and they are added
>> explicitly as build dependencies.
> Except that this won't work.  If USE_GCC=yes did not already include
> GCJ, then just rebuilding the port, with the same (saved) options will
> not make a difference.

Yes, that's correct. I think the right solution is to add a check if gcj 
is present and give an IGNORE with suggestion to rebuild gcc.

>    LIB_DEPENDS=	libgcj.so:${PORTSDIR}/lang/gcc${CSUFF} \
> 		libstdc++.so:${PORTSDIR}/lang/gcc${CSUFF} \
> 		libgcc_s.so:${PORTSDIR}/lang/gcc${CSUFF}
>
> If you insist on libgcj.so, I can accept that, but then let's drop
> the other two least.  This is definitely covered by USE_GCC=yes.

USE_GCC doesn't add anything to RUN_DEPENDS.
When I got the problem with uninstalling gcc and making pdftk not work I 
used the ldd on pdftk and got the following:

root@fbsd10-test:/usr/ports/print/pdftk # ldd /usr/local/bin/pdftk
/usr/local/bin/pdftk:
         libgcj.so.12 => /usr/local/lib/gcc46/libgcj.so.12 (0x800a8a000)
         libz.so.6 => /lib/libz.so.6 (0x803cdb000)
         libstdc++.so.6 => /usr/local/lib/gcc46/libstdc++.so.6 (0x803ef0000)
         libm.so.5 => /lib/libm.so.5 (0x8041f4000)
         libgcc_s.so.1 => /usr/local/lib/gcc46/libgcc_s.so.1 (0x80441a000)
         libthr.so.3 => /lib/libthr.so.3 (0x80462f000)
         libc.so.7 => /lib/libc.so.7 (0x804854000)
         librt.so.1 => /usr/lib/librt.so.1 (0x804bed000)

I saw 3 libs provided by gcc so I added them all to LIB_DEPENDS
I understand that if libgcj is provided then libstdc++ and libgcc_s is 
surely provided as well, and I don't know what is the right decision in 
these circumstances.

>    BUILD_DEPENDS=gcj${CSUFF}:${PORTSDIR}/lang/gcc${CSUFF} \
> 		gcjh${CSUFF}:${PORTSDIR}/lang/gcc${CSUFF} \
> 		cpp${CSUFF}:${PORTSDIR}/lang/gcc${CSUFF}
>
> And here just pick one of gcj or gcjh, that is sufficient and in
> line what we usually do.
>
> And remove the dependency on cpp, since again this is covered by
> USE_GCC=yes.

The same situation as with LIB_DEPENDS. I don't know what to do if one 
dependency is surely provided by another one.

>
> Can I go ahead and just make that
>
>    LIB_DEPENDS=    libgcj.so:${PORTSDIR}/lang/gcc${CSUFF}
>    BUILD_DEPENDS=  gcj${CSUFF}:${PORTSDIR}/lang/gcc${CSUFF}
>
> ?
>
> Gerald

Generally speaking, I think that's ok but we should really hear the 
opinion of port's maintainer.

Best regards,
Kozlov Sergey.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?52A7471E.6080109>