Ask Your Question
2

Why can't I rebuild source rpms in Fedora 26

asked 2017-08-18 02:37:09 -0600

Thomas Sondergaard gravatar image

updated 2017-08-18 03:52:52 -0600

hhlp gravatar image

I've recently upgraded my Fedora 25 to 26 using the graphical updater. Since the update I have wanted to modify a few of the Fedora RPMS, but in several cases just rebuilding the stock packages have failed. For example qt5-qtbase and xmlrpc-c both fail to build. This has never been a problem with previous Fedora releases. Here is the build failure from rpmbuild --rebuild xmlrpc-c-1.48.0-4.fc26.src.rpm:

FAILED: lib/abyss++/libxmlrpc_abyss++.so.8.47 
ccache c++  -o lib/abyss++/libxmlrpc_abyss++.so.8.47 'lib/abyss++/xmlrpc_abyss++@sha/AbyssServer.cpp.o' 'lib/abyss++/xmlrpc_abyss++@sha/AbyssChanSwitch.cpp.o' 'lib/abyss++/xmlrpc_abyss++@sha/AbyssEnvironment.cpp.o' 'lib/abyss++/xmlrpc_abyss++@sha/AbyssChanSwitchUnix.cpp.o' 'lib/abyss++/xmlrpc_abyss++@sha/AbyssChanSwitchOpenSsl.cpp.o' -Wl,--no-undefined -Wl,--as-needed -shared -fPIC -Wl,-soname,libxmlrpc_abyss++.so.8 -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic -Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld lib/abyss/src/libxmlrpc_abyss.so.3.47 lib/libutil++/libxmlrpc_util++.so.8.47 '-Wl,-rpath,$ORIGIN/:$ORIGIN/../abyss/src:$ORIGIN/../libutil:$ORIGIN/../libutil++' -Wl,-rpath-link,/home/ts/rpmbuild/BUILD/xmlrpc-c-1.48.0/x86_64-redhat-linux-gnu/lib/abyss++:/home/ts/rpmbuild/BUILD/xmlrpc-c-1.48.0/x86_64-redhat-linux-gnu/lib/abyss/src:/home/ts/rpmbuild/BUILD/xmlrpc-c-1.48.0/x86_64-redhat-linux-gnu/lib/libutil:/home/ts/rpmbuild/BUILD/xmlrpc-c-1.48.0/x86_64-redhat-linux-gnu/lib/libutil++  
lib/abyss++/xmlrpc_abyss++@sha/AbyssServer.cpp.o: In function `xmlrpc_c::AbyssServer::Session::Impl::readSomeRequestBody(unsigned long, unsigned char*, bool*, unsigned long*)':
/home/ts/rpmbuild/BUILD/xmlrpc-c-1.48.0/x86_64-redhat-linux-gnu/../lib/abyss++/AbyssServer.cpp:232: undefined reference to `xmlrpc_strfree'
lib/abyss++/xmlrpc_abyss++@sha/AbyssServer.cpp.o: In function `xmlrpc_c::AbyssServer::Session::Impl::body[abi:cxx11]()':
AbyssServer.cpp:(.text+0x17e7): undefined reference to `xmlrpc_strfree'
lib/abyss++/xmlrpc_abyss++@sha/AbyssEnvironment.cpp.o: In function `xmlrpc_c::AbyssEnvironment::AbyssEnvironment()':
/home/ts/rpmbuild/BUILD/xmlrpc-c-1.48.0/x86_64-redhat-linux-gnu/../lib/abyss++/AbyssEnvironment.cpp:27: undefined reference to `xmlrpc_strfree'
collect2: error: ld returned 1 exit status
[149/178] "/usr/bin/python3" "/usr/bin/meson" --internal symbolextractor lib/expat/xmlparse/libxmlrpc_xmlparse.so.3.47 'lib/expat/xmlparse/xmlrpc_xmlparse@sha/lib/expat/xmlparse/libxmlrpc_xmlparse.so.3.47.symbols' 
ninja: build stopped: subcommand failed.
error: Bad exit status from /var/tmp/rpm-tmp.VMJd2G (%build)
edit retag flag offensive close merge delete

Comments

It is weird. I cannot easily say anything about it until I try it myself too. Maybe some GCC updates has made it more strict in some aspect or ... (but it usually don't happen in GCC minor updates). I wonder if building using mock will succeed...

hedayat gravatar imagehedayat ( 2017-08-20 15:38:10 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted
0

answered 2017-08-18 19:13:07 -0600

davidva gravatar image

updated 2017-08-18 19:15:19 -0600

I recommend you rebuild using mock.. gcc is special en each update....

dnf -y install mock

usermod -a -G mock your_user

NO ROOT

mock -r fedora-26-x86_64 --init

mock -r fedora-26-x86_64 xmlrpc-c-1.48.0-4.fc26.src.rpm

results: /var/lib/mock/fedora-26-x86_64/result/

edit flag offensive delete link more

Comments

Thanks for the suggestion. I will definitely try mock, but I still don't understand why I can't rebuild e.g xmlrpc-c on my Fedora 26 in tge same manner that I have done for earlier Fedora releases

Thomas Sondergaard gravatar imageThomas Sondergaard ( 2017-08-19 12:17:20 -0600 )edit

Because your system isn't 100% clean (various development packages installed), example you can rebuild your src.rpm with a virgin docker container (a chroot clean), same way with mock...

davidva gravatar imagedavidva ( 2017-08-19 23:56:09 -0600 )edit

Question Tools

2 followers

Stats

Asked: 2017-08-18 02:36:05 -0600

Seen: 407 times

Last updated: Aug 18 '17