Proper directory for storing arch-independent data (bytecode)
Miloslav Trmač
mitr at redhat.com
Tue Sep 16 15:49:43 UTC 2014
Hello,
----- Original Message -----
> Imagine a virtual machine, %VMNAME%, which executes a arch-independent
> bytecode. Where packager should store it? Most notable candidates are
> /usr/share/%VMNAME%, /usr/lib/%VMNAME%.
>
> So far Java has /usr/share/java/, Perl uses %{perl_vendorlib}
> (/usr/share/perl5/vendor_perl), PHP uses /usr/share/php, R uses
> /usr/share/R/library, Ruby uses /usr/share/ruby/vendor_ruby,
> Javascripts are installed into %{_datadir}/javascript, Lisp is using
> %{_datadir}/common-lisp, etc
>
> But
>
> Python stores its arch-independent bytecode into
> /usr/lib/python?.?/site-packages/, Node.js prefers
> %{_prefix}/lib/node_modules, Mono is using /usr/lib/mono.
>
> It seems that there is no consensus on this matter. I personally tend
> to agree with those who use /usr/share, but for example systemd stores
> everything in /usr/lib including arch-independent stuff.
/usr/share is appropriate per FHS. Python is limited by the need for arch-dependent extensions: it is not possible to write a module which has arch-independent parts in /usr/share and arch-dependents extensions in /usr/lib*. I don’t know about node.js and Mono.
systemd is not a good example: /usr/lib/systemd is really /opt/systemd and violating the FHS, and allowed in Fedora only because fixing it would be too difficult by now.
Mirek
More information about the devel
mailing list