stop fighting with patches and start to use svn exported tarball
S.Çağlar Onur [Thu, 12 Aug 2010 18:40:14 +0000 (14:40 -0400)]
Makefile
rev2883to2908.patch [deleted file]
util-vserver.spec

index 4fda659..d89b966 100644 (file)
--- 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 (file)
index 1c95260..0000000
+++ /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 <daniel@hozac.com>
-+Build-Depends: debhelper (>= 7), gawk, dietlibc-dev, net-tools, vlan, iptables, wget, procps, module-init-tools, libnss3-dev, po-debconf, e2fslibs-dev, pkg-config, python2.6-dev
-+Standards-Version: 3.8.4
-+Homepage: http://savannah.nongnu.org/projects/util-vserver/
-+
-+Package: util-vserver
-+Architecture: any
-+Depends: ${shlibs:Depends}, ${misc:Depends}, util-vserver-core, 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 <daniel@hozac.com> on Wed, 14 Jul 2010 22:42:52 +0000
-+
-+It was downloaded from:
-+
-+    http://svn.linux-vserver.org/svn/util-vserver
-+
-+Upstream Author(s):
-+
-+    Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-+    Daniel Hokka Zakrisson <daniel@hozac.com>
-+
-+Copyright:
-+
-+    Copyright (C) 2002-2010 Enrico Scholz
-+    Copyright (C) 2006-2010 Daniel Hokka Zakrisson
-+
-+License:
-+
-+    This program is free software; you can redistribute it and/or modify it
-+    under the terms of the GNU General Public License as published by the Free
-+    Software Foundation; version 2.
-+
-+    This program is distributed in the hope that it will be useful, but
-+    WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-+    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-+    for more details.
-+
-+    You should have received a copy of the GNU General Public License with
-+    your Debian GNU system, in /usr/share/common-licenses/GPL-2, or with the
-+    Debian GNU source package as the file GNUGPL.TXT.  If not, write to the
-+    Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-+    MA 02110-1301, USA.
-+
-+The Debian packaging is:
-+
-+    Copyright (C) 2010 Daniel Hokka Zakrisson <daniel@hozac.com>
-+
-+and is licensed under the GPL version 2,
-+see "/usr/share/common-licenses/GPL-2".
-Index: debian/docs
-===================================================================
---- debian/docs        (revision 0)
-+++ debian/docs        (revision 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 <daniel@hozac.com>  @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 <daniel@hozac.com>
-+##  
-+## This program is free software; you can redistribute it and/or modify
-+## it under the terms of the GNU General Public License as published by
-+## the Free Software Foundation; either version 2, or (at your option)
-+## any later version.
-+##  
-+## This program is distributed in the hope that it will be useful,
-+## but WITHOUT ANY WARRANTY; without even the implied warranty of
-+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+## GNU General Public License for more details.
-+##  
-+## You should have received a copy of the GNU General Public License
-+## along with this program; if not, write to the Free Software
-+## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+##  
-+
-+
-+EXTRA_DIST += debian/rules \
-+              debian/control \
-+              debian/compat \
-+              debian/copyright \
-+              debian/docs \
-+              debian/changelog.in \
-+              debian/changelog
-+
-+#CLEANFILES +=        debian/changelog
-+
-+DEB_CL_DATE = $(shell date '+%a, %d %b %Y %H:%M:%S %z')
-+debian/changelog: debian/changelog.in
-+      $(SED) "s/@"PACKAGE_VERSION"@/$(PACKAGE_VERSION)/g;s/@"DATE"@/$(DEB_CL_DATE)/g" $< > $@
-
-Property changes on: debian/Makefile-files
-___________________________________________________________________
-Name: svn:keywords
-   + Id
-
-Index: debian/util-vserver-legacy.prerm
-===================================================================
---- debian/util-vserver-legacy.prerm   (revision 0)
-+++ debian/util-vserver-legacy.prerm   (revision 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 <stdbool.h>
- #include <unistd.h>
- #include <fcntl.h>
-+#include <sys/stat.h>
- #include <sys/mman.h>
- #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 <ensc_vector/vector.h>
-@@ -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 <fcntl.h>
-+#include <sys/stat.h>
- 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 <fcntl.h>
-+#include <unistd.h>
-+#include <sys/stat.h>
-+
- 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 <daniel@hozac.com>
-+#  
-+# This program is free software; you can redistribute it and/or modify
-+# it under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; version 2 of the License.
-+#  
-+# This program is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+# GNU General Public License for more details.
-+#  
-+# You should have received a copy of the GNU General Public License
-+# along with this program; if not, write to the Free Software
-+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+
-+## Usage: make-deb-manifest <basename> <destdir> <datfile>
-+
-+name=$2/$1
-+dest=$2
-+data=$3
-+
-+getname() {
-+    if test $1 = "lib"; then
-+      fullname="$dest/libvserver0"
-+    elif test $1 = "devel"; then
-+      fullname="$dest/libvserver0-dev"
-+    elif test $1 = "base"; then
-+      fullname="$name"
-+    else
-+      fullname="$name-$1"
-+    fi
-+}
-+
-+for i in {core,build,legacy,sysv,lib,devel,base,python}; do
-+    getname $i
-+    echo -n >${fullname}.install
-+    rm -f ${fullname}.conffiles
-+done
-+
-+DESTDIR=debian/tmp
-+while read style file; do
-+    test "$file" || continue
-+    case "$style" in
-+      (\#*)   continue;;
-+    esac
-+    getname $style
-+    set -o noglob
-+    set -- $file
-+    set +o noglob
-+    if test "$2"; then
-+      file="$2"
-+      for i in ${DESTDIR}$file; do
-+          test "${file#/etc/}" != "$file" && continue
-+          echo "${i#${DESTDIR}}" >>${fullname}.conffiles
-+      done
-+    fi
-+    for i in ${DESTDIR}$file; do
-+      i=${i#${DESTDIR}}
-+        echo "$i ${i%/*}" >>${fullname}.install
-+    done
-+done < $data
-
-Property changes on: contrib/make-deb-manifest
-___________________________________________________________________
-Name: svn:executable
-   + *
-
-Index: contrib/Makefile-files
-===================================================================
---- contrib/Makefile-files     (revision 2883)
-+++ contrib/Makefile-files     (revision 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 <dirent.h>
- #include <string.h>
- #include <fcntl.h>
-+#include <sys/stat.h>
- #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)
index 2aec1ba..10cd530 100644 (file)
@@ -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