On 3/14/06, David Lutterkort <dlutter@xxxxxxxxxx> wrote: > Ville Skyttä pointed out[1] that with the current packaging of ruby in > core, it's not possible to build noarch ruby packages right now, since > none of the directories on the standard ruby lib path ($:) are the same > on x86_64 and i386. > > The load path is made up of five dirs, all defined in the Config::CONFIG > hash in rbconfig: sitelibdir, sitearchdir, sitedir, rubylibdir, archdir. > With the current packaging, all these paths are underneath /usr/lib on > 32bit platforms and under /usr/lib64 on 64bit platforms. The dirs with > 'arch' in their name are meant for binary extensions (Ruby bindings), > and these dirs end in something that depends on the arch, i.e. Ruby > already makes sure that architecture-specific stuf gets installed into > architecture-specific dirs, no matter where ruby is installed. > It might be useful to look at how Perl does things. On x86_64 Perl, noarch modules go in /usr/lib/perl5/site_perl/5.8.8. Modules with binary libraries go in /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi. Perl puts the perl source for arch-dependent modules under that directory and the shared libraries under /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto. For RPMs, the modules are installed in the vendor_perl directories to keep them separate from the manually installed modules. Ruby doesn't support that construct. My impression is that Ruby has similar constructs. sitelibdir would be /usr/lib/site_ruby/1.8. sitearchdir would be /usr/lib64/site_ruby/1.8/x86_64-linux-gnu. The one thing I don't know is where the ruby code for arch-specific shared libraries should go. My impression is that they would be installed in sitelibdir, /usr/lib/site_ruby/1.8 and be shared between multilib packages. - Ian -- fedora-extras-list mailing list fedora-extras-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/fedora-extras-list