diff options
Diffstat (limited to 'packages/unionfs')
22 files changed, 464 insertions, 0 deletions
diff --git a/packages/unionfs/.mtn2git_empty b/packages/unionfs/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/unionfs/.mtn2git_empty diff --git a/packages/unionfs/files/.mtn2git_empty b/packages/unionfs/files/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/unionfs/files/.mtn2git_empty diff --git a/packages/unionfs/files/gcc2-hack.patch b/packages/unionfs/files/gcc2-hack.patch index e69de29bb2..7c1f4dd32e 100644 --- a/packages/unionfs/files/gcc2-hack.patch +++ b/packages/unionfs/files/gcc2-hack.patch @@ -0,0 +1,28 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- unionfs-1.0.3/fist.h~gcc2 2004-11-10 09:38:58.000000000 -0500 ++++ unionfs-1.0.3/fist.h 2004-11-14 05:11:47.601022344 -0500 +@@ -212,11 +212,20 @@ + } while (0) + + /* Call if you encounter a bug. */ ++ ++#if __GNUC__ < 3 ++#define FISTBUG(arg...) \ ++do { \ ++ printk("<0>FISTBUG " ##arg); \ ++ (*((char *)0))=0; \ ++} while (0) ++#else + #define FISTBUG(fmt, args...) \ + do { \ + printk("<0>FISTBUG at %s:%s:%d " fmt, __FILE__, __FUNCTION__, __LINE__, ##args); \ + (*((char *)0))=0; \ + } while (0); ++#endif + + /* The if (0 ...) is so that we can make sure that you don't pass this + * define a non-pointer. gcc should optimize it away. */ diff --git a/packages/unionfs/unionfs-1.0.11/.mtn2git_empty b/packages/unionfs/unionfs-1.0.11/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/unionfs/unionfs-1.0.11/.mtn2git_empty diff --git a/packages/unionfs/unionfs-1.0.11/make.patch b/packages/unionfs/unionfs-1.0.11/make.patch index e69de29bb2..4fb2755089 100644 --- a/packages/unionfs/unionfs-1.0.11/make.patch +++ b/packages/unionfs/unionfs-1.0.11/make.patch @@ -0,0 +1,112 @@ + +# +# Patch managed by http://www.holgerschurig.de/patcher.html +# + +Index: unionfs-1.0.11/Makefile +=================================================================== +--- unionfs-1.0.11.orig/Makefile 2005-03-23 22:25:47.000000000 -0500 ++++ unionfs-1.0.11/Makefile 2005-03-24 20:27:27.386361872 -0500 +@@ -3,14 +3,20 @@ + # + + # this should point to where your kernel headers are +-KVERS=$(shell uname -r) ++KVERS:=$(shell uname -r) + MODDIR= /lib/modules/$(KVERS) + LINUXSRC = /lib/modules/$(KVERS)/build + TOPINC = -I${LINUXSRC}/include + # This is where the make install target will put stuff +-PREFIX = /usr/local ++DESTDIR = ++prefix = /usr/local + MANDIR = ${PREFIX}/man +-MODPREFIX= ++sbindir = ${prefix}/sbin ++mandir = ${prefix}/man ++man4dir = ${mandir}/man4 ++man8dir = ${mandir}/man8 ++moduledir = /lib/modules/${KERNELVER} ++ + VERSION = 1.0.11 + TAROPTS = czvf + COMPEXT = .gz +@@ -29,6 +35,7 @@ + endif + + CC = gcc ++LD = ld + KERNELVERSION=$(shell echo $(KVERS) | cut -d. -f1,2) + ifeq ($(KERNELVERSION),2.4) + CFLAGS = -D__KERNEL__ -DMODULE -I. ${TOPINC} -Wall -Wno-unused-label -Werror -fno-strict-aliasing ${EXTRACFLAGS} ${UNIONFS_DEBUG_CFLAG} ${UNIONFS_OPT_CFLAG} +@@ -51,13 +58,15 @@ + @echo "******************************************************************************" + @echo "" + +-unionfs2.6: ++unionfs2.6: unionfs.ko ++ ++unionfs.ko: + make -C ${LINUXSRC} SUBDIRS=$(PWD) FISTDEVMK=$(PWD)/fistdev.mk modules + + unionfs2.4: ${obj-m} + + ${obj-m}: ${unionfs-objs} +- ld -o ${obj-m} -r ${unionfs-objs} ++ ${LD} -o ${obj-m} -r ${unionfs-objs} + + unionctl: unionctl.c + ${CC} -o $@ $? ${UCFLAGS} +@@ -88,28 +97,37 @@ + utils: ${BINS} + + install-utils: utils +- mkdir -p ${PREFIX}/sbin +- cp unionctl ${PREFIX}/sbin +- cp uniondbg ${PREFIX}/sbin +- mkdir -p ${MANDIR}/man4 +- mkdir -p ${MANDIR}/man8 +- cp man/unionfs.4 ${MANDIR}/man4 +- cp man/unionctl.8 ${MANDIR}/man8 +- cp man/uniondbg.8 ${MANDIR}/man8 ++ mkdir -p ${DESTDIR}${sbindir} ++ cp unionctl ${DESTDIR}${sbindir} ++ cp uniondbg ${DESTDIR}${sbindir} ++ mkdir -p ${DESTDIR}${man4dir} ++ mkdir -p ${DESTDIR}${man8dir} ++ cp man/unionfs.4 ${DESTDIR}${man4dir} ++ cp man/unionctl.8 ${DESTDIR}${man8dir} ++ cp man/uniondbg.8 ${DESTDIR}${man8dir} + + install-mod: unionfs$(KERNELVERSION) + mkdir -p ${MODPREFIX}/${MODDIR}/kernel/fs +- if [ -f unionfs.ko ] ; then cp unionfs.ko ${MODPREFIX}/${MODDIR}/kernel/fs ; else cp unionfs.o ${MODPREFIX}/${MODDIR}/kernel/fs ; fi ++ mkdir -p ${DESTDIR}${moduledir}/kernel/fs ++ifeq (${KERNELVERSION},2.4) ++ cp unionfs.o ${DESTDIR}${moduledir}/kernel/fs ++else ++ cp unionfs.ko ${DESTDIR}${moduledir}/kernel/fs ++endif + + install: install-utils install-mod + + uninstall: +- if [ -f unionfs.ko ] ; then rm ${MODPREFIX}/${MODDIR}/kernel/fs/unionfs.ko ; else rm ${MODPREFIX}/${MODDIR}/kernel/fs/unionfs.o ; fi +- rm ${MANDIR}/man8/unionctl.8 +- rm ${MANDIR}/man8/uniondbg.8 +- rm ${MANDIR}/man4/unionfs.4 +- rm ${PREFIX}/sbin/unionctl +- rm ${PREFIX}/sbin/uniondbg ++ifeq (${KERNELVERSION},2.4) ++ rm ${MODPREFIX}${DESTDIR}${moduledir}/kernel/fs/unionfs.o ++else ++ rm ${MODPREFIX}${DESTDIR}${moduledir}/kernel/fs/unionfs.ko ++endif ++ rm ${DESTDIR}${man8dir}/unionctl.8 ++ rm ${DESTDIR}${man8dir}/uniondbg.8 ++ rm ${DESTDIR}${man4dir}/unionfs.4 ++ rm ${DESTDIR}${sbindir}/unionctl ++ rm ${DESTDIR}${sbindir}/uniondbg + + release: unionfs-${VERSION}.tar${COMPEXT} + diff --git a/packages/unionfs/unionfs-1.0.7/.mtn2git_empty b/packages/unionfs/unionfs-1.0.7/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/unionfs/unionfs-1.0.7/.mtn2git_empty diff --git a/packages/unionfs/unionfs-1.0.8/.mtn2git_empty b/packages/unionfs/unionfs-1.0.8/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/unionfs/unionfs-1.0.8/.mtn2git_empty diff --git a/packages/unionfs/unionfs-1.0.8/make.patch b/packages/unionfs/unionfs-1.0.8/make.patch index e69de29bb2..ab77b527d5 100644 --- a/packages/unionfs/unionfs-1.0.8/make.patch +++ b/packages/unionfs/unionfs-1.0.8/make.patch @@ -0,0 +1,100 @@ + +# +# Patch managed by http://www.holgerschurig.de/patcher.html +# + +Index: unionfs-1.0.8/Makefile +=================================================================== +--- unionfs-1.0.8.orig/Makefile 2005-01-19 10:03:24.000000000 -0500 ++++ unionfs-1.0.8/Makefile 2005-01-19 11:30:15.372348104 -0500 +@@ -3,10 +3,20 @@ + # + + # this should point to where your kernel headers are +-LINUXSRC = /lib/modules/`uname -r`/build ++KERNELVER := $(shell uname -r) ++KERNELMAJVER := $(shell echo ${KERNELVER} | cut -d. -f1,2) ++LINUXSRC = /lib/modules/${KERNELVER}/build + TOPINC = -I${LINUXSRC}/include ++ + # This is where the make install target will put stuff +-PREFIX = /usr/local ++DESTDIR = ++prefix = /usr/local ++sbindir = ${prefix}/sbin ++mandir = ${prefix}/man ++man4dir = ${mandir}/man4 ++man8dir = ${mandir}/man8 ++moduledir = /lib/modules/${KERNELVER} ++ + VERSION = 1.0.8 + TAROPTS = czvf + UNIONFS_DEBUG_CFLAG = -g +@@ -24,8 +34,8 @@ + endif + + CC = gcc +-KERNELVERSION=$(shell uname -r | cut -d. -f1,2) +-ifeq ($(KERNELVERSION),2.4) ++LD = ld ++ifeq (${KERNELMAJVER},2.4) + CFLAGS = -D__KERNEL__ -DMODULE -DFISTGEN -I. ${TOPINC} -Wall -Wno-unused-label -Werror ${EXTRACFLAGS} ${UNIONFS_DEBUG_CFLAG} ${UNIONFS_OPT_CFLAG} + endif + EXTRA_CFLAGS += -D__KERNEL__ -DMODULE -DFISTGEN -I. ${TOPINC} -Wall -Werror ${EXTRACFLAGS} ${UNIONFS_DEBUG_CFLAG} ${UNIONFS_OPT_CFLAG} +@@ -37,7 +47,7 @@ + + BINS := unionctl uniondbg + +-all: readthereadme unionfs$(KERNELVERSION) ++all: readthereadme unionfs$(KERNELMAJVER) + + readthereadme: + @echo "******************************************************************************" +@@ -45,13 +55,15 @@ + @echo "******************************************************************************" + @echo "" + +-unionfs2.6: ${BINS} ++unionfs2.6: unionfs.ko ${BINS} ++ ++unionfs.ko: + make -C ${LINUXSRC} SUBDIRS=$(PWD) FISTDEVMK=$(PWD)/fistdev.mk modules + + unionfs2.4: ${obj-m} ${BINS} + + ${obj-m}: ${unionfs-objs} +- ld -o ${obj-m} -r ${unionfs-objs} ++ ${LD} -o ${obj-m} -r ${unionfs-objs} + + unionctl: unionctl.c + ${CC} -o $@ $? ${UCFLAGS} +@@ -76,15 +88,20 @@ + ${unionfs-objs}: unionfs.h fist.h + + install: all +- mkdir -p ${PREFIX}/sbin +- cp unionctl ${PREFIX}/sbin +- cp uniondbg ${PREFIX}/sbin +- mkdir -p ${PREFIX}/man/man4 +- mkdir -p ${PREFIX}/man/man8 +- cp man/unionfs.4 ${PREFIX}/man/man4 +- cp man/unionctl.8 ${PREFIX}/man/man8 +- cp man/uniondbg.8 ${PREFIX}/man/man8 +- if [ -f unionfs.ko ] ; then cp unionfs.ko /lib/modules/`uname -r`/kernel/fs ; else cp unionfs.o /lib/modules/`uname -r`/kernel/fs ; fi ++ mkdir -p ${DESTDIR}${sbindir} ++ cp unionctl ${DESTDIR}${sbindir} ++ cp uniondbg ${DESTDIR}${sbindir} ++ mkdir -p ${DESTDIR}${man4dir} ++ mkdir -p ${DESTDIR}${man8dir} ++ cp man/unionfs.4 ${DESTDIR}${man4dir} ++ cp man/unionctl.8 ${DESTDIR}${man8dir} ++ cp man/uniondbg.8 ${DESTDIR}${man8dir} ++ mkdir -p ${DESTDIR}${moduledir}/kernel/fs ++ifeq (${KERNELMAJVER},2.4) ++ cp unionfs.o ${DESTDIR}${moduledir}/kernel/fs ++else ++ cp unionfs.ko ${DESTDIR}${moduledir}/kernel/fs ++endif + + + release: unionfs-${VERSION}.tar.gz diff --git a/packages/unionfs/unionfs-1.0.9/.mtn2git_empty b/packages/unionfs/unionfs-1.0.9/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/unionfs/unionfs-1.0.9/.mtn2git_empty diff --git a/packages/unionfs/unionfs-1.0.9/make.patch b/packages/unionfs/unionfs-1.0.9/make.patch index e69de29bb2..573ae55a43 100644 --- a/packages/unionfs/unionfs-1.0.9/make.patch +++ b/packages/unionfs/unionfs-1.0.9/make.patch @@ -0,0 +1,118 @@ + +# +# Patch managed by http://www.holgerschurig.de/patcher.html +# + +Index: unionfs-1.0.9/Makefile +=================================================================== +--- unionfs-1.0.9.orig/Makefile 2005-02-20 16:27:43.000000000 -0600 ++++ unionfs-1.0.9/Makefile 2005-02-20 16:31:36.000000000 -0600 +@@ -3,11 +3,19 @@ + # + + # this should point to where your kernel headers are +-LINUXSRC = /lib/modules/`uname -r`/build ++KERNELVER := $(shell uname -r) ++KERNELMAJVER := $(shell echo ${KERNELVER} | cut -d. -f1,2) ++LINUXSRC = /lib/modules/${KERNELVER}/build + TOPINC = -I${LINUXSRC}/include + # This is where the make install target will put stuff +-PREFIX = /usr/local +-MODPREFIX= ++DESTDIR = ++prefix = /usr/local ++sbindir = ${prefix}/sbin ++mandir = ${prefix}/man ++man4dir = ${mandir}/man4 ++man8dir = ${mandir}/man8 ++moduledir = /lib/modules/${KERNELVER} ++ + VERSION = 1.0.9 + TAROPTS = czvf + UNIONFS_DEBUG_CFLAG = -g +@@ -25,8 +33,8 @@ + endif + + CC = gcc +-KERNELVERSION=$(shell uname -r | cut -d. -f1,2) +-ifeq ($(KERNELVERSION),2.4) ++LD = ld ++ifeq (${KERNELMAJVER},2.4) + CFLAGS = -D__KERNEL__ -DMODULE -DFISTGEN -I. ${TOPINC} -Wall -Wno-unused-label -Werror -fno-strict-aliasing ${EXTRACFLAGS} ${UNIONFS_DEBUG_CFLAG} ${UNIONFS_OPT_CFLAG} + endif + EXTRA_CFLAGS += -D__KERNEL__ -DMODULE -DFISTGEN -I. ${TOPINC} -Wall -Werror -fno-strict-aliasing ${EXTRACFLAGS} ${UNIONFS_DEBUG_CFLAG} ${UNIONFS_OPT_CFLAG} +@@ -39,7 +47,7 @@ + + BINS := unionctl uniondbg + +-all: readthereadme unionfs$(KERNELVERSION) ++all: readthereadme unionfs$(KERNELMAJVER) + + readthereadme: + @echo "******************************************************************************" +@@ -47,13 +55,15 @@ + @echo "******************************************************************************" + @echo "" + +-unionfs2.6: ${BINS} ++unionfs2.6: unionfs.ko ${BINS} ++ ++unionfs.ko: + make -C ${LINUXSRC} SUBDIRS=$(PWD) FISTDEVMK=$(PWD)/fistdev.mk modules + + unionfs2.4: ${obj-m} ${BINS} + + ${obj-m}: ${unionfs-objs} +- ld -o ${obj-m} -r ${unionfs-objs} ++ ${LD} -o ${obj-m} -r ${unionfs-objs} + + unionctl: unionctl.c + ${CC} -o $@ $? ${UCFLAGS} +@@ -78,23 +88,32 @@ + ${unionfs-objs}: unionfs.h fist.h + + install: all +- mkdir -p ${PREFIX}/sbin +- cp unionctl ${PREFIX}/sbin +- cp uniondbg ${PREFIX}/sbin +- mkdir -p ${PREFIX}/man/man4 +- mkdir -p ${PREFIX}/man/man8 +- cp man/unionfs.4 ${PREFIX}/man/man4 +- cp man/unionctl.8 ${PREFIX}/man/man8 +- cp man/uniondbg.8 ${PREFIX}/man/man8 +- if [ -f unionfs.ko ] ; then cp unionfs.ko ${MODPREFIX}/lib/modules/`uname -r`/kernel/fs ; else cp unionfs.o ${MODPREFIX}/lib/modules/`uname -r`/kernel/fs ; fi ++ mkdir -p ${DESTDIR}${sbindir} ++ cp unionctl ${DESTDIR}${sbindir} ++ cp uniondbg ${DESTDIR}${sbindir} ++ mkdir -p ${DESTDIR}${man4dir} ++ mkdir -p ${DESTDIR}${man8dir} ++ cp man/unionfs.4 ${DESTDIR}${man4dir} ++ cp man/unionctl.8 ${DESTDIR}${man8dir} ++ cp man/uniondbg.8 ${DESTDIR}${man8dir} ++ mkdir -p ${DESTDIR}${moduledir}/kernel/fs ++ifeq (${KERNELMAJVER},2.4) ++ cp unionfs.o ${DESTDIR}${moduledir}/kernel/fs ++else ++ cp unionfs.ko ${DESTDIR}${moduledir}/kernel/fs ++endif + + uninstall: +- if [ -f unionfs.ko ] ; then rm /lib/modules/`uname -r`/kernel/fs/unionfs.ko ; else rm /lib/modules/`uname -r`/kernel/fs/unionfs.o ; fi +- rm ${PREFIX}/man/man8/unionctl.8 +- rm ${PREFIX}/man/man8/uniondbg.8 +- rm ${PREFIX}/man/man4/unionfs.4 +- rm ${PREFIX}/sbin/unionctl +- rm ${PREFIX}/sbin/uniondbg ++ifeq (${KERNELMAJVER},2.4) ++ rm ${DESTDIR}${moduledir}/kernel/fs/unionfs.o ++else ++ rm ${DESTDIR}${moduledir}/kernel/fs/unionfs.ko ++endif ++ rm ${DESTDIR}${man8dir}/unionctl.8 ++ rm ${DESTDIR}${man8dir}/uniondbg.8 ++ rm ${DESTDIR}${man4dir}/unionfs.4 ++ rm ${DESTDIR}${sbindir}/unionctl ++ rm ${DESTDIR}${sbindir}/uniondbg + + release: unionfs-${VERSION}.tar.gz + diff --git a/packages/unionfs/unionfs-modules_1.0.11.bb b/packages/unionfs/unionfs-modules_1.0.11.bb index e69de29bb2..5858b7994f 100644 --- a/packages/unionfs/unionfs-modules_1.0.11.bb +++ b/packages/unionfs/unionfs-modules_1.0.11.bb @@ -0,0 +1,2 @@ +include unionfs-modules.inc +include unionfs_${PV}.inc diff --git a/packages/unionfs/unionfs-modules_1.0.8.bb b/packages/unionfs/unionfs-modules_1.0.8.bb index e69de29bb2..ff5e37819a 100644 --- a/packages/unionfs/unionfs-modules_1.0.8.bb +++ b/packages/unionfs/unionfs-modules_1.0.8.bb @@ -0,0 +1,4 @@ +include unionfs-modules.inc +include unionfs_${PV}.inc + +PR = "r3" diff --git a/packages/unionfs/unionfs-modules_1.0.9.bb b/packages/unionfs/unionfs-modules_1.0.9.bb index e69de29bb2..5858b7994f 100644 --- a/packages/unionfs/unionfs-modules_1.0.9.bb +++ b/packages/unionfs/unionfs-modules_1.0.9.bb @@ -0,0 +1,2 @@ +include unionfs-modules.inc +include unionfs_${PV}.inc diff --git a/packages/unionfs/unionfs-utils_1.0.11.bb b/packages/unionfs/unionfs-utils_1.0.11.bb index e69de29bb2..bbca67a3b7 100644 --- a/packages/unionfs/unionfs-utils_1.0.11.bb +++ b/packages/unionfs/unionfs-utils_1.0.11.bb @@ -0,0 +1,2 @@ +include unionfs-utils.inc +include unionfs_${PV}.inc diff --git a/packages/unionfs/unionfs-utils_1.0.8.bb b/packages/unionfs/unionfs-utils_1.0.8.bb index e69de29bb2..8d97fc7466 100644 --- a/packages/unionfs/unionfs-utils_1.0.8.bb +++ b/packages/unionfs/unionfs-utils_1.0.8.bb @@ -0,0 +1,4 @@ +include unionfs-utils.inc +include unionfs_${PV}.inc + +PR = "r3" diff --git a/packages/unionfs/unionfs-utils_1.0.9.bb b/packages/unionfs/unionfs-utils_1.0.9.bb index e69de29bb2..bbca67a3b7 100644 --- a/packages/unionfs/unionfs-utils_1.0.9.bb +++ b/packages/unionfs/unionfs-utils_1.0.9.bb @@ -0,0 +1,2 @@ +include unionfs-utils.inc +include unionfs_${PV}.inc diff --git a/packages/unionfs/unionroot-utils/.mtn2git_empty b/packages/unionfs/unionroot-utils/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/unionfs/unionroot-utils/.mtn2git_empty diff --git a/packages/unionfs/unionroot-utils/mount.unionroot b/packages/unionfs/unionroot-utils/mount.unionroot index ac0f9a08f1..ac0f9a08f1 100644..100755 --- a/packages/unionfs/unionroot-utils/mount.unionroot +++ b/packages/unionfs/unionroot-utils/mount.unionroot diff --git a/packages/unionfs/unionroot-utils/umount.unionroot b/packages/unionfs/unionroot-utils/umount.unionroot index df0eccb353..df0eccb353 100644..100755 --- a/packages/unionfs/unionroot-utils/umount.unionroot +++ b/packages/unionfs/unionroot-utils/umount.unionroot diff --git a/packages/unionfs/unionroot/.mtn2git_empty b/packages/unionfs/unionroot/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/unionfs/unionroot/.mtn2git_empty diff --git a/packages/unionfs/unionroot/init.unionroot b/packages/unionfs/unionroot/init.unionroot index bfd86886a0..bfd86886a0 100644..100755 --- a/packages/unionfs/unionroot/init.unionroot +++ b/packages/unionfs/unionroot/init.unionroot diff --git a/packages/unionfs/unionroot/init.unionroot.old b/packages/unionfs/unionroot/init.unionroot.old index e69de29bb2..7ac227eb38 100644..100755 --- a/packages/unionfs/unionroot/init.unionroot.old +++ b/packages/unionfs/unionroot/init.unionroot.old @@ -0,0 +1,90 @@ +#!/bin/sh + +INIT=/sbin/init.sysvinit +#OVERLAYS=/media/ram /media/cf /media/card +ROOTBACKUP=/media/realroot +UNION=/media/union +PATH=/usr/bin:/usr/sbin:/bin:/sbin + +if ! test -e ${INIT}; then + echo >&2 "ERROR: ${INIT} not found" + exit 1 +fi + +if test x"$*" != "x"; then + exec ${INIT} $* +fi + +if ! which unionctl; then + exec ${INIT} +fi + +nodupmount () { + opts="" + type="" + while true; do + if test "$1" = "-o"; then + shift + opts="-o $1" + shift + elif test "$1" = "-t"; then + shift + type="$1" + shift + else + break + fi + done + if test x"$2" = "x"; then + mountpt="$1" + else + device="$1" + mountpt="$2" + fi + mountmatch="^[^ ]+ $mountpt $type" + # echo "NOTE: grep -E -q \"$mountmatch\" /proc/mounts" + if grep -E -q "$mountmatch" /proc/mounts; then + return 0; + fi + if test x"$type" != "x"; then + type="-t $type" + fi + echo >&2 "NOTE: executing mount $type $opts $device $mountpt" + mkdir -p $mountpt + /bin/mount.busybox $type $opts $device $mountpt + ret="$?" + if test "$ret" = "0"; then + wemounted="$wemounted $mountpt" + fi + return $ret +} + +#set -x +wemounted="" +( + set -e + /bin/mount.busybox /proc + insmod /lib/modules/`uname -r`/kernel/fs/unionfs.o + nodupmount -t unionfs -o dirs=/.=rw,setattr=all none ${UNION} +# nodupmount -o bind / ${UNION}/${ROOTBACKUP} +# for OVERLAY in ${OVERLAYS}; do +# nodupmount ${OVERLAY} +# union-ctl /. --add --mode rw ${OVERLAY} +# nodupmount -o bind ${OVERLAY} ${UNION}/${OVERLAY} +# done + /bin/umount.busybox /proc +# nodupmount -o bind /proc ${UNION}/proc +# nodupmount -o bind / ${ROOTBACKUP} +) || ( + echo >&2 "ERROR: unable to setup mounts for chroot"; + if test x"$wemounted" != "x"; then + # cleanup + for mount in $wemounted; do + /bin/umount.busybox $mount + done + fi + exec ${INIT} +) +cd ${UNION} +pivot_root . ./${ROOTBACKUP} +exec chroot . ${INIT} |