Backport #6052
closedplease add vendorarchdir and vendorlibdir to ruby.pc
Description
(originally reported in: https://bugzilla.redhat.com/show_bug.cgi?id=789532
this issue separates the issue of vendorarchdir from the ruby-1.9.pc -> ruby.pc renaming issue).
[John Ellson]
The current ruby-1.9.pc doesn't provide a value for "vendorarchdir"
and so is insufficient for packages like graphviz to build ruby extensions
without still resorting to ruby's (ever changing) RbConfig (nee: Config)
mechanism.
[Bohuslav "Slavek" Kabrda]
- Defining vendorarchdir and vendorlibdir is not a problem but how would it
solve the problem with graphviz? And how would you propose to use these -
passing them as additional Cflags?
[John Ellson]
No, not Cflags. The value is need for installation, not compilation.
Assuming ruby.pc contains a line like:
vendorarchdir=${libdir}/ruby/vendor_ruby
configure.ac would extract it by using something like:
PKG_CHECK_MODULES(RUBY, [ruby >= 1.9],[
RUBY_INSTALL_DIR=pkg-config --variable vendorarchdir ruby
AC_SUBST([RUBY_INSTALL_DIR])
],[
#deal with pre 1.9 ruby's
])
Updated by nobu (Nobuyoshi Nakada) about 12 years ago
- Tracker changed from Bug to Feature
Updated by nobu (Nobuyoshi Nakada) about 12 years ago
- Status changed from Open to Closed
- % Done changed from 0 to 100
This issue was solved with changeset r34716.
John, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.
- template/ruby.pc.in: added rubylibprefix, {rubylib,vendor,site}dir
and {ruby,vendor,site}archdir. [ruby-core:42766][Feature #6052]
Updated by Anonymous about 12 years ago
Hi, I'm finding it really hard to follow some of the changes that you have done here. I'm not implying that anything is wrong, maybe I don't get something, so please take this rather as a question, but the settings you now provide in ruby.pc are not well for Fedora (I don't know about other platforms, but let me explain):
Current state:
rubylibprefix=@rubylibprefix@
rubylibdir=${rubylibprefix}/${ruby_version}
vendordir=${rubylibprefix}/vendor_ruby
sitedir=${rubylibprefix}/site_ruby
rubyarchdir=${rubylibdir}/${arch}
vendorarchdir=${vendordir}/${sitearch}
sitearchdir=${sitedir}/${sitearch}
The problem is that vendorarchdir gets translated to ${rubylibprefix}/vendor_ruby/${sitearch}, which then gets translated to /usr/share/ruby/vendor_ruby/${sitearch}, which seems wrong (platform specific files get under /usr/share) - it should be /usr/lib[64]/ruby/vendor_ruby, so something like %{libdir}/vendor_ruby, shouldn't it?
Am I missing something or is this really an issue? If so, would it be possible to backport it to 1.9.3 branch?
Thank you!
Updated by nobu (Nobuyoshi Nakada) about 12 years ago
rubylibprefix isn't under datarootdir by default, unless you change it by yourself.
Updated by Anonymous about 12 years ago
Yes, that is true. I however miss the point of having vendordir and vendorarchdir under the same directory, whatever it is.
Updated by nobu (Nobuyoshi Nakada) about 12 years ago
see #6111.
Updated by Anonymous about 12 years ago
Yes, having something like the feature requested in #6111 would be the thing I'm looking for (the important part is, that vendorarchdir doesn't get under vendordir, as it is now).
Updated by vo.x (Vit Ondruch) almost 12 years ago
Would you mind to backport this into 1.9.3? Thank you.
Updated by kosaki (Motohiro KOSAKI) almost 12 years ago
- Tracker changed from Feature to Backport
- Project changed from Ruby master to Backport193
- Status changed from Closed to Open
Updated by naruse (Yui NARUSE) almost 12 years ago
- Status changed from Open to Closed
This issue was solved with changeset r36561.
John, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.
merge revision(s) 34716:
* template/ruby.pc.in: added rubylibprefix, {rubylib,vendor,site}dir
and {ruby,vendor,site}archdir. [ruby-core:42766][Feature #6052]