|
|
|
|
@ -183,34 +183,45 @@
|
|
|
|
|
{ |
|
|
|
|
packages = { |
|
|
|
|
default = package pkgsHost; |
|
|
|
|
|
|
|
|
|
oci-image = mkOciImage pkgsHost self.packages.${system}.default; |
|
|
|
|
|
|
|
|
|
# Build an OCI image from the musl aarch64 build so we don't have to |
|
|
|
|
# build for aarch64 twice (to make a gnu version specifically for the |
|
|
|
|
# OCI image) |
|
|
|
|
oci-image-aarch64-unknown-linux-musl = mkOciImage |
|
|
|
|
pkgsHost |
|
|
|
|
self.packages.${system}.static-aarch64-unknown-linux-musl; |
|
|
|
|
|
|
|
|
|
# Don't build a musl x86_64 OCI image because that would be pointless. |
|
|
|
|
# Just use the gnu one (i.e. `self.packages."x86_64-linux".oci-image`). |
|
|
|
|
} // builtins.listToAttrs ( |
|
|
|
|
builtins.map |
|
|
|
|
(crossSystem: { |
|
|
|
|
name = "static-${crossSystem}"; |
|
|
|
|
value = package (import nixpkgs { |
|
|
|
|
inherit system; |
|
|
|
|
crossSystem = { |
|
|
|
|
config = crossSystem; |
|
|
|
|
}; |
|
|
|
|
}).pkgsStatic; |
|
|
|
|
}) |
|
|
|
|
[ |
|
|
|
|
"x86_64-unknown-linux-musl" |
|
|
|
|
"aarch64-unknown-linux-musl" |
|
|
|
|
] |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
// |
|
|
|
|
builtins.listToAttrs |
|
|
|
|
(builtins.concatLists |
|
|
|
|
(builtins.map |
|
|
|
|
(crossSystem: |
|
|
|
|
let |
|
|
|
|
binaryName = "static-${crossSystem}"; |
|
|
|
|
pkgsCrossStatic = |
|
|
|
|
(import nixpkgs { |
|
|
|
|
inherit system; |
|
|
|
|
crossSystem = { |
|
|
|
|
config = crossSystem; |
|
|
|
|
}; |
|
|
|
|
}).pkgsStatic; |
|
|
|
|
in |
|
|
|
|
[ |
|
|
|
|
# An output for a statically-linked binary |
|
|
|
|
{ |
|
|
|
|
name = binaryName; |
|
|
|
|
value = package pkgsCrossStatic; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
# An output for an OCI image based on that binary |
|
|
|
|
{ |
|
|
|
|
name = "oci-image-${crossSystem}"; |
|
|
|
|
value = mkOciImage |
|
|
|
|
pkgsCrossStatic |
|
|
|
|
self.packages.${system}.${binaryName}; |
|
|
|
|
} |
|
|
|
|
] |
|
|
|
|
) |
|
|
|
|
[ |
|
|
|
|
"x86_64-unknown-linux-musl" |
|
|
|
|
"aarch64-unknown-linux-musl" |
|
|
|
|
] |
|
|
|
|
) |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
devShells.default = pkgsHost.mkShell { |
|
|
|
|
env = env pkgsHost // { |
|
|
|
|
|