Bug 2317888

Summary: Review Request: ngtcp2 - ngtcp2 project is an effort to implement RFC9000 QUIC protocol
Product: [Fedora] Fedora Reporter: Petr Menšík <pemensik>
Component: Package ReviewAssignee: Andreas Schneider <asn>
Status: ASSIGNED --- QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: asn, ginnythecat, jskarvad, jstanek, nodejs-sig, package-review
Target Milestone: ---Flags: ppisar: fedora-review?
asn: needinfo? (pemensik)
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
URL: https://github.com/ngtcp2/ngtcp2
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
The .spec file difference from Copr build 8126998 to 8163025
none
The .spec file difference from Copr build 8163025 to 9156417
none
The .spec file difference from Copr build 9156417 to 9157292 none

Description Petr Menšík 2024-10-10 19:12:27 UTC
Spec URL: https://pemensik.fedorapeople.org/srpm/ngtcp2.spec
SRPM URL: https://pemensik.fedorapeople.org/srpm/ngtcp2-1.8.0-1.fc42.src.rpm

Description:
"Call it TCP/2. One More Time."

ngtcp2 project is an effort to implement RFC9000 QUIC protocol.

Fedora Account System Username: pemensik

Comment 1 Petr Menšík 2024-10-10 19:12:30 UTC
This package built on koji:  https://koji.fedoraproject.org/koji/taskinfo?taskID=124671997

Comment 2 Fedora Review Service 2024-10-10 19:17:35 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/8126998
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2317888-ngtcp2/fedora-rawhide-x86_64/08126998-ngtcp2/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.

Comment 3 Petr Menšík 2024-10-10 19:20:18 UTC
It seems this package is already included in Fedora, but bundled into multiple nodejs variants.

# dnf repoquery --whatprovides 'bundled(ngtcp2)'
Updating and loading repositories:
Repositories loaded.
nodejs-1:22.8.0-1.fc42.i686
nodejs-1:22.8.0-1.fc42.x86_64
nodejs18-1:18.20.2-1.fc41.i686
nodejs18-1:18.20.2-1.fc41.x86_64
nodejs20-1:20.18.0-1.fc42.i686
nodejs20-1:20.18.0-1.fc42.x86_64

Stephen, do you think you could try this package, if it would be possible to use as a shared library in nodejs, instead of bundling it?

My intention is to use it with unbound, but if it can provide shared functionality for other packages, even better.

Comment 4 Petr Menšík 2024-10-10 19:39:03 UTC
This build links with gnutls, because openssl does not seem yet provide required functionality. There seems to be some tension between openssl upstream and its quictls fork [1].

1. https://github.com/quictls/openssl/discussions/54

Comment 5 Stephen Gallagher 2024-10-10 19:40:18 UTC
I am no longer the maintainer of Node.js in Fedora.

https://lists.fedoraproject.org/archives/list/nodejs@lists.fedoraproject.org/message/67YS75ZZIVQSAVGEKTCZ2W23KOJ4XOFI/

You should probably ping jstanek

Comment 6 Petr Menšík 2024-10-10 19:52:48 UTC
Okay. Though jstanek does not have even commit rights to fedora nodejs package, where you are main admin. I know zvetlik were RHEL maintainer before, but haven't found other redhatter except you.

Adding nodejs-sig to cc, perhaps that is how to contact proper maintainer(s).

Comment 7 Petr Menšík 2024-10-10 20:02:45 UTC
Perhaps at least README should be pushed into nodejs package, stating that is not what is desired, is obsoleted and instead nodejs22, nodejs20 or nodejs18 components should be looked at. For a person unrelated to nodejs, this is confusing a lot. Okay, it is written in obsoletion commit, but README might help more.

Anyway Jan, could you try if this package can be used instead of bundling own copy of ngtcp2 into nodejs variants? Is there something missing? Can it work with gnutls build?

Comment 8 Petr Menšík 2024-10-14 08:35:27 UTC
My upstream fork with added spec files is at:
https://github.com/pemensik/ngtcp2/blob/fedora/ngtcp2.spec

Comment 9 Jaroslav Škarvada 2024-10-21 14:51:25 UTC
Could you re-upload the latest spec and srpm? fedora-review is quite confused now:
$ fedora-review -b 2317888

INFO: Processing bugzilla bug: 2317888
INFO: Getting .spec and .srpm Urls from : 2317888
INFO:   --> SRPM url: https://pemensik.fedorapeople.org/srpm/ngtcp2-1.8.0-1.fc42.src.rpm
INFO:   --> Spec url: https://github.com/pemensik/ngtcp2/blob/fedora/ngtcp2.spec
INFO: Using review directory: /home/yarda/git-fedora/ngtcp2/2317888-ngtcp2
INFO: Downloading .spec and .srpm files
chyba: řádek 7: Neznámá značka: <!DOCTYPE html>
ERROR: "Can't parse specfile: can't parse specfile\n" (logs in /home/yarda/.cache/fedora-review.log)
Exception ignored in: <FedoraReview.spec_file._Null object at 0x7fc99bec4b00>
AttributeError: '_Null' object has no attribute 'flush'

Comment 10 Petr Menšík 2024-10-21 15:58:06 UTC
That seems like issue to be reported for fedora-review. I did not mean that github path to be processed by the tool. That were meant for human eyes only. I have intentionally omitted Spec URL prefix in it, to be not processed automatically.
I did not expect it would be processed anyway.

Spec URL: https://github.com/pemensik/ngtcp2/raw/refs/heads/fedora/ngtcp2.spec
SRPM URL: https://pemensik.fedorapeople.org/srpm/ngtcp2-1.8.0-4.fc42.src.rpm

Comment 11 Fedora Review Service 2024-10-21 16:09:39 UTC
Created attachment 2053005 [details]
The .spec file difference from Copr build 8126998 to 8163025

Comment 12 Fedora Review Service 2024-10-21 16:09:42 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/8163025
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2317888-ngtcp2/fedora-rawhide-x86_64/08163025-ngtcp2/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.

Comment 13 Jaroslav Škarvada 2024-10-21 16:42:23 UTC
Generic:
[!]: Spec file according to URL is the same as in SRPM.
     Note: Spec file as given by url is not the same as in SRPM (see
     attached diff).
     See: (this test has no URL)

Please fix.

Comment 14 Jaroslav Škarvada 2024-10-22 12:48:07 UTC
There is still the problem with the different spec:
Diff spec file in url and in SRPM
---------------------------------
--- /home/yarda/git-fedora/ngtcp2/2317888-ngtcp2/srpm/ngtcp2.spec	2024-10-22 11:57:25.588645958 +0200
+++ /home/yarda/git-fedora/ngtcp2/2317888-ngtcp2/srpm-unpacked/ngtcp2.spec	2024-10-10 02:00:00.000000000 +0200
@@ -1,2 +1,12 @@
+## START: Set by rpmautospec
+## (rpmautospec version 0.7.2)
+## RPMAUTOSPEC: autorelease, autochangelog
+%define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
+    release_number = 4;
+    base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}"));
+    print(release_number + base_release_number - 1);
+}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}}
+## END: Set by rpmautospec
+
 Name:           ngtcp2
 Version:        1.8.0
@@ -64,3 +74,18 @@
 
 %changelog
-%autochangelog
+## START: Generated by rpmautospec
+* Thu Oct 10 2024 Petr Menšík <pemensik> - 1.8.0-4
+- Mention unit tests and missing munit
+
+* Thu Oct 10 2024 Petr Menšík <pemensik> - 1.8.0-3
+- Specify minimum gnutls version
+
+* Thu Oct 10 2024 Petr Menšík <pemensik> - 1.8.0-2
+- Use also libev
+
+* Thu Oct 10 2024 Petr Menšík <pemensik> - 1.8.0-1
+- Initial build using autoconf
+
+* Thu Oct 03 2024 Tatsuhiro Tsujikawa <404610+tatsuhiro-t.github.com>
+- RPMAUTOSPEC: unresolvable merge
+## END: Generated by rpmautospec

Comment 15 Petr Menšík 2024-10-28 12:57:28 UTC
Jardo, it is obvious you have never used https://github.com/fedora-infra/rpmautospec, which is responsible for spec file difference.
That it caused by just by fact I have used rpmautospec convert to make this package changelog generated from git history. Not needed to be manually handled by rpmdev-bumpspec on each commit.

Those differences are caused by use of an useful tool.  There is no simple way I can fix that differences. Those differences also do not cause functional difference, which would block the review.

Things required to review at specified at https://docs.fedoraproject.org/en-US/packaging-guidelines/ReviewGuidelines/#_things_to_check_on_review.
Ensuring the changelog is generated the old way is not between them. :) Can we proceed to more serious issues?

Comment 16 Jaroslav Škarvada 2024-10-30 17:57:22 UTC
(In reply to Petr Menšík from comment #15)
> Jardo, it is obvious you have never used
> https://github.com/fedora-infra/rpmautospec, which is responsible for spec
> file difference.
> That it caused by just by fact I have used rpmautospec convert to make this
> package changelog generated from git history. Not needed to be manually
> handled by rpmdev-bumpspec on each commit.
> 
I didn't use it with fedora-review tool, I think this should be fixed in fedora-review tool.

Comment 17 Jaroslav Škarvada 2024-10-30 17:58:01 UTC
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]: 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: Checking patched sources after %prep for licenses. Licenses
     found: "Unknown or generated", "MIT License", "GNU General Public
     License v3.0 or later", "FSF All Permissive License". 100 files have
     unknown license. Detailed output of licensecheck in /home/yarda/git-
     fedora/ngtcp2/2317888-ngtcp2/licensecheck.txt
[x]: License file installed when any subpackage combination is installed.
[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.
[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 13486 bytes in 3 files.
[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 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:
[-]: 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]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in
     ngtcp2-devel
[?]: Package functions as described.
[!]: Latest version is packaged.
       - 1.8.1 is the latest version
[x]: Package does not include license text files separate from upstream.
[!]: 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]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: The placement of pkgconfig(.pc) files are correct.
[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:
[!]: Spec file according to URL is the same as in SRPM.
     Note: Spec file as given by url is not the same as in SRPM (see
     attached diff).
     See: (this test has no URL)
     - probably caused by %autorelease
[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]: Package should not use obsolete m4 macros


Rpmlint
-------
Checking: ngtcp2-1.8.0-4.fc42.x86_64.rpm
          ngtcp2-devel-1.8.0-4.fc42.x86_64.rpm
          ngtcp2-debuginfo-1.8.0-4.fc42.x86_64.rpm
          ngtcp2-debugsource-1.8.0-4.fc42.x86_64.rpm
          ngtcp2-1.8.0-4.fc42.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/tmpvvg_smps')]
checks: 32, packages: 5

ngtcp2.src: W: summary-not-capitalized ngtcp2 project is an effort to implement RFC9000 QUIC protocol
ngtcp2.x86_64: W: summary-not-capitalized ngtcp2 project is an effort to implement RFC9000 QUIC protocol
ngtcp2-devel.x86_64: W: summary-not-capitalized ngtcp2 development files
ngtcp2-devel.x86_64: W: no-documentation
ngtcp2.src: W: name-repeated-in-summary ngtcp2
ngtcp2.x86_64: W: name-repeated-in-summary ngtcp2
ngtcp2.spec:56: W: macro-in-comment %check
============================================= 5 packages and 0 specfiles checked; 0 errors, 7 warnings, 37 filtered, 0 badness; has taken 1.9 s ==============================================




Rpmlint (debuginfo)
-------------------
Checking: ngtcp2-debuginfo-1.8.0-4.fc42.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/tmpns1qqjbh')]
checks: 32, packages: 1

============================================= 1 packages and 0 specfiles checked; 0 errors, 0 warnings, 12 filtered, 0 badness; has taken 0.4 s ==============================================





Rpmlint (installed packages)
----------------------------
============================ rpmlint session starts ============================
rpmlint: 2.5.0
configuration:
    /usr/lib/python3.13/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: 4

ngtcp2.x86_64: W: summary-not-capitalized ngtcp2 project is an effort to implement RFC9000 QUIC protocol
ngtcp2-devel.x86_64: W: summary-not-capitalized ngtcp2 development files
ngtcp2-devel.x86_64: W: no-documentation
ngtcp2.x86_64: W: name-repeated-in-summary ngtcp2
 4 packages and 0 specfiles checked; 0 errors, 4 warnings, 35 filtered, 0 badness; has taken 1.5 s 



Source checksums
----------------
https://github.com/ngtcp2/ngtcp2/archive/v1.8.0/ngtcp2-1.8.0.tar.gz :
  CHECKSUM(SHA256) this package     : 05a2f7e7689588060875406fae12f10b23928fe73376ef0df4c3d467fd171696
  CHECKSUM(SHA256) upstream package : 05a2f7e7689588060875406fae12f10b23928fe73376ef0df4c3d467fd171696


Requires
--------
ngtcp2 (rpmlib, GLIBC filtered):
    libc.so.6()(64bit)
    libgnutls.so.30()(64bit)
    libgnutls.so.30(GNUTLS_3_4)(64bit)
    libgnutls.so.30(GNUTLS_3_6_13)(64bit)
    libgnutls.so.30(GNUTLS_3_7_0)(64bit)
    libgnutls.so.30(GNUTLS_3_7_2)(64bit)
    libngtcp2.so.16()(64bit)
    rtld(GNU_HASH)

ngtcp2-devel (rpmlib, GLIBC filtered):
    /usr/bin/pkg-config
    libngtcp2.so.16()(64bit)
    libngtcp2_crypto_gnutls.so.8()(64bit)
    ngtcp2(x86-64)

ngtcp2-debuginfo (rpmlib, GLIBC filtered):

ngtcp2-debugsource (rpmlib, GLIBC filtered):



Provides
--------
ngtcp2:
    libngtcp2.so.16()(64bit)
    libngtcp2_crypto_gnutls.so.8()(64bit)
    ngtcp2
    ngtcp2(x86-64)

ngtcp2-devel:
    ngtcp2-devel
    ngtcp2-devel(x86-64)
    pkgconfig(libngtcp2)
    pkgconfig(libngtcp2_crypto_gnutls)

ngtcp2-debuginfo:
    debuginfo(build-id)
    libngtcp2.so.16.2.4-1.8.0-4.fc42.x86_64.debug()(64bit)
    libngtcp2_crypto_gnutls.so.8.1.1-1.8.0-4.fc42.x86_64.debug()(64bit)
    ngtcp2-debuginfo
    ngtcp2-debuginfo(x86-64)

ngtcp2-debugsource:
    ngtcp2-debugsource
    ngtcp2-debugsource(x86-64)



Diff spec file in url and in SRPM
---------------------------------
--- /home/yarda/git-fedora/ngtcp2/2317888-ngtcp2/srpm/ngtcp2.spec	2024-10-22 11:57:25.588645958 +0200
+++ /home/yarda/git-fedora/ngtcp2/2317888-ngtcp2/srpm-unpacked/ngtcp2.spec	2024-10-10 02:00:00.000000000 +0200
@@ -1,2 +1,12 @@
+## START: Set by rpmautospec
+## (rpmautospec version 0.7.2)
+## RPMAUTOSPEC: autorelease, autochangelog
+%define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
+    release_number = 4;
+    base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}"));
+    print(release_number + base_release_number - 1);
+}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}}
+## END: Set by rpmautospec
+
 Name:           ngtcp2
 Version:        1.8.0
@@ -64,3 +74,18 @@
 
 %changelog
-%autochangelog
+## START: Generated by rpmautospec
+* Thu Oct 10 2024 Petr Menšík <pemensik> - 1.8.0-4
+- Mention unit tests and missing munit
+
+* Thu Oct 10 2024 Petr Menšík <pemensik> - 1.8.0-3
+- Specify minimum gnutls version
+
+* Thu Oct 10 2024 Petr Menšík <pemensik> - 1.8.0-2
+- Use also libev
+
+* Thu Oct 10 2024 Petr Menšík <pemensik> - 1.8.0-1
+- Initial build using autoconf
+
+* Thu Oct 03 2024 Tatsuhiro Tsujikawa <404610+tatsuhiro-t.github.com>
+- RPMAUTOSPEC: unresolvable merge
+## END: Generated by rpmautospec


Generated by fedora-review 0.10.0 (e79b66b) last change: 2023-07-24
Command line :/usr/bin/fedora-review -b 2317888
Buildroot used: fedora-rawhide-x86_64
Active plugins: Shell-api, C/C++, Generic
Disabled plugins: PHP, fonts, SugarActivity, Java, Ocaml, Haskell, Python, R, Perl
Disabled flags: EXARCH, EPEL6, EPEL7, DISTTAG, BATCH

Comment 18 Jaroslav Škarvada 2024-10-30 18:00:53 UTC
configure: WARNING: C++ compiler is not capable of C++20.  Examples will not be built.
  - IMHO probably OK, we probably don't need to build examples

Latest version is packaged.
  - 1.8.1 is the latest version, please package latest version

Sources are verified with gpgverify first in %prep if upstream publishes signatures.
  - signatures published, please use gpgverify

%check is present and all tests pass.
  - it seems there are some tests that should be run in the %check section

It seems there are DOCs describing the API, please built it.
     
ngtcp2.x86_64: W: name-repeated-in-summary ngtcp2
  - I think this could be fixed, it would also resolve summary-not-capitalized rpmlint warning.

Comment 19 Petr Menšík 2024-11-04 19:56:05 UTC
Tests were not enabled, because they require external munit tool. That is not part of Fedora yet.
But there is unusual fact I haven't noticed. That munit is present in release archives, but not in git repository directly.

Nice, I have not found the documentation. It is quite nice, it would be shame to not include it. Thank you for spotting that.

Filled a MR:
https://github.com/ngtcp2/ngtcp2/pull/1404

make html target does not work on latest release. I would have to attach missing parts as extra source files.

Comment 20 Jan Staněk 2024-12-03 14:18:13 UTC
I'm dropping the needinfo on myself, since there are far more active reviewers; feel free to add it back if you really want my feedback.

Comment 21 Petr Menšík 2024-12-03 17:45:50 UTC
(In reply to Jan Staněk from comment #20)
> I'm dropping the needinfo on myself, since there are far more active
> reviewers; feel free to add it back if you really want my feedback.

My request to you were not to review this package. But to ensure it can be used to provide ngtcp2 functionality in current form.
Could you try this proposal, whether bundled nodejs build could use this package instead? Does it need something in addition?

Comment 22 Jan Staněk 2024-12-04 13:38:30 UTC
(In reply to Petr Menšík from comment #21)
> My request to you were not to review this package. But to ensure it can be
> used to provide ngtcp2 functionality in current form.
> Could you try this proposal, whether bundled nodejs build could use this
> package instead? Does it need something in addition?

Ah, OK. :-) I tried a local build of current nodejs22 with the bundled ngtcp2 removed and linked against this proposal, which finished successfully. I do not have any tests handy for whether it actually works, so no trying to actually use it. But the package seems to work as I would expect from it, so LGTM!

Comment 23 Andreas Schneider 2025-06-10 13:42:19 UTC
Ping! What is the status of this review request?

Petr could you package the latest version of ngtcp2?

Comment 24 Petr Menšík 2025-06-12 13:17:38 UTC
Spec URL: https://github.com/pemensik/ngtcp2/raw/refs/heads/fedora/ngtcp2.spec
SRPM URL: https://pemensik.fedorapeople.org/srpm/ngtcp2-1.13.0-1.fc43.src.rpm

Updated spec to 1.13.0. No other spec changes except version change.

Comment 25 Petr Menšík 2025-06-12 14:12:29 UTC
Created upstream issue https://github.com/ngtcp2/ngtcp2/issues/1673

Tried enabling tests building, but they fail to compile with default package flags. Both on my f41 and rawhide. I lack time to create PR fixing these, but it should not be hard to fix properly.

make[2]: Leaving directory '/builddir/build/BUILD/ngtcp2-1.13.0-build/ngtcp2-1.13.0/tests'
make[2]: Entering directory '/builddir/build/BUILD/ngtcp2-1.13.0-build/ngtcp2-1.13.0/tests'
gcc -DHAVE_CONFIG_H -I. -I..    -Wall -Wextra -Werror -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -Wpointer-arith -Wdeclaration-after-statement -Wformat-security -Wwrite-strings -Wshadow -Winline -Wnested-externs -Wfloat-equal -Wundef -Wendif-labels -Wempty-body -Wcast-align -Wclobbered -Wvla -Wpragmas -Wunreachable-code -Waddress -Wattributes -Wdiv-by-zero -Wconversion -Wformat-nonliteral -Wmissing-field-initializers -Wmissing-noreturn -Wmissing-variable-declarations -Wsign-conversion -Wunused-parameter -Wredundant-decls -Wheader-guard -Wduplicated-branches -Wno-format-nonliteral -I../lib -I../lib/includes -I../tests/munit -I../lib/includes -DBUILDING_NGTCP2 -DHAVE_CONFIG_H -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer  -c -o ngtcp2_conn_test.o ngtcp2_conn_test.c
make[2]: Leaving directory '/builddir/build/BUILD/ngtcp2-1.13.0-build/ngtcp2-1.13.0/tests'
make[2]: Entering directory '/builddir/build/BUILD/ngtcp2-1.13.0-build/ngtcp2-1.13.0/tests'
/bin/sh ../libtool  --tag=CC   --mode=link gcc -Wall -Wextra -Werror -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -Wpointer-arith -Wdeclaration-after-statement -Wformat-security -Wwrite-strings -Wshadow -Winline -Wnested-externs -Wfloat-equal -Wundef -Wendif-labels -Wempty-body -Wcast-align -Wclobbered -Wvla -Wpragmas -Wunreachable-code -Waddress -Wattributes -Wdiv-by-zero -Wconversion -Wformat-nonliteral -Wmissing-field-initializers -Wmissing-noreturn -Wmissing-variable-declarations -Wsign-conversion -Wunused-parameter -Wredundant-decls -Wheader-guard -Wduplicated-branches -Wno-format-nonliteral -I../lib -I../lib/includes -I../tests/munit -I../lib/includes -DBUILDING_NGTCP2 -DHAVE_CONFIG_H -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer  -static -Wl,-z,relro -Wl,--as-needed  -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes  -o main  main.o ngtcp2_pkt_test.o ngtcp2_range_test.o ngtcp2_rob_test.o ngtcp2_acktr_test.o ngtcp2_map_test.o ngtcp2_transport_params_test.o ngtcp2_rtb_test.o ngtcp2_idtr_test.o ngtcp2_conn_test.o ngtcp2_ringbuf_test.o ngtcp2_conv_test.o ngtcp2_ksl_test.o ngtcp2_gaptr_test.o ngtcp2_vec_test.o ngtcp2_strm_test.o ngtcp2_pv_test.o ngtcp2_pmtud_test.o ngtcp2_str_test.o ngtcp2_tstamp_test.o ngtcp2_cc_test.o ngtcp2_qlog_test.o ngtcp2_window_filter_test.o ngtcp2_settings_test.o ngtcp2_ppe_test.o ngtcp2_dcidtr_test.o ngtcp2_addr_test.o ngtcp2_test_helper.o munit/munit.o ../lib/.libs/*.o 
libtool: link: gcc -Wall -Wextra -Werror -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -Wpointer-arith -Wdeclaration-after-statement -Wformat-security -Wwrite-strings -Wshadow -Winline -Wnested-externs -Wfloat-equal -Wundef -Wendif-labels -Wempty-body -Wcast-align -Wclobbered -Wvla -Wpragmas -Wunreachable-code -Waddress -Wattributes -Wdiv-by-zero -Wconversion -Wformat-nonliteral -Wmissing-field-initializers -Wmissing-noreturn -Wmissing-variable-declarations -Wsign-conversion -Wunused-parameter -Wredundant-decls -Wheader-guard -Wduplicated-branches -Wno-format-nonliteral -I../lib -I../lib/includes -I../tests/munit -I../lib/includes -DBUILDING_NGTCP2 -DHAVE_CONFIG_H -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wl,-z -Wl,relro -Wl,--as-needed -Wl,-z -Wl,pack-relative-relocs -Wl,-z -Wl,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes -o main main.o ngtcp2_pkt_test.o ngtcp2_range_test.o ngtcp2_rob_test.o ngtcp2_acktr_test.o ngtcp2_map_test.o ngtcp2_transport_params_test.o ngtcp2_rtb_test.o ngtcp2_idtr_test.o ngtcp2_conn_test.o ngtcp2_ringbuf_test.o ngtcp2_conv_test.o ngtcp2_ksl_test.o ngtcp2_gaptr_test.o ngtcp2_vec_test.o ngtcp2_strm_test.o ngtcp2_pv_test.o ngtcp2_pmtud_test.o ngtcp2_str_test.o ngtcp2_tstamp_test.o ngtcp2_cc_test.o ngtcp2_qlog_test.o ngtcp2_window_filter_test.o ngtcp2_settings_test.o ngtcp2_ppe_test.o ngtcp2_dcidtr_test.o ngtcp2_addr_test.o ngtcp2_test_helper.o munit/munit.o ../lib/.libs/ngtcp2_acktr.o ../lib/.libs/ngtcp2_addr.o ../lib/.libs/ngtcp2_balloc.o ../lib/.libs/ngtcp2_bbr.o ../lib/.libs/ngtcp2_buf.o ../lib/.libs/ngtcp2_cc.o ../lib/.libs/ngtcp2_cid.o ../lib/.libs/ngtcp2_conn.o ../lib/.libs/ngtcp2_conv.o ../lib/.libs/ngtcp2_crypto.o ../lib/.libs/ngtcp2_dcidtr.o ../lib/.libs/ngtcp2_err.o ../lib/.libs/ngtcp2_frame_chain.o ../lib/.libs/ngtcp2_gaptr.o ../lib/.libs/ngtcp2_idtr.o ../lib/.libs/ngtcp2_ksl.o ../lib/.libs/ngtcp2_log.o ../lib/.libs/ngtcp2_map.o ../lib/.libs/ngtcp2_mem.o ../lib/.libs/ngtcp2_objalloc.o ../lib/.libs/ngtcp2_opl.o ../lib/.libs/ngtcp2_path.o ../lib/.libs/ngtcp2_pkt.o ../lib/.libs/ngtcp2_pmtud.o ../lib/.libs/ngtcp2_ppe.o ../lib/.libs/ngtcp2_pq.o ../lib/.libs/ngtcp2_pv.o ../lib/.libs/ngtcp2_qlog.o ../lib/.libs/ngtcp2_range.o ../lib/.libs/ngtcp2_ringbuf.o ../lib/.libs/ngtcp2_rob.o ../lib/.libs/ngtcp2_rst.o ../lib/.libs/ngtcp2_rtb.o ../lib/.libs/ngtcp2_settings.o ../lib/.libs/ngtcp2_str.o ../lib/.libs/ngtcp2_strm.o ../lib/.libs/ngtcp2_transport_params.o ../lib/.libs/ngtcp2_unreachable.o ../lib/.libs/ngtcp2_vec.o ../lib/.libs/ngtcp2_version.o ../lib/.libs/ngtcp2_window_filter.o 
make[2]: Leaving directory '/builddir/build/BUILD/ngtcp2-1.13.0-build/ngtcp2-1.13.0/tests'
In function 'ngtcp2_ringbuf_push_front',
    inlined from 'test_ngtcp2_ringbuf_push_front' at ngtcp2_ringbuf_test.c:56:15,
    inlined from 'wrap_test_ngtcp2_ringbuf_push_front' at ngtcp2_ringbuf_test.h:38:1:
../lib/ngtcp2_ringbuf.c:88:10: error: 'rb.buf' may be used uninitialized [-Werror=maybe-uninitialized]
   88 |   return (void *)&rb->buf[rb->first * rb->size];
      |          ^
ngtcp2_ringbuf_test.c: In function 'wrap_test_ngtcp2_ringbuf_push_front':
ngtcp2_ringbuf_test.c:49:18: note: 'rb.buf' was declared here
   49 |   ngtcp2_ringbuf rb;
      |                  ^
In function 'ngtcp2_ringbuf_push_front',
    inlined from 'test_ngtcp2_ringbuf_pop_front' at ngtcp2_ringbuf_test.c:85:15,
    inlined from 'wrap_test_ngtcp2_ringbuf_pop_front' at ngtcp2_ringbuf_test.h:39:1:
../lib/ngtcp2_ringbuf.c:88:10: error: 'rb.buf' may be used uninitialized [-Werror=maybe-uninitialized]
   88 |   return (void *)&rb->buf[rb->first * rb->size];
      |          ^
ngtcp2_ringbuf_test.c: In function 'wrap_test_ngtcp2_ringbuf_pop_front':
ngtcp2_ringbuf_test.c:78:18: note: 'rb.buf' was declared here
   78 |   ngtcp2_ringbuf rb;
      |                  ^
lto1: all warnings being treated as errors
make[3]: *** [/tmp/ccm8nudj.mk:20: /tmp/ccyJPBCV.ltrans9.ltrans.o] Error 1
make[3]: *** Waiting for unfinished jobs....
ngtcp2_vec_test.c: In function 'test_ngtcp2_vec_copy_at_most':
ngtcp2_vec_test.c:605:9: error: 'src' may be used uninitialized [-Werror=maybe-uninitialized]
  605 |     n = ngtcp2_vec_copy_at_most(dst, 0, src, 0, 100);
      |         ^
../lib/ngtcp2_vec.c:190:8: note: by argument 3 of type 'const struct ngtcp2_vec *' to 'ngtcp2_vec_copy_at_most' declared here
  190 | size_t ngtcp2_vec_copy_at_most(ngtcp2_vec *dst, size_t dstcnt,
      |        ^
ngtcp2_vec_test.c:603:22: note: 'src' declared here
  603 |     const ngtcp2_vec src[1];
      |                      ^
lto1: all warnings being treated as errors
make[3]: *** [/tmp/ccm8nudj.mk:22: /tmp/ccyJPBCV.ltrans10.ltrans.o] Error 1
lto-wrapper: fatal error: make returned 2 exit status
compilation terminated.
/usr/bin/ld: error: lto-wrapper failed
collect2: error: ld returned 1 exit status

Comment 26 Petr Menšík 2025-06-12 14:15:32 UTC
Update provided, not yet enabling tests, because they won't even compile cleanly.

Comment 27 Fedora Review Service 2025-06-12 14:56:38 UTC
Created attachment 2093771 [details]
The .spec file difference from Copr build 8163025 to 9156417

Comment 28 Fedora Review Service 2025-06-12 14:56:40 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/9156417
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2317888-ngtcp2/fedora-rawhide-x86_64/09156417-ngtcp2/fedora-review/review.txt

Found issues:

- Upstream MD5sum check error, diff is in /var/lib/copr-rpmbuild/results/ngtcp2/diff.txt
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/SourceURL/

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 30 Fedora Review Service 2025-06-12 17:08:08 UTC
Created attachment 2093778 [details]
The .spec file difference from Copr build 9156417 to 9157292

Comment 31 Fedora Review Service 2025-06-12 17:08:11 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/9157292
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2317888-ngtcp2/fedora-rawhide-x86_64/09157292-ngtcp2/fedora-review/review.txt

Found issues:

- Upstream MD5sum check error, diff is in /var/lib/copr-rpmbuild/results/ngtcp2/diff.txt
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/SourceURL/

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 32 Andreas Schneider 2025-06-13 08:19:38 UTC
Could you please address the following issues:

ngtcp2-doc.x86_64: W: summary-not-capitalized ngtcp2 documentation
ngtcp2-devel.x86_64: W: summary-not-capitalized ngtcp2 development files
ngtcp2.x86_64: W: summary-not-capitalized ngtcp2 project is an effort to implement RFC9000 QUIC protocol
ngtcp2-devel.x86_64: W: no-documentation
ngtcp2-doc.x86_64: E: no-binary
ngtcp2.x86_64: W: name-repeated-in-summary ngtcp2
ngtcp2-doc.x86_64: W: hidden-file-or-dir /usr/share/doc/ngtcp2-doc/html/.buildinfo

Maybe
Summary: An implementation of the QUIC protocol

/usr/share/doc/ngtcp2-doc/html/searchindex.js has an executable bit.