FS#13808 - [perl] binaries in /usr/bin/perlbin/core do not follow FHS guidelines
Attached to Project:
Arch Linux
Opened by Abhishek Dasgupta (abhidg) - Sunday, 15 March 2009, 06:09 GMT
Last edited by Kevin Piche (kpiche) - Monday, 08 November 2010, 04:20 GMT
Opened by Abhishek Dasgupta (abhidg) - Sunday, 15 March 2009, 06:09 GMT
Last edited by Kevin Piche (kpiche) - Monday, 08 November 2010, 04:20 GMT
|
Details
The package perl (5.10.0-4) installs binaries in
/usr/bin/perlbin/core
which is against the FHS guidelines [1]. According to FHS, the only allowed subdirectory of /usr/bin is /usr/bin/mh. The fix is to change -Dscriptdir to '/usr/bin' [1]: http://www.pathname.com/fhs/pub/fhs-2.3.html#USRBINMOSTUSERCOMMANDS |
This task depends upon
Closed by Kevin Piche (kpiche)
Monday, 08 November 2010, 04:20 GMT
Reason for closing: Fixed
Additional comments about closing: Fixed in perl 5.12.2-1
Monday, 08 November 2010, 04:20 GMT
Reason for closing: Fixed
Additional comments about closing: Fixed in perl 5.12.2-1
http://wiki.archlinux.org/index.php/Perl_Policy#Binaries_and_Scripts
Kevin: Should we put those under /usr/lib/perl5/{core,vendor,site}_perl/bin instead?
/usr/bin/perlbin/core:
c2ph cpanp-run-perl instmodsh piconv pod2usage ptar
config_data dprofpp libnetcfg pl2pm podchecker ptardiff
corelist enc2xs perlbug pod2html podselect s2p
cpan find2perl perldoc pod2latex prove shasum
cpan2dist h2ph perlivp pod2man psed splain
cpanp h2xs perlthanks pod2text pstruct xsubpp
If I take a `ls -1 /usr/bin/perlbin/core` and move it somewhere, it looks like this:
dmcgee@dublin ~
$ for bin in "pacman"; do find /usr/bin -name $bin; done
/usr/bin/pacman
dmcgee@dublin ~
$ for bin in $(cat /tmp/binaries.txt); do find /usr/bin -name $bin; done
I noticed this building a perl package that requires pod2man which is now absent.
/bin:/usr/bin:/sbin:/usr/sbin::/usr/bin/perlbin/site:/usr/bin/perlbin/vendor:/usr/lib/perl5/core_perl/bin
FS#19411and will be fixed in next pkgrel tomorrow.Kevin: should we not revert to the previous setup?
put core and vendor in
/usr/bin/
and define that all AUR pkgbuilds go in site_perl which will put them in
/usr/local/bin
(which would have to be before /usr/bin in PATH)
arch doesn't package updated versions of core pkgs so that should prevent conflicts in /usr/bin I would think.
another thing that problematic about putting them in /usr/lib FHS says this
"/usr/lib includes object files, libraries, and internal binaries that are not intended to be executed directly by users or shell scripts."
almost every binary (bin) that comes with a cpan module is intended to be executed by a script or user.
> /usr/bin/
This is against the Arch policy: we allow packaging modules that are also provided by core (if a more recent version is required, for instance). So a (hypothetical) package "perl-cpanplus" in community would result in a conflict with /usr/bin/cpanp from core.
I think the previous setup was optimal. It works well and is very flexible.