While attempting to compile Rubinius on Fedora, I ran into the problem that it could not locate the following header file:
/usr/include/ruby/config.h
As it turns out, this file is located in an arch-specific directory in the Ruby 1.9 devel package:
/usr/include/x86_64/ruby/config.h
as you can see here:
http://koji.fedoraproject.org/koji/rpminfo?rpmID=3705765
In the Ruby 2.0 devel package, it's in the expected location, as you can see here:
http://koji.fedoraproject.org/koji/rpminfo?rpmID=4216149
Should this be fixed?
-Dan
Dne 15.9.2013 01:21, Dan Allen napsal(a):
While attempting to compile Rubinius on Fedora, I ran into the problem that it could not locate the following header file:
/usr/include/ruby/config.h
As it turns out, this file is located in an arch-specific directory in the Ruby 1.9 devel package:
/usr/include/x86_64/ruby/config.h
as you can see here:
http://koji.fedoraproject.org/koji/rpminfo?rpmID=3705765
In the Ruby 2.0 devel package, it's in the expected location, as you can see here:
This change was introduced in Ruby 2.0 by this commit [1]. I tried to find some universal solution for this issue, but not everybody is happy about it [2], including upstream [3].
Should this be fixed?
Well, it could break other things, so I don't think it is worth of backporting.
Vít
[1] http://pkgs.fedoraproject.org/cgit/ruby.git/commit/?id=1e68c10ca8fdeef75236b... [2] https://fedorahosted.org/fpc/ticket/312 [3] https://bugzilla.redhat.com/show_bug.cgi?id=975660
On Tue, Sep 17, 2013 at 2:47 AM, Vít Ondruch vondruch@redhat.com wrote:
Dne 15.9.2013 01:21, Dan Allen napsal(a):
While attempting to compile Rubinius on Fedora, I ran into the problem
that it could not locate the following header file:
/usr/include/ruby/config.h
As it turns out, this file is located in an arch-specific directory in the Ruby 1.9 devel package:
/usr/include/x86_64/ruby/**config.h
as you can see here:
http://koji.fedoraproject.org/**koji/rpminfo?rpmID=3705765http://koji.fedoraproject.org/koji/rpminfo?rpmID=3705765
In the Ruby 2.0 devel package, it's in the expected location, as you can see here:
http://koji.fedoraproject.org/**koji/rpminfo?rpmID=4216149http://koji.fedoraproject.org/koji/rpminfo?rpmID=4216149
This change was introduced in Ruby 2.0 by this commit [1]. I tried to find some universal solution for this issue, but not everybody is happy about it [2], including upstream [3].
Thanks for the clarification!
Should this be fixed?
Well, it could break other things, so I don't think it is worth of backporting.
Is it problematic to add a symlink?
Thinking out loud: If a change to the Fedora package is not possible, at the very least I can encourage the Rubinius developers to document the need to create the symlink to complete the compile, or they might decide to look for the file in the arch-specific location if it's not found at /usr/include/ruby/config.h.
-Dan
Dne 17.9.2013 20:54, Dan Allen napsal(a):
On Tue, Sep 17, 2013 at 2:47 AM, Vít Ondruch <vondruch@redhat.com mailto:vondruch@redhat.com> wrote:
Dne 15.9.2013 01:21, Dan Allen napsal(a): While attempting to compile Rubinius on Fedora, I ran into the problem that it could not locate the following header file: /usr/include/ruby/config.h As it turns out, this file is located in an arch-specific directory in the Ruby 1.9 devel package: /usr/include/x86_64/ruby/config.h as you can see here: http://koji.fedoraproject.org/koji/rpminfo?rpmID=3705765 In the Ruby 2.0 devel package, it's in the expected location, as you can see here: http://koji.fedoraproject.org/koji/rpminfo?rpmID=4216149 This change was introduced in Ruby 2.0 by this commit [1]. I tried to find some universal solution for this issue, but not everybody is happy about it [2], including upstream [3].
Thanks for the clarification!
Should this be fixed? Well, it could break other things, so I don't think it is worth of backporting.
Is it problematic to add a symlink?
Symlink cannot be used. It would break multilib support.
Thinking out loud: If a change to the Fedora package is not possible, at the very least I can encourage the Rubinius developers to document the need to create the symlink to complete the compile, or they might decide to look for the file in the arch-specific location if it's not found at /usr/include/ruby/config.h.
Well, it might be something different. They might expect different placement of config.h, e.g. /usr/include/ruby/1.9.1/ruby/config.h. They may have the path hardcoded somewhere instead of reading Ruby configuration. If they use RbConfig or pkg-config for gathering configuration paths, they should be OK, but they are using mostly they own Rake scripts :/
Vít
ruby-sig@lists.fedoraproject.org