Bug 2303167 - Review Request: carbon-c-relay - Enhanced C implementation of Carbon relay, aggregator and rewriter
Summary: Review Request: carbon-c-relay - Enhanced C implementation of Carbon relay, a...
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Jonathan Steffan
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: FE-DEADREVIEW
TreeView+ depends on / blocked
 
Reported: 2024-08-06 14:05 UTC by Igor Raits
Modified: 2025-01-19 04:25 UTC (History)
3 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2024-09-20 00:45:25 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Igor Raits 2024-08-06 14:05:31 UTC
Spec URL: https://download.copr.fedorainfracloud.org/results/ignatenkobrain/igorovo/fedora-rawhide-x86_64/07871445-carbon-c-relay/carbon-c-relay.spec
SRPM URL: https://download.copr.fedorainfracloud.org/results/ignatenkobrain/igorovo/fedora-rawhide-x86_64/07871445-carbon-c-relay/carbon-c-relay-3.8.1-1.fc41.src.rpm
Description:
Carbon-like Graphite line mode relay. This project aims to be a replacement of
the original Carbon relay. The main reason to build a replacement is
performance and configurability. Carbon is single threaded, and sending
metrics to multiple consistent-hash clusters requires chaining of relays. This
project provides a multithreaded relay which can address multiple targets and
clusters for each and every metric based on pattern matches.
Fedora Account System Username: ignatenkobrain

Comment 1 Igor Raits 2024-08-06 14:06:38 UTC
Note this package has been retired ~ year ago so this is re-review of retired package.

Comment 2 Jonathan Steffan 2024-08-11 18:53:48 UTC
Package Review
==============

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
[ ] = Manual review needed


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/carbon-c-relay
  See: https://docs.fedoraproject.org/en-US/packaging-
  guidelines/Naming/#_conflicting_package_names


===== 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]: 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 is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[!]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "Unknown or generated", "*No copyright* Apache License 2.0",
     "Apache License 2.0", "Apache License 2.0 [generated file]", "FSF
     Unlimited License (with License Retention) [generated file]", "GNU
     General Public License v2.0 or later [generated file]", "GNU General
     Public License v3.0 or later", "FSF Unlimited License [generated
     file]", "X11 License [generated file]", "GNU General Public License
     v2.0 or later", "Public domain". 154 files have unknown license.
     Detailed output of licensecheck in /home/jon/Reviews/carbon-c-
     relay/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.
[-]: 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.
[x]: Package contains systemd file(s) if in need.
[-]: Useful -debuginfo package or justification otherwise.
[x]: Package is not known to require an ExcludeArch tag.
[-]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 71885 bytes in 2 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]: %config files are marked noreplace or the reason is justified.
[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]: No %config files under /usr.
[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]: systemd_post is invoked in %post, systemd_preun in %preun, and
     systemd_postun in %postun for Systemd service files.
     Note: Systemd service file(s) in carbon-c-relay
[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).
[?]: Package functions as described.
[x]: Latest version is packaged.
[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]: 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]: Package should not use obsolete m4 macros


Rpmlint
-------
Checking: carbon-c-relay-3.8.1-1.fc41.x86_64.rpm
          carbon-c-relay-debuginfo-3.8.1-1.fc41.x86_64.rpm
          carbon-c-relay-debugsource-3.8.1-1.fc41.x86_64.rpm
          carbon-c-relay-3.8.1-1.fc41.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/tmpfxi9o9fk')]
checks: 32, packages: 4

carbon-c-relay.spec:54: W: unversioned-explicit-provides bundled(md5-peslyak)
carbon-c-relay.src: E: spelling-error ('rewriter', 'Summary(en_US) rewriter -> rewrite, rewrites, re writer')
carbon-c-relay.src: E: spelling-error ('configurability', '%description -l en_US configurability -> configuration')
carbon-c-relay.x86_64: E: spelling-error ('rewriter', 'Summary(en_US) rewriter -> rewrite, rewrites, re writer')
carbon-c-relay.x86_64: E: spelling-error ('configurability', '%description -l en_US configurability -> configuration')
carbon-c-relay.x86_64: W: crypto-policy-non-compliance-openssl /usr/bin/carbon-c-relay SSL_CTX_set_cipher_list
========= 4 packages and 0 specfiles checked; 4 errors, 2 warnings, 19 filtered, 4 badness; has taken 0.4 s ==========




Rpmlint (debuginfo)
-------------------
Checking: carbon-c-relay-debuginfo-3.8.1-1.fc41.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/tmp1k7rccgu')]
checks: 32, packages: 1

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





Rpmlint (installed packages)
----------------------------
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8): No such file or directory
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8): No such file or directory
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8): No such file or directory
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8): No such file or directory
============================ rpmlint session starts ============================
rpmlint: 2.5.0
configuration:
    /usr/lib/python3.13/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: 3

carbon-c-relay.x86_64: E: spelling-error ('rewriter', 'Summary(en_US) rewriter -> rewrite, rewrites, re writer')
carbon-c-relay.x86_64: E: spelling-error ('configurability', '%description -l en_US configurability -> configuration')
carbon-c-relay.x86_64: W: crypto-policy-non-compliance-openssl /usr/bin/carbon-c-relay SSL_CTX_set_cipher_list
 3 packages and 0 specfiles checked; 2 errors, 1 warnings, 14 filtered, 2 badness; has taken 0.4 s 



Source checksums
----------------
https://github.com/grobian/carbon-c-relay/archive/v3.8.1/carbon-c-relay-3.8.1.tar.gz :
  CHECKSUM(SHA256) this package     : c6a10775cba22ecb6137a816e403f090a59e8b5213f9f0daa14f137775da4f20
  CHECKSUM(SHA256) upstream package : c6a10775cba22ecb6137a816e403f090a59e8b5213f9f0daa14f137775da4f20


Requires
--------
carbon-c-relay (rpmlib, GLIBC filtered):
    /bin/sh
    config(carbon-c-relay)
    libc.so.6()(64bit)
    libcrypto.so.3()(64bit)
    libcrypto.so.3(OPENSSL_3.0.0)(64bit)
    liblz4.so.1()(64bit)
    libm.so.6()(64bit)
    libpcre2-posix.so.3()(64bit)
    libsnappy.so.1()(64bit)
    libssl.so.3()(64bit)
    libssl.so.3(OPENSSL_3.0.0)(64bit)
    libz.so.1()(64bit)
    rtld(GNU_HASH)
    shadow-utils

carbon-c-relay-debuginfo (rpmlib, GLIBC filtered):

carbon-c-relay-debugsource (rpmlib, GLIBC filtered):



Provides
--------
carbon-c-relay:
    bundled(md5-peslyak)
    carbon-c-relay
    carbon-c-relay(x86-64)
    config(carbon-c-relay)
    group(carbon-c-relay)
    user(carbon-c-relay)

carbon-c-relay-debuginfo:
    carbon-c-relay-debuginfo
    carbon-c-relay-debuginfo(x86-64)
    debuginfo(build-id)

carbon-c-relay-debugsource:
    carbon-c-relay-debugsource
    carbon-c-relay-debugsource(x86-64)



Generated by fedora-review 0.10.0 (e79b66b) last change: 2023-07-24
Command line :/usr/bin/fedora-review -r -n carbon-c-relay-3.8.1-1.fc41.src.rpm
Buildroot used: fedora-rawhide-x86_64
Active plugins: Generic, Shell-api, C/C++
Disabled plugins: Ocaml, R, Haskell, SugarActivity, Python, fonts, Perl, Java, PHP
Disabled flags: EXARCH, EPEL6, EPEL7, DISTTAG, BATCH

Comment 3 Jonathan Steffan 2024-08-11 18:57:41 UTC
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/carbon-c-relay
  See: https://docs.fedoraproject.org/en-US/packaging-
  guidelines/Naming/#_conflicting_package_names

This is fine as this review is an un-retire review.
  

[!]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "Unknown or generated", "*No copyright* Apache License 2.0",
     "Apache License 2.0", "Apache License 2.0 [generated file]", "FSF
     Unlimited License (with License Retention) [generated file]", "GNU
     General Public License v2.0 or later [generated file]", "GNU General
     Public License v3.0 or later", "FSF Unlimited License [generated
     file]", "X11 License [generated file]", "GNU General Public License
     v2.0 or later", "Public domain". 154 files have unknown license.
     Detailed output of licensecheck in /home/jon/Reviews/carbon-c-
     relay/licensecheck.txt
[!]: If the source package does not include license text(s) as a separate
     file from upstream, the packager SHOULD query upstream to include it.
     
Only Apache-2.0 is addressed. I think we need to add the non-generated licenses and license files.
     
[!]: %check is present and all tests pass.

Check is disabled and the referenced issue has been resolved. Please enable tests again and open a new issue if there are still actually issues.

carbon-c-relay.x86_64: W: crypto-policy-non-compliance-openssl /usr/bin/carbon-c-relay SSL_CTX_set_cipher_list

This indicates the system crypto policy is not being used. This should be resolved.

Comment 4 Igor Raits 2024-08-13 13:20:21 UTC
> Only Apache-2.0 is addressed. I think we need to add the non-generated licenses and license files.

I don't think so / not sure. The only things that are there with different than Apache-2.0 license are:

bison-generated files (conffile…)
```
/* As a special exception, you may create a larger work that contains
   part or all of the Bison parser skeleton and distribute that work
   under terms of your choice, so long as that work isn't itself a
   parser generator using the skeleton or a modified version thereof
   as a parser skeleton.  Alternatively, if you modify or redistribute
   the parser skeleton itself, you may (at your option) remove this
   special exception, which will cause the skeleton and the resulting
   Bison output files to be licensed under the GNU General Public
   License without this special exception.

   This special exception was added by the Free Software Foundation in
   version 2.2 of Bison.  */
```

md5: as this is public domain / kind of I am not sure if this needs to be specified there.

> Check is disabled and the referenced issue has been resolved. Please enable tests again and open a new issue if there are still actually issues.

The issue is still there, exactly the same. I will send it to upstream after import. I think this is not that critical for now.

> carbon-c-relay.x86_64: W: crypto-policy-non-compliance-openssl /usr/bin/carbon-c-relay SSL_CTX_set_cipher_list

This is expected because user can configure their ciphers if they wish in the config.
```
listen
    type linemode [transport <plain | gzip | lz4 | snappy> 
                      [<ssl | mtls> <pemcert>
                          [protomin <tlsproto>] [protomax <tlsproto>]
                          [ciphers <ssl-ciphers>] [ciphersuites <tls-suite>]
                      ]
                  ]
        <<interface[:port] | port> proto <udp | tcp>> ...
        </ptah/to/file proto unix> ...
    ;
    # tlsproto: <ssl3 | tls1.0 | tls1.1 | tls1.2 | tls1.3>
    # ssl-ciphers: see ciphers(1)
    # tls-suite: see SSL_CTX_set_ciphersuites(3)
```

Comment 5 Ben Beasley 2024-08-19 02:34:08 UTC
I didn’t look at the package source or investigate the other license, but some comments on the ones mentioned above:

https://docs.fedoraproject.org/en-US/legal/allowed-licenses/ does contain:

- GPL-2.0-or-later WITH Bison-exception-2.2
- GPL-3.0-or-later WITH Bison-exception-2.2

…so it is perfectly possible to represent Bison output in SPDX.

I assume the md5 implementation is one of the well-known public-domain md5 “copylibs” listed on the (obsolete) wiki page https://fedoraproject.org/wiki/Bundled_Libraries_Virtual_Provides#cite_note-2. If so, it would be LicenseRef-Fedora-Public-Domain, but you need to follow https://docs.fedoraproject.org/en-US/legal/update-existing-packages/#_public_domain: submit it for review and then add it to public-domain-text.txt in fedora-license data, similar to https://gitlab.com/fedora/legal/fedora-license-data/-/issues/550.

Comment 6 Jonathan Steffan 2024-08-20 18:03:38 UTC
Okay, it looks like the only remaining items for this are to get the License tag sorted out. Is it clear what to do? (I'm not an expert in this.)

Comment 7 Package Review 2024-09-20 00:45:25 UTC
This is an automatic action taken by review-stats script.

The ticket submitter failed to clear the NEEDINFO flag in a month.
As per https://fedoraproject.org/wiki/Policy_for_stalled_package_reviews
we consider this ticket as DEADREVIEW and proceed to close it.

Comment 8 Red Hat Bugzilla 2025-01-19 04:25:08 UTC
The needinfo request[s] on this closed bug have been removed as they have been unresolved for 120 days


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