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)