Spec URL: http://cicku.me/libnatpmp.spec SRPM URL: http://cicku.me/libnatpmp-20130911-1.fc21.src.rpm Description: libnatpmp is an attempt to make a portable and fully compliant implementation of the protocol for the client side. It is based on non blocking sockets and all calls of the API are asynchronous. It is therefore very easy to integrate the NAT-PMP code to any event driven code. Fedora Account System Username: cicku
Package fails to build in mock: ... /usr/bin/ld: natpmp.o: relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC natpmp.o: could not read symbols: Bad value collect2: error: ld returned 1 exit status make: *** [libnatpmp.so] Error 1 ... The cause seems obvious: By invoking 'make CFLAGS="%{optflags}", you are overriding the CFLAGS within the Makefile, causing the package to loose the CFLAGS given in the Makefile. Depending on what you intend, you either could opt to - propagate %optflags into the Makefile, e.g. something similar to sed -i "s|CFLAGS =.*$|CFLAGS = %{optflags}|" Makefile or - explicitly append all desired CFLAGS contained in the Makefile to the CFLAGS in the make call e.g. something similar to make CFLAGS="%{optflags} -fPIC -DENABLE_STRNATPMPERR" or <something else>
Temporarily notready in a week.
(In reply to Ralf Corsepius from comment #1) > Package fails to build in mock: Even if I don't insert flags it can build well, not sure about the problem. Spec URL: http://cicku.me/libnatpmp.spec SRPM URL: http://cicku.me/libnatpmp-20131126-1.fc21.src.rpm This is a dep package of mldonkey.
Created attachment 845100 [details] Makefile patch As Ralf pointed out, you need to stop the environment CFLAGS overriding the Makefile CFLAGS. A possible patch is attached.
You patch works, but current way in my spec also works, which one do you prefer? http://koji.fedoraproject.org/koji/taskinfo?taskID=6368458
The spec file in your SRPM file is not the same as the spec file you linked (the one in the SRPM file misses the -fPIC in the CFLAGS). That's why it didn't work for me. Still, IMO keeping the -fPIC and -DENABLE_STRNATPMPERR in the makefile is cleaner, since the flags are project specific.
OK. I wil propose a patch to upstream, but use this hack for a while. If no problems here, please approve. Thanks again.
Koji: http://koji.fedoraproject.org/koji/taskinfo?taskID=6524731
(In reply to Christopher Meng from comment #7) > OK. > > I wil propose a patch to upstream, but use this hack for a while. > > If no problems here, please approve. Thanks again. You did you change anything on your package? You once againd did increment the NEVR, so their is nothing to approve.
(In reply to Ralf Corsepius from comment #9) > > If no problems here, please approve. Thanks again. > You did you change anything on your package? You once againd did increment > the NEVR, so their is nothing to approve. Actually nothing because they are the same with the one in the previous link. You pointed the fault in Sep, then I fixed it immediately in spite of leaving it here for 2 months and in Nov I checked again my remaining bugs, because at that time new version was released, so I included my fix in the new version SRPM, therefore no need to bump. Sandro still deemed that this had problem just because the spec is not coherent with the SRPM. Spec URL: http://cicku.me/libnatpmp.spec SRPM URL: http://cicku.me/libnatpmp-20131126-1.fc21.src.rpm Reserved for Ralf: SRPM URL: http://cicku.me/libnatpmp-20131126-2.fc21.src.rpm
Issues: - ldconfig is not called in %post and %postun if required. Note: /sbin/ldconfig not called in libnatpmp See: http://fedoraproject.org/wiki/Packaging/Guidelines#Shared_Libraries - Packages do not install properly. Error: Package: libnatpmp-20131126-1.fc21.x86_64 (/libnatpmp-20131126-1.fc21.x86_64) Requires: libnatpmp.so.1()(64bit) Error: Package: libnatpmp-devel-20131126-1.fc21.x86_64 (/libnatpmp-devel-20131126-1.fc21.x86_64) Requires: libnatpmp.so.1()(64bit) Note also the requires and provides: Requires -------- libnatpmp-devel (rpmlib, GLIBC filtered): libnatpmp(x86-64) libnatpmp.so.1()(64bit) libnatpmp (rpmlib, GLIBC filtered): libc.so.6()(64bit) libnatpmp.so.1()(64bit) rtld(GNU_HASH) Provides -------- libnatpmp-devel: libnatpmp-devel libnatpmp-devel(x86-64) libnatpmp: libnatpmp libnatpmp(x86-64) This is actually strange, I do not see why rpm does not pick up that libnatpmp contains ibnatpmp.so.1
RPM doesn't pick it up because no ldconfig executed, I will fix and post tomorrow. Thanks.
I thought so as well, but rebuilding with ldconfig didn't help...
This is suspect as well: libnatpmp.x86_64: W: unstripped-binary-or-object /usr/lib64/libnatpmp.so.1
(In reply to Sandro Mani from comment #14) > This is suspect as well: > libnatpmp.x86_64: W: unstripped-binary-or-object /usr/lib64/libnatpmp.so.1 Got it. Fix tomorrow.
Just found out that the issue is that libnatpmp.so.1 has permissions 0644, but auto-provides / auto-depends requires 0755 to work.
Spec URL: http://cicku.me/libnatpmp.spec SRPM URL: http://cicku.me/libnatpmp-20131126-2.fc21.src.rpm
All ok, approved!
Thank you! New Package SCM Request ======================= Package Name: libnatpnp Short Description: Library of the NAT port mapping protocol (NAT-PMP) Owners: cicku Branches: f19 f20 el6 epel7
Requested package name libnatpnp doesn't match bug summary libnatpmp, please correct.
New Package SCM Request ======================= Package Name: libnatpmp Short Description: Library of the NAT port mapping protocol (NAT-PMP) Owners: cicku Branches: f19 f20 el6 epel7
Git done (by process-git-requests).
libnatpmp-20131126-2.fc20 has been submitted as an update for Fedora 20. https://admin.fedoraproject.org/updates/libnatpmp-20131126-2.fc20
libnatpmp-20131126-2.fc19 has been submitted as an update for Fedora 19. https://admin.fedoraproject.org/updates/libnatpmp-20131126-2.fc19
libnatpmp-20131126-2.el6 has been submitted as an update for Fedora EPEL 6. https://admin.fedoraproject.org/updates/libnatpmp-20131126-2.el6
libnatpmp-20131126-2.fc19 has been pushed to the Fedora 19 testing repository.
libnatpmp-20131126-2.fc19 has been pushed to the Fedora 19 stable repository.
libnatpmp-20131126-2.fc20 has been pushed to the Fedora 20 stable repository.
libnatpmp-20131126-2.el6 has been pushed to the Fedora EPEL 6 stable repository.