Host: FreeBSD 13.0-CURRENT #84 r356991: Wed Jan 22 20:29:28 CET 2020 amd64, ports tree at 523835, updating/upgrading the local ports via traditional make/portmaster fails with the error shown below: [...] /usr/bin/c++ -Wall -Wextra -Wpedantic -Wno-unused-parameter -Wcast-align -Wformat-security -Wframe-larger-than=65536 -Wmissing-format-attribute -Wnon-virtual-dtor -Woverloaded-virtual -Wmissing-declarations -Wundef -Wzero-as-null-pointer-constant -Wshadow -fno-exceptions -fno-check-new -fno-common -D_DEFAULT_SOURCE -O2 -DNDEBUG -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing -isystem /usr/local/include -fstack-protector-strong CMakeFiles/poppler-glib-demo.dir/main.c.o CMakeFiles/poppler-glib-demo.dir/find.c.o CMakeFiles/poppler-glib-demo.dir/fonts.c.o CMakeFiles/poppler-glib-demo.dir/forms.c.o CMakeFiles/poppler-glib-demo.dir/info.cc.o CMakeFiles/poppler-glib-demo.dir/images.c.o CMakeFiles/poppler-glib-demo.dir/links.c.o CMakeFiles/poppler-glib-demo.dir/outline.c.o CMakeFiles/poppler-glib-demo.dir/page.c.o CMakeFiles/poppler-glib-demo.dir/print.c.o CMakeFiles/poppler-glib-demo.dir/render.c.o CMakeFiles/poppler-glib-demo.dir/text.c.o CMakeFiles/poppler-glib-demo.dir/transitions.c.o CMakeFiles/poppler-glib-demo.dir/utils.c.o CMakeFiles/poppler-glib-demo.dir/annots.c.o CMakeFiles/poppler-glib-demo.dir/attachments.c.o CMakeFiles/poppler-glib-demo.dir/layers.c.o CMakeFiles/poppler-glib-demo.dir/selections.c.o CMakeFiles/poppler-glib-demo.dir/taggedstruct.c.o -o poppler-glib-demo -Wl,-rpath,/usr/ports/graphics/poppler-glib/work/poppler-0.84.0/glib:/usr/ports/graphics/poppler-glib/work/poppler-0.84.0:/usr/local/lib /usr/local/lib/libcairo.so ../libpoppler-glib.so.8.15.0 -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lpthread -lgio-2.0 -lgdk_pixbuf-2.0 -lgobject-2.0 -lglib-2.0 -lintl /usr/local/lib/libcairo.so ../../libpoppler.so.94.0.0 /usr/local/lib/libgio-2.0.so /usr/local/lib/libgobject-2.0.so /usr/local/lib/libglib-2.0.so /usr/local/lib/libintl.so /usr/local/lib/libfreetype.so -pthread ld: error: unable to find library -lgtk-3 ld: error: unable to find library -lgdk-3 ld: error: unable to find library -lpangocairo-1.0 ld: error: unable to find library -lpango-1.0 ld: error: unable to find library -latk-1.0 ld: error: unable to find library -lcairo-gobject ld: error: unable to find library -lcairo ld: error: unable to find library -lgio-2.0 ld: error: unable to find library -lgdk_pixbuf-2.0 ld: error: unable to find library -lgobject-2.0 ld: error: unable to find library -lglib-2.0 ld: error: unable to find library -lintl c++: error: linker command failed with exit code 1 (use -v to see invocation) *** [glib/demo/poppler-glib-demo] Error code 1 make[3]: stopped in /usr/ports/graphics/poppler-glib/work/poppler-0.84.0
Moin moin Please update your tree to r523840 [1]. mfg Tobias [1] https://svnweb.freebsd.org/changeset/ports/523840
The underlying issue is that in an unclean environment it finds gtk and builds the demo-application. if (GTK_FOUND AND BUILD_GTK_TESTS) add_subdirectory(demo) endif () So we can just toggle the option BUILD_GTK_TESTS to off, and it should work again, and revert the temporary fix of r523840. mfg Tobias
Created attachment 210973 [details] v2 Remove localbase:ldflags again, and toggle BUILD_GTK_TESTS off.
A commit references this bug: Author: tcberner Date: Sat Jan 25 20:27:10 UTC 2020 New revision: 524130 URL: https://svnweb.freebsd.org/changeset/ports/524130 Log: graphics/poppler-glib: disable gkt-test/demo builds In unclean build environments GTK could get picked up and lead to linker errrors in demo applications which are not installed, but still manage to make the build fail. Remove the temporary work around added in r523840 which passed -L${LOCALBASE}/lib to the linker. PR: 243525 Reported by: Walter Schwarzenfeld <w.schwarzenfeld@utanet.at>, O. Hartmann <ohartmann@walstatt.org> Changes: head/graphics/poppler/Makefile
Created attachment 211111 [details] [patch] fix for "cannot fine -lgtk-3" I've had this patch locally for a few months and just saw this PR. It allows the gtk tests (so you could remove the CMAKE_OFF=BUILD_GTK_TESTS). And it could (probably should be) upstreamed. But I never got around to that. If someone else does, that would be great. The root cause is poor cmake config (unfortunately a common thing, but that's partly because of the cmake culture itself). I can open a new bug, but I thought I'd start here. Feel free to re-open and apply this patch. This has been QA tested inside poudriere and outside on a live system with lots of other packages installed.
Moin moin Thanks, but... :D That would also require adding a dependency on gtk3 for a binary we don't install. Not sure what would be the benefit there :) mfg Tobias