X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=libguestfs.ml;h=5cb806b41abae8938a024d48d2f117e846c00125;hb=5324bda8dbb31613640901bfba9b0dd339bc9616;hp=e26560863f44c016da0fca6a7a927fb09962d02e;hpb=8e4d36a8ec04de7ec2ae22f336708adb537a7e59;p=goaljobs-goals.git diff --git a/libguestfs.ml b/libguestfs.ml index e265608..5cb806b 100644 --- a/libguestfs.ml +++ b/libguestfs.ml @@ -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/- *) @@ -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