[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
How can I set architecture/system-specific origin sources?
From: |
Pierre Neidhardt |
Subject: |
How can I set architecture/system-specific origin sources? |
Date: |
Tue, 31 Dec 2019 12:30:06 +0100 |
Hi!
I'd like to write a package definition whose source is different
depending on the system / arch it is built for.
I thought of writing something like this:
--8<---------------cut here---------------start------------->8---
(source (origin
(method url-fetch)
(uri
(string-append "http://foo.bar/"
version "-"
(match (or (%current-target-system)
(%current-system))
("i686-linux" "x86")
("x86_64-linux" "x86_64"))
".tgz"))
(sha256
(base32
(match (or (%current-target-system)
(%current-system))
("x86_64-linux"
"0y4qms4lm9xiix93g45337rx5nrp0y3gb0x0avyv7l9qrkk03zz8")
("i686-linux"
"0yc8n6vpqyb6qhcv5kwvr3h21ya271fi930fvd98hlkg8cg5kwyf"))))))
--8<---------------cut here---------------end--------------->8---
My laptop is a x86_64-linux and the above definition always uses the
x86_64 source, even with
guix build --system=i686-linux foo
In Nix, the following works:
--8<---------------cut here---------------start------------->8---
src =
if stdenv.hostPlatform.system == "x86_64-linux" then
fetchurl {
url = "http://foo.bar/...";
sha256 =
"e8ff01e6cc38d1b3fd56a083f5860737dbd2f319a39037528fb1a74a89ae9878";
}
else if stdenv.hostPlatform.system == "i686-linux" then
fetchurl {
url = "http://foo.bar/...";
sha256 =
"cef3591e436f528852db0e8c145d3842f920e0c89bcfb219c466797cb7b18879";
}
else throw "foo does not support platform ${stdenv.hostPlatform.system}";
--8<---------------cut here---------------end--------------->8---
Is this a Guix bug?
--
Pierre Neidhardt
https://ambrevar.xyz/
signature.asc
Description: PGP signature
- How can I set architecture/system-specific origin sources?,
Pierre Neidhardt <=