> On Dec 8, 2016, at 10:16 AM, Alexander Kanavin 
> <alexander.kana...@linux.intel.com> wrote:
> 
> On 12/07/2016 07:21 PM, Jeffrey Johnson wrote:
>> Your next stopping point is going to be Berkeley DB as a pre-requisite.
> 
> I didn't get there yet; I hit a couple different issues, and these do look 
> like bugs. The relevant configure options are
> 
>       --with-libgit2 \
>       --enable-build-pic \
> 

You are doing well ;-)

> Issue 1:
> 
> make[4]: Entering directory '/home/ak/development/rpm/rpmio'
> /bin/bash ../libtool  --tag=CXX   --mode=link g++  -g -O2 -no-undefined 
> -release 5.4 -Wl,--version-script,../rpmio/librpmio.vers    -o librpmio.la 
> -rpath /usr/lib getdate.lo blake2b.lo blake2bp.lo blake2s.lo blake2sp.lo 
> blake2-rpm.lo arirang.lo blake.lo bmw.lo chi.lo cubehash.lo echo.lo edon-r.lo 
> fugue.lo groestl.lo hamsi.lo jh.lo keccak.lo lane.lo luffa.lo md2.lo md6.lo 
> radiogatun.lo salsa10.lo salsa20.lo shabal.lo shavite3.lo simd.lo skein.lo 
> tib3.lo tiger.lo rpmgit.lo rpmio-stub.lo rpmjs.lo rpmjsio.lo rpmkeyring.lo 
> rpmnix.lo rpmodbc.lo rpmsql.lo set.lo ar.lo argv.lo bcon.lo bson.lo bzdio.lo 
> cipher.lo cpio.lo crc.lo digest.lo fts.lo gzdio.lo iosm.lo jsmn.lo lsyck.lo 
> macro.lo mire.lo mongoc.lo mount.lo pcrs.lo poptIO.lo rpmacl.lo rpmasn.lo 
> rpmaug.lo rpmbag.lo rpmbc.lo rpmbf.lo rpmcdsa.lo rpmct.lo rpmcudf.lo 
> rpmcvs.lo rpmdate.lo rpmdav.lo rpmdir.lo rpmficl.lo rpmgc.lo rpmgfs.lo 
> rpmhash.lo rpmhkp.lo rpmhook.lo rpmio.lo rpmiob.lo rpmjni.lo rpmku.lo 
> rpmlog.lo rpmltc.lo rpmlua.lo rpmmalloc.lo rpmmg.lo rpmmqtt.lo rpmmrb.lo 
> rpmnss.lo rpmperl.lo rpmpgp.lo rpmpython.lo rpmrpc.lo rpmruby.lo rpmsed.lo 
> rpmsm.lo rpmsp.lo rpmsq.lo rpmsquirrel.lo rpmssl.lo rpmsvn.lo rpmsw.lo 
> rpmsx.lo rpmsyck.lo rpmtcl.lo rpmtpm.lo rpmuuid.lo rpmxar.lo rpmzlog.lo 
> rpmzq.lo strcasecmp.lo strtolocale.lo tar.lo ugid.lo url.lo xzdio.lo yajl.lo 
> yarn.lo duktape.o -lm ../misc/librpmmisc.la -lpcreposix -lpcre -ldl -lm 
> -ltcl8.6 -lpython2.7 -lreadline -lmagic -lexpat -lz -lpopt -lpthread  -lelf 
> -lpopt -lz -lexpat -lpcre
> depbase=`echo tgit.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
> gcc -DHAVE_CONFIG_H -I. -I..  -I. -I.. -I../build -I../lib -I../lib 
> -I../rpmdb -I../rpmio -I../misc -I../beecrypt/include -I../beecrypt/include 
> -I../beecrypt -I../beecrypt -I../libgit2/include -I../libgit2/include 
> -I../libgit2 -I../libgit2 -I../lua/local -I../lua/local -I../lua -I../lua 
> -I../neon/src -I../neon/src -I../neon -I../neon -I../syck/lib -I../syck/lib 
> -I../syck -I../syck -DRPM_OS_LINUX=040800 -I../gnulib -I../gnulib 
> -I/usr/include/db62 -I/usr/include/python2.7 -I/usr/include/python2.7 
> -fopenmp -g -O2 -g -D_GNU_SOURCE -D_REENTRANT -MT tgit.o -MD -MP -MF 
> $depbase.Tpo -c -o tgit.o tgit.c &&\
> mv -f $depbase.Tpo $depbase.Po
> tgit.c: In function ‘cmd_ls_remote’:
> tgit.c:3755:2: error: too few arguments to function ‘git_remote_connect’
>  git_remote_connect(remote, GIT_DIRECTION_FETCH,
>  ^
> tgit.c:47:25: note: in definition of macro ‘chkgit’
>     Xchkgit(_git, _msg, _error, _rpmgit_debug, __FUNCTION__, __FILE__, 
> __LINE__)
>                         ^~~~~~
> In file included from ../libgit2/include/git2/clone.h:14:0,
>                 from ../libgit2/include/git2.h:19,
>                 from ./rpmgit.h:32,
>                 from tgit.c:9:
> ../libgit2/include/git2/remote.h:249:17: note: declared here
> GIT_EXTERN(int) git_remote_connect(git_remote *remote, git_direction 
> direction, const git_remote_callbacks *callbacks, const git_proxy_options 
> *proxy_opts, const git_strarray *custom_headers);
>                 ^~~~~~~~~~~~~~~~~~
> Makefile:3104: recipe for target ‘tgit.o’

RPM5 builds against libgit2 tip and libgit2 “breaks” every other month.

The fixes are usually rather easy, but the code is entirely proof-of-concept.

I recommend
        rm -rf libgit2
(which is likely enuf to disable) and building —without-libgit2


> Issue 2:
> 
> *** Warning: Linking the shared library librpmio.la against the non-libtool
> *** objects  duktape.o is not portable!
> libtool: link: g++  -fPIC -DPIC -shared -nostdlib 
> /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crti.o 
> /usr/lib/gcc/x86_64-linux-gnu/6/crtbeginS.o  .libs/getdate.o .libs/blake2b.o 
> .libs/blake2bp.o .libs/blake2s.o .libs/blake2sp.o .libs/blake2-rpm.o 
> .libs/arirang.o .libs/blake.o .libs/bmw.o .libs/chi.o .libs/cubehash.o 
> .libs/echo.o .libs/edon-r.o .libs/fugue.o .libs/groestl.o .libs/hamsi.o 
> .libs/jh.o .libs/keccak.o .libs/lane.o .libs/luffa.o .libs/md2.o .libs/md6.o 
> .libs/radiogatun.o .libs/salsa10.o .libs/salsa20.o .libs/shabal.o 
> .libs/shavite3.o .libs/simd.o .libs/skein.o .libs/tib3.o .libs/tiger.o 
> .libs/rpmgit.o .libs/rpmio-stub.o .libs/rpmjs.o .libs/rpmjsio.o 
> .libs/rpmkeyring.o .libs/rpmnix.o .libs/rpmodbc.o .libs/rpmsql.o .libs/set.o 
> .libs/ar.o .libs/argv.o .libs/bcon.o .libs/bson.o .libs/bzdio.o 
> .libs/cipher.o .libs/cpio.o .libs/crc.o .libs/digest.o .libs/fts.o 
> .libs/gzdio.o .libs/iosm.o .libs/jsmn.o .libs/lsyck.o .libs/macro.o 
> .libs/mire.o .libs/mongoc.o .libs/mount.o .libs/pcrs.o .libs/poptIO.o 
> .libs/rpmacl.o .libs/rpmasn.o .libs/rpmaug.o .libs/rpmbag.o .libs/rpmbc.o 
> .libs/rpmbf.o .libs/rpmcdsa.o .libs/rpmct.o .libs/rpmcudf.o .libs/rpmcvs.o 
> .libs/rpmdate.o .libs/rpmdav.o .libs/rpmdir.o .libs/rpmficl.o .libs/rpmgc.o 
> .libs/rpmgfs.o .libs/rpmhash.o .libs/rpmhkp.o .libs/rpmhook.o .libs/rpmio.o 
> .libs/rpmiob.o .libs/rpmjni.o .libs/rpmku.o .libs/rpmlog.o .libs/rpmltc.o 
> .libs/rpmlua.o .libs/rpmmalloc.o .libs/rpmmg.o .libs/rpmmqtt.o .libs/rpmmrb.o 
> .libs/rpmnss.o .libs/rpmperl.o .libs/rpmpgp.o .libs/rpmpython.o 
> .libs/rpmrpc.o .libs/rpmruby.o .libs/rpmsed.o .libs/rpmsm.o .libs/rpmsp.o 
> .libs/rpmsq.o .libs/rpmsquirrel.o .libs/rpmssl.o .libs/rpmsvn.o .libs/rpmsw.o 
> .libs/rpmsx.o .libs/rpmsyck.o .libs/rpmtcl.o .libs/rpmtpm.o .libs/rpmuuid.o 
> .libs/rpmxar.o .libs/rpmzlog.o .libs/rpmzq.o .libs/strcasecmp.o 
> .libs/strtolocale.o .libs/tar.o .libs/ugid.o .libs/url.o .libs/xzdio.o 
> .libs/yajl.o .libs/yarn.o  duktape.o   -Wl,-rpath 
> -Wl,/home/ak/development/rpm/misc/.libs ../misc/.libs/librpmmisc.so 
> -lpcreposix -ldl -ltcl8.6 -lpython2.7 -lreadline -lmagic -lpthread -lelf 
> /usr/lib/x86_64-linux-gnu/libpopt.so -lz 
> /usr/lib/x86_64-linux-gnu/libexpat.so -lpcre 
> -L/usr/lib/gcc/x86_64-linux-gnu/6 
> -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu 
> -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib -L/lib/x86_64-linux-gnu 
> -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib 
> -L/usr/lib/gcc/x86_64-linux-gnu/6/../../.. -lstdc++ -lm -lc -lgcc_s 
> /usr/lib/gcc/x86_64-linux-gnu/6/crtendS.o 
> /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crtn.o  -g -O2 
> -Wl,--version-script -Wl,../rpmio/librpmio.vers   -fopenmp -Wl,-soname 
> -Wl,librpmio-5.4.so -o .libs/librpmio-5.4.so
> /usr/bin/ld: duktape.o: relocation R_X86_64_PC32 against symbol 
> `stderr@@GLIBC_2.2.5' can not be used when making a shared object; recompile 
> with -fPIC
> /usr/bin/ld: final link failed: Bad value
> collect2: error: ld returned 1 exit status
> Makefile:2597: recipe for target 'librpmio.la' failed
> 
> The duktape PIC issue can be fixed by adding common CFLAGS to duktape's 
> custom flags, I guess, which currently isn't the case.
> 

Yup. There’s other duktape.c annoyances encountered if/when switching between 
gcc and clang.

I usually comment out duktape (or make it an optional build) in 
rpmio/Makefile.am when it gets in my way.

There may be some issues with bison/flex in rpmdb (its WIP, the targets aren’t 
critical),
 and perl-URPM likely should be nuked (rm -rf perl-URPM).

You are pretty close.

If you send me your devtool.conf stanza, I will check in your build options, and
be able to help more effectively.

73 de Jeff
> Alex
> ______________________________________________________________________
> RPM Package Manager                                    http://rpm5.org
> Developer Communication List                        rpm-devel@rpm5.org

______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
Developer Communication List                        rpm-devel@rpm5.org

Reply via email to