Move fedora and ELN packages to separate included source files
[fedora-ocaml-rebuild.git] / Goalfile
index 4eb6c5e..dcb108a 100644 (file)
--- a/Goalfile
+++ b/Goalfile
@@ -6,11 +6,17 @@ let fedora-dir = "%HOME/d/fedora"
 
 let fedora-branch = "rawhide"
 #let fedora-branch = "f34"
-let fedora-tag = "f38-build-side-62208"
+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 = "Rebuild OCaml packages for F38"
+let fedora-rebuild-name = "OCaml 5.1.1 rebuild for Fedora 40"
+
+# %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.
@@ -18,200 +24,9 @@ let fedora-ignored = [
     "ocaml-srpm-macros", "ocaml",
 ]
 
-# All OCaml-related source package names
-let packages = [
-    "ocaml-alcotest",
-    "ocaml-ancient",
-    "ocaml-astring",
-    "ocaml-atd",
-    "ocaml-augeas",
-    "ocaml-autoconf",
-    "ocaml-base",
-    "ocaml-base64",
-    "ocaml-benchmark",
-    "ocaml-bigarray-compat",
-    "ocaml-biniou",
-    "ocaml-bin-prot",
-    "ocaml-bisect-ppx",
-    "ocaml-bos",
-    "ocaml-cairo",
-    "ocaml-calendar",
-    "ocaml-camlbz2",
-    "ocaml-camlidl",
-    "ocaml-camlimages",
-    "ocaml-camlp-streams",
-    "ocaml-camlp5",
-    "ocaml-camomile",
-    "ocaml-charinfo-width",
-    "ocaml-cil",
-    "ocaml-cinaps",
-    "ocaml-cmdliner",
-    "ocaml-compiler-libs-janestreet",
-    "ocaml-cppo",
-    "ocaml-cryptokit",
-    "ocaml-csexp",
-    "ocaml-csv",
-    "ocaml-ctypes",
-    "ocaml-cudf",
-    "ocaml-curl",
-    "ocaml-curses",
-    "ocaml-dbus",
-    "ocaml-dose3",
-    # Cyclic dependency ocaml-dune -> ocaml-pp -> ocaml-dune
-    #"ocaml-dune",
-    "ocaml-easy-format",
-    "ocaml-expat",
-    "ocaml-extlib",
-    "ocaml-facile",
-    "ocaml-fieldslib",
-    "ocaml-fileutils",
-    "ocaml-findlib",
-    "ocaml-fmt",
-    "ocaml-fpath",
-    "ocaml-gen",
-    "ocaml-gettext",
-    "ocaml-graphics",
-    "ocaml-gsl",
-    "ocamlify",
-    "ocaml-integers",
-    "ocaml-jane-street-headers",
-#   "ocaml-jsonm", https://bugzilla.redhat.com/show_bug.cgi?id=1183825
-    "ocaml-jst-config",
-    "ocaml-lablgl",
-    "ocaml-lablgtk",
-    "ocaml-lablgtk3",
-    "ocaml-labltk",
-    "ocaml-lacaml",
-    "ocaml-lambda-term",
-    "ocaml-libvirt",
-    "ocaml-logs",
-    "ocaml-luv",
-    "ocaml-lwt",
-    "ocaml-lwt-log",
-    "ocaml-markup",
-    "ocaml-mccs",
-    "ocaml-mdx",
-    "ocaml-menhir",
-    "ocaml-merlin",
-    "ocaml-mew",
-    "ocaml-mew-vi",
-    "ocaml-migrate-parsetree",
-    "ocaml-mlgmpidl",
-    "ocaml-mlmpfr",
-    "ocaml-mmap",
-    "ocaml-mtime",
-    "ocamlmod",
-    "ocaml-mysql",
-    "ocaml-newt",
-    "ocaml-num",
-    "ocaml-obuild",
-    "ocaml-ocamlbuild",
-    "ocaml-ocamlgraph",
-    "ocaml-ocamlnet",
-    "ocaml-ocp-indent",
-    "ocaml-ocplib-endian",
-    "ocaml-ocplib-simplex",
-    "ocaml-octavius",
-    "ocaml-odoc",
-    "ocaml-odoc-parser",
-    "ocaml-omake",
-    "ocaml-opam-file-format",
-    "ocaml-ounit",
-    "ocaml-parmap",
-    "ocaml-parsexp",
-    "ocaml-pcre",
-    "ocaml-perl4caml",
-    "ocaml-postgresql",
-    "ocaml-pp",
-    "ocaml-ppx-assert",
-    "ocaml-ppx-base",
-    "ocaml-ppx-cold",
-    "ocaml-ppx-compare",
-    "ocaml-ppx-custom-printf",
-    "ocaml-ppx-derivers",
-    "ocaml-ppx-deriving",
-    "ocaml-ppx-deriving-yojson",
-    "ocaml-ppx-enumerate",
-    "ocaml-ppx-expect",
-    "ocaml-ppx-fields-conv",
-    "ocaml-ppx-hash",
-    "ocaml-ppx-here",
-    "ocaml-ppx-inline-test",
-    "ocaml-ppx-js-style",
-    "ocaml-ppx-let",
-    "ocaml-ppxlib",
-    "ocaml-ppx-optcomp",
-    "ocaml-ppx-sexp-conv",
-    "ocaml-ppx-variants-conv",
-    "ocaml-psmt2-frontend",
-    "ocaml-ptmap",
-    "ocaml-pyml",
-    "ocaml-qcheck",
-    "ocaml-qtest",
-    "ocaml-re",
-    "ocaml-react",
-    "ocaml-res",
-    "ocaml-result",
-    "ocaml-rresult",
-    "ocaml-SDL",
-    "ocaml-sedlex",
-    "ocaml-seq",
-    "ocaml-sexplib",
-    "ocaml-sexplib0",
-    "ocaml-sha",
-    "ocaml-sqlite",
-    "ocaml-ssl",
-    "ocaml-stdcompat",
-    "ocaml-stdint",
-    "ocaml-stdio",
-    "ocaml-time-now",
-    "ocaml-topkg",
-    "ocaml-tplib",
-    "ocaml-trie",
-    "ocaml-tyxml",
-    "ocaml-uutf",
-    "ocaml-variantslib",
-    "ocaml-version",
-    "ocaml-xml-light",
-    "ocaml-xmlm",
-    "ocaml-xmlrpc-light",
-    "ocaml-yojson",
-    "ocaml-zarith",
-    "ocaml-zed",
-    "ocaml-zip",
-    "ocaml-zmq",
-
-    "alt-ergo",
-    "apron",
-    "brltty",
-    "coccinelle",
-    "coq",
-    "flocq",
-    "frama-c",
-    "gappalib-coq",
-    "graphviz",
-    "haxe",
-    "hevea",
-    "hivex",
-    "laby",
-    "libguestfs",
-    "libnbd",
-    "opam",
-    "plplot",
-    "prooftree",
-    "supermin",
-    "utop",
-    "virt-top",
-    "virt-v2v",
-    "why3",
-    "z3",
-    "zenon",
-
-    # 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 = {
@@ -219,10 +34,12 @@ pure function get-source-packages () returning strings = {
     for pkg in %packages; do
         spec=$pkg/%fedora-branch/$pkg.spec
         if [ -f $spec ]; then
-            # Check that all spec files have disabled the broken
-            # "package notes" misfeature.
-            if ! grep -sq "%%undefine _package_note_flags" $spec ; then
-                echo "ERROR: $pkg does not %%undefine _package_note_flags" >&2
+            # 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.
@@ -230,7 +47,8 @@ pure function get-source-packages () returning strings = {
         elif [ -f $pkg/%fedora-branch/dead.package ]; then
             echo "WARNING: $pkg: is a dead package, ignored" >&2
         else
-            echo "$pkg: package is not checked out locally" >&2
+            echo "ERROR: $pkg: package is not checked out locally" >&2
+            # This does NOT exit the script, why???
             exit 1
         fi
     done