if not version.is_stable then
require (website_built version);
- require (website_cvs_checked_in version);
+ require (website_checked_in version);
require (website_rsync_done version)
(* Goal: website has been rsync'd. *)
sh "
cd %s
./.rsync
- " libguestfs_website_cvs
+ " libguestfs_website_repo
-(* Goal: Tarball added to CVS and CVS checked in. *)
-and website_cvs_checked_in version =
- let key = sprintf "libguestfs_website_cvs_checked_in_%s" version.version in
+(* Goal: Tarball added to repository and checked in. *)
+and website_checked_in version =
+ let key = sprintf "libguestfs_website_checked_in_%s" version.version in
target (memory_exists key);
onrun (fun () -> memory_set key "1");
sh "
cd %s
cp %s/tarballs/%s %s
- cvs add -kb %s
- cvs ci -m \"Version %s\"
- " libguestfs_website_cvs
+ git add %s
+ git add *.txt *.html
+ git commit -m \"Version %s\"
+ " libguestfs_website_repo
buildtmp version.tarball version.urlpath
version.urlpath
version.version
(* Goal: website (local copy) has been built. *)
and website_built version =
- let index_file = sprintf "%s/index.html" libguestfs_website_cvs in
+ let index_file = sprintf "%s/index.html" libguestfs_website_repo in
target (file_contains_string index_file version.version);
require (tarball_created version);
echo %s > localenv
./localconfigure
- make
- make website
+ make V=1
+ make website WEBSITEDIR=%s
" buildtmp version.tarball
version.package_version
(quote (libguestfs_localconfigure `Tarball))
- (quote libguestfs_localenv)
+ (quote (libguestfs_localenv (supermin version)))
+ (quote libguestfs_website_repo)
(* Goal: the tarball has passed the required set of tests before
* a release is allowed.
echo %s > localenv
./localconfigure
- make
+ make V=1
make check-release
" buildtmp version.tarball
version.package_version
(quote (libguestfs_localconfigure `Tarball))
- (quote libguestfs_localenv)
+ (quote (libguestfs_localenv (supermin version)))
(* Goal: the tarball has been created from git. *)
and tarball_created version =
let filename = sprintf "%s/tarballs/%s" buildtmp version.tarball in
target (file_exists filename);
+ require (repo_up_to_date version.branch);
+
let repodir = sprintf "%s/repos/%s-%s" buildtmp package version.branch in
- require (directory_exists repodir);
sh "
cp -a %s libguestfs
echo %s > localenv
./localconfigure
- make
+
+ # Ensure the po-docs are updated. Grrr this is ugly ...
+ make ||:
+ rm po-docs/podfiles
+ make -C po-docs update-po
+
+ make V=1
make dist
+
+ # Ensure redhat hardening flags didn't leak into the tarball.
+ # https://bugzilla.redhat.com/show_bug.cgi?id=1214506
+ if zcat %s | grep -q redhat-hardened; then exit 1; fi
+
mv %s %s/tarballs/%s
" repodir
version.version
(quote (libguestfs_localconfigure `Git))
- (quote libguestfs_localenv)
+ (quote (libguestfs_localenv (supermin version)))
+ version.tarball
version.tarball buildtmp version.tarball
(* Goal: test a commit. *)
target (memory_exists key);
onrun (fun () -> memory_set key "1");
+ require (repo_up_to_date branch);
+
let repodir = sprintf "%s/repos/%s-%s" buildtmp package branch in
- require (directory_exists repodir);
sh "
cp -a %s libguestfs
echo %s > localenv
./localconfigure
- make
+ make V=1
make check-release
" repodir
commit
(quote (libguestfs_localconfigure `Git))
- (quote libguestfs_localenv)
+ (quote (libguestfs_localenv None))
+
+and repo_up_to_date branch =
+ git_force branch
let () =
(* Add a periodic job to check for new git commits and test them. *)
every libguestfs_query_mins minutes ~name:"new libguestfs commit" (
fun () ->
- git_force "master";
+ require (repo_up_to_date "master");
let commit = git_latest_commit "master" in
require (commit_tested "master" commit);
);
(* Periodic job to build new tarballs. *)
every libguestfs_query_mins minutes ~name:"new libguestfs version" (
fun () ->
- git_force "master";
+ require (repo_up_to_date "master");
let version = git_latest_version "master" in
require (website_updated version)
)