Группа :: Разработка/Прочее
Пакет: rpm-build-python3
Главная Изменения Спек Патчи Sources Загрузить Gear Bugs and FR Repocop
30 августа 2023 Daniel Zagaynov <kotopesutility at altlinux.org> 0.1.24-alt1
- Fixed prefixes forming for python3.prov.py and python3.req.py
- python3.prov.py:
+ Moved all mechanism of provides-searching to py3dephell.py3prov - python3.req.py:
+ Moved all mechanism of requirements-searching to py3dephell.py3req;
+ Removed encodings as dependencies.
- NMU: brp-fix_python3_site-packages_location: replace egrep with grep -E
- Added support for run command (closes: #44884).
- Added macros %_python3_self_prov_path, %add_python3_self_prov_path.
- python3.req.py:
+ Implemented macro %_python3_self_prov_path (by checking value of $RPM_PYTHON3_SELF_PROV_PATH)
+ Now skip dependencies from local imports in modules located in sys.path
- Added support for PEP517/518 projects (closes: #39907).
- Added support for tox.
- python3.req.py:
+ replaced symbol and parser uses with ast.
- python3.{prov,req}.files:
+ removed redundant text file check;
+ print diagnostics about skipped unknown .py files.
- brp-bytecompile_python3: fixed typo made in the previous release
(closes: #40018).
- python3.prov, python3.req: enhanced error diagnostics.
- Introduced rpm-macros-python3 subpackage and moved non-python files there.
- define %__python3 as full path /usr/bin/python3
- check-python3-provs-importable.sh included
(to manually check Python3 packages, say, in hasher;
https://lists.altlinux.org/pipermail/devel/2017-February/202384.html )
- Assume that setuptools are required if the traditional Python3 build/install
macros are used (overridable through %python3_setup_buildrequires).
The idea is that the Build Root Policy scripts for Python3 are executed
unconditionally whenever python3 is present in the system, but the
setuptools requirement is optional. (As a consequence, there may be a
working system with Python3 without setuptools, because setuptools
are not used at runtime.)
- python3.prov.py & %py3_provides: rm old-style provs. (It's the final 3rd
stage of the cosmetic renaming started in 0.1.10-alt1. It's possible if
no-one requires the old-style python3.3(*) names anymore.) - Do not depend on binutils, express the dependency in the form of a
Conflicts. (Not to encumber python3 users' environment. Anyway, if
the user is able to compile an .so, he would have got binutils.)
- Update find-provides and find-requires scripts to work with python3
dynamically linked to python library.
- Fix bug when file may be skipped during 'provides' and 'requires' calculations
if file is located in %python3_sitelibdir and file name starts with 'python2'.
- Now: %python3_req_hier by default (more precise autoreqs like:
m.sub.subsub instead of m; this often helps to install an otherwise
missing subpackage or the correct one in case of name collisions).
Suggest rules to rewrite/provide any special modules (like virtual six.*).
- .prov.py: honor non-std %python3_path also if it is inside the std path.
- %py3_requires will honor the constraints of %allow_python3_import_path.
- %python3{,_build}_install: force deterministic behavior (useful in
case of conflicting stuff from simultaneous python2 and python3 builds). - compileall.py: depth-first processing gives more correct results (compile
__init__.py would happen before unlink __pycache__/__init__* (its result)).
- Additional import paths (where our deps are allowed to be
located) must be given by the maintainer only willingly now with
%allow_python3_import_path.
- .{req,prov}.files fixed (in the rare case with %_python3_compile_include).
- Revert an unintended change of defaults in 0.1.10.6-alt1 (planned
for future).
- .{req,prov}.files: honor %_python3_compile_exclude
(when using %_python3_compile_include) - %python3_req_nohier added, the reverse to %python3_req_hier
(in future, when there is enough provs thx to 0.1.10.2, we'd like to
use the req_hier mode by default; packages can prepare beforehand) - Print a bit more diagnostics for skipped autoreqs.
- .prov.py: generalize to generate longer provs, too.
- .req.py: handle simple __import__ exprs on the same level of code
nesting as it is done for import statements, too (ALT#32026). - .req.py: just in case: deps with (deep < 4) are also OK if
RPM_PYTHON3_REQ_METHOD is slight (the default) or relaxed.
- Fix a bug of the prev.release: For the additional Provides with the
full name (when there is also a short name), the optional non-std
path was wrongly filled twice. (Example: python-module-Pillow.)
- generate more Requires (many Python3 files used to be skipped
because "python script text executable" were considered to be
non-Python3; now, Python files under standard Python3 paths and
%_python3_path are considered). - generate more Provides (ALT#31992) similarly
(for Python files under standard Python3 paths). - generate additional (specially-modified) Provides for modules under
non-standard/non-builtin paths. - generate more liberal Requires if %_python3_path or
%_python3_compile_include has non-standard/non-builtin paths.
- brp-hardlink_opt_pyc: handle .opt-?.pyc files (introduced in python3-3.5).
- implemented %requires_python3-ABI, which ultimately asks
verify_elf to LD_PRELOAD.
- use only the major Python version number for pythonN(*) autoreqs.
(This is mostly a cosmetic change in essence: the numbers in the
pythonN(*) provs and reqs don't mean much. The guarantee that the
module was run by exactly the same version of python used to be given
by the dep on python3.3/site-packages/; we are changing this.)
(The corresponding cosmetic removal of python3.3(*) provs is
scheduled for later; and we'll let it go on its own, without
forcing.) - Now, as python 3.5 stores .pyc compiled with -O and -OO separately
(as .opt-{1,2}.pyc), brp-bytecompile_python3 can safely make both.
- macros: commented on %__ vs %_ (build vs target system properties)
and cleaned up a bit accordingly. - Path values fixed:
+ %python3_includedir has a suffix in the case of Python3 (3.3&3.5, at least).
+ %python3_tooldir synced with the real value that has been used
in python3-3.3. - %_python3_path value should be adjusted when building python3 package;
the default made suitable for modules only. - macros: general-purpose %ABI_suffix and special %python3_ABI_dep added.
- simplified the implementation of %py3_requires & %py3_provides.
- if there is an .so (in /*/python3*/), generate a req like:
python(abi)(64bit) = 3.3 - python3 RPM macros: adapt for the new common site-packages/
and cleanup unused ones. (TODO: Check that the packages still build!) - move the installed stuff to the new common site-packages/ by force
(except "base" python packages). - use only the major Python version number for pythonN(*) provides.
(This is mostly a cosmetic change in essence: the numbers in the
pythonN(*) provs and reqs don't mean much. The guarantee that the
module was run by exactly the same version of python used to be given
by the dep on python3.3/site-packages/; we are about to change this.)
(The corresponding cosmetic change of reqs is scheduled for later;
and we'll let it go on its own, without forcing.) - python3.compileall.py: remove unused variable.
- provide python3.3(*) always (for the transition from python3.3).
(NB: Revert this hack when the transition is done.)
(This is useful, given that old modules can be "run" with
python3-3.5.1-alt2, which has been hacked to be able to use modules
from the old site-packages/.)
- python3.req: identify myself (in error messages) distinctively
from python.req.
- python3.prov.py: added python >= 3.3.1 support.
- python3.{prov,req}.files:
+ skip files of type "python script text executable";
+ enhanced "python3 script text executable" type check;
+ added is_python3_path check from python3.{prov,req}.py,
which is now applied only to files of uncertain type. - python3.{prov,req}.py: removed is_python3 check (closes: #28762).
- macros.d/python3: use %__python3 for python3-config location.
- python3.compileall.py: fixed file executability check (by iv@).
- python3.prov.py: changed to use sysconfig instead of hardcoded suffix.
- macros.d/python3: added %_python3_extension_suffix macro.
- python3.{prov,req}.files: skip everything from /usr/lib*/python2*.
- python3.prov.files: skip all files that cannot be provided due to
rpmbuild restrictions.
- macros.d/python3:
+ added %__python3 macro;
+ added %_python3_abiflags macro (by iv@; closes: #27788).
- python3.env: export RPM_PYTHON3 if %__python3 is defined.
- python3.{prov,req}: parametrize python3 exec path.
- Add py3_provides,py3_requires macros (ALT #27153)
- Introduce %_python3_path, %add_python3_path macros
- Fix typo in %python3_install
- Make brp-bytecompile_python3 usable
- Fix %__python3_version macro
- Fix provides/dependencies generators
- Initial