Bug 2314358 - Review Request: idris2 - Purely functional programming language with first class types
Summary: Review Request: idris2 - Purely functional programming language with first cl...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Zbigniew Jędrzejewski-Szmek
QA Contact: Fedora Extras Quality Assurance
URL: https://www.idris-lang.org
Whiteboard:
Depends On:
Blocks: 2346153
TreeView+ depends on / blocked
 
Reported: 2024-09-24 02:43 UTC by Jens Petersen
Modified: 2025-07-13 04:19 UTC (History)
2 users (show)

Fixed In Version: idris2-0.7.0-3.fc43
Clone Of:
Environment:
Last Closed: 2025-07-13 01:45:04 UTC
Type: ---
Embargoed:
zbyszek: fedora-review+


Attachments (Terms of Use)
The .spec file difference from Copr build 8064021 to 8545411 (1.06 KB, patch)
2025-01-19 11:11 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 8545411 to 9229978 (2.79 KB, patch)
2025-07-01 11:44 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 9229978 to 9230048 (772 bytes, patch)
2025-07-01 12:54 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 9230048 to 9230089 (625 bytes, patch)
2025-07-01 13:12 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 9230089 to 9230198 (1.04 KB, patch)
2025-07-01 14:29 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 9230198 to 9231063 (870 bytes, patch)
2025-07-01 15:37 UTC, Fedora Review Service
no flags Details | Diff

Description Jens Petersen 2024-09-24 02:43:29 UTC
Spec URL: https://petersen.fedorapeople.org/reviews/idris2/idris2.spec
SRPM URL: https://petersen.fedorapeople.org/reviews/idris2/idris2-0.7.0-1.fc42.src.rpm

Description:
Idris is a programming language designed to encourage Type-Driven Development.

Fedora Account System Username: petersen


Koji scratch build: https://koji.fedoraproject.org/koji/taskinfo?taskID=123864196

Comment 1 Fedora Review Service 2024-09-24 03:01:45 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/8064021
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2314358-idris2/fedora-rawhide-x86_64/08064021-idris2/fedora-review/review.txt

Found issues:

- idris2 : /usr/lib64/idris2-0.7.0/support/c/getline.h idris2 : /usr/lib64/idris2-0.7.0/support/c/idris_directory.h idris2 : /usr/lib64/idris2-0.7.0/support/c/idris_file.h idris2 : /usr/lib64/idris2-0.7.0/support/c/idris_memory.h idris2 : /usr/lib64/idris2-0.7.0/support/c/idris_net.h idris2 : /usr/lib64/idris2-0.7.0/support/c/idris_signal.h idris2 : /usr/lib64/idris2-0.7.0/support/c/idris_support.h idris2 : /usr/lib64/idris2-0.7.0/support/c/idris_system.h idris2 : /usr/lib64/idris2-0.7.0/support/c/idris_term.h idris2 : /usr/lib64/idris2-0.7.0/support/c/idris_util.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/_datatypes.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/buffer.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/cBackend.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/casts.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/clock.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/conCaseHelper.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/mathFunctions.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/memoryManagement.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/prim.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/refc_util.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/runtime.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/stringOps.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/threads.h idris2-docs : /usr/share/doc/idris2-docs/samples/FFI-readline/readline_glue/idris_readline.h 
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_devel_packages
- Unversioned so-files directly in %_libdir.
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_devel_packages
- Package has .a files: idris2. Illegal package name: idris2. Does not provide -static: idris2.
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/#packaging-static-libraries
- Documentation size is 3032712 bytes in 188 files. 
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_documentation

Please know that there can be false-positives.

---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 2 Zbigniew Jędrzejewski-Szmek 2025-01-16 11:27:37 UTC
Please don't use the confusingly-named %bconf_with/without.

> # always bootstrap: otherwise rebuild fails
> %bcond_without boot
%bcond bootstrap 1

> %bcond_without docs
%bcond docs 1

> # requires network?
> %bcond_with test
%bcond test 0

> # no chez-scheme for s390x
> # ppc64le and i686 give linking error:
> # - Exception: (while loading libc.so) /lib/libc.so: invalid ELF header
> %ifarch ppc64le s390x %{ix86}
> %bcond_without racket
> %else
> %bcond_with racket
> %endif
Hmm. Is the with/without reversed?
https://github.com/rpm-software-management/rpm/issues/3165
is still unresolved. So I guess something like this is the best we
can do right now:

%ifarch ppc64le s390x %{ix86}
%bcond racket 0
%else
%bcond racket 1
%endif

Comment 3 Jens Petersen 2025-01-19 09:50:58 UTC
Thanks, Zbigniew

Comment 5 Fedora Review Service 2025-01-19 11:11:45 UTC
Created attachment 2066676 [details]
The .spec file difference from Copr build 8064021 to 8545411

Comment 6 Fedora Review Service 2025-01-19 11:11:47 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/8545411
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2314358-idris2/fedora-rawhide-x86_64/08545411-idris2/fedora-review/review.txt

Found issues:

- idris2 : /usr/lib64/idris2-0.7.0/support/c/getline.h idris2 : /usr/lib64/idris2-0.7.0/support/c/idris_directory.h idris2 : /usr/lib64/idris2-0.7.0/support/c/idris_file.h idris2 : /usr/lib64/idris2-0.7.0/support/c/idris_memory.h idris2 : /usr/lib64/idris2-0.7.0/support/c/idris_net.h idris2 : /usr/lib64/idris2-0.7.0/support/c/idris_signal.h idris2 : /usr/lib64/idris2-0.7.0/support/c/idris_support.h idris2 : /usr/lib64/idris2-0.7.0/support/c/idris_system.h idris2 : /usr/lib64/idris2-0.7.0/support/c/idris_term.h idris2 : /usr/lib64/idris2-0.7.0/support/c/idris_util.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/_datatypes.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/buffer.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/cBackend.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/casts.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/clock.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/conCaseHelper.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/mathFunctions.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/memoryManagement.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/prim.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/refc_util.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/runtime.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/stringOps.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/threads.h idris2-docs : /usr/share/doc/idris2-docs/samples/FFI-readline/readline_glue/idris_readline.h 
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_devel_packages
- Unversioned so-files directly in %_libdir.
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_devel_packages
- Package has .a files: idris2. Illegal package name: idris2. Does not provide -static: idris2.
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/#packaging-static-libraries
- Documentation size is 3035172 bytes in 189 files. 
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_documentation

Please know that there can be false-positives.

---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 7 Zbigniew Jędrzejewski-Szmek 2025-01-20 09:18:11 UTC
Suggestion 1:
> https://github.com/idris-lang/Idris2/archive/refs/tags/v0.7.0.tar.gz#/%{name}-%{version}.tar.gz
Source0:        https://github.com/idris-lang/Idris2/archive/v%{version_no_tilde}/%{name}-%{version_no_tilde}.tar.gz

Suggestion 2: rpmautospec :)

rpmlint:
idris2-docs.x86_64: E: version-control-internal-file /usr/share/doc/idris2-docs/samples/FFI-readline/readline_glue/.gitignore
idris2-docs.x86_64: W: hidden-file-or-dir /usr/share/doc/idris2-docs/html/.buildinfo
idris2-docs.x86_64: W: hidden-file-or-dir /usr/share/doc/idris2-docs/samples/FFI-readline/readline_glue/.gitignore
Please drop.

idris2-lib.x86_64: W: summary-not-capitalized idris2 runtime support library
False positive.

idris2.x86_64: E: static-library-without-debuginfo /usr/lib64/idris2-0.7.0/support/refc/libidris2_refc.a
Hmm, is this needed? If yes, please add a comment in the spec file.

idris2-lib.x86_64: W: no-soname /usr/lib64/libidris2_support.so
This seems to be an upstream problem. What is the indended use of the library?

idris2.x86_64: W: no-manual-page-for-binary idris2
Unfortunately that is common.

idris2-lib.x86_64: W: no-documentation
This is OK.

idris2-docs.x86_64: E: no-binary
Please make the subpackage noarch.

idris2.x86_64: W: files-duplicate /usr/lib64/idris2-0.7.0/linear-0.7.0/2023090800/Data/Linear/List/LQuantifiers.so /usr/lib64/idris2-0.7.0/contrib-0.7.0/2023090800/Data/Order.so
idris2-docs.x86_64: W: files-duplicate /usr/share/doc/idris2-docs/samples/ffi/dummy.ipkg /usr/share/doc/idris2-docs/samples/dummy.ipkg
Those are all tiny, so this doesn't matter. I guess hardlinking could be done at the end of %install. This would have the benefit of suppressing the warning from rpmlint.
(BuildRequires: hardlink; hardlink --reflink=never -v %{buildroot}%{_usr})

idris2.x86_64: W: devel-file-in-non-devel-package /usr/lib64/idris2-0.7.0/support/c/getline.h
idris2.x86_64: W: devel-file-in-non-devel-package /usr/lib64/idris2-0.7.0/support/c/idris_directory.h
idris2.x86_64: W: devel-file-in-non-devel-package /usr/lib64/idris2-0.7.0/support/c/idris_file.h
idris2.x86_64: W: devel-file-in-non-devel-package /usr/lib64/idris2-0.7.0/support/c/idris_memory.h
idris2.x86_64: W: devel-file-in-non-devel-package /usr/lib64/idris2-0.7.0/support/c/idris_net.h
idris2.x86_64: W: devel-file-in-non-devel-package /usr/lib64/idris2-0.7.0/support/c/idris_signal.h
idris2.x86_64: W: devel-file-in-non-devel-package /usr/lib64/idris2-0.7.0/support/c/idris_support.h
idris2.x86_64: W: devel-file-in-non-devel-package /usr/lib64/idris2-0.7.0/support/c/idris_system.h
idris2.x86_64: W: devel-file-in-non-devel-package /usr/lib64/idris2-0.7.0/support/c/idris_term.h
idris2.x86_64: W: devel-file-in-non-devel-package /usr/lib64/idris2-0.7.0/support/c/idris_util.h
idris2.x86_64: W: devel-file-in-non-devel-package /usr/lib64/idris2-0.7.0/support/refc/_datatypes.h
idris2.x86_64: W: devel-file-in-non-devel-package /usr/lib64/idris2-0.7.0/support/refc/buffer.h
idris2.x86_64: W: devel-file-in-non-devel-package /usr/lib64/idris2-0.7.0/support/refc/cBackend.h
idris2.x86_64: W: devel-file-in-non-devel-package /usr/lib64/idris2-0.7.0/support/refc/casts.h
idris2.x86_64: W: devel-file-in-non-devel-package /usr/lib64/idris2-0.7.0/support/refc/clock.h
idris2.x86_64: W: devel-file-in-non-devel-package /usr/lib64/idris2-0.7.0/support/refc/conCaseHelper.h
idris2.x86_64: W: devel-file-in-non-devel-package /usr/lib64/idris2-0.7.0/support/refc/libidris2_refc.a
idris2.x86_64: W: devel-file-in-non-devel-package /usr/lib64/idris2-0.7.0/support/refc/mathFunctions.h
idris2.x86_64: W: devel-file-in-non-devel-package /usr/lib64/idris2-0.7.0/support/refc/memoryManagement.h
idris2.x86_64: W: devel-file-in-non-devel-package /usr/lib64/idris2-0.7.0/support/refc/prim.h
idris2.x86_64: W: devel-file-in-non-devel-package /usr/lib64/idris2-0.7.0/support/refc/refc_util.h
idris2.x86_64: W: devel-file-in-non-devel-package /usr/lib64/idris2-0.7.0/support/refc/runtime.h
idris2.x86_64: W: devel-file-in-non-devel-package /usr/lib64/idris2-0.7.0/support/refc/stringOps.h
idris2.x86_64: W: devel-file-in-non-devel-package /usr/lib64/idris2-0.7.0/support/refc/threads.h
Are those needed at runtime? If yes, please add a comment.

============ 6 packages and 0 specfiles checked; 3 errors, 32 warnings, 27 filtered, 3 badness; has taken 1.8 s ============


> # no chez-scheme for s390x
> # ppc64le and i686 give linking error:
> # - Exception: (while loading libc.so) /lib/libc.so: invalid ELF header
> %ifarch ppc64le s390x %{ix86}
> %bcond racket 1
So the %bcond_without _was_ correct. But I was confused by this comment. It'd be good to expand it a bit so that a casual reader is not confused.

This package is fairly complex and unusual, so I'll go by the official list in Things To Check On Review:
- rpmlint: some things to fix
+ package name is OK
+ spec file name is OK
+ license is acceptable for Fedora (BSD-3-Clause)
+ license is specified correctly
- license file is installed
  The license file should be in -lib, so that it is always installed.
  (Or alternatively, -lib subpackage should be merged into the main subpackage. I'm not sure if the library is useful on its own.)
+ spec file is in English and is legible
+ Source URL is OK, but see suggestion above
+ package builds OK
+ BR/R/P look OK
+ locales don't seem to be supported
+ files seem to be listed correctly
+ macros are used as appropriate
+ package contains code
- -doc subpackage has been split out
We've standarized on -doc spelling. The package is currently called -docs. Please rename.
+ %doc files are not used at runtime
- static files in -static subpackage
See above.
- development files in -devel subpackage
Also see above.
+ .desktop file for GUI applications
Not applicable.
+ directory ownership looks OK
+ file names as all ASCII
+ no deprecated packages are referenced
+ license text already included
+ the package seems be build fine in mock
+ the package has provisions to build on all architectures
+ the binary runs, I have no idea how to make it do useful things
+ no scriptlets are needed
+ a versioned dependency is defined from the main package to -lib
+ no pkgconfig file is present
+ no file dependencies are defined
+ man pages are missing, but that is not required

Some things to fix. Please explain why the .a and .h and .so files are handled as they are.

Comment 8 Jens Petersen 2025-07-01 11:09:28 UTC
Thank you for taking this review :-)
I hadn't forgotten about it...

Sorry for the very long delay: I wanted to respond in full, but lacked time.
TBH this package was one of the hardest to create in my long packaging history.
Part of the problem is that upstream doesn't really care that much about distro packaging.
Nevertheless v2 is fairly mature by now, and I feel including it in Fedora is overdue,
since v1 is long deprecated.
I guess what I wanted to say is I don't know how much further the packaging can be improved easily...
(For better or worse it was fairly trivial to get v1 to still build with ghc 9.8 in rawhide:
the old Haskell codebase seems surprisingly robust against aging.)

(In reply to Zbigniew Jędrzejewski-Szmek from comment #7)
> Suggestion 1:
> > https://github.com/idris-lang/Idris2/archive/refs/tags/v0.7.0.tar.gz#/%{name}-%{version}.tar.gz
> Source0:       
> https://github.com/idris-lang/Idris2/archive/v%{version_no_tilde}/%{name}-
> %{version_no_tilde}.tar.gz

Okay

> Suggestion 2: rpmautospec :)

Sure - I typically do this when importing. :)

> rpmlint:
> idris2-docs.x86_64: E: version-control-internal-file
> /usr/share/doc/idris2-docs/samples/FFI-readline/readline_glue/.gitignore
> idris2-docs.x86_64: W: hidden-file-or-dir
> /usr/share/doc/idris2-docs/html/.buildinfo
> idris2-docs.x86_64: W: hidden-file-or-dir
> /usr/share/doc/idris2-docs/samples/FFI-readline/readline_glue/.gitignore
> Please drop.

Sure 

> idris2.x86_64: E: static-library-without-debuginfo
> /usr/lib64/idris2-0.7.0/support/refc/libidris2_refc.a
> Hmm, is this needed? If yes, please add a comment in the spec file.

Probably I think so - I would have to ask upstream or check the code.
I might have asked in the past.

> idris2-lib.x86_64: W: no-soname /usr/lib64/libidris2_support.so
> This seems to be an upstream problem. What is the intended use of the
> library?

Good question - I think it is needed for the runtime.
I can ask upstream or try to dig up old discussions from when I did the initial packaging work.

> idris2-docs.x86_64: E: no-binary
> Please make the subpackage noarch.

Okay - I am renaming it to -doc too.

> idris2.x86_64: W: files-duplicate
> /usr/lib64/idris2-0.7.0/linear-0.7.0/2023090800/Data/Linear/List/LQuantifiers.so
> /usr/lib64/idris2-0.7.0/contrib-0.7.0/2023090800/Data/Order.so

Yeah: slightly surprising

> idris2-docs.x86_64: W: files-duplicate
> /usr/share/doc/idris2-docs/samples/ffi/dummy.ipkg
> /usr/share/doc/idris2-docs/samples/dummy.ipkg
> Those are all tiny, so this doesn't matter. I guess hardlinking could be
> done at the end of %install. This would have the benefit of suppressing the
> warning from rpmlint.
> (BuildRequires: hardlink; hardlink --reflink=never -v %{buildroot}%{_usr})

Okay will try to look into it more.

> idris2.x86_64: W: devel-file-in-non-devel-package
> /usr/lib64/idris2-0.7.0/support/c/getline.h
> idris2.x86_64: W: devel-file-in-non-devel-package
> /usr/lib64/idris2-0.7.0/support/c/idris_directory.h
> idris2.x86_64: W: devel-file-in-non-devel-package
> /usr/lib64/idris2-0.7.0/support/c/idris_file.h
> idris2.x86_64: W: devel-file-in-non-devel-package
> /usr/lib64/idris2-0.7.0/support/c/idris_memory.h
> idris2.x86_64: W: devel-file-in-non-devel-package
> /usr/lib64/idris2-0.7.0/support/c/idris_net.h
> idris2.x86_64: W: devel-file-in-non-devel-package
> /usr/lib64/idris2-0.7.0/support/c/idris_signal.h
> idris2.x86_64: W: devel-file-in-non-devel-package
> /usr/lib64/idris2-0.7.0/support/c/idris_support.h
> idris2.x86_64: W: devel-file-in-non-devel-package
> /usr/lib64/idris2-0.7.0/support/c/idris_system.h
> idris2.x86_64: W: devel-file-in-non-devel-package
> /usr/lib64/idris2-0.7.0/support/c/idris_term.h
> idris2.x86_64: W: devel-file-in-non-devel-package
> /usr/lib64/idris2-0.7.0/support/c/idris_util.h
> idris2.x86_64: W: devel-file-in-non-devel-package
> /usr/lib64/idris2-0.7.0/support/refc/_datatypes.h
> idris2.x86_64: W: devel-file-in-non-devel-package
> /usr/lib64/idris2-0.7.0/support/refc/buffer.h
> idris2.x86_64: W: devel-file-in-non-devel-package
> /usr/lib64/idris2-0.7.0/support/refc/cBackend.h
> idris2.x86_64: W: devel-file-in-non-devel-package
> /usr/lib64/idris2-0.7.0/support/refc/casts.h
> idris2.x86_64: W: devel-file-in-non-devel-package
> /usr/lib64/idris2-0.7.0/support/refc/clock.h
> idris2.x86_64: W: devel-file-in-non-devel-package
> /usr/lib64/idris2-0.7.0/support/refc/conCaseHelper.h
> idris2.x86_64: W: devel-file-in-non-devel-package
> /usr/lib64/idris2-0.7.0/support/refc/libidris2_refc.a
> idris2.x86_64: W: devel-file-in-non-devel-package
> /usr/lib64/idris2-0.7.0/support/refc/mathFunctions.h
> idris2.x86_64: W: devel-file-in-non-devel-package
> /usr/lib64/idris2-0.7.0/support/refc/memoryManagement.h
> idris2.x86_64: W: devel-file-in-non-devel-package
> /usr/lib64/idris2-0.7.0/support/refc/prim.h
> idris2.x86_64: W: devel-file-in-non-devel-package
> /usr/lib64/idris2-0.7.0/support/refc/refc_util.h
> idris2.x86_64: W: devel-file-in-non-devel-package
> /usr/lib64/idris2-0.7.0/support/refc/runtime.h
> idris2.x86_64: W: devel-file-in-non-devel-package
> /usr/lib64/idris2-0.7.0/support/refc/stringOps.h
> idris2.x86_64: W: devel-file-in-non-devel-package
> /usr/lib64/idris2-0.7.0/support/refc/threads.h
> Are those needed at runtime? If yes, please add a comment.

I/we should probably clarify what we mean by "runtime".
(In other part of this comment by "runtime" I meant not compiler runtime but for running output of the compiler, ie RTS.)

Yes, I think they are needed at compiler runtime for the C backend.
Though I can check with upstream I guess.

> > # no chez-scheme for s390x

So actually we have chez-scheme for s390x now in the meantime, though I haven't tried to build with it yet.

(Also there is a new chez-scheme minor release out, so I will try to build that soon in rawhide)

> > # ppc64le and i686 give linking error:
> > # - Exception: (while loading libc.so) /lib/libc.so: invalid ELF header
> > %ifarch ppc64le s390x %{ix86}
> > %bcond racket 1
> So the %bcond_without _was_ correct. But I was confused by this comment.
> It'd be good to expand it a bit so that a casual reader is not confused.

Okay

Also ppc64le and ix86 are currently disabled.
Unfortunately upstream only supports ppc64le via vm bytecodes.

> This package is fairly complex and unusual, so I'll go by the official list
> in Things To Check On Review:
> - rpmlint: some things to fix
> + package name is OK
> + spec file name is OK
> + license is acceptable for Fedora (BSD-3-Clause)
> + license is specified correctly
> - license file is installed
>   The license file should be in -lib, so that it is always installed.
>   (Or alternatively, -lib subpackage should be merged into the main
> subpackage. I'm not sure if the library is useful on its own.)

Okay moving it.

The idea is that the lib subpackage would be used for runtime support:
not compilation runtime, but running generated binaries.

> + spec file is in English and is legible
> + Source URL is OK, but see suggestion above
> + package builds OK
> + BR/R/P look OK
> + locales don't seem to be supported
> + files seem to be listed correctly
> + macros are used as appropriate
> + package contains code
> - -doc subpackage has been split out
> We've standardized on -doc spelling. The package is currently called -docs.
> Please rename.

Sure

> + %doc files are not used at runtime
> - static files in -static subpackage
> See above.
> - development files in -devel subpackage
> Also see above.

Perhaps some could be split out - not very sure.
But initially might be easier just to keep things together perhaps.
If we consider idris2 a compiler then the main distinction is really
compile-time vs runtime.

> + .desktop file for GUI applications
> Not applicable.
> + directory ownership looks OK
> + file names as all ASCII
> + no deprecated packages are referenced
> + license text already included
> + the package seems be build fine in mock
> + the package has provisions to build on all architectures

> + the binary runs, I have no idea how to make it do useful things

Well you can try some basic things from here:
https://idris2.readthedocs.io/en/latest/tutorial/starting.html#checking-installation

> + no scriptlets are needed
> + a versioned dependency is defined from the main package to -lib
> + no pkgconfig file is present
> + no file dependencies are defined
> + man pages are missing, but that is not required
> 
> Some things to fix. Please explain why the .a and .h and .so files are
> handled as they are.

Will try to follow up with any info I can find.

Comment 9 Jens Petersen 2025-07-01 11:33:43 UTC
Spec URL: https://petersen.fedorapeople.org/reviews/idris2/idris2.spec
SRPM URL: https://petersen.fedorapeople.org/reviews/idris2/idris2-0.7.0-3.fc43.src.rpm

- use github archive url (zbyszek, #2314358)
- enable s390x
- rename docs subpackage to noarch doc (#2314358)
- move license file to lib (zbyszek, #2314358)

Comment 10 Jens Petersen 2025-07-01 11:35:24 UTC
> rpmlint:
> idris2-docs.x86_64: E: version-control-internal-file
> /usr/share/doc/idris2-docs/samples/FFI-readline/readline_glue/.gitignore
> idris2-docs.x86_64: W: hidden-file-or-dir
> /usr/share/doc/idris2-docs/html/.buildinfo
> idris2-docs.x86_64: W: hidden-file-or-dir
> /usr/share/doc/idris2-docs/samples/FFI-readline/readline_glue/.gitignore
> Please drop.

The archive tarball seemed to get rid of these :-)

Comment 11 Jens Petersen 2025-07-01 11:38:46 UTC
And these too I meant to say:

> idris2-docs.x86_64: W: files-duplicate
> /usr/share/doc/idris2-docs/samples/ffi/dummy.ipkg
> /usr/share/doc/idris2-docs/samples/dummy.ipkg

Comment 12 Fedora Review Service 2025-07-01 11:44:55 UTC
Created attachment 2095835 [details]
The .spec file difference from Copr build 8545411 to 9229978

Comment 13 Fedora Review Service 2025-07-01 11:44:58 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/9229978
(failed)

Build log:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2314358-idris2/fedora-rawhide-x86_64/09229978-idris2/builder-live.log.gz

Please make sure the package builds successfully at least for Fedora Rawhide.

- If the build failed for unrelated reasons (e.g. temporary network
  unavailability), please ignore it.
- If the build failed because of missing BuildRequires, please make sure they
  are listed in the "Depends On" field


---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 14 Zbigniew Jędrzejewski-Szmek 2025-07-01 12:06:36 UTC
+ find /builddir/build/BUILD/idris2-0.7.0-build/BUILDROOT/usr/share/doc/idris2-docs/samples -name .gitignore -delete
find: ‘/builddir/build/BUILD/idris2-0.7.0-build/BUILDROOT/usr/share/doc/idris2-docs/samples’: No such file or directory
error: Bad exit status from /var/tmp/rpm-tmp.aad0Oo (%install)

Comment 15 Jens Petersen 2025-07-01 12:42:53 UTC
Spec URL: https://petersen.fedorapeople.org/reviews/idris2/idris2.spec
SRPM URL: https://petersen.fedorapeople.org/reviews/idris2/idris2-0.7.0-4.fc43.src.rpm

ugh this is the correct upload (samples is gone with the archive tarball)

Comment 16 Jens Petersen 2025-07-01 12:44:01 UTC
Sorry about that - I had tested and fixed it after uploading :palm-face:

Comment 17 Fedora Review Service 2025-07-01 12:54:54 UTC
Created attachment 2095840 [details]
The .spec file difference from Copr build 9229978 to 9230048

Comment 18 Fedora Review Service 2025-07-01 12:54:57 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/9230048
(failed)

Build log:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2314358-idris2/fedora-rawhide-x86_64/09230048-idris2/builder-live.log.gz

Please make sure the package builds successfully at least for Fedora Rawhide.

- If the build failed for unrelated reasons (e.g. temporary network
  unavailability), please ignore it.
- If the build failed because of missing BuildRequires, please make sure they
  are listed in the "Depends On" field


---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 19 Jens Petersen 2025-07-01 13:01:31 UTC
Spec URL: https://petersen.fedorapeople.org/reviews/idris2/idris2.spec
SRPM URL: https://petersen.fedorapeople.org/reviews/idris2/idris2-0.7.0-5.fc43.src.rpm

my goodness - hopefully this one builds...

Comment 20 Fedora Review Service 2025-07-01 13:12:34 UTC
Created attachment 2095841 [details]
The .spec file difference from Copr build 9230048 to 9230089

Comment 21 Fedora Review Service 2025-07-01 13:12:37 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/9230089
(failed)

Build log:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2314358-idris2/fedora-rawhide-x86_64/09230089-idris2/builder-live.log.gz

Please make sure the package builds successfully at least for Fedora Rawhide.

- If the build failed for unrelated reasons (e.g. temporary network
  unavailability), please ignore it.
- If the build failed because of missing BuildRequires, please make sure they
  are listed in the "Depends On" field


---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 23 Fedora Review Service 2025-07-01 14:29:49 UTC
Created attachment 2095843 [details]
The .spec file difference from Copr build 9230089 to 9230198

Comment 24 Fedora Review Service 2025-07-01 14:29:52 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/9230198
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2314358-idris2/fedora-rawhide-x86_64/09230198-idris2/fedora-review/review.txt

Found issues:

- idris2 : /usr/lib64/idris2-0.7.0/support/c/getline.h idris2 : /usr/lib64/idris2-0.7.0/support/c/idris_directory.h idris2 : /usr/lib64/idris2-0.7.0/support/c/idris_file.h idris2 : /usr/lib64/idris2-0.7.0/support/c/idris_memory.h idris2 : /usr/lib64/idris2-0.7.0/support/c/idris_net.h idris2 : /usr/lib64/idris2-0.7.0/support/c/idris_signal.h idris2 : /usr/lib64/idris2-0.7.0/support/c/idris_support.h idris2 : /usr/lib64/idris2-0.7.0/support/c/idris_system.h idris2 : /usr/lib64/idris2-0.7.0/support/c/idris_term.h idris2 : /usr/lib64/idris2-0.7.0/support/c/idris_util.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/_datatypes.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/buffer.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/cBackend.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/casts.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/clock.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/conCaseHelper.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/mathFunctions.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/memoryManagement.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/prim.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/refc_util.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/runtime.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/stringOps.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/threads.h 
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_devel_packages
- Unversioned so-files directly in %_libdir.
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_devel_packages
- Package has .a files: idris2. Illegal package name: idris2. Does not provide -static: idris2.
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/#packaging-static-libraries

Please know that there can be false-positives.

---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 25 Jens Petersen 2025-07-01 15:16:06 UTC
Phew - my local git was driving my insane...

Comment 27 Fedora Review Service 2025-07-01 15:37:47 UTC
Created attachment 2095844 [details]
The .spec file difference from Copr build 9230198 to 9231063

Comment 28 Fedora Review Service 2025-07-01 15:37:49 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/9231063
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2314358-idris2/fedora-rawhide-x86_64/09231063-idris2/fedora-review/review.txt

Found issues:

- idris2 : /usr/lib64/idris2-0.7.0/support/c/getline.h idris2 : /usr/lib64/idris2-0.7.0/support/c/idris_directory.h idris2 : /usr/lib64/idris2-0.7.0/support/c/idris_file.h idris2 : /usr/lib64/idris2-0.7.0/support/c/idris_memory.h idris2 : /usr/lib64/idris2-0.7.0/support/c/idris_net.h idris2 : /usr/lib64/idris2-0.7.0/support/c/idris_signal.h idris2 : /usr/lib64/idris2-0.7.0/support/c/idris_support.h idris2 : /usr/lib64/idris2-0.7.0/support/c/idris_system.h idris2 : /usr/lib64/idris2-0.7.0/support/c/idris_term.h idris2 : /usr/lib64/idris2-0.7.0/support/c/idris_util.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/_datatypes.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/buffer.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/cBackend.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/casts.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/clock.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/conCaseHelper.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/mathFunctions.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/memoryManagement.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/prim.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/refc_util.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/runtime.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/stringOps.h idris2 : /usr/lib64/idris2-0.7.0/support/refc/threads.h 
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_devel_packages
- Unversioned so-files directly in %_libdir.
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_devel_packages
- Package has .a files: idris2. Illegal package name: idris2. 
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/#packaging-static-libraries

Please know that there can be false-positives.

---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 29 Zbigniew Jędrzejewski-Szmek 2025-07-01 17:42:06 UTC
> %bcond boot 1
Please consider renaming to 'bootstrap'. 'bootstrap' is special, it's one of the macros allowlisted in koji policy.
(Also "boot" sounds too much like "machine boot", which I know comes from the same root, but nowadays is used almost exclusively in the short form for that purpose.)

> %package lib
Please consider renaming to -libs. '-libs' is much more popular and is used even by packages which have just a single library:
$ rpm -qa|grep -e '-lib\b'|wc -l; rpm -qa|grep -e '-libs\b'|wc -l
16
254

I checked that the compiled programs runs fine with only -lib installed, and doesn't when that package is removed. So the split seems correct.

All the comments from the previous round have been addressed and I don't see any new issues.
Package is APPROVED.

Comment 30 Jens Petersen 2025-07-02 12:48:56 UTC
Thanks a lot, Zbigniew, for reviewing and helping to improve the packaging.


(In reply to Zbigniew Jędrzejewski-Szmek from comment #29)
> > %bcond boot 1
> Please consider renaming to 'bootstrap'. 'bootstrap' is special, it's one of
> the macros allowlisted in koji policy.
> (Also "boot" sounds too much like "machine boot", which I know comes from
> the same root, but nowadays is used almost exclusively in the short form for
> that purpose.)

Okay I guess I can rename it to something like scheme_bootstrap.

> > %package lib
> Please consider renaming to -libs. '-libs' is much more popular and is used
> even by packages which have just a single library:

Good point - will do.

> I checked that the compiled programs runs fine with only -lib installed, and
> doesn't when that package is removed. So the split seems correct.

Cool

> All the comments from the previous round have been addressed and I don't see
> any new issues.
> Package is APPROVED.

Thanks again!

Comment 31 Jens Petersen 2025-07-02 13:14:32 UTC
Spec URL: https://petersen.fedorapeople.org/reviews/idris2/idris2.spec
SRPM URL: https://petersen.fedorapeople.org/reviews/idris2/idris2-0.7.0-8.fc43.src.rpm

- rename boot bcond to scm_boot (#2314358)
- rename lib subpackage to libs (zbyszek, #2314358)

Comment 32 Fedora Admin user for bugzilla script actions 2025-07-04 04:48:53 UTC
The Pagure repository was created at https://src.fedoraproject.org/rpms/idris2

Comment 33 Jens Petersen 2025-07-04 04:49:11 UTC
Thank you for the review, Zbigniew

Comment 34 Jens Petersen 2025-07-04 06:00:43 UTC
(Just noting: unfortunately it still FTBFS on s390x, so I will revert that late change)

Comment 35 Fedora Update System 2025-07-04 07:04:40 UTC
FEDORA-2025-7bcbd5b7fa (idris2-0.7.0-3.fc42) has been submitted as an update to Fedora 42.
https://bodhi.fedoraproject.org/updates/FEDORA-2025-7bcbd5b7fa

Comment 36 Fedora Update System 2025-07-04 09:08:25 UTC
FEDORA-2025-1a8b00711a (idris2-0.7.0-4.fc41) has been submitted as an update to Fedora 41.
https://bodhi.fedoraproject.org/updates/FEDORA-2025-1a8b00711a

Comment 38 Fedora Update System 2025-07-04 10:57:38 UTC
FEDORA-EPEL-2025-96d81d5747 (idris2-0.7.0-4.el10_1) has been submitted as an update to Fedora EPEL 10.1.
https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2025-96d81d5747

Comment 40 Fedora Update System 2025-07-04 11:50:55 UTC
FEDORA-EPEL-2025-5d8541dc9e (idris2-0.7.0-4.el9) has been submitted as an update to Fedora EPEL 9.
https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2025-5d8541dc9e

Comment 41 Fedora Update System 2025-07-05 01:06:54 UTC
FEDORA-2025-1a8b00711a has been pushed to the Fedora 41 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf install --enablerepo=updates-testing --refresh --advisory=FEDORA-2025-1a8b00711a \*`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2025-1a8b00711a

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 42 Fedora Update System 2025-07-05 01:11:36 UTC
FEDORA-EPEL-2025-96d81d5747 has been pushed to the Fedora EPEL 10.1 testing repository.

You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2025-96d81d5747

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 43 Fedora Update System 2025-07-05 01:13:06 UTC
FEDORA-EPEL-2025-5d8541dc9e has been pushed to the Fedora EPEL 9 testing repository.

You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2025-5d8541dc9e

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 44 Fedora Update System 2025-07-05 15:46:51 UTC
FEDORA-2025-c8e0b3742d has been pushed to the Fedora 42 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2025-c8e0b3742d`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2025-c8e0b3742d

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 45 Fedora Update System 2025-07-13 01:45:04 UTC
FEDORA-EPEL-2025-96d81d5747 (idris2-0.7.0-4.el10_1) has been pushed to the Fedora EPEL 10.1 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 46 Fedora Update System 2025-07-13 01:56:29 UTC
FEDORA-EPEL-2025-5d8541dc9e (idris2-0.7.0-4.el9) has been pushed to the Fedora EPEL 9 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 47 Fedora Update System 2025-07-13 02:57:19 UTC
FEDORA-2025-1a8b00711a (idris2-0.7.0-4.fc41) has been pushed to the Fedora 41 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 48 Fedora Update System 2025-07-13 04:19:37 UTC
FEDORA-2025-c8e0b3742d (idris2-0.7.0-4.fc42) has been pushed to the Fedora 42 stable repository.
If problem still persists, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.