ancient is a collection of decompression routines for old formats popular in the
Amiga, Atari computers and some other systems from 80's and 90's as well as some
that are currently used which were used in a some specific way in these old
systems. For simple usage both a simple command line application as well as a
simple API to use the decompressors are provided. The compression algorithm is
automatically detected in most cases, however there are some corner cases where
it is not entirely reliable due to weaknesses in the old format used.
Per PEP-518 [0], for projects using setuptools as the build backend,
both setuptools and wheel are to be specified, as wheel is a plugin
for setuptools to support the format at all. Additionally, wheel
itself will soon [1] not depend on setuptools, but rather the
dependency tree will reverse.
With hat: python
Approved by: mentors (implicit), swills (maintainer, implicit)
References: https://peps.python.org/pep-0518/#build-system-table [0]
https://github.com/pypa/wheel/pull/501 [1]
The distfiles were moved to github, so change the port accordingly.
Other changes:
- Build via embedded gmake Makefile
- Add LICENSE file path
- Remove scripts from pkg-plist (not in the distribution anymore)
- Smaller manpage fixes
PR: 269109
Reported by: Daniel Engberg <diizzy@FreeBSD.org>
Despite installer's default behaviour to compile and install bytecode,
we are not doing so going forward at stage/package time. [0] During
initial development and qualification of PEP-517 framework support,
compiling and installing bytecode at stage/package time was considered,
but was found problematic, fragile and ultimately unreliable, both
currently and historically (with USE_PYTHON=distutils), due to our
fixed plist requirement. While the living binary distribution format
(wheel) specification [1] says to compile bytecode, that is in the
pure Python package management context (pip, etc); nuance always
exists when interacting with "system" package management.
Additionally, "bytecode is an implementation detail of the CPython
interpreter. No guarantees are made that bytecode will not be added,
removed, or changed between versions of Python," thus "should not
be considered to work across Python VMs or Python releases." [2]
This is important to ensuring correctness for those ports specifying
NO_ARCH.
Instead of compiling and installing bytecode at stage/package time,
there is a WIP, review D34739, that compiles and installs bytecode
at install time instead, using triggers.
The aforementioned build_fs_violations will be investigated.
This reverts commit de6965254c.
With hat: python
Approved by: tcberner (mentor, portmgr)
Reference: https://wiki.freebsd.org/Python/PEP-517 [0]
https://packaging.python.org/en/latest/specifications/binary-distribution-format/ [1]
https://docs.python.org/3/library/dis.html [2]
- While I'm here, use long options for easier reading [1][2]
- Bump PORTREVISION of dependent ports (USE_PYTHON=pep517) for package change
It fixes build_fs_violation of dependent ports in poudriere (with -t flag).
It is also the default behavior of installer [2].
from py-sphinx log:
=>> Checking for staging violations... done
=>> Error: Filesystem touched during stage (files must install to ${STAGEDIR}):
extra: usr/local/lib/python3.9/site-packages/importlib_metadata/__pycache__
=>> Cleaning up wrkdir
from installer documentation:
--compile-bytecode
Possible choices: 0, 1, 2
generate bytecode for the specified optimization level(s) (default=0, 1)
--no-compile-bytecode
don’t generate bytecode for installed modules
Default: False
With hat: python
Reference: https://pypa-build.readthedocs.io/en/stable/ [1]
https://installer.pypa.io/en/stable/cli/installer/ [2]