re-sync with Daniel's version
authorS.Çağlar Onur <caglar@cs.princeton.edu>
Wed, 28 Jul 2010 21:03:36 +0000 (17:03 -0400)
committerS.Çağlar Onur <caglar@cs.princeton.edu>
Wed, 28 Jul 2010 21:03:36 +0000 (17:03 -0400)
rev2883to2896.patch [deleted file]
rev2883to2902.patch [new file with mode: 0644]
util-vserver.spec

diff --git a/rev2883to2896.patch b/rev2883to2896.patch
deleted file mode 100644 (file)
index 7d4933d..0000000
+++ /dev/null
@@ -1,663 +0,0 @@
-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)
diff --git a/rev2883to2902.patch b/rev2883to2902.patch
new file mode 100644 (file)
index 0000000..2c1dc3d
--- /dev/null
@@ -0,0 +1,1241 @@
+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)
index e6fe41b..be1bb94 100644 (file)
@@ -39,7 +39,7 @@ Source0:      http://ftp.linux-vserver.org/pub/utils/util-vserver/%name-%fullver.tar.
 Source1:       fstab
 Patch1:                f12.patch
 Patch2:                f13.patch
-Patch3:         rev2883to2896.patch
+Patch3:         rev2883to2902.patch
 BuildRoot:     %_tmppath/%name-%version-%release-root
 Requires:      init(%name)
 Requires:      %name-core = %version-%release