summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/cowdancer/APKBUILD42
-rw-r--r--main/cowdancer/cowdancer-disable-cowbuilder.patch42
-rw-r--r--main/cowdancer/cowdancer-no-vsym.patch33
3 files changed, 117 insertions, 0 deletions
diff --git a/main/cowdancer/APKBUILD b/main/cowdancer/APKBUILD
new file mode 100644
index 000000000..2c59a994a
--- /dev/null
+++ b/main/cowdancer/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: William Pitcock <nenolod@dereferenced.org>
+# Maintainer: William Pitcock <nenolod@dereferenced.org>
+pkgname=cowdancer
+pkgver=0.63
+pkgrel=0
+pkgdesc="userland copy-on-write filesystem"
+url="http://www.netfort.gr.jp/~dancer/software/cowdancer.html"
+arch="all"
+license="GPL"
+depends=
+depends_dev=
+makedepends="$depends_dev"
+install=""
+subpackages="$pkgname-doc"
+source="http://ftp.de.debian.org/debian/pool/main/c/cowdancer/cowdancer_${pkgver}.tar.gz
+ cowdancer-disable-cowbuilder.patch
+ cowdancer-no-vsym.patch"
+
+_builddir="${srcdir}/${pkgname}-${pkgver}"
+prepare() {
+ local i
+ cd "$_builddir"
+ for i in $source; do
+ case $i in
+ *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
+ esac
+ done
+}
+
+build() {
+ cd "$_builddir"
+ make || return 1
+}
+
+package() {
+ cd "$_builddir"
+ make DESTDIR="$pkgdir" install || return 1
+}
+
+md5sums="8632184e830a041e1a3319d1ed39e31d cowdancer_0.63.tar.gz
+6b59f89cc093670950a3bc00df19d10f cowdancer-disable-cowbuilder.patch
+da87422b0350bcba5bd79cae8b4da596 cowdancer-no-vsym.patch"
diff --git a/main/cowdancer/cowdancer-disable-cowbuilder.patch b/main/cowdancer/cowdancer-disable-cowbuilder.patch
new file mode 100644
index 000000000..5f76cad31
--- /dev/null
+++ b/main/cowdancer/cowdancer-disable-cowbuilder.patch
@@ -0,0 +1,42 @@
+--- cowdancer-0.63.orig/Makefile
++++ cowdancer-0.63/Makefile
+@@ -1,5 +1,5 @@
+ SHELL=/bin/bash
+-BINARY=libcowdancer.so cow-shell cowbuilder qemubuilder cowdancer-ilistcreate \
++BINARY=libcowdancer.so cow-shell cowdancer-ilistcreate \
+ cowdancer-ilistdump
+ INSTALL_DIR=install -d -o root -g root -m 755
+ INSTALL_FILE=install -o root -g root -m 644
+@@ -23,19 +23,11 @@
+ $(INSTALL_FILE) cow-shell.1 $(DESTDIR)/usr/share/man/man1/cow-shell.1
+ $(INSTALL_FILE) cowdancer-ilistcreate.1 $(DESTDIR)/usr/share/man/man1/cowdancer-ilistcreate.1
+ $(INSTALL_FILE) cowdancer-ilistdump.1 $(DESTDIR)/usr/share/man/man1/cowdancer-ilistdump.1
+- $(INSTALL_FILE) cowbuilder.8 $(DESTDIR)/usr/share/man/man8/cowbuilder.8
+- $(INSTALL_FILE) qemubuilder.8 $(DESTDIR)/usr/share/man/man8/qemubuilder.8
+ $(INSTALL_FILE) libcowdancer.so $(DESTDIR)${LIBDIR}/cowdancer/libcowdancer.so
+ $(INSTALL_PROGRAM) cow-shell $(DESTDIR)/usr/bin/cow-shell
+- $(INSTALL_PROGRAM) cowbuilder $(DESTDIR)/usr/sbin/cowbuilder
+- $(INSTALL_PROGRAM) qemubuilder $(DESTDIR)/usr/sbin/qemubuilder
+ $(INSTALL_PROGRAM) cowdancer-ilistcreate $(DESTDIR)/usr/bin/cowdancer-ilistcreate
+ $(INSTALL_PROGRAM) cowdancer-ilistdump $(DESTDIR)/usr/bin/cowdancer-ilistdump
+
+- $(INSTALL_DIR) $(DESTDIR)/etc/bash_completion.d
+- $(INSTALL_FILE) bash_completion.qemubuilder $(DESTDIR)/etc/bash_completion.d/qemubuilder
+- $(INSTALL_FILE) bash_completion.cowbuilder $(DESTDIR)/etc/bash_completion.d/cowbuilder
+-
+ libcowdancer.so: cowdancer.lo ilistcreate.lo
+ $(CC) $(CFLAGS) -ldl -shared -o $@ $^
+
+@@ -43,12 +35,6 @@
+ $(CC) $(CFLAGS) -o $@ $^
+
+ cowdancer-ilistcreate: cowdancer-ilistcreate.o ilistcreate.o
+- $(CC) $(CFLAGS) -o $@ $^
+-
+-cowbuilder: cowbuilder.o parameter.o forkexec.o ilistcreate.o main.o
+- $(CC) $(CFLAGS) -o $@ $^
+-
+-qemubuilder: qemubuilder.lfso parameter.lfso forkexec.lfso qemuipsanitize.lfso qemuarch.lfso file.lfso main.lfso
+ $(CC) $(CFLAGS) -o $@ $^
+
+ %.lo: %.c
diff --git a/main/cowdancer/cowdancer-no-vsym.patch b/main/cowdancer/cowdancer-no-vsym.patch
new file mode 100644
index 000000000..b244fc930
--- /dev/null
+++ b/main/cowdancer/cowdancer-no-vsym.patch
@@ -0,0 +1,33 @@
+--- cowdancer-0.63.orig/cowdancer.c
++++ cowdancer-0.63/cowdancer.c
+@@ -174,29 +174,7 @@
+ origlibc_fopen = dlsym(RTLD_NEXT, "fopen64");
+ origlibc_fopen64 = dlsym(RTLD_NEXT, "fopen64");
+ dlerror();
+- if (!(origlibc_chown = dlvsym(RTLD_NEXT, "chown", "GLIBC_2.1")))
+- {
+- /* I should really check dlerror, but due to a possible bug in glibc,
+- dlerror doesn't seem to work at all.
+- */
+- const char* d=dlerror();
+- if(!d)
+- {
+- debug_cowdancer("dlerror does not return anything, chown returned NULL but OK");
+- /* success */
+- }
+- else
+- {
+- debug_cowdancer(d);
+- }
+-
+-
+- /* fallback to loading unversioned symbol doing it anyway
+- since glibc does not seem to set dlerror on dlsym failure.
+- */
+- origlibc_chown = dlsym(RTLD_NEXT, "chown");
+-
+- }
++ origlibc_chown = dlsym(RTLD_NEXT, "chown");
+ origlibc_fchown = dlsym(RTLD_NEXT, "fchown");
+ origlibc_lchown = dlsym(RTLD_NEXT, "lchown");
+ origlibc_chmod = dlsym(RTLD_NEXT, "chmod");