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 }
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>
*)
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. *)
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