Author: baggins                      Date: Mon Jun 15 15:52:35 2009 GMT
Module: packages                      Tag: HEAD
---- Log message:
- rel .2
- ugly hack for "pivot_root(): Invalid argument" problems

---- Files affected:
packages/util-vserver:
   util-vserver.spec (1.227 -> 1.228) , util-vserver-pivot-root-ugly-hack.patch 
(NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: packages/util-vserver/util-vserver.spec
diff -u packages/util-vserver/util-vserver.spec:1.227 
packages/util-vserver/util-vserver.spec:1.228
--- packages/util-vserver/util-vserver.spec:1.227       Mon Jun  1 16:56:56 2009
+++ packages/util-vserver/util-vserver.spec     Mon Jun 15 17:52:30 2009
@@ -22,7 +22,7 @@
 Summary(pl.UTF-8):     Narzędzia dla linuksowych serwerów wirtualnych
 Name:          util-vserver
 Version:       0.30.216
-Release:       0.%{snap}.1
+Release:       0.%{snap}.2
 License:       GPL
 Group:         Applications/System
 #Source0:      
http://ftp.linux-vserver.org/pub/utils/util-vserver/%{name}-%{version}.tar.bz2
@@ -70,6 +70,7 @@
 Patch19:       %{name}-dbrebuild-internalize4.patch
 Patch20:       %{name}-dev-stdfd.patch
 Patch21:       %{name}-bash-wrapper.patch
+Patch22:       %{name}-pivot-root-ugly-hack.patch
 URL:           http://savannah.nongnu.org/projects/util-vserver/
 BuildRequires: autoconf
 BuildRequires: automake >= 1.9
@@ -380,6 +381,7 @@
 %patch19 -p1
 %patch20 -p1
 %patch21 -p1
+%patch22 -p1
 
 install %{SOURCE9} package-management.txt
 
@@ -902,6 +904,10 @@
 All persons listed below can be reached at <cvs_login>@pld-linux.org
 
 $Log$
+Revision 1.228  2009/06/15 15:52:30  baggins
+- rel .2
+- ugly hack for "pivot_root(): Invalid argument" problems
+
 Revision 1.227  2009/06/01 14:56:56  baggins
 - no docs on ppc :(
 

================================================================
Index: packages/util-vserver/util-vserver-pivot-root-ugly-hack.patch
diff -u /dev/null 
packages/util-vserver/util-vserver-pivot-root-ugly-hack.patch:1.1
--- /dev/null   Mon Jun 15 17:52:35 2009
+++ packages/util-vserver/util-vserver-pivot-root-ugly-hack.patch       Mon Jun 
15 17:52:30 2009
@@ -0,0 +1,58 @@
+diff -ur util-vserver-0.30.216-pre2833/lib/issupported.c 
util-vserver-0.30.216-pre2833-uname/lib/issupported.c
+--- util-vserver-0.30.216-pre2833/lib/issupported.c    2009-04-10 
22:24:15.000000000 +0200
++++ util-vserver-0.30.216-pre2833-uname/lib/issupported.c      2009-06-15 
17:45:06.335273350 +0200
+@@ -20,17 +20,39 @@
+ #  include <config.h>
+ #endif
+ 
++#include <string.h>
++#include <sys/utsname.h>
+ #include "vserver.h"
+ #include "assert.h"
+ 
+ bool
+ vc_isSupported(vcFeatureSet feature)
+ {
++  int kver = 0, i, j = 24, k = 0;
++  struct utsname uts;
+   int         ver = vc_get_version();
+   vc_vci_t    conf = vc_get_vci();
+   if (ver==-1) return false;
+   if (conf==(vc_vci_t)-1) conf = 0;
+ 
++  if (uname(&uts)==-1) {
++    return false;
++  } else {
++    for (i=0; i<strlen(uts.release); i++) {
++      if (uts.release[i] >= '0' && uts.release[i] <= '9') {
++      k <<= 4;
++      k |= uts.release[i] - '0';
++      } else if (uts.release[i] == '.') {
++      kver |= (k << j);
++      j -= 8;
++      k = 0;
++      } else
++            break;
++    }
++    if (k != 0 && j >= 0)
++      kver |= (k << j);
++  }
++
+   switch (feature) {
+     case vcFEATURE_COMPAT     :  return true;
+     case vcFEATURE_VSHELPER0  :  return ver >= 0x00010000 && ver < 0x00010010;
+@@ -49,7 +71,13 @@
+     case vcFEATURE_VSTAT      :  return ver >= 0x00020103;
+     case vcFEATURE_PPTAG      :  return conf & VC_VCI_PPTAG;
+     case vcFEATURE_SPACES     :  return conf & VC_VCI_SPACES;
+-    case vcFEATURE_PIVOT_ROOT :  return ver >= 0x00020304;
++   // Now THIS is really ugly hack, only vs2.3 patches for kernels below
++   // have pivot_root working for vservers, so we assume people use recent
++   // patches with recent kernels
++    case vcFEATURE_PIVOT_ROOT :  return (ver >= 0x00020304) &&
++                                ((kver >= 0x02062723 && kver < 0x02062800) ||
++                                 (kver >= 0x02062810 && kver < 0x02062900) ||
++                                 (kver >= 0x02062901));
+     case vcFEATURE_PIDSPACE   :  return ver >= 0x00020305;
+     default                   :  assert(false); 
+   }
================================================================

---- CVS-web:
    
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/util-vserver/util-vserver.spec?r1=1.227&r2=1.228&f=u

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to