diff options
Diffstat (limited to 'nixpkgs/pkgs/os-specific/linux/lxc/default.nix')
-rw-r--r-- | nixpkgs/pkgs/os-specific/linux/lxc/default.nix | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/os-specific/linux/lxc/default.nix b/nixpkgs/pkgs/os-specific/linux/lxc/default.nix new file mode 100644 index 000000000000..ab84c4d9bf97 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/linux/lxc/default.nix @@ -0,0 +1,88 @@ +{ stdenv, fetchurl, autoreconfHook, pkgconfig, perl, docbook2x +, docbook_xml_dtd_45, python3Packages, pam + +# Optional Dependencies +, libapparmor ? null, gnutls ? null, libselinux ? null, libseccomp ? null +, libcap ? null, systemd ? null +}: + +with stdenv.lib; +stdenv.mkDerivation rec { + name = "lxc-${version}"; + version = "3.0.2"; + + src = fetchurl { + url = "https://linuxcontainers.org/downloads/lxc/lxc-${version}.tar.gz"; + sha256 = "0p1gy553cm4mhwxi85fl6qiwz61rjmvysm8c8pd20qh62xxi3dva"; + }; + + nativeBuildInputs = [ + autoreconfHook pkgconfig perl docbook2x python3Packages.wrapPython + ]; + buildInputs = [ + pam libapparmor gnutls libselinux libseccomp libcap + python3Packages.python python3Packages.setuptools systemd + ]; + + patches = [ + ./support-db2x.patch + ]; + + postPatch = '' + sed -i '/chmod u+s/d' src/lxc/Makefile.am + ''; + + XML_CATALOG_FILES = "${docbook_xml_dtd_45}/xml/dtd/docbook/catalog.xml"; + + configureFlags = [ + "--enable-pam" + "--localstatedir=/var" + "--sysconfdir=/etc" + "--disable-api-docs" + "--with-init-script=none" + "--with-distro=nixos" # just to be sure it is "unknown" + ] ++ optional (libapparmor != null) "--enable-apparmor" + ++ optional (libselinux != null) "--enable-selinux" + ++ optional (libseccomp != null) "--enable-seccomp" + ++ optional (libcap != null) "--enable-capabilities" + ++ [ + "--disable-examples" + "--enable-python" + "--disable-lua" + "--enable-bash" + (if doCheck then "--enable-tests" else "--disable-tests") + "--with-rootfs-path=/var/lib/lxc/rootfs" + ]; + + doCheck = false; + + installFlags = [ + "localstatedir=\${TMPDIR}" + "sysconfdir=\${out}/etc" + "sysconfigdir=\${out}/etc/default" + "bashcompdir=\${out}/share/bash-completion/completions" + "READMEdir=\${TMPDIR}/var/lib/lxc/rootfs" + "LXCPATH=\${TMPDIR}/var/lib/lxc" + ]; + + postInstall = '' + wrapPythonPrograms + ''; + + meta = { + homepage = https://linuxcontainers.org/; + description = "Userspace tools for Linux Containers, a lightweight virtualization system"; + license = licenses.lgpl21Plus; + + longDescription = '' + LXC is the userspace control package for Linux Containers, a + lightweight virtual system mechanism sometimes described as + "chroot on steroids". LXC builds up from chroot to implement + complete virtual systems, adding resource management and isolation + mechanisms to Linux’s existing process management infrastructure. + ''; + + platforms = platforms.linux; + maintainers = with maintainers; [ wkennington globin fpletz ]; + }; +} |