Package: grr.app Version: 0.6.2.dfsg-5 Severity: important Tags: patch User: [email protected] Usertags: origin-ubuntu ubuntu-patch oneiric
I noticed that somebody had synced the base GNUstep packages from experimental into Ubuntu oneiric, so I started work on rebuilding all the application packages against that new version so that we can drop the older library versions. grr.app failed to build as follows: https://launchpadlibrarian.net/74974288/buildlog_ubuntu-oneiric-i386.grr.app_0.6.2.dfsg-5build2_FAILEDTOBUILD.txt.gz gcc -rdynamic -lRSSKit -Wl,-z,defs -Wl,--as-needed -Wl,-rpath,/usr/lib/grr.app -LRSSKit/obj -LlibRSSKit.obj -shared-libgcc -fexceptions -fgnu-runtime -o Grr.app/./Grr \ ./obj/Grr.obj/AppController.m.o ./obj/Grr.obj/MainController.m.o ./obj/Grr.obj/MainTableDelegate.m.o ./obj/Grr.obj/FeedList.m.o ./obj/Grr.obj/FeedTableDelegate.m.o ./obj/Grr.obj/ArticleViewing.m.o ./obj/Grr.obj/FeedSelection.m.o ./obj/Grr.obj/FeedManagement.m.o ./obj/Grr.obj/FetchingProgressManager.m.o ./obj/Grr.obj/ErrorLogController.m.o ./obj/Grr.obj/OpenURL.m.o ./obj/Grr.obj/PreferencesController.m.o ./obj/Grr.obj/RSSDropZone.m.o ./obj/Grr.obj/FilterManager.m.o ./obj/Grr.obj/RSSReaderFeed.m.o ./obj/Grr.obj/RSSReaderArticle.m.o ./obj/Grr.obj/RSSReaderService.m.o ./obj/Grr.obj/FeedPreferencesManager.m.o ./obj/Grr.obj/main.m.o -L/usr/local/lib -L/usr/lib -lgnustep-gui -lgnustep-base -lpthread -lobjc -lm ./obj/Grr.obj/MainController.m.o:(.data.rel+0x10): undefined reference to `__objc_class_name_RSSArticle' ./obj/Grr.obj/ArticleViewing.m.o:(.data.rel+0x0): undefined reference to `__objc_class_name_RSSArticle' ./obj/Grr.obj/FeedSelection.m.o:(.data.rel+0x0): undefined reference to `__objc_class_name_RSSFeed' ./obj/Grr.obj/FeedManagement.m.o:(.data.rel+0x14): undefined reference to `__objc_class_name_RSSFeed' ./obj/Grr.obj/FilterManager.m.o:(.data.rel+0x4): undefined reference to `__objc_class_name_RSSFeed' ./obj/Grr.obj/RSSReaderFeed.m.o:(.data.rel+0x4): undefined reference to `__objc_class_name_RSSFeed' ./obj/Grr.obj/RSSReaderArticle.m.o:(.data.rel+0x4): undefined reference to `__objc_class_name_RSSArticle' ./obj/Grr.obj/FeedPreferencesManager.m.o:(.data.rel+0x4): undefined reference to `__objc_class_name_RSSFeed' It appears that link-libs.patch needs to be extended to cover this; -lRSSKit is clearly in the wrong place on the link line for --as-needed (http://wiki.debian.org/ToolChain/DSOLinking). This probably doesn't affect Debian right now because --as-needed is a positional option and only affects those libraries listed after it, but Ubuntu's linker defaults to --as-needed right out of the gate. Nevertheless, I believe that the debian-gcc team is tracking these problems and wants to make Debian packages work cleanly with such a linker. Here's a patch. Does it seem like a reasonable approach? * debian/patches/link-libs.patch: Use ADDITIONAL_GUI_LIBS rather than ADDITIONAL_LDFLAGS in GNUmakefile.preamble. diff -u grr.app-0.6.2.dfsg/debian/patches/link-libs.patch grr.app-0.6.2.dfsg/debian/patches/link-libs.patch --- grr.app-0.6.2.dfsg/debian/patches/link-libs.patch +++ grr.app-0.6.2.dfsg/debian/patches/link-libs.patch @@ -2,6 +2,8 @@ * RSSKit/GNUmakefile (libRSSKit_LIBRARIES_DEPEND_UPON): Add $(OBJC_LIBS). + * GNUmakefile.preamble (ADDITIONAL_LDFLAGS): Rename to... + (ADDITIONAL_GUI_LIBS): ...this. --- grr.app-0.6.2.dfsg.orig/RSSKit/GNUmakefile @@ -17,0 +20,11 @@ +--- grr.app-0.6.2.dfsg.orig/GNUmakefile.preamble ++++ grr.app-0.6.2.dfsg/GNUmakefile.preamble +@@ -12,7 +12,7 @@ + ADDITIONAL_CFLAGS += + + # Additional flags to pass to the linker +-ADDITIONAL_LDFLAGS += -lRSSKit ++ADDITIONAL_GUI_LIBS += -lRSSKit + + # Additional include directories the compiler should search + ADDITIONAL_INCLUDE_DIRS += -- Colin Watson [[email protected]] -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]

