sync with upstream
authorS.Çağlar Onur <caglar@cs.princeton.edu>
Thu, 15 Jul 2010 20:33:23 +0000 (16:33 -0400)
committerS.Çağlar Onur <caglar@cs.princeton.edu>
Thu, 15 Jul 2010 20:33:23 +0000 (16:33 -0400)
rev2883to2896.patch [new file with mode: 0644]
util-vserver.spec

diff --git a/rev2883to2896.patch b/rev2883to2896.patch
new file mode 100644 (file)
index 0000000..7d4933d
--- /dev/null
@@ -0,0 +1,663 @@
+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)
index 5c96747..1b6305a 100644 (file)
@@ -39,6 +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
 BuildRoot:     %_tmppath/%name-%version-%release-root
 Requires:      init(%name)
 Requires:      %name-core = %version-%release
@@ -198,6 +199,7 @@ Linux-VServer API from Python.
 %setup -q -n %name-%fullver
 %patch1 -p0
 %patch2 -p1
+%patch2 -p0
 autoreconf -fi
 
 %build