Commit b7f05445c0 has added WWW entries to port Makefiles based on
WWW: lines in pkg-descr files.
This commit removes the WWW: lines of moved-over URLs from these
pkg-descr files.
Approved by: portmgr (tcberner)
It has been common practice to have one or more URLs at the end of the
ports' pkg-descr files, one per line and prefixed with "WWW:". These
URLs should point at a project website or other relevant resources.
Access to these URLs required processing of the pkg-descr files, and
they have often become stale over time. If more than one such URL was
present in a pkg-descr file, only the first one was tarnsfered into
the port INDEX, but for many ports only the last line did contain the
port specific URL to further information.
There have been several proposals to make a project URL available as
a macro in the ports' Makefiles, over time.
This commit implements such a proposal and moves one of the WWW: entries
of each pkg-descr file into the respective port's Makefile. A heuristic
attempts to identify the most relevant URL in case there is more than
one WWW: entry in some pkg-descr file. URLs that are not moved into the
Makefile are prefixed with "See also:" instead of "WWW:" in the pkg-descr
files in order to preserve them.
There are 1256 ports that had no WWW: entries in pkg-descr files. These
ports will not be touched in this commit.
The portlint port has been adjusted to expect a WWW entry in each port
Makefile, and to flag any remaining "WWW:" lines in pkg-descr files as
deprecated.
Approved by: portmgr (tcberner)
In ports 6bef096664 we patched out python's erroneous multiarch
detection using sed, but upstream changed the surrounding parts in the
configure script to defeat the regex we were using. Update the regex to
cope with the change.
PR: 259896, 258377
MFH: 2021Q4
Approved by: maintainer timeout (9 days)
The Python ports install the library libpython3.x.so under $PREFIX/lib,
and they set USE_LDCONFIG, but these libraries are not registered, due
to a missing symlink, and they are not found by `ldconfig -r'.
This commit make them to be registered, and for some reason it helps the
dynamic linker to find them, and this allows to fix an error in
french/aster. It also helps to fix errors in newer releases of math/sage
(not yet ready to be committed due to other problems).
No exp-run, but it has been tested with many ports on several platforms.
PR: 257864
Approved by: koobs (Python team)
MFH: 2021Q4
It breaks with clang >= 13, which adds a major.minor version number in
-print-multiarch output, and the dot confuses Python:
ModuleNotFoundError: No module named '_sysconfigdata__freebsd14_x86_64-unknown-freebsd14'
Since we do not support multiarch, and the configure script has no way
to disable the multiarch check, stub it out during post-patch.
PR: 258377
Approved by: maintainer timeout (2 weeks)
MFH: 2021Q3
Currently, lang/python38 and lang/python39 don't honor
DISABLED_EXTENSIONS because patch-issue20210 was removed when
lang/python38 was added to the ports tree. patch-issue20210 is still
present on lang/python36 and lang/python37.
Building with poudriere is not affected because builds are executed in a
clean environment.
Setup.local is the more canonical and recommended method for customizing
Python builds for shared extensions & third party libraries.
Support for a *disabled* marker in Setup files was introduced in Python
3.7, so backport this fix to it to keep consistency in the ports tree.
PR: 243358 [1]
PR: 243937 [2]
Reported by: ngie [1]
Reported by: jcfyecrayz@liamekaens.com [2]
Reported by: tuxillo (IRC) DPorts
Reviewed by: koobs (python, maintainer)
Approved by: koobs, dbaio (python, maintainer)
MFH: 2021Q3 (build bugfix)
Differential Revision: https://reviews.freebsd.org/D31086
This brings python framework in consistense with handbook recommendations
to prefer DISTVERSION and simplifies adding prerelease versions of
python
PR: 255013
Differential Revision: https://reviews.freebsd.org/D29418
Exp-run by: antoine
Approved by: wen@, no objection from python@ or portmgr@
Worked out over BPO-40422 and BPO-40423, this is the culmination of months
of work to coordinate with Linux and get close_range(2) added to FreeBSD,
then the usage accepted into CPython. It has landed for Python 3.10 and here
I've backported it locally to all the supported Python 3 versions we have.
Note that this does include and supercede our previous closefrom(2) patches.
There was a lot of intersection between the work done, so this patch against
the ports tree does remove those patches from each of the ports in favor of
this patch. All the patches involved have been accepted and merged upstream.
This patch will bring a performance boost in some more situations on 12.2
and 13.0, as close_range exists there.
There is one additional patch sitting in an upstream PR that shuffles the
_Py_closerange implementation into a different file -- this is not important
for the backport, and the absence of that patch here will not realistically
cause any issues.
PR: 250322
Approved by: lwhsu (python)
Chase the devel/libffi update
Bump portrevision of all dependent ports to chace shard library version bump
in libffi.
Update LIB_DEPENDS lines where needed to not require a specific version of
libffi.so.
PR: 247028 (for tracking)
The patches for CVE-2019-18348 and CVE-2020-8492 are in the 3.7 branch
and will be present on the next release.
Patch for applying CVE-2020-8492 fix here in the ports tree was reported
and submitted by Dani <i.dani@outlook.com>.
PR: 246808
MFH: 2020Q2
X-MFH-with: 536770, 536776
Security: ca595a25-91d8-11ea-b470-080027846a02 (CVE-2019-18348)
Security: a27b0bb6-84fc-11ea-b5b4-641c67a117d8 (CVE-2020-8492)
A single close(fd) syscall is cheap, but when MAXFDS (maximum file
descriptor number) is high, the loop calling close(fd) on each file
descriptor can take several milliseconds.
The default value of subprocess.Popen "close_fds" parameter changed to True
in Python 3. Compared to Python 2, close_fds=True can make Popen 10x
slower: see bpo-37790 [1]
The present workaround on FreeBSD to improve performance is to load and
mount the fdescfs kernel module, but this is not enabled by default.
This change adds minimum viable (and upstreamable) closefrom(2) syscall
support to Python's subprocess and posix modules, improving performance
significantly for loads that involve working with many processes, such as
diffoscope, ansible, and many others.
For additional optimizations, upstream recently (3.8) landed posix_spawn(2)
support [3] and has stated that they will adopt close_range(2) after Linux
merges it [4]. Linux/FreeBSD developers are already collaborating on
ensuring compatible implementations, with FreeBSD's implementation pending
in D21627. [5]
Thank you emaste, cem, kevans for providing analysis, input,
clarifications, comms/upstream support and patches.
[1] https://bugs.python.org/issue37790
[2] https://bugs.python.org/issue38061
[3] https://bugs.python.org/issue35537
[4] https://lwn.net/Articles/789023/
[5] https://reviews.freebsd.org/D21627
Additional References:
https://bugs.python.org/issue8052https://bugs.python.org/issue11284https://bugs.python.org/issue13788https://bugs.python.org/issue1663329https://www.python.org/dev/peps/pep-0446/
PR: 242274, 221700
Submitted by: kevans (emaste, cem)
Approved by: koobs (python (maintainer), santa)
Simplify some ports where DragonFlyBSD no longer needs to be special-cased.
Submitted by: rene
Reviewed by: bapt, jbeich
Differential Revision: https://reviews.freebsd.org/D17724
ports r393217 via bug 200622 [1] originally set MAKE_JOBS_UNSAFE=yes due to
incorrect uses of recursive make [2], causing intermittent build failures when
run with multiple jobs (-jN).
Upstream committed a fix for the issue in default (3.6, at the time), 3.5 and
2.7 which are now contained in all released lang/python?? port versions. 3.4 did
not receieve a backport merge.
lang/python3.5+ ports inadvertently inherited MAKE_JOBS_UNSAFE=yes, via
repocopies from lang/python34 on their creation, when they were infact safe to
use with -j.
Remove MAKE_JOBS_UNSAFE in all lang/python?? ports except python34 accordingly.
[1] https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=200622
[2] https://bugs.python.org/issue22359
PR: 232308
Reported by: cem
Reviewed by: cem
Approved by: koobs (python)
MFH: 2018Q4
Differential Revision: D17579
- Bump PORTREVISION for package change
Support for building --without-threads has been removed.
The threading module is now always available.
PR: 230605
Submitted by: Roland Smith <rsmith@xs4all.nl>
Reference: https://docs.python.org/3/whatsnew/3.7.html
When python3.?-config is symlinked to another location it starts
outputting bogus paths. For example
$ pwd
/home/tobias
$ python3.6-config --includes
-I/usr/local/include/python3.6m -I/usr/local/include/python3.6m
$ ln -s /usr/local/bin/python3.6-config python3-config
$ ./python3-config --includes
-I/home/include/python3.6m -I/home/include/python3.6m
This breaks ports trying to use BINARY_ALIAS together with
python3.?-config. Apply a patch to resolve the symlink first before
trying to find the install prefix.
PR: 229749
Submitted by: tobik
Reviewed by: antoine, miwi
Approved by: python (miwi)