As you say it's not a FLAVOR what's this in the Makefile for

-CONFIGURE_STYLE=       gnu
+MULTI_PACKAGES =       -main -qt -py2 -py3
+PSEUDO_FLAVORS =       no_qt no_py2 no_py3
+FLAVOR ?=

As subpackage is even worse so even the simplest ports using gpgme needs
Qt5 built to build.

On 11/03/17 15:39, Jeremie Courreges-Anglas wrote:
> On Thu, Nov 02 2017, Nigel Taylor <njtaylor0...@btinternet.com> wrote:
>> Should you promote gpgme-qt to be the default flavor over others
> 
> It's a subpackage, not a flavor.
> 
>> FLAVOR ?=
>>
>> should default to no_qt no_python2 no_python3, that is the default as
>> before. Building with qt should be an extra, in fact use of this sort of
>> complex PSEUDO_FLAVOR causes problems especially with something as large
>> as qt5, which means dpb can't be used for build a subset of packages.
>>
>> I dpb tries to build security/gpgme,no_qt,no_py2,no_py3,-main as
>> effectively used by all current ports using gpgme which would have to be
>> changed in the ports tree.
>>
>> The existing dpb xxx/yyy or list that built a subset of packages, this
>> change on seeing reference to security/gpgme will build not only the
>> packages as before, but all the packages for the included modules, that
>> is python2 and sub packages, python3 and sub packages, and the whole of qt5.
>>
>> This is enforcing qt5 on those who don't want and don't need qt5.
>>
>> python2 / python3 I can live with. qt5 I can live without.
>>
>> For those wanting a small light weight system, qt5 - everywhere -
>> everything just isn't what they want.
> 
> This is not about qt5 everywhere, this about qt5 on the build machine;
> remember that the ports tree is optimized for bulk builds.
> 
> I'm *much more* concerned about introducing a hard dep on a C++11
> compiler (and Qt5?) on such an important library.
> 
>> Just why should if we want a small light weight system should we need to
>> go around adding in no_qt,no_py2,no_py3,-main to everything? Maybe here
>> also there would be less objections on my part if dpb didn't try to
>> build every possible flavor, until it does. I suggest using a separate
>> security/qt-gpgme and security/gpgme
> 
> This may be a good idea.
> 
>> also strictly python2 and python3 flavor should default to no_qt rather
>> than with qt5. The main choice for python isn't qt5 it's Tk, and a Tk
>> flavor of gpgme would tie in with the use of python2/3.
> 
> I don't understand the link between the possible -python* *subpackages*
> and qt5.  Of course those subpackages shouldn't depend on Qt.  We're
> talking about optional subpackages here, not package flavors.
> 
>> Littering qt5 around just about everything is bad as is the whole qt
>> mind set of having to put anything and everything into it's own wrappers.
>>
>> On 11/01/17 16:53, Rafael Sadowski wrote:
>>> Hi porters,
>>>
>>> I need help with the gpgme update. Special thing here, I need the Qt
>>> bindings because kde-applications/gpgmepp is dead and all dependent
>>> programs work with gpgme-qt now.
>>>
>>> But I always trap into the following link issue:
>>>
>>> libtool: link: cc -shared -fPIC -DPIC -o
>>> .libs/libgpgme.so.20.0 -I/usr/local/include -O2 -pipe -Wall -Wcast-align 
>>> -Wshadow -Wstrict-prototypes
>>> .libs/conversion.o .libs/b64dec.o .libs/get-env.o .libs/parsetlv.o
>>> .libs/mbox-util.o .libs/data.o .libs/data-fd.o .libs/data-stream.o
>>> .libs/data-mem.o .libs/data-user.o .libs/data-compat.o
>>> .libs/data-identify.o .libs/signers.o .libs/sig-notation.o
>>> .libs/wait.o .libs/wait-global.o .libs/wait-private.o
>>> .libs/wait-user.o .libs/op-support.o .libs/encrypt.o
>>> .libs/encrypt-sign.o .libs/decrypt.o .libs/decrypt-verify.o
>>> .libs/verify.o .libs/sign.o .libs/passphrase.o .libs/progress.o
>>> .libs/key.o .libs/keylist.o .libs/keysign.o .libs/trust-item.o
>>> .libs/trustlist.o .libs/tofupolicy.o .libs/import.o .libs/export.o
>>> .libs/genkey.o .libs/delete.o .libs/edit.o .libs/getauditlog.o
>>> .libs/opassuan.o .libs/passwd.o .libs/spawn.o .libs/assuan-support.o
>>> .libs/engine.o .libs/engine-gpg.o .libs/status-table.o
>>> .libs/engine-gpgsm.o .libs/engine-assuan.o .libs/engine-gpgconf.o
>>> .libs/engine-uiserver.o .libs/engine-g13.o .libs/vfs-mount.o
>>> .libs/vfs-create.o .libs/engine-spawn.o .libs/gpgconf.o
>>> .libs/queryswdb.o .libs/posix-util.o .libs/posix-io.o .libs/dirinfo.o
>>> .libs/debug.o .libs/gpgme.o .libs/version.o .libs/error.o
>>> .libs/ath.o -L.libs -lassuan -lgpg-error -lintl -liconv
>>> libtool: link: ar cru .libs/libgpgme.a conversion.o b64dec.o get-env.o
>>> parsetlv.o mbox-util.o data.o data-fd.o data-stream.o data-mem.o
>>> data-user.o data-compat.o data-identify.o signers.o sig-notation.o
>>> wait.o wait-global.o wait-private.o wait-user.o op-support.o encrypt.o
>>> encrypt-sign.o decrypt.o decrypt-verify.o verify.o sign.o passphrase.o
>>> progress.o key.o keylist.o keysign.o trust-item.o trustlist.o
>>> tofupolicy.o import.o export.o genkey.o delete.o edit.o getauditlog.o
>>> opassuan.o passwd.o spawn.o assuan-support.o engine.o engine-gpg.o
>>> status-table.o engine-gpgsm.o engine-assuan.o engine-gpgconf.o
>>> engine-uiserver.o engine-g13.o vfs-mount.o vfs-create.o engine-spawn.o
>>> gpgconf.o queryswdb.o posix-util.o posix-io.o dirinfo.o debug.o
>>> gpgme.o version.o error.o ath.o
>>> libtool: link: ranlib .libs/libgpgme.a
>>> cc -DHAVE_CONFIG_H -I. -I.. -I/usr/local/include -I/usr/local/include -O2 
>>> -pipe -Wall -Wcast-align -Wshadow -Wstrict-prototypes -MT
>>> gpgme-tool.o -MD -MP -MF .deps/gpgme-tool.Tpo -c -o gpgme-tool.o
>>> gpgme-tool.c
>>> mv -f .deps/gpgme-tool.Tpo .deps/gpgme-tool.Po
>>> cc -DHAVE_CONFIG_H -I. -I..   -I/usr/local/include -I/usr/local/include  
>>> -O2 -pipe -Wall -Wcast-align -Wshadow -Wstrict-prototypes -MT argparse.o 
>>> -MD -MP -MF .deps/argparse.Tpo -c -o argparse.o argparse.c       
>>> mv -f .deps/argparse.Tpo .deps/argparse.Po
>>> c++ gpgme-tool.o argparse.o libgpgme.la -lassuan -L/usr/local/lib 
>>> -lgpg-error
>>> libgpgme.la: file not recognized: File format not recognized
>>> c++: error: linker command failed with exit code 1 (use -v to see 
>>> invocation)
> 
> The build should last longer if you set FLAVOR=no_qt; qt5.port.mk has
> this line:
> 
>   _MODQT5_SETUP +=    CC=cc CXX=c++ LINK_C=cc LINK=c++
> 
> which breaks the libtool link.  Tough luck. :)
> 
> I've sent Antoine a diff to remove "LINK_C=cc LINK=c++"; maybe the whole
> line should be killed.
> 
> To build both python2 and python3 at the same time you'll need such
> a hack:
> 
>   # XXX hack: the configure script doesn't properly handle passing
>   # explicitely both python2 and python3 in --enable-languages
>   post-configure:
>       sed -Ei 's/^(ENABLED_LANGUAGES.*) python3/\1/' ${WRKSRC}/lang/Makefile
> 
> I have a wip diff with (IMO) improvements but I have questions that
> don't have answers yet: can we afford to require a c++11 compiler for
> gpgme?  How does that work in practice on !(amd64)?  We definitely can't
> let gpgme have an unconditional build dep on qt5.
> 
> HTH,
> 

Reply via email to