From 9a2ee3bdab6975de9d6643cf423f5c4894694e88 Mon Sep 17 00:00:00 2001 From: =?utf8?q?S=2E=C3=87a=C4=9Flar=20Onur?= Date: Thu, 12 Aug 2010 14:40:14 -0400 Subject: [PATCH] stop fighting with patches and start to use svn exported tarball --- Makefile | 4 +- rev2883to2908.patch | 1100 ------------------------------------------- util-vserver.spec | 9 +- 3 files changed, 6 insertions(+), 1107 deletions(-) delete mode 100644 rev2883to2908.patch diff --git a/Makefile b/Makefile index 4fda659..d89b966 100644 --- a/Makefile +++ b/Makefile @@ -5,8 +5,8 @@ WEBFETCH := wget SHA1SUM := sha1sum ALL += util-vserver -util-vserver-URL := http://build.planet-lab.org/third-party/util-vserver-0.30.216-pre2883.tar.bz2 -util-vserver-SHA1SUM := 232282d9093adecb5b365cc8afb669fd2910c5f9 +util-vserver-URL := http://build.planet-lab.org/third-party/util-vserver-0.30.216-pre2912.tar.bz2 +util-vserver-SHA1SUM := e0751e8ecb4b8661b1cadd294bfb6e68a2221d93 util-vserver := $(notdir $(util-vserver-URL)) all: $(ALL) diff --git a/rev2883to2908.patch b/rev2883to2908.patch deleted file mode 100644 index 1c95260..0000000 --- a/rev2883to2908.patch +++ /dev/null @@ -1,1100 +0,0 @@ -Index: python/Makefile-files -=================================================================== ---- python/Makefile-files (revision 2883) -+++ python/Makefile-files (revision 2908) -@@ -17,6 +17,7 @@ - ## 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 2908) -@@ -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, libvserver0, 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}, libvserver0, 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}, libvserver0, ${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 2908) -@@ -0,0 +1 @@ -+7 -Index: debian/util-vserver-build.postinst -=================================================================== ---- debian/util-vserver-build.postinst (revision 0) -+++ debian/util-vserver-build.postinst (revision 2908) -@@ -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 2908) -@@ -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 2908) -@@ -0,0 +1,2 @@ -+NEWS -+README -Index: debian/util-vserver.postinst -=================================================================== ---- debian/util-vserver.postinst (revision 0) -+++ debian/util-vserver.postinst (revision 2908) -@@ -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 2908) -@@ -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 2908) -@@ -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 2908) -@@ -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 2908) -@@ -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 2908) -@@ -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 2908) -@@ -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 2908) -@@ -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 2908) -@@ -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 2908) -@@ -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 2908) -@@ -24,6 +24,7 @@ - #include - #include - #include -+#include - #include - - #define ENSC_TESTSUITE -Index: src/testsuite/Makefile-files -=================================================================== ---- src/testsuite/Makefile-files (revision 2883) -+++ src/testsuite/Makefile-files (revision 2908) -@@ -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 2908) -@@ -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" -Index: src/vserver-stat.c -=================================================================== ---- src/vserver-stat.c (revision 2883) -+++ src/vserver-stat.c (revision 2908) -@@ -24,6 +24,7 @@ - #include "vserver.h" - #include "util.h" - #include "internal.h" -+#include "pathconfig.h" - - #include - -@@ -116,7 +117,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" -@@ -279,6 +280,152 @@ - } - } - -+static void -+registerXidCgroups(struct Vector *vec, struct process_info *process) -+{ -+ xid_t xid = (xid_t) process->s_context; -+ struct XidData *res; -+ -+ switch (vc_getXIDType(xid)) { -+ case vcTYPE_STATIC: -+ case vcTYPE_DYNAMIC: -+ break; -+ default: -+ return; -+ } -+ -+ res = Vector_search(vec, &xid, cmpData); -+ if (res == 0) { -+ struct vc_rlimit_stat limit; -+ struct vc_virt_stat vstat; -+ struct vc_sched_info sched; -+ int cpu; -+ char vhi_name[65], -+ filename[128], -+ cgroup[65], -+ buf[30]; -+ int fd; -+ ssize_t cgroup_len; -+ unsigned long long rss; -+ char *endptr; -+ size_t len; -+ -+ if (vc_virt_stat(xid, &vstat) == -1) { -+ perror("vc_virt_stat()"); -+ return; -+ } -+ if (vc_rlimit_stat(xid, RLIMIT_NPROC, &limit) == -1) { -+ perror("vc_rlimit_stat(RLIMIT_NRPOC)"); -+ return; -+ } -+ if (vc_get_vhi_name(xid, vcVHI_CONTEXT, vhi_name, sizeof(vhi_name)) == -1) { -+ perror("vc_get_vhi_name(CONTEXT)"); -+ return; -+ } -+ -+ if ((fd = open(DEFAULTCONFDIR "/cgroup/mnt", O_RDONLY)) == -1) { -+ strcpy(cgroup, "/dev/cgroup/"); -+ cgroup_len = sizeof("/dev/cgroup"); -+ } -+ else { -+ cgroup_len = read(fd, cgroup, sizeof(cgroup)); -+ if (cgroup_len == -1) { -+ perror("read(cgroup/mnt)"); -+ return; -+ } -+ close(fd); -+ cgroup[cgroup_len] = '/'; -+ cgroup_len += 1; -+ cgroup[cgroup_len] = 0; -+ } -+ -+ len = strlen(vhi_name); -+ if ((len + sizeof("/cgroup/name")) >= sizeof(filename)) { -+ WRITE_MSG(2, "too long context name: "); -+ WRITE_STR(2, vhi_name); -+ WRITE_MSG(2, "\n"); -+ return; -+ } -+ strcpy(filename, vhi_name); -+ strcpy(filename + len, "/cgroup/name"); -+ -+ if ((fd = open(filename, O_RDONLY)) == -1) { -+ char *dir = strrchr(vhi_name, '/'); -+ if (dir == NULL) { -+ WRITE_MSG(2, "invalid context name: "); -+ WRITE_STR(2, dir); -+ WRITE_MSG(2, "\n"); -+ return; -+ } -+ len = strlen(dir); -+ if ((len + cgroup_len) >= sizeof(cgroup)) { -+ WRITE_MSG(2, "cgroup name too long: "); -+ WRITE_STR(2, dir); -+ WRITE_MSG(2, "\n"); -+ return; -+ } -+ strcpy(cgroup + cgroup_len, dir); -+ cgroup_len += len; -+ } -+ else { -+ ssize_t ret; -+ ret = read(fd, cgroup + cgroup_len, sizeof(cgroup) - cgroup_len); -+ if (ret == -1) { -+ perror("read(cgroup/name)"); -+ return; -+ } -+ cgroup_len += ret; -+ close(fd); -+ } -+ -+ if ((cgroup_len + sizeof("/memory.usage_in_bytes")) > sizeof(filename)) { -+ WRITE_MSG(2, "cgroup name too long: "); -+ WRITE_STR(2, cgroup); -+ WRITE_MSG(2, "\n"); -+ return; -+ } -+ strcpy(filename, cgroup); -+ strcpy(filename + cgroup_len, "/memory.usage_in_bytes"); -+ -+ if ((fd = open(filename, O_RDONLY)) == -1) { -+ perror("open(memory.usage_in_bytes)"); -+ return; -+ } -+ if (read(fd, buf, sizeof(buf)) == -1) { -+ perror("read(memory.usage_in_bytes)"); -+ return; -+ } -+ close(fd); -+ if ((rss = strtoull(buf, &endptr, 0)) == ULLONG_MAX || -+ (*endptr != '\n' && *endptr != '\0')) { -+ perror("strtoull(memory.usage_in_bytes)"); -+ return; -+ } -+ -+ res = Vector_insert(vec, &xid, cmpData); -+ res->xid = xid; -+ -+ res->process_count = limit.value; -+ res->VmRSS_total = rss / 4096; -+ res->start_time_oldest= getUptime() - vstat.uptime/1000000; -+ -+ res->utime_total = 0; -+ res->stime_total = 0; -+ // XXX: arbitrary CPU limit. -+ for (cpu = 0; cpu < 1024; cpu++) { -+ sched.cpu_id = cpu; -+ sched.bucket_id = 0; -+ if (vc_sched_info(xid, &sched) == -1) -+ break; -+ -+ res->utime_total += sched.user_msec; -+ res->stime_total += sched.sys_msec; -+ } -+ } -+ -+ res->VmSize_total += process->VmSize; -+} -+ - static inline uint64_t - toMsec(uint64_t v) - { -@@ -615,7 +762,7 @@ - - Vector_init(&xid_data, sizeof(struct XidData)); - -- if (vc_isSupported(vcFEATURE_VSTAT)) { -+ if (vc_isSupported(vcFEATURE_VSTAT) && !vc_isSupported(vcFEATURE_MEMCG)) { - unsigned long xid; - Echdir(PROC_VIRT_DIR_NAME); - proc_dir = Eopendir("."); -@@ -628,6 +775,8 @@ - closedir(proc_dir); - } - else { -+ void (*handler)(struct Vector *vec, struct process_info *process); -+ - my_pid = getpid(); - - if (!switchToWatchXid(&errptr)) { -@@ -641,6 +790,11 @@ - " procfs-security. Please read the FAQ for more details\n" - " http://linux-vserver.org/Proc-Security\n"); - -+ if (vc_isSupported(vcFEATURE_MEMCG)) -+ handler = registerXidCgroups; -+ else -+ handler = registerXid; -+ - Echdir(PROC_DIR_NAME); - proc_dir = Eopendir("."); - while ((dir_entry = readdir(proc_dir)) != NULL) -@@ -652,7 +806,7 @@ - if (atoi(dir_entry->d_name) != my_pid) { - struct process_info * info = get_process_info(dir_entry->d_name); - if (info) -- registerXid(&xid_data, info); -+ handler(&xid_data, info); - } - } - closedir(proc_dir); -Index: scripts/vserver.suexec -=================================================================== ---- scripts/vserver.suexec (revision 2883) -+++ scripts/vserver.suexec (revision 2908) -@@ -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 2908) -@@ -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 2908) -@@ -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 2908) -@@ -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" ) -@@ -1461,8 +1475,12 @@ - { - hasCgroup || return 1 - test -d "$CGROUP_MNT" || return 1 -+ memcg="" -+ if $_VSERVER_INFO - FEATURE memcg; then -+ memcg=1 -+ fi - test -d "$1/cgroup" -o \ -- \( -d "$__CONFDIR/.defaults/cgroup" -a \ -+ \( \( -d "$__CONFDIR/.defaults/cgroup" -o -n "$memcg" \) -a \ - ! -e "$1/nocgroup" \) - } - -Index: configure.ac -=================================================================== ---- configure.ac (revision 2883) -+++ configure.ac (revision 2908) -@@ -27,6 +27,7 @@ - AC_INIT(util-vserver, 0.30.215, vserver@list.linux-vserver.org) - AC_CONFIG_SRCDIR([src/capchroot.c]) - AC_CONFIG_HEADER([config.h]) -+AC_CONFIG_MACRO_DIR([m4]) - - AM_INIT_AUTOMAKE([1.9 gnits dist-bzip2 subdir-objects]) - AM_MAINTAINER_MODE -Index: lib/syscall_setiattr-fscompat.hc -=================================================================== ---- lib/syscall_setiattr-fscompat.hc (revision 2883) -+++ lib/syscall_setiattr-fscompat.hc (revision 2908) -@@ -26,6 +26,7 @@ - #include "ioctl-getxflg.hc" - - #include -+#include - - static inline ALWAYSINLINE int - vc_set_iattr_fscompat(char const *filename, -Index: lib/vserver.h -=================================================================== ---- lib/vserver.h (revision 2883) -+++ lib/vserver.h (revision 2908) -@@ -281,8 +281,18 @@ - - // the VCI bit values - #define VC_VCI_NO_DYNAMIC (1 << 0) -+#define VC_VCI_PROC_SECURE (1 << 4) -+#define VC_VCI_HARDCPU (1 << 5) -+#define VC_VCI_IDLELIMIT (1 << 6) -+#define VC_VCI_IDLETIME (1 << 7) -+#define VC_VCI_COWBL (1 << 8) -+#define VC_VCI_FULLCOWBL (1 << 9) - #define VC_VCI_SPACES (1 << 10) - #define VC_VCI_NETV2 (1 << 11) -+#define VC_VCI_MEMCG (1 << 12) -+#define VC_VCI_DEBUG (1 << 16) -+#define VC_VCI_HISTORY (1 << 20) -+#define VC_VCI_TAGGED (1 << 24) - #define VC_VCI_PPTAG (1 << 28) - - -@@ -980,7 +990,7 @@ - vcFEATURE_VSHELPER0, vcFEATURE_VSHELPER, vcFEATURE_VWAIT, - vcFEATURE_VNET, vcFEATURE_VSTAT, vcFEATURE_PPTAG, - vcFEATURE_PIDSPACE, vcFEATURE_SPACES, vcFEATURE_PERSISTENT, -- vcFEATURE_PIVOT_ROOT, -+ vcFEATURE_PIVOT_ROOT, vcFEATURE_MEMCG, - } - vcFeatureSet; - -Index: lib/issupported.c -=================================================================== ---- lib/issupported.c (revision 2883) -+++ lib/issupported.c (revision 2908) -@@ -50,7 +50,8 @@ - case vcFEATURE_PPTAG : return conf & VC_VCI_PPTAG; - case vcFEATURE_SPACES : return conf & VC_VCI_SPACES; - case vcFEATURE_PIVOT_ROOT : return ver >= 0x00020304; -- case vcFEATURE_PIDSPACE : return ver >= 0x00020305; -+ case vcFEATURE_PIDSPACE : return false; -+ case vcFEATURE_MEMCG : return ver >= 0x00020306 && conf & VC_VCI_MEMCG; - default : assert(false); - } - -Index: lib/syscall_getiattr-fscompat.hc -=================================================================== ---- lib/syscall_getiattr-fscompat.hc (revision 2883) -+++ lib/syscall_getiattr-fscompat.hc (revision 2908) -@@ -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, -Index: lib/issupportedstring.c -=================================================================== ---- lib/issupportedstring.c (revision 2883) -+++ lib/issupportedstring.c (revision 2908) -@@ -35,7 +35,7 @@ - DECL(MIGRATE), DECL(NAMESPACE), DECL(SCHED), DECL(VINFO), - DECL(VHI), DECL(VSHELPER0), DECL(VSHELPER), DECL(VWAIT), - DECL(VNET), DECL(VSTAT), DECL(PPTAG), DECL(PIDSPACE), -- DECL(SPACES), DECL(PERSISTENT),DECL(PIVOT_ROOT), -+ DECL(SPACES), DECL(PERSISTENT),DECL(PIVOT_ROOT),DECL(MEMCG), - }; - - bool -Index: pathconfig.h.pathsubst -=================================================================== ---- pathconfig.h.pathsubst (revision 2883) -+++ pathconfig.h.pathsubst (revision 2908) -@@ -25,6 +25,7 @@ - #define SYSCONFDIR "@SYSCONFDIR@" - #define LOCKDIR "/var/lock" - #define PKGLIBDEFAULTDIR PKGLIBDIR "/defaults" -+#define DEFAULTCONFDIR "@CONFDIR@/.defaults" - - #define DEFAULT_VSERVERDIR "@VSERVERDIR@" - #define DEFAULT_VSERVERPKGDIR "@VSERVERPKGDIR@" -Index: contrib/make-manifest -=================================================================== ---- contrib/make-manifest (revision 2883) -+++ contrib/make-manifest (revision 2908) -@@ -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 2908) -@@ -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 2908) -@@ -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 2908) -@@ -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 2908) -@@ -26,6 +26,7 @@ - #include - #include - #include -+#include - - #define ENSC_WRAPPERS_FCNTL 1 - #define ENSC_WRAPPERS_UNISTD 1 -Index: util-vserver.spec.in -=================================================================== ---- util-vserver.spec.in (revision 2883) -+++ util-vserver.spec.in (revision 2908) -@@ -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 2908) -@@ -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 2908) -@@ -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 2aec1ba..10cd530 100644 --- a/util-vserver.spec +++ b/util-vserver.spec @@ -17,7 +17,7 @@ %global _localstatedir %_var -%global fullver 0.30.216-pre2883 +%global fullver 0.30.216-pre2912 %global modulever 0.30.216 %global ver %( echo %fullver | sed 's/-.*//' ) %global subver %( s=`echo %fullver | grep -- - | sed 's/.*-/./'`; echo ${s:-.1} ) @@ -39,7 +39,6 @@ Source0: http://ftp.linux-vserver.org/pub/utils/util-vserver/%name-%fullver.tar. Source1: fstab Patch1: f12.patch Patch2: f13.patch -Patch3: rev2883to2908.patch BuildRoot: %_tmppath/%name-%version-%release-root Requires: init(%name) Requires: %name-core = %version-%release @@ -199,7 +198,6 @@ Linux-VServer API from Python. %setup -q -n %name-%fullver %patch1 -p0 %patch2 -p1 -%patch3 -p0 autoreconf -fi %build @@ -342,8 +340,9 @@ test "$1" = 0 || %_initrddir/rebootmgr condrestart >/dev/null || : %files -f %name-base.list %defattr(-,root,root,-) -%doc AUTHORS COPYING ChangeLog NEWS README THANKS -%doc doc/*.html doc/*.css +%doc AUTHORS COPYING NEWS README THANKS +#%doc AUTHORS COPYING ChangeLog NEWS README THANKS +#%doc doc/*.html doc/*.css /sbin/vshelper %dir %confdir %dir %confdefaultdir -- 2.43.0