Bug 1393334

Summary: FTBFS due Fatal error: unknown C primitive `caml_is_printable'
Product: [Fedora] Fedora Reporter: Dan Horák <dan>
Component: ocaml-extlibAssignee: Richard W.M. Jones <rjones>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: lxtnow, rjones
Target Milestone: ---   
Target Release: ---   
Hardware: s390x   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-11-09 11:39:17 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 467765    

Description Dan Horák 2016-11-09 11:05:48 UTC
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

Comment 1 Richard W.M. Jones 2016-11-09 11:39:17 UTC
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.

Comment 2 Richard W.M. Jones 2016-11-09 11:39:39 UTC
s/find/fine/

Comment 3 Dan Horák 2016-11-09 12:12:59 UTC
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

Comment 4 Richard W.M. Jones 2016-11-09 12:20:33 UTC
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).