https://bugzilla.redhat.com/show_bug.cgi?id=2253354
Bug ID: 2253354 Summary: Review Request: asl - AMPL Solver Library Product: Fedora Version: rawhide Hardware: All OS: Linux Status: NEW Component: Package Review Severity: medium Priority: medium Assignee: nobody@fedoraproject.org Reporter: loganjerry@gmail.com QA Contact: extras-qa@fedoraproject.org CC: package-review@lists.fedoraproject.org Target Milestone: --- Classification: Fedora
Spec URL: https://jjames.fedorapeople.org/asl/asl.spec SRPM URL: https://jjames.fedorapeople.org/asl/asl-20231111-1.20231117git2473f4e.fc40.s... Fedora Account System Username: jjames Description: The AMPL Solver Library is an interface used to access a variety of solvers from AMPL code.
There was previously a package named asl in Fedora. This is a completely different package. The other package was last built for F35, so I don't think it will be a problem to have this package assume the name.
This package is part of an effort to add the SoPlex and SCIP solvers to Fedora. The entire collection of packages is available in a COPR: https://copr.fedorainfracloud.org/coprs/jjames/SCIP/.
https://bugzilla.redhat.com/show_bug.cgi?id=2253354
--- Comment #1 from Fedora Review Service fedora-review-bot@fedoraproject.org --- Copr build: https://copr.fedorainfracloud.org/coprs/build/6729874 (succeeded)
Review template: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-rev...
Found issues:
- A package with this name already exists. Please check https://src.fedoraproject.org/rpms/asl Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/Naming/#_conflicti...
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.
https://bugzilla.redhat.com/show_bug.cgi?id=2253354
Jerry James loganjerry@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Blocks| |2253362
Referenced Bugs:
https://bugzilla.redhat.com/show_bug.cgi?id=2253362 [Bug 2253362] Review Request: scip - Solving Constraint Integer Programs
https://bugzilla.redhat.com/show_bug.cgi?id=2253354
Lyes Saadi fedora@lyes.eu changed:
What |Removed |Added ---------------------------------------------------------------------------- Flags| |fedora-review? Assignee|nobody@fedoraproject.org |fedora@lyes.eu Doc Type|--- |If docs needed, set a value CC| |fedora@lyes.eu
--- Comment #2 from Lyes Saadi fedora@lyes.eu --- Will take this first. I'll look into the second package I owe you after this one. I will review it tomorrow though, since it's 4:40 where I am ^^' !
Just a quick note on this having the same name as an old asl package, I am a bit confused about what procedure this should follow? My best guess is that it should technically follow the unretirement process and also follow https://docs.fedoraproject.org/en-US/packaging-guidelines/#renaming-or-repla... and obsolete the old version, as per :
If a package supersedes/replaces an existing package without being a sufficiently compatible replacement as defined above, use only the Obsoletes: line from the above example.
Although, I am a bit confused about what obsolete would do in this situation... I'll dig further into it tomorrow.
https://bugzilla.redhat.com/show_bug.cgi?id=2253354
Jerry James loganjerry@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED
--- Comment #3 from Jerry James loganjerry@gmail.com --- Thank you, Lyes. For goodness sake, get some sleep! :-) The unretirement process would have to be followed, yes. I did not add any Obsoletes since it seemed to me that they would not do anything useful. But I'll think about it overnight as well.
https://bugzilla.redhat.com/show_bug.cgi?id=2253354
--- Comment #4 from Lyes Saadi fedora@lyes.eu --- Damn, that was a heck of a package review :D. All my observations are in the Notes section.
My thoughts on the Obsoletes situation is that the previous asl package was retired in Fedora 35, which isn't that long ago, and since lots of people do not reinstall Fedora, some might have the old asl package, and having it be replaced with the new asl wouldn't be desirable. If Obsoletes actually do what I understand from the documentation which is preventing that upgrade, it would be desirable to have that. But, the way Obsoletes works is confusing and it seems to have different behavior in RPM and DNF. So, some testing is still needed, I'll try to do it in a COPR this night to make sure to have a definitive answer and get back to you.
Package Review ==============
Legend: [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated [ ] = Manual review needed
Notes: ====== MUST: - There is a conflict between `asl-devel` and `mp-devel` that needs to be solved. Probably by having mp depend on asl since they seem to be bundling the files in question. BUT, I have just seen that it seems to be work in progress (https://src.fedoraproject.org/rpms/mp/pull-request/2) ! - We should figure out the Obsoletes situation, I'll do some tests on COPR before to see how Obsoletes work with dnf and then get back to you. SHOULD: - Ask Upstream to put also provide a seperate SMLNJ license file. - Upstream patches, but the work seems to have already been started.
Issues: ======= - Package does not use a name that already exists. Note: A package with this name already exists. Please check https://src.fedoraproject.org/rpms/asl See: https://docs.fedoraproject.org/en-US/packaging- guidelines/Naming/#_conflicting_package_names
===== MUST items =====
C/C++: [-]: Provides: bundled(gnulib) in place as required. Note: Sources not installed [x]: Package does not contain kernel modules. [x]: If your application is a C or C++ application you must list a BuildRequires against gcc, gcc-c++ or clang. [x]: Header files in -devel subpackage, if present. [x]: ldconfig not called in %post and %postun for Fedora 28 and later. [x]: Package does not contain any libtool archives (.la) [x]: Package contains no static executables. [x]: Rpath absent or only used for internal libs. [x]: Development (unversioned) .so files in -devel subpackage, if present.
Generic: [x]: Package is licensed with an open-source compatible license and meets other legal requirements as defined in the legal section of Packaging Guidelines. [x]: License field in the package spec file matches the actual license. Note: the LGPL files are not found in the Binary package, only the BSD and SMLNJ licenses are. Note: Checking patched sources after %prep for licenses. Licenses found: "Unknown or generated", "BSD 3-Clause License", "Standard ML of New Jersey License", "*No copyright* GNU Lesser General Public License". 598 files have unknown license. Detailed output of licensecheck in /var/home/lyes/Documents/reviews/2253354-asl/licensecheck.txt [x]: License file installed when any subpackage combination is installed. [x]: If the package is under multiple licenses, the licensing breakdown must be documented in the spec. [!]: Package does not own files or directories owned by other packages. Note: Dirs in package are owned also by: /usr/include/asl(mp-devel) Note: See conflicts. [x]: %build honors applicable compiler flags or justifies otherwise. [x]: Package contains no bundled libraries without FPC exception. [x]: Changelog in prescribed format. [x]: Sources contain only permissible code or content. [-]: Package contains desktop file if it is a GUI application. [x]: Development files must be in a -devel package [x]: Package uses nothing in %doc for runtime. [x]: Package consistently uses macros (instead of hard-coded directory names). [x]: Package is named according to the Package Naming Guidelines. [!]: Package does not generate any conflict. Note: `asl-devel` conflicts with `mp-devel` on some headers. They are probably the ones who need to change their headers, please get in contact with them. [x]: Package obeys FHS, except libexecdir and /usr/target. [!]: If the package is a rename of another package, proper Obsoletes and Provides are present. [x]: Requires correct, justified where necessary. [x]: Spec file is legible and written in American English. [-]: Package contains systemd file(s) if in need. [x]: Useful -debuginfo package or justification otherwise. [x]: Package is not known to require an ExcludeArch tag. [x]: Package complies to the Packaging Guidelines [x]: Package successfully compiles and builds into binary rpms on at least one supported primary architecture. [x]: Package installs properly. [x]: Rpmlint is run on all rpms the build produces. Note: There are rpmlint messages (see attachment). [x]: If (and only if) the source package includes the text of the license(s) in its own file, then that file, containing the text of the license(s) for the package is included in %license. [x]: The License field must be a valid SPDX expression. [x]: Package requires other packages for directories it uses. [x]: Package must own all directories that it creates. [x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT [x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the beginning of %install. [x]: Macros in Summary, %description expandable at SRPM build time. [x]: Dist tag is present. [x]: Package does not contain duplicates in %files. [x]: Permissions on files are set properly. [x]: Package must not depend on deprecated() packages. [x]: Package use %makeinstall only when make install DESTDIR=... doesn't work. [x]: Package is named using only allowed ASCII characters. [x]: Package is not relocatable. [x]: Sources used to build the package match the upstream source, as provided in the spec URL. [x]: Spec file name must match the spec package %{name}, in the format %{name}.spec. [x]: File names are valid UTF-8. [x]: Large documentation must go in a -doc subpackage. Large could be size (~1MB) or number of files. Note: Documentation size is 1461 bytes in 1 files. [x]: Packages must not store files under /srv, /opt or /usr/local
===== SHOULD items =====
Generic: [!]: If the source package does not include license text(s) as a separate file from upstream, the packager SHOULD query upstream to include it. Note: No seperate SMLNJ license file. [x]: Final provides and requires are sane (see attachments). [-]: Package functions as described. [x]: Latest version is packaged. [x]: Package does not include license text files separate from upstream. [!]: Patches link to upstream bugs/comments/lists or are otherwise justified. Note: not all patches are upstreamed yet, but that seems to be on track. [-]: Sources are verified with gpgverify first in %prep if upstream publishes signatures. Note: gpgverify is not used. [x]: Package should compile and build into binary rpms on all supported architectures. [-]: %check is present and all tests pass. [x]: Packages should try to preserve timestamps of original installed files. [x]: Reviewer should test that the package builds in mock. [x]: Buildroot is not present [x]: Package has no %clean section with rm -rf %{buildroot} (or $RPM_BUILD_ROOT) [x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin. [x]: Fully versioned dependency in subpackages if applicable. [x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file [x]: Sources can be downloaded from URI in Source: tag [x]: SourceX is a working URL. [x]: Spec use %global instead of %define unless justified.
===== EXTRA items =====
Generic: [x]: Rpmlint is run on debuginfo package(s). Note: No rpmlint messages. [x]: Rpmlint is run on all installed packages. Note: There are rpmlint messages (see attachment). [x]: Large data in /usr/share should live in a noarch subpackage if package is arched. [x]: Spec file according to URL is the same as in SRPM.
Rpmlint ------- Checking: asl-20231111-1.20231117git2473f4e.fc40.x86_64.rpm asl-devel-20231111-1.20231117git2473f4e.fc40.x86_64.rpm asl-debuginfo-20231111-1.20231117git2473f4e.fc40.x86_64.rpm asl-debugsource-20231111-1.20231117git2473f4e.fc40.x86_64.rpm asl-20231111-1.20231117git2473f4e.fc40.src.rpm ============================ rpmlint session starts ============================ rpmlint: 2.5.0 configuration: /usr/lib/python3.12/site-packages/rpmlint/configdefaults.toml /etc/xdg/rpmlint/fedora-legacy-licenses.toml /etc/xdg/rpmlint/fedora-spdx-licenses.toml /etc/xdg/rpmlint/fedora.toml /etc/xdg/rpmlint/scoring.toml /etc/xdg/rpmlint/users-groups.toml /etc/xdg/rpmlint/warn-on-functions.toml rpmlintrc: [PosixPath('/tmp/tmpg78u4xjt')] checks: 32, packages: 5
asl.spec: W: patch-not-applied Patch0: %{name}-shared.patch asl.spec: W: patch-not-applied Patch1: %{name}-arch-flags.patch asl.spec: W: patch-not-applied Patch2: %{name}-weak.patch asl.spec: W: patch-not-applied Patch3: %{name}-fenv.patch asl.spec: W: patch-not-applied Patch4: %{name}-prototype.patch asl-devel.x86_64: W: no-documentation asl-debugsource.x86_64: E: files-duplicated-waste 350233 asl-devel.x86_64: W: cross-directory-hard-link /usr/include/asl2/arith.h /usr/include/asl/arith.h asl-devel.x86_64: W: cross-directory-hard-link /usr/include/asl2/asl_pfg.h /usr/include/asl/asl_pfg.h asl-devel.x86_64: W: cross-directory-hard-link /usr/include/asl2/asl_pfgh.h /usr/include/asl/asl_pfgh.h asl-devel.x86_64: W: cross-directory-hard-link /usr/include/asl2/avltree.h /usr/include/asl/avltree.h asl-devel.x86_64: W: cross-directory-hard-link /usr/include/asl2/errchk.h /usr/include/asl/errchk.h asl-devel.x86_64: W: cross-directory-hard-link /usr/include/asl2/funcadd.h /usr/include/asl/funcadd.h asl-devel.x86_64: W: cross-directory-hard-link /usr/include/asl2/getstub.h /usr/include/asl/getstub.h asl-devel.x86_64: W: cross-directory-hard-link /usr/include/asl2/jac2dim.h /usr/include/asl/jac2dim.h asl-devel.x86_64: W: cross-directory-hard-link /usr/include/asl2/obj_adj.h /usr/include/asl/obj_adj.h asl-devel.x86_64: W: cross-directory-hard-link /usr/include/asl2/opcode.hd /usr/include/asl/opcode.hd asl-devel.x86_64: W: cross-directory-hard-link /usr/include/asl2/r_opn.hd /usr/include/asl/r_opn.hd asl-devel.x86_64: W: cross-directory-hard-link /usr/include/asl2/stdio1.h /usr/include/asl/stdio1.h 5 packages and 0 specfiles checked; 1 errors, 18 warnings, 100 filtered, 1 badness; has taken 0.9 s
Rpmlint (debuginfo) ------------------- Checking: asl-debuginfo-20231111-1.20231117git2473f4e.fc40.x86_64.rpm ============================ rpmlint session starts ============================ rpmlint: 2.5.0 configuration: /usr/lib/python3.12/site-packages/rpmlint/configdefaults.toml /etc/xdg/rpmlint/fedora-legacy-licenses.toml /etc/xdg/rpmlint/fedora-spdx-licenses.toml /etc/xdg/rpmlint/fedora.toml /etc/xdg/rpmlint/scoring.toml /etc/xdg/rpmlint/users-groups.toml /etc/xdg/rpmlint/warn-on-functions.toml rpmlintrc: [PosixPath('/tmp/tmpc4aphfy0')] checks: 32, packages: 1
1 packages and 0 specfiles checked; 0 errors, 0 warnings, 18 filtered, 0 badness; has taken 0.2 s
Rpmlint (installed packages) ---------------------------- ============================ rpmlint session starts ============================ rpmlint: 2.5.0 configuration: /usr/lib/python3.12/site-packages/rpmlint/configdefaults.toml /etc/xdg/rpmlint/fedora-legacy-licenses.toml /etc/xdg/rpmlint/fedora-spdx-licenses.toml /etc/xdg/rpmlint/fedora.toml /etc/xdg/rpmlint/scoring.toml /etc/xdg/rpmlint/users-groups.toml /etc/xdg/rpmlint/warn-on-functions.toml checks: 32, packages: 4
asl-devel.x86_64: W: no-documentation asl-debugsource.x86_64: E: files-duplicated-waste 350233 asl-devel.x86_64: W: cross-directory-hard-link /usr/include/asl2/arith.h /usr/include/asl/arith.h asl-devel.x86_64: W: cross-directory-hard-link /usr/include/asl2/asl_pfg.h /usr/include/asl/asl_pfg.h asl-devel.x86_64: W: cross-directory-hard-link /usr/include/asl2/asl_pfgh.h /usr/include/asl/asl_pfgh.h asl-devel.x86_64: W: cross-directory-hard-link /usr/include/asl2/avltree.h /usr/include/asl/avltree.h asl-devel.x86_64: W: cross-directory-hard-link /usr/include/asl2/errchk.h /usr/include/asl/errchk.h asl-devel.x86_64: W: cross-directory-hard-link /usr/include/asl2/funcadd.h /usr/include/asl/funcadd.h asl-devel.x86_64: W: cross-directory-hard-link /usr/include/asl2/getstub.h /usr/include/asl/getstub.h asl-devel.x86_64: W: cross-directory-hard-link /usr/include/asl2/jac2dim.h /usr/include/asl/jac2dim.h asl-devel.x86_64: W: cross-directory-hard-link /usr/include/asl2/obj_adj.h /usr/include/asl/obj_adj.h asl-devel.x86_64: W: cross-directory-hard-link /usr/include/asl2/opcode.hd /usr/include/asl/opcode.hd asl-devel.x86_64: W: cross-directory-hard-link /usr/include/asl2/r_opn.hd /usr/include/asl/r_opn.hd asl-devel.x86_64: W: cross-directory-hard-link /usr/include/asl2/stdio1.h /usr/include/asl/stdio1.h 4 packages and 0 specfiles checked; 1 errors, 13 warnings, 101 filtered, 1 badness; has taken 1.4 s
Source checksums ---------------- https://github.com/ampl/asl/archive/2473f4e3906d5028f3632d518280c190ae131a10... : CHECKSUM(SHA256) this package : e17ed64665477beff62a9d25edd5eebf889383a586fbe39f4d4294528d1e2ec6 CHECKSUM(SHA256) upstream package : e17ed64665477beff62a9d25edd5eebf889383a586fbe39f4d4294528d1e2ec6
Requires -------- asl (rpmlib, GLIBC filtered): libasl.so.0()(64bit) libc.so.6()(64bit) libgomp.so.1()(64bit) libgomp.so.1(OMP_1.0)(64bit) libgomp.so.1(OMP_3.0)(64bit) libm.so.6()(64bit) rtld(GNU_HASH)
asl-devel (rpmlib, GLIBC filtered): asl(x86-64) cmake-filesystem(x86-64) libasl-mt.so.0()(64bit) libasl.so.0()(64bit) libasl2-mt.so.0()(64bit) libasl2.so.0()(64bit) libaslcpp.so.0()(64bit)
asl-debuginfo (rpmlib, GLIBC filtered):
asl-debugsource (rpmlib, GLIBC filtered):
Provides -------- asl: asl asl(x86-64) libasl-mt.so.0()(64bit) libasl.so.0()(64bit) libasl2-mt.so.0()(64bit) libasl2.so.0()(64bit) libaslcpp.so.0()(64bit)
asl-devel: asl-devel asl-devel(x86-64) cmake(ampl-asl)
asl-debuginfo: asl-debuginfo asl-debuginfo(x86-64) debuginfo(build-id) libasl-mt.so.0.0.0-20231111-1.20231117git2473f4e.fc40.x86_64.debug()(64bit) libasl.so.0.0.0-20231111-1.20231117git2473f4e.fc40.x86_64.debug()(64bit)
libasl2-mt.so.0.0.0-20231111-1.20231117git2473f4e.fc40.x86_64.debug()(64bit) libasl2.so.0.0.0-20231111-1.20231117git2473f4e.fc40.x86_64.debug()(64bit) libaslcpp.so.0.0.0-20231111-1.20231117git2473f4e.fc40.x86_64.debug()(64bit)
asl-debugsource: asl-debugsource asl-debugsource(x86-64)
Generated by fedora-review 0.10.0 (e79b66b) last change: 2023-07-24 Command line :/usr/bin/fedora-review -b 2253354 Buildroot used: fedora-rawhide-x86_64 Active plugins: C/C++, Shell-api, Generic Disabled plugins: fonts, R, SugarActivity, Perl, Python, PHP, Ocaml, Haskell, Java Disabled flags: EXARCH, EPEL6, EPEL7, DISTTAG, BATCH
https://bugzilla.redhat.com/show_bug.cgi?id=2253354
--- Comment #5 from Lyes Saadi fedora@lyes.eu --- I'm back from testing, this does not seem to be working, it is indeed getting the obsoleted package upgraded: https://copr.fedorainfracloud.org/coprs/lyessaadi/obsoletes-testing/.
I think the policy wasn't meant for packages replacing older packages with the same name, and that it is simply ambiguously written.
Maybe fedora-obsolete-packages would be the way to go ? Anyway, since that doesn't seem to be such high stakes, I'm okay with getting this approved despite this point since it isn't a rename in the way the policy expected it to be. You can consider that MUST item to be approved.
https://bugzilla.redhat.com/show_bug.cgi?id=2253354
--- Comment #6 from Lyes Saadi fedora@lyes.eu --- So now we only have to wait for the PR to `mp` to be merged... I can approve this early on the assumption that you won't push the package until the PR is merged if you want to. Otherwise, I'm ok for waiting for this, I shouldn't be unavailable in the coming months or years.
https://bugzilla.redhat.com/show_bug.cgi?id=2253354
--- Comment #7 from Jerry James loganjerry@gmail.com --- I commented on the license issue here: https://github.com/ampl/asl/issues/7.
As for the obsoletes, the last successful build of the old asl package was for F34. (There were 2 failed build attempts for F35.) We only support upgrades from at most 2 versions ago, which means that right now, we only support upgrades from F36, which did not have the old asl package. Furthermore, the version of the new asl package (20231111) is higher than the last build of the old package (1.42), which is why I think adding Obsoletes won't actually do anything. Normal RPM version comparisons will trump Obsoletes. If you meant that the old asl package should not be updated to the new one ... well, I don't know how to prevent that.
I think I prefer to have this approved now. That way, once the mp package is ready to go, I don't have to try to get in touch with you again, only to find that you are lying on a Mediterranean beach for the next 3 weeks. :-)
Thank you for the review!
https://bugzilla.redhat.com/show_bug.cgi?id=2253354
Lyes Saadi fedora@lyes.eu changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |POST Flags|fedora-review? |fedora-review+
--- Comment #8 from Lyes Saadi fedora@lyes.eu ---
As for the obsoletes, the last successful build of the old asl package was for F34. (There were 2 failed build attempts for F35.) We only support upgrades from at most 2 versions ago, which means that right now, we only support upgrades from F36, which did not have the old asl package. Furthermore, the version of the new asl package (20231111) is higher than the last build of the old package (1.42), which is why I think adding Obsoletes won't actually do anything. Normal RPM version comparisons will trump Obsoletes. If you meant that the old asl package should not be updated to the new one ... well, I don't know how to prevent that.
Yup, misunderstood the purpose of Obsoletes when reading the guidelines and when trying to understand the way fedora-obsolete-packages to work.
I think I prefer to have this approved now. That way, once the mp package is ready to go, I don't have to try to get in touch with you again, only to find that you are lying on a Mediterranean beach for the next 3 weeks. :-)
Done 🏖️ ! Unfortunately, the weather isn't great for swimming v-v.
https://bugzilla.redhat.com/show_bug.cgi?id=2253354
Jerry James loganjerry@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|POST |CLOSED Fixed In Version| |asl-20240106-1.20240201git2 | |f5d9de.fc41 Resolution|--- |CURRENTRELEASE Last Closed| |2024-04-29 23:31:12
--- Comment #9 from Jerry James loganjerry@gmail.com --- This package is now available in F40+.
package-review@lists.fedoraproject.org