Created attachment 350949 [details] proof of concept patch Description of problem: The pstoedit package fails to build with parallel build make flags enabled. Version-Release number of selected component (if applicable): pstoedit-3.45-7.fc11.src.rpm How reproducible: Always. Steps to Reproduce: 1. rpmbuild --rebuild pstoedit-3.45-7.fc11.src.rpm Actual results: The compilation fails with something like g++ -DPACKAGE_NAME=\"pstoedit\" -DPACKAGE_TARNAME=\"pstoedit\" -DPACKAGE_VERSION=\"3.45\" "-DPACKAGE_STRING=\"pstoedit 3.45\"" -DPACKAGE_BUGREPORT=\"wglunz34_AT_pstoedit.net\" -DPACKAGE=\"pstoedit\" -DVERSION=\"3.45\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DHAVE_DIRENT_H=1 -DHAVE_LIBGD=1 -I. -I. -DHAVE_LIBPLOTTER -DHAVE_MKSTEMP -DHAVE_MAGIC -fopenmp -I/usr/include/ImageMagick -DHAVE_LIBEMF -DHAVE_LIBPNG -DDEFAULTGS=/usr/bin/gs -DPSTOEDITDATADIR=\"/usr/share/pstoedit\" -DPSTOEDITLIBDIR=\"/usr/lib64/pstoedit\" -DBUGGYGPP -Wall -Wwrite-strings -Wcast-qual -Wpointer-arith -D_LITTLE_ENDIAN -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -DINTERNALBOOL -MT drvlplot.lo -MD -MP -MF .deps/drvlplot.Tpo -c drvlplot.cpp -fPIC -DPIC -o .libs/drvlplot.o /bin/sh ../libtool --tag=CXX --mode=link g++ -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -DINTERNALBOOL -o pstoedit -no-undefined -L. libpstoedit.la -ldl cmdmain.o -lgd g++ -DPACKAGE_NAME=\"pstoedit\" -DPACKAGE_TARNAME=\"pstoedit\" -DPACKAGE_VERSION=\"3.45\" "-DPACKAGE_STRING=\"pstoedit 3.45\"" -DPACKAGE_BUGREPORT=\"wglunz34_AT_pstoedit.net\" -DPACKAGE=\"pstoedit\" -DVERSION=\"3.45\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DHAVE_DIRENT_H=1 -DHAVE_LIBGD=1 -I. -I. -DHAVE_LIBPLOTTER -DHAVE_MKSTEMP -DHAVE_MAGIC -fopenmp -I/usr/include/ImageMagick -DHAVE_LIBEMF -DHAVE_LIBPNG -DDEFAULTGS=/usr/bin/gs -DPSTOEDITDATADIR=\"/usr/share/pstoedit\" -DPSTOEDITLIBDIR=\"/usr/lib64/pstoedit\" -DBUGGYGPP -Wall -Wwrite-strings -Wcast-qual -Wpointer-arith -D_LITTLE_ENDIAN -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -DINTERNALBOOL -MT drvwmf.lo -MD -MP -MF .deps/drvwmf.Tpo -c drvwmf.cpp -fPIC -DPIC -o .libs/drvwmf.o g++ -DPACKAGE_NAME=\"pstoedit\" -DPACKAGE_TARNAME=\"pstoedit\" -DPACKAGE_VERSION=\"3.45\" "-DPACKAGE_STRING=\"pstoedit 3.45\"" -DPACKAGE_BUGREPORT=\"wglunz34_AT_pstoedit.net\" -DPACKAGE=\"pstoedit\" -DVERSION=\"3.45\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DHAVE_DIRENT_H=1 -DHAVE_LIBGD=1 -I. -I. -DHAVE_LIBPLOTTER -DHAVE_MKSTEMP -DHAVE_MAGIC -fopenmp -I/usr/include/ImageMagick -DHAVE_LIBEMF -DHAVE_LIBPNG -DDEFAULTGS=/usr/bin/gs -DPSTOEDITDATADIR=\"/usr/share/pstoedit\" -DPSTOEDITLIBDIR=\"/usr/lib64/pstoedit\" -DBUGGYGPP -Wall -Wwrite-strings -Wcast-qual -Wpointer-arith -D_LITTLE_ENDIAN -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -DINTERNALBOOL -MT drvmagick++.lo -MD -MP -MF .deps/drvmagick++.Tpo -c drvmagick++.cpp -fPIC -DPIC -o .libs/drvmagick++.o libtool: link: cannot find the library `libpstoedit.la' make[1]: *** [pstoedit] Error 1 make[1]: *** Waiting for unfinished jobs.... g++ -shared -nostdlib /usr/lib/gcc/x86_64-redhat-linux/4.4.0/../../../../lib64/crti.o /usr/lib/gcc/x86_64-redhat-linux/4.4.0/crtbeginS.o .libs/dynload.o .libs/callgs.o .libs/lexyy.o .libs/miscutil.o .libs/cbstream.o .libs/psimage.o .libs/drvbase.o .libs/base64writer.o .libs/poptions.o .libs/subpath.o .libs/pstoedit.o -ldl -lgd -L/usr/lib/gcc/x86_64-redhat-linux/4.4.0 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.0/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.0/../../.. -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/x86_64-redhat-linux/4.4.0/crtendS.o /usr/lib/gcc/x86_64-redhat-linux/4.4.0/../../../../lib64/crtn.o -m64 -mtune=generic -Wl,-soname -Wl,libpstoedit.so.0 -o .libs/libpstoedit.so.0.0.0 (cd .libs && rm -f libpstoedit.so.0 && ln -s libpstoedit.so.0.0.0 libpstoedit.so.0) (cd .libs && rm -f libpstoedit.so && ln -s libpstoedit.so.0.0.0 libpstoedit.so) creating libpstoedit.la (cd .libs && rm -f libpstoedit.la && ln -s ../libpstoedit.la libpstoedit.la) make[1]: Leaving directory `/home/yeti/src/RPM/BUILD/pstoedit-3.45/src' make: *** [all-recursive] Error 1 error: Bad exit status from /var/tmp/rpm-tmp.98DZnT (%build) Expected results: The build succeeds. Additional info: This is caused by missing dependency of pstoedit on libpstoedit.la. The attached patch demonstrates a fix (dirty one that patches Makefile.in, one should patch Makefile.am and run automake but that's a scary prospect).
Yes, I've been burned by this many times before, but never took the time to dig into the automake stuff. Many many thanks for the patch!
pstoedit-3.45-8.fc11 has been submitted as an update for Fedora 11. http://admin.fedoraproject.org/updates/pstoedit-3.45-8.fc11
pstoedit-3.45-8.fc11 has been pushed to the Fedora 11 testing repository. If problems still persist, please make note of it in this bug report. If you want to test the update, you can install it with su -c 'yum --enablerepo=updates-testing update pstoedit'. You can provide feedback for this update here: http://admin.fedoraproject.org/updates/F11/FEDORA-2009-7671
pstoedit-3.45-8.fc11 has been pushed to the Fedora 11 stable repository. If problems still persist, please make note of it in this bug report.