The postinst script is sourced during image build, which causes the
follow failure:
/home/stijn/Development/OpenWrt/openwrt/build_dir/target-x86_64_musl/root-x86/etc/init.d/lxc-auto: line 3: /lib/functions.sh: No such file or directory
postinst script ./usr/lib/opkg/info/lxc-auto.postinst has failed with exit code 1
Sourcing /lib/functions.sh is not needed, as /etc/rc.common does so
already. Unfortunately removing that line from the init script is not
enough to fix the problem. The postinst script should also check
IPKG_INSTROOT. As these two changes are unrelated, they should go in
separate commits, and the solution to the image build problem is to
revert the commit that introduced the breakage.
This reverts commit 2cde10b950
.
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
273 lines
6.6 KiB
Makefile
273 lines
6.6 KiB
Makefile
#
|
|
# Copyright (C) 2013-2015 OpenWrt.org
|
|
# Copyright (C) 2020 Sartura
|
|
#
|
|
# 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:=4.0.12
|
|
PKG_RELEASE:=$(AUTORELEASE)
|
|
|
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
|
PKG_SOURCE_URL:=https://linuxcontainers.org/downloads/lxc/
|
|
PKG_HASH:=db242f8366fc63e8c7588bb2017b354173cf3c4b20abc18780debdc48b14d3ef
|
|
|
|
PKG_MAINTAINER:=Marko Ratkaj <markoratkaj@gmail.com>
|
|
PKG_LICENSE:=LGPL-2.1-or-later BSD-2-Clause GPL-2.0
|
|
|
|
PKG_FIXUP:=autoreconf
|
|
PKG_INSTALL:=1
|
|
PKG_BUILD_PARALLEL:=1
|
|
PKG_USE_MIPS16:=0
|
|
|
|
include $(INCLUDE_DIR)/package.mk
|
|
|
|
LXC_APPLETS_BIN += \
|
|
attach autostart cgroup copy config console create destroy device \
|
|
execute freeze info monitor snapshot start stop unfreeze unshare \
|
|
usernsexec wait top ls
|
|
|
|
LXC_APPLETS_LIB += \
|
|
monitord user-nic
|
|
|
|
LXC_SCRIPTS += \
|
|
checkconfig
|
|
|
|
DEPENDS_APPLETS = +libpthread +libcap +liblxc
|
|
|
|
DEPENDS_create = +lxc-configs +lxc-hooks +lxc-templates +flock +getopt
|
|
|
|
define Package/lxc/Default
|
|
SECTION:=utils
|
|
CATEGORY:=Utilities
|
|
TITLE:=LXC userspace tools
|
|
URL:=https://linuxcontainers.org/
|
|
DEPENDS:=lxc
|
|
endef
|
|
|
|
define Package/lxc
|
|
$(call Package/lxc/Default)
|
|
DEPENDS:=@!arc
|
|
MENU:=1
|
|
endef
|
|
|
|
define Package/lxc-auto
|
|
$(call Package/lxc/Default)
|
|
TITLE:= (initscript)
|
|
DEPENDS+=+lxc-start +lxc-stop
|
|
endef
|
|
|
|
define Package/lxc-auto/description
|
|
LXC is the userspace control package for Linux Containers, a lightweight
|
|
virtual system mechanism sometimes described as "chroot on steroids".
|
|
This package adds an initscript for starting and stopping the containers
|
|
on boot and shutdown.
|
|
endef
|
|
|
|
define Package/lxc-auto/conffiles
|
|
/etc/config/lxc-auto
|
|
endef
|
|
|
|
define Package/lxc-unprivileged
|
|
$(call Package/lxc/Default)
|
|
TITLE:=Helper script for unprivileged containers support
|
|
DEPENDS+=+shadow-utils +shadow-newuidmap +shadow-newgidmap
|
|
endef
|
|
|
|
define Package/lxc-unprivileged/description
|
|
Support for unprivileged containers requires newuidmap and newguidmap.
|
|
This package makes sure they are available & have correct permissions.
|
|
endef
|
|
|
|
define Package/lxc-unprivileged/install
|
|
$(INSTALL_DIR) $(1)/etc/uci-defaults
|
|
$(INSTALL_DATA) ./files/lxc-unprivileged.defaults $(1)/etc/uci-defaults/lxc-unprivileged
|
|
endef
|
|
|
|
define Package/lxc/config
|
|
source "$(SOURCE)/Config.in"
|
|
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
|
|
endef
|
|
|
|
define Package/lxc-hooks
|
|
$(call Package/lxc/Default)
|
|
TITLE:=LXC virtual machine hooks
|
|
endef
|
|
|
|
define Package/lxc-templates
|
|
$(call Package/lxc/Default)
|
|
TITLE:=LXC virtual machine templates
|
|
endef
|
|
|
|
define Package/lxc-configs
|
|
$(call Package/lxc/Default)
|
|
TITLE:=LXC virtual machine common config files
|
|
endef
|
|
|
|
define Package/liblxc
|
|
$(call Package/lxc/Default)
|
|
SECTION:=libs
|
|
CATEGORY:=Libraries
|
|
TITLE:=LXC userspace library
|
|
DEPENDS+= +libcap +libpthread +LXC_SECCOMP:libseccomp +libopenssl
|
|
endef
|
|
|
|
define Package/lxc-init
|
|
$(call Package/lxc/Default)
|
|
TITLE:=LXC Lua bindings
|
|
DEPENDS+= +liblxc
|
|
endef
|
|
|
|
CONFIGURE_ARGS += \
|
|
--disable-werror \
|
|
--disable-rpath \
|
|
--disable-doc \
|
|
--disable-api-docs \
|
|
--disable-apparmor \
|
|
--disable-selinux \
|
|
--$(if $(CONFIG_LXC_SECCOMP),en,dis)able-seccomp \
|
|
--enable-capabilities \
|
|
--disable-examples
|
|
|
|
ifdef CONFIG_USE_MIPS16
|
|
TARGET_CFLAGS += -minterlink-mips16
|
|
endif
|
|
TARGET_LDFLAGS += -lgcc_eh
|
|
|
|
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/
|
|
$(SED) 's,/usr/include,$$$${prefix}/include,g' $(1)/usr/lib/pkgconfig/lxc.pc
|
|
$(SED) 's,/usr/lib,$$$${prefix}/lib,g' $(1)/usr/lib/pkgconfig/lxc.pc
|
|
endef
|
|
|
|
|
|
define Package/lxc/install
|
|
true
|
|
endef
|
|
|
|
define Package/lxc-auto/install
|
|
$(INSTALL_DIR) $(1)/etc/config $(1)/etc/init.d
|
|
$(INSTALL_CONF) ./files/lxc-auto.config $(1)/etc/config/lxc-auto
|
|
$(INSTALL_BIN) ./files/lxc-auto.init $(1)/etc/init.d/lxc-auto
|
|
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/default.conf
|
|
|
|
$(INSTALL_DIR) $(1)/etc/lxc/
|
|
$(CP) \
|
|
./files/lxc.conf \
|
|
$(1)/etc/lxc/lxc.conf
|
|
|
|
$(INSTALL_DIR) $(1)/srv/lxc/
|
|
endef
|
|
|
|
define Package/lxc-hooks/install
|
|
$(INSTALL_DIR) $(1)/usr/share/lxc/hooks
|
|
$(CP) \
|
|
$(PKG_INSTALL_DIR)/usr/share/lxc/hooks/* \
|
|
$(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/lxc-configs/install
|
|
$(INSTALL_DIR) $(1)/usr/share/lxc/config/
|
|
$(CP) \
|
|
$(PKG_INSTALL_DIR)/usr/share/lxc/config/* \
|
|
$(1)/usr/share/lxc/config/
|
|
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-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-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-configs))
|
|
$(eval $(call BuildPackage,lxc-templates))
|
|
$(eval $(call BuildPackage,liblxc))
|
|
$(eval $(call BuildPackage,lxc-init))
|
|
$(eval $(call BuildPackage,lxc-auto))
|
|
$(eval $(call BuildPackage,lxc-unprivileged))
|
|
$(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")))
|