Bug#615742: binutils gold fix for libdrumstick
Hello, On antradienis 01 Kovas 2011 08:06:18 Pedro Lopez-Cabanillas wrote: You are wrong assuming that the variable QT_X11_X11_LIBRARY is deprecated in CMake 2.8.1, or it is not available anymore. The CMake macros were reorganized, and now this variable is set in Qt4ConfigDependentSettings.cmake [2] (lines 259-271) which is included from FindQt4.cmake [3], line 1035, and it is also documented [4]. The attached CMakeLists.txt test file should work as expected. Here is the output in my development machine: $ cmake . -- The C compiler identification is GNU -- The CXX compiler identification is GNU -- Check for working C compiler: /usr/bin/gcc -- Check for working C compiler: /usr/bin/gcc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Looking for Q_WS_X11 -- Looking for Q_WS_X11 - found -- Looking for Q_WS_WIN -- Looking for Q_WS_WIN - not found. -- Looking for Q_WS_QWS -- Looking for Q_WS_QWS - not found. -- Looking for Q_WS_MAC -- Looking for Q_WS_MAC - not found. -- Found Qt-Version 4.6.3 (using /usr/bin/qmake) -- Looking for _POSIX_TIMERS -- Looking for _POSIX_TIMERS - found -- QT_X11_X11_LIBRARY contains: /usr/lib/libX11.so -- Configuring done -- Generating done I don't see anything in the code you referred to which would define QT_X11_X11_LIBRARY variable. If anything it shows that X11_X11_LIB is being used. You're right that current debian patch (courtesy by ubuntu) is a pure hack and you nailed its deficiencies well. But you have the bug on your hands nevertheless, it's not debian-specific bug. In order to fix this properly, do find_package(X11) and use a proper variable which expands to X11 library (iirc, X11_X11_lib). I don't agree with that. You are proposing to patch this package, but every build system depending on CMake and the variable QT_X11_X11_LIBRARY would need a similar patch. Won't be better a common solution that works for all of them? In my opinion it would be preferred to patch Debian's CMake package. Oh please. Debian DOES NOT patch cmake in this Qt4 code or anything remotely related. Period. We actively push cmake patches upstream and our 2.8.4 is an almost pure vanilla version with a couple of minor changes now. QT_X11_X11_LIBRARY was removed in favour of X11_X11_LIB and that's how it is (I don't feel like chasing when). Just get over it. I feel like you are not listening, but it's your right. So until you wake up, Debian maintainer will have to patch libdrumstick. However, I just suggest him doing s/QT_X11_X11_LIBRARY/X11_X11_LIB/ instead of current patch-hack that is of really poor quality and has some bad side effects. Sorry for a bit rude tone, but I really feel that I spent more time on this I have on my hands. Such a long debate for a single variable? Uch... -- Modestas Vainius mo...@debian.org signature.asc Description: This is a digitally signed message part. ___ pkg-multimedia-maintainers mailing list pkg-multimedia-maintainers@lists.alioth.debian.org http://lists.alioth.debian.org/mailman/listinfo/pkg-multimedia-maintainers
Bug#615742: binutils gold fix for libdrumstick
On Tue, Mar 01, 2011 at 11:57:13AM +0200, Modestas Vainius wrote: Hi! I feel like you are not listening, but it's your right. So until you wake up, Debian maintainer will have to patch libdrumstick. However, I just suggest him doing s/QT_X11_X11_LIBRARY/X11_X11_LIB/ instead of current patch-hack that is of really poor quality and has some bad side effects. I've crafted a libdrumstick patch as you suggested: http://git.debian.org/?p=pkg-multimedia/libdrumstick.git;a=commitdiff;h=08a4577b83269785de0fd2dcd7587a890fdfd6fd It works, though I'm by far no cmake expert, so this might not be the best solution. Cheers -- mail: a...@thur.de http://adi.thur.de PGP/GPG: key via keyserver ___ pkg-multimedia-maintainers mailing list pkg-multimedia-maintainers@lists.alioth.debian.org http://lists.alioth.debian.org/mailman/listinfo/pkg-multimedia-maintainers
Bug#615742: binutils gold fix for libdrumstick
Hello, On antradienis 01 Kovas 2011 17:28:25 Adrian Knoth wrote: On Tue, Mar 01, 2011 at 11:57:13AM +0200, Modestas Vainius wrote: Hi! I feel like you are not listening, but it's your right. So until you wake up, Debian maintainer will have to patch libdrumstick. However, I just suggest him doing s/QT_X11_X11_LIBRARY/X11_X11_LIB/ instead of current patch-hack that is of really poor quality and has some bad side effects. I've crafted a libdrumstick patch as you suggested: http://git.debian.org/?p=pkg-multimedia/libdrumstick.git;a=commitdiff;h=08 a4577b83269785de0fd2dcd7587a890fdfd6fd It works, though I'm by far no cmake expert, so this might not be the best solution. You can omit find_package(X11) as Qt4ConfigDependentSettings.cmake should call it [1]. Other than that, it's ok. Ship it! [1] See /usr/share/cmake-2.8/Modules/Qt4ConfigDependentSettings.cmake:98 -- Modestas Vainius mo...@debian.org signature.asc Description: This is a digitally signed message part. ___ pkg-multimedia-maintainers mailing list pkg-multimedia-maintainers@lists.alioth.debian.org http://lists.alioth.debian.org/mailman/listinfo/pkg-multimedia-maintainers
Bug#615742: binutils gold fix for libdrumstick
Hello, On antradienis 01 Kovas 2011 01:06:22 Pedro Lopez-Cabanillas wrote: I've wrote Drumstick, and I know for sure that the target vpiano uses QT_X11_X11_LIBRARY for linking. The bug report says that when linking this target in Debian, it fails saying that -lX11 is required. I suspect that there may be a problem in Debian around this matter. It works fine in some other distros. Nop, you misunderstood the bug a bit. It does link on Debian or 0.5.0-1 would not be in Debian testing. gold linker enables --no-add-needed by default and that's typically the reason for packages to fail linking with it. Now ubuntu enabled --as-needed by default and gcc maintainer is pushing this to debian proper too. So yes, the reason it's failing is that QT_X11_X11_LIBRARY is undefined and -- no-add-needed no longer looks the library up recursively. The code which sets this variable was removed in cmake 2.8.1 by [1]. QT_X11_X11_LIBRARY falls out of FindQt4.cmake scope. You're right that current debian patch (courtesy by ubuntu) is a pure hack and you nailed its deficiencies well. But you have the bug on your hands nevertheless, it's not debian-specific bug. In order to fix this properly, do find_package(X11) and use a proper variable which expands to X11 library (iirc, X11_X11_lib). 1.http://cmake.org/gitweb?p=cmake.git;a=commit;h=0f457937f4f5cbdaedaaec00849cb7a050bbc0f4 -- Modestas Vainius mo...@debian.org signature.asc Description: This is a digitally signed message part. ___ pkg-multimedia-maintainers mailing list pkg-multimedia-maintainers@lists.alioth.debian.org http://lists.alioth.debian.org/mailman/listinfo/pkg-multimedia-maintainers
Bug#615742: binutils gold fix for libdrumstick
Hi, Just for the record: in Drumstick's source tree, directory utils/vpiano, the file CMakeLists.txt has the following lines defining the list of libraries that need to be linked to that program: TARGET_LINK_LIBRARIES(drumstick-vpiano ${QT_LIBRARIES} ${ALSA_LIBS} ${QT_X11_X11_LIBRARY} drumstick-common drumstick-alsa ) On Tuesday 01 March 2011, Modestas Vainius wrote: Hello, On antradienis 01 Kovas 2011 01:06:22 Pedro Lopez-Cabanillas wrote: I've wrote Drumstick, and I know for sure that the target vpiano uses QT_X11_X11_LIBRARY for linking. The bug report says that when linking this target in Debian, it fails saying that -lX11 is required. I suspect that there may be a problem in Debian around this matter. It works fine in some other distros. Nop, you misunderstood the bug a bit. It does link on Debian or 0.5.0-1 would not be in Debian testing. gold linker enables --no-add-needed by default and that's typically the reason for packages to fail linking with it. Now ubuntu enabled --as-needed by default and gcc maintainer is pushing this to debian proper too. The same policy was introduced in Fedora some time ago, and probably in other distros as well. Anyway, I understood the problem the first time, and this is how I've tested the build system here (running openSUSE 11.3) $ cmake --version cmake version 2.8.1 $ cmake .. -DCMAKE_EXE_LINKER_FLAGS=-Wl,--no-add-needed The build process works fine here using this flag. This is the relevant part of the log: Linking CXX executable ../../bin/drumstick-vpiano cd /home/pedro/Projects/drumstick/build/utils/vpiano /usr/bin/cmake -E cmake_link_script CMakeFiles/drumstick-vpiano.dir/link.txt --verbose=1 /usr/bin/c++-fexceptions -UQT_NO_EXCEPTIONS -fvisibility=hidden -fvisibility-inlines-hidden -Wl,--no-add-needed -Wl,--as-needed CMakeFiles/drumstick-vpiano.dir/moc_pianoscene.cxx.o CMakeFiles/drumstick-vpiano.dir/moc_pianokeybd.cxx.o CMakeFiles/drumstick-vpiano.dir/moc_vpianoabout.cxx.o CMakeFiles/drumstick-vpiano.dir/moc_connections.cxx.o CMakeFiles/drumstick-vpiano.dir/moc_preferences.cxx.o CMakeFiles/drumstick-vpiano.dir/moc_vpiano.cxx.o CMakeFiles/drumstick-vpiano.dir/pianokey.cpp.o CMakeFiles/drumstick-vpiano.dir/pianoscene.cpp.o CMakeFiles/drumstick-vpiano.dir/pianokeybd.cpp.o CMakeFiles/drumstick-vpiano.dir/keylabel.cpp.o CMakeFiles/drumstick-vpiano.dir/rawkeybdapp.cpp.o CMakeFiles/drumstick-vpiano.dir/vpianoabout.cpp.o CMakeFiles/drumstick-vpiano.dir/connections.cpp.o CMakeFiles/drumstick-vpiano.dir/preferences.cpp.o CMakeFiles/drumstick-vpiano.dir/vpiano.cpp.o CMakeFiles/drumstick-vpiano.dir/vpianomain.cpp.o CMakeFiles/drumstick-vpiano.dir/qrc_pianokeybd.cxx.o -o ../../bin/drumstick-vpiano -rdynamic -L/home/pedro/Projects/drumstick/build/lib -lQtSvg -lQtGui -lQtDBus -lQtXml -lQtCore -lQtSvg -lQtGui -lQtDBus -lQtXml -lQtCore -lasound -lX11 ../../lib/libdrumstick-common.a ../../lib/libdrumstick-alsa.so.0.5.1 -lQtSvg -lQtGui -lQtDBus -lQtXml -lQtCore -lQtSvg -lQtGui -lQtDBus -lQtXml -lQtCore -lasound -Wl,-rpath,/home/pedro/Projects/drumstick/build/lib make[3]: Leaving directory `/home/pedro/Projects/drumstick/build' /usr/bin/cmake -E cmake_progress_report /home/pedro/Projects/drumstick/build/CMakeFiles 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 [100%] Built target drumstick-vpiano So yes, the reason it's failing is that QT_X11_X11_LIBRARY is undefined and -- no-add-needed no longer looks the library up recursively. The code which sets this variable was removed in cmake 2.8.1 by [1]. QT_X11_X11_LIBRARY falls out of FindQt4.cmake scope. You are wrong assuming that the variable QT_X11_X11_LIBRARY is deprecated in CMake 2.8.1, or it is not available anymore. The CMake macros were reorganized, and now this variable is set in Qt4ConfigDependentSettings.cmake [2] (lines 259-271) which is included from FindQt4.cmake [3], line 1035, and it is also documented [4]. The attached CMakeLists.txt test file should work as expected. Here is the output in my development machine: $ cmake . -- The C compiler identification is GNU -- The CXX compiler identification is GNU -- Check for working C compiler: /usr/bin/gcc -- Check for working C compiler: /usr/bin/gcc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Looking for Q_WS_X11 -- Looking for Q_WS_X11 - found -- Looking for Q_WS_WIN -- Looking for Q_WS_WIN - not found. -- Looking for Q_WS_QWS -- Looking for Q_WS_QWS - not found. -- Looking for Q_WS_MAC -- Looking for Q_WS_MAC - not found. -- Found Qt-Version 4.6.3 (using /usr/bin/qmake) -- Looking for _POSIX_TIMERS -- Looking for _POSIX_TIMERS - found -- QT_X11_X11_LIBRARY contains: /usr/lib/libX11.so -- Configuring done -- Generating