lxc: move package from old packages feed
authorLuka Perkov <redacted>
Fri, 8 Aug 2014 15:21:37 +0000 (17:21 +0200)
committerLuka Perkov <redacted>
Fri, 8 Aug 2014 15:21:37 +0000 (17:21 +0200)
Signed-off-by: Luka Perkov <redacted>
utils/lxc/Makefile [new file with mode: 0644]
utils/lxc/patches/010-compile.patch [new file with mode: 0644]
utils/lxc/patches/015-getline.patch [new file with mode: 0644]
utils/lxc/patches/020-lxc-checkconfig.patch [new file with mode: 0644]

diff --git a/utils/lxc/Makefile b/utils/lxc/Makefile
new file mode 100644 (file)
index 0000000..a613352
--- /dev/null
@@ -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 (file)
index 0000000..6f12c38
--- /dev/null
@@ -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 (file)
index 0000000..e2f002a
--- /dev/null
@@ -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 (file)
index 0000000..272f76b
--- /dev/null
@@ -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"
git clone https://git.99rst.org/PROJECT