Spec URL: https://download.copr.fedorainfracloud.org/results/ghenry/SentryPeer/fedora-35-x86_64/02988431-sentrypeer/sentrypeer.spec SRPM URL: https://download.copr.fedorainfracloud.org/results/ghenry/SentryPeer/fedora-35-x86_64/02988431-sentrypeer/sentrypeer-0.0.2-1.fc35.src.rpm Description: SentryPeer is a distributed peer to peer list of bad IP addresses and phone numbers collected via a SIP Honeypot Fedora Account System Username: ghenry Hi all, this isn't my first package for Fedora (as ghenry) I used to maintain RPMs back in 2005. Been around since Fedora 1. I used to be ghenry! I'll need a sponsor to get back into things. From https://docs.pagure.org/fedora-sponsors/active, I do know of: Paul Wouters (from back in 2006 if my emails are correct) Peter Robinson (from Perl world) David Cantrell (from Perl world too - @DrHydeous) I'm the upstream maintainer/project founder. Project presentation: https://blog.tadsummit.com/2021/11/17/sentrypeer/ I'm also a podcast host for Software Engineering Radio: https://www.se-radio.net/team/gavin-henry/ I've not done Koji yet (https://docs.pagure.org/koji/HOWTO/) Thanks for reading, Gavin.
I think following is redundant: %install rm -rf $RPM_BUILD_ROOT As per https://docs.fedoraproject.org/en-US/quick-docs/creating-rpm-packages/index.html Section name should be %clean and is no longer needed. "Note that this section is now redundant in Fedora and is only necessary for EPEL. Typically this contains only the following command: rm -rf %{buildroot}"
Thanks. I think this came from https://developer.fedoraproject.org/deployment/rpm/about.html and rpmdev-newspec on F34.
> Summary: This is a SIP honeypot for VoIP "This is a" is a bit redundant. Simply "SIP honeypot for VoIP" will suffice. > %install > rm -rf $RPM_BUILD_ROOT Don't do this. https://docs.fedoraproject.org/en-US/packaging-guidelines/#_tags_and_sections > %files > %{_mandir}/man1/%{name}.1.gz Do not assume man pages will be gzipped. Use a wildcard that can match any compression method (including no compression at all). https://docs.fedoraproject.org/en-US/packaging-guidelines/#_manpages
Thanks. I'll push a new specfile tonight. I'd like to do "VoIP peer to peer honeypot" or "SIP peer to peer honeypot for VoIP" Gavin.
I've also just realised I need to do a sentrypeer.service file. I was going to start with https://github.com/cgrates/cgrates/blob/master/packages/redhat_fedora/cgrates.service Is this the best place to read? https://docs.fedoraproject.org/en-US/quick-docs/understanding-and-administering-systemd/ Thanks.
Updated specfile - https://github.com/SentryPeer/SentryPeer/blob/main/packaging/rpm/sentrypeer.spec
Hi all, I've updated my spec file for systemd and a sysconfig file and tested on my F35. Works how I'd like it to. When someone has time, can they re-review everything? https://github.com/SentryPeer/SentryPeer/blob/main/packaging/rpm/sentrypeer.spec https://github.com/SentryPeer/SentryPeer/blob/main/packaging/rpm/sentrypeer.service https://github.com/SentryPeer/SentryPeer/blob/main/packaging/rpm/sentrypeer.options Thanks.
I'm unsure of this build error on copr though: https://download.copr.fedorainfracloud.org/results/ghenry/SentryPeer/fedora-35-x86_64/03084215-SentryPeer/builder-live.log.gz fedpkg is fine on my F35 workstation. Should I check on koji?
In the spec, you BuildRequire "gcc". This installs only the C compiler. For C++, you also need "gcc-c++".
Thanks. Weird, I wonder what needs that.
That's better. Thanks for the tip: https://download.copr.fedorainfracloud.org/results/ghenry/SentryPeer/fedora-35-x86_64/03084705-sentrypeer/builder-live.log.gz
Happy New Year! Anything more I need to do? Thanks.
The linked COPR build failed on 32-bit ARM. Please either fix this or add "ExcludeArch: %{arm}" to the spec.
What's the best practice for testing 64bit/32bit archs? Just this bit: src/sip_daemon.c: In function 'sip_daemon_init': src/sip_daemon.c:189:69: error: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'unsigned int' [-Werror=format=] 189 | "read_packet_buf size is: %lu: \n", | ~~^ | | | long unsigned int | %u 190 | sizeof(read_packet_buf)); | ~~~~~~~~~~~~~~~~~~~~~~~ | | | unsigned int src/sip_daemon.c:192:71: error: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'size_t' {aka 'unsigned int'} [-Werror=format=] 192 | "read_packet_buf length is: %lu: \n", | ~~^ | | | long unsigned int | %u 193 | strnlen(read_packet_buf, | ~~~~~~~~~~~~~~~~~~~~~~~~ | | | size_t {aka unsigned int} 194 | PACKET_BUFFER_SIZE));
Going to do: #if INTPTR_MAX == INT64_MAX
Hi all, My latest release is failing now building locally on F35 and Copr due to the -flto=auto flag the rpm build is adding: rpm builds are adding: > -O2 -flto=auto -ffat-lto-objects > -fexceptions -g -grecord-gcc-switches -pipe -Wall > -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 > -Wp,-D_GLIBCXX_ASSERTIONS > -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 > -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 > -m64 -mtune=generic -fasynchronous-unwind-tables > -fstack-clash-protection -fcf-protection -Wl,-z,relro -Wl,--as-needed > -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld > -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 It's actually only this that is triggering the error during "make check" now: -flto=auto error: call to ‘_curl_easy_setopt_err_write_callback’ declared with attribute warning: curl_easy_setopt expects a curl_write_callback argument for this option [-Werror=attribute-warning] 60 | curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, | ^ lto1: all warnings being treated as errors Ideas? Thanks
Sorted. All good now on arm64: https://copr.fedorainfracloud.org/coprs/ghenry/SentryPeer/build/3225420/ Do we need to support arm 32? Thanks!
This is an automatic check from review-stats script. This review request ticket hasn't been updated for some time. We're sorry it is taking so long. If you're still interested in packaging this software into Fedora repositories, please respond to this comment clearing the NEEDINFO flag. You may want to update the specfile and the src.rpm to the latest version available and to propose a review swap on Fedora devel mailing list to increase chances to have your package reviewed. If this is your first package and you need a sponsor, you may want to post some informal reviews. Read more at https://fedoraproject.org/wiki/How_to_get_sponsored_into_the_packager_group. Without any reply, this request will shortly be considered abandoned and will be closed. Thank you for your patience.
Thanks. This was all ready for review a year ago, but no reply. What do I need to do? Update a COPR?
(In reply to Gavin Henry from comment #19) > Thanks. This was all ready for review a year ago, but no reply. What do I > need to do? Update a COPR? Do you still want to make this package review, maybe I can take the review request for you.
re-uploading the SPEC and SRPM file for the package review will be ok.
Thanks, I'll do that as v3.0.0 is out now too.
Just running now: fedpkg --release f36 mockbuild will upload spec and SRPM to this ticket. Thanks.
Created attachment 1963269 [details] Latest spec file
Created attachment 1963270 [details] Patch to fix runpath build fail.
Created attachment 1963271 [details] SRPM. Apologies. Patch file upload not needed. Inside SRPM :-)
This is a review *template*. Besides handling the [ ]-marked tests you are also supposed to fix the template before pasting into bugzilla: - Add issues you find to the list of issues on top. If there isn't such a list, create one. - Add your own remarks to the template checks. - Add new lines marked [!] or [?] when you discover new things not listed by fedora-review. - Change or remove any text in the template which is plain wrong. In this case you could also file a bug against fedora-review - Remove the "[ ] Manual check required", you will not have any such lines in what you paste. - Remove attachments which you deem not really useful (the rpmlint ones are mandatory, though) - Remove this text Package Review ============== Legend: [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated [ ] = Manual review needed Issues: ======= - 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. Note: License file COPYRIGHT is not marked as %license See: https://docs.fedoraproject.org/en-US/packaging- guidelines/LicensingGuidelines/#_license_text - 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 sentrypeer See: https://docs.fedoraproject.org/en-US/packaging- guidelines/Scriptlets/#_scriptlets ===== MUST items ===== C/C++: [ ]: Package does not contain kernel modules. [ ]: 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]: Package does not contain any libtool archives (.la) [x]: Rpath absent or only used for internal libs. Generic: [ ]: Package successfully compiles and builds into binary rpms on at least one supported primary architecture. Note: Using prebuilt packages [ ]: 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", "GNU General Public License, Version 2", "*No copyright* GNU General Public License, Version 2", "GNU General Public License, Version 2 [generated file]", "FSF Unlimited License (with License Retention) FSF All Permissive License [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]". 6 files have unknown license. Detailed output of licensecheck in /var/lib/copr- rpmbuild/results/sentrypeer/licensecheck.txt [ ]: License file installed when any subpackage combination is installed. [ ]: If the package is under multiple licenses, the licensing breakdown must be documented in the spec. [ ]: %build honors applicable compiler flags or justifies otherwise. [ ]: Package contains no bundled libraries without FPC exception. [ ]: Changelog in prescribed format. [ ]: 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 [ ]: Package uses nothing in %doc for runtime. [ ]: Package consistently uses macros (instead of hard-coded directory names). [ ]: Package is named according to the Package Naming Guidelines. [ ]: Package does not generate any conflict. [ ]: Package obeys FHS, except libexecdir and /usr/target. [ ]: If the package is a rename of another package, proper Obsoletes and Provides are present. [ ]: Requires correct, justified where necessary. [ ]: Spec file is legible and written in American English. [ ]: Package contains systemd file(s) if in need. [ ]: Useful -debuginfo package or justification otherwise. [ ]: 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 51200 bytes in 4 files. [ ]: 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]: 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 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: [!]: 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. [ ]: Final provides and requires are sane (see attachments). [ ]: Package functions as described. [ ]: Latest version is packaged. [ ]: 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. [ ]: Package should compile and build into binary rpms on all supported architectures. [ ]: %check is present and all tests pass. [ ]: Packages should try to preserve timestamps of original installed files. [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: sentrypeer-3.0.0-1.fc39.x86_64.rpm sentrypeer-debuginfo-3.0.0-1.fc39.x86_64.rpm sentrypeer-debugsource-3.0.0-1.fc39.x86_64.rpm sentrypeer-3.0.0-1.fc39.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/tmp3ckar9zt')] checks: 31, packages: 4 sentrypeer.x86_64: W: non-standard-uid /var/lib/sentrypeer sentrypeer sentrypeer.x86_64: W: non-standard-gid /var/lib/sentrypeer sentrypeer sentrypeer.spec:14: W: mixed-use-of-spaces-and-tabs (spaces: line 1, tab: line 14) 4 packages and 0 specfiles checked; 0 errors, 3 warnings, 0 badness; has taken 0.2 s Rpmlint (debuginfo) ------------------- Checking: sentrypeer-debuginfo-3.0.0-1.fc39.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/tmpijley92v')] checks: 31, packages: 1 1 packages and 0 specfiles checked; 0 errors, 0 warnings, 0 badness; has taken 0.1 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) ============================ 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 sentrypeer.x86_64: W: non-standard-uid /var/lib/sentrypeer sentrypeer sentrypeer.x86_64: W: non-standard-gid /var/lib/sentrypeer sentrypeer 3 packages and 0 specfiles checked; 0 errors, 2 warnings, 0 badness; has taken 0.3 s Source checksums ---------------- https://raw.githubusercontent.com/SentryPeer/SentryPeer/v3.0.0/packaging/rpm/sentrypeer.service : CHECKSUM(SHA256) this package : 36ecd4f040725a1977dc8ad5a08cea041c9a27702c235222153ad515143f6eb0 CHECKSUM(SHA256) upstream package : 36ecd4f040725a1977dc8ad5a08cea041c9a27702c235222153ad515143f6eb0 https://raw.githubusercontent.com/SentryPeer/SentryPeer/v3.0.0/packaging/rpm/sentrypeer.options : CHECKSUM(SHA256) this package : f8f7b5c74497a33f4453dc4d9a9f71a1986ee9c7ef3d2073d7c9075925dd0f83 CHECKSUM(SHA256) upstream package : f8f7b5c74497a33f4453dc4d9a9f71a1986ee9c7ef3d2073d7c9075925dd0f83 https://github.com/SentryPeer/SentryPeer/releases/download/v3.0.0/sentrypeer-3.0.0.tar.gz : CHECKSUM(SHA256) this package : 677c0da05312cf730e7747b935b39f23d9994d7dd06edcfd023b625f248ce0ec CHECKSUM(SHA256) upstream package : 677c0da05312cf730e7747b935b39f23d9994d7dd06edcfd023b625f248ce0ec Requires -------- sentrypeer (rpmlib, GLIBC filtered): /bin/sh config(sentrypeer) libc.so.6()(64bit) libcurl.so.4()(64bit) libjansson.so.4()(64bit) libmicrohttpd.so.12()(64bit) libosipparser2.so.15()(64bit) libpcre2-8.so.0()(64bit) libsqlite3.so.0()(64bit) libuuid.so.1()(64bit) libuuid.so.1(UUID_1.0)(64bit) rtld(GNU_HASH) shadow-utils sentrypeer-debuginfo (rpmlib, GLIBC filtered): sentrypeer-debugsource (rpmlib, GLIBC filtered): Provides -------- sentrypeer: config(sentrypeer) sentrypeer sentrypeer(x86-64) sentrypeer-debuginfo: debuginfo(build-id) sentrypeer-debuginfo sentrypeer-debuginfo(x86-64) sentrypeer-debugsource: sentrypeer-debugsource sentrypeer-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 sentrypeer --mock-config /var/lib/copr-rpmbuild/results/configs/child.cfg Buildroot used: fedora-rawhide-x86_64 Active plugins: Generic, Shell-api, C/C++ Disabled plugins: Perl, Java, R, Haskell, Python, fonts, PHP, Ocaml, SugarActivity Disabled flags: EPEL6, EPEL7, DISTTAG, BATCH, EXARCH -------- my comments: > License: GPLv2 or GPLv3 The license should be in SPDX license format, so it seems to be `GPL-2.0-only OR GPL-3.0-only`. ref: https://docs.fedoraproject.org/en-US/legal/license-field/#_basic_policy > Patch0: https://raw.githubusercontent.com/SentryPeer/SentryPeer/v%{version}/packaging/rpm/remove-runpatch.patch This link of the patch was not found now. Btw, the patch with upstream link or simple description comment is encouraged. ref: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_all_patches_should_have_an_upstream_bug_link_or_comment > %post > systemctl enable %{name}.service The service generally should not be enabled by default. remove this. ref: https://docs.fedoraproject.org/en-US/packaging-guidelines/DefaultServices/#_approved_exceptions When the package is upgraded, the service may restart only when the service is running. Maybe add the following lines: ``` %post %systemd_post sentrypeer.service %preun %systemd_preun sentrypeer.service %postun %systemd_postun_with_restart sentrypeer.service ``` ref: https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_systemd > %check section If the tests failed, you should find a way to fix it. It seems the tests failed currently. If the tests really cannot be fixed for now, you can disable it. Add some comments to explain will good. Tip: Adding a comment with URLs of the Spec and SRPM will triger automatic Copr build with a review.txt, which it will be helpful for the reviewer. ``` Spec URL: SRPM URL: ``` ref: https://github.com/FrostyX/fedora-review-service
Thanks. Will go through.
> > %check section > > If the tests failed, you should find a way to fix it. It seems the tests failed currently. > If the tests really cannot be fixed for now, you can disable it. Add some comments to explain will good. Sorry for my mistake here, so omit this. The tests worked fine.
Sorry for the delay. Will be on this again soon.
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.