On 12.4.2017 17:01, Todd Rme wrote:
Try here: https://build.opensuse.org/package/show/home:TheBlackCat:branches:devel:lang...
I get errors like this outside Tumbleweed: "nothing provides %{python_module, nothing provides testtools = %{version}}"
You're missing this line: %{?!python_module:%define python_module() python-%{**} python3-%{**}} Because it's used in BuildRequires, it must be either in prjconf (in Factory) or in the spec file.
Even in setuptools, you sometimes need to run %py_compile due to, for example, "inconsistent mtime" rpmlint warnings.
If you get "inconsistent mtime" from setup.py install, it's either the installer's or your packaging bug. Usually you're running tests that touch things they shouldn't. (But yes, %py_compiling it again is often easier than fixing it properly.)
But more and more packages are shipping wheels only, so having support for %py_compile, and less importantly "pip install", is becoming important.
wouldn't "pip install" take care of it too?
In any case I'm not convinced that this should be a part of the "singlespec API". Basing decision on "major version of python", as opposed to "is this python2 or something newer", does not look like a good practice. (and if it's limited to one package, you can easily get, e.g. from %python_version_nodots) OTOH, maybe this distinction will be useful again with Python 4 somewhere down the road, so perhaps?
I agree with you, but this is an upstream decision.
And also easily resolvable inside the spec file. The question here is whether this should be directly supported by a singlespec macro. One more point against it that it's not general: for instance, in LXML, you run "make test" for python2 tests and "make test3" for python3. Here you would need a variable that is "" for python2 and "3" for python3. In other cases, you need "2" for python2 and "3" for python3. Next time it might be "2" for python2, "pp" for PyPy and "" for python3? ...and as long as you're if'ing it anyway, you can do this: if [ %{$python_version_nodots} -ge 30 ]; then mysuffix=3 else mysuffix=2 fi or even: mysuffix=`expr %{$python_version_nodots} / 10` m.