let fedora-dir = "%HOME/d/fedora"
-let fedora-branch = "master"
-let fedora-tag = "f32-build-side-18015"
-let koji = "koji"
-#let koji = "koji -p riscv64"
-let fedpkg = "fedpkg"
-#let fedpkg = "fedpkg --user-config %HOME/d/fedora-ocaml-rebuild/fedpkg-user-config"
+let fedora-branch = "rawhide"
+#let fedora-branch = "f34"
+let fedora-tag = "f41-build-side-90189"
# The magic string that must appear in %changelog when the
# package has been rebuilt.
-let fedora-rebuild-name = "OCaml 4.10.0+beta1 rebuild."
+let fedora-rebuild-name = "OCaml 5.2.0 for Fedora 41"
-# 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.
let fedora-ignored = [
"ocaml-srpm-macros", "ocaml",
-
- # https://bugzilla.redhat.com/show_bug.cgi?id=1792769
- "ocaml-base", "ocaml-parsexp", "ocaml-sexplib", "ocaml-odoc",
-
- # https://bugzilla.redhat.com/show_bug.cgi?id=1792780
- "ocaml-lwt", "ocaml-curl", "ocaml-lambda-term",
- "ocaml-lwt-log", "ocaml-markup", "utop", "ocaml-tyxml",
]
-# All OCaml-related source package names
-let other-packages = [
- "alt-ergo", "apron", "brltty",
- "graphviz", "hevea", "hivex",
- "libguestfs", "libnbd",
- "virt-top", "virt-v2v",
-
- # 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",
-
- # causes stack overflow in goals expr_to_shell_string
- # when handling EList. Is the list returned too long?
- # "nbdkit",
+# Include the full list of packages for either Fedora or ELN.
+include "./fedora-packages.gl"
+#include "./eln-packages.gl"
- # plplot FTBFS for unrelated reasons
- # "plplot",
-
- # https://bugzilla.redhat.com/show_bug.cgi?id=1792740
- # "z3",
-
- # Coccinelle uses -unsafe-string.
- # "coccinelle",
-
- # https://bugzilla.redhat.com/show_bug.cgi?id=1792770
- # "opam",
-]
+# 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 ()
# Main goal: Rebuild all packages in Koji.
-goal all = : wrap ("*koji-built", fedora-source-packages)
+goal all = : wrap ("is-koji-built", fedora-source-packages)