qt4-qtruby version 1.4.10 has been released. Reproducible: Always I tried hacking around to make the ebuild work, but I haven't been able to.
Created attachment 161141 [details] simple ebuild I've made a simple ebuild that works if you don't have qwt installed (there are sandbox violations as well), unfortunately after successful build I get: irb(main):001:0> require 'Qt4' LoadError: /usr/lib/libsmokeqt.so.2: undefined symbol: _ZN8QWebView11qt_metacastEPKc - /usr/lib64/ruby/site_ruby/1.8/x86_64-linux/qtruby4.so from /usr/lib64/ruby/site_ruby/1.8/x86_64-linux/qtruby4.so from /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require' from /usr/lib64/ruby/site_ruby/1.8/Qt4.rb:5 from /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require' from /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require' from (irb):1
(In reply to comment #1) > Created an attachment (id=161141) [edit] > simple ebuild > > I've made a simple ebuild that works if you don't have qwt installed (there are > sandbox violations as well), unfortunately after successful build I get: > irb(main):001:0> require 'Qt4' > LoadError: /usr/lib/libsmokeqt.so.2: undefined symbol: > _ZN8QWebView11qt_metacastEPKc - > /usr/lib64/ruby/site_ruby/1.8/x86_64-linux/qtruby4.so > from /usr/lib64/ruby/site_ruby/1.8/x86_64-linux/qtruby4.so > from /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in > `require' > from /usr/lib64/ruby/site_ruby/1.8/Qt4.rb:5 > from /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in > `gem_original_require' > from /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in > `require' > from (irb):1 > PHEW got this "undefined symbol: _ZN8QWebView11qt_metacastEPKc" wiped out. Problem was the old FindQt4.cmake shipped with qt4-qtruby. There was not yet any QtWebkit integrated. There were some more problems, also with the newest FindQt4.cmake shipped with latest cmake. I think I will write a mail directly to Richard. I also hope to get rid of this annoying qwt-error...
any success on this?
i <3 google :D Here's a small background on how i got it to work: I couldnt emerge qt4-qtruby (1.4.9-r3). (see bug #220002) so, i tried the 1.4.10 version. it builded and installed fine but running a qtruby app failed with a problem with linking saying that: /usr/local/lib/libsmokeqt.so.2 couldn't find /usr/lib64/ruby/site_ruby/1.8/x86_64-linux/qtruby4.so , although i had it. Meanwhile i installed korundum (kde bindings) and had a new error, so got to this bug report. The error was: ( undefined symbol: _ZN8QWebView11qt_metacastEPKc - /usr/lib64/ruby/site_ruby/1.8/x86_64-linux/qtruby4.so (LoadError) ). found this patch on the net, somehow, and applied it. http://pastie.org/353809.txt builded again 1.4.10, and finally i can run qtruby code :D. good luck :)
Created attachment 180434 [details] build.log Did you guys actually managed to compile it? Cause it fails for me
I think I ll CC the actual maintainer of this package. Maybe he could help us bring this update to the tree :) Samuli, can you take a look on this bug? Thanks :)
It looks like this package is completely broken at this point. I'm assigning this as a tracker for all issues with dev-ruby/qt4-qtruby brokenness, as these issues should be fixed if and when a version bump will finally hit the tree. Until then I am hardmasking this package, so that users will not stumble into this mess unawares. The issues I identified are: 1. version bump to 1.4.10 (or later when available) 2. porting ebuild to EAPI=2 for use dependencies 3. update Qt dependencies to split qt ebuilds [bug 217183] 4. problems compiling with x11-libs/qwt and >=gcc-4.2 [bugs 224091 and 220002] 5. possibly needs the patch mentioned in comment #4 below
There is a new major version now, 2.0.3 just got released. We'll look into this, see if this is easier to make work.
(In reply to comment #8) > There is a new major version now, 2.0.3 just got released. We'll look into > this, see if this is easier to make work. Any luck with this one? It seems that after last qwt upgrade I cannot run qtruby programs any more: /usr/lib/libsmokeqt.so.2: undefined symbol: _ZNK7QwtPlot11printCanvasEP8QPainterRK5QRectPK11QwtScaleMapRK18QwtPlotPrintFilter - /usr/lib/ruby/site_ruby/1.8/i686-linux/qtruby4.so (LoadError) And re-emerging qt4-qtruby does not work. Version 2.0.3 would also be nice with its ruby-1.9 and Qt-4.5 compatibility.
Created attachment 189304 [details] ebuild for QT4-QtRuby-2.0.3
Created attachment 189306 [details] Required (dirty) patch to avoid linking to smokekde
Hey guys, this ebuild for 2.0.3 works fine for me. Hope it helps you, too :-)
I had to change in qt4-qtruby-2.0.3.ebuild: #SRC_URI="http://rubyforge.org/frs/download.php/36331/${P}.tgz" SRC_URI="http://rubyforge.org/frs/download.php/53816/qt4-qtruby-2.0.3.tgz"
I think it would be better to use qtruby from the kdebindings-package. qt4-qtruby-package only contains the pure qt4-bindings, where kdebindings also contains those for kdelibs. With qt4-qtruby-package, there won't be support for writing ruby-plasmoids, for example. I think this way one can avoid the "nosmokekde.patch" (it should be doable with a cmake-option).
I'm trying to build qt4-qtruby-2.0.3 on my mostly stable AMD64 box but if fails this way, with and without the 2.0.3_nosmokekde patch: === >>> Source prepared. >>> Configuring source in /var/tmp/portage/dev-ruby/qt4-qtruby-2.0.3/work/qt4-qtruby-2.0.3 ... >>> Working in BUILD_DIR: "/var/tmp/portage/dev-ruby/qt4-qtruby-2.0.3/work/qt4-qtruby-2.0.3_build" loading initial cache file /var/tmp/portage/dev-ruby/qt4-qtruby-2.0.3/temp/gentoo_common_config.cmake -- The C compiler identification is GNU -- The CXX compiler identification is GNU -- Check for working C compiler: /usr/bin/x86_64-pc-linux-gnu-gcc -- Check for working C compiler: /usr/bin/x86_64-pc-linux-gnu-gcc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working CXX compiler: /usr/bin/x86_64-pc-linux-gnu-g++ -- Check for working CXX compiler: /usr/bin/x86_64-pc-linux-gnu-g++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Found Perl: /usr/bin/perl -- 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.4.2 (using /usr/bin/qmake) -- Looking for XOpenDisplay in /usr/lib64/libX11.so;/usr/lib64/libXext.so -- Looking for XOpenDisplay in /usr/lib64/libX11.so;/usr/lib64/libXext.so - found -- Looking for gethostbyname -- Looking for gethostbyname - found -- Looking for connect -- Looking for connect - found -- Looking for remove -- Looking for remove - found -- Looking for shmat -- Looking for shmat - found -- Looking for IceConnectionNumber in ICE -- Looking for IceConnectionNumber in ICE - found -- Found X11: /usr/lib64/libX11.so -- Looking for include files CMAKE_HAVE_PTHREAD_H -- Looking for include files CMAKE_HAVE_PTHREAD_H - found -- Looking for pthread_create in pthreads -- Looking for pthread_create in pthreads - not found -- Looking for pthread_create in pthread -- Looking for pthread_create in pthread - found -- Found Threads: TRUE CMake Error at cmake/modules/FindRUBY.cmake:85 (MESSAGE): Could not find Ruby Call Stack (most recent call first): CMakeLists.txt:69 (FIND_PACKAGE) CMake Warning (dev) in CMakeLists.txt: No cmake_minimum_required command is present. A line of code such as cmake_minimum_required(VERSION 2.6) should be added at the top of the file. The version specified may be lower if you wish to support older CMake versions for this project. For more information run "cmake --help-policy CMP0000". This warning is for project developers. Use -Wno-dev to suppress it. -- Configuring incomplete, errors occurred! * * ERROR: dev-ruby/qt4-qtruby-2.0.3 failed. * Call stack: * ebuild.sh, line 48: Called src_configure * environment, line 3546: Called cmake-utils_src_configure * environment, line 962: Called die * The specific snippet of code: * cmake ${cmakeargs} "${CMAKE_USE_DIR}" || die "cmake failed"; * The die message: * cmake failed === This is my cmake: === $ eix -I cmake [I] dev-util/cmake Available versions: 2.6.2-r1 ~2.6.3-r1 ~2.6.4 {emacs qt4 vim-syntax} Installed versions: 2.6.2-r1(13:43:03 22/01/09)(qt4 -emacs -vim-syntax) Homepage: http://www.cmake.org/ Description: Cross platform Make ===
Try an update to cmake-2.6.4. Which ruby-version do you have installed?
There is a preliminary ebuild for 2.0.3 in the qting-edge overlay now. With qwt useflag disabled it compiles at least. It still needs work, so it will stay in the overlay until it is ready for general consumption. Suggestions for improvement are welcome.
> With qwt > useflag disabled it compiles at least. Here a simple Patch for the Qwt5-Problem: ### --- qt4-qtruby-2.0.3.org/cmake/modules/FindQwt5.cmake 2009-05-24 16:24:35.000000000 +0200 +++ qt4-qtruby-2.0.3/cmake/modules/FindQwt5.cmake 2009-05-24 16:25:41.000000000 +0200 @@ -29,7 +29,7 @@ IF( QT4_FOUND ) # Is Qwt5 installed? Look for header files FIND_PATH( Qwt5_INCLUDE_DIR qwt.h - PATHS ${QT_INCLUDE_DIR} /usr/local/qwt/include /usr/include/qwt + PATHS ${QT_INCLUDE_DIR} /usr/local/qwt/include /usr/include/ PATH_SUFFIXES qwt qwt5 qwt-qt4 qwt5-qt4 qwt-qt3 qwt5-qt3 include qwt/include qwt5/include qwt-qt4/include qwt5-qt4/include qwt-qt3/include qwt5-qt3/include ENV PATH) # Find Qwt version ### I really would like to have phonon with qtruby (also with python...). I don't know how this should be solved :/ Many apps depend on qt-phonon, but gentoo forbids parallel installation of media-sound/phonon and x11-libs/qt-phonon... Big thx for a working qt4-qtruby-ebuild since -- decades :D Franz
> Many apps depend on qt-phonon, but gentoo forbids parallel installation of > media-sound/phonon and x11-libs/qt-phonon... Gentoo doesnt forbit anything. There are file collisions between those two packages which is normal since media-sound/phonon is a qt-phonon+xine backend combination afaik. You cant have both of them installed. We are working on a solution though :)
Created attachment 192305 [details] qwt includes patch Sry, previously posted patch was the wrong one... This one just adds the Qwt5_INCLUDE_DIR, so the include can work. Another thing in this patch can fix the smokekde-issue. I don't know if it is a feature of cmake-2.6.4, but i noticed, that a target also generates a Variable with the sama name, so it is not needed to say "smokekde" to name the target, but ${smokekde}, wich points to the target "smokekde" if defined, otherwise it is just empty :) I will tell Dave so he can include this patch in the next release.
Created attachment 192592 [details] Patch to build QScintilla QScintilla was never built, because add_subdirectory(qsci) only was executed when QSCINTILLA_FOUND was true. But FIND_PACKAGE(QScintilla) was executed in exactly this subdirectory... One cosmetic fix to the ebuild could be to rename the smoke-vars in src_configure: QTSCRIPT-SMOKE -> QTSCRIPT_SMOKE QTTEST-SMOKE -> QTTEST_SMOKE QSCI-SMOKE -> QSCI_SMOKE QWT-SMOKE -> QWT_SMOKE As this matches the correct naming of the options. But cmake seems to not make a difference here, so -> cosmetic. With those 2 Patches, everything builds quite nice here, the examples (as tested) work. (And the original Name of the main author of qtruby-bindings isn't Dave but Richard Dale, sry :P) And big thx for the work on the phonon-issues!
> One cosmetic fix to the ebuild could be to rename the smoke-vars in > src_configure: > QTSCRIPT-SMOKE -> QTSCRIPT_SMOKE > QTTEST-SMOKE -> QTTEST_SMOKE > QSCI-SMOKE -> QSCI_SMOKE > QWT-SMOKE -> QWT_SMOKE > As this matches the correct naming of the options. But cmake seems to not make > a difference here, so -> cosmetic. OK, this is needed, not only cosmetic! Always remove CMakeCache.txt, before changing the configuration! The Variable "ENABLE_SMOKE_QWT=ON" stayed in the cache, so it was still valid, although i passed "-DENABLE_SMOKE-QWT=ON"!
I don't know why I'm CC'd here. I'm removing the CC, please readd and explain if needed.
Many months have passed and nobody seems interested in maintaining or fixing qt4-qtruby-1.4.9-r3. I suggest removing it in 30 days and keeping 2.0.3 in qting-edge until someone volunteers to maintain it.
this is what i get using the overlay, and have no clue about it: >>> Unpacking source... >>> Unpacking qt4-qtruby-2.0.3.tgz to /dev/shm/portage/dev-ruby/qt4-qtruby-2.0.3/work >>> Source unpacked in /dev/shm/portage/dev-ruby/qt4-qtruby-2.0.3/work >>> Preparing source in /dev/shm/portage/dev-ruby/qt4-qtruby-2.0.3/work/qt4-qtruby-2.0.3 ... * Applying 2.0.3_nosmokekde.patch ... [ ok ] >>> Source prepared. >>> Configuring source in /dev/shm/portage/dev-ruby/qt4-qtruby-2.0.3/work/qt4-qtruby-2.0.3 ... >>> Working in BUILD_DIR: "/dev/shm/portage/dev-ruby/qt4-qtruby-2.0.3/work/qt4-qtruby-2.0.3_build" cmake -C /dev/shm/portage/dev-ruby/qt4-qtruby-2.0.3/temp/gentoo_common_config.cmake -DCMAKE_INSTALL_PREFIX=/usr -DRUBY_INCLUDE_PATH=/usr/lib64/ruby/1.8/x86_64-linux -DRUBY_LIBRARY=/usr/lib64/libruby18.so.1.8.7 -DENABLE_QTRUBY=on -DENABLE_SMOKE=on -DENABLE_SMOKEKDE=off -DQT_USE_QTDESIGNER=true -DQT_USE_QTASSISTANT=OFF -DQT_USE_QTASSISTANTCLIENT=OFF -DQT_USE_PHONON=OFF -DENABLE_PHONON_RUBY=OFF -DENABLE_PHONON_SMOKE=OFF -DQT_USE_QT3SUPPORT=ON -DENABLE_QTSCRIPT=OFF -DENABLE_QTSCRIPT-SMOKE=OFF -DENABLE_QTTEST=OFF -DENABLE_QTTEST-SMOKE=OFF -DENABLE_QTWEBKIT_RUBY=OFF -DENABLE_QTWEBKIT_SMOKE=OFF -DQT_USE_QTXMLPATTERNS=OFF -DENABLE_QSCINTILLA_RUBY=OFF -DENABLE_QSCI-SMOKE=OFF -DENABLE_QWT_RUBY=OFF -DENABLE_QWT-SMOKE=OFF -Wno-dev -DCMAKE_BUILD_TYPE=Gentoo -DCMAKE_INSTALL_DO_STRIP=OFF -DCMAKE_USER_MAKE_RULES_OVERRIDE=/dev/shm/portage/dev-ruby/qt4-qtruby-2.0.3/temp/gentoo_rules.cmake /dev/shm/portage/dev-ruby/qt4-qtruby-2.0.3/work/qt4-qtruby-2.0.3 loading initial cache file /dev/shm/portage/dev-ruby/qt4-qtruby-2.0.3/temp/gentoo_common_config.cmake -- The C compiler identification is GNU -- The CXX compiler identification is GNU -- Check for working C compiler: /usr/bin/x86_64-pc-linux-gnu-gcc -- Check for working C compiler: /usr/bin/x86_64-pc-linux-gnu-gcc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working CXX compiler: /usr/bin/x86_64-pc-linux-gnu-g++ -- Check for working CXX compiler: /usr/bin/x86_64-pc-linux-gnu-g++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Found Perl: /usr/bin/perl -- 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.7.0 (using /usr/bin/qmake) -- Looking for XOpenDisplay in /usr/lib64/libX11.so;/usr/lib64/libXext.so -- Looking for XOpenDisplay in /usr/lib64/libX11.so;/usr/lib64/libXext.so - found -- Looking for gethostbyname -- Looking for gethostbyname - found -- Looking for connect -- Looking for connect - found -- Looking for remove -- Looking for remove - found -- Looking for shmat -- Looking for shmat - found -- Looking for IceConnectionNumber in ICE -- Looking for IceConnectionNumber in ICE - found -- Found X11: /usr/lib64/libX11.so -- Looking for include files CMAKE_HAVE_PTHREAD_H -- Looking for include files CMAKE_HAVE_PTHREAD_H - found -- Looking for pthread_create in pthreads -- Looking for pthread_create in pthreads - not found -- Looking for pthread_create in pthread -- Looking for pthread_create in pthread - found -- Found Threads: TRUE -- Ruby found: /usr/lib64/libruby18.so.1.8.7 -- Build Smoke... yes - Qt, QtScript, QtUiTools, QtTest -- Ruby found: /usr/lib64/libruby18.so.1.8.7 -- Build QtRuby... yes -- Build QtWebKit Ruby... no -- Build QtUiTools Ruby... yes -- Build QtScript... no -- Build QtTest... no -- Build QScintilla Ruby... no -- Build Qwt Ruby... no -- <<< Gentoo configuration >>> Build type: Gentoo Install path: /usr CMake Error: The following variables are used in this project, but they are set to NOTFOUND. Please set them or make sure they are set and tested correctly in the CMake files: QT_QTTEST_LIBRARY (ADVANCED) linked by target "smokeqttest" in directory /dev/shm/portage/dev-ruby/qt4-qtruby-2.0.3/work/qt4-qtruby-2.0.3/smoke/qttest -- Configuring incomplete, errors occurred! *
USE="qttest" emerge -va =dev-ruby/qt4-qtruby-2.0.3 solved that, now i have another one: ... FATAL ERROR setPos(qreal setPos(qreal setPos(qreal isn't a known type (type=setPos(qreal) va_list isn't a known type (type=va_list) Writing x_*.cpp... Done. Scanning dependencies of target smokeqt [ 32%] [ 34%] Building CXX object smoke/qt/CMakeFiles/smokeqt.dir/smokedata.o [ 36%] Building CXX object smoke/qt/CMakeFiles/smokeqt.dir/x_1.o Building CXX object smoke/qt/CMakeFiles/smokeqt.dir/x_2.o /dev/shm/portage/dev-ruby/qt4-qtruby-2.0.3/work/qt4-qtruby-2.0.3_build/smoke/qt/smokedata.cpp:6086: error: expected ‘}’ before ‘com’ /dev/shm/portage/dev-ruby/qt4-qtruby-2.0.3/work/qt4-qtruby-2.0.3_build/smoke/qt/smokedata.cpp:6086: error: expected ‘}’ before ‘com’ /dev/shm/portage/dev-ruby/qt4-qtruby-2.0.3/work/qt4-qtruby-2.0.3_build/smoke/qt/smokedata.cpp:6086: error: expected ‘,’ or ‘;’ before ‘com’ /dev/shm/portage/dev-ruby/qt4-qtruby-2.0.3/work/qt4-qtruby-2.0.3_build/smoke/qt/smokedata.cpp:6086: error: expected declaration before ‘}’ token make[2]: *** [smoke/qt/CMakeFiles/smokeqt.dir/smokedata.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[1]: *** [smoke/qt/CMakeFiles/smokeqt.dir/all] Error 2 make: *** [all] Error 2
Both the Qt and Ruby teams agree that the rotting corpse of the ebuild now in portage is overdue for removal. But the new version is not yet good enough. It still needs some fixes before it can be committed. But apparently there is not enough interest to do so. Anyone who wants (not just devs) can get access to the qting-edge overlay and fix the ebuild. In the meantime, treecleaners please remove the package from portage.
treecleaned
Closing bug, ruby team is not active on this package so a new bug may be better suited.