Update package to 1.0.0. This is the first stable release.
Changes since 0.7.0:
- Dropped support for Python 3.7, 3.8, 3.9; added Python 3.13/3.14
- Added --overwrite-existing and --validate-record CLI options
- Support installing multiple wheels in a single invocation
- Security: fixed a path traversal bug
- Do not install __pycache__ directories from wheels
- Switch to stream-based validation instead of in-memory (lower memory)
- Sort entries before writing RECORD; fixed Windows relative path bug
- Complete type annotations with strict mypy enforcement
- API change: SchemeDictionaryDestination.overwrite_existing now defaults
to True (was False); update patch 001 accordingly
Remove patch 001-don-t-raise-error-if-file-exists.patch and
set '--overwrite-existing' in build scripts.
Signed-off-by: Alexandru Ardelean <redacted>
include $(TOPDIR)/rules.mk
PKG_NAME:=python-installer
-PKG_VERSION:=0.7.0
-PKG_RELEASE:=3
+PKG_VERSION:=1.0.0
+PKG_RELEASE:=1
PYPI_NAME:=installer
-PKG_HASH:=a26d3e3116289bb08216e0d0f7d925fcef0b0194eedfa0c944bcaaa106c4b631
+PKG_HASH:=c6d691331621cf3fec4822f5c6f83cab3705f79b316225dc454127411677c71f
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE
+++ /dev/null
-diff --git a/src/installer/destinations.py b/src/installer/destinations.py
-index a3c1967..9f733c8 100644
---- a/src/installer/destinations.py
-+++ b/src/installer/destinations.py
-@@ -164,7 +164,7 @@ class SchemeDictionaryDestination(WheelDestination):
- target_path = self._path_with_destdir(scheme, path)
- if os.path.exists(target_path):
- message = f"File already exists: {target_path}"
-- raise FileExistsError(message)
-+ os.remove(target_path)
-
- parent_folder = os.path.dirname(target_path)
- if not os.path.exists(parent_folder):
--- /dev/null
+#!/bin/sh
+
+[ "$1" = python3-installer ] || exit 0
+
+python3 - << 'EOF'
+from installer import install
+from installer.sources import WheelFile
+from installer.destinations import SchemeDictionaryDestination
+import tempfile
+import os
+
+# Verify the API is importable and overwrite_existing defaults to True
+dest = SchemeDictionaryDestination(
+ scheme_dict={
+ "purelib": "/tmp",
+ "platlib": "/tmp",
+ "headers": "/tmp",
+ "scripts": "/tmp",
+ "data": "/tmp",
+ },
+ interpreter="/usr/bin/python3",
+ script_kind="posix",
+)
+assert dest.overwrite_existing is True
+EOF
$(call HostPython3/Run, \
$(HOST_BUILD_DIR), \
-m installer \
+ --overwrite-existing \
--destdir "$(1)" \
--prefix "" \
"$(PYTHON3_HOST_BUILD_DIR)"/openwrt-build/$(PYTHON3_HOST_WHEEL_NAME)-$(PYTHON3_HOST_WHEEL_VERSION)-*.whl \
$(call Python3/Run, \
$(PKG_BUILD_DIR), \
-m installer \
+ --overwrite-existing \
--destdir "$(PKG_INSTALL_DIR)" \
--no-compile-bytecode \
--prefix /usr \