> We agree that using MIME type suffices like "*.py" as a selector is
> intrinsically flawed.
Yes.
> Equally flawed is, say, assuming that Python is always installed on prefixed
> paths that match the pattern "/usr/lib(64)?/", or in, say, a sub directory
> "pythonX.Y" implying that /usr/bin/pythonXY should be invoked to byte compile.
True. However, it *is* reasonable to assume that every `*.py` file under
`/usr/lib(64)?/pythonX.Y` should be byte-compiled with pythonX.Y.
For files outside the dedicated directory, byte-compilation should be invoked
manually.
> The core of the problem (and the source of the above assumptions) is the
> rather poorly written bro-Python-byte compile script.
Yes.
> And the problem needs to be solved, not band-aided with enablers and
> disablers and distro packaging policies packaging conventions.
True. But, it needs to be solved in a way that doesn't break all packages that
use it at once.
> The traditional way to solve suffix/path based pattern rules in a script like
> bro-Python-byte compile is to invoke file(1) to apply heuristics to content
> to determine whether the contents of a "*.py" file look like Python.
But, file(1) can't give you the interpreter to use – is it `/usr/bin/python2`
or `/usr/bin/python3`?
> If an expert user truly needs control over some pathologically rare case
> where the automagic byte compilation needs to be disabled, the execute bit is
> a heuristic that associates a mode bit with a Boolean enabler that is
> consistent with other similar usage cases in rpm scripting, specifically #!
> interpreters, and ELF DSO libraries/modules/executables.
Unfortunately, the execute bit already has a different meaning: it means that a
file is executable.
Most (but not all) files that need byte-compilation are *not* executable (and
should *not* have a shebang).
> We also agree that automagic byte compilation needs to be phased out, and the
> tsunami change involved with python2 -> python3 is as good a time to rethink
> ancient rpm practice is as good as any other alernative.
Yes.
> Finally, the brp-python-bytecompile script should be moved out of rpm into
> some python-* package so that Python packagers can do whatever they wish and
> the rpm-build package does not need a dependency on python in order to be
> installed.
+1
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/434#issuecomment-384050391
_______________________________________________
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint