Skip some libguestfs slow tests.
[goaljobs-goals.git] / libguestfs.ml
index e265608..5cb806b 100644 (file)
@@ -19,8 +19,11 @@ type info = {
   branch : string;               (* 'master' or 'stable-1.xx' *)
   package_version : string;      (* package-version *)
   tarball : string;              (* package-version.tar.gz *)
-  urlpath : string;              (* download/1.X-(stable|development)/tarball *)
+  python_tarball : string;       (* guestfs-version.tar.gz *)
+  urlpath : string;              (* libguestfs-download/1.X-(stable|development)/tarball *)
+  python_urlpath : string;       (* libguestfs-download/python/python_tarball *)
   url : string;                  (* full download URL of tarball *)
+  python_url : string;           (* python sdist *)
 }
 
 let compare_versions { major = major1; minor = minor1; release = release1 }
@@ -45,20 +48,36 @@ let vernames version =
       let tarball = sprintf "%s.tar.gz" package_version in
       let urlpath =
         if is_stable then
-          sprintf "download/%d.%d-stable/%s" major minor tarball
+          sprintf "%d.%d-stable/%s" major minor tarball
         else
-          sprintf "download/%d.%d-development/%s" major minor tarball in
-      let url = "http://libguestfs.org/" ^ urlpath in
+          sprintf "%d.%d-development/%s" major minor tarball in
+      let url = "http://download.libguestfs.org/" ^ urlpath in
+      let python_tarball =
+        sprintf "guestfs-%d.%d.%d.tar.gz" major minor release in
+      let python_urlpath = sprintf "python/" ^ python_tarball in
+      let python_url = "http://download.libguestfs.org/" ^ python_urlpath in
+
       { version = version;
         major = major; minor = minor; release = release;
         is_stable = is_stable;
         branch = branch;
         package_version = package_version;
         tarball = tarball;
+        python_tarball = python_tarball;
         urlpath = urlpath;
-        url = url }
+        python_urlpath = python_urlpath;
+        url = url;
+        python_url = python_url }
   )
 
+(* For libguestfs <= 1.24, we need an old supermin 4 binary. *)
+let supermin = function
+  | { major = 1; minor = i } when i <= 24 ->
+    let home = Sys.getenv "HOME" in
+    Some ( home // "d/supermin4/src/supermin",
+           home // "d/supermin4/helper/supermin-helper" )
+  | _ -> None
+
 (* Clone or update a repo to the latest version on a branch, by force.
  * It is cached in name = $buildtmp/repos/<package>-<branch>
  *)
@@ -86,6 +105,15 @@ let git_latest_version branch =
     cd %s/repos/%s-%s
     git describe --tags --abbrev=0
   " buildtmp package (quote branch) in
+  (* Branches <= 1.32 are tagged with "1.32.11",
+   * branches >= 1.33 are tagged with "v1.33.11".
+   *)
+  let len = String.length v in
+  let v =
+    if len > 0 && v.[0] = 'v' then
+      String.sub v 1 (len-1)
+    else
+      v in
   vernames v
 
 (* Get the latest commit. *)
@@ -102,7 +130,7 @@ let git_latest_commit branch =
 let website_latest_version =
   let rex = Str.regexp "libguestfs-\\(.*\\)\\.tar\\.gz" in
   fun branch ->
-    let wdir = libguestfs_website_cvs // "download" // branch in
+    let wdir = libguestfs_download_repo // branch in
     let files = Sys.readdir wdir in
     let files = Array.to_list files in
     if files = [] then None