https://bugzilla.redhat.com/show_bug.cgi?id=2235768
Bug ID: 2235768 Summary: Review Request: objfw - Portable, lightweight framework for the Objective-C language Product: Fedora Version: 38 Hardware: All OS: Linux Status: NEW Component: Package Review Severity: medium Assignee: nobody@fedoraproject.org Reporter: js-fedora@nil.im QA Contact: extras-qa@fedoraproject.org CC: package-review@lists.fedoraproject.org Target Milestone: --- Classification: Fedora
Spec URL: https://nil.im/objfw.spec SRPM URL: https://nil.im/objfw-1.0-1.fc40.src.rpm Description: Portable, lightweight framework for the Objective-C language
ObjFW is a portable, lightweight framework for the Objective-C language. It enables you to write an application in Objective-C that will run on any platform supported by ObjFW without having to worry about differences between operating systems or various frameworks you would otherwise need if you want to be portable.
It supports all modern Objective-C features when using Clang, but is also compatible with GCC ≥ 4.6 to allow maximum portability.
ObjFW also comes with its own lightweight and extremely fast Objective-C runtime, which in real world use cases was found to be significantly faster than both GNU's and Apple's runtime.
Fedora Account System Username: js Successful Koji build: https://koji.fedoraproject.org/koji/taskinfo?taskID=105489474
I am the upstream developer of the software.
Reproducible: Always
https://bugzilla.redhat.com/show_bug.cgi?id=2235768
Fedora Review Service fedora-review-bot@fedoraproject.org changed:
What |Removed |Added ---------------------------------------------------------------------------- URL| |https://objfw.nil.im
--- Comment #1 from Fedora Review Service fedora-review-bot@fedoraproject.org --- Copr build: https://copr.fedorainfracloud.org/coprs/build/6353417 (succeeded)
Review template: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-rev...
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.
https://bugzilla.redhat.com/show_bug.cgi?id=2235768
Benson Muite benson_muite@emailplus.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Doc Type|--- |If docs needed, set a value Status|NEW |ASSIGNED Assignee|nobody@fedoraproject.org |benson_muite@emailplus.org Flags| |fedora-review? CC| |benson_muite@emailplus.org
https://bugzilla.redhat.com/show_bug.cgi?id=2235768
--- Comment #2 from Benson Muite benson_muite@emailplus.org --- Issues: ======= - Package must not depend on deprecated() packages. Note: openssl1.1-devel is deprecated, you must not depend on it. See: https://docs.fedoraproject.org/en-US/packaging- guidelines/deprecating-packages/ - The License field must be a valid SPDX expression. Note: Not a valid SPDX expression 'QPL or GPLv3 or GPLv2'. It seems that you are using the old Fedora license abbreviations. Try `license- fedora2spdx' for converting it to SPDX. See: https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_1
===== 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", "GNU General Public License, Version 2", "Q Public License 1.0", "FSF Unlimited License [generated file]", "GNU General Public License v3.0 or later", "Historical Permission Notice and Disclaimer - sell variant [generated file]", "Q Public License 1.0 GNU General Public License, Version 2", "GNU General Public License v2.0 or later". 56 files have unknown license. Detailed output of licensecheck in /home/FedoraPackaging/reviews/objfw/2235768-objfw/licensecheck.txt [x]: 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. [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. [ ]: 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. [ ]: 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. [ ]: 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]: 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 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]: Large documentation must go in a -doc subpackage. Large could be size (~1MB) or number of files. Note: Documentation size is 0 bytes in 0 files. [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). [ ]: Fully versioned dependency in subpackages if applicable. Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in libobjfw , libobjfwrt , libobjfwrt-devel , libobjfwtls , libobjfwtls-devel [ ]: 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. [ ]: 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]: 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]: 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) [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: objfw-1.0-1.fc38.x86_64.rpm libobjfw-1.0-1.fc38.x86_64.rpm libobjfw-devel-1.0-1.fc38.x86_64.rpm libobjfwrt-1.0-1.fc38.x86_64.rpm libobjfwrt-devel-1.0-1.fc38.x86_64.rpm libobjfwtls-1.0-1.fc38.x86_64.rpm libobjfwtls-devel-1.0-1.fc38.x86_64.rpm ofarc-1.0-1.fc38.x86_64.rpm ofdns-1.0-1.fc38.x86_64.rpm ofhash-1.0-1.fc38.x86_64.rpm ofhttp-1.0-1.fc38.x86_64.rpm objfw-debuginfo-1.0-1.fc38.x86_64.rpm objfw-debugsource-1.0-1.fc38.x86_64.rpm objfw-1.0-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/tmpnae1wrwp')] checks: 31, packages: 14
objfw.src: W: strange-permission objfw.spec 600 libobjfw-devel.x86_64: E: rpath-in-buildconfig /usr/bin/objfw-config lines 69 libobjfw-devel.x86_64: W: position-independent-executable-suggested /usr/bin/objfw-new ofarc.x86_64: W: position-independent-executable-suggested /usr/bin/ofarc ofdns.x86_64: W: position-independent-executable-suggested /usr/bin/ofdns ofhash.x86_64: W: position-independent-executable-suggested /usr/bin/ofhash ofhttp.x86_64: W: position-independent-executable-suggested /usr/bin/ofhttp libobjfw-devel.x86_64: W: no-manual-page-for-binary objfw-compile libobjfw-devel.x86_64: W: no-manual-page-for-binary objfw-config libobjfw-devel.x86_64: W: no-manual-page-for-binary objfw-embed libobjfw-devel.x86_64: W: no-manual-page-for-binary objfw-new ofarc.x86_64: W: no-manual-page-for-binary ofarc ofdns.x86_64: W: no-manual-page-for-binary ofdns ofhash.x86_64: W: no-manual-page-for-binary ofhash ofhttp.x86_64: W: no-manual-page-for-binary ofhttp objfw.x86_64: W: no-documentation ofarc.x86_64: W: no-documentation ofdns.x86_64: W: no-documentation ofhash.x86_64: W: no-documentation ofhttp.x86_64: W: no-documentation objfw.x86_64: E: no-binary == 14 packages and 0 specfiles checked; 2 errors, 19 warnings, 2 badness; has taken 8.8 s =
Rpmlint (debuginfo) ------------------- Checking: objfw-debuginfo-1.0-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/tmppv8l6gi9')] checks: 31, packages: 1
=== 1 packages and 0 specfiles checked; 0 errors, 0 warnings, 0 badness; has taken 1.5 s ==
Rpmlint (installed packages) ---------------------------- ============================ 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: 13
libobjfw-devel.x86_64: E: rpath-in-buildconfig /usr/bin/objfw-config lines 69 ofhash.x86_64: W: position-independent-executable-suggested /usr/bin/ofhash ofarc.x86_64: W: position-independent-executable-suggested /usr/bin/ofarc ofhttp.x86_64: W: position-independent-executable-suggested /usr/bin/ofhttp libobjfw-devel.x86_64: W: position-independent-executable-suggested /usr/bin/objfw-new ofdns.x86_64: W: position-independent-executable-suggested /usr/bin/ofdns ofhash.x86_64: W: no-manual-page-for-binary ofhash ofarc.x86_64: W: no-manual-page-for-binary ofarc ofhttp.x86_64: W: no-manual-page-for-binary ofhttp libobjfw-devel.x86_64: W: no-manual-page-for-binary objfw-compile libobjfw-devel.x86_64: W: no-manual-page-for-binary objfw-config libobjfw-devel.x86_64: W: no-manual-page-for-binary objfw-embed libobjfw-devel.x86_64: W: no-manual-page-for-binary objfw-new ofdns.x86_64: W: no-manual-page-for-binary ofdns ofhash.x86_64: W: no-documentation ofarc.x86_64: W: no-documentation ofhttp.x86_64: W: no-documentation objfw.x86_64: W: no-documentation ofdns.x86_64: W: no-documentation objfw.x86_64: E: no-binary 13 packages and 0 specfiles checked; 2 errors, 18 warnings, 2 badness; has taken 6.3 s
Source checksums ---------------- https://objfw.nil.im/downloads/objfw-1.0.tar.gz.sig : CHECKSUM(SHA256) this package : b5092f72ecf93492f70b1c6ce26ce127bf638981227f7472685bcf0c94899d01 CHECKSUM(SHA256) upstream package : b5092f72ecf93492f70b1c6ce26ce127bf638981227f7472685bcf0c94899d01 https://objfw.nil.im/downloads/objfw-1.0.tar.gz : CHECKSUM(SHA256) this package : a6aa3bf590c6a7ae21cf13dbaa94a72926e67af5c7d5aef4a2b172543d1f26a3 CHECKSUM(SHA256) upstream package : a6aa3bf590c6a7ae21cf13dbaa94a72926e67af5c7d5aef4a2b172543d1f26a3
Requires -------- objfw (rpmlib, GLIBC filtered): libobjfw(x86-64) libobjfw-devel(x86-64) libobjfwrt(x86-64) libobjfwrt-devel(x86-64) ofarc(x86-64) ofdns(x86-64) ofhash(x86-64) ofhttp(x86-64)
libobjfw (rpmlib, GLIBC filtered): ld-linux-x86-64.so.2()(64bit) libc.so.6()(64bit) libgcc_s.so.1()(64bit) libgcc_s.so.1(GCC_3.0)(64bit) libgcc_s.so.1(GCC_3.3)(64bit) libm.so.6()(64bit) libobjfwrt(x86-64) libobjfwrt.so.1()(64bit) rtld(GNU_HASH)
libobjfw-devel (rpmlib, GLIBC filtered): /usr/bin/sh libc.so.6()(64bit) libgcc_s.so.1()(64bit) libgcc_s.so.1(GCC_3.0)(64bit) libobjfw(x86-64) libobjfw.so.1()(64bit) libobjfwrt-devel(x86-64) libobjfwrt.so.1()(64bit) rtld(GNU_HASH)
libobjfwrt (rpmlib, GLIBC filtered): ld-linux-x86-64.so.2()(64bit) libc.so.6()(64bit) libgcc_s.so.1()(64bit) libgcc_s.so.1(GCC_3.0)(64bit) rtld(GNU_HASH)
libobjfwrt-devel (rpmlib, GLIBC filtered): libobjfwrt(x86-64) libobjfwrt.so.1()(64bit)
libobjfwtls (rpmlib, GLIBC filtered): libc.so.6()(64bit) libcrypto.so.3()(64bit) libcrypto.so.3(OPENSSL_3.0.0)(64bit) libgcc_s.so.1()(64bit) libgcc_s.so.1(GCC_3.0)(64bit) libobjfw.so.1()(64bit) libobjfwrt.so.1()(64bit) libssl.so.3()(64bit) libssl.so.3(OPENSSL_3.0.0)(64bit) openssl(x86-64) rtld(GNU_HASH)
libobjfwtls-devel (rpmlib, GLIBC filtered): libobjfw-devel(x86-64) libobjfwrt-devel(x86-64) libobjfwtls(x86-64) libobjfwtls.so.1()(64bit)
ofarc (rpmlib, GLIBC filtered): libc.so.6()(64bit) libgcc_s.so.1()(64bit) libgcc_s.so.1(GCC_3.0)(64bit) libobjfw(x86-64) libobjfw.so.1()(64bit) libobjfwrt(x86-64) libobjfwrt.so.1()(64bit) rtld(GNU_HASH)
ofdns (rpmlib, GLIBC filtered): libc.so.6()(64bit) libobjfw(x86-64) libobjfw.so.1()(64bit) libobjfwrt(x86-64) libobjfwrt.so.1()(64bit) rtld(GNU_HASH)
ofhash (rpmlib, GLIBC filtered): libc.so.6()(64bit) libgcc_s.so.1()(64bit) libgcc_s.so.1(GCC_3.0)(64bit) libobjfw(x86-64) libobjfw.so.1()(64bit) libobjfwrt(x86-64) libobjfwrt.so.1()(64bit) rtld(GNU_HASH)
ofhttp (rpmlib, GLIBC filtered): libc.so.6()(64bit) libgcc_s.so.1()(64bit) libgcc_s.so.1(GCC_3.0)(64bit) libm.so.6()(64bit) libobjfw(x86-64) libobjfw.so.1()(64bit) libobjfwrt(x86-64) libobjfwrt.so.1()(64bit) libobjfwtls(x86-64) libobjfwtls.so.1()(64bit) rtld(GNU_HASH)
objfw-debuginfo (rpmlib, GLIBC filtered):
objfw-debugsource (rpmlib, GLIBC filtered):
Provides -------- objfw: objfw objfw(x86-64)
libobjfw: libobjfw libobjfw(x86-64) libobjfw.so.1()(64bit)
libobjfw-devel: libobjfw-devel libobjfw-devel(x86-64)
libobjfwrt: libobjfwrt libobjfwrt(x86-64) libobjfwrt.so.1()(64bit)
libobjfwrt-devel: libobjfwrt-devel libobjfwrt-devel(x86-64)
libobjfwtls: libobjfwtls libobjfwtls(x86-64) libobjfwtls.so.1()(64bit)
libobjfwtls-devel: libobjfwtls-devel libobjfwtls-devel(x86-64)
ofarc: ofarc ofarc(x86-64)
ofdns: ofdns ofdns(x86-64)
ofhash: ofhash ofhash(x86-64)
ofhttp: ofhttp ofhttp(x86-64)
objfw-debuginfo: objfw-debuginfo objfw-debuginfo(x86-64)
objfw-debugsource: objfw-debugsource objfw-debugsource(x86-64)
Diff spec file in url and in SRPM --------------------------------- --- /home/FedoraPackaging/reviews/objfw/2235768-objfw/srpm/objfw.spec 2023-09-08 17:23:04.795299507 +0300 +++ /home/FedoraPackaging/reviews/objfw/2235768-objfw/srpm-unpacked/objfw.spec 2023-08-29 03:00:00.000000000 +0300 @@ -1,2 +1,7 @@ +## START: Set by rpmautospec +## (rpmautospec version 0.3.5) +## RPMAUTOSPEC: autochangelog +## END: Set by rpmautospec + Name: objfw Version: 1.0 @@ -222,3 +227,5 @@ %{_datadir}/ofhttp
-%autochangelog +%changelog +* Tue Aug 29 2023 John Doe packager@example.com - 1.0-1 +- Uncommitted changes
Generated by fedora-review 0.10.0 (e79b66b) last change: 2023-07-24 Command line :/usr/bin/fedora-review -b 2235768 -m fedora-38-x86_64 Buildroot used: fedora-38-x86_64 Active plugins: Generic, C/C++, Shell-api Disabled plugins: fonts, SugarActivity, Java, PHP, Python, Perl, Ocaml, R, Ruby, Haskell Disabled flags: EXARCH, EPEL6, EPEL7, DISTTAG, BATCH
Comments: a) Please add a copy of the GPL-3.0 license to the package
b) Please use SPDX license identifiers: GPL-2.0-only OR GPL-3.0-only OR QPL-1.0
c) Run ./autogen.sh in the build section, not the prep section
d) Remove the section: Requires: libobjfw%{_isa} = %{version}-%{release} Requires: libobjfw-devel%{_isa} = %{version}-%{release} Requires: libobjfwrt%{_isa} = %{version}-%{release} Requires: libobjfwrt-devel%{_isa} = %{version}-%{release} Requires: ofarc%{_isa} = %{version}-%{release} Requires: ofdns%{_isa} = %{version}-%{release} Requires: ofhash%{_isa} = %{version}-%{release} Requires: ofhttp%{_isa} = %{version}-%{release}
These will be linked as needed.
e) GCC is preferred to Clang for builds if possible https://docs.fedoraproject.org/en-US/packaging-guidelines/#compiler As it seems clang adds useful functionality, please add
%global toolchain clang
to the top of the spec file.
d) The objfw package just seems to contain licenses. Is it needed? You could consider requiring all other packages to require objfw to get the licenses rather than having them as separate files in each package.
e) Can a newer version of OpenSSL be used?
f) Can you verify the signature? See https://docs.fedoraproject.org/en-US/packaging-guidelines/#_verifying_signat...
g) Can you run the tests?
h) Is it possible to package documentation?
https://bugzilla.redhat.com/show_bug.cgi?id=2235768
Jonathan S. js-fedora@nil.im changed:
What |Removed |Added ---------------------------------------------------------------------------- Flags| |needinfo?(benson_muite@emai | |lplus.org)
--- Comment #3 from Jonathan S. js-fedora@nil.im --- Thanks for the review!
a.) WDYM? It already has %license LICENSE.GPLv3? b.) Done - with the SuSE leftover removed. Sorry, I copied it from a .spec file I had for both that was for snapshots. c.) Removed entirely, it's not needed for non-development versions (for which said .spec file was). d.) The entire idea is that "objfw" is a meta-package pulling in everything. If I remove this, this would no longer be the case, no? e.) Done. second d.) The idea was that you can install everything individually. Only need the library as a dependency? Great, get libobjfw and libobjfwrt. Only want ofhttp to download a file? Great, just get libobjfw, libobjfwrt, libobjfwtls and ofhttp, without the -devel. Want to develop? Get libobjfw-devel. Want it all? Get objfw. second e.) Yes, OpenSSL 3 works fine. OpenSSL 1.1.1 is just the minimum. I increased the minimum to 3.0.0, is that correct? f.) D'oh. I even added the keyring and then forgot to actually check it. Done. g.) WDYM? There already is a %check in there? h.) Done.
Updated spec file: https://nil.im/objfw.spec
https://bugzilla.redhat.com/show_bug.cgi?id=2235768
Benson Muite benson_muite@emailplus.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Flags|needinfo?(benson_muite@emai | |lplus.org) |
--- Comment #4 from Benson Muite benson_muite@emailplus.org --- a) Sorry. Seems fine. d) Ok. Might consider a license only package objfw-licenses, see for example: https://src.fedoraproject.org/rpms/mlpack/blob/rawhide/f/mlpack.spec Meta package is fine.
Is it possible to get position independent executables? There also seems to be an rpath warning.
Please also upload new srpm.
https://bugzilla.redhat.com/show_bug.cgi?id=2235768
Jonathan S. js-fedora@nil.im changed:
What |Removed |Added ---------------------------------------------------------------------------- Flags| |needinfo?(benson_muite@emai | |lplus.org)
--- Comment #5 from Jonathan S. js-fedora@nil.im --- Honestly, I'm fine with not installing the license files at all if the Licenses: tag is enough. In general, I see very little point in having 1000s of copies of the same licenses in /usr/share/licenses. However, it seems that Fedora wants it this way: One file per package. Wouldn't adding such a -licenses package defeat the point of having /usr/share/licenses/libobjfw as well as /usr/share/licenses/ofhttp? I guess the entire idea is that you can just take the package name and get to the license, right?
What about the other points?
https://bugzilla.redhat.com/show_bug.cgi?id=2235768
Benson Muite benson_muite@emailplus.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Flags|needinfo?(benson_muite@emai | |lplus.org) |
--- Comment #6 from Benson Muite benson_muite@emailplus.org --- The license files need to be installed whenever any of the libraries and binaries are installed. What you have done is technically fine, just a suggestion that might minimize clutter.
The current spec file still pulls in openssl 1.1 to get 3 instead of BuildRequires: pkgconfig(openssl) Use BuildRequires: openssl-devel
An example spec file is at: https://download.copr.fedorainfracloud.org/results/fed500/objfw/fedora-rawhi...
From that build log: https://download.copr.fedorainfracloud.org/results/fed500/objfw/fedora-rawhi...
it seems that the Fedora compilation flags are not picked up in the generated buildsys.mk. Is it possible to add these?
Finally, from rpmlint messages: libobjfw-devel.x86_64: E: rpath-in-buildconfig /usr/bin/objfw-config lines 69 ofhash.x86_64: W: position-independent-executable-suggested /usr/bin/ofhash ofdns.x86_64: W: position-independent-executable-suggested /usr/bin/ofdns ofhttp.x86_64: W: position-independent-executable-suggested /usr/bin/ofhttp libobjfw-devel.x86_64: W: position-independent-executable-suggested /usr/bin/objfw-new ofarc.x86_64: W: position-independent-executable-suggested /usr/bin/ofarc
$ rpmlint -e position-independent-executable-suggested position-independent-executable-suggested: This executable should be position independent (all binaries should). Check that it is built with -fPIE/-fpie in compiler flags and -pie in linker flags.
$ rpmlint -e rpath-in-buildconfig rpath-in-buildconfig: This build configuration file contains rpaths which will be introduced into dependent packages.
https://bugzilla.redhat.com/show_bug.cgi?id=2235768
Jonathan S. js-fedora@nil.im changed:
What |Removed |Added ---------------------------------------------------------------------------- Flags| |needinfo?(benson_muite@emai | |lplus.org)
--- Comment #7 from Jonathan S. js-fedora@nil.im ---
The license files need to be installed whenever any of the libraries and binaries are installed. What you have done is technically fine, just a suggestion that might minimize clutter.
In that case, I think it's cleaner this way, as this doesn't break ls `/usr/share/licenses/$package` to see the license.
it seems that the Fedora compilation flags are not picked up in the generated buildsys.mk. Is it possible to add these?
Ah, this seems to be because it sets CFLAGS and CXXFLAGS, but not OBJCFLAGS. I've set OBJCFLAGS to CFLAGS for now, but really, that's a hack. I think Fedora should also set OBJCFLAGS for builds.
libobjfw-devel.x86_64: E: rpath-in-buildconfig /usr/bin/objfw-config lines 69
This should be ignored. It's a shellscript that can emit flags for using rpath. It isn't used by itself, since --disable-rpath is passed to configure.
ofhash.x86_64: W: position-independent-executable-suggested /usr/bin/ofhash ofdns.x86_64: W: position-independent-executable-suggested /usr/bin/ofdns ofhttp.x86_64: W: position-independent-executable-suggested /usr/bin/ofhttp libobjfw-devel.x86_64: W: position-independent-executable-suggested /usr/bin/objfw-new ofarc.x86_64: W: position-independent-executable-suggested /usr/bin/ofarc
This happens even when the flags are picked up. Looking at the flags passed by Fedora, there is nothing in CFLAGS or LDFLAGS for PIE. Shouldn't Fedora add the flags for PIE to those if it wants PIE?
New spec file: https://nil.im/objfw.spec New SRPM: https://nil.im/objfw-1.0-1.fc40.src.rpm
https://bugzilla.redhat.com/show_bug.cgi?id=2235768
Benson Muite benson_muite@emailplus.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Flags|needinfo?(benson_muite@emai | |lplus.org) |
--- Comment #8 from Benson Muite benson_muite@emailplus.org --- [fedora-review-service-build]
https://bugzilla.redhat.com/show_bug.cgi?id=2235768
Neal Gompa ngompa13@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |ngompa13@gmail.com
--- Comment #9 from Neal Gompa ngompa13@gmail.com --- Spec review notes of my own:
* Why clang? Could you build this with gcc? Most of our auto-hardening features are active with GCC. It also might fix the LTO issue.
BuildRequires: openssl-devel
If you intend to force OpenSSL 3.x, you should make sure that's specified here, especially so that if it's backported to EPEL, it'll link to the right library.
I noticed that your configure.ac doesn't use pkg_check_modules for OpenSSL. You might want to consider changing to that, so that using "pkgconfig(openssl)" would be accurate and work well in situations where this is being backported to distributions with different openssl versions available in parallel at build time.
In libobjfwtls, you have:
Requires: openssl%{_isa} >= 3.0.0
If this links to the libraries normally, you don't need this and it should be dropped. RPM does automatic dependency tracking for linked libraries at the soname level.
In the file lists for library packages, you have entries like the following:
%{_libdir}/libobjfw.so.*
This isn't allowed. Library versions need to be tracked in the spec file.
Cf. https://docs.fedoraproject.org/en-US/packaging-guidelines/#_listing_shared_l...
You can see an example of how I handled this in pkgconf: https://src.fedoraproject.org/rpms/pkgconf/blob/rawhide/f/pkgconf.spec
https://bugzilla.redhat.com/show_bug.cgi?id=2235768
--- Comment #10 from Jonathan S. js-fedora@nil.im ---
- Why clang? Could you build this with gcc? Most of our auto-hardening features are active with GCC. It also might fix the LTO issue.
GCC's Objective-C support is severely lacking, still at a very old state, missing many features and having terrible performance. It doesn't support modern Objective-C at all, and the library needs to be built with Clang in order to allow applications written for Clang to be compiled (different ABIs between GCC and Clang).
As for OpenSSL, I switched to GnuTLS as discussed in chat.
If this links to the libraries normally, you don't need this and it should be dropped. RPM does automatic dependency tracking for linked libraries at the soname level.
All dropped.
This isn't allowed. Library versions need to be tracked in the spec file.
Changed.
Updated spec file: https://nil.im/objfw.spec
https://bugzilla.redhat.com/show_bug.cgi?id=2235768
Neal Gompa ngompa13@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|38 |rawhide
https://bugzilla.redhat.com/show_bug.cgi?id=2235768
Neal Gompa ngompa13@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |davide@cavalca.name
--- Comment #11 from Neal Gompa ngompa13@gmail.com --- Looks good to me at this point.
https://bugzilla.redhat.com/show_bug.cgi?id=2235768
Jonathan S. js-fedora@nil.im changed:
What |Removed |Added ---------------------------------------------------------------------------- Flags| |needinfo?(benson_muite@emai | |lplus.org) | |needinfo?(benson_muite@emai | |lplus.org)
--- Comment #12 from Jonathan S. js-fedora@nil.im --- Updated SRPM (matching above .spec): https://nil.im/objfw-1.0-1.fc40.src.rpm Koji build: https://koji.fedoraproject.org/koji/taskinfo?taskID=105969998
@benson_muite@emailplus.org It seems fedora-review-service-build didn't do anything?
https://bugzilla.redhat.com/show_bug.cgi?id=2235768
--- Comment #13 from Fedora Review Service fedora-review-bot@fedoraproject.org --- Copr build: https://copr.fedorainfracloud.org/coprs/build/6390884 (succeeded)
Review template: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-rev...
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.
https://bugzilla.redhat.com/show_bug.cgi?id=2235768
--- Comment #14 from Fedora Review Service fedora-review-bot@fedoraproject.org --- Copr build: https://copr.fedorainfracloud.org/coprs/build/6390885 (succeeded)
Review template: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-rev...
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.
https://bugzilla.redhat.com/show_bug.cgi?id=2235768
--- Comment #15 from Fedora Review Service fedora-review-bot@fedoraproject.org --- Copr build: https://copr.fedorainfracloud.org/coprs/build/6390901 (succeeded)
Review template: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-rev...
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.
https://bugzilla.redhat.com/show_bug.cgi?id=2235768
Benson Muite benson_muite@emailplus.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Flags|needinfo?(benson_muite@emai | |lplus.org) | |needinfo?(benson_muite@emai | |lplus.org) |
--- Comment #16 from Benson Muite benson_muite@emailplus.org --- pie should be enabled by default: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_pie
To prevent the docs warning change %package -n objfw-docs %description -n objfw-docs %files -n objfw-docs to %package doc %description doc %files doc
Tried also specifying link flags, %configure \ OBJC=clang \ OBJCFLAGS="$CFLAGS -fpie -fpic" \ OBJLDFLAGS="$LDFLAGS -pie" \ --disable-rpath \ --with-tls=gnutls
see builds at: https://koji.fedoraproject.org/koji/taskinfo?taskID=106003260 Will check fedora-review output to see if it helps, but builds on copr are not completing correctly at present.
https://bugzilla.redhat.com/show_bug.cgi?id=2235768
Jonathan S. js-fedora@nil.im changed:
What |Removed |Added ---------------------------------------------------------------------------- Flags| |needinfo?(benson_muite@emai | |lplus.org)
--- Comment #17 from Jonathan S. js-fedora@nil.im --- Adding the flags there won't work as it will be picked up when building the libraries as well. I patched it instead.
New spec file: https://nil.im/objfw.spec New SRPM: https://nil.im/objfw-1.0.2-1.fc40.src.rpm Koji build: https://koji.fedoraproject.org/koji/taskinfo?taskID=106016079
https://bugzilla.redhat.com/show_bug.cgi?id=2235768
--- Comment #18 from Fedora Review Service fedora-review-bot@fedoraproject.org --- Created attachment 1988072 --> https://bugzilla.redhat.com/attachment.cgi?id=1988072&action=edit The .spec file difference from Copr build 6390901 to 6393236
https://bugzilla.redhat.com/show_bug.cgi?id=2235768
--- Comment #19 from Fedora Review Service fedora-review-bot@fedoraproject.org --- Copr build: https://copr.fedorainfracloud.org/coprs/build/6393236 (failed)
Build log: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-rev...
Please make sure the package builds successfully at least for Fedora Rawhide.
- If the build failed for unrelated reasons (e.g. temporary network unavailability), please ignore it. - If the build failed because of missing BuildRequires, please make sure they are listed in the "Depends On" field
--- This comment was created by the fedora-review-service https://github.com/FrostyX/fedora-review-service
If you want to trigger a new Copr build, add a comment containing new Spec and SRPM URLs or [fedora-review-service-build] string.
https://bugzilla.redhat.com/show_bug.cgi?id=2235768
--- Comment #20 from Jonathan S. js-fedora@nil.im --- Copr is being silly:
Failed to mount /proc/sys (type n/a) on /proc/sys (MS_BIND ""): Invalid argument Failed to create /user.slice/user-1000.slice/session-30.scope/payload subcgroup: Structure needs cleaning
Koji build is successful: https://koji.fedoraproject.org/koji/taskinfo?taskID=106016079
https://bugzilla.redhat.com/show_bug.cgi?id=2235768
Benson Muite benson_muite@emailplus.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Flags|fedora-review? |fedora-review+ |needinfo?(benson_muite@emai | |lplus.org) | Status|ASSIGNED |POST
--- Comment #21 from Benson Muite benson_muite@emailplus.org --- Seems ok. A few more warnings from fedora-review:
a) objfw.src: W: strange-permission objfw.spec 600
b) Use QPL-1.0 OR GPL-3.0-only OR GPL-2.0-only
- The License field must be a valid SPDX expression. Note: Not a valid SPDX expression 'QPL-1.0 or GPL-3.0-only or GPL-2.0-only'. See: https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_1
c) doc package needs to be noarch so use %package doc Summary: Documentation for ObjFW BuildArch: noarch
%description doc Documentation for ObjFW.
Please do above on import. Thanks for building this and bringing it to Fedora.
Approved.
If time allows, would appreciate a review of one of: https://bugzilla.redhat.com/show_bug.cgi?id=2237648 https://bugzilla.redhat.com/show_bug.cgi?id=2218338
https://bugzilla.redhat.com/show_bug.cgi?id=2235768
--- Comment #22 from Fedora Admin user for bugzilla script actions fedora-admin-xmlrpc@fedoraproject.org --- The Pagure repository was created at https://src.fedoraproject.org/rpms/objfw
https://bugzilla.redhat.com/show_bug.cgi?id=2235768
Fedora Update System updates@fedoraproject.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|POST |MODIFIED
--- Comment #23 from Fedora Update System updates@fedoraproject.org --- FEDORA-2023-7d3e2a1093 has been submitted as an update to Fedora 40. https://bodhi.fedoraproject.org/updates/FEDORA-2023-7d3e2a1093
https://bugzilla.redhat.com/show_bug.cgi?id=2235768
Fedora Update System updates@fedoraproject.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|MODIFIED |CLOSED Resolution|--- |ERRATA Last Closed| |2023-09-11 19:34:38
--- Comment #24 from Fedora Update System updates@fedoraproject.org --- FEDORA-2023-7d3e2a1093 has been pushed to the Fedora 40 stable repository. If problem still persists, please make note of it in this bug report.
package-review@lists.fedoraproject.org