commit
3b4a40049e
1 changed files with 57 additions and 15 deletions
|
@ -1,20 +1,39 @@
|
|||
{ lib, hwdata, pkg-config, lxc, buildGoPackage, 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
|
||||
{ lib
|
||||
, hwdata
|
||||
, pkg-config
|
||||
, lxc
|
||||
, 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
|
||||
, bash
|
||||
, installShellFiles
|
||||
, nixosTests
|
||||
}:
|
||||
|
||||
buildGoPackage rec {
|
||||
buildGoModule rec {
|
||||
pname = "lxd";
|
||||
version = "5.6";
|
||||
|
||||
goPackagePath = "github.com/lxc/lxd";
|
||||
|
||||
src = fetchurl {
|
||||
urls = [
|
||||
"https://linuxcontainers.org/downloads/lxd/lxd-${version}.tar.gz"
|
||||
|
@ -23,6 +42,8 @@ buildGoPackage rec {
|
|||
sha256 = "sha256-bLKl9OpvxXozmqjX8hY2xIiVectBiohDxTzd5du5w+4=";
|
||||
};
|
||||
|
||||
vendorSha256 = null;
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace shared/usbid/load.go \
|
||||
--replace "/usr/share/misc/usb.ids" "${hwdata}/share/hwdata/usb.ids"
|
||||
|
@ -30,13 +51,38 @@ buildGoPackage rec {
|
|||
|
||||
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 = ''
|
||||
# required for go-dqlite. See: https://github.com/lxc/lxd/pull/8939
|
||||
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 = ''
|
||||
wrapProgram $out/bin/lxd --prefix PATH : ${lib.makeBinPath (
|
||||
[ 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-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; {
|
||||
description = "Daemon based on liblxc offering a REST API to manage containers";
|
||||
homepage = "https://linuxcontainers.org/lxd/";
|
||||
|
|
Loading…
Reference in a new issue