Page MenuHomeFreeBSD

D34739.id118022.diff
No OneTemporary

D34739.id118022.diff

diff --git a/CHANGES b/CHANGES
--- a/CHANGES
+++ b/CHANGES
@@ -10,14 +10,6 @@
All ports committers are allowed to commit to this file.
-20230215:
-AUTHOR: vishwin@FreeBSD.org
-
- USES=python now includes SUB_LIST entries to facilitate common
- substitutions for python.mk variables other than in ${PLIST}.
- They are the same as PLIST_SUB, except PYTHON_INCLUDEDIR,
- PYTHON_LIBDIR and PYTHON_SITELIBDIR include ${PREFIX}.
-
20230111:
AUTHOR: vishwin@FreeBSD.org
diff --git a/Mk/Uses/python.mk b/Mk/Uses/python.mk
--- a/Mk/Uses/python.mk
+++ b/Mk/Uses/python.mk
@@ -257,20 +257,17 @@
# packages for different Python versions.
# default: -py${PYTHON_SUFFIX}
#
-# Using USES=python also will add some useful entries to SUB_LIST and PLIST_SUB:
+# Using USES=python also will add some useful entries to PLIST_SUB:
#
-# PYTHON_INCLUDEDIR=${PYTHONPREFIX_INCLUDEDIR}
-# PYTHON_LIBDIR=${PYTHONPREFIX_LIBDIR}
+# PYTHON_INCLUDEDIR=${PYTHONPREFIX_INCLUDEDIR:S;${PREFIX}/;;}
+# PYTHON_LIBDIR=${PYTHONPREFIX_LIBDIR:S;${PREFIX}/;;}
# PYTHON_PLATFORM=${PYTHON_PLATFORM}
-# PYTHON_SITELIBDIR=${PYTHONPREFIX_SITELIBDIR}
+# PYTHON_SITELIBDIR=${PYTHONPREFIX_SITELIBDIR:S;${PREFIX}/;;}
# PYTHON_SUFFIX=${PYTHON_SUFFIX}
# PYTHON_VER=${PYTHON_VER}
# PYTHON_VERSION=${PYTHON_VERSION}
#
-# where PYTHON_INCLUDEDIR, PYTHON_LIBDIR and PYTHON_SITELIBDIR have their PREFIX
-# stripped for PLIST_SUB.
-#
-# PYTHON2 and PYTHON3 will also be set according to the Python version:
+# and PYTHON2 and PYTHON3 will be set according to the Python version:
#
# PYTHON2="" PYTHON3="@comment " for Python 2.x
# PYTHON2="@comment " PYTHON3="" for Python 3.x
@@ -788,16 +785,6 @@
PREFIX= ${PYTHONBASE}
. endif
-# Substitutions for SUB_FILES
-SUB_LIST+= PYTHON_INCLUDEDIR=${PYTHONPREFIX_INCLUDEDIR} \
- PYTHON_LIBDIR=${PYTHONPREFIX_LIBDIR} \
- PYTHON_PLATFORM=${PYTHON_PLATFORM} \
- PYTHON_SITELIBDIR=${PYTHONPREFIX_SITELIBDIR} \
- PYTHON_SUFFIX=${PYTHON_SUFFIX} \
- PYTHON_EXT_SUFFIX=${PYTHON_EXT_SUFFIX} \
- PYTHON_VER=${PYTHON_VER} \
- PYTHON_VERSION=${PYTHON_VERSION}
-
# Substitutions for pkg-plist
# Use a short form of the PYTHONPREFIX_*DIR variables; we don't need the
# base directory in the plist file.
@@ -810,10 +797,8 @@
PYTHON_VER=${PYTHON_VER} \
PYTHON_VERSION=${PYTHON_VERSION}
. if ${PYTHON_REL} < 30000
-SUB_LIST+= PYTHON2="" PYTHON3="@comment "
PLIST_SUB+= PYTHON2="" PYTHON3="@comment "
. else
-SUB_LIST+= PYTHON2="@comment " PYTHON3=""
PLIST_SUB+= PYTHON2="@comment " PYTHON3=""
. endif
diff --git a/UPDATING b/UPDATING
--- a/UPDATING
+++ b/UPDATING
@@ -48,23 +48,6 @@
# pkg set -o databases/mysql57-server:databases/mysql80-server
# pkg upgrade
-20230215:
- AFFECTS: users of python
- AUTHOR: vishwin@FreeBSD.org
-
- A trigger has been added to the lang/python3* ports to compile,
- write and remove bytecode files (.pyc) in site-packages after all
- pkg transactions have been completed. pkg will no longer manage
- such files directly, as they are meant to be generated after
- installation.
-
- For those ports/packages that still package bytecode, some package
- checksum mismatches on those files may occur. This is harmless
- and will be rectified.
-
- Technical details available at:
- https://wiki.freebsd.org/Python/CompiledPackages
-
20230213:
Affects: users of sysutils/nut*
AUTHOR: cy@FreeBSD.org
diff --git a/lang/python310/Makefile b/lang/python310/Makefile
--- a/lang/python310/Makefile
+++ b/lang/python310/Makefile
@@ -1,6 +1,6 @@
PORTNAME= python
DISTVERSION= ${PYTHON_DISTVERSION}
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= lang python
MASTER_SITES= PYTHON/ftp/python/${DISTVERSION:C/[a-z].*//}
PKGNAMESUFFIX= ${PYTHON_SUFFIX}
@@ -15,8 +15,8 @@
LIB_DEPENDS= libffi.so:devel/libffi
-USES= compiler:c11 cpe ncurses pathfix pkgconfig \
- python:${PYTHON_DISTVERSION:R},env readline shebangfix ssl tar:xz trigger
+USES= compiler:c11 cpe ncurses pathfix pkgconfig readline \
+ shebangfix ssl tar:xz
PATHFIX_MAKEFILEIN= Makefile.pre.in
USE_LDCONFIG= yes
GNU_CONFIGURE= yes
@@ -25,7 +25,11 @@
SHEBANG_FILES+= Lib/test/ziptestdata/exe_with_z64 \
Lib/test/ziptestdata/exe_with_zip \
Lib/test/ziptestdata/header.sh
-TRIGGERS= ${PYTHON_VERSION}
+
+# Duplicate python.mk variables. TODO: Let lang/python?? ports use python.mk bits.
+PYTHON_VER= ${PYTHON_DISTVERSION:R}
+PYTHON_VERSION= python${PYTHON_VER}
+PYTHON_SUFFIX= ${PYTHON_VER:S/.//g}
DISABLED_EXTENSIONS= _sqlite3 _tkinter _gdbm
CONFIGURE_ARGS+= --enable-shared --without-ensurepip \
diff --git a/lang/python310/files/python3.10.ucl.in b/lang/python310/files/python3.10.ucl.in
deleted file mode 100644
--- a/lang/python310/files/python3.10.ucl.in
+++ /dev/null
@@ -1,40 +0,0 @@
-path_glob: "%%PYTHON_SITELIBDIR%%/*"
-trigger: {
- type: lua
- sandbox: false
- script: <<EOS
-function cleanup(directory)
- for _,d in ipairs(pkg.readdir(directory)) do
- local full_path = directory .. "/" .. d
- local stat = pkg.stat(full_path)
- if stat["type"] == "dir" then
- if (d ~= "__pycache__") then
- cleanup(full_path)
- else
- for _,bytecode_file in ipairs(pkg.readdir(full_path)) do
- local file_origin = string.gsub(bytecode_file, "[.]cpython[-]%%PYTHON_SUFFIX%%[.].*pyc", ".py")
- if file_origin then
- local origin_path = directory .. "/" .. file_origin
- if (not pkg.stat(origin_path)) then
- --print(" >=> removed stale bytecode " .. bytecode_file)
- os.remove(full_path .. "/" .. bytecode_file)
- end
- end
- end
- end
- local res = pkg.readdir(full_path)
- if #res == 0 then
- --print(" >=> removed empty directory " .. full_path )
- os.remove(full_path)
- end
- end
- end
-end
-
-print(">=> Cleaning stale bytecode files...")
-cleanup("%%PYTHON_SITELIBDIR%%")
-
-print(">=> Byte-compiling Python source files...")
-pkg.exec({"%%PYTHON_VERSION%%", "-m", "compileall", "-q", "-o", "0", "-o", "1", "-o", "2", "%%PYTHON_SITELIBDIR%%"})
-EOS
-}
diff --git a/lang/python311/Makefile b/lang/python311/Makefile
--- a/lang/python311/Makefile
+++ b/lang/python311/Makefile
@@ -1,6 +1,6 @@
PORTNAME= python
DISTVERSION= ${PYTHON_DISTVERSION}
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= lang python
MASTER_SITES= PYTHON/ftp/python/${DISTVERSION:C/[a-z].*//}
PKGNAMESUFFIX= ${PYTHON_SUFFIX}
@@ -15,8 +15,8 @@
LIB_DEPENDS= libffi.so:devel/libffi
-USES= compiler:c11 cpe ncurses pathfix pkgconfig \
- python:${PYTHON_DISTVERSION:R},env readline shebangfix ssl tar:xz trigger
+USES= compiler:c11 cpe ncurses pathfix pkgconfig readline \
+ shebangfix ssl tar:xz
PATHFIX_MAKEFILEIN= Makefile.pre.in
USE_LDCONFIG= yes
GNU_CONFIGURE= yes
@@ -25,7 +25,11 @@
SHEBANG_FILES+= Lib/test/ziptestdata/exe_with_z64 \
Lib/test/ziptestdata/exe_with_zip \
Lib/test/ziptestdata/header.sh
-TRIGGERS= ${PYTHON_VERSION}
+
+# Duplicate python.mk variables. TODO: Let lang/python?? ports use python.mk bits.
+PYTHON_VER= ${PYTHON_DISTVERSION:R}
+PYTHON_VERSION= python${PYTHON_VER}
+PYTHON_SUFFIX= ${PYTHON_VER:S/.//g}
DISABLED_EXTENSIONS= _sqlite3 _tkinter _gdbm
CONFIGURE_ARGS+= --enable-shared --without-ensurepip \
diff --git a/lang/python311/files/python3.11.ucl.in b/lang/python311/files/python3.11.ucl.in
deleted file mode 100644
--- a/lang/python311/files/python3.11.ucl.in
+++ /dev/null
@@ -1,40 +0,0 @@
-path_glob: "%%PYTHON_SITELIBDIR%%/*"
-trigger: {
- type: lua
- sandbox: false
- script: <<EOS
-function cleanup(directory)
- for _,d in ipairs(pkg.readdir(directory)) do
- local full_path = directory .. "/" .. d
- local stat = pkg.stat(full_path)
- if stat["type"] == "dir" then
- if (d ~= "__pycache__") then
- cleanup(full_path)
- else
- for _,bytecode_file in ipairs(pkg.readdir(full_path)) do
- local file_origin = string.gsub(bytecode_file, "[.]cpython[-]%%PYTHON_SUFFIX%%[.].*pyc", ".py")
- if file_origin then
- local origin_path = directory .. "/" .. file_origin
- if (not pkg.stat(origin_path)) then
- --print(" >=> removed stale bytecode " .. bytecode_file)
- os.remove(full_path .. "/" .. bytecode_file)
- end
- end
- end
- end
- local res = pkg.readdir(full_path)
- if #res == 0 then
- --print(" >=> removed empty directory " .. full_path )
- os.remove(full_path)
- end
- end
- end
-end
-
-print(">=> Cleaning stale bytecode files...")
-cleanup("%%PYTHON_SITELIBDIR%%")
-
-print(">=> Byte-compiling Python source files...")
-pkg.exec({"%%PYTHON_VERSION%%", "-m", "compileall", "-q", "-o", "0", "-o", "1", "-o", "2", "%%PYTHON_SITELIBDIR%%"})
-EOS
-}
diff --git a/lang/python37/Makefile b/lang/python37/Makefile
--- a/lang/python37/Makefile
+++ b/lang/python37/Makefile
@@ -1,6 +1,6 @@
PORTNAME= python
DISTVERSION= ${PYTHON_DISTVERSION}
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= lang python
MASTER_SITES= PYTHON/ftp/python/${DISTVERSION}
PKGNAMESUFFIX= ${PYTHON_SUFFIX}
@@ -19,14 +19,17 @@
LIB_DEPENDS= libffi.so:devel/libffi \
libmpdec.so:math/mpdecimal
-USES= cpe ncurses pathfix pkgconfig python:${PYTHON_DISTVERSION:R},env readline \
- shebangfix ssl tar:xz trigger
+USES= cpe ncurses pathfix pkgconfig readline shebangfix ssl tar:xz
PATHFIX_MAKEFILEIN= Makefile.pre.in
USE_LDCONFIG= yes
GNU_CONFIGURE= yes
python_CMD= ${PREFIX}/bin/python${PYTHON_DISTVERSION:R}
SHEBANG_FILES= Lib/*.py Lib/*/*.py Lib/*/*/*.py Lib/*/*/*/*.py
-TRIGGERS= ${PYTHON_VERSION}
+
+# Duplicate python.mk variables. TODO: Let lang/python?? ports use python.mk bits.
+PYTHON_VER= ${PYTHON_DISTVERSION:R}
+PYTHON_VERSION= python${PYTHON_VER}
+PYTHON_SUFFIX= ${PYTHON_VER:S/.//g}
DISABLED_EXTENSIONS= _sqlite3 _tkinter _gdbm
CONFIGURE_ARGS+= --enable-shared --with-system-ffi --with-system-libmpdec --without-ensurepip
diff --git a/lang/python37/files/python3.7.ucl.in b/lang/python37/files/python3.7.ucl.in
deleted file mode 100644
--- a/lang/python37/files/python3.7.ucl.in
+++ /dev/null
@@ -1,42 +0,0 @@
-path_glob: "%%PYTHON_SITELIBDIR%%/*"
-trigger: {
- type: lua
- sandbox: false
- script: <<EOS
-function cleanup(directory)
- for _,d in ipairs(pkg.readdir(directory)) do
- local full_path = directory .. "/" .. d
- local stat = pkg.stat(full_path)
- if stat["type"] == "dir" then
- if (d ~= "__pycache__") then
- cleanup(full_path)
- else
- for _,bytecode_file in ipairs(pkg.readdir(full_path)) do
- local file_origin = string.gsub(bytecode_file, "[.]cpython[-]%%PYTHON_SUFFIX%%[.].*pyc", ".py")
- if file_origin then
- local origin_path = directory .. "/" .. file_origin
- if (not pkg.stat(origin_path)) then
- --print(" >=> removed stale bytecode " .. bytecode_file)
- os.remove(full_path .. "/" .. bytecode_file)
- end
- end
- end
- end
- local res = pkg.readdir(full_path)
- if #res == 0 then
- --print(" >=> removed empty directory " .. full_path )
- os.remove(full_path)
- end
- end
- end
-end
-
-print(">=> Cleaning stale bytecode files...")
-cleanup("%%PYTHON_SITELIBDIR%%")
-
-print(">=> Byte-compiling Python source files...")
-pkg.exec({"%%PYTHON_VERSION%%", "-m", "compileall", "-q", "%%PYTHON_SITELIBDIR%%"})
-pkg.exec({"%%PYTHON_VERSION%%", "-O", "-m", "compileall", "-q", "%%PYTHON_SITELIBDIR%%"})
-pkg.exec({"%%PYTHON_VERSION%%", "-OO", "-m", "compileall", "-q", "%%PYTHON_SITELIBDIR%%"})
-EOS
-}
diff --git a/lang/python38/Makefile b/lang/python38/Makefile
--- a/lang/python38/Makefile
+++ b/lang/python38/Makefile
@@ -1,6 +1,6 @@
PORTNAME= python
DISTVERSION= ${PYTHON_DISTVERSION}
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= lang python
MASTER_SITES= PYTHON/ftp/python/${DISTVERSION}
PKGNAMESUFFIX= ${PYTHON_SUFFIX}
@@ -15,8 +15,7 @@
LIB_DEPENDS= libffi.so:devel/libffi
-USES= cpe ncurses pathfix pkgconfig python:${PYTHON_DISTVERSION:R},env readline \
- shebangfix ssl tar:xz trigger
+USES= cpe ncurses pathfix pkgconfig readline shebangfix ssl tar:xz
PATHFIX_MAKEFILEIN= Makefile.pre.in
USE_LDCONFIG= yes
GNU_CONFIGURE= yes
@@ -25,7 +24,11 @@
SHEBANG_FILES+= Lib/test/ziptestdata/exe_with_z64 \
Lib/test/ziptestdata/exe_with_zip \
Lib/test/ziptestdata/header.sh
-TRIGGERS= ${PYTHON_VERSION}
+
+# Duplicate python.mk variables. TODO: Let lang/python?? ports use python.mk bits.
+PYTHON_VER= ${PYTHON_DISTVERSION:R}
+PYTHON_VERSION= python${PYTHON_VER}
+PYTHON_SUFFIX= ${PYTHON_VER:S/.//g}
DISABLED_EXTENSIONS= _sqlite3 _tkinter _gdbm
CONFIGURE_ARGS+= --enable-shared --without-ensurepip \
diff --git a/lang/python38/files/python3.8.ucl.in b/lang/python38/files/python3.8.ucl.in
deleted file mode 100644
--- a/lang/python38/files/python3.8.ucl.in
+++ /dev/null
@@ -1,42 +0,0 @@
-path_glob: "%%PYTHON_SITELIBDIR%%/*"
-trigger: {
- type: lua
- sandbox: false
- script: <<EOS
-function cleanup(directory)
- for _,d in ipairs(pkg.readdir(directory)) do
- local full_path = directory .. "/" .. d
- local stat = pkg.stat(full_path)
- if stat["type"] == "dir" then
- if (d ~= "__pycache__") then
- cleanup(full_path)
- else
- for _,bytecode_file in ipairs(pkg.readdir(full_path)) do
- local file_origin = string.gsub(bytecode_file, "[.]cpython[-]%%PYTHON_SUFFIX%%[.].*pyc", ".py")
- if file_origin then
- local origin_path = directory .. "/" .. file_origin
- if (not pkg.stat(origin_path)) then
- --print(" >=> removed stale bytecode " .. bytecode_file)
- os.remove(full_path .. "/" .. bytecode_file)
- end
- end
- end
- end
- local res = pkg.readdir(full_path)
- if #res == 0 then
- --print(" >=> removed empty directory " .. full_path )
- os.remove(full_path)
- end
- end
- end
-end
-
-print(">=> Cleaning stale bytecode files...")
-cleanup("%%PYTHON_SITELIBDIR%%")
-
-print(">=> Byte-compiling Python source files...")
-pkg.exec({"%%PYTHON_VERSION%%", "-m", "compileall", "-q", "%%PYTHON_SITELIBDIR%%"})
-pkg.exec({"%%PYTHON_VERSION%%", "-O", "-m", "compileall", "-q", "%%PYTHON_SITELIBDIR%%"})
-pkg.exec({"%%PYTHON_VERSION%%", "-OO", "-m", "compileall", "-q", "%%PYTHON_SITELIBDIR%%"})
-EOS
-}
diff --git a/lang/python39/Makefile b/lang/python39/Makefile
--- a/lang/python39/Makefile
+++ b/lang/python39/Makefile
@@ -1,6 +1,6 @@
PORTNAME= python
DISTVERSION= ${PYTHON_DISTVERSION}
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= lang python
MASTER_SITES= PYTHON/ftp/python/${DISTVERSION}
PKGNAMESUFFIX= ${PYTHON_SUFFIX}
@@ -15,8 +15,8 @@
LIB_DEPENDS= libffi.so:devel/libffi
-USES= compiler:c11 cpe ncurses pathfix pkgconfig \
- python:${PYTHON_DISTVERSION:R},env readline shebangfix ssl tar:xz trigger
+USES= compiler:c11 cpe ncurses pathfix pkgconfig readline \
+ shebangfix ssl tar:xz
PATHFIX_MAKEFILEIN= Makefile.pre.in
USE_LDCONFIG= yes
GNU_CONFIGURE= yes
@@ -25,7 +25,11 @@
SHEBANG_FILES+= Lib/test/ziptestdata/exe_with_z64 \
Lib/test/ziptestdata/exe_with_zip \
Lib/test/ziptestdata/header.sh
-TRIGGERS= ${PYTHON_VERSION}
+
+# Duplicate python.mk variables. TODO: Let lang/python?? ports use python.mk bits.
+PYTHON_VER= ${PYTHON_DISTVERSION:R}
+PYTHON_VERSION= python${PYTHON_VER}
+PYTHON_SUFFIX= ${PYTHON_VER:S/.//g}
DISABLED_EXTENSIONS= _sqlite3 _tkinter _gdbm
CONFIGURE_ARGS+= --enable-shared --without-ensurepip \
diff --git a/lang/python39/files/python3.9.ucl.in b/lang/python39/files/python3.9.ucl.in
deleted file mode 100644
--- a/lang/python39/files/python3.9.ucl.in
+++ /dev/null
@@ -1,40 +0,0 @@
-path_glob: "%%PYTHON_SITELIBDIR%%/*"
-trigger: {
- type: lua
- sandbox: false
- script: <<EOS
-function cleanup(directory)
- for _,d in ipairs(pkg.readdir(directory)) do
- local full_path = directory .. "/" .. d
- local stat = pkg.stat(full_path)
- if stat["type"] == "dir" then
- if (d ~= "__pycache__") then
- cleanup(full_path)
- else
- for _,bytecode_file in ipairs(pkg.readdir(full_path)) do
- local file_origin = string.gsub(bytecode_file, "[.]cpython[-]%%PYTHON_SUFFIX%%[.].*pyc", ".py")
- if file_origin then
- local origin_path = directory .. "/" .. file_origin
- if (not pkg.stat(origin_path)) then
- --print(" >=> removed stale bytecode " .. bytecode_file)
- os.remove(full_path .. "/" .. bytecode_file)
- end
- end
- end
- end
- local res = pkg.readdir(full_path)
- if #res == 0 then
- --print(" >=> removed empty directory " .. full_path )
- os.remove(full_path)
- end
- end
- end
-end
-
-print(">=> Cleaning stale bytecode files...")
-cleanup("%%PYTHON_SITELIBDIR%%")
-
-print(">=> Byte-compiling Python source files...")
-pkg.exec({"%%PYTHON_VERSION%%", "-m", "compileall", "-q", "-o", "0", "-o", "1", "-o", "2", "%%PYTHON_SITELIBDIR%%"})
-EOS
-}

File Metadata

Mime Type
text/plain
Expires
Sun, Feb 1, 3:43 PM (5 h, 49 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28403781
Default Alt Text
D34739.id118022.diff (16 KB)

Event Timeline