diff --git a/docs/packages/pairmux.yaml b/docs/packages/pairmux.yaml index 743700eb6fe1..5aaa0b3de5de 100644 --- a/docs/packages/pairmux.yaml +++ b/docs/packages/pairmux.yaml @@ -9,3 +9,7 @@ versions: - filename: pairmux-0.5.2-py3-none-manylinux_2_39_riscv64.whl sha256: c7876d5a1f89869980b0b10b64b303fac416395e6e45fb6ea36fd61ecf34a3cb requires-python: '>=3.9' +- version: 0.5.3 +- version: 0.6.0 +- version: 1.0.0 +- version: 1.1.0 diff --git a/patches/pairmux/0.5.3/0001-packaging-add-riscv64-to-the-pypi-wheel-platform-tab.patch b/patches/pairmux/0.5.3/0001-packaging-add-riscv64-to-the-pypi-wheel-platform-tab.patch new file mode 100644 index 000000000000..2e2fdaf8d533 --- /dev/null +++ b/patches/pairmux/0.5.3/0001-packaging-add-riscv64-to-the-pypi-wheel-platform-tab.patch @@ -0,0 +1,57 @@ +From 1549b4f2bf3baca546cfe81a4009466de0456d94 Mon Sep 17 00:00:00 2001 +From: Ludovic Henry +Date: Fri, 4 Sep 2026 22:35:56 +0200 +Subject: [PATCH] packaging: add riscv64 to the pypi wheel platform tables + +Upstream-Status: To upstream [not submitted yet; no riscv64 CI to validate it against] + +pairmux ships one prebuilt Go binary per platform inside a hand-built +py3-none- wheel (packaging/pypi/build_wheels.py); the platform +comes from a fixed table keyed on (goos, goarch), read from an ELF/Mach-O +header. GOOS=linux GOARCH=riscv64 CGO_ENABLED=0 cross-compiles pairmux +cleanly (it is a zero-dependency, cgo-free binary, same as the four +platforms already built), but the table has no entry for it and +linux_elf_arch() does not recognize EM_RISCV (243), so build_wheels.py +rejects the binary before it gets that far. + +Add the missing PLATFORM_TAGS/ELF_MACHINE_TO_WHEEL_ARCH/ +LINUX_PLATFORM_ARCHES entries, tagged manylinux_2_39_riscv64. riscv64 +predates the manylinux1/2010/2014 legacy aliases that let the x86_64 and +aarch64 rows compress two sub-tags into one, so this row has only the +single perennial tag. + +Signed-off-by: Ludovic Henry +--- + packaging/pypi/build_wheels.py | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/packaging/pypi/build_wheels.py b/packaging/pypi/build_wheels.py +index 38a1432..9afba9c 100755 +--- a/packaging/pypi/build_wheels.py ++++ b/packaging/pypi/build_wheels.py +@@ -84,6 +84,9 @@ PLATFORM_TAGS = { + ("darwin", "amd64"): "macosx_12_0_x86_64", + ("linux", "amd64"): "manylinux_2_17_x86_64.manylinux2014_x86_64", + ("linux", "arm64"): "manylinux_2_17_aarch64.manylinux2014_aarch64", ++ # riscv64 predates the manylinux1/2010/2014 legacy aliases, so there is no ++ # second sub-tag to compress in here (unlike the x86_64/aarch64 rows above). ++ ("linux", "riscv64"): "manylinux_2_39_riscv64", + } + + # Trove classifiers — all valid values from the official list, so PyPI accepts +@@ -128,10 +131,12 @@ ELF64_HEADER_SIZE = struct.calcsize(ELF64_HEADER_FORMAT) + ELF_MACHINE_TO_WHEEL_ARCH = { + 62: "x86_64", # EM_X86_64 + 183: "aarch64", # EM_AARCH64 ++ 243: "riscv64", # EM_RISCV + } + LINUX_PLATFORM_ARCHES = { + PLATFORM_TAGS[("linux", "amd64")]: "x86_64", + PLATFORM_TAGS[("linux", "arm64")]: "aarch64", ++ PLATFORM_TAGS[("linux", "riscv64")]: "riscv64", + } + + # goreleaser build-subdir names end with __[_]. Go's +-- +2.50.1 (Apple Git-155) + diff --git a/patches/pairmux/0.6.0/0001-packaging-add-riscv64-to-the-pypi-wheel-platform-tab.patch b/patches/pairmux/0.6.0/0001-packaging-add-riscv64-to-the-pypi-wheel-platform-tab.patch new file mode 100644 index 000000000000..2e2fdaf8d533 --- /dev/null +++ b/patches/pairmux/0.6.0/0001-packaging-add-riscv64-to-the-pypi-wheel-platform-tab.patch @@ -0,0 +1,57 @@ +From 1549b4f2bf3baca546cfe81a4009466de0456d94 Mon Sep 17 00:00:00 2001 +From: Ludovic Henry +Date: Fri, 4 Sep 2026 22:35:56 +0200 +Subject: [PATCH] packaging: add riscv64 to the pypi wheel platform tables + +Upstream-Status: To upstream [not submitted yet; no riscv64 CI to validate it against] + +pairmux ships one prebuilt Go binary per platform inside a hand-built +py3-none- wheel (packaging/pypi/build_wheels.py); the platform +comes from a fixed table keyed on (goos, goarch), read from an ELF/Mach-O +header. GOOS=linux GOARCH=riscv64 CGO_ENABLED=0 cross-compiles pairmux +cleanly (it is a zero-dependency, cgo-free binary, same as the four +platforms already built), but the table has no entry for it and +linux_elf_arch() does not recognize EM_RISCV (243), so build_wheels.py +rejects the binary before it gets that far. + +Add the missing PLATFORM_TAGS/ELF_MACHINE_TO_WHEEL_ARCH/ +LINUX_PLATFORM_ARCHES entries, tagged manylinux_2_39_riscv64. riscv64 +predates the manylinux1/2010/2014 legacy aliases that let the x86_64 and +aarch64 rows compress two sub-tags into one, so this row has only the +single perennial tag. + +Signed-off-by: Ludovic Henry +--- + packaging/pypi/build_wheels.py | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/packaging/pypi/build_wheels.py b/packaging/pypi/build_wheels.py +index 38a1432..9afba9c 100755 +--- a/packaging/pypi/build_wheels.py ++++ b/packaging/pypi/build_wheels.py +@@ -84,6 +84,9 @@ PLATFORM_TAGS = { + ("darwin", "amd64"): "macosx_12_0_x86_64", + ("linux", "amd64"): "manylinux_2_17_x86_64.manylinux2014_x86_64", + ("linux", "arm64"): "manylinux_2_17_aarch64.manylinux2014_aarch64", ++ # riscv64 predates the manylinux1/2010/2014 legacy aliases, so there is no ++ # second sub-tag to compress in here (unlike the x86_64/aarch64 rows above). ++ ("linux", "riscv64"): "manylinux_2_39_riscv64", + } + + # Trove classifiers — all valid values from the official list, so PyPI accepts +@@ -128,10 +131,12 @@ ELF64_HEADER_SIZE = struct.calcsize(ELF64_HEADER_FORMAT) + ELF_MACHINE_TO_WHEEL_ARCH = { + 62: "x86_64", # EM_X86_64 + 183: "aarch64", # EM_AARCH64 ++ 243: "riscv64", # EM_RISCV + } + LINUX_PLATFORM_ARCHES = { + PLATFORM_TAGS[("linux", "amd64")]: "x86_64", + PLATFORM_TAGS[("linux", "arm64")]: "aarch64", ++ PLATFORM_TAGS[("linux", "riscv64")]: "riscv64", + } + + # goreleaser build-subdir names end with __[_]. Go's +-- +2.50.1 (Apple Git-155) + diff --git a/patches/pairmux/1.0.0/0001-packaging-add-riscv64-to-the-pypi-wheel-platform-tab.patch b/patches/pairmux/1.0.0/0001-packaging-add-riscv64-to-the-pypi-wheel-platform-tab.patch new file mode 100644 index 000000000000..023ad5b10347 --- /dev/null +++ b/patches/pairmux/1.0.0/0001-packaging-add-riscv64-to-the-pypi-wheel-platform-tab.patch @@ -0,0 +1,57 @@ +From 1549b4f2bf3baca546cfe81a4009466de0456d94 Mon Sep 17 00:00:00 2001 +From: Ludovic Henry +Date: Fri, 4 Sep 2026 22:35:56 +0200 +Subject: [PATCH] packaging: add riscv64 to the pypi wheel platform tables + +Upstream-Status: To upstream [not submitted yet; no riscv64 CI to validate it against] + +pairmux ships one prebuilt Go binary per platform inside a hand-built +py3-none- wheel (packaging/pypi/build_wheels.py); the platform +comes from a fixed table keyed on (goos, goarch), read from an ELF/Mach-O +header. GOOS=linux GOARCH=riscv64 CGO_ENABLED=0 cross-compiles pairmux +cleanly (it is a zero-dependency, cgo-free binary, same as the four +platforms already built), but the table has no entry for it and +linux_elf_arch() does not recognize EM_RISCV (243), so build_wheels.py +rejects the binary before it gets that far. + +Add the missing PLATFORM_TAGS/ELF_MACHINE_TO_WHEEL_ARCH/ +LINUX_PLATFORM_ARCHES entries, tagged manylinux_2_39_riscv64. riscv64 +predates the manylinux1/2010/2014 legacy aliases that let the x86_64 and +aarch64 rows compress two sub-tags into one, so this row has only the +single perennial tag. + +Signed-off-by: Ludovic Henry +--- + packaging/pypi/build_wheels.py | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/packaging/pypi/build_wheels.py b/packaging/pypi/build_wheels.py +index 6c8e23e..9d32f5c 100755 +--- a/packaging/pypi/build_wheels.py ++++ b/packaging/pypi/build_wheels.py +@@ -89,6 +89,9 @@ PLATFORM_TAGS = { + ("darwin", "amd64"): "macosx_12_0_x86_64", + ("linux", "amd64"): "manylinux_2_17_x86_64.manylinux2014_x86_64", + ("linux", "arm64"): "manylinux_2_17_aarch64.manylinux2014_aarch64", ++ # riscv64 predates the manylinux1/2010/2014 legacy aliases, so there is no ++ # second sub-tag to compress in here (unlike the x86_64/aarch64 rows above). ++ ("linux", "riscv64"): "manylinux_2_39_riscv64", + # Windows tags carry no OS-version floor. The PE header is still parsed so + # a swapped or non-console binary cannot ship under either tag. + ("windows", "amd64"): "win_amd64", +@@ -138,10 +141,12 @@ ELF64_HEADER_SIZE = struct.calcsize(ELF64_HEADER_FORMAT) + ELF_MACHINE_TO_WHEEL_ARCH = { + 62: "x86_64", # EM_X86_64 + 183: "aarch64", # EM_AARCH64 ++ 243: "riscv64", # EM_RISCV + } + LINUX_PLATFORM_ARCHES = { + PLATFORM_TAGS[("linux", "amd64")]: "x86_64", + PLATFORM_TAGS[("linux", "arm64")]: "aarch64", ++ PLATFORM_TAGS[("linux", "riscv64")]: "riscv64", + } + # Host-only tags for wheels built from a clone by pairmux_build_backend.py. They + # make no cross-distribution claim, and PyPI refuses them, which is intended: +-- +2.50.1 (Apple Git-155) + diff --git a/patches/pairmux/1.1.0/0001-packaging-add-riscv64-to-the-pypi-wheel-platform-tab.patch b/patches/pairmux/1.1.0/0001-packaging-add-riscv64-to-the-pypi-wheel-platform-tab.patch new file mode 100644 index 000000000000..023ad5b10347 --- /dev/null +++ b/patches/pairmux/1.1.0/0001-packaging-add-riscv64-to-the-pypi-wheel-platform-tab.patch @@ -0,0 +1,57 @@ +From 1549b4f2bf3baca546cfe81a4009466de0456d94 Mon Sep 17 00:00:00 2001 +From: Ludovic Henry +Date: Fri, 4 Sep 2026 22:35:56 +0200 +Subject: [PATCH] packaging: add riscv64 to the pypi wheel platform tables + +Upstream-Status: To upstream [not submitted yet; no riscv64 CI to validate it against] + +pairmux ships one prebuilt Go binary per platform inside a hand-built +py3-none- wheel (packaging/pypi/build_wheels.py); the platform +comes from a fixed table keyed on (goos, goarch), read from an ELF/Mach-O +header. GOOS=linux GOARCH=riscv64 CGO_ENABLED=0 cross-compiles pairmux +cleanly (it is a zero-dependency, cgo-free binary, same as the four +platforms already built), but the table has no entry for it and +linux_elf_arch() does not recognize EM_RISCV (243), so build_wheels.py +rejects the binary before it gets that far. + +Add the missing PLATFORM_TAGS/ELF_MACHINE_TO_WHEEL_ARCH/ +LINUX_PLATFORM_ARCHES entries, tagged manylinux_2_39_riscv64. riscv64 +predates the manylinux1/2010/2014 legacy aliases that let the x86_64 and +aarch64 rows compress two sub-tags into one, so this row has only the +single perennial tag. + +Signed-off-by: Ludovic Henry +--- + packaging/pypi/build_wheels.py | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/packaging/pypi/build_wheels.py b/packaging/pypi/build_wheels.py +index 6c8e23e..9d32f5c 100755 +--- a/packaging/pypi/build_wheels.py ++++ b/packaging/pypi/build_wheels.py +@@ -89,6 +89,9 @@ PLATFORM_TAGS = { + ("darwin", "amd64"): "macosx_12_0_x86_64", + ("linux", "amd64"): "manylinux_2_17_x86_64.manylinux2014_x86_64", + ("linux", "arm64"): "manylinux_2_17_aarch64.manylinux2014_aarch64", ++ # riscv64 predates the manylinux1/2010/2014 legacy aliases, so there is no ++ # second sub-tag to compress in here (unlike the x86_64/aarch64 rows above). ++ ("linux", "riscv64"): "manylinux_2_39_riscv64", + # Windows tags carry no OS-version floor. The PE header is still parsed so + # a swapped or non-console binary cannot ship under either tag. + ("windows", "amd64"): "win_amd64", +@@ -138,10 +141,12 @@ ELF64_HEADER_SIZE = struct.calcsize(ELF64_HEADER_FORMAT) + ELF_MACHINE_TO_WHEEL_ARCH = { + 62: "x86_64", # EM_X86_64 + 183: "aarch64", # EM_AARCH64 ++ 243: "riscv64", # EM_RISCV + } + LINUX_PLATFORM_ARCHES = { + PLATFORM_TAGS[("linux", "amd64")]: "x86_64", + PLATFORM_TAGS[("linux", "arm64")]: "aarch64", ++ PLATFORM_TAGS[("linux", "riscv64")]: "riscv64", + } + # Host-only tags for wheels built from a clone by pairmux_build_backend.py. They + # make no cross-distribution claim, and PyPI refuses them, which is intended: +-- +2.50.1 (Apple Git-155) +