Add ocaml-camlp5-buildscripts
[fedora-ocaml-rebuild.git] / Goalfile
1 # See README.
2
3 include "fedora.gl"
4
5 let fedora-dir = "%HOME/d/fedora"
6
7 let fedora-branch = "rawhide"
8 #let fedora-branch = "f34"
9 let fedora-tag = "f40-build-side-75060"
10
11 # The magic string that must appear in %changelog when the
12 # package has been rebuilt.
13 let fedora-rebuild-name = "OCaml 5.1 rebuild for Fedora 40"
14
15 # %fedora-retry-failed:
16 # If set to 1 then failed builds are retried automatically.
17 # If set to 0 then failed builds must be manually restarted.
18 # Normally you want this to be 0.
19 let fedora-retry-failed = "1"
20
21 # Packages that are ignored, which means they are treated as if
22 # they have been rebuilt.
23 let fedora-ignored = [
24     "ocaml-srpm-macros", "ocaml",
25 ]
26
27 # All OCaml-related source package names
28 let packages = [
29     "ocaml-alcotest",
30     "ocaml-astring",
31     "ocaml-atd",
32     "ocaml-augeas",
33     "ocaml-autoconf",
34     "ocaml-base",
35     "ocaml-base64",
36     "ocaml-benchmark",
37     "ocaml-bigarray-compat",
38     "ocaml-biniou",
39     "ocaml-bin-prot",
40     "ocaml-bisect-ppx",
41     "ocaml-bos",
42     "ocaml-cairo",
43     "ocaml-calendar",
44     "ocaml-camlbz2",
45     "ocaml-camlidl",
46     "ocaml-camlimages",
47     "ocaml-camlp-streams",
48     "ocaml-camlp5",
49     "ocaml-camlp5-buildscripts",
50     "ocaml-camomile",
51     "ocaml-cinaps",
52     "ocaml-cmdliner",
53     "ocaml-compiler-libs-janestreet",
54     "ocaml-cppo",
55     "ocaml-cryptokit",
56     "ocaml-csexp",
57     "ocaml-csv",
58     "ocaml-ctypes",
59     "ocaml-cudf",
60     "ocaml-curl",
61     "ocaml-curses",
62     "ocaml-dbus",
63     "ocaml-dose3",
64     "ocaml-dune",
65     "ocaml-easy-format",
66     "ocaml-expat",
67     "ocaml-extlib",
68     "ocaml-facile",
69     "ocaml-fieldslib",
70     "ocaml-fileutils",
71     "ocaml-findlib",
72     "ocaml-fmt",
73     "ocaml-fpath",
74     "ocaml-gen",
75     "ocaml-gettext",
76     "ocaml-graphics",
77     "ocaml-gsl",
78     "ocamlify",
79     "ocaml-integers",
80     "ocaml-jane-street-headers",
81     "ocaml-jst-config",
82     "ocaml-lablgl",
83     "ocaml-lablgtk",
84     "ocaml-lablgtk3",
85     "ocaml-labltk",
86     "ocaml-lacaml",
87     "ocaml-lambda-term",
88     "ocaml-libvirt",
89     "ocaml-logs",
90     "ocaml-luv",
91     "ocaml-lwt",
92     "ocaml-markup",
93     "ocaml-mccs",
94     "ocaml-mdx",
95     "ocaml-menhir",
96     "ocaml-merlin",
97     "ocaml-mew",
98     "ocaml-mew-vi",
99     "ocaml-mlgmpidl",
100     "ocaml-mlmpfr",
101     "ocaml-mtime",
102     "ocamlmod",
103     "ocaml-mysql",
104     "ocaml-newt",
105     "ocaml-num",
106     "ocaml-obuild",
107     "ocaml-ocamlbuild",
108     "ocaml-ocamlgraph",
109     "ocaml-ocamlnet",
110     "ocaml-ocp-indent",
111     "ocaml-ocplib-endian",
112     "ocaml-ocplib-simplex",
113     "ocaml-octavius",
114     "ocaml-odoc",
115     # To be retired after 5.1, now merged into ocaml-odoc
116     #"ocaml-odoc-parser",
117     "ocaml-omake",
118     "ocaml-opam-file-format",
119     "ocaml-ounit",
120     "ocaml-parmap",
121     "ocaml-parsexp",
122     "ocaml-pcre",
123     "ocaml-pcre2",
124     "ocaml-perl4caml",
125     "ocaml-postgresql",
126     "ocaml-pp",
127     "ocaml-ppx-assert",
128     "ocaml-ppx-base",
129     "ocaml-ppx-cold",
130     "ocaml-ppx-compare",
131     "ocaml-ppx-custom-printf",
132     "ocaml-ppx-derivers",
133     "ocaml-ppx-deriving",
134     "ocaml-ppx-deriving-yaml",
135     "ocaml-ppx-deriving-yojson",
136     "ocaml-ppx-enumerate",
137     "ocaml-ppx-expect",
138     "ocaml-ppx-fields-conv",
139     "ocaml-ppx-globalize",
140     "ocaml-ppx-hash",
141     "ocaml-ppx-here",
142     "ocaml-ppx-import",
143     "ocaml-ppx-inline-test",
144     "ocaml-ppx-js-style",
145     "ocaml-ppx-let",
146     "ocaml-ppxlib",
147     "ocaml-ppx-optcomp",
148     "ocaml-ppx-sexp-conv",
149     "ocaml-ppx-stable-witness",
150     "ocaml-ppx-variants-conv",
151     "ocaml-psmt2-frontend",
152     "ocaml-ptmap",
153     "ocaml-pyml",
154     "ocaml-qcheck",
155     "ocaml-qtest",
156     "ocaml-re",
157     "ocaml-react",
158     "ocaml-res",
159     "ocaml-result",
160     "ocaml-rresult",
161     "ocaml-SDL",
162     "ocaml-sedlex",
163     "ocaml-sexplib",
164     "ocaml-sexplib0",
165     "ocaml-sha",
166     "ocaml-sqlite",
167     "ocaml-ssl",
168     "ocaml-stdcompat",
169     "ocaml-stdio",
170     "ocaml-time-now",
171     "ocaml-topkg",
172     "ocaml-trie",
173     "ocaml-tyxml",
174     "ocaml-uucd",
175     "ocaml-uucp",
176     "ocaml-uunf",
177     "ocaml-uuseg",
178     "ocaml-uutf",
179     "ocaml-variantslib",
180     "ocaml-version",
181     "ocaml-xml-light",
182     "ocaml-xmlm",
183     "ocaml-xmlrpc-light",
184     "ocaml-yaml",
185     "ocaml-yojson",
186     "ocaml-zarith",
187     "ocaml-zed",
188     "ocaml-zip",
189     "ocaml-zmq",
190
191     "alt-ergo",
192     "apron",
193     "brltty",
194     "coccinelle",
195     "coq",
196     "emacs-common-tuareg",
197     "flocq",
198     "frama-c",
199     "gappalib-coq",
200     "guestfs-tools",
201     "graphviz",
202     "haxe",
203     "hevea",
204     "hivex",
205     "libguestfs",
206     "libnbd",
207     "opam",
208     "planets",
209     "plplot",
210     "prooftree",
211     "supermin",
212     "swig",
213     "utop",
214     "virt-top",
215     "virt-v2v",
216     "why3",
217     "z3",
218     "zenon",
219
220     # Causes a cyclic dependency between libnbd <-> nbdkit.  We need
221     # to fix this in goals itself, but in the meantime disable nbdkit
222     # and build it by hand.
223     #"nbdkit",
224 ]
225
226 # Get the list of source packages.
227 pure function get-source-packages () returning strings = {
228     cd %fedora-dir
229     for pkg in %packages; do
230         spec=$pkg/%fedora-branch/$pkg.spec
231         if [ -f $spec ]; then
232             # Check that the spec file excludes i686.
233             # Only implement this check for ocaml-* packages, as the
234             # other packages are more complicated.
235             if [[ "$spec" =~ ^ocaml ]] &&
236                ! rpmspec -P $spec | grep -sq 'ExcludeArch:.*i386' ; then
237                 echo "ERROR: $pkg does not ExcludeArch: %%{ix86}" >&2
238                 exit 1
239             fi
240             # OK to rebuild this package.
241             echo "$pkg"
242         elif [ -f $pkg/%fedora-branch/dead.package ]; then
243             echo "WARNING: $pkg: is a dead package, ignored" >&2
244         else
245             echo "ERROR: $pkg: package is not checked out locally" >&2
246             # This does NOT exit the script, why???
247             exit 1
248         fi
249     done
250 }
251 let fedora-source-packages = get-source-packages ()
252
253 # Main goal: Rebuild all packages in Koji.
254 goal all = : wrap ("is-koji-built", fedora-source-packages)