]> git.pld-linux.org Git - packages/util-vserver.git/blobdiff - util-vserver-pivot-root-ugly-hack.patch
- up to pre3002; /etc/tld-release shouldn't be required
[packages/util-vserver.git] / util-vserver-pivot-root-ugly-hack.patch
index 0ee936f4ed02720686875ec8a1f03d239bc449bb..1699e70d297c7b43ae260e645de0a0f1202288b9 100644 (file)
@@ -1,58 +1,11 @@
-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;
+--- util-vserver-0.30.216-pre2955/lib/issupported.c~   2011-03-18 19:45:34.000000000 +0100
++++ util-vserver-0.30.216-pre2955/lib/issupported.c    2011-03-28 18:44:52.846690580 +0200
+@@ -50,7 +50,7 @@
+     case vcFEATURE_VSTAT      :  return ver >= 0x00020103 && ver < 0x00020306;
      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 >= 0x02062811 && kver < 0x02062900) ||
-+                                 (kver >= 0x02062901));
-     case vcFEATURE_PIDSPACE   :  return ver >= 0x00020305;
-     default                   :  assert(false); 
-   }
++    case vcFEATURE_PIVOT_ROOT :  return (ver >= 0x00020304 && linux_ver >= 0x0002061f);
+     case vcFEATURE_PIDSPACE   :  return false;
+     case vcFEATURE_MEMCG      :  return ver >= 0x00020306 && conf & VC_VCI_MEMCG;
+     case vcFEATURE_DYNAMIC    :  return ver <  0x00020300 || !(conf & VC_VCI_NO_DYNAMIC);
This page took 0.027937 seconds and 4 git commands to generate.