Greg Ewing wrote: > Toshio Kuratomi wrote: > >> <nod> this is what I was afraid of. This is definitely not a definition >> of resource-only that has meaning for Linux distributions. None of the >> data in /usr/share is user-modifiable > > In that case it must be there because it's architecture-independent, > right? > ...That doesn't follow from what I said, but it's true :-)
> But by that criterion, all .py files should be in /usr/share, too. > I mentioned in a different post that this has been considered by several distributions. Note that not all .py files can be shifted due to the way python parses modules. But certainly modules which are pure python could be moved. Reasons that Fedora hasn't done this are: 1) Historical: .py files have been in /usr/lib/python2.5/site-packages for a long time. 2) Compatibility with third parties: Unfortunately not everyone uses distutils. If we shifted the location to /usr/share and users installed those packages into /usr/lib it would fail. 3) /usr/share has two purposes/criteria[1]_: architecture independent and datafiles. /usr/lib has two criteria[2]_: architecture independent and libraries. With .py{,c,o} we have both architecture indepedence and a library. So the criteria is in conflict with each other. There may be more reasons, I'm in the /usr/share camp but not so much that I'll keep bringing it up when there's no new arguments to give. Note that Debian has done a lot of neat things with python source recent(ish). Josselin, Matthias, and some of the other Debian devs could tell us if .py files get installed to /usr/share there. .. _[1]: http://www.pathname.com/fhs/pub/fhs-2.3.html#USRSHAREARCHITECTUREINDEPENDENTDATA .. [2]_: http://www.pathname.com/fhs/pub/fhs-2.3.html#USRLIBLIBRARIESFORPROGRAMMINGANDPA > Also all shell scripts, Perl code, awk/sed scripts, etc, etc. Things that are directly executable belong in a bin directory. There are next to no shell script libraries, just scripts. Perl, awk, sed, etc *scripts* end up in /bin as well. To my knowledge perl doesn't support the split architecture independent library location/architecture dependent library location that python does so everything goes into /usr/lib. Mono assemblies do not because of a pair of limitations of the mono vm. java jars go in /usr/share. The m4 macros that autoconf/automake use go there as well. Programs that are written in python but don't want to expose their internals to the outside world have their code under /usr/share. We make php apps do the same. Perl is probably the same although I haven't looked at an actual multi-file perl program in.... well, I don't remember when so I don't know. > Does the FHS specify that? > The FHS sets out certain rules and criteria. Linux vendors have interpreted them and sometimes the standard is updated due to either current practice or clarification of former practice. I don't believe that FHS "specifies" that .py files go in /usr/lib or /usr/share. The rules state things like "architecture independent data file" which is why there's some grey area for /usr/lib/python's .py files. Note that although I'm happy to talk about the FHS here, I'm not involved with creating the standard. I'm also only one packager from one distro. So I'm happy to help answer questions about the FHS and how Fedora interprets it but am not in any better position to change it than any of you. -Toshio
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org http://mail.python.org/mailman/listinfo/distutils-sig