Bug#730095: ruby2.0: RbConfig::CONFIG['libdir'] does not point to the multiarch dir
Lisandro, Thanks for writing the patch. Cédric, Thanks for trying it and working on it further! Regarding ruby 1.9.1: I think it's safe to ignore 1.9.1; from what I've seen, packages that use cmake to build ruby extensions generally build only for one version, so if 1.9.1 would be broken with a patched cmake, that would only be a temporary situation that can be quickly remedied. Thanks! Christian -- ,''`. Christian Hofstaedtler : :' : Debian Developer `. `' 7D1A CFFA D9E0 806C 9C4C D392 5C13 D6DB 9305 2E03 `- signature.asc Description: Digital signature
Bug#730095: ruby2.0: RbConfig::CONFIG['libdir'] does not point to the multiarch dir
Hi Lisandro, On Sun, Mar 23, 2014 at 01:27:06PM -0300, Lisandro Damián Nicanor Pérez Meyer wrote: > tag 730095 +patch > thanks > Note: I'm not the cmake maintainer but I'm just trying to get this solved. > Ruby guys: is there any chance to apply the following patch to > /usr/share/cmake-2.8/Modules/FindRuby.cmake and see if you apps compile/work ? I tested your patch with qtruby and ruby/ruby2.0 from experimental, giving ruby2.0 as default Ruby interpreter. It seems that there is a typo in the patch, because I get this error: CMake Error: Error in cmake code at /usr/share/cmake-2.8/Modules/FindRuby.cmake:101: Parse error. Expected "(", got newline with text " ". CMake Error at CMakeLists.txt:5 (find_package): find_package Error reading CMake code from "/usr/share/cmake-2.8/Modules/FindRuby.cmake". I replaced endif by endif(), and could go a bit further but not far. I got this error: CMake Error at /usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:108 (message): Could NOT find Ruby (missing: RUBY_CONFIG_INCLUDE_DIR) (found version "2.0.0") Call Stack (most recent call first): /usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:315 (_FPHSA_FAILURE_MESSAGE) /usr/share/cmake-2.8/Modules/FindRuby.cmake:242 (FIND_PACKAGE_HANDLE_STANDARD_ARGS) CMakeLists.txt:5 (find_package) I tried earlier the patch provided in https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=739826#17 (without yours). And it managed to build qtruby against ruby2.0. It seems that it tries to solve a similar problem to this one. Could you evaluate it? About ruby1.9.1 and multiarch, I strongly believe that the plan is to drop ruby1.9.1 as soon as possible, and that it will not be multiarchified. Cheers, Cédric. signature.asc Description: Digital signature
Bug#730095: ruby2.0: RbConfig::CONFIG['libdir'] does not point to the multiarch dir
On Sunday 23 March 2014 13:27:06 Lisandro Damián Nicanor Pérez Meyer wrote: > tag 730095 +patch > thanks > > Note: I'm not the cmake maintainer but I'm just trying to get this solved. > > Ruby guys: is there any chance to apply the following patch to > /usr/share/cmake-2.8/Modules/FindRuby.cmake and see if you apps compile/work > ? On a second thought, this will not work if ruby1.9 is multiarchified. Is it that the case? I have another ideas to test, but it would be great if you can start testing this or can provide a simple testcase. -- AlfaScorpii: podés converncerla a tu vieja que le esconda el diccionario a el_machi? Cada vez que aprende una palabra nueva busca cualquier excusa para usarla e-squizo: leí mi primer diccionario a los 5 años [...] e-squizo: como mi vieja no aprenda lo suficiente de hacking no veo como haria para bajar el sitio de la real academia Visto en #grulic, irc.freenode.net Lisandro Damián Nicanor Pérez Meyer http://perezmeyer.com.ar/ http://perezmeyer.blogspot.com/ signature.asc Description: This is a digitally signed message part.
Bug#730095: ruby2.0: RbConfig::CONFIG['libdir'] does not point to the multiarch dir
Control: reassign -1 cmake Control: retitle -1 cmake: FindRuby cannot handle Ruby 2.0 library in multiarch path Hello Sylvain, thanks for your bug report. Hello cmake maintainer(s). On Thu, Nov 21, 2013 at 11:19:09AM +0100, Sylvain Joyeux wrote: > Package: ruby2.0 > Version: 2.0.0.343-1 > Severity: normal > > RbConfig::CONFIG['libdir'] reports /usr/lib/ instead of (on my amd64 > machine) the multiarch /usr/lib/x86_64-linux-gnu. AFAIK, libdir is > meant to be the directory in which the ruby .so library is > installed, so it is wrong. > > It breaks CMake's FindRuby macros libdir points to the base directory for libraries. Before multiarch support, the shared library was also in that directory, but it was mostly a coincidence. DISCLAIMER: I don't know much about CMake. IMO: - CMake's FindRuby macros should not need any help to search for a library in the standard compiler paths, be it the multiarch path (/usr/lib/$triplet) or the legacy path (/usr/lib). - CMake has to be fixed to cope with this, and this is why I am reassigning this bug to cmake. I see 2 ways of doing it: 0) Using archlibdir (new on Ruby 2.0), and falling back to libdir on older Ruby versions: $ ruby1.9.1 -e 'puts RbConfig::CONFIG["archlibdir"] || RbConfig::CONFIG["libdir"]' /usr/lib $ ruby2.0 -e 'puts RbConfig::CONFIG["archlibdir"] || RbConfig::CONFIG["libdir"]' /usr/lib/x86_64-linux-gnu 1) Using pkg-config to detect the presence of Ruby and trusting the compiler to find the shared library in the right path $ pkg-config --libs --cflags ruby-1.9 -I/usr/include/ruby-1.9.1/x86_64-linux -I/usr/include/ruby-1.9.1 -lruby-1.9.1 -lpthread -lrt -ldl -lcrypt -lm $ pkg-config --libs --cflags ruby-2.0 -I/usr/include/x86_64-linux-gnu/ruby-2.0.0 -I/usr/include/ruby-2.0.0 -lruby-2.0 -lpthread -lrt -ldl -lcrypt -lm Please let me know if there is any further information I can provide on the Ruby side. -- Antonio Terceiro signature.asc Description: Digital signature
Bug#730095: ruby2.0: RbConfig::CONFIG['libdir'] does not point to the multiarch dir
Package: ruby2.0 Version: 2.0.0.343-1 Severity: normal RbConfig::CONFIG['libdir'] reports /usr/lib/ instead of (on my amd64 machine) the multiarch /usr/lib/x86_64-linux-gnu. AFAIK, libdir is meant to be the directory in which the ruby .so library is installed, so it is wrong. It breaks CMake's FindRuby macros -- System Information: Debian Release: jessie/sid APT prefers unstable APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable'), (101, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 3.11-1-amd64 (SMP w/2 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages ruby2.0 depends on: ii libc6 2.17-96 ii libruby2.02.0.0.343-1 ii rubygems-integration 1.2 ruby2.0 recommends no packages. ruby2.0 suggests no packages. -- no debconf information -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org