+++ /dev/null
-Index: python/Makefile-files
-===================================================================
---- python/Makefile-files (revision 2883)
-+++ python/Makefile-files (revision 2896)
-@@ -1,22 +1,23 @@
- ## $Id$
-
- ## Copyright (C) 2008 Daniel Hokka Zakrisson
--##
-+##
- ## This program is free software; you can redistribute it and/or
- ## modify it under the terms of the GNU General Public License
- ## as published by the Free Software Foundation; either version 2
- ## of the License, or (at your option) any later version.
--##
-+##
- ## This program is distributed in the hope that it will be useful,
- ## but WITHOUT ANY WARRANTY; without even the implied warranty of
- ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- ## GNU General Public License for more details.
--##
-+##
- ## You should have received a copy of the GNU General Public License
- ## along with this program; if not, write to the Free Software
- ## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
--##
-+##
-
-+AM_INSTALLCHECK_STD_OPTIONS_EXEMPT += python/libvserver.py
- pyexec_LTLIBRARIES += python/_libvserver.la
- pyexec_SCRIPTS += python/libvserver.py
- python__libvserver_la_SOURCES = python/_libvserver.c
-Index: src/testsuite/hashcalc-plain.c
-===================================================================
---- src/testsuite/hashcalc-plain.c (revision 2883)
-+++ src/testsuite/hashcalc-plain.c (revision 2896)
-@@ -1,16 +1,16 @@
- // $Id$ --*- c -*--
-
- // Copyright (C) 2006 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
--//
-+//
- // This program is free software; you can redistribute it and/or modify
- // it under the terms of the GNU General Public License as published by
- // the Free Software Foundation; version 2 of the License.
--//
-+//
- // This program is distributed in the hope that it will be useful,
- // but WITHOUT ANY WARRANTY; without even the implied warranty of
- // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- // GNU General Public License for more details.
--//
-+//
- // You should have received a copy of the GNU General Public License
- // along with this program; if not, write to the Free Software
- // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-@@ -24,6 +24,7 @@
- #include <stdbool.h>
- #include <unistd.h>
- #include <fcntl.h>
-+#include <sys/stat.h>
- #include <sys/mman.h>
-
- #define ENSC_TESTSUITE
-@@ -36,19 +37,19 @@
- {
- static char const HEX_DIGIT[] = "0123456789abcdef";
- size_t d_size = ensc_crypto_hashctx_get_digestsize(h_ctx);
--
-+
- unsigned char digest[d_size];
- size_t out = 0;
-
- if (ensc_crypto_hashctx_get_digest(h_ctx, digest, NULL, d_size)==-1)
- return false;
--
-+
- for (size_t in=0; in<d_size; ++in) {
- res[out++] = HEX_DIGIT[digest[in] >> 4];
- res[out++] = HEX_DIGIT[digest[in] & 0x0f];
- }
- res[out++] = '\0';
--
-+
- return true;
- }
-
-@@ -81,13 +82,13 @@
- assert(ensc_crypto_hashctx_update(&hash_context, buf, buf_size)!=-1);
- munmap((void *)(buf), buf_size);
- }
--
-+
- assert(convertDigest(digest, &hash_context));
--
-+
- Vwrite(1, digest, strlen(digest));
- Vwrite(1, "\n", 1);
--
-+
- ensc_crypto_hashctx_free(&hash_context);
--
-+
- return 0;
- }
-Index: src/testsuite/Makefile-files
-===================================================================
---- src/testsuite/Makefile-files (revision 2883)
-+++ src/testsuite/Makefile-files (revision 2896)
-@@ -1,16 +1,16 @@
- ## $Id$ --*- makefile -*--
-
- ## Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
--##
-+##
- ## This program is free software; you can redistribute it and/or modify
- ## it under the terms of the GNU General Public License as published by
- ## the Free Software Foundation; version 2 of the License.
--##
-+##
- ## This program is distributed in the hope that it will be useful,
- ## but WITHOUT ANY WARRANTY; without even the implied warranty of
- ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- ## GNU General Public License for more details.
--##
-+##
- ## You should have received a copy of the GNU General Public License
- ## along with this program; if not, write to the Free Software
- ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-@@ -57,19 +57,22 @@
- src/testsuite/hashcalc-plain.sh \
- src/testsuite/vwait-test.sh
-
-+DIETPROGS += src/testsuite/vunify-functest \
-+ src/testsuite/chcontext-test \
-+ src/testsuite/chbind-test \
-+ src/testsuite/rpm-fake-test
-+
- src_testsuite_rpm_fake_test_SOURCES = src/testsuite/rpm-fake-test.c
-
- src_testsuite_vunify_functest_SOURCES = src/testsuite/vunify-functest.c
- src_testsuite_vunify_functest_LDADD = $(LIBINTERNAL)
- src_testsuite_vunify_functest_CPPFLAGS= $(AM_CPPFLAGS) $(src_testsuite_CPPFLAGS)
-
--
- src_testsuite_chcontext_test_SOURCES = src/testsuite/chcontext-test.c
--src_testsuite_chcontext_test_LDADD = lib/libvserver.la $(LIBINTERNAL)
-+src_testsuite_chcontext_test_LDADD = $(VSERVER_LDADDS) $(LIBINTERNAL)
-
--
- src_testsuite_chbind_test_SOURCES = src/testsuite/chbind-test.c
--src_testsuite_chbind_test_LDADD = lib/libvserver.la
-+src_testsuite_chbind_test_LDADD = $(LIBVSERVER)
-
- src_testsuite_hashcalc_SOURCES = src/testsuite/hashcalc.c
- src_testsuite_hashcalc_plain_SOURCES = src/testsuite/hashcalc-plain.c
-@@ -77,6 +80,9 @@
- src_testsuite_hashcalc_plain_CFLAGS = $(AM_CFLAGS) $(ENSC_CRYPTO_CFLAGS)
-
- if ENSC_CAN_CRYPTO_WITH_DIETLIBC
-+DIETPROGS += src/testsuite/hashcalc \
-+ src/testsuite/hashcalc-plain
-+
- src_testsuite_hashcalc_LDADD = $(LIBINTERNAL) $(LIBENSCVECTOR) $(ENSC_CRYPTO_LIB) $(VSERVER_LDADDS)
- src_testsuite_hashcalc_LDFLAGS = $(VSERVER_LDFLGS)
-
-Index: src/vcontext.c
-===================================================================
---- src/vcontext.c (revision 2883)
-+++ src/vcontext.c (revision 2896)
-@@ -1,16 +1,16 @@
- // $Id$ --*- c -*--
-
- // Copyright (C) 2004-2006 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
--//
-+//
- // This program is free software; you can redistribute it and/or modify
- // it under the terms of the GNU General Public License as published by
- // the Free Software Foundation; version 2 of the License.
--//
-+//
- // This program is distributed in the hope that it will be useful,
- // but WITHOUT ANY WARRANTY; without even the implied warranty of
- // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- // GNU General Public License for more details.
--//
-+//
- // You should have received a copy of the GNU General Public License
- // along with this program; if not, write to the Free Software
- // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-@@ -21,6 +21,7 @@
- #endif
-
- #include "util.h"
-+#include "compat-pivot_root.h"
- #include "lib/internal.h"
- #include "lib_internal/jail.h"
- #include "lib_internal/sys_personality.h"
-@@ -99,9 +100,9 @@
- { "personality-flags", required_argument, 0, CMD_PERSFLAG },
- { "vlogin", no_argument, 0, CMD_VLOGIN },
- { "pivot-root", no_argument, 0, CMD_PIVOT_ROOT },
--#if 1
-+#if 1
- { "fakeinit", no_argument, 0, CMD_INITPID }, // compatibility
--#endif
-+#endif
- { 0,0,0,0 },
- };
-
-@@ -205,7 +206,7 @@
- {
- int fd;
- struct sockaddr_un addr;
--
-+
- if (filename==0) return -1;
-
- ENSC_INIT_UNIX_SOCK(addr, filename);
-@@ -237,7 +238,7 @@
- doExternalSync(int fd, char const *msg)
- {
- char c;
--
-+
- if (fd==-1) return;
-
- if (msg) EsendAll(fd, msg, strlen(msg));
-@@ -256,13 +257,13 @@
- {
- int p[2][2];
- pid_t pid = initSync(p, args->do_disconnect);
--
-+
- if (pid==0) {
- xid_t xid;
- int ext_sync_fd = connectExternalSync(args->sync_sock);
-
-- doSyncStage0(p, args->do_disconnect);
--
-+ doSyncStage0(p, args->do_disconnect);
-+
- if (args->do_create) {
- xid = vc_ctx_create(args->xid, NULL);
- if (xid==VC_NOCTX) {
-@@ -378,7 +379,7 @@
- }
-
- assert(args->do_disconnect);
--
-+
- waitOnSync(pid, p, args->xid!=VC_DYNAMIC_XID && args->do_migrate);
- return EXIT_SUCCESS;
- }
-@@ -430,11 +431,11 @@
- .personality_flags = 0,
- .sync_msg = "ok",
- };
--
-+
- while (1) {
- int c = getopt_long(argc, argv, "+", CMDLINE_OPTIONS, 0);
- if (c==-1) break;
--
-+
- switch (c) {
- case CMD_HELP : showHelp(1, argv[0], 0);
- case CMD_VERSION : showVersion();
-@@ -474,10 +475,10 @@
- }
-
- signal(SIGCHLD, SIG_DFL);
--
-+
- if (args.do_migrateself)
- args.xid = Evc_get_task_xid(0);
--
-+
- if (!args.do_create && !args.do_migrate)
- WRITE_MSG(2, "Neither '--create' nor '--migrate' specified; try '--help' for more information\n");
- else if (args.do_create && args.do_migrate)
-Index: scripts/vserver.suexec
-===================================================================
---- scripts/vserver.suexec (revision 2883)
-+++ scripts/vserver.suexec (revision 2896)
-@@ -40,7 +40,7 @@
- "${CHBIND_CMD[@]}" \
- $_EXEC_ULIMIT "$VSERVER_DIR/ulimits" \
- ${USE_VNAMESPACE:+$_VNAMESPACE --enter "$S_CONTEXT" -- } \
-- $_VSPACE --enter "$S_CONTEXT" "${OPTS_VSPACE[@]}" -- \
-+ $_VSPACE --enter "$S_CONTEXT" "${OPTS_VSPACE[@]}" "${OPTS_VSPACE_SHARED[@]}" -- \
- $_VTAG --migrate "${OPTS_VTAG_ENTER[@]}" --silent -- \
- $_VCONTEXT $SILENT_OPT --migrate $OPT_VCONTEXT_CHROOT \
- --xid "$S_CONTEXT" --uid "$user" "${OPTS_VCONTEXT_ENTER[@]}" -- \
-Index: scripts/vserver.stop
-===================================================================
---- scripts/vserver.stop (revision 2883)
-+++ scripts/vserver.stop (revision 2896)
-@@ -83,7 +83,7 @@
- "${IONICE_CMD[@]}" \
- "${NICE_CMD[@]}" \
- "${CHBIND_CMD[@]}" \
-- "$_VSPACE" --enter "$S_CONTEXT" "${OPTS_VSPACE[@]}" -- \
-+ "$_VSPACE" --enter "$S_CONTEXT" "${OPTS_VSPACE[@]}" "${OPTS_VSPACE_SHARED[@]}" -- \
- "$_VTAG" --migrate "${OPTS_VTAG_ENTER[@]}" --silent -- \
- $_VCONTEXT $SILENT_OPT --migrate $OPT_VCONTEXT_CHROOT --xid "$S_CONTEXT" -- \
- "${INITCMD_STOP[@]}" || fail=1
-Index: scripts/vserver.start
-===================================================================
---- scripts/vserver.start (revision 2883)
-+++ scripts/vserver.start (revision 2896)
-@@ -136,6 +136,7 @@
- if $_VSERVER_INFO - FEATURE migrate; then
- ${IONICE_CMD[@]} \
- ${NICE_CMD[@]} \
-+ "${VSPACE_SHARED_CMD[@]}" \
- "${CHBIND_CMD[@]}" \
- $_EXEC_ULIMIT "$VSERVER_DIR"/ulimits \
- $_VTAG --create "${OPTS_VTAG_CREATE[@]}" --silent -- \
-@@ -143,7 +144,7 @@
- $_VCONTEXT --create "${OPTS_VCONTEXT_CREATE[@]}" -- \
- ${OPTION_STRACE:+$_STRACE -fF -o /tmp/vserver-start.$$} \
- ${USE_VNAMESPACE:+$_VNAMESPACE --set -- } \
-- $_VSPACE --set "${OPTS_VSPACE[@]}" -- \
-+ $_VSPACE --set "${OPTS_VSPACE[@]}" "${OPTS_VSPACE_SHARED[@]}" -- \
- $_EXEC_REMOUNT /proc /sys -- \
- $_VLIMIT --dir "$VSERVER_DIR"/rlimits --missingok -- \
- $_VSCHED --xid self --force "${OPTS_VSCHED[@]}" -- \
-Index: scripts/vserver.functions
-===================================================================
---- scripts/vserver.functions (revision 2883)
-+++ scripts/vserver.functions (revision 2896)
-@@ -49,6 +49,8 @@
- declare -a OPTS_VTAG_ENTER=()
- declare -a OPTS_VMEMCTRL=()
- declare -a OPTS_VSPACE=( --default )
-+declare -a OPTS_VSPACE_SHARED=()
-+declare -a VSPACE_SHARED_CMD=()
-
- declare -a STOPCMD_PREPARE=()
-
-@@ -787,16 +789,30 @@
- {
- local vdir="$1"
- local d="$vdir"/spaces
-+ local shared
-
-- ( test ! -e "$d"/pid ) || \
-- OPTS_VSPACE=( "${OPTS_VSPACE[@]}" --pid )
-+ if test -e "$d"/pid; then
-+ getFileValue shared "$d"/pid
-+ if test -z "$shared"; then
-+ OPTS_VSPACE=( "${OPTS_VSPACE[@]}" --pid )
-+ else
-+ OPTS_VSPACE_SHARED=( "${OPTS_VSPACE_SHARED[@]}" --pid )
-+ VSPACE_SHARED_CMD=( "${VSPACE_SHARED_CMD[@]}" $_VSPACE --enter "$shared" --pid -- )
-+ fi
-+ fi
-
-- test ! -e "$d"/net || {
-- OPTS_VSPACE=( "${OPTS_VSPACE[@]}" --net )
-+ if test -e "$d"/net; then
-+ getFileValue shared "$d"/net
- # network context and namespace don't make much sense
- _HAVE_CHBIND_OPTIONS=1
- CHBIND_CMD=()
-- }
-+ if test -z "$shared"; then
-+ OPTS_VSPACE=( "${OPTS_VSPACE[@]}" --net )
-+ else
-+ OPTS_VSPACE_SHARED=( "${OPTS_VSPACE_SHARED[@]}" --net )
-+ VSPACE_SHARED_CMD=( "${VSPACE_SHARED_CMD[@]}" $_VSPACE --enter "$shared" --net -- )
-+ fi
-+ fi
-
- local mask
- getFileValue mask "$d"/mask || \
-Index: configure.ac
-===================================================================
---- configure.ac (revision 2883)
-+++ configure.ac (revision 2896)
-@@ -1,27 +1,27 @@
- dnl $Id$
-
- dnl Copyright (C) 2003,2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
--dnl
-+dnl
- dnl This program is free software; you can redistribute it and/or modify
- dnl it under the terms of the GNU General Public License as published by
- dnl the Free Software Foundation; either version 2, or (at your option)
- dnl any later version.
--dnl
-+dnl
- dnl This program is distributed in the hope that it will be useful,
- dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
- dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- dnl GNU General Public License for more details.
--dnl
-+dnl
- dnl You should have received a copy of the GNU General Public License
- dnl along with this program; if not, write to the Free Software
- dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
--dnl
--dnl
-+dnl
-+dnl
- dnl As a special exception to the GNU General Public License, if you
- dnl distribute this file as part of a program that contains a configuration
- dnl script generated by Autoconf, you may include it under the same
- dnl distribution terms that you use for the rest of that program.
--dnl
-+dnl
-
- AC_PREREQ(2.57)
- AC_INIT(util-vserver, 0.30.215, vserver@list.linux-vserver.org)
-@@ -78,7 +78,7 @@
-
- if test x"$prefix" = x/; then
- prefix=
--fi
-+fi
-
- ENSC_CHECK_CC_FLAG([-std=c99 -Wall -pedantic -W])
- ENSC_CHECK_CXX_FLAG([-ansi -Wall -pedantic -W -fmessage-length=0])
-@@ -206,8 +206,8 @@
- [AC_HELP_STRING([--disable-internal-headers],
- [use vserver specific headers from the kernel instead of the shipped versions (default: no)])],
- [case "$enableval" in
-- (yes|no) ;;
-- (*) AC_MSG_ERROR(['$i' is not a supported value for '--disable-internal-headers']);;
-+ (yes|no) ;;
-+ (*) AC_MSG_ERROR(['$i' is not a supported value for '--disable-internal-headers']);;
- esac],
- [enable_internal_headers=yes])
-
-@@ -258,14 +258,14 @@
- enable_api_oldproc=${enable_api_oldproc:-1}
- enable_api_olduts=${enable_api_olduts:-1}
- ;;
-- (v11) AC_DEFINE(VC_ENABLE_API_V11, 1)
-+ (v11) AC_DEFINE(VC_ENABLE_API_V11, 1)
- enable_api_oldproc=${enable_api_oldproc:-1}
- enable_api_olduts=${enable_api_olduts:-1}
- ;;
- (fscompat) AC_DEFINE(VC_ENABLE_API_FSCOMPAT, 1);;
- (v13obs) AC_DEFINE(VC_ENABLE_API_V13OBS, 1)
- AC_DEFINE(VC_ENABLE_API_V13, 1);;
-- (v13) AC_DEFINE(VC_ENABLE_API_V13, 1);;
-+ (v13) AC_DEFINE(VC_ENABLE_API_V13, 1);;
- (net) AC_DEFINE(VC_ENABLE_API_NET, 1);;
- (v21) AC_DEFINE(VC_ENABLE_API_V21, 1);;
- (v22) AC_DEFINE(VC_ENABLE_API_V22, 1);;
-@@ -340,7 +340,7 @@
- AC_CHECK_HEADER([beecrypt/beecrypt.h], [ : ],
- [ ensc_have_beecrypt=no ])
- fi
--
-+
- if test x"$ensc_have_beecrypt" = xyes; then
- AC_CHECK_LIB(beecrypt, hashFunctionContextInit, [ : ],
- [ ensc_have_beecrypt=no ])
-@@ -532,7 +532,7 @@
- crypto api: $ensc_crypto_api
- python bindings: $ensc_have_python
- use library versioning: $ensc_have_versioning
--
-+
- Paths:
- prefix: $prefix
- sysconf-Directory: $sysconfdir
-Index: lib/syscall_setiattr-fscompat.hc
-===================================================================
---- lib/syscall_setiattr-fscompat.hc (revision 2883)
-+++ lib/syscall_setiattr-fscompat.hc (revision 2896)
-@@ -1,16 +1,16 @@
- // $Id$ --*- c -*--
-
- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
--//
-+//
- // This program is free software; you can redistribute it and/or modify
- // it under the terms of the GNU General Public License as published by
- // the Free Software Foundation; version 2 of the License.
--//
-+//
- // This program is distributed in the hope that it will be useful,
- // but WITHOUT ANY WARRANTY; without even the implied warranty of
- // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- // GNU General Public License for more details.
--//
-+//
- // You should have received a copy of the GNU General Public License
- // along with this program; if not, write to the Free Software
- // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-@@ -26,6 +26,7 @@
- #include "ioctl-getxflg.hc"
-
- #include <fcntl.h>
-+#include <sys/stat.h>
-
- static inline ALWAYSINLINE int
- vc_set_iattr_fscompat(char const *filename,
-@@ -38,7 +39,7 @@
-
- fd = open(filename, O_RDONLY|O_NONBLOCK);
- if (fd==-1) return -1;
--
-+
- stat_rc = fstat(fd, &st);
- if (stat_rc==-1) goto err;
-
-@@ -60,7 +61,7 @@
- if (vc_X_set_ext2flags(fd, 0, VC_IMMUTABLE_LINK_FL)==-1 ||
- fchmod(fd, 0500))
- goto err;
-- }
-+ }
- }
-
- if ( (mask&VC_IATTR_XID) &&
-Index: lib/syscall_getiattr-fscompat.hc
-===================================================================
---- lib/syscall_getiattr-fscompat.hc (revision 2883)
-+++ lib/syscall_getiattr-fscompat.hc (revision 2896)
-@@ -1,16 +1,16 @@
- // $Id$ --*- c -*--
-
- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
--//
-+//
- // This program is free software; you can redistribute it and/or modify
- // it under the terms of the GNU General Public License as published by
- // the Free Software Foundation; version 2 of the License.
--//
-+//
- // This program is distributed in the hope that it will be useful,
- // but WITHOUT ANY WARRANTY; without even the implied warranty of
- // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- // GNU General Public License for more details.
--//
-+//
- // You should have received a copy of the GNU General Public License
- // along with this program; if not, write to the Free Software
- // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-@@ -25,6 +25,9 @@
- #include "ioctl-getxflg.hc"
-
- #include <fcntl.h>
-+#include <unistd.h>
-+#include <sys/stat.h>
-+
- static inline ALWAYSINLINE int
- vc_get_iattr_fscompat(char const *filename,
- xid_t * /*@null@*/ xid,
-@@ -65,7 +68,7 @@
-
- if ( (old_mask&VC_IATTR_BARRIER) && S_ISDIR(st.st_mode)) {
- long ext2_flags;
--
-+
- *mask |= VC_IATTR_BARRIER;
- if ((st.st_mode&0777)==0 &&
- vc_X_get_ext2flags(fd, &ext2_flags)!=-1 &&
-@@ -91,5 +94,5 @@
- close(fd);
- errno = old_errno;
- return -1;
-- }
-+ }
- }
-Index: lib_internal/matchlist-initrefserverlist.c
-===================================================================
---- lib_internal/matchlist-initrefserverlist.c (revision 2883)
-+++ lib_internal/matchlist-initrefserverlist.c (revision 2896)
-@@ -1,16 +1,16 @@
- // $Id$ --*- c -*--
-
- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
--//
-+//
- // This program is free software; you can redistribute it and/or modify
- // it under the terms of the GNU General Public License as published by
- // the Free Software Foundation; version 2 of the License.
--//
-+//
- // This program is distributed in the hope that it will be useful,
- // but WITHOUT ANY WARRANTY; without even the implied warranty of
- // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- // GNU General Public License for more details.
--//
-+//
- // You should have received a copy of the GNU General Public License
- // along with this program; if not, write to the Free Software
- // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-@@ -26,6 +26,7 @@
- #include <dirent.h>
- #include <string.h>
- #include <fcntl.h>
-+#include <sys/stat.h>
-
- #define ENSC_WRAPPERS_FCNTL 1
- #define ENSC_WRAPPERS_UNISTD 1
-@@ -45,7 +46,7 @@
- int cur_dir = Eopen(".", O_RDONLY, 0);
- struct dirent **entries;
- int count,i;
--
-+
- Echdir(dir);
- count = scandir(".", &entries, selectRefserver, alphasort);
- if (count==-1) {
-@@ -61,7 +62,7 @@
- *lst = Emalloc(sizeof(struct MatchList) * count);
- *cnt = count;
- for (i=0; i<count; ++i) {
-- char const *tmp = entries[i]->d_name;
-+ char const *tmp = entries[i]->d_name;
- size_t l = strlen(tmp);
- char vname[sizeof("./") + l];
- struct MatchVserverInfo vserver = {
-@@ -71,7 +72,7 @@
-
- memcpy(vname, "./", 2);
- memcpy(vname+2, tmp, l+1);
--
-+
- if (!MatchVserverInfo_init(&vserver)) {
- WRITE_MSG(2, "failed to initialize unification of reference vserver\n");
- exit(1);
-Index: ensc_vector/testsuite/Makefile-files
-===================================================================
---- ensc_vector/testsuite/Makefile-files (revision 2883)
-+++ ensc_vector/testsuite/Makefile-files (revision 2896)
-@@ -1,16 +1,16 @@
- ## $Id$ --*- makefile -*--
-
- ## Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
--##
-+##
- ## This program is free software; you can redistribute it and/or modify
- ## it under the terms of the GNU General Public License as published by
- ## the Free Software Foundation; version 2 of the License.
--##
-+##
- ## This program is distributed in the hope that it will be useful,
- ## but WITHOUT ANY WARRANTY; without even the implied warranty of
- ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- ## GNU General Public License for more details.
--##
-+##
- ## You should have received a copy of the GNU General Public License
- ## along with this program; if not, write to the Free Software
- ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-@@ -21,6 +21,9 @@
- TESTS += ensc_vector/testsuite/test1 \
- ensc_vector/testsuite/test2
-
-+DIETPROGS += ensc_vector/testsuite/test1 \
-+ ensc_vector/testsuite/test2
-+
- ensc_vector_testsuite_test1_SOURCES = ensc_vector/testsuite/test1.c
- ensc_vector_testsuite_test1_LDADD = $(LIBENSCVECTOR)
-
--- /dev/null
+Index: python/Makefile-files
+===================================================================
+--- python/Makefile-files (revision 2883)
++++ python/Makefile-files (revision 2902)
+@@ -1,22 +1,23 @@
+ ## $Id$
+
+ ## Copyright (C) 2008 Daniel Hokka Zakrisson
+-##
++##
+ ## This program is free software; you can redistribute it and/or
+ ## modify it under the terms of the GNU General Public License
+ ## as published by the Free Software Foundation; either version 2
+ ## of the License, or (at your option) any later version.
+-##
++##
+ ## This program is distributed in the hope that it will be useful,
+ ## but WITHOUT ANY WARRANTY; without even the implied warranty of
+ ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ ## GNU General Public License for more details.
+-##
++##
+ ## You should have received a copy of the GNU General Public License
+ ## along with this program; if not, write to the Free Software
+ ## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+-##
++##
+
++AM_INSTALLCHECK_STD_OPTIONS_EXEMPT += python/libvserver.py
+ pyexec_LTLIBRARIES += python/_libvserver.la
+ pyexec_SCRIPTS += python/libvserver.py
+ python__libvserver_la_SOURCES = python/_libvserver.c
+Index: debian/control
+===================================================================
+--- debian/control (revision 0)
++++ debian/control (revision 2902)
+@@ -0,0 +1,89 @@
++Source: util-vserver
++Section: net
++Priority: optional
++Maintainer: Daniel Hokka Zakrisson <daniel@hozac.com>
++Build-Depends: debhelper (>= 7), gawk, dietlibc-dev, net-tools, vlan, iptables, wget, procps, module-init-tools, libnss3-dev, po-debconf, e2fslibs-dev, pkg-config, python2.6-dev
++Standards-Version: 3.8.4
++Homepage: http://savannah.nongnu.org/projects/util-vserver/
++
++Package: util-vserver
++Architecture: any
++Depends: ${shlibs:Depends}, ${misc:Depends}, util-vserver-core, util-vserver-lib, util-vserver-sysv, diffutils
++Description: utilities for managing Linux-VServer guests
++ util-vserver provides the components and a framework to setup virtual
++ servers. A virtual server runs inside a Linux server. It is nevertheless
++ highly independent. As such, you can run various services with normal
++ configuration. The various vservers can't interact with each other and
++ can't interact with services in the main server.
++
++Package: libvserver0
++Section: libs
++Architecture: any
++Depends: ${shlibs:Depends}, ${misc:Depends}
++Description: dynamic libraries for util-vserver
++ util-vserver provides the components and a framework to setup virtual
++ servers. A virtual server runs inside a Linux server. It is nevertheless
++ highly independent. As such, you can run various services with normal
++ configuration. The various vservers can't interact with each other and
++ can't interact with services in the main server.
++
++Package: util-vserver-core
++Architecture: any
++Depends: ${shlibs:Depends}, ${misc:Depends}
++Description: core utilities of util-vserver
++ util-vserver provides the components and a framework to setup virtual
++ servers. A virtual server runs inside a Linux server. It is nevertheless
++ highly independent. As such, you can run various services with normal
++ configuration. The various vservers can't interact with each other and
++ can't interact with services in the main server.
++
++Package: util-vserver-build
++Architecture: any
++Depends: ${shlibs:Depends}, ${misc:Depends}, util-vserver, wget, binutils
++Description: tools which can be used to build vservers
++ util-vserver provides the components and a framework to setup virtual
++ servers. A virtual server runs inside a Linux server. It is nevertheless
++ highly independent. As such, you can run various services with normal
++ configuration. The various vservers can't interact with each other and
++ can't interact with services in the main server.
++
++Package: util-vserver-sysv
++Architecture: any
++Depends: ${shlibs:Depends}, ${misc:Depends}, util-vserver, make, diffutils
++Description: initscripts for util-vserver
++ util-vserver provides the components and a framework to setup virtual
++ servers. A virtual server runs inside a Linux server. It is nevertheless
++ highly independent. As such, you can run various services with normal
++ configuration. The various vservers can't interact with each other and
++ can't interact with services in the main server.
++
++Package: util-vserver-legacy
++Architecture: any
++Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}, util-vserver
++Description: legacy scripts for util-vserver
++ util-vserver provides the components and a framework to setup virtual
++ servers. A virtual server runs inside a Linux server. It is nevertheless
++ highly independent. As such, you can run various services with normal
++ configuration. The various vservers can't interact with each other and
++ can't interact with services in the main server.
++
++Package: libvserver0-dev
++Section: libdevel
++Architecture: any
++Depends: ${shlibs:Depends}, ${misc:Depends}, util-vserver-lib, pkg-config
++Description: headers and libraries needed to develop vserver based applications
++ util-vserver provides the components and a framework to setup virtual
++ servers. A virtual server runs inside a Linux server. It is nevertheless
++ highly independent. As such, you can run various services with normal
++ configuration. The various vservers can't interact with each other and
++ can't interact with services in the main server.
++
++Package: util-vserver-python
++Architecture: any
++Depends: ${shlibs:Depends}, ${misc:Depends}, util-vserver-lib, ${python:Depends}, ${python:Versions}
++Description: python-bindings for util-vserver
++ util-vserver provides the components and a framework to setup virtual
++ servers. A virtual server runs inside a Linux server. It is nevertheless
++ highly independent. As such, you can run various services with normal
++ configuration. The various vservers can't interact with each other and
++ can't interact with services in the main server.
+
+Property changes on: debian/control
+___________________________________________________________________
+Name: svn:keywords
+ + Id
+
+Index: debian/compat
+===================================================================
+--- debian/compat (revision 0)
++++ debian/compat (revision 2902)
+@@ -0,0 +1 @@
++7
+Index: debian/util-vserver-build.postinst
+===================================================================
+--- debian/util-vserver-build.postinst (revision 0)
++++ debian/util-vserver-build.postinst (revision 2902)
+@@ -0,0 +1,8 @@
++#!/bin/sh
++
++test -d /vservers/.hash || mkdir -m0700 /vservers/.hash
++
++f="/etc/vservers/.defaults/apps/vunify/hash"; test -e "$f"/method -o -e "$f"/00 || \
++ ln -s /vservers/.hash "$f"/00
++
++/usr/sbin/setattr --barrier /vservers/.hash || :
+
+Property changes on: debian/util-vserver-build.postinst
+___________________________________________________________________
+Name: svn:executable
+ + *
+
+Index: debian/copyright
+===================================================================
+--- debian/copyright (revision 0)
++++ debian/copyright (revision 2902)
+@@ -0,0 +1,41 @@
++This work was packaged for Debian by:
++
++ Daniel Hokka Zakrisson <daniel@hozac.com> on Wed, 14 Jul 2010 22:42:52 +0000
++
++It was downloaded from:
++
++ http://svn.linux-vserver.org/svn/util-vserver
++
++Upstream Author(s):
++
++ Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
++ Daniel Hokka Zakrisson <daniel@hozac.com>
++
++Copyright:
++
++ Copyright (C) 2002-2010 Enrico Scholz
++ Copyright (C) 2006-2010 Daniel Hokka Zakrisson
++
++License:
++
++ This program is free software; you can redistribute it and/or modify it
++ under the terms of the GNU General Public License as published by the Free
++ Software Foundation; version 2.
++
++ This program is distributed in the hope that it will be useful, but
++ WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
++ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
++ for more details.
++
++ You should have received a copy of the GNU General Public License with
++ your Debian GNU system, in /usr/share/common-licenses/GPL-2, or with the
++ Debian GNU source package as the file GNUGPL.TXT. If not, write to the
++ Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
++ MA 02110-1301, USA.
++
++The Debian packaging is:
++
++ Copyright (C) 2010 Daniel Hokka Zakrisson <daniel@hozac.com>
++
++and is licensed under the GPL version 2,
++see "/usr/share/common-licenses/GPL-2".
+Index: debian/docs
+===================================================================
+--- debian/docs (revision 0)
++++ debian/docs (revision 2902)
+@@ -0,0 +1,2 @@
++NEWS
++README
+Index: debian/util-vserver.postinst
+===================================================================
+--- debian/util-vserver.postinst (revision 0)
++++ debian/util-vserver.postinst (revision 2902)
+@@ -0,0 +1,10 @@
++#!/bin/sh
++
++test -d /vservers || mkdir -m0000 /vservers
++test -d /vservers/.pkg || mkdir -m0755 /vservers/.pkg
++
++f="/etc/vservers/.defaults/vdirbase"; test -L "$f" -o -e "$f" || ln -s /vservers "$f"
++f="/etc/vservers/.defaults/run.rev"; test -L "$f" -o -e "$f" || ln -s /var/run/vservers.rev "$f"
++f="/etc/vservers/.defaults/cachebase"; test -L "$f" -o -e "$f" || ln -s /var/cache/vservers "$f"
++
++/usr/sbin/setattr --barrier /vservers /vservers/.pkg || :
+
+Property changes on: debian/util-vserver.postinst
+___________________________________________________________________
+Name: svn:executable
+ + *
+
+Index: debian/rules
+===================================================================
+--- debian/rules (revision 0)
++++ debian/rules (revision 2902)
+@@ -0,0 +1,31 @@
++#!/usr/bin/make -f
++# -*- makefile -*-
++# Sample debian/rules that uses debhelper.
++#
++# This file was originally written by Joey Hess and Craig Small.
++# As a special exception, when this file is copied by dh-make into a
++# dh-make output file, you may use that output file without restriction.
++# This special exception was added by Craig Small in version 0.37 of dh-make.
++#
++# Modified to make a template file for a multi-binary package with separated
++# build-arch and build-indep targets by Bill Allombert 2001
++
++# Uncomment this to turn on verbose mode.
++#export DH_VERBOSE=1
++
++# This has to be exported to make some magic below work.
++export DH_OPTIONS
++
++
++%:
++ dh $@
++
++override_dh_auto_configure:
++ dh_auto_configure -- --with-initrddir=/etc/init.d --enable-release \
++ --enable-apis=NOLEGACY --with-initscripts=sysv
++
++override_dh_auto_test:
++
++override_dh_auto_install:
++ dh_auto_install
++ contrib/make-deb-manifest util-vserver debian contrib/manifest.dat files
+
+Property changes on: debian/rules
+___________________________________________________________________
+Name: svn:keywords
+ + Id
+Name: svn:executable
+ + *
+
+Index: debian/util-vserver.postrm
+===================================================================
+--- debian/util-vserver.postrm (revision 0)
++++ debian/util-vserver.postrm (revision 2902)
+@@ -0,0 +1,5 @@
++#!/bin/sh
++
++if test "$1" = purge; then
++ rm -rf /var/cache/vservers/* 2>/dev/null || :
++fi
+
+Property changes on: debian/util-vserver.postrm
+___________________________________________________________________
+Name: svn:executable
+ + *
+
+Index: debian/util-vserver-legacy.postinst
+===================================================================
+--- debian/util-vserver-legacy.postinst (revision 0)
++++ debian/util-vserver-legacy.postinst (revision 2902)
+@@ -0,0 +1,9 @@
++#!/bin/sh
++
++if test "$1" = configure; then
++ update-rc.d rebootmgr start 98 2 3 4 5 stop 02 0 1 6 .
++ update-rc.d vservers-legacy start 98 2 3 4 5 stop 02 0 1 6 .
++ for i in httpd named portmap sendmail smb sshd xinetd gated; do
++ update-rc.d v_$i start 98 2 3 4 5 stop 02 0 1 6 .
++ done
++fi
+
+Property changes on: debian/util-vserver-legacy.postinst
+___________________________________________________________________
+Name: svn:executable
+ + *
+
+Index: debian/util-vserver-sysv.postinst
+===================================================================
+--- debian/util-vserver-sysv.postinst (revision 0)
++++ debian/util-vserver-sysv.postinst (revision 2902)
+@@ -0,0 +1,7 @@
++#!/bin/sh
++
++if test "$1" = configure; then
++ update-rc.d vservers-default start 98 2 3 4 5 stop 02 0 1 6 .
++ update-rc.d vprocunhide start 26 2 3 4 5 stop 74 0 1 6 .
++ update-rc.d util-vserver start 10 2 3 4 5 stop 90 0 1 6 .
++fi
+
+Property changes on: debian/util-vserver-sysv.postinst
+___________________________________________________________________
+Name: svn:executable
+ + *
+
+Index: debian/changelog.in
+===================================================================
+--- debian/changelog.in (revision 0)
++++ debian/changelog.in (revision 2902)
+@@ -0,0 +1,5 @@
++util-vserver (@PACKAGE_VERSION@-1) unstable; urgency=low
++
++ * Initial release
++
++ -- Daniel Hokka Zakrisson <daniel@hozac.com> @DATE@
+Index: debian/util-vserver-sysv.postrm
+===================================================================
+--- debian/util-vserver-sysv.postrm (revision 0)
++++ debian/util-vserver-sysv.postrm (revision 2902)
+@@ -0,0 +1,5 @@
++#!/bin/sh
++
++if test "$1" = upgrade; then
++ /etc/init.d/vprocunhide condrestart > /dev/null 2>&1
++fi
+
+Property changes on: debian/util-vserver-sysv.postrm
+___________________________________________________________________
+Name: svn:executable
+ + *
+
+Index: debian/Makefile-files
+===================================================================
+--- debian/Makefile-files (revision 0)
++++ debian/Makefile-files (revision 2902)
+@@ -0,0 +1,33 @@
++## $Id$ -*- makefile -*-
++
++## Copyright (C) 2010 Daniel Hokka Zakrisson <daniel@hozac.com>
++##
++## This program is free software; you can redistribute it and/or modify
++## it under the terms of the GNU General Public License as published by
++## the Free Software Foundation; either version 2, or (at your option)
++## any later version.
++##
++## This program is distributed in the hope that it will be useful,
++## but WITHOUT ANY WARRANTY; without even the implied warranty of
++## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++## GNU General Public License for more details.
++##
++## You should have received a copy of the GNU General Public License
++## along with this program; if not, write to the Free Software
++## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++##
++
++
++EXTRA_DIST += debian/rules \
++ debian/control \
++ debian/compat \
++ debian/copyright \
++ debian/docs \
++ debian/changelog.in \
++ debian/changelog
++
++#CLEANFILES += debian/changelog
++
++DEB_CL_DATE = $(shell date '+%a, %d %b %Y %H:%M:%S %z')
++debian/changelog: debian/changelog.in
++ $(SED) "s/@"PACKAGE_VERSION"@/$(PACKAGE_VERSION)/g;s/@"DATE"@/$(DEB_CL_DATE)/g" $< > $@
+
+Property changes on: debian/Makefile-files
+___________________________________________________________________
+Name: svn:keywords
+ + Id
+
+Index: debian/util-vserver-legacy.prerm
+===================================================================
+--- debian/util-vserver-legacy.prerm (revision 0)
++++ debian/util-vserver-legacy.prerm (revision 2902)
+@@ -0,0 +1,10 @@
++#!/bin/sh
++
++if test "$1" = remove; then
++ /etc/init.d/rebootmgr stop > /dev/null 2>&1
++ update-rc.d rebootmgr remove
++ update-rc.d vservers-legacy remove
++ for i in httpd named portmap sendmail smb sshd xinetd gated; do
++ update-rc.d v_$i remove
++ done
++fi
+
+Property changes on: debian/util-vserver-legacy.prerm
+___________________________________________________________________
+Name: svn:executable
+ + *
+
+Index: debian/util-vserver-sysv.prerm
+===================================================================
+--- debian/util-vserver-sysv.prerm (revision 0)
++++ debian/util-vserver-sysv.prerm (revision 2902)
+@@ -0,0 +1,8 @@
++#!/bin/sh
++
++if test "$1" = remove; then
++ /etc/init.d/vprocunhide stop > /dev/null 2>&1
++ update-rc.d vprocunhide remove
++ update-rc.d util-vserver remove
++ update-rc.d vservers-default remove
++fi
+
+Property changes on: debian/util-vserver-sysv.prerm
+___________________________________________________________________
+Name: svn:executable
+ + *
+
+Index: src/testsuite/hashcalc-plain.c
+===================================================================
+--- src/testsuite/hashcalc-plain.c (revision 2883)
++++ src/testsuite/hashcalc-plain.c (revision 2902)
+@@ -1,16 +1,16 @@
+ // $Id$ --*- c -*--
+
+ // Copyright (C) 2006 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+-//
++//
+ // This program is free software; you can redistribute it and/or modify
+ // it under the terms of the GNU General Public License as published by
+ // the Free Software Foundation; version 2 of the License.
+-//
++//
+ // This program is distributed in the hope that it will be useful,
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ // GNU General Public License for more details.
+-//
++//
+ // You should have received a copy of the GNU General Public License
+ // along with this program; if not, write to the Free Software
+ // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+@@ -24,6 +24,7 @@
+ #include <stdbool.h>
+ #include <unistd.h>
+ #include <fcntl.h>
++#include <sys/stat.h>
+ #include <sys/mman.h>
+
+ #define ENSC_TESTSUITE
+@@ -36,19 +37,19 @@
+ {
+ static char const HEX_DIGIT[] = "0123456789abcdef";
+ size_t d_size = ensc_crypto_hashctx_get_digestsize(h_ctx);
+-
++
+ unsigned char digest[d_size];
+ size_t out = 0;
+
+ if (ensc_crypto_hashctx_get_digest(h_ctx, digest, NULL, d_size)==-1)
+ return false;
+-
++
+ for (size_t in=0; in<d_size; ++in) {
+ res[out++] = HEX_DIGIT[digest[in] >> 4];
+ res[out++] = HEX_DIGIT[digest[in] & 0x0f];
+ }
+ res[out++] = '\0';
+-
++
+ return true;
+ }
+
+@@ -81,13 +82,13 @@
+ assert(ensc_crypto_hashctx_update(&hash_context, buf, buf_size)!=-1);
+ munmap((void *)(buf), buf_size);
+ }
+-
++
+ assert(convertDigest(digest, &hash_context));
+-
++
+ Vwrite(1, digest, strlen(digest));
+ Vwrite(1, "\n", 1);
+-
++
+ ensc_crypto_hashctx_free(&hash_context);
+-
++
+ return 0;
+ }
+Index: src/testsuite/Makefile-files
+===================================================================
+--- src/testsuite/Makefile-files (revision 2883)
++++ src/testsuite/Makefile-files (revision 2902)
+@@ -1,16 +1,16 @@
+ ## $Id$ --*- makefile -*--
+
+ ## Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+-##
++##
+ ## This program is free software; you can redistribute it and/or modify
+ ## it under the terms of the GNU General Public License as published by
+ ## the Free Software Foundation; version 2 of the License.
+-##
++##
+ ## This program is distributed in the hope that it will be useful,
+ ## but WITHOUT ANY WARRANTY; without even the implied warranty of
+ ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ ## GNU General Public License for more details.
+-##
++##
+ ## You should have received a copy of the GNU General Public License
+ ## along with this program; if not, write to the Free Software
+ ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+@@ -57,19 +57,22 @@
+ src/testsuite/hashcalc-plain.sh \
+ src/testsuite/vwait-test.sh
+
++DIETPROGS += src/testsuite/vunify-functest \
++ src/testsuite/chcontext-test \
++ src/testsuite/chbind-test \
++ src/testsuite/rpm-fake-test
++
+ src_testsuite_rpm_fake_test_SOURCES = src/testsuite/rpm-fake-test.c
+
+ src_testsuite_vunify_functest_SOURCES = src/testsuite/vunify-functest.c
+ src_testsuite_vunify_functest_LDADD = $(LIBINTERNAL)
+ src_testsuite_vunify_functest_CPPFLAGS= $(AM_CPPFLAGS) $(src_testsuite_CPPFLAGS)
+
+-
+ src_testsuite_chcontext_test_SOURCES = src/testsuite/chcontext-test.c
+-src_testsuite_chcontext_test_LDADD = lib/libvserver.la $(LIBINTERNAL)
++src_testsuite_chcontext_test_LDADD = $(VSERVER_LDADDS) $(LIBINTERNAL)
+
+-
+ src_testsuite_chbind_test_SOURCES = src/testsuite/chbind-test.c
+-src_testsuite_chbind_test_LDADD = lib/libvserver.la
++src_testsuite_chbind_test_LDADD = $(LIBVSERVER)
+
+ src_testsuite_hashcalc_SOURCES = src/testsuite/hashcalc.c
+ src_testsuite_hashcalc_plain_SOURCES = src/testsuite/hashcalc-plain.c
+@@ -77,6 +80,9 @@
+ src_testsuite_hashcalc_plain_CFLAGS = $(AM_CFLAGS) $(ENSC_CRYPTO_CFLAGS)
+
+ if ENSC_CAN_CRYPTO_WITH_DIETLIBC
++DIETPROGS += src/testsuite/hashcalc \
++ src/testsuite/hashcalc-plain
++
+ src_testsuite_hashcalc_LDADD = $(LIBINTERNAL) $(LIBENSCVECTOR) $(ENSC_CRYPTO_LIB) $(VSERVER_LDADDS)
+ src_testsuite_hashcalc_LDFLAGS = $(VSERVER_LDFLGS)
+
+Index: src/vcontext.c
+===================================================================
+--- src/vcontext.c (revision 2883)
++++ src/vcontext.c (revision 2902)
+@@ -1,16 +1,16 @@
+ // $Id$ --*- c -*--
+
+ // Copyright (C) 2004-2006 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+-//
++//
+ // This program is free software; you can redistribute it and/or modify
+ // it under the terms of the GNU General Public License as published by
+ // the Free Software Foundation; version 2 of the License.
+-//
++//
+ // This program is distributed in the hope that it will be useful,
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ // GNU General Public License for more details.
+-//
++//
+ // You should have received a copy of the GNU General Public License
+ // along with this program; if not, write to the Free Software
+ // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+@@ -21,6 +21,7 @@
+ #endif
+
+ #include "util.h"
++#include "compat-pivot_root.h"
+ #include "lib/internal.h"
+ #include "lib_internal/jail.h"
+ #include "lib_internal/sys_personality.h"
+@@ -99,9 +100,9 @@
+ { "personality-flags", required_argument, 0, CMD_PERSFLAG },
+ { "vlogin", no_argument, 0, CMD_VLOGIN },
+ { "pivot-root", no_argument, 0, CMD_PIVOT_ROOT },
+-#if 1
++#if 1
+ { "fakeinit", no_argument, 0, CMD_INITPID }, // compatibility
+-#endif
++#endif
+ { 0,0,0,0 },
+ };
+
+@@ -205,7 +206,7 @@
+ {
+ int fd;
+ struct sockaddr_un addr;
+-
++
+ if (filename==0) return -1;
+
+ ENSC_INIT_UNIX_SOCK(addr, filename);
+@@ -237,7 +238,7 @@
+ doExternalSync(int fd, char const *msg)
+ {
+ char c;
+-
++
+ if (fd==-1) return;
+
+ if (msg) EsendAll(fd, msg, strlen(msg));
+@@ -256,13 +257,13 @@
+ {
+ int p[2][2];
+ pid_t pid = initSync(p, args->do_disconnect);
+-
++
+ if (pid==0) {
+ xid_t xid;
+ int ext_sync_fd = connectExternalSync(args->sync_sock);
+
+- doSyncStage0(p, args->do_disconnect);
+-
++ doSyncStage0(p, args->do_disconnect);
++
+ if (args->do_create) {
+ xid = vc_ctx_create(args->xid, NULL);
+ if (xid==VC_NOCTX) {
+@@ -378,7 +379,7 @@
+ }
+
+ assert(args->do_disconnect);
+-
++
+ waitOnSync(pid, p, args->xid!=VC_DYNAMIC_XID && args->do_migrate);
+ return EXIT_SUCCESS;
+ }
+@@ -430,11 +431,11 @@
+ .personality_flags = 0,
+ .sync_msg = "ok",
+ };
+-
++
+ while (1) {
+ int c = getopt_long(argc, argv, "+", CMDLINE_OPTIONS, 0);
+ if (c==-1) break;
+-
++
+ switch (c) {
+ case CMD_HELP : showHelp(1, argv[0], 0);
+ case CMD_VERSION : showVersion();
+@@ -474,10 +475,10 @@
+ }
+
+ signal(SIGCHLD, SIG_DFL);
+-
++
+ if (args.do_migrateself)
+ args.xid = Evc_get_task_xid(0);
+-
++
+ if (!args.do_create && !args.do_migrate)
+ WRITE_MSG(2, "Neither '--create' nor '--migrate' specified; try '--help' for more information\n");
+ else if (args.do_create && args.do_migrate)
+Index: src/vserver-stat.c
+===================================================================
+--- src/vserver-stat.c (revision 2883)
++++ src/vserver-stat.c (revision 2902)
+@@ -116,7 +116,7 @@
+ WRITE_STR(1, cmd);
+ WRITE_MSG(1,
+ "\n"
+- "Show informations about all the active context.\n\n"
++ "Show information about all active contexts.\n\n"
+ " CTX# Context number\n"
+ " #0 = root context\n"
+ " #1 = monitoring context\n"
+Index: scripts/vserver.suexec
+===================================================================
+--- scripts/vserver.suexec (revision 2883)
++++ scripts/vserver.suexec (revision 2902)
+@@ -40,7 +40,7 @@
+ "${CHBIND_CMD[@]}" \
+ $_EXEC_ULIMIT "$VSERVER_DIR/ulimits" \
+ ${USE_VNAMESPACE:+$_VNAMESPACE --enter "$S_CONTEXT" -- } \
+- $_VSPACE --enter "$S_CONTEXT" "${OPTS_VSPACE[@]}" -- \
++ $_VSPACE --enter "$S_CONTEXT" "${OPTS_VSPACE[@]}" "${OPTS_VSPACE_SHARED[@]}" -- \
+ $_VTAG --migrate "${OPTS_VTAG_ENTER[@]}" --silent -- \
+ $_VCONTEXT $SILENT_OPT --migrate $OPT_VCONTEXT_CHROOT \
+ --xid "$S_CONTEXT" --uid "$user" "${OPTS_VCONTEXT_ENTER[@]}" -- \
+Index: scripts/vserver.stop
+===================================================================
+--- scripts/vserver.stop (revision 2883)
++++ scripts/vserver.stop (revision 2902)
+@@ -83,7 +83,7 @@
+ "${IONICE_CMD[@]}" \
+ "${NICE_CMD[@]}" \
+ "${CHBIND_CMD[@]}" \
+- "$_VSPACE" --enter "$S_CONTEXT" "${OPTS_VSPACE[@]}" -- \
++ "$_VSPACE" --enter "$S_CONTEXT" "${OPTS_VSPACE[@]}" "${OPTS_VSPACE_SHARED[@]}" -- \
+ "$_VTAG" --migrate "${OPTS_VTAG_ENTER[@]}" --silent -- \
+ $_VCONTEXT $SILENT_OPT --migrate $OPT_VCONTEXT_CHROOT --xid "$S_CONTEXT" -- \
+ "${INITCMD_STOP[@]}" || fail=1
+Index: scripts/vserver.start
+===================================================================
+--- scripts/vserver.start (revision 2883)
++++ scripts/vserver.start (revision 2902)
+@@ -136,6 +136,7 @@
+ if $_VSERVER_INFO - FEATURE migrate; then
+ ${IONICE_CMD[@]} \
+ ${NICE_CMD[@]} \
++ "${VSPACE_SHARED_CMD[@]}" \
+ "${CHBIND_CMD[@]}" \
+ $_EXEC_ULIMIT "$VSERVER_DIR"/ulimits \
+ $_VTAG --create "${OPTS_VTAG_CREATE[@]}" --silent -- \
+@@ -143,7 +144,7 @@
+ $_VCONTEXT --create "${OPTS_VCONTEXT_CREATE[@]}" -- \
+ ${OPTION_STRACE:+$_STRACE -fF -o /tmp/vserver-start.$$} \
+ ${USE_VNAMESPACE:+$_VNAMESPACE --set -- } \
+- $_VSPACE --set "${OPTS_VSPACE[@]}" -- \
++ $_VSPACE --set "${OPTS_VSPACE[@]}" "${OPTS_VSPACE_SHARED[@]}" -- \
+ $_EXEC_REMOUNT /proc /sys -- \
+ $_VLIMIT --dir "$VSERVER_DIR"/rlimits --missingok -- \
+ $_VSCHED --xid self --force "${OPTS_VSCHED[@]}" -- \
+Index: scripts/vserver.functions
+===================================================================
+--- scripts/vserver.functions (revision 2883)
++++ scripts/vserver.functions (revision 2902)
+@@ -49,6 +49,8 @@
+ declare -a OPTS_VTAG_ENTER=()
+ declare -a OPTS_VMEMCTRL=()
+ declare -a OPTS_VSPACE=( --default )
++declare -a OPTS_VSPACE_SHARED=()
++declare -a VSPACE_SHARED_CMD=()
+
+ declare -a STOPCMD_PREPARE=()
+
+@@ -110,6 +112,12 @@
+
+ test -n "$_HAVE_INTERFACE_OPTIONS" || _generateInterfaceOptions "$vdir"
+
++ if test -e "$vdir"/noncontext -o
++ \( -e "$vdir"/spaces/net -a ! -e "$vdir"/ncontext \); then
++ _HAVE_CHBIND_OPTIONS=1
++ return 0
++ fi
++
+ local f="$vdir"/interfaces/bcast
+ getFileValue bcast "$f"
+ f="$vdir"/interfaces/lback
+@@ -787,17 +795,23 @@
+ {
+ local vdir="$1"
+ local d="$vdir"/spaces
++ local shared
++ local space
+
+- ( test ! -e "$d"/pid ) || \
+- OPTS_VSPACE=( "${OPTS_VSPACE[@]}" --pid )
++ for space in pid net; do
++ if test -e "$d"/$space; then
++ getFileValue shared "$d"/$space || shared=""
++ if test -z "$shared"; then
++ OPTS_VSPACE=( "${OPTS_VSPACE[@]}" --$space )
++ elif test "$shared" = "0"; then
++ : # Do nothing
++ else
++ OPTS_VSPACE_SHARED=( "${OPTS_VSPACE_SHARED[@]}" --$space )
++ VSPACE_SHARED_CMD=( "${VSPACE_SHARED_CMD[@]}" $_VSPACE --enter "$shared" --$space -- )
++ fi
++ fi
++ done
+
+- test ! -e "$d"/net || {
+- OPTS_VSPACE=( "${OPTS_VSPACE[@]}" --net )
+- # network context and namespace don't make much sense
+- _HAVE_CHBIND_OPTIONS=1
+- CHBIND_CMD=()
+- }
+-
+ local mask
+ getFileValue mask "$d"/mask || \
+ OPTS_VSPACE=( "${OPTS_VSPACE[@]}" --mask "$mask" )
+Index: configure.ac
+===================================================================
+--- configure.ac (revision 2883)
++++ configure.ac (revision 2902)
+@@ -1,27 +1,27 @@
+ dnl $Id$
+
+ dnl Copyright (C) 2003,2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+-dnl
++dnl
+ dnl This program is free software; you can redistribute it and/or modify
+ dnl it under the terms of the GNU General Public License as published by
+ dnl the Free Software Foundation; either version 2, or (at your option)
+ dnl any later version.
+-dnl
++dnl
+ dnl This program is distributed in the hope that it will be useful,
+ dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+ dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ dnl GNU General Public License for more details.
+-dnl
++dnl
+ dnl You should have received a copy of the GNU General Public License
+ dnl along with this program; if not, write to the Free Software
+ dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+-dnl
+-dnl
++dnl
++dnl
+ dnl As a special exception to the GNU General Public License, if you
+ dnl distribute this file as part of a program that contains a configuration
+ dnl script generated by Autoconf, you may include it under the same
+ dnl distribution terms that you use for the rest of that program.
+-dnl
++dnl
+
+ AC_PREREQ(2.57)
+ AC_INIT(util-vserver, 0.30.215, vserver@list.linux-vserver.org)
+@@ -78,7 +78,7 @@
+
+ if test x"$prefix" = x/; then
+ prefix=
+-fi
++fi
+
+ ENSC_CHECK_CC_FLAG([-std=c99 -Wall -pedantic -W])
+ ENSC_CHECK_CXX_FLAG([-ansi -Wall -pedantic -W -fmessage-length=0])
+@@ -206,8 +206,8 @@
+ [AC_HELP_STRING([--disable-internal-headers],
+ [use vserver specific headers from the kernel instead of the shipped versions (default: no)])],
+ [case "$enableval" in
+- (yes|no) ;;
+- (*) AC_MSG_ERROR(['$i' is not a supported value for '--disable-internal-headers']);;
++ (yes|no) ;;
++ (*) AC_MSG_ERROR(['$i' is not a supported value for '--disable-internal-headers']);;
+ esac],
+ [enable_internal_headers=yes])
+
+@@ -258,14 +258,14 @@
+ enable_api_oldproc=${enable_api_oldproc:-1}
+ enable_api_olduts=${enable_api_olduts:-1}
+ ;;
+- (v11) AC_DEFINE(VC_ENABLE_API_V11, 1)
++ (v11) AC_DEFINE(VC_ENABLE_API_V11, 1)
+ enable_api_oldproc=${enable_api_oldproc:-1}
+ enable_api_olduts=${enable_api_olduts:-1}
+ ;;
+ (fscompat) AC_DEFINE(VC_ENABLE_API_FSCOMPAT, 1);;
+ (v13obs) AC_DEFINE(VC_ENABLE_API_V13OBS, 1)
+ AC_DEFINE(VC_ENABLE_API_V13, 1);;
+- (v13) AC_DEFINE(VC_ENABLE_API_V13, 1);;
++ (v13) AC_DEFINE(VC_ENABLE_API_V13, 1);;
+ (net) AC_DEFINE(VC_ENABLE_API_NET, 1);;
+ (v21) AC_DEFINE(VC_ENABLE_API_V21, 1);;
+ (v22) AC_DEFINE(VC_ENABLE_API_V22, 1);;
+@@ -340,7 +340,7 @@
+ AC_CHECK_HEADER([beecrypt/beecrypt.h], [ : ],
+ [ ensc_have_beecrypt=no ])
+ fi
+-
++
+ if test x"$ensc_have_beecrypt" = xyes; then
+ AC_CHECK_LIB(beecrypt, hashFunctionContextInit, [ : ],
+ [ ensc_have_beecrypt=no ])
+@@ -532,7 +532,7 @@
+ crypto api: $ensc_crypto_api
+ python bindings: $ensc_have_python
+ use library versioning: $ensc_have_versioning
+-
++
+ Paths:
+ prefix: $prefix
+ sysconf-Directory: $sysconfdir
+Index: lib/syscall_setiattr-fscompat.hc
+===================================================================
+--- lib/syscall_setiattr-fscompat.hc (revision 2883)
++++ lib/syscall_setiattr-fscompat.hc (revision 2902)
+@@ -1,16 +1,16 @@
+ // $Id$ --*- c -*--
+
+ // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+-//
++//
+ // This program is free software; you can redistribute it and/or modify
+ // it under the terms of the GNU General Public License as published by
+ // the Free Software Foundation; version 2 of the License.
+-//
++//
+ // This program is distributed in the hope that it will be useful,
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ // GNU General Public License for more details.
+-//
++//
+ // You should have received a copy of the GNU General Public License
+ // along with this program; if not, write to the Free Software
+ // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+@@ -26,6 +26,7 @@
+ #include "ioctl-getxflg.hc"
+
+ #include <fcntl.h>
++#include <sys/stat.h>
+
+ static inline ALWAYSINLINE int
+ vc_set_iattr_fscompat(char const *filename,
+@@ -38,7 +39,7 @@
+
+ fd = open(filename, O_RDONLY|O_NONBLOCK);
+ if (fd==-1) return -1;
+-
++
+ stat_rc = fstat(fd, &st);
+ if (stat_rc==-1) goto err;
+
+@@ -60,7 +61,7 @@
+ if (vc_X_set_ext2flags(fd, 0, VC_IMMUTABLE_LINK_FL)==-1 ||
+ fchmod(fd, 0500))
+ goto err;
+- }
++ }
+ }
+
+ if ( (mask&VC_IATTR_XID) &&
+Index: lib/syscall_getiattr-fscompat.hc
+===================================================================
+--- lib/syscall_getiattr-fscompat.hc (revision 2883)
++++ lib/syscall_getiattr-fscompat.hc (revision 2902)
+@@ -1,16 +1,16 @@
+ // $Id$ --*- c -*--
+
+ // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+-//
++//
+ // This program is free software; you can redistribute it and/or modify
+ // it under the terms of the GNU General Public License as published by
+ // the Free Software Foundation; version 2 of the License.
+-//
++//
+ // This program is distributed in the hope that it will be useful,
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ // GNU General Public License for more details.
+-//
++//
+ // You should have received a copy of the GNU General Public License
+ // along with this program; if not, write to the Free Software
+ // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+@@ -25,6 +25,9 @@
+ #include "ioctl-getxflg.hc"
+
+ #include <fcntl.h>
++#include <unistd.h>
++#include <sys/stat.h>
++
+ static inline ALWAYSINLINE int
+ vc_get_iattr_fscompat(char const *filename,
+ xid_t * /*@null@*/ xid,
+@@ -65,7 +68,7 @@
+
+ if ( (old_mask&VC_IATTR_BARRIER) && S_ISDIR(st.st_mode)) {
+ long ext2_flags;
+-
++
+ *mask |= VC_IATTR_BARRIER;
+ if ((st.st_mode&0777)==0 &&
+ vc_X_get_ext2flags(fd, &ext2_flags)!=-1 &&
+@@ -91,5 +94,5 @@
+ close(fd);
+ errno = old_errno;
+ return -1;
+- }
++ }
+ }
+Index: contrib/make-manifest
+===================================================================
+--- contrib/make-manifest (revision 2883)
++++ contrib/make-manifest (revision 2902)
+@@ -21,7 +21,7 @@
+ dest=$2
+ data=$3
+
+-for i in $name-{core,devel,base,build,legacy,lib,sysv}.list; do
++for i in $name-{core,devel,base,build,legacy,lib,sysv,python}.list; do
+ echo '%defattr(-,root,root,-)' >$i
+ done
+
+Index: contrib/manifest.dat.pathsubst
+===================================================================
+--- contrib/manifest.dat.pathsubst (revision 2883)
++++ contrib/manifest.dat.pathsubst (revision 2902)
+@@ -159,3 +159,4 @@
+ legacy @CONFIG@ @INITRDDIR@/vservers-legacy
+ legacy @CONFIG_NOREPLACE@ @SYSCONFDIR@/vservers.conf
+ build @CONFIG_NOREPLACE@ @CONFDIR@/.distributions/*/apt/sources.list
++@HAVE_PYTHON_TRUE@python @PYEXECDIR@/*
+Index: contrib/make-deb-manifest
+===================================================================
+--- contrib/make-deb-manifest (revision 0)
++++ contrib/make-deb-manifest (revision 2902)
+@@ -0,0 +1,63 @@
++#!/bin/bash
++
++# Copyright (C) 2010 Daniel Hokka Zakrisson <daniel@hozac.com>
++#
++# This program is free software; you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation; version 2 of the License.
++#
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++# GNU General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program; if not, write to the Free Software
++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++
++## Usage: make-deb-manifest <basename> <destdir> <datfile>
++
++name=$2/$1
++dest=$2
++data=$3
++
++getname() {
++ if test $1 = "lib"; then
++ fullname="$dest/libvserver0"
++ elif test $1 = "devel"; then
++ fullname="$dest/libvserver0-dev"
++ elif test $1 = "base"; then
++ fullname="$name"
++ else
++ fullname="$name-$1"
++ fi
++}
++
++for i in {core,build,legacy,sysv,lib,devel,base,python}; do
++ getname $i
++ echo -n >${fullname}.install
++ rm -f ${fullname}.conffiles
++done
++
++DESTDIR=debian/tmp
++while read style file; do
++ test "$file" || continue
++ case "$style" in
++ (\#*) continue;;
++ esac
++ getname $style
++ set -o noglob
++ set -- $file
++ set +o noglob
++ if test "$2"; then
++ file="$2"
++ for i in ${DESTDIR}$file; do
++ test "${file#/etc/}" != "$file" && continue
++ echo "${i#${DESTDIR}}" >>${fullname}.conffiles
++ done
++ fi
++ for i in ${DESTDIR}$file; do
++ i=${i#${DESTDIR}}
++ echo "$i ${i%/*}" >>${fullname}.install
++ done
++done < $data
+
+Property changes on: contrib/make-deb-manifest
+___________________________________________________________________
+Name: svn:executable
+ + *
+
+Index: contrib/Makefile-files
+===================================================================
+--- contrib/Makefile-files (revision 2883)
++++ contrib/Makefile-files (revision 2902)
+@@ -37,6 +37,7 @@
+ contrib/yum-3.2.0-chroot.patch \
+ contrib/yum-3.2.1-chroot.patch \
+ contrib/yum-3.2.4-chroot.patch \
+- contrib/make-manifest
++ contrib/make-manifest \
++ contrib/make-deb-manifest
+
+ contrib/manifest.dat: contrib/.manifest.dat.pathsubst.stamp
+Index: lib_internal/matchlist-initrefserverlist.c
+===================================================================
+--- lib_internal/matchlist-initrefserverlist.c (revision 2883)
++++ lib_internal/matchlist-initrefserverlist.c (revision 2902)
+@@ -1,16 +1,16 @@
+ // $Id$ --*- c -*--
+
+ // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+-//
++//
+ // This program is free software; you can redistribute it and/or modify
+ // it under the terms of the GNU General Public License as published by
+ // the Free Software Foundation; version 2 of the License.
+-//
++//
+ // This program is distributed in the hope that it will be useful,
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ // GNU General Public License for more details.
+-//
++//
+ // You should have received a copy of the GNU General Public License
+ // along with this program; if not, write to the Free Software
+ // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+@@ -26,6 +26,7 @@
+ #include <dirent.h>
+ #include <string.h>
+ #include <fcntl.h>
++#include <sys/stat.h>
+
+ #define ENSC_WRAPPERS_FCNTL 1
+ #define ENSC_WRAPPERS_UNISTD 1
+@@ -45,7 +46,7 @@
+ int cur_dir = Eopen(".", O_RDONLY, 0);
+ struct dirent **entries;
+ int count,i;
+-
++
+ Echdir(dir);
+ count = scandir(".", &entries, selectRefserver, alphasort);
+ if (count==-1) {
+@@ -61,7 +62,7 @@
+ *lst = Emalloc(sizeof(struct MatchList) * count);
+ *cnt = count;
+ for (i=0; i<count; ++i) {
+- char const *tmp = entries[i]->d_name;
++ char const *tmp = entries[i]->d_name;
+ size_t l = strlen(tmp);
+ char vname[sizeof("./") + l];
+ struct MatchVserverInfo vserver = {
+@@ -71,7 +72,7 @@
+
+ memcpy(vname, "./", 2);
+ memcpy(vname+2, tmp, l+1);
+-
++
+ if (!MatchVserverInfo_init(&vserver)) {
+ WRITE_MSG(2, "failed to initialize unification of reference vserver\n");
+ exit(1);
+Index: util-vserver.spec.in
+===================================================================
+--- util-vserver.spec.in (revision 2883)
++++ util-vserver.spec.in (revision 2902)
+@@ -395,9 +395,10 @@
+ %{!?_without_doc:%doc lib/apidoc/html}
+
+
+-%files python
++%if 0%{!?_without_python:1}
++%files python -f %name-python.list
+ %defattr(-,root,root,-)
+-%{!?_without_python:%{python_sitearch}/*}
++%endif
+
+
+ %changelog
+Index: Makefile.am
+===================================================================
+--- Makefile.am (revision 2883)
++++ Makefile.am (revision 2902)
+@@ -143,6 +143,9 @@
+ s!@'ENSC_HAVE_C99_COMPILER_FALSE'@!\@ENSC_HAVE_C99_COMPILER_FALSE@ !g; \
+ s!@'ENSC_HAVE_CXX_COMPILER_TRUE'@!\@ENSC_HAVE_CXX_COMPILER_TRUE@ !g; \
+ s!@'ENSC_HAVE_CXX_COMPILER_FALSE'@!\@ENSC_HAVE_CXX_COMPILER_FALSE@ !g; \
++ s!@'HAVE_PYTHON_TRUE'@!\@HAVE_PYTHON_TRUE@ !g; \
++ s!@'HAVE_PYTHON_FALSE'@!\@HAVE_PYTHON_FALSE@ !g; \
++ s!@'PYEXECDIR'@!$(pyexecdir)!g; \
+ $(ENSC_PATHPROG_SED)
+
+ pathconfig.h: .pathconfig.h.pathsubst.stamp
+@@ -233,6 +236,7 @@
+ if HAVE_PYTHON
+ include $(top_srcdir)/python/Makefile-files
+ endif
++include $(top_srcdir)/debian/Makefile-files
+
+ include $(top_srcdir)/m4/gpgsig.am
+ include $(top_srcdir)/m4/validate.am
+Index: ensc_vector/testsuite/Makefile-files
+===================================================================
+--- ensc_vector/testsuite/Makefile-files (revision 2883)
++++ ensc_vector/testsuite/Makefile-files (revision 2902)
+@@ -1,16 +1,16 @@
+ ## $Id$ --*- makefile -*--
+
+ ## Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+-##
++##
+ ## This program is free software; you can redistribute it and/or modify
+ ## it under the terms of the GNU General Public License as published by
+ ## the Free Software Foundation; version 2 of the License.
+-##
++##
+ ## This program is distributed in the hope that it will be useful,
+ ## but WITHOUT ANY WARRANTY; without even the implied warranty of
+ ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ ## GNU General Public License for more details.
+-##
++##
+ ## You should have received a copy of the GNU General Public License
+ ## along with this program; if not, write to the Free Software
+ ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+@@ -21,6 +21,9 @@
+ TESTS += ensc_vector/testsuite/test1 \
+ ensc_vector/testsuite/test2
+
++DIETPROGS += ensc_vector/testsuite/test1 \
++ ensc_vector/testsuite/test2
++
+ ensc_vector_testsuite_test1_SOURCES = ensc_vector/testsuite/test1.c
+ ensc_vector_testsuite_test1_LDADD = $(LIBENSCVECTOR)
+