Add not-ocamlfind
[fedora-ocaml-rebuild.git] / Goalfile
index 8139319..bb8ec16 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 = "f36-build-side-46495"
+let fedora-tag = "f40-build-side-75060"
 
 # The magic string that must appear in %changelog when the
 # package has been rebuilt.
-let fedora-rebuild-name = "OCaml 4.13.1 build"
+let fedora-rebuild-name = "OCaml 5.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 = "1"
 
 # Packages that are ignored, which means they are treated as if
 # they have been rebuilt.
@@ -21,8 +27,8 @@ let fedora-ignored = [
 # All OCaml-related source package names
 let packages = [
     "ocaml-alcotest",
-    "ocaml-ancient",
     "ocaml-astring",
+    "ocaml-atd",
     "ocaml-augeas",
     "ocaml-autoconf",
     "ocaml-base",
@@ -32,15 +38,16 @@ let packages = [
     "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-camlp5-buildscripts",
     "ocaml-camomile",
-    "ocaml-charinfo-width",
-    "ocaml-cil",
     "ocaml-cinaps",
     "ocaml-cmdliner",
     "ocaml-compiler-libs-janestreet",
@@ -61,7 +68,7 @@ let packages = [
     "ocaml-facile",
     "ocaml-fieldslib",
     "ocaml-fileutils",
-    "ocaml-findlib",
+    "ocaml-findlib", "not-ocamlfind",
     "ocaml-fmt",
     "ocaml-fpath",
     "ocaml-gen",
@@ -71,7 +78,6 @@ let packages = [
     "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",
@@ -80,24 +86,23 @@ let packages = [
     "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-oasis",
     "ocaml-obuild",
     "ocaml-ocamlbuild",
     "ocaml-ocamlgraph",
@@ -107,14 +112,18 @@ let packages = [
     "ocaml-ocplib-simplex",
     "ocaml-octavius",
     "ocaml-odoc",
+    # To be retired after 5.1, now merged into ocaml-odoc
+    #"ocaml-odoc-parser",
     "ocaml-omake",
     "ocaml-opam-file-format",
     "ocaml-ounit",
     "ocaml-parmap",
     "ocaml-parsexp",
     "ocaml-pcre",
+    "ocaml-pcre2",
     "ocaml-perl4caml",
     "ocaml-postgresql",
+    "ocaml-pp",
     "ocaml-ppx-assert",
     "ocaml-ppx-base",
     "ocaml-ppx-cold",
@@ -122,47 +131,57 @@ let packages = [
     "ocaml-ppx-custom-printf",
     "ocaml-ppx-derivers",
     "ocaml-ppx-deriving",
+    "ocaml-ppx-deriving-yaml",
     "ocaml-ppx-deriving-yojson",
     "ocaml-ppx-enumerate",
+    "ocaml-ppx-expect",
     "ocaml-ppx-fields-conv",
+    "ocaml-ppx-globalize",
     "ocaml-ppx-hash",
     "ocaml-ppx-here",
+    "ocaml-ppx-import",
     "ocaml-ppx-inline-test",
     "ocaml-ppx-js-style",
+    "ocaml-ppx-let",
     "ocaml-ppxlib",
     "ocaml-ppx-optcomp",
     "ocaml-ppx-sexp-conv",
-    "ocaml-ppx-tools",
+    "ocaml-ppx-stable-witness",
     "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-stdint",
+    "ocaml-stdcompat",
     "ocaml-stdio",
     "ocaml-time-now",
     "ocaml-topkg",
-    "ocaml-tplib",
     "ocaml-trie",
     "ocaml-tyxml",
-    "ocaml-uuidm",
+    "ocaml-uucd",
+    "ocaml-uucp",
+    "ocaml-uunf",
+    "ocaml-uuseg",
     "ocaml-uutf",
     "ocaml-variantslib",
+    "ocaml-version",
     "ocaml-xml-light",
     "ocaml-xmlm",
     "ocaml-xmlrpc-light",
+    "ocaml-yaml",
     "ocaml-yojson",
     "ocaml-zarith",
     "ocaml-zed",
@@ -174,19 +193,23 @@ let packages = [
     "brltty",
     "coccinelle",
     "coq",
+    "emacs-common-tuareg",
     "flocq",
     "frama-c",
     "gappalib-coq",
+    "guestfs-tools",
     "graphviz",
     "haxe",
     "hevea",
     "hivex",
-    "laby",
     "libguestfs",
     "libnbd",
     "opam",
+    "planets",
     "plplot",
     "prooftree",
+    "supermin",
+    "swig",
     "utop",
     "virt-top",
     "virt-v2v",
@@ -200,15 +223,27 @@ let packages = [
     #"nbdkit",
 ]
 
+# Get the list of source packages.
 pure function get-source-packages () returning strings = {
     cd %fedora-dir
-    for f in %packages; do
-        if [ -f $f/%fedora-branch/$f.spec ]; then
-            echo "$f"
-        elif [ -f $f/%fedora-branch/dead.package ]; then
-            echo "WARNING: $f: is a dead package, ignored" >&2
+    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 "$f: 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