Do 'yum clean all' before yum-builddep.
[goaljobs-goals.git] / fedora_ocaml_rebuild.ml
index d556dfb..717572e 100644 (file)
@@ -14,7 +14,7 @@ let koji_target = "rawhide"
 (* The name of the rebuild, and also the magic substring that must
  * appear in the %changelog when the package has been rebuilt.
  *)
-let rebuild_name = "OCaml 4.02.0 beta"
+let rebuild_name = "ocaml-4.02.0-0.8.git10e45753.fc22"
 
 (* Local repository that contains build dependencies. *)
 let yum_repo = "koji-rawhide"
@@ -23,14 +23,14 @@ let yum_repo = "koji-rawhide"
  * dependent packages.
  *)
 let blocked = [
-  "ocaml-bitstring";               (* needs upstream fix for 4.02.0 *)
-
-  "ocaml-camlp5";                       (* not updated for 4.02.0 *)
   "ocaml-mikmatch";                     (* build failure on 4.02.0 *)
   "ocaml-omake";                        (* build failure on 4.02.0 with hevea *)
   "ocaml-p3l";                          (* build failure on 4.02.0 -warn-error A *)
   "ocaml-pa-do";                        (* build failure, complex *)
   "ocaml-lwt";                          (* build failure on 4.02.0 *)
+  "ocaml-preludeml";                    (* build failure *)
+  "cduce";                              (* camlp4-related failure, discussed upstream *)
+  "frama-c";                            (* build failure *)
 ]
 let blocked pkg = List.mem pkg blocked
 
@@ -38,12 +38,11 @@ let blocked pkg = List.mem pkg blocked
 let ignored = [
   "ocaml-srpm-macros";             (* don't need to build this *)
   "ocaml";                         (* rebuilt by hand *)
-  "ocaml-findlib";                 (* rebuilt by hand *)
-  "ocaml-camlidl";                 (* rebuilt by orionp *)
   "whenjobs";                      (* obsolete *)
   "libguestfs";                    (* rebuilt by hand *)
   "graphviz";                      (* rebuilt by hand *)
   "xen";                           (* already done *)
+  "plplot";                        (* already done *)
 ]
 let ignored pkg = List.mem pkg ignored
 
@@ -74,6 +73,13 @@ let () =
   printf "final list of source packages = %s\n%!"
     (String.concat " " source_packages)
 
+(* We could make this a goal, but it's cheap enough to run it unconditionally. *)
+let install_build_dependencies pkg =
+  sh "sudo yum clean all --disablerepo=\\* --enablerepo=%s"
+    (quote yum_repo);
+  sh "sudo yum-builddep -y --disablerepo=\\* --enablerepo=%s %s"
+    (quote yum_repo) (fedora_specfile pkg branch)
+
 (* Goal: rebuild all packages. *)
 let rec goal all () =
   List.iter (fun pkg -> require (rebuild_started pkg)) source_packages
@@ -183,14 +189,13 @@ and local_build_succeeded pkg =
 
   target (memory_exists key);
 
-  (* Do a local test build to ensure the Koji build will work. *)
+  install_build_dependencies pkg;
+
+ (* Do a local test build to ensure the Koji build will work. *)
   sh "
     cd %s
-    sudo yum-builddep -y --disablerepo=\\* --enablerepo=%s %s
-    fedpkg local
-  " (fedora_repo pkg branch)
-    (quote yum_repo)
-    (fedora_specfile pkg branch);
+     fedpkg local
+  " (fedora_repo pkg branch);
 
   memory_set key "1"
 
@@ -210,8 +215,7 @@ and specfile_updated pkg =
       git pull --rebase
     " repodir;
 
-  sh "sudo yum-builddep -y --disablerepo=\\* --enablerepo=%s %s"
-    (quote yum_repo) specfile;
+  install_build_dependencies pkg;
 
   (* For rationale behind always bumping the spec file, see comment
    * in 'fedora.ml'.