> 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