I'm updating gutenprint to the next micro release, which is mostly straightforward. However, the linking of the gimp plugin is complaining about gexiv2 not being found, and that's not in the bl3 list. My build environment is up-to-date netbsd-7 amd64, with the default cwrappers and the host gcc 4.8, and PKGSRC_COMPILER=ccache gcc. (Plus, I built with USE_CWRAPPERS=no and got the same result.) Note that i have new gimp and many other things since my last build of gutenprint. But, I built gutenprint-lib from CVS, without my update, and the same problem happens. I see that gimpbase depends on exiv2: /usr/pkg/lib/libgimpbase-2.0.so: -lgio-2.0.0 => /usr/pkg/lib/libgio-2.0.so.0 -lgobject-2.0.0 => /usr/pkg/lib/libgobject-2.0.so.0 -lglib-2.0.0 => /usr/pkg/lib/libglib-2.0.so.0 -lpcre.1 => /usr/pkg/lib/libpcre.so.1 -lgcc_s.1 => /usr/lib/libgcc_s.so.1 -lc.12 => /usr/lib/libc.so.12 -lintl.1 => /usr/lib/libintl.so.1 -lpthread.1 => /usr/lib/libpthread.so.1 -lffi.6 => /usr/pkg/lib/libffi.so.6 -lgmodule-2.0.0 => /usr/pkg/lib/libgmodule-2.0.so.0 -lz.1 => /usr/lib/libz.so.1 -lgexiv2.2 => /usr/pkg/lib/libgexiv2.so.2 -lexiv2.26 => /usr/pkg/lib/libexiv2.so.26 -lexpat.2 => /usr/lib/libexpat.so.2 -lstdc++.7 => /usr/lib/libstdc++.so.7 -lm.0 => /usr/lib/libm.so.0 -ljpeg.9 => /usr/pkg/lib/libjpeg.so.9 -lexecinfo.0 => /usr/lib/libexecinfo.so.0 -lelf.1 => /usr/lib/libelf.so.1 But, exiv2 is not in gimp's bl3, and thus in theory I should be able to link to gimpbase-2.0 without explicitly linking in exiv2. gutenprint's build grabs the gimp LIBS via pkg-config. But, after libtool is invoked with the variable as defined in the Makefile, the actual gcc invocation has reordered the libraries and added exiv2 and gexiv2. So I am wondering: is libtool reordering libraries for some reason? Is this believed to be a good idea? is libtool running ldd behind my back and deciding to add in libraries to the link line when they weren't specified? Or something like that? If so, is this a bug or a feature? Or is it a clue that exiv/exiv2 really should be dependencies of programs that link against gimp? does gimp really need to add exiv/exiv2 to the bl3 (by rights, not to work around libtool bugs) The relevant part of the build log follows (plus I added newlines to make it readable, and a comment). I could not find any other reason for exiv/exiv2 appearing other than libtool deciding to add it. gmake[3]: Entering directory '/home/n0/gdt/pkgsrc-current/pkgsrc/print/gutenprint-lib/work/gutenprint-5.2.14/src/gimp2' /bin/sh ../../libtool --tag=CC --mode=link gcc -Disfinite=finite -O2 -D_FORTIFY_SOURCE=2 -I/usr/pkg/include -I/usr/include -I/usr/X11R7/include -I/usr/X11R7/include/freetype2 -I/usr/pkg/include/glib/glib-2.0 -I/usr/pkg/include/glib/gio-unix-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/X11R7/include/libdrm -I/usr/include/krb5 -O6 -L/usr/pkg/lib -L/usr/lib -Wl,-R/usr/lib -Wl,-R/usr/pkg/lib -L/usr/X11R7/lib -Wl,-R/usr/X11R7/lib -o gutenprint print-image-gimp.o print.o print-gutenprint.o -L/usr/pkg/lib -lgimpui-2.0 -lgimpwidgets-2.0 -lgimpmodule-2.0 -lgimp-2.0 -lgimpmath-2.0 -lgimpconfig-2.0 -lgimpcolor-2.0 -lgimpbase-2.0 -lgegl-0.4 -lgegl-npd-0.4 -lm -Wl,--export-dynamic -lgmodule-2.0 -pthread -lglib-2.0 -ljson-glib-1.0 -lbabl-0.1 -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -L/usr/X11R7/lib -lXrender -lXinerama -lXi -lXrandr -lXcursor -lXcomposite -lXdamage -lXfixes -lX11 -lXext -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lintl -Wl,-R/usr/pkg/lib -lfribidi -lfreetype -lz -lbz2 -Wl,-rpath,/usr/X11R7/lib -lfontconfig ../../src/main/libgutenprint.la ../../src/gutenprintui2/libgutenprintui2.la /usr/pkg/lib/libintl.so /usr/lib/libc.so -Wl,-rpath -Wl,/usr/pkg/lib -lm libtool: link: gcc -Disfinite=finite -O2 -D_FORTIFY_SOURCE=2 -I/home/n0/gdt/pkgsrc-current/pkgsrc/print/gutenprint-lib/work/.buildlink/include -I/home/n0/gdt/pkgsrc-current/pkgsrc/print/gutenprint-lib/work/.x11-buildlink/include -I/home/n0/gdt/pkgsrc-current/pkgsrc/print/gutenprint-lib/work/.x11-buildlink/include/freetype2 -I/home/n0/gdt/pkgsrc-current/pkgsrc/print/gutenprint-lib/work/.buildlink/include/glib/glib-2.0 -I/home/n0/gdt/pkgsrc-current/pkgsrc/print/gutenprint-lib/work/.buildlink/include/glib/gio-unix-2.0 -I/home/n0/gdt/pkgsrc-current/pkgsrc/print/gutenprint-lib/work/.buildlink/lib/glib-2.0/include -I/home/n0/gdt/pkgsrc-current/pkgsrc/print/gutenprint-lib/work/.x11-buildlink/include/libdrm -I/usr/include/krb5 -O6 -Wl,-rpath -Wl,/usr/pkg/lib -Wl,-rpath -Wl,/usr/X11R7/lib -o .libs/gutenprint print-image-gimp.o print.o print-gutenprint.o -Wl,--export-dynamic -pthread -Wl,-rpath -Wl,/usr/pkg/lib -Wl,-rpath -Wl,/usr/X11R7/lib -Wl,-rpath -Wl,/usr/pkg/lib -L/home/n0/gdt/pkgsrc-current/pkgsrc/print/gutenprint-lib/work/gutenprint-5.2.14/src/main/.libs -L/home/n0/gdt/pkgsrc-current/pkgsrc/print/gutenprint-lib/work/.buildlink/lib -L/home/n0/gdt/pkgsrc-current/pkgsrc/print/gutenprint-lib/work/.x11-buildlink/lib -lgimpui-2.0 -L../xmpsdk/src -L../src/.libs -lgimpwidgets-2.0 -lgimpmodule-2.0 -lgimp-2.0 -lgimpconfig-2.0 -lgimpmath-2.0 -lgimpcolor-2.0 -llcms2 # extra not given -lgimpbase-2.0 -lgexiv2 -lexiv2 -ljpeg -lexecinfo # extra 4 not given -lgegl-npd-0.4 -lgegl-0.4 -ljson-glib-1.0 -lbabl-0.1 -lpthread -L../../src/main/.libs -L../../src/gutenprintui2/.libs -lgutenprintui2 -lgutenprint -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -lXinerama -lXi -lXrandr -lXcursor -lXcomposite -lXdamage -lXfixes -latk-1.0 -lcairo -lpixman-1 -lxcb-shm -lxcb-render -lxcb -lXrender -lX11 -lXext -lrt -lgdk_pixbuf-2.0 -lpng16 -lgio-2.0 -lgmodule-2.0 -lpangoft2-1.0 -lharfbuzz -lexpat -luuid -lpango-1.0 -lgthread-2.0 -lgobject-2.0 -lffi -lglib-2.0 -lpcre -lfribidi -lfreetype -lz -lbz2 -lfontconfig -lintl -lc -lm -pthread -Wl,-rpath,/home/n0/gdt/pkgsrc-current/pkgsrc/print/gutenprint-lib/work/.buildlink/lib -Wl,-rpath,/usr/pkg/lib ld: cannot find -lgexiv2 ld: cannot find -lexiv2 Makefile:523: recipe for target 'gutenprint' failed gmake[3]: *** [gutenprint] Error 1 gmake[3]: Leaving directory '/home/n0/gdt/pkgsrc-current/pkgsrc/print/gutenprint-lib/work/gutenprint-5.2.14/src/gimp2'
Attachment:
signature.asc
Description: PGP signature