Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 57 additions & 0 deletions pixi/loong.patch
Original file line number Diff line number Diff line change
@@ -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:
102 changes: 102 additions & 0 deletions pixi/rattler_conda_types-loong64.patch
Original file line number Diff line number Diff line change
@@ -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<Platform> 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<Arch> 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));
10 changes: 10 additions & 0 deletions pixi/rattler_virtual_packages-loong64.patch
Original file line number Diff line number Diff line change
@@ -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",