2015-03-27 00:54:25 +00:00
|
|
|
|
{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, perl, docbook2x
|
|
|
|
|
, docbook_xml_dtd_45, systemd
|
|
|
|
|
, libapparmor ? null, gnutls ? null, libseccomp ? null, cgmanager ? null
|
|
|
|
|
, libnih ? null, dbus ? null, libcap ? null
|
2013-10-03 15:08:56 +00:00
|
|
|
|
}:
|
2010-10-26 21:11:47 +00:00
|
|
|
|
|
2015-03-27 00:54:25 +00:00
|
|
|
|
let
|
|
|
|
|
enableCgmanager = cgmanager != null && libnih != null && dbus != null;
|
|
|
|
|
in
|
|
|
|
|
with stdenv.lib;
|
2012-10-20 10:10:28 +00:00
|
|
|
|
stdenv.mkDerivation rec {
|
2015-03-27 00:54:25 +00:00
|
|
|
|
name = "lxc-1.1.1";
|
2010-10-26 21:11:47 +00:00
|
|
|
|
|
2015-03-27 00:54:25 +00:00
|
|
|
|
src = fetchFromGitHub {
|
|
|
|
|
owner = "lxc";
|
|
|
|
|
repo = "lxc";
|
|
|
|
|
rev = name;
|
|
|
|
|
sha256 = "04zpznd364862y3dwn97klvwfw9i2b6n1lh4fkci0z74c6z9svql";
|
2010-10-26 21:11:47 +00:00
|
|
|
|
};
|
|
|
|
|
|
2015-03-27 00:54:25 +00:00
|
|
|
|
buildInputs = [
|
|
|
|
|
autoreconfHook pkgconfig perl docbook2x systemd
|
|
|
|
|
libapparmor gnutls libseccomp cgmanager libnih dbus libcap
|
|
|
|
|
];
|
2011-09-23 11:16:10 +00:00
|
|
|
|
|
2015-03-27 00:54:25 +00:00
|
|
|
|
patches = [ ./support-db2x.patch ];
|
2011-09-26 08:12:10 +00:00
|
|
|
|
|
2015-03-27 00:54:25 +00:00
|
|
|
|
XML_CATALOG_FILES = "${docbook_xml_dtd_45}/xml/dtd/docbook/catalog.xml";
|
2010-10-26 21:11:47 +00:00
|
|
|
|
|
2013-04-15 09:15:55 +00:00
|
|
|
|
configureFlags = [
|
|
|
|
|
"--localstatedir=/var"
|
2015-03-27 00:54:25 +00:00
|
|
|
|
"--sysconfdir=/etc"
|
2014-04-10 00:27:43 +00:00
|
|
|
|
"--with-rootfs-path=/var/lib/lxc/rootfs"
|
2015-03-27 00:54:25 +00:00
|
|
|
|
] ++ optional (libapparmor != null) "--enable-apparmor"
|
|
|
|
|
++ optional (gnutls != null) "--enable-gnutls"
|
|
|
|
|
++ optional (libseccomp != null) "--enable-seccomp"
|
|
|
|
|
++ optional (enableCgmanager) "--enable-cgmanager"
|
|
|
|
|
++ optional (libcap != null) "--enable-capabilities"
|
|
|
|
|
++ [
|
2013-04-15 09:15:55 +00:00
|
|
|
|
"--enable-doc"
|
|
|
|
|
"--enable-tests"
|
|
|
|
|
];
|
2011-05-08 18:46:55 +00:00
|
|
|
|
|
2015-03-27 00:54:25 +00:00
|
|
|
|
installFlags = [ "DESTDIR=\${out}" ];
|
|
|
|
|
|
|
|
|
|
postInstall = ''
|
|
|
|
|
mv $out/$out/* $out
|
|
|
|
|
DIR=$out/$out
|
|
|
|
|
while rmdir $DIR 2>/dev/null; do
|
|
|
|
|
DIR="$(dirname "$DIR")"
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
# Remove the unneeded var/lib directories
|
|
|
|
|
rm -rf $out/var
|
|
|
|
|
'';
|
|
|
|
|
|
2010-10-26 21:11:47 +00:00
|
|
|
|
meta = {
|
2011-09-26 08:12:10 +00:00
|
|
|
|
homepage = "http://lxc.sourceforge.net";
|
2013-04-15 09:15:55 +00:00
|
|
|
|
description = "userspace tools for Linux Containers, a lightweight virtualization system";
|
2015-03-27 00:54:25 +00:00
|
|
|
|
license = licenses.lgpl21Plus;
|
2011-09-26 08:12:10 +00:00
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
'';
|
|
|
|
|
|
2015-03-27 00:54:25 +00:00
|
|
|
|
platforms = platforms.linux;
|
|
|
|
|
maintainers = with maintainers; [ simons wkennington ];
|
2010-10-26 21:11:47 +00:00
|
|
|
|
};
|
|
|
|
|
}
|