Bug 2157646

Summary: Review Request: apt-cacher-ng - HTTP caching proxy for package files from Debian
Product: [Fedora] Fedora Reporter: Alexandre Detiste <alexandre.detiste>
Component: Package ReviewAssignee: Jonathan Wright <jonathan>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: jonathan, package-review
Target Milestone: ---Flags: jonathan: fedora-review+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2024-01-28 08:15:53 UTC 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
add versioning to .so
none
The .spec file difference from Copr build 5203037 to 5203079
none
The .spec file difference from Copr build 5207844 to 5225023 none

Description Alexandre Detiste 2023-01-02 13:07:19 UTC
Spec URL: https://src.fedoraproject.org/fork/adetiste/rpms/apt-cacher-ng/blob/rawhide/f/apt-cacher-ng.spec
SRPM URL: https://copr.fedorainfracloud.org/coprs/adetiste/apt-cacher-ng/
Description: apt-cacher-ng - HTTP caching proxy for package files from Debian
Fedora Account System Username: adetiste

I've refreshed the packaging and fixed standing bugs.

I'd like to maintain this in the long term.

We only discovered this was orphanned when we upgraded
from RHEL7 to RHEL8 last month.


I'm not sure how to backport this to EPEL8,
this needs a backported C-Ares too,
will see later; but any help now is also welcome.

Greetings

Comment 1 Jonathan Wright 2023-01-04 03:25:30 UTC
Wow talk about timing.  I started and finished on this a few days ago and was just about to submit it for review when I saw your ticket here.

I'll start on the review.  Afterwards I'd be happy to help co-maintain this as I need/use it too and found it orphaned post-EPEL7.

Comment 4 Jonathan Wright 2023-01-04 04:05:08 UTC
> License:          BSD and zlib

This seems to only be licensed under BSD now.  Also it should be SPDX format, ie: BSD-4-Clause [1]

> Source2:          apt-cacher-ng.service

I don't think it makes sense to main this custom source anymore unless we're wanting to customize it somehow, but that would probably be better handled with a patch file or `sed` in the spec.  Upstream now builds it by default from packaged templates, ie:

---
# systemd unit
mkdir -p %{buildroot}%{_unitdir}
install -D -p redhat-linux-build/systemd/%{name}.service %{buildroot}%{_unitdir}/%{name}.service
---

> $RPM_BUILD_ROOT

Personally I would replace all instances of `$RPM_BUILD_ROOT` with `%{buildroot}`

> %global _vpath_builddir build

This is not needed.  Nothing in the spec refers to the build dir, and it'd be best to just use the default one anyway IMO.

---

I think it makes sense to still package the useful Perl scripts, ie:

# Install adapted from debian/rules
mkdir -p %{buildroot}%{_libexecdir}/apt-cacher-ng/
install -pm 0755 scripts/expire-caller.pl scripts/urlencode-fixer.pl scripts/distkill.pl %{buildroot}%{_libexecdir}/apt-cacher-ng/

> rm -rf $RPM_BUILD_ROOT%{_datadir}/doc $RPM_BUILD_ROOT%{_sysconfdir}/avahi/services/apt-cacher-ng.service

It's probably best to include the docs, and I think %exclude is a bit cleaner for dealing with the avahi file.  The latter is just personal preference so if you want to keep the `rm` for it that's fine.

Under %files: 

%{_docdir}/%{name}/
%exclude %{_sysconfdir}/avahi/services/%{name}.service

---

- Development (unversioned) .so files in -devel subpackage, if present.
  Note: Unversioned so-files directly in %_libdir.
  See: https://docs.fedoraproject.org/en-US/packaging-
  guidelines/#_devel_packages

I'm attaching a patch file (soversion.patch) for the solution I came up with for that issue.  You'll also need to add something like the following sections to the spec to use it:

%package devel
Summary: Development files for %{name}
%description devel
%{summary}

%files devel
%license COPYING
%{_libdir}/libsupacng.so

---

> apt-cacher-ng.x86_64: W: post-without-tmpfile-creation /usr/lib/tmpfiles.d/apt-cacher-ng.conf


$ rpmlint -e 'post-without-tmpfile-creation'
post-without-tmpfile-creation:
Please use the %tmpfiles_create macro in %post for each of your tmpfiles.d
files if you expect this file or directory to be available after package
installation (and before reboot).

> apt-cacher-ng.x86_64: E: non-standard-executable-perm /etc/cron.daily/apt-cacher-ng 750
> apt-cacher-ng.x86_64: E: non-standard-dir-perm /run/apt-cacher-ng 700
> apt-cacher-ng.x86_64: E: non-standard-dir-perm /var/cache/apt-cacher-ng 700
> apt-cacher-ng.x86_64: E: non-standard-dir-perm /var/log/apt-cacher-ng 700
> apt-cacher-ng.x86_64: E: non-readable /etc/cron.daily/apt-cacher-ng 750

These are all sane so these need to be excluded via a apt-cacher-ng.rpmlintrc file in git.

> apt-cacher-ng.x86_64: E: executable-marked-as-config-file /etc/cron.daily/apt-cacher-ng

Packaging guidelines [2] state that marking this as a config file is correct so it should be excluded as well via the aforementioned rpmlintrc.

[1] https://docs.fedoraproject.org/en-US/packaging-guidelines/LicensingGuidelines/#_valid_license_short_names
[2] https://docs.fedoraproject.org/en-US/packaging-guidelines/CronFiles/#_cron_job_files_packaging

Comment 5 Alexandre Detiste 2023-01-04 07:20:54 UTC
> Wow talk about timing.  

The end goal is to be able to behave pretentious on Fosdem next month
when taking a bus or tram in Brussels :-)

(that's what a-c-ng will be used for)

> Afterwards I'd be happy to help co-maintain 

Great! I'm so rusty at this.

Just let me a little part so I do not risk beeing kicked out again:

https://pagure.io/find-inactive-packagers/issue/143

Comment 6 Alexandre Detiste 2023-01-04 07:31:04 UTC
> %tmpfiles_create

The documentation looks outdated or at least "# A bit contrived"...

https://fedoraproject.org/wiki/Packaging:Tmpfiles.d

Comment 7 Alexandre Detiste 2023-01-04 08:38:27 UTC
> It's probably best to include the docs

Of course, now users will get some weird 404 errors
on the maintenance website; I never digged the source of these before.

Comment 8 Alexandre Detiste 2023-01-05 20:38:54 UTC
> https://github.com/systemd/systemd/blob/107795a7592084699f68125f3d79c25a0ebca819/src/rpm/macros.systemd.in#L109
>
> %tmpfiles_create() ... is Deprecated... Use %tmpfiles_create_package instead
 

%tmpfiles_create_package is lower in the same file.
But I'd have to check if it was already there for RHEL8 backport.

Comment 9 Jonathan Wright 2023-01-05 21:05:15 UTC
Created attachment 1936034 [details]
add versioning to .so

I realized I forgot to attach the patch that I mentioned so here it is.

Comment 10 Alexandre Detiste 2023-01-05 21:21:29 UTC
I think libsupacng.so has no real life use outside of ACNG for now;
the split only complicate things without gain.

Comment 11 Jonathan Wright 2023-01-05 21:24:12 UTC
I don't believe policy will let us leave it in /usr/lib64 unversioned.

Per policy we should try to get upstream to start versioning the shared lib which would require us to put the unversioned one in devel anyway.

Comment 12 Alexandre Detiste 2023-01-05 23:04:15 UTC
Ok done.

Well everything is done but the "rpmlintrc".

I'm only making it worse.
> apt-cacher-ng.spec: E: unused-rpmlintrc-filter "executable-marked-as-config-file /etc/cron.daily/apt-cacher-ng"

Comment 13 Jonathan Wright 2023-01-05 23:10:47 UTC
Upload a SRPM with the rpmlintrc in it and I can help debug it.

Comment 15 Jakub Kadlčík 2023-01-05 23:35:15 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/5203037
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/frostyx/fedora-review-2157646-apt-cacher-ng/fedora-rawhide-x86_64/05203037-apt-cacher-ng/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

Comment 17 Jakub Kadlčík 2023-01-06 00:29:32 UTC
Created attachment 1936089 [details]
The .spec file difference from Copr build 5203037 to 5203079

Comment 18 Jakub Kadlčík 2023-01-06 00:29:34 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/5203079
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/frostyx/fedora-review-2157646-apt-cacher-ng/fedora-rawhide-x86_64/05203079-apt-cacher-ng/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

Comment 21 Jonathan Wright 2023-01-06 04:39:54 UTC
Looks pretty good now.  Need to actually have it build the -devel package to fix the unversioned shared lib issue.

Ex adding these snippets to your spec should fix it:

---
%package devel
Summary: Development files for %{name}
%description devel
%{summary}

%files devel
%license COPYING
%{_libdir}/libsupacng.so
---

There are lots of places where I think it would make more sense to use %{name} instead of apt-cacher-ng, ie almost everywhere.

> %patch0 -p1

This is not needed.  Simply change:

> %setup -q

to

> %autosetup -p1

and it will handle the patching for you.  You can also drop the "0" from "Patch0" when defining it if you want.

> Patch0:           supacng.patch

Add a comment about what the patch is doing (versioning the shared library).

> apt-cacher-ng.x86_64: E: executable-marked-as-config-file /etc/cron.daily/apt-cacher-ng

This remaining rpmlint error needs to be ignored via the rpmlintrc.

> Provides:         bundled(sha1-hollerbach)
> Provides:         bundled(md5-deutsch-c++)

I'm not sure these are actually bundled anymore.  I'm not seeing any signs of them in the sources.  I think these lines can be removed.

---

Since you are packaging the Perl scripts with it we need a proper Requires per packaging policy [1]:

Requires:  perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))

[1] https://docs.fedoraproject.org/en-US/packaging-guidelines/Perl/#_versioned_module_compat_requires

I think after these fixes we'll be ready to wrap this one up.

Comment 22 Alexandre Detiste 2023-01-08 20:07:45 UTC
> Provides:         bundled(sha1-hollerbach)
> Provides:         bundled(md5-deutsch-c++)

#ifdef HAVE_SSL
#include <openssl/sha.h>
#include <openssl/md5.h>
#elif defined(HAVE_TOMCRYPT)
#include <tomcrypt.h>
#endif

Ok, I've edited the wiki too that is citing apt-cacher-ng as an example.

https://fedoraproject.org/wiki/Bundled_Libraries_Virtual_Provides#cite_note-4

Here's also the original bug for reference:

https://pagure.io/packaging-committee/issue/407

Comment 23 Alexandre Detiste 2023-01-08 20:59:56 UTC
SRPM URL: https://download.copr.fedorainfracloud.org/results/adetiste/apt-cacher-ng/fedora-37-x86_64/05207842-apt-cacher-ng/apt-cacher-ng-3.7.4-1.fc37.src.rpm
Spec URL: https://download.copr.fedorainfracloud.org/results/adetiste/apt-cacher-ng/fedora-37-x86_64/05207842-apt-cacher-ng/apt-cacher-ng.spec

It's DONE. :-)

I just got rid of the unversionned /lib64/libsupacng.so altogether.

$ ldd /usr/sbin/apt-cacher-ng /usr/libexec/apt-cacher-ng/* 2>/dev/null | grep sup
        libsupacng.so.1 => /lib64/libsupacng.so.1 (0x00007f2623ec8000)
        libsupacng.so.1 => /lib64/libsupacng.so.1 (0x00007fa606f98000)
        libsupacng.so.1 => /lib64/libsupacng.so.1 (0x00007f34c8310000)

Comment 24 Jakub Kadlčík 2023-01-08 21:14:15 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/5207844
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2157646-apt-cacher-ng/fedora-rawhide-x86_64/05207844-apt-cacher-ng/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

Comment 25 Jonathan Wright 2023-01-12 18:33:56 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/apt-cacher-ng
  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]: Package contains no static executables.
[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]: 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.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "Unknown or generated", "BSD 4-Clause License". 250 files have
     unknown license. Detailed output of licensecheck in /var/lib/copr-
     rpmbuild/results/apt-cacher-ng/licensecheck.txt
[-]: License file installed when any subpackage combination is installed.
[x]: Package requires other packages for directories it uses.
     Note: No known owner of /etc/default
[x]: Package must own all directories that it creates.
     Note: Directories without known owners: /etc/default
[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.
[x]: 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 266240 bytes in 14 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]: 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 apt-cacher-ng
[x]: File names are valid UTF-8.
[x]: Packages must not store files under /srv, /opt or /usr/local

Perl:
[!]: Package contains the mandatory BuildRequires and Requires:.
     Note: Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`";
     echo $version)) missing?

===== SHOULD items =====

Generic:
[x]: Reviewer should test that the package builds in mock.
[-]: 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.
[-]: 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]: Files in /run, var/run and /var/lock uses tmpfiles.d when appropriate
[!]: Spec use %global instead of %define unless justified.
     Note: %define requiring justification: %define debian_release 1
[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.

===== 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.


Rpmlint
-------
Checking: apt-cacher-ng-3.7.4-1.fc38.x86_64.rpm
          apt-cacher-ng-debuginfo-3.7.4-1.fc38.x86_64.rpm
          apt-cacher-ng-debugsource-3.7.4-1.fc38.x86_64.rpm
          apt-cacher-ng-3.7.4-1.fc38.src.rpm
============================ rpmlint session starts ============================
rpmlint: 2.4.0
configuration:
    /usr/lib/python3.11/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/tmp65x4cq_l')]
checks: 31, packages: 4

apt-cacher-ng.x86_64: W: non-standard-uid /run/apt-cacher-ng apt-cacher-ng
apt-cacher-ng.x86_64: W: non-standard-uid /var/cache/apt-cacher-ng apt-cacher-ng
apt-cacher-ng.x86_64: W: non-standard-uid /var/log/apt-cacher-ng apt-cacher-ng
apt-cacher-ng.x86_64: W: non-standard-gid /run/apt-cacher-ng apt-cacher-ng
apt-cacher-ng.x86_64: W: non-standard-gid /var/cache/apt-cacher-ng apt-cacher-ng
apt-cacher-ng.x86_64: W: non-standard-gid /var/log/apt-cacher-ng apt-cacher-ng
apt-cacher-ng.x86_64: E: executable-marked-as-config-file /etc/cron.daily/apt-cacher-ng
 4 packages and 0 specfiles checked; 1 errors, 6 warnings, 1 badness; has taken 0.6 s




Rpmlint (debuginfo)
-------------------
Checking: apt-cacher-ng-debuginfo-3.7.4-1.fc38.x86_64.rpm
============================ rpmlint session starts ============================
rpmlint: 2.4.0
configuration:
    /usr/lib/python3.11/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/tmp7d8vdr5g')]
checks: 31, packages: 1

 1 packages and 0 specfiles checked; 0 errors, 0 warnings, 0 badness; has taken 0.3 s





Rpmlint (installed packages)
----------------------------
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
============================ rpmlint session starts ============================
rpmlint: 2.4.0
configuration:
    /usr/lib/python3.11/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: 31, packages: 3

apt-cacher-ng.x86_64: W: non-standard-uid /run/apt-cacher-ng apt-cacher-ng
apt-cacher-ng.x86_64: W: non-standard-uid /var/cache/apt-cacher-ng apt-cacher-ng
apt-cacher-ng.x86_64: W: non-standard-uid /var/log/apt-cacher-ng apt-cacher-ng
apt-cacher-ng.x86_64: W: non-standard-gid /run/apt-cacher-ng apt-cacher-ng
apt-cacher-ng.x86_64: W: non-standard-gid /var/cache/apt-cacher-ng apt-cacher-ng
apt-cacher-ng.x86_64: W: non-standard-gid /var/log/apt-cacher-ng apt-cacher-ng
apt-cacher-ng.x86_64: E: executable-marked-as-config-file /etc/cron.daily/apt-cacher-ng
 3 packages and 0 specfiles checked; 1 errors, 6 warnings, 1 badness; has taken 1.2 s



Source checksums
----------------
http://ftp.debian.org/debian/pool/main/a/apt-cacher-ng/apt-cacher-ng_3.7.4-1.debian.tar.xz :
  CHECKSUM(SHA256) this package     : 84bb67be5a6a77f1d412ea3b55fd6ae36f9434e42536391776c8083b6fc07e69
  CHECKSUM(SHA256) upstream package : 84bb67be5a6a77f1d412ea3b55fd6ae36f9434e42536391776c8083b6fc07e69
http://ftp.debian.org/debian/pool/main/a/apt-cacher-ng/apt-cacher-ng_3.7.4.orig.tar.xz :
  CHECKSUM(SHA256) this package     : 63140473a669c42f5e2219e38fa9d7c733f9047699dde52c3bd828e372929a5f
  CHECKSUM(SHA256) upstream package : 63140473a669c42f5e2219e38fa9d7c733f9047699dde52c3bd828e372929a5f


Requires
--------
apt-cacher-ng (rpmlib, GLIBC filtered):
    /bin/sh
    /usr/bin/perl
    /usr/bin/sh
    config(apt-cacher-ng)
    crontabs
    ld-linux-x86-64.so.2()(64bit)
    libbz2.so.1()(64bit)
    libc.so.6()(64bit)
    libcares.so.2()(64bit)
    libcrypto.so.3()(64bit)
    libcrypto.so.3(OPENSSL_3.0.0)(64bit)
    libevent-2.1.so.7()(64bit)
    libevent_pthreads-2.1.so.7()(64bit)
    libfuse.so.2()(64bit)
    libfuse.so.2(FUSE_2.2)(64bit)
    libfuse.so.2(FUSE_2.6)(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    liblzma.so.5()(64bit)
    liblzma.so.5(XZ_5.0)(64bit)
    libssl.so.3()(64bit)
    libssl.so.3(OPENSSL_3.0.0)(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.11)(64bit)
    libstdc++.so.6(CXXABI_1.3.13)(64bit)
    libstdc++.so.6(CXXABI_1.3.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.5)(64bit)
    libstdc++.so.6(CXXABI_1.3.9)(64bit)
    libsupacng.so.1()(64bit)
    libsystemd.so.0()(64bit)
    libsystemd.so.0(LIBSYSTEMD_209)(64bit)
    libz.so.1()(64bit)
    libz.so.1(ZLIB_1.2.0)(64bit)
    logrotate
    perl
    rtld(GNU_HASH)
    systemd
    xz

apt-cacher-ng-debuginfo (rpmlib, GLIBC filtered):

apt-cacher-ng-debugsource (rpmlib, GLIBC filtered):



Provides
--------
apt-cacher-ng:
    apt-cacher-ng
    apt-cacher-ng(x86-64)
    config(apt-cacher-ng)
    group(apt-cacher-ng)
    libsupacng.so.1()(64bit)
    user(apt-cacher-ng)

apt-cacher-ng-debuginfo:
    apt-cacher-ng-debuginfo
    apt-cacher-ng-debuginfo(x86-64)
    debuginfo(build-id)
    libsupacng.so.3.7.4-3.7.4-1.fc38.x86_64.debug()(64bit)

apt-cacher-ng-debugsource:
    apt-cacher-ng-debugsource
    apt-cacher-ng-debugsource(x86-64)



Generated by fedora-review 0.9.0 (6761b6c) last change: 2022-08-23
Command line :/usr/bin/fedora-review --no-colors --prebuilt --rpm-spec --name apt-cacher-ng --mock-config /var/lib/copr-rpmbuild/results/configs/child.cfg
Buildroot used: fedora-rawhide-x86_64
Active plugins: Perl, C/C++, Shell-api, Generic
Disabled plugins: SugarActivity, PHP, Python, R, Java, fonts, Haskell, Ocaml
Disabled flags: EPEL6, EPEL7, DISTTAG, BATCH, EXARCH

Comments:
=======================
I think a few things got missed that I cited before:

> %patch0 -p1

This is not needed.  Simply change:

> %setup -q

to

> %autosetup -p1

and it will handle the patching for you.  You can also drop the "0" from "Patch0" when defining it if you want.

> Patch0:           supacng.patch

Add a comment about what the patch is doing (versioning the shared library).

> apt-cacher-ng.x86_64: E: executable-marked-as-config-file /etc/cron.daily/apt-cacher-ng

This remaining rpmlint error needs to be ignored via the rpmlintrc.

-----

Since you are packaging the Perl scripts with it we need a proper Requires per packaging policy [1]:

Requires:  perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))

Comment 26 Alexandre Detiste 2023-01-12 21:31:20 UTC
SRPM URL: https://download.copr.fedorainfracloud.org/results/adetiste/apt-cacher-ng/fedora-37-x86_64/05225016-apt-cacher-ng/apt-cacher-ng-3.7.4-1.fc37.src.rpm
Spec URL: https://download.copr.fedorainfracloud.org/results/adetiste/apt-cacher-ng/fedora-37-x86_64/05225016-apt-cacher-ng/apt-cacher-ng.spec




I don't get any RPMLINT error locally.

I don't know why apt-cacher-ng.rpmlintrc is not picked up.

It is there in git:

https://src.fedoraproject.org/fork/adetiste/rpms/apt-cacher-ng/tree/rawhide




[tchet@fedora apt-cacher-ng]$ fedpkg lint
Mockbuild results directory not found. Linting local build results.

=================================================================== rpmlint session starts ===================================================================
rpmlint: 2.4.0
configuration:
    /usr/lib/python3.11/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('/home/tchet/apt-cacher-ng/apt-cacher-ng.rpmlintrc')]
checks: 31, packages: 3

==================================== 2 packages and 1 specfiles checked; 0 errors, 0 warnings, 0 badness; has taken 1.4 s ====================================
[tchet@fedora apt-cacher-ng]$

Comment 27 Jakub Kadlčík 2023-01-12 21:45:53 UTC
Created attachment 1937663 [details]
The .spec file difference from Copr build 5207844 to 5225023

Comment 28 Jakub Kadlčík 2023-01-12 21:45:56 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/5225023
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2157646-apt-cacher-ng/fedora-rawhide-x86_64/05225023-apt-cacher-ng/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

Comment 29 Jonathan Wright 2023-01-12 21:48:29 UTC
rpmlint is happy now and the other changes look good.

One last thing I see, please change "%define debian_release 1" to use "global" instead of "define".

This package is approved!

Comment 30 Package Review 2024-01-28 08:15:53 UTC
Package is now in repositories, closing review.