commit
3b4a40049e
1 changed files with 57 additions and 15 deletions
|
@ -1,20 +1,39 @@
|
||||||
{ lib, hwdata, pkg-config, lxc, buildGoPackage, fetchurl
|
{ lib
|
||||||
, makeWrapper, acl, rsync, gnutar, xz, btrfs-progs, gzip, dnsmasq, attr
|
, hwdata
|
||||||
, squashfsTools, iproute2, iptables, libcap
|
, pkg-config
|
||||||
, dqlite, raft-canonical, sqlite-replication, udev
|
, lxc
|
||||||
, writeShellScriptBin, apparmor-profiles, apparmor-parser
|
, buildGoModule
|
||||||
|
, fetchurl
|
||||||
|
, makeWrapper
|
||||||
|
, acl
|
||||||
|
, rsync
|
||||||
|
, gnutar
|
||||||
|
, xz
|
||||||
|
, btrfs-progs
|
||||||
|
, gzip
|
||||||
|
, dnsmasq
|
||||||
|
, attr
|
||||||
|
, squashfsTools
|
||||||
|
, iproute2
|
||||||
|
, iptables
|
||||||
|
, libcap
|
||||||
|
, dqlite
|
||||||
|
, raft-canonical
|
||||||
|
, sqlite-replication
|
||||||
|
, udev
|
||||||
|
, writeShellScriptBin
|
||||||
|
, apparmor-profiles
|
||||||
|
, apparmor-parser
|
||||||
, criu
|
, criu
|
||||||
, bash
|
, bash
|
||||||
, installShellFiles
|
, installShellFiles
|
||||||
, nixosTests
|
, nixosTests
|
||||||
}:
|
}:
|
||||||
|
|
||||||
buildGoPackage rec {
|
buildGoModule rec {
|
||||||
pname = "lxd";
|
pname = "lxd";
|
||||||
version = "5.6";
|
version = "5.6";
|
||||||
|
|
||||||
goPackagePath = "github.com/lxc/lxd";
|
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
urls = [
|
urls = [
|
||||||
"https://linuxcontainers.org/downloads/lxd/lxd-${version}.tar.gz"
|
"https://linuxcontainers.org/downloads/lxd/lxd-${version}.tar.gz"
|
||||||
|
@ -23,6 +42,8 @@ buildGoPackage rec {
|
||||||
sha256 = "sha256-bLKl9OpvxXozmqjX8hY2xIiVectBiohDxTzd5du5w+4=";
|
sha256 = "sha256-bLKl9OpvxXozmqjX8hY2xIiVectBiohDxTzd5du5w+4=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
vendorSha256 = null;
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
substituteInPlace shared/usbid/load.go \
|
substituteInPlace shared/usbid/load.go \
|
||||||
--replace "/usr/share/misc/usb.ids" "${hwdata}/share/hwdata/usb.ids"
|
--replace "/usr/share/misc/usb.ids" "${hwdata}/share/hwdata/usb.ids"
|
||||||
|
@ -30,13 +51,38 @@ buildGoPackage rec {
|
||||||
|
|
||||||
excludedPackages = [ "test" "lxd/db/generate" ];
|
excludedPackages = [ "test" "lxd/db/generate" ];
|
||||||
|
|
||||||
|
nativeBuildInputs = [ installShellFiles pkg-config makeWrapper ];
|
||||||
|
buildInputs = [
|
||||||
|
lxc
|
||||||
|
acl
|
||||||
|
libcap
|
||||||
|
dqlite.dev
|
||||||
|
raft-canonical.dev
|
||||||
|
sqlite-replication
|
||||||
|
udev.dev
|
||||||
|
];
|
||||||
|
|
||||||
|
ldflags = [ "-s" "-w" ];
|
||||||
|
tags = [ "libsqlite3" ];
|
||||||
|
|
||||||
preBuild = ''
|
preBuild = ''
|
||||||
# required for go-dqlite. See: https://github.com/lxc/lxd/pull/8939
|
# required for go-dqlite. See: https://github.com/lxc/lxd/pull/8939
|
||||||
export CGO_LDFLAGS_ALLOW="(-Wl,-wrap,pthread_create)|(-Wl,-z,now)"
|
export CGO_LDFLAGS_ALLOW="(-Wl,-wrap,pthread_create)|(-Wl,-z,now)"
|
||||||
|
|
||||||
makeFlagsArray+=("-tags libsqlite3")
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
preCheck =
|
||||||
|
let skippedTests = [
|
||||||
|
"TestValidateConfig"
|
||||||
|
"TestConvertNetworkConfig"
|
||||||
|
"TestConvertStorageConfig"
|
||||||
|
"TestSnapshotCommon"
|
||||||
|
"TestContainerTestSuite"
|
||||||
|
]; in
|
||||||
|
''
|
||||||
|
# Disable tests requiring local operations
|
||||||
|
buildFlagsArray+=("-run" "[^(${builtins.concatStringsSep "|" skippedTests})]")
|
||||||
|
'';
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
wrapProgram $out/bin/lxd --prefix PATH : ${lib.makeBinPath (
|
wrapProgram $out/bin/lxd --prefix PATH : ${lib.makeBinPath (
|
||||||
[ iptables ]
|
[ iptables ]
|
||||||
|
@ -47,16 +93,12 @@ buildGoPackage rec {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
installShellCompletion --bash --name lxd go/src/github.com/lxc/lxd/scripts/bash/lxd-client
|
installShellCompletion --bash --name lxd ./scripts/bash/lxd-client
|
||||||
'';
|
'';
|
||||||
|
|
||||||
passthru.tests.lxd = nixosTests.lxd;
|
passthru.tests.lxd = nixosTests.lxd;
|
||||||
passthru.tests.lxd-nftables = nixosTests.lxd-nftables;
|
passthru.tests.lxd-nftables = nixosTests.lxd-nftables;
|
||||||
|
|
||||||
nativeBuildInputs = [ installShellFiles pkg-config makeWrapper ];
|
|
||||||
buildInputs = [ lxc acl libcap dqlite.dev raft-canonical.dev
|
|
||||||
sqlite-replication udev.dev ];
|
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Daemon based on liblxc offering a REST API to manage containers";
|
description = "Daemon based on liblxc offering a REST API to manage containers";
|
||||||
homepage = "https://linuxcontainers.org/lxd/";
|
homepage = "https://linuxcontainers.org/lxd/";
|
||||||
|
|
Loading…
Reference in a new issue