Move fedora and ELN packages to separate included source files
[fedora-ocaml-rebuild.git] / Goalfile
index 3bd6c85..dcb108a 100644 (file)
--- a/Goalfile
+++ b/Goalfile
@@ -4,17 +4,19 @@ include "fedora.gl"
 
 let fedora-dir = "%HOME/d/fedora"
 
-let fedora-branch = "master"
-let fedora-tag = "f33-build-side-19773"
+let fedora-branch = "rawhide"
+#let fedora-branch = "f34"
+let fedora-tag = "f40-build-side-79351"
 
 # The magic string that must appear in %changelog when the
 # package has been rebuilt.
-let fedora-rebuild-name = "OCaml 4.10.0 final."
+let fedora-rebuild-name = "OCaml 5.1.1 rebuild for Fedora 40"
 
-# Packages that are blocked.  Any dependent packages are also blocked
-# automatically.
-# XXX Not implemented, use ignore for now.
-#let fedora-blocked = [ "ocaml-camlp4" ]
+# %fedora-retry-failed:
+# If set to 1 then failed builds are retried automatically.
+# If set to 0 then failed builds must be manually restarted.
+# Normally you want this to be 0.
+let fedora-retry-failed = "0"
 
 # Packages that are ignored, which means they are treated as if
 # they have been rebuilt.
@@ -22,38 +24,33 @@ let fedora-ignored = [
     "ocaml-srpm-macros", "ocaml",
 ]
 
-# All OCaml-related source package names
-let other-packages = [
-    "alt-ergo", "apron", "brltty",
-    "graphviz", "hevea", "hivex",
-    "libguestfs", "libnbd",
-    "opam",
-    "plplot",
-    "virt-top", "virt-v2v",
-    "z3",
-
-    # no OCaml code, but needs to be rebuilt after Coq
-    #"flocq"
-
-    # Coq problems:
-    # https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/6I2CB4KNAZXH6TKX5WQZJ3ZQGBIOCNJK/
-    # "coq", "frama-c", "gappalib-coq",
-    # "why3", "zenon",
-    # "flocq",
-
-    # Coccinelle uses -unsafe-string.
-    # "coccinelle",
-
-    # Causes a cyclic dependency between libnbd <-> nbdkit.  We need
-    # to fix this in goals itself, but in the meantime disable nbdkit
-    # and build it by hand.
-    # "nbdkit",
-]
+# Include the full list of packages for either Fedora or ELN.
+include "./fedora-packages.gl"
+#include "./eln-packages.gl"
 
+# Get the list of source packages.
 pure function get-source-packages () returning strings = {
     cd %fedora-dir
-    for f in ocaml* %other-packages; do
-        [ -f $f/%fedora-branch/$f.spec ] && echo "$f"
+    for pkg in %packages; do
+        spec=$pkg/%fedora-branch/$pkg.spec
+        if [ -f $spec ]; then
+            # Check that the spec file excludes i686.
+            # Only implement this check for ocaml-* packages, as the
+            # other packages are more complicated.
+            if [[ "$spec" =~ ^ocaml ]] &&
+               ! rpmspec -P $spec | grep -sq 'ExcludeArch:.*i386' ; then
+                echo "ERROR: $pkg does not ExcludeArch: %%{ix86}" >&2
+                exit 1
+            fi
+            # OK to rebuild this package.
+            echo "$pkg"
+        elif [ -f $pkg/%fedora-branch/dead.package ]; then
+            echo "WARNING: $pkg: is a dead package, ignored" >&2
+        else
+            echo "ERROR: $pkg: package is not checked out locally" >&2
+            # This does NOT exit the script, why???
+            exit 1
+        fi
     done
 }
 let fedora-source-packages = get-source-packages ()