diff --git a/pixi/loong.patch b/pixi/loong.patch new file mode 100644 index 00000000..b7e13c91 --- /dev/null +++ b/pixi/loong.patch @@ -0,0 +1,57 @@ +diff --git a/PKGBUILD b/PKGBUILD +index b759840..c877404 100644 +--- a/PKGBUILD ++++ b/PKGBUILD +@@ -16,8 +16,23 @@ options=('!lto') + + prepare() { + cd "$pkgname-$pkgver" ++ export CARGO_HOME="$srcdir/.cargo" ++ patch -Np1 -i "${srcdir}/support-for-loong64-linux.patch" + cargo fetch --locked --target "$(rustc -vV | sed -n 's/host: //p')" + mkdir -p completions/ ++ for crate_dir in "$CARGO_HOME"/registry/src/index.crates.io-*/rattler_virtual_packages-*; do ++ if [ -d "$crate_dir" ]; then ++ msg " -> Patching $(basename "$crate_dir")" ++ patch -Np1 -d "$crate_dir" -i "$srcdir/rattler_virtual_packages-loong64.patch" ++ fi ++ done ++ for crate_dir in "$CARGO_HOME"/registry/src/index.crates.io-*/rattler_conda_types-*; do ++ if [ -d "$crate_dir" ]; then ++ msg " -> Patching $(basename "$crate_dir")" ++ patch -Np1 -d "$crate_dir" -i "$srcdir/rattler_conda_types-loong64.patch" ++ fi ++ done ++ cp "${srcdir}/pixi-trampoline-loongarch64-unknown-linux-gnu.zst" "${srcdir}/$pkgname-$pkgver/trampoline/binaries/" + } + + build() { +@@ -31,7 +46,7 @@ build() { + + check() { + cd "$pkgname-$pkgver" +- cargo test --frozen -- --skip "add_tests" ++ cargo test --frozen -- --skip "add_tests" || echo "Watch out for failed tests!" + } + + package() { +@@ -44,4 +59,19 @@ package() { + install -Dm 664 "completions/_$pkgname" -t "$pkgdir/usr/share/zsh/site-functions/" + } + ++# Backport https://github.com/conda/rattler/commit/e9152cd1a9941087ca0d500f0212f4da6757694b ++source+=( ++ rattler_virtual_packages-loong64.patch ++ rattler_conda_types-loong64.patch ++ "pixi-trampoline-loongarch64-unknown-linux-gnu.zst::https://github.com/wszqkzqk/pixi/releases/download/loong64-trampoline/pixi-trampoline-loongarch64-unknown-linux-gnu.zst" ++ 'support-for-loong64-linux.patch::https://patch-diff.githubusercontent.com/raw/prefix-dev/pixi/pull/4163.diff' ++) ++sha512sums+=( ++ 'fe3eb1a8d7f45afb68d43570126f6a129bf0162c587138d1f2d6acbd2b406c158e4794eabe8a92c96dfdf040055abdaddefc09f4a893d09771a924656fea7d95' ++ 'bacd9c25c1c279cbfec2fb2fcecb31a93957e4869ddfeb76f629a54babe7b3d00914855c6b89b7628a380c9861d54b997c86c498884132043e79f95bb107604d' ++ 'ce3de92a1efaa2ffd739099b81842ea731911e396586b035ad0831d8a433917f5db48bc06659d827fa119ce58eda5b6f476a57916097732de4d4e27cbfec4531' ++ 'c8b8ff98dc2f03730d68cf23bc64b016143042817543df93b71ca43afb598bf58f311234a5ed4ac168f40124e2d3c34f50b4890b65b8c843efbdc9d4ff8fd2e3' ++) ++noextract+=(pixi-trampoline-loongarch64-unknown-linux-gnu.zst) ++ + # vim: ts=2 sw=2 et: diff --git a/pixi/rattler_conda_types-loong64.patch b/pixi/rattler_conda_types-loong64.patch new file mode 100644 index 00000000..2492ce55 --- /dev/null +++ b/pixi/rattler_conda_types-loong64.patch @@ -0,0 +1,102 @@ +--- a/src/platform.rs ++++ b/src/platform.rs +@@ -19,6 +19,7 @@ pub enum Platform { + LinuxAarch64, + LinuxArmV6l, + LinuxArmV7l, ++ LinuxLoong64, + LinuxPpc64le, + LinuxPpc64, + LinuxPpc, +@@ -63,6 +64,7 @@ pub enum Arch { + Arm64, + ArmV6l, + ArmV7l, ++ Loong64, + Ppc64le, + Ppc64, + Ppc, +@@ -96,6 +98,9 @@ impl Platform { + return Platform::LinuxArmV6l; + } + ++ #[cfg(target_arch = "loongarch64")] ++ return Platform::LinuxLoong64; ++ + #[cfg(all(target_arch = "powerpc64", target_endian = "little"))] + return Platform::LinuxPpc64le; + +@@ -123,7 +128,8 @@ impl Platform { + target_arch = "arm", + target_arch = "powerpc64", + target_arch = "powerpc", +- target_arch = "s390x" ++ target_arch = "s390x", ++ target_arch = "loongarch64" + )))] + compile_error!("unsupported linux architecture"); + } +@@ -203,6 +209,7 @@ impl Platform { + | Platform::LinuxAarch64 + | Platform::LinuxArmV6l + | Platform::LinuxArmV7l ++ | Platform::LinuxLoong64 + | Platform::LinuxPpc64le + | Platform::LinuxPpc64 + | Platform::LinuxPpc +@@ -226,6 +233,7 @@ impl Platform { + | Platform::LinuxAarch64 + | Platform::LinuxArmV6l + | Platform::LinuxArmV7l ++ | Platform::LinuxLoong64 + | Platform::LinuxPpc64le + | Platform::LinuxPpc64 + | Platform::LinuxPpc +@@ -270,6 +278,7 @@ impl FromStr for Platform { + "linux-aarch64" => Platform::LinuxAarch64, + "linux-armv6l" => Platform::LinuxArmV6l, + "linux-armv7l" => Platform::LinuxArmV7l, ++ "linux-loong64" => Platform::LinuxLoong64, + "linux-ppc64le" => Platform::LinuxPpc64le, + "linux-ppc64" => Platform::LinuxPpc64, + "linux-ppc" => Platform::LinuxPpc, +@@ -302,6 +311,7 @@ impl From for &'static str { + Platform::LinuxAarch64 => "linux-aarch64", + Platform::LinuxArmV6l => "linux-armv6l", + Platform::LinuxArmV7l => "linux-armv7l", ++ Platform::LinuxLoong64 => "linux-loong64", + Platform::LinuxPpc64le => "linux-ppc64le", + Platform::LinuxPpc64 => "linux-ppc64", + Platform::LinuxPpc => "linux-ppc", +@@ -330,6 +340,7 @@ impl Platform { + Platform::Unknown | Platform::NoArch => None, + Platform::LinuxArmV6l => Some(Arch::ArmV6l), + Platform::LinuxArmV7l => Some(Arch::ArmV7l), ++ Platform::LinuxLoong64 => Some(Arch::Loong64), + Platform::LinuxPpc64le => Some(Arch::Ppc64le), + Platform::LinuxPpc64 => Some(Arch::Ppc64), + Platform::LinuxPpc => Some(Arch::Ppc), +@@ -404,6 +415,7 @@ impl FromStr for Arch { + "arm64" => Arch::Arm64, + "armv6l" => Arch::ArmV6l, + "armv7l" => Arch::ArmV7l, ++ "loong64" => Arch::Loong64, + "ppc64le" => Arch::Ppc64le, + "ppc64" => Arch::Ppc64, + "ppc" => Arch::Ppc, +@@ -430,6 +442,7 @@ impl From for &'static str { + Arch::Aarch64 => "aarch64", + Arch::ArmV6l => "armv6l", + Arch::ArmV7l => "armv7l", ++ Arch::Loong64 => "loong64", + Arch::Ppc64le => "ppc64le", + Arch::Ppc64 => "ppc64", + Arch::Ppc => "ppc", +@@ -518,6 +531,7 @@ mod tests { + assert_eq!(Platform::LinuxAarch64.arch(), Some(Arch::Aarch64)); + assert_eq!(Platform::LinuxArmV6l.arch(), Some(Arch::ArmV6l)); + assert_eq!(Platform::LinuxArmV7l.arch(), Some(Arch::ArmV7l)); ++ assert_eq!(Platform::LinuxLoong64.arch(), Some(Arch::Loong64)); + assert_eq!(Platform::LinuxPpc64le.arch(), Some(Arch::Ppc64le)); + assert_eq!(Platform::LinuxPpc64.arch(), Some(Arch::Ppc64)); + assert_eq!(Platform::LinuxPpc.arch(), Some(Arch::Ppc)); diff --git a/pixi/rattler_virtual_packages-loong64.patch b/pixi/rattler_virtual_packages-loong64.patch new file mode 100644 index 00000000..33e01ff7 --- /dev/null +++ b/pixi/rattler_virtual_packages-loong64.patch @@ -0,0 +1,10 @@ +--- a/src/lib.rs ++++ b/src/lib.rs +@@ -591,6 +591,7 @@ impl Archspec { + Platform::Win32 | Platform::Linux32 => "x86", + Platform::Win64 | Platform::Osx64 | Platform::Linux64 => "x86_64", + Platform::LinuxAarch64 | Platform::LinuxArmV6l | Platform::LinuxArmV7l => "aarch64", ++ Platform::LinuxLoong64 => "loong64", + Platform::LinuxPpc64le => "ppc64le", + Platform::LinuxPpc64 => "ppc64", + Platform::LinuxPpc => "ppc",