From bf8b6ccfc5e6ea195bafadf193a53fb2885b323a Mon Sep 17 00:00:00 2001 From: =?utf8?q?S=2E=C3=87a=C4=9Flar=20Onur?= Date: Wed, 28 Jul 2010 17:03:36 -0400 Subject: [PATCH] re-sync with Daniel's version --- rev2883to2896.patch | 663 ----------------------- rev2883to2902.patch | 1241 +++++++++++++++++++++++++++++++++++++++++++ util-vserver.spec | 2 +- 3 files changed, 1242 insertions(+), 664 deletions(-) delete mode 100644 rev2883to2896.patch create mode 100644 rev2883to2902.patch diff --git a/rev2883to2896.patch b/rev2883to2896.patch deleted file mode 100644 index 7d4933d..0000000 --- a/rev2883to2896.patch +++ /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 --// -+// - // 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 - #include - #include -+#include - #include - - #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> 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 --## -+## - ## 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 --// -+// - // 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 --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 --// -+// - // 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 -+#include - - 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 --// -+// - // 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 -+#include -+#include -+ - 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 --// -+// - // 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 - #include - #include -+#include - - #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; id_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 --## -+## - ## 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 index 0000000..2c1dc3d --- /dev/null +++ b/rev2883to2902.patch @@ -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 ++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 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 ++ Daniel Hokka Zakrisson ++ ++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 ++ ++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 @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 ++## ++## 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 +-// ++// + // 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 + #include + #include ++#include + #include + + #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> 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 +-## ++## + ## 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 +-// ++// + // 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 +-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 +-// ++// + // 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 ++#include + + 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 +-// ++// + // 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 ++#include ++#include ++ + 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 ++# ++# 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 ++ ++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 +-// ++// + // 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 + #include + #include ++#include + + #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; id_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 +-## ++## + ## 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/util-vserver.spec b/util-vserver.spec index e6fe41b..be1bb94 100644 --- a/util-vserver.spec +++ b/util-vserver.spec @@ -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 -- 2.43.0