From fb2b4e13bceeadc8c163465f9d5da575b1262646 Mon Sep 17 00:00:00 2001 From: Neale Pickett Date: Mon, 26 Sep 2011 11:51:04 -0600 Subject: [PATCH 1/2] Attempt to bring in lxc --- packages/libcap/libcap.mk | 28 ++++++++++++++++++++++++++++ packages/lxc/lxc.mk | 10 +++++++--- 2 files changed, 35 insertions(+), 3 deletions(-) create mode 100644 packages/libcap/libcap.mk diff --git a/packages/libcap/libcap.mk b/packages/libcap/libcap.mk new file mode 100644 index 0000000..500641a --- /dev/null +++ b/packages/libcap/libcap.mk @@ -0,0 +1,28 @@ +LIBCAP_PKGDIR = $(TARGET)/libcap +LIBCAP_BUILDDIR = $(BUILD)/libcap +LIBCAP_VERSION = 2.22 +LIBCAP_TAR = $(CACHE)/libcap-$(LIBCAP_VERSION).tar.gz +# XXX: kernel.org was down when I wrote this, but is the canonical source +LIBCAP_URL = http://ftp.debian.org/debian/pool/main/libc/libcap2/libcap2_$(LIBCAP_VERSION).orig.tar.gz +LIBCAP_SRCDIR = $(LIBCAP_BUILDDIR)/libcap-$(LIBCAP_VERSION) + +LIBCAP_LDOPTS = -L$(CURDIR)/$(LIBCAP_SRCDIR)/libcap +LIBCAP_CFLAGS = -I$(CURDIR)/$(LIBCAP_SRCDIR)/libcap/include + +$(LIBCAP_TAR): + mkdir -p $(@D) + wget -O $@ $(LIBCAP_URL) + +libcap-source: $(LIBCAP_BUILDDIR)/source +$(LIBCAP_BUILDDIR)/source: $(LIBCAP_TAR) + mkdir -p $(@D) + zcat $< | ( cd $(@D) && tar xf -) + touch $@ + + +# This library's build sort of blows. +libcap-build: $(LIBCAP_BUILDDIR)/built +$(LIBCAP_BUILDDIR)/built: $(LIBCAP_BUILDDIR)/source + $(MAKE) -C $(LIBCAP_SRCDIR)/libcap _makenames + $(MAKE) -C $(LIBCAP_SRCDIR) CC=$(CC) + touch $@ diff --git a/packages/lxc/lxc.mk b/packages/lxc/lxc.mk index 306246b..cfdcec1 100644 --- a/packages/lxc/lxc.mk +++ b/packages/lxc/lxc.mk @@ -29,9 +29,9 @@ $(LXC_BUILDDIR)/source: $(LXC_TAR) touch $@ lxc-build: $(LXC_BUILDDIR)/built -$(LXC_BUILDDIR)/built: $(LXC_BUILDDIR)/source - cd $(LXC_SRCDIR) && ./configure $(LXC_CONF_OPT) - $(MAKE) -C $(LXC_SRCDIR) +$(LXC_BUILDDIR)/built: $(LXC_BUILDDIR)/source libcap-build + cd $(LXC_SRCDIR) && CFLAGS="$(LIBCAP_CFLAGS)" LDFLAGS="$(LIBCAP_LDFLAGS)" ./configure $(CONFIG_XCOMPILE_FLAGS) + $(MAKE) -C $(LXC_SRCDIR) LDFLAGS="-R /opt/lxc/lib" touch $@ lxc-install: lxc-build @@ -46,4 +46,8 @@ lxc-install: lxc-build lxc-clean: rm -rf $(LXC_BUILDDIR) + +LIBCAP_PKGDIR = $(TARGET)/libcap + + PACKAGES += lxc From 5ae8292a9873317c3a911d8b82310b2fe7d32e4d Mon Sep 17 00:00:00 2001 From: Neale Pickett Date: Mon, 26 Sep 2011 13:00:42 -0600 Subject: [PATCH 2/2] LXC compiling --- packages/libcap/libcap.mk | 2 +- packages/lxc/lxc.mk | 3 ++- packages/lxc/utmp.c | 11 +++++++++++ 3 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 packages/lxc/utmp.c diff --git a/packages/libcap/libcap.mk b/packages/libcap/libcap.mk index 500641a..92f6ee1 100644 --- a/packages/libcap/libcap.mk +++ b/packages/libcap/libcap.mk @@ -6,7 +6,7 @@ LIBCAP_TAR = $(CACHE)/libcap-$(LIBCAP_VERSION).tar.gz LIBCAP_URL = http://ftp.debian.org/debian/pool/main/libc/libcap2/libcap2_$(LIBCAP_VERSION).orig.tar.gz LIBCAP_SRCDIR = $(LIBCAP_BUILDDIR)/libcap-$(LIBCAP_VERSION) -LIBCAP_LDOPTS = -L$(CURDIR)/$(LIBCAP_SRCDIR)/libcap +LIBCAP_LDFLAGS = -L$(CURDIR)/$(LIBCAP_SRCDIR)/libcap LIBCAP_CFLAGS = -I$(CURDIR)/$(LIBCAP_SRCDIR)/libcap/include $(LIBCAP_TAR): diff --git a/packages/lxc/lxc.mk b/packages/lxc/lxc.mk index cfdcec1..5d37df2 100644 --- a/packages/lxc/lxc.mk +++ b/packages/lxc/lxc.mk @@ -26,12 +26,13 @@ lxc-source: $(LXC_BUILDDIR)/source $(LXC_BUILDDIR)/source: $(LXC_TAR) mkdir -p $(LXC_BUILDDIR) zcat $(LXC_TAR) | (cd $(LXC_BUILDDIR) && tar xf -) + cp packages/lxc/utmp.c $(LXC_SRCDIR)/src/lxc/ touch $@ lxc-build: $(LXC_BUILDDIR)/built $(LXC_BUILDDIR)/built: $(LXC_BUILDDIR)/source libcap-build cd $(LXC_SRCDIR) && CFLAGS="$(LIBCAP_CFLAGS)" LDFLAGS="$(LIBCAP_LDFLAGS)" ./configure $(CONFIG_XCOMPILE_FLAGS) - $(MAKE) -C $(LXC_SRCDIR) LDFLAGS="-R /opt/lxc/lib" + LD_RUN_PATH=/opt/lxc/lib $(MAKE) -C $(LXC_SRCDIR) touch $@ lxc-install: lxc-build diff --git a/packages/lxc/utmp.c b/packages/lxc/utmp.c new file mode 100644 index 0000000..5b51ba2 --- /dev/null +++ b/packages/lxc/utmp.c @@ -0,0 +1,11 @@ +/* Detecting runlevels from utmp is straight up bullshit, you. + + 1. runit doesn't have run levels + 2. dbtl doesn't write utmp + 3. even if it did, it doesn't have the glibc functions this code + wants +*/ +int lxc_utmp_mainloop_add(struct lxc_epoll_descr *descr, + struct lxc_handler *handler) { + return 0; +}