Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F143823434
D34739.id118022.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
16 KB
Referenced Files
None
Subscribers
None
D34739.id118022.diff
View Options
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
Details
Attached
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)
Attached To
Mode
D34739: lang/python: add bytecode trigger
Attached
Detach File
Event Timeline
Log In to Comment