Spec URL: https://ueno.fedorapeople.org/nettle3.10/nettle3.10.spec SRPM URL: https://ueno.fedorapeople.org/nettle3.10/nettle3.10-3.10.1-1.fc45.src.rpm Description: Nettle is a cryptographic library that is designed to fit easily in more or less any context: In crypto toolkits for object-oriented languages (C++, Python, Pike, ...), in applications like LSH or GNUPG, or even in kernel space. This version of Nettle package contains only the libraries from the 3.10 version and is provided for compatibility with previous releases. Reproducible: Always
Copr build: https://copr.fedorainfracloud.org/coprs/build/10185506 (failed) Build log: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2443729-nettle3.10/fedora-rawhide-x86_64/10185506-nettle3.10/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.
Deferring the full review until later when it starts building. Nothing caught my eye in a cursory review of the specfile, but in the meantime, here's a bike shed: why nettle3.10? why not nettle3, nettle3-compat or compat-nettle3?
> why nettle3.10? why not nettle3, nettle3-compat or compat-nettle3? Although it was a long ago and we no longer ship it, but there were soname bumps in nettle 3.4 and 3.6, so I thought it might make sense to be explicit that this compat package only supports nettle 3.10 ABI. As for the compat prefix/suffix, I'm mostly following the convention of "openssl1.1" package introduced in bug 1879067, which was initially named "compat-openssl11".
[fedora-review-service-build]
Copr build: https://copr.fedorainfracloud.org/coprs/build/10265697 (succeeded) Review template: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2443729-nettle3.10/fedora-rawhide-x86_64/10265697-nettle3.10/fedora-review/review.txt Found issues: - Documentation size is 1403227 bytes in 6 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.
Select findings for today's 1dc98c2c463476c1235797cb7ce7264dfc7ec442d7a57fd52c0aeb601c046560 https://ueno.fedorapeople.org/nettle3.10/nettle3.10-3.10.1-1.fc45.src.rpm: Now compiles on all arches: https://koji.fedoraproject.org/koji/taskinfo?taskID=143742057 Things that affect the normal rawhide nettle as well: IMO MUST fix: some files are purely MIT-licensed: gost28147.c, gosthash94.c. we should either skip them or `AND MIT` IMO should fix: Patches link to upstream bugs/comments/lists or are otherwise justified. gpgverify is not the first command in %prep. nettle3.10.spec:33: W: mixed-use-of-spaces-and-tabs No Requires: %{name}%{?_isa} = %{version}-%{release} in -devel Large data in /usr/share should live in a noarch subpackage if package is arched. Large documentation must go in a -doc subpackage. IMO should NOT fix: rpmlint E: incorrect-fsf-address: filed https://git.lysator.liu.se/nettle/nettle/-/work_items/16 rpmlint W: hidden-file-or-dir: okay for fipshmac nettle3.10.spec:124: E: rpm-buildroot-usage: I don't see what's wrong with this kind of usage Things unique for the compat package: > The package is being created so that multiple versions of the same package can coexist in the distribution (or coexist between EPEL and RHEL). > The package MUST be properly named according to the naming guidelines and MUST NOT conflict with all other versions of the same package. But this one has Conflicts: nettle-devel. I'm not sure there's a way to satisfy this *and* ship -devel. Can we omit -devel altogether for this compat package? And docs, since we're at it? > Package must own all directories that it creates. > Package does not own files or directories owned by other packages. Ditto. > If the package is a rename of another package, proper Obsoletes and Provides are present. Unsure if applies to compat packages, does it?
> some files are purely MIT-licensed: gost28147.c, gosthash94.c. we should either skip them or `AND MIT` on a second thought, MIT's GPL-compatible, so it's subsumed, isn't it?
(In reply to Alexander Sosedkin from comment #6) > Things that affect the normal rawhide nettle as well: > IMO MUST fix: > some files are purely MIT-licensed: gost28147.c, gosthash94.c. we should > either skip them or `AND MIT` Added AND MIT. > IMO should fix: > Patches link to upstream bugs/comments/lists or are otherwise justified. > gpgverify is not the first command in %prep. > nettle3.10.spec:33: W: mixed-use-of-spaces-and-tabs > No Requires: %{name}%{?_isa} = %{version}-%{release} in -devel Fixed those. > Large data in /usr/share should live in a noarch subpackage if package > is arched. > Large documentation must go in a -doc subpackage. I'd leave them for now (with a bcond to opt-out); see below. > IMO should NOT fix: > rpmlint E: incorrect-fsf-address: filed > https://git.lysator.liu.se/nettle/nettle/-/work_items/16 > rpmlint W: hidden-file-or-dir: okay for fipshmac > nettle3.10.spec:124: E: rpm-buildroot-usage: I don't see what's wrong > with this kind of usage Haven't touched those. > Things unique for the compat package: > > > The package is being created so that multiple versions of the same package can coexist in the distribution (or coexist between EPEL and RHEL). > > The package MUST be properly named according to the naming guidelines and MUST NOT conflict with all other versions of the same package. > > But this one has Conflicts: nettle-devel. > I'm not sure there's a way to satisfy this *and* ship -devel. > Can we omit -devel altogether for this compat package? > And docs, since we're at it? The issue is that there are API changes, which I'd expect applications to take some time to migrate. I added %bcond_without devel with comment to drop the -devel as soon as all the dependents are migrated to Nettle 4.0. > > Package must own all directories that it creates. > > Package does not own files or directories owned by other packages. > > Ditto. > > > If the package is a rename of another package, proper Obsoletes and Provides are present. > > Unsure if applies to compat packages, does it? As this package is deprecated from the start, I added "Provides: deprecated()" per https://docs.fedoraproject.org/en-US/packaging-guidelines/deprecating-packages/. I hope it suffices the requirement. (In reply to Alexander Sosedkin from comment #7) > > some files are purely MIT-licensed: gost28147.c, gosthash94.c. we should either skip them or `AND MIT` > > on a second thought, MIT's GPL-compatible, so it's subsumed, isn't it? IIRC we were told not to interpret them, but to just list everything.
Created attachment 2135440 [details] The .spec file difference from Copr build 10265697 to 10273738
Copr build: https://copr.fedorainfracloud.org/coprs/build/10273738 (succeeded) Review template: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2443729-nettle3.10/fedora-rawhide-x86_64/10273738-nettle3.10/fedora-review/review.txt Found issues: - Documentation size is 1403227 bytes in 6 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.
Minor update: "Conflicts: nettle < 0:3.0" on the main package was a mistake, it has been changed to "Conflicts: nettle < 4.0"
I'm afraid that -devel coexistence is an inclusion blocker, and we must either 1. skip building it at all, requiring everyone to migrate on their first rebuild, or 2. rename conflicting files to nettle3.10 to give packagers time to adapt, but not transparently. I don't see any space for lenience in the rules, sorry. A reduced TODO for latter re-reviews: [ ]: diff against c497a4e5f78ca951c063ead122bb1318136e7ad8db9704395e97acd85a617016 [ ]: -devel is turned off or conflicted files are renamed [ ]: MIT license is shipped with the package (sed it from one of the files? =) [ ]: Conflicts: nettle < 4.0, not 3.0 [ ]: large documentation not in -doc subpackage (or dropped) [ ]: rpmlint is run on debuginfo package(s). [ ]: rpmlint is run on all installed packages. [ ]: compiles with mock [ ]: compiles for all arches
Well, it is how openssl1.1 is doing, but OK, I've flipped the %bcond; if it turns out that migrating applications is too hard, we can enable the build package for a short term. [fedora-review-service-build]
Created attachment 2135447 [details] The .spec file difference from Copr build 10273738 to 10273973
Copr build: https://copr.fedorainfracloud.org/coprs/build/10273973 (succeeded) Review template: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2443729-nettle3.10/fedora-rawhide-x86_64/10273973-nettle3.10/fedora-review/review.txt Please take a look if any issues were found. --- 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.
Package Review ============== Legend: [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated [ ] = Manual review needed ===== MUST items ===== C/C++: [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]: 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. Generic: [x]: Package successfully compiles and builds into binary rpms on at least one supported primary architecture. Note: Using prebuilt packages [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. [x]: If the package is under multiple licenses, the licensing breakdown must be documented in the spec. [x]: %build honors applicable compiler flags or justifies otherwise. [x]: Package contains no bundled libraries or specifies bundled libraries with Provides: bundled(<libname>) if unbundling is not possible. [-]: Changelog in prescribed format. [x]: Sources contain only permissible code or content. [x]: 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. [x]: Package does not generate any conflict. [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]: Large documentation must go in a -doc subpackage. Large could be size (~1MB) or number of files. Note: Documentation size is 76805 bytes in 3 files. [x]: Package complies to the Packaging Guidelines [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 does not own files or directories owned by other packages. [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 does not use a name that already exists. [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]: Packages must not store files under /srv, /opt or /usr/local ===== SHOULD items ===== Generic: [x]: Reviewer should test that the package builds in mock. [!]: Sources can be downloaded from URI in Source: tag Note: Could not download Source0: http://www.lysator.liu.se/~nisse/archive/nettle-3.10.1.tar.gz, Source1: http://www.lysator.liu.se/~nisse/archive/nettle-3.10.1.tar.gz.sig See: https://docs.fedoraproject.org/en-US/packaging- guidelines/SourceURL/ [!]: If the source package does not include license text(s) as a separate file from upstream, the packager SHOULD query upstream to include it. [x]: Final provides and requires are sane (see attachments). [x]: 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. (same as rawhide) [x]: SourceX tarball generation or download is documented. (OK for gpg file) [x]: Package should compile and build into binary rpms on all supported architectures. (https://koji.fedoraproject.org/koji/taskinfo?taskID=143856184) [x]: %check is present and all tests pass. [x]: Packages should try to preserve timestamps of original installed files. [x]: Spec use %global instead of %define unless justified. (can't see anything wrong with their use, can't really use %global) [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]: Packager, Vendor, PreReq, Copyright tags should not be in spec file [x]: SourceX is a working URL. [x]: Sources are verified with gpgverify first in %prep if upstream publishes signatures. ===== EXTRA items ===== Generic: [x]: Rpmlint is run on debuginfo package(s). Note: No rpmlint messages. [x]: Rpmlint is run on all installed packages. Note: No rpmlint messages. [x]: Large data in /usr/share should live in a noarch subpackage if package is arched. [x]: Package should not use obsolete m4 macros Rpmlint ------- Checking: nettle3.10-3.10.1-1.fc45.x86_64.rpm nettle3.10-3.10.1-1.fc45.src.rpm ============================ rpmlint session starts ============================ rpmlint: 2.8.0 configuration: /usr/lib/python3.14/site-packages/rpmlint/configdefaults.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/tmptxhcqcap')] checks: 32, packages: 2 nettle3.10.spec: W: specfile-warning sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8): No such file or directory nettle3.10.spec:133: E: rpm-buildroot-usage %build fipshmac -d $RPM_BUILD_ROOT%{_libdir} $RPM_BUILD_ROOT%{_libdir}/%1.* \ nettle3.10.spec:134: E: rpm-buildroot-usage %build file=`basename $RPM_BUILD_ROOT%{_libdir}/%1.*.hmac` && \ nettle3.10.spec:135: E: rpm-buildroot-usage %build mv $RPM_BUILD_ROOT%{_libdir}/$file $RPM_BUILD_ROOT%{_libdir}/.$file && \ nettle3.10.spec:136: E: rpm-buildroot-usage %build ln -s .$file $RPM_BUILD_ROOT%{_libdir}/.%1.hmac nettle3.10.spec:35: W: mixed-use-of-spaces-and-tabs (spaces: line 28, tab: line 35) nettle3.10.x86_64: E: incorrect-fsf-address /usr/share/licenses/nettle3.10/COPYINGv2 nettle3.10.x86_64: W: hidden-file-or-dir /usr/lib64/.libhogweed.so.6.10.hmac nettle3.10.x86_64: W: hidden-file-or-dir /usr/lib64/.libhogweed.so.6.hmac nettle3.10.x86_64: W: hidden-file-or-dir /usr/lib64/.libnettle.so.8.10.hmac nettle3.10.x86_64: W: hidden-file-or-dir /usr/lib64/.libnettle.so.8.hmac 2 packages and 0 specfiles checked; 5 errors, 6 warnings, 22 filtered, 5 badness; has taken 0.4 s Rpmlint (debuginfo) ------------------- Checking: nettle3.10-debuginfo-3.10.1-1.fc45.x86_64.rpm ============================ rpmlint session starts ============================ rpmlint: 2.8.0 configuration: /usr/lib/python3.14/site-packages/rpmlint/configdefaults.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/tmp8680dg6v')] checks: 32, packages: 1 1 packages and 0 specfiles checked; 0 errors, 0 warnings, 12 filtered, 0 badness; has taken 0.2 s Rpmlint (installed packages) ---------------------------- (none): E: there is no installed rpm "nettle3.10". ============================ rpmlint session starts ============================ rpmlint: 2.8.0 configuration: /usr/lib/python3.14/site-packages/rpmlint/configdefaults.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: 2 0 packages and 0 specfiles checked; 0 errors, 0 warnings, 0 filtered, 0 badness; has taken 0.0 s (none): E: there is no installed rpm "nettle3.10-debuginfo". There are no files to process nor additional arguments. Nothing to do, aborting. Requires -------- nettle3.10 (rpmlib, GLIBC filtered): libc.so.6()(64bit) libgmp.so.10()(64bit) libnettle.so.8()(64bit) libnettle.so.8(NETTLE_8)(64bit) rtld(GNU_HASH) Provides -------- nettle3.10: deprecated() libhogweed.so.6()(64bit) libhogweed.so.6(HOGWEED_6)(64bit) libhogweed.so.6(HOGWEED_INTERNAL_6_10)(64bit) libnettle.so.8()(64bit) libnettle.so.8(NETTLE_8)(64bit) libnettle.so.8(NETTLE_INTERNAL_8_10)(64bit) nettle3.10 nettle3.10(x86-64) Generated by fedora-review 0.11.0 (05c5b26) last change: 2025-11-29 Command line :/bin/fedora-review --no-colors --prebuilt --rpm-spec --name nettle3.10 --mock-config /var/lib/copr-rpmbuild/results/configs/child.cfg Buildroot used: fedora-rawhide-x86_64 Active plugins: Shell-api, C/C++, Generic Disabled plugins: Haskell, PHP, Ocaml, SugarActivity, fonts, Perl, Python, Java, R Disabled flags: EXARCH, EPEL6, EPEL7, DISTTAG, BATCH
We're down to > [!]: If the source package does not include license text(s) as a separate > file from upstream, the packager SHOULD query upstream to include it. I've doublechecked https://docs.fedoraproject.org/en-US/packaging-guidelines/LicensingGuidelines, and you're not required to carve out MIT notices from files and into licenses; at most notify upstream you want a license text. > [!]: Sources can be downloaded from URI in Source: tag > Note: Could not download Source0: > http://www.lysator.liu.se/~nisse/archive/nettle-3.10.1.tar.gz, > Source1: > http://www.lysator.liu.se/~nisse/archive/nettle-3.10.1.tar.gz.sig > See: https://docs.fedoraproject.org/en-US/packaging- > guidelines/SourceURL/ Not sure what's up, a hosting problem? Give neither is specific to the compat package, I'm gonna go ahead and mark it reviewed.
Thanks for the review. Looks like the Nettle homepage is down, hopefully temporarily. If it persists, I'll let the upstream know about it.
The Pagure repository was created at https://src.fedoraproject.org/rpms/nettle3.10
The package has been built in rawhide: https://bodhi.fedoraproject.org/updates/FEDORA-2026-b36c2f1f71