internal/rosa/package: migrate python interpreter

Packages will take quite some work.

Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
2026-05-19 02:06:17 +09:00
parent 2f376d4813
commit 1ed027846d
4 changed files with 112 additions and 97 deletions

View File

@@ -0,0 +1,70 @@
package python {
description = "the Python programming language interpreter";
website = "https://www.python.org";
anitya = 13254;
version* = "3.14.5";
source = remoteTar {
url = "https://www.python.org/ftp/python/"+version+
"/Python-"+version+".tgz";
checksum = "zYIpDlk2ftZ-UVGCQS1rthle2OHoyXV653ztWiopKV1NhmIJf1K2hHbkwM4DozQ9";
compress = gzip;
};
patches = [ "zipfile-no-default-strict_timestamps.patch" ];
// test_synopsis_sourceless assumes this is writable and checks __pycache__
writable = true;
chmod = true;
env = [
"EXTRATESTOPTS=-j0 -x " + join {
elems = [
// requires internet access (http://www.pythontest.net/)
"test_asyncio",
"test_socket",
"test_urllib2",
"test_urllibnet",
"test_urllib2net",
// makes assumptions about uid_map/gid_map
"test_os",
"test_subprocess",
// patched out insane strict_timestamps default
"test_zipfile",
// requires gcc
"test_ctypes",
// breaks on llvm
"test_dbm_gnu",
];
sep = " -x ";
},
// _ctypes appears to infer something from the linker name
"LDFLAGS=-Wl,--dynamic-linker=/system/lib/" +
"ld-musl-" + linuxArch + ".so.1",
];
exec = make {
check = [ "test" ];
};
inputs = [
zlib,
bzip2,
libffi,
openssl,
pkg-config,
xz,
];
runtime = [
zlib,
bzip2,
libffi,
openssl,
];
}

View File

@@ -0,0 +1,22 @@
diff --git a/Lib/zipfile/__init__.py b/Lib/zipfile/__init__.py
index 19aea290b58..51603ba9510 100644
--- a/Lib/zipfile/__init__.py
+++ b/Lib/zipfile/__init__.py
@@ -617,7 +617,7 @@ def _decodeExtra(self, filename_crc):
extra = extra[ln+4:]
@classmethod
- def from_file(cls, filename, arcname=None, *, strict_timestamps=True):
+ def from_file(cls, filename, arcname=None, *, strict_timestamps=False):
"""Construct an appropriate ZipInfo for a file on the filesystem.
filename should be the path to a file or directory on the filesystem.
@@ -1412,7 +1412,7 @@ class ZipFile:
_windows_illegal_name_trans_table = None
def __init__(self, file, mode="r", compression=ZIP_STORED, allowZip64=True,
- compresslevel=None, *, strict_timestamps=True, metadata_encoding=None):
+ compresslevel=None, *, strict_timestamps=False, metadata_encoding=None):
"""Open the ZIP file with mode read 'r', write 'w', exclusive create 'x',
or append 'a'."""
if mode not in ('r', 'w', 'x', 'a'):