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/
Created attachment 1807506 [details] build.log
Created attachment 1807507 [details] root.log file root.log too big, will only attach last 32768 bytes
Created attachment 1807508 [details] state.log
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.
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.
Change to OCaml: https://github.com/ocaml/ocaml/pull/9668
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)
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
Richard, thank you for the patch. I'll prepare a new fixed package with the patch soon.
Fixed and build for rawhide, closing.