Please do not reply directly to this email. All additional comments should be made in the comments box of this bug. https://bugzilla.redhat.com/show_bug.cgi?id=476398 --- Comment #19 from Michael Schwendt <bugs.michael@xxxxxxx> 2009-03-19 05:38:10 EDT --- > g++ -c -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack- > protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic > -fasynchronous-unwind-tables -fPIC -DUSE_PARI_FACTORING -DNTL_ALL > -I/usr/local/include -I/usr/local/include interface.cc -o interface_n.o > pslave_n.o parifact_n.o -lpari -L/usr/local/lib -L/usr/local/lib -lntl > -lgmp -lpari -lm Find out where the -I/usr/local/include and -L/usr/local/lib come from, then get rid of them for sake of reproducible builds. No issue for builds in clean buildroots. Not clean for ordinary builds on installed Fedora systems where /usr/local might contain locally built stuff. > %package devel According to the guidelines, this ought to Requires: %{name} = %{version}-%{release} to enforce a matching pair of development files and binaries. This guideline alone should make a packager realise "oh, wait, there are shared libs in this package, so not creating a main library package for them would be strange". In reply to comment 3: > - fix the soname mess, probably install to a subdirectory of _libdir? > %{_libdir}/%{name}/*.so > %{_libdir}/%{name}/lib*.a That doesn't fix the "soname mess". It makes things worse, because you've moved the shared libs out of run-timer linker's search path. Any application linked to these libs would fail to start. The static archive would not be found either at build-time. It would be necessary to adjust the compiler's library search path (-L%{_libdir}/%{name}), which probably no existing application does, because it expects to find the eclib libraries in default search path. Further, the shared libraries [if moved incorrectly as in current spec file] are still seen by rpmbuild's dependency generators. They still lead to automatic SONAME "Provides" and "Requires", even if the libraries won't be found at run-time. The SONAME is the internal shared object name as stored in the ELF header. You can display it with objdump -p or eu-readelf like this: $ eu-readelf -d /usr/lib/libgthread-2.0.so|grep -i soname SONAME Library soname: [libgthread-2.0.so.0] Noticing that the package builds several test programs, consider including a %check section for "make check". It is good packaging-practise to run a test-suite at build-time unless it is known/confirmed to be broken. -- Configure bugmail: https://bugzilla.redhat.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. _______________________________________________ Fedora-package-review mailing list Fedora-package-review@xxxxxxxxxx http://www.redhat.com/mailman/listinfo/fedora-package-review