Build fails with ... Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.cUmXAW make -C src build + umask 022 + cd /builddir/build/BUILD + cd ocaml-extlib-1.7.0 + unset MAKEFLAGS + make build -j1 make: git: Command not found make[1]: Entering directory '/builddir/build/BUILD/ocaml-extlib-1.7.0/src' cppo -D OCAML4 -D OCAML4_02 -D WITH_BYTES extBytes.mlpp -o extBytes.ml make[1]: Leaving directory '/builddir/build/BUILD/ocaml-extlib-1.7.0/src' Fatal error: unknown C primitive `caml_is_printable' make[1]: *** [Makefile:50: extBytes.ml] Error 2 make: *** [Makefile:13: build] Error 2 error: Bad exit status from /var/tmp/rpm-tmp.cUmXAW (%build) Bad exit status from /var/tmp/rpm-tmp.cUmXAW (%build) for full logs please see http://s390.koji.fedoraproject.org/koji/taskinfo?taskID=2396028 Version-Release number of selected component (if applicable): ocaml-extlib-1.7.0-1.fc26
I believe this is because you're using the old (and bytecode) version of ocaml-cppo. The latest ocaml-cppo is ocaml-cppo-1.4.0-1.fc26, and that is a native binary: $ file /usr/bin/cppo /usr/bin/cppo: ELF 64-bit MSB executable, IBM S/390, version 1 (SYSV), dynamically linked, interpreter /lib/ld64.so.1, for GNU/Linux 3.2.0, BuildID[sha1]=6dd3701da7493a10499df679a7d56bf992d8cc63, stripped but the one you are using is 1.1.2-3.fc24. What I'm not clear about is why didn't koji-shadow build ocaml-cppo first? It is a BuildRequires of ocaml-extlib. Anyway this is not a bug, I am able to build ocaml-extlib find on devel10 after building and installing ocaml-cppo first.
s/find/fine/
OK, will set a substitution in shadow config, because ocaml-cppo.x86_64 1.1.2-3.fc24 was used in primary koji for building ocaml-extlib-1.7.0-1.fc26 - https://kojipkgs.fedoraproject.org//packages/ocaml-extlib/1.7.0/1.fc26/data/logs/x86_64/root.log
I see - ocaml-cppo in other architectures was always a native binary so old versions would have continued to work. Only the bytecode binaries need the ocaml-runtime package and would be broken if it is updated (for libraries we use a versioned Requires on ocaml-runtime to avoid this, but not for bytecode binaries).