Bug 1987488

Summary: freetennis: FTBFS in Fedora rawhide/f35
Product: [Fedora] Fedora Reporter: Fedora Release Engineering <releng>
Component: freetennisAssignee: Hans de Goede <hdegoede>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: bruno, hdegoede, rjones
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-08-02 12:24:29 UTC Type: ---
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: 1927309    
Attachments:
Description Flags
build.log
none
root.log
none
state.log
none
freetennis-0.4.8-ocaml-4.12.patch none

Description Fedora Release Engineering 2021-07-29 15:00:26 UTC
freetennis failed to build from source in Fedora rawhide/f35

https://koji.fedoraproject.org/koji/taskinfo?taskID=72347799


For details on the mass rebuild see:

https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Please fix freetennis at your earliest convenience and set the bug's status to
ASSIGNED when you start fixing it. If the bug remains in NEW state for 8 weeks,
freetennis will be orphaned. Before branching of Fedora 36,
freetennis will be retired, if it still fails to build.

For more details on the FTBFS policy, please visit:
https://docs.fedoraproject.org/en-US/fesco/Fails_to_build_from_source_Fails_to_install/

Comment 1 Fedora Release Engineering 2021-07-29 15:00:32 UTC
Created attachment 1807506 [details]
build.log

Comment 2 Fedora Release Engineering 2021-07-29 15:00:36 UTC
Created attachment 1807507 [details]
root.log

file root.log too big, will only attach last 32768 bytes

Comment 3 Fedora Release Engineering 2021-07-29 15:00:39 UTC
Created attachment 1807508 [details]
state.log

Comment 4 Hans de Goede 2021-07-30 22:30:56 UTC
This is caused by an ocaml compile error:

File "freetennis.ml", lines 767-770, characters 26-8:
767 | ..........................struct
768 | 			      type t = int
769 | 			      let compare = compare
770 | 			  end..
Error: Signature mismatch:
       Modules do not match:
         sig
           type t = int
           val compare : ('a -> 'a -> int) -> 'a list -> 'a list -> int
         end
       is not included in
         Map.OrderedType
       Values do not match:
         val compare : ('a -> 'a -> int) -> 'a list -> 'a list -> int
       is not included in
         val compare : t -> t -> int
       File "map.mli", line 54, characters 4-31: Expected declaration
       File "freetennis.ml", line 769, characters 13-20: Actual declaration

Fixing this goes beyond my non-existent ocaml knowledge, so I hope that one of the 2 people in the Cc of this bug can help fix this.

Comment 5 Richard W.M. Jones 2021-07-31 07:33:23 UTC
Created attachment 1809604 [details]
freetennis-0.4.8-ocaml-4.12.patch

This patch fixes the bug.

The problem is that the code opens the List module at the top, importing
every symbol from List into the namespace.  This is generally bad practice.
Recently List.compare was added to OCaml, which shadows the normal
compare function, and this causes the error you saw.

We could explicitly change every call to compare to Stdlib.compare, but
I felt it was better and a small patch to only import the List symbols
which are actually used.

Comment 6 Richard W.M. Jones 2021-07-31 07:36:35 UTC
Change to OCaml: https://github.com/ocaml/ocaml/pull/9668

Comment 7 Richard W.M. Jones 2021-07-31 07:39:06 UTC
BTW this could also be written like this, although that would
make the code depend on a very new OCaml only:

let length, hd, append, mem, filter = List.(length, hd, append, mem, filter)

Comment 8 Fedora Release Engineering 2021-08-01 04:26:32 UTC
Dear Maintainer,

your package has an open Fails To Build From Source bug for Fedora 35.
Action is required from you.

If you can fix your package to build, perform a build in koji, and either create
an update in bodhi, or close this bug without creating an update, if updating is
not appropriate [1]. If you are working on a fix, set the status to ASSIGNED to
acknowledge this. If you have already fixed this issue, please close this Bugzilla report.

Following the policy for such packages [2], your package will be orphaned if
this bug remains in NEW state more than 8 weeks (not sooner than 2021-09-23).

A week before the mass branching of Fedora 36 according to the schedule [3],
any packages not successfully rebuilt at least on Fedora 34 will be
retired regardless of the status of this bug.

[1] https://docs.fedoraproject.org/en-US/fesco/Updates_Policy/
[2] https://docs.fedoraproject.org/en-US/fesco/Fails_to_build_from_source_Fails_to_install/
[3] https://fedorapeople.org/groups/schedule/f-36/f-36-key-tasks.html

Comment 9 Hans de Goede 2021-08-01 09:19:52 UTC
Richard, thank you for the patch.

I'll prepare a new fixed package with the patch soon.

Comment 10 Hans de Goede 2021-08-02 12:24:29 UTC
Fixed and build for rawhide, closing.