aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/os-specific/linux/lxc/default.nix
diff options
context:
space:
mode:
authorMx Kookie <kookie@spacekookie.de>2020-10-31 19:35:09 +0100
committerMx Kookie <kookie@spacekookie.de>2020-10-31 19:35:09 +0100
commitc4625b175f8200f643fd6e11010932ea44c78433 (patch)
treebce3f89888c8ac3991fa5569a878a9eab6801ccc /infra/libkookie/nixpkgs/pkgs/os-specific/linux/lxc/default.nix
parent49f735974dd103039ddc4cb576bb76555164a9e7 (diff)
parentd661aa56a8843e991261510c1bb28fdc2f6975ae (diff)
Add 'infra/libkookie/' from commit 'd661aa56a8843e991261510c1bb28fdc2f6975ae'
git-subtree-dir: infra/libkookie git-subtree-mainline: 49f735974dd103039ddc4cb576bb76555164a9e7 git-subtree-split: d661aa56a8843e991261510c1bb28fdc2f6975ae
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/os-specific/linux/lxc/default.nix')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/os-specific/linux/lxc/default.nix99
1 files changed, 99 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/os-specific/linux/lxc/default.nix b/infra/libkookie/nixpkgs/pkgs/os-specific/linux/lxc/default.nix
new file mode 100644
index 000000000000..21c1eede9d7a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/os-specific/linux/lxc/default.nix
@@ -0,0 +1,99 @@
+{ 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 {
+ pname = "lxc";
+ version = "4.0.4";
+
+ src = fetchurl {
+ url = "https://linuxcontainers.org/downloads/lxc/lxc-${version}.tar.gz";
+ sha256 = "15frszz5am9bnr8vh1zpg89x0xigcfm19jax0z16cazd42xahr9w";
+ };
+
+ 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
+
+ completions=(
+ lxc-attach lxc-cgroup lxc-console lxc-destroy lxc-device lxc-execute
+ lxc-freeze lxc-info lxc-monitor lxc-snapshot lxc-stop lxc-unfreeze
+ )
+ pushd $out/share/bash-completion/completions/
+ mv lxc lxc-start
+ for completion in ''${completions[@]}; do
+ ln -sfn lxc-start $completion
+ done
+ popd
+ '';
+
+ 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; [ fpletz ];
+ };
+}