aboutsummaryrefslogtreecommitdiff
path: root/utils/lxc
diff options
context:
space:
mode:
authorLuka Perkov <luka@openwrt.org>2014-08-08 17:21:37 +0200
committerLuka Perkov <luka@openwrt.org>2014-08-08 17:21:37 +0200
commit36fe1d34e682299434e09e09947148b3bf7217a3 (patch)
tree4b19aada8bd87b8a9b6d17eb7f1ade8d78569c16 /utils/lxc
parentb349ec1d0e2f4fce009d96ae9a34a75a0ab68a2c (diff)
lxc: move package from old packages feed
Signed-off-by: Luka Perkov <luka@openwrt.org>
Diffstat (limited to 'utils/lxc')
-rw-r--r--utils/lxc/Makefile225
-rw-r--r--utils/lxc/patches/010-compile.patch33
-rw-r--r--utils/lxc/patches/015-getline.patch15
-rw-r--r--utils/lxc/patches/020-lxc-checkconfig.patch20
4 files changed, 293 insertions, 0 deletions
diff --git a/utils/lxc/Makefile b/utils/lxc/Makefile
new file mode 100644
index 000000000..a613352df
--- /dev/null
+++ b/utils/lxc/Makefile
@@ -0,0 +1,225 @@
+#
+# Copyright (C) 2013-2014 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=lxc
+PKG_VERSION:=1.0.5
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://linuxcontainers.org/downloads/
+PKG_MD5SUM:=9d9af9e9e69a831cd50b58d91c786013
+
+PKG_BUILD_DEPENDS:=lua
+PKG_BUILD_PARALLEL:=1
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+LXC_APPLETS_BIN += \
+ attach autostart cgroup clone config console create destroy execute \
+ freeze info monitor snapshot start stop unfreeze unshare usernsexec wait
+
+LXC_APPLETS_LIB += \
+ monitord user-nic
+
+LXC_SCRIPTS += \
+ checkconfig ls top
+
+DEPENDS_APPLETS = +libpthread +libcap +liblxc
+
+DEPENDS_top = +lxc-lua +luafilesystem @BROKEN
+
+
+define Package/lxc/Default
+ SECTION:=utils
+ CATEGORY:=Utilities
+ TITLE:=LXC userspace tools
+ URL:=http://lxc.sourceforge.net/
+ MAINTAINER:=Luka Perkov <luka@openwrt.org>
+endef
+
+define Package/lxc
+ $(call Package/lxc/Default)
+ MENU:=1
+endef
+
+define Package/lxc/description
+ LXC is the userspace control package for Linux Containers, a lightweight
+ virtual system mechanism sometimes described as "chroot on steroids".
+endef
+
+define Package/lxc-common
+ $(call Package/lxc/Default)
+ TITLE:=LXC common files
+ DEPENDS:= lxc
+endef
+
+define Package/lxc-hooks
+ $(call Package/lxc/Default)
+ TITLE:=LXC virtual machine hooks
+ DEPENDS:= lxc
+endef
+
+define Package/lxc-templates
+ $(call Package/lxc/Default)
+ TITLE:=LXC virtual machine templates
+ DEPENDS:= lxc @BROKEN
+endef
+
+define Package/liblxc
+ $(call Package/lxc/Default)
+ SECTION:=libs
+ CATEGORY:=Libraries
+ TITLE:=LXC userspace library
+ DEPENDS:= lxc +libcap +libpthread
+endef
+
+define Package/lxc-lua
+ $(call Package/lxc/Default)
+ TITLE:=LXC Lua bindings
+ DEPENDS:= lxc +liblua +liblxc +luafilesystem
+endef
+
+define Package/lxc-init
+ $(call Package/lxc/Default)
+ TITLE:=LXC Lua bindings
+ DEPENDS:= lxc +liblxc
+endef
+
+CONFIGURE_ARGS += \
+ --disable-apparmor \
+ --disable-doc \
+ --disable-examples \
+ --disable-seccomp
+ --enable-lua=yes \
+ --with-lua-pc="$(STAGING_DIR)/usr/lib/pkgconfig/lua.pc" \
+
+MAKE_FLAGS += \
+ LUA_INSTALL_CMOD="/usr/lib/lua" \
+ LUA_INSTALL_LMOD="/usr/lib/lua"
+
+define Build/Configure
+ ( cd $(PKG_BUILD_DIR); ./autogen.sh );
+ $(call Build/Configure/Default)
+endef
+
+
+define Build/InstallDev
+ $(INSTALL_DIR) $(1)/usr/include/lxc/
+ $(CP) \
+ $(PKG_INSTALL_DIR)/usr/include/lxc/* \
+ $(1)/usr/include/lxc/
+
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) \
+ $(PKG_INSTALL_DIR)/usr/lib/liblxc.so* \
+ $(1)/usr/lib/
+
+ $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
+ $(CP) \
+ $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/lxc.pc \
+ $(1)/usr/lib/pkgconfig/
+endef
+
+
+define Package/lxc/install
+ true
+endef
+
+define Package/lxc-common/conffiles
+/etc/lxc/default.conf
+/etc/lxc/lxc.conf
+endef
+
+define Package/lxc-common/install
+ $(INSTALL_DIR) $(1)/usr/lib/lxc/rootfs
+ $(CP) \
+ $(PKG_INSTALL_DIR)/usr/lib/lxc/rootfs/README \
+ $(1)/usr/lib/lxc/rootfs/
+
+ $(INSTALL_DIR) $(1)/usr/share/lxc
+ $(CP) \
+ $(PKG_INSTALL_DIR)/usr/share/lxc/lxc.functions \
+ $(1)/usr/share/lxc/
+
+ $(INSTALL_DIR) $(1)/etc/lxc/
+ $(CP) \
+ $(PKG_INSTALL_DIR)/etc/lxc/default.conf \
+ $(1)/etc/lxc/
+endef
+
+define Package/lxc-hooks/install
+ $(INSTALL_DIR) $(1)/usr/share/lxc/hooks
+ $(CP) \
+ $(PKG_INSTALL_DIR)/usr/share/lxc/hooks/mountcgroups \
+ $(1)/usr/share/lxc/hooks/
+ $(CP) \
+ $(PKG_INSTALL_DIR)/usr/share/lxc/hooks/mountecryptfsroot \
+ $(1)/usr/share/lxc/hooks/
+endef
+
+define Package/lxc-templates/install
+ $(INSTALL_DIR) $(1)/usr/share/lxc/templates/
+ $(CP) \
+ $(PKG_INSTALL_DIR)/usr/share/lxc/templates/lxc-* \
+ $(1)/usr/share/lxc/templates/
+endef
+
+define Package/liblxc/install
+ $(INSTALL_DIR) $(1)/usr/lib/
+ $(CP) \
+ $(PKG_INSTALL_DIR)/usr/lib/liblxc.so* \
+ $(1)/usr/lib/
+endef
+
+define Package/lxc-lua/install
+ $(INSTALL_DIR) $(1)/usr/lib/lua
+ $(CP) \
+ $(PKG_INSTALL_DIR)/usr/share/lua/5.1/lxc.lua \
+ $(1)/usr/lib/lua/
+ $(INSTALL_DIR) $(1)/usr/lib/lua/lxc
+ $(CP) \
+ $(PKG_INSTALL_DIR)/usr/lib/lua/5.1/lxc/core.so \
+ $(1)/usr/lib/lua/lxc/
+endef
+
+define Package/lxc-init/install
+ $(INSTALL_DIR) $(1)/sbin
+ $(CP) \
+ $(PKG_INSTALL_DIR)/usr/sbin/init.lxc \
+ $(1)/sbin/
+endef
+
+define GenPlugin
+ define Package/lxc-$(1)
+ $(call Package/lxc/Default)
+ TITLE:=Utility lxc-$(1) from the LXC userspace tools
+ DEPENDS:= lxc +lxc-common $(2) $(DEPENDS_$(1))
+ endef
+
+ define Package/lxc-$(1)/install
+ $(INSTALL_DIR) $$(1)$(3)
+ $(INSTALL_BIN) \
+ $(PKG_INSTALL_DIR)$(3)/lxc-$(1) \
+ $$(1)$(3)/
+ endef
+
+ $$(eval $$(call BuildPackage,lxc-$(1)))
+endef
+
+
+$(eval $(call BuildPackage,lxc))
+$(eval $(call BuildPackage,lxc-common))
+$(eval $(call BuildPackage,lxc-hooks))
+$(eval $(call BuildPackage,lxc-templates))
+$(eval $(call BuildPackage,liblxc))
+$(eval $(call BuildPackage,lxc-lua))
+$(foreach u,$(LXC_APPLETS_BIN),$(eval $(call GenPlugin,$(u),$(DEPENDS_APPLETS),"/usr/bin")))
+$(foreach u,$(LXC_APPLETS_LIB),$(eval $(call GenPlugin,$(u),$(DEPENDS_APPLETS),"/usr/lib/lxc")))
+$(foreach u,$(LXC_SCRIPTS),$(eval $(call GenPlugin,$(u),,"/usr/bin")))
diff --git a/utils/lxc/patches/010-compile.patch b/utils/lxc/patches/010-compile.patch
new file mode 100644
index 000000000..6f12c382a
--- /dev/null
+++ b/utils/lxc/patches/010-compile.patch
@@ -0,0 +1,33 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -31,30 +31,6 @@ AC_CANONICAL_HOST
+ AM_PROG_CC_C_O
+ AC_GNU_SOURCE
+
+-# Detect the distribution. This is used for the default configuration and
+-# for some distro-specific build options.
+-AC_MSG_CHECKING([host distribution])
+-AC_ARG_WITH(distro, AS_HELP_STRING([--with-distro=DISTRO], [Specify the Linux distribution to target: One of redhat, oracle, centos, fedora, suse, gentoo, debian, arch, slackware, paldo, openmandriva or pardus.]))
+-if type lsb_release >/dev/null 2>&1 && test "z$with_distro" = "z"; then
+- with_distro=`lsb_release -is`
+-fi
+-if test "z$with_distro" = "z"; then
+- AC_CHECK_FILE(/etc/redhat-release,with_distro="redhat")
+- AC_CHECK_FILE(/etc/oracle-release,with_distro="oracle")
+- AC_CHECK_FILE(/etc/centos-release,with_distro="centos")
+- AC_CHECK_FILE(/etc/fedora-release,with_distro="fedora")
+- AC_CHECK_FILE(/etc/SuSE-release,with_distro="suse")
+- AC_CHECK_FILE(/etc/gentoo-release,with_distro="gentoo")
+- AC_CHECK_FILE(/etc/debian_version,with_distro="debian")
+- AC_CHECK_FILE(/etc/arch-release,with_distro="arch")
+- AC_CHECK_FILE(/etc/slackware-version,with_distro="slackware")
+- AC_CHECK_FILE(/etc/frugalware-release,with_distro="frugalware")
+- AC_CHECK_FILE(/etc/mandrakelinux-release, with_distro="openmandriva")
+- AC_CHECK_FILE(/etc/mandriva-release,with_distro="openmandriva")
+- AC_CHECK_FILE(/etc/pardus-release,with_distro="pardus")
+-fi
+-with_distro=`echo ${with_distro} | tr '[[:upper:]]' '[[:lower:]]'`
+-
+ if test "z$with_distro" = "z"; then
+ with_distro="unknown"
+ fi
diff --git a/utils/lxc/patches/015-getline.patch b/utils/lxc/patches/015-getline.patch
new file mode 100644
index 000000000..e2f002af9
--- /dev/null
+++ b/utils/lxc/patches/015-getline.patch
@@ -0,0 +1,15 @@
+--- a/src/lxc/utils.h
++++ b/src/lxc/utils.h
+@@ -44,11 +44,7 @@ extern char *get_rundir(void);
+ extern const char *lxc_global_config_value(const char *option_name);
+
+ /* Define getline() if missing from the C library */
+-#ifndef HAVE_GETLINE
+-#ifdef HAVE_FGETLN
+-#include <../include/getline.h>
+-#endif
+-#endif
++#include "../include/getline.h"
+
+ /* Define setns() if missing from the C library */
+ #ifndef HAVE_SETNS
diff --git a/utils/lxc/patches/020-lxc-checkconfig.patch b/utils/lxc/patches/020-lxc-checkconfig.patch
new file mode 100644
index 000000000..272f76b05
--- /dev/null
+++ b/utils/lxc/patches/020-lxc-checkconfig.patch
@@ -0,0 +1,20 @@
+--- a/src/lxc/lxc-checkconfig.in
++++ b/src/lxc/lxc-checkconfig.in
+@@ -4,6 +4,17 @@
+ : ${CONFIG:=/proc/config.gz}
+ : ${GREP:=zgrep}
+ : ${MODNAME:=configs}
++: ${ZGREP:=zgrep}
++: ${GUNZIP:=gunzip}
++
++if [ -z $(which $ZGREP) ] && ! [ -z $(which $GUNZIP) ] && [ -x $(which $GUNZIP) ] && [ -f $CONFIG ] && [ "$CONFIG" == "/proc/config.gz" ] ; then
++
++ CONFIG_NEW="/tmp/config-$(uname -r)"
++ $GUNZIP -c $CONFIG > $CONFIG_NEW
++ CONFIG=$CONFIG_NEW
++
++ GREP=grep
++fi
+
+ SETCOLOR_SUCCESS="printf \\033[1;32m"
+ SETCOLOR_FAILURE="printf \\033[1;31m"