Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 1738290
Summary: | Review Request: libcamera - A library to support complex camera ISPs | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Peter Robinson <pbrobinson> |
Component: | Package Review | Assignee: | Nobody's working on this, feel free to take it <nobody> |
Status: | NEW --- | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | rawhide | CC: | dave, jaskerx, package-review, xavier, zebob.m |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | If docs needed, set a value | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | Type: | Bug | |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | |||
Bug Blocks: | 1269538 |
Description
Peter Robinson
2019-08-06 17:11:11 UTC
Some notes from parsing the spec quickly : - The SCM and snapshot date should be mentioned in the Release: tag. https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/ - Even if you're packaging a snapshot, you can have a full URL in Source0. https://docs.fedoraproject.org/en-US/packaging-guidelines/SourceURL/ - I guess there's no versioned soname yet ? %global commit 36d62298b20bec1f052fac04fd3011511cc29226 %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global snapshotdate 20190809 Name: libcamera Version: 0 Release: 0.1%{?commit:.%{snapshotdate}git%{shortcommit}}%{?dist} - Ask upstream to add soname versioning to their library. If they refuse, do it downstream: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_downstream_so_name_versioning > - Ask upstream to add soname versioning to their library. If they refuse,
> do it downstream:
> https://docs.fedoraproject.org/en-US/packaging-guidelines/
> #_downstream_so_name_versioning
I've spoken with upstream and they will be adding so name versioning closer to the first release, they don't feel it's ready for that yet and all the tools that currently use it are internal to the repo. Once they start adding support to things like gstreamer they will be versioning it.
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. Still working with upstream, will look at a rebase shortly. It's the way the new Raspberry Pi camera is supported so we still need it. NEEDINFO me when you're ready. Since I was looking at libcamera for another project I rebased the spec file and made some other changes: - Add %check, it passed locally, but somehow not on koji - Splitting the existing package into muliple packages: separate docs, ipa modules and utilities - Disabling LTO, it broke the tests in %check - Adding some BuildRequires for new things: qcam, gstreamer plugin, ipa module signing and more Feel free to ignore if you don't want the changes I made: SPEC: https://daveo.fedorapeople.org/review/libcamera/0.0.0-0.2.6f09a61/libcamera.spec SRPM: https://daveo.fedorapeople.org/review/libcamera/0.0.0-0.2.6f09a61/libcamera-0.0.0-0.2.6f09a61.fc34.src.rpm FAS: daveo koji: https://koji.fedoraproject.org/koji/taskinfo?taskID=51300458 (In reply to Dave Olsthoorn from comment #8) > Since I was looking at libcamera for another project I rebased the spec file > and made some other changes: > - Add %check, it passed locally, but somehow not on koji > - Splitting the existing package into muliple packages: separate docs, ipa > modules and utilities > - Disabling LTO, it broke the tests in %check > - Adding some BuildRequires for new things: qcam, gstreamer plugin, ipa > module signing and more > Feel free to ignore if you don't want the changes I made: > > SPEC: > https://daveo.fedorapeople.org/review/libcamera/0.0.0-0.2.6f09a61/libcamera. > spec > SRPM: > https://daveo.fedorapeople.org/review/libcamera/0.0.0-0.2.6f09a61/libcamera- > 0.0.0-0.2.6f09a61.fc34.src.rpm > > FAS: daveo > > koji: https://koji.fedoraproject.org/koji/taskinfo?taskID=51300458 Youneed to work with PRobinson on this, I can't approved a package for someone who is not the reporter. I have this on my list for post F-33 GA to revisit. FYI PipeWire recently started compiling against libcamera, so just a heads up, and I guess libcamera doesn't exactly have a versioned release yet either. I'll update this review shortly. Still no versioned releases as yet, I'll reach out to upstream and see what their latest plans are, it's been a little while since I checked in with them. SPEC: https://pbrobinson.fedorapeople.org/libcamera.spec SRPM: https://pbrobinson.fedorapeople.org/libcamera-0.0.0-0.2.76a5861.fc34.src.rpm koji: https://koji.fedoraproject.org/koji/taskinfo?taskID=65221328 SPEC: https://pbrobinson.fedorapeople.org/libcamera.spec SRPM: https://pbrobinson.fedorapeople.org/libcamera-0.0.0-0.2.76a5861.fc34.src.rpm koji: https://koji.fedoraproject.org/koji/taskinfo?taskID=65224529 - Not needed anymore: %ldconfig_scriptlets %ldconfig_scriptlets ipa - %{_libdir}/libcamera*.so should be versioned, ask upstream to do so or do it locally for now. The unversioned should go into the devel subpackage then. See https://docs.fedoraproject.org/en-US/packaging-guidelines/#_downstream_so_name_versioning - The valid versioning for snapshots is as follow: Either YYYYMMDD.<revision> or YYYYMMDD<scm><revision> See https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/#_snapshots Release: 0.2%{?snapshot:.%{snapshotdate}git%{snapshot}}%{?dist} - Instead of providing the entire LICENSES folder, could you just include the ones that are actually used (LGPLv2.1+ and GPLv2) - Use %global not %define: %global _lto_cflags %{nil} - Please split the description to stay below 80 characters per line: libcamera.x86_64: E: description-line-too-long C libcamera is a library that deals with heavy hardware image processing operations libcamera.x86_64: E: description-line-too-long C of complex camera devices that are shared between the linux host all while allowing libcamera.x86_64: E: description-line-too-long C offload of certain aspects to the control of complex camera hardware such as ISPs. libcamera.x86_64: E: description-line-too-long C Hardware support includes USB UVC cameras, libv4l cameras as well as more complex - Valid license shorthand is LGPLv2+: libcamera.x86_64: W: invalid-license LGPLv2.1+ - You must delete the Sphinx build leftovers: libcamera-docs.noarch: W: hidden-file-or-dir /usr/share/doc/libcamera-0.0.0/html/.buildinfo libcamera-docs.noarch: W: hidden-file-or-dir /usr/share/doc/libcamera-0.0.0/html/.doctrees libcamera-docs.noarch: W: hidden-file-or-dir /usr/share/doc/libcamera-0.0.0/html/.doctrees - Escape the macros in comments with two %: libcamera.src:13: W: macro-in-comment %{name} libcamera.src:13: W: macro-in-comment %{snapshot} libcamera.src:13: W: macro-in-comment %{snapshot} libcamera.src:13: W: macro-in-comment %{name} libcamera.src:13: W: macro-in-comment %{snapshot} libcamera.src: E: specfile-error warning: Macro expanded in comment on line 13: %{name}-%{snapshot}/ %{snapshot} | xz > %{name}-%{snapshot}.tar.xz Package Review ============== Legend: [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated [ ] = Manual review needed Issues: ======= - 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 ===== 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]: Package does not contain any libtool archives (.la) [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. [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", "*No copyright* Expat License GNU Lesser General Public License, Version 2.1 GNU General Public License, Version 2 Apache License 2.0", "*No copyright* Apache License 2.0", "BSD 2-clause "Simplified" License", "BSD 3-clause "New" or "Revised" License", "*No copyright* Creative Commons CC0 Universal 1.0 Public Domain Dedication", "GNU General Public License, Version 2", "GNU Lesser General Public License, Version 2.1", "[generated file]", "*No copyright* GNU Lesser General Public License, Version 2.1", "BSD 3-clause "New" or "Revised" License GNU General Public License v2.0 or later", "GNU General Public License, Version 2 [obsolete FSF postal address (Temple Place)]", "Apache License 2.0". 852 files have unknown license. Detailed output of licensecheck in /home/bob/packaging/review/libcamera/review-libcamera/licensecheck.txt [x]: License file installed when any subpackage combination is installed. [x]: If the package is under multiple licenses, the licensing breakdown must be documented in the spec. [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. [-]: Package contains systemd file(s) if in need. [x]: Useful -debuginfo package or justification otherwise. [x]: Package is not known to require an ExcludeArch tag. [x]: 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 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]: Packages must not store files under /srv, /opt or /usr/local ===== SHOULD items ===== Generic: [-]: If the source package does not include license text(s) as a separate file from upstream, the packager SHOULD query upstream to include it. [x]: Final provides and requires are sane (see attachments). [x]: Fully versioned dependency in subpackages if applicable. Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in libcamera-docs [?]: 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. [-]: Description and summary sections in the package spec file contains translations for supported Non-English languages, if available. [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. [!]: Spec use %global instead of %define unless justified. Note: %define requiring justification: %define _lto_cflags %{nil} [x]: Reviewer should test that the package builds in mock. [x]: Buildroot is not present [x]: Package has no %clean section with rm -rf %{buildroot} (or $RPM_BUILD_ROOT) [x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin. [x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file [x]: The placement of pkgconfig(.pc) files are correct. [x]: SourceX is a working URL. ===== EXTRA items ===== Generic: [x]: Rpmlint is run on debuginfo package(s). Note: There are rpmlint messages (see attachment). [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]: Spec file according to URL is the same as in SRPM. Rpmlint ------- Checking: libcamera-0.0.0-0.2.76a5861.fc35.x86_64.rpm libcamera-devel-0.0.0-0.2.76a5861.fc35.x86_64.rpm libcamera-docs-0.0.0-0.2.76a5861.fc35.noarch.rpm libcamera-ipa-0.0.0-0.2.76a5861.fc35.x86_64.rpm libcamera-tools-0.0.0-0.2.76a5861.fc35.x86_64.rpm libcamera-qcam-0.0.0-0.2.76a5861.fc35.x86_64.rpm libcamera-gstreamer-0.0.0-0.2.76a5861.fc35.x86_64.rpm libcamera-debuginfo-0.0.0-0.2.76a5861.fc35.x86_64.rpm libcamera-debugsource-0.0.0-0.2.76a5861.fc35.x86_64.rpm libcamera-0.0.0-0.2.76a5861.fc35.src.rpm libcamera.x86_64: E: description-line-too-long C libcamera is a library that deals with heavy hardware image processing operations libcamera.x86_64: E: description-line-too-long C of complex camera devices that are shared between the linux host all while allowing libcamera.x86_64: E: description-line-too-long C offload of certain aspects to the control of complex camera hardware such as ISPs. libcamera.x86_64: E: description-line-too-long C Hardware support includes USB UVC cameras, libv4l cameras as well as more complex libcamera.x86_64: W: invalid-license LGPLv2.1+ libcamera.x86_64: E: invalid-soname /usr/lib64/libcamera.so libcamera.so libcamera.x86_64: W: no-documentation libcamera-devel.x86_64: W: invalid-license LGPLv2.1+ libcamera-devel.x86_64: W: no-documentation libcamera-docs.noarch: W: invalid-license LGPLv2.1+ libcamera-docs.noarch: W: hidden-file-or-dir /usr/share/doc/libcamera-0.0.0/html/.buildinfo libcamera-docs.noarch: W: hidden-file-or-dir /usr/share/doc/libcamera-0.0.0/html/.doctrees libcamera-docs.noarch: W: hidden-file-or-dir /usr/share/doc/libcamera-0.0.0/html/.doctrees libcamera-docs.noarch: W: wrong-file-end-of-line-encoding /usr/share/doc/libcamera-0.0.0/html/objects.inv libcamera-docs.noarch: W: file-not-utf8 /usr/share/doc/libcamera-0.0.0/html/objects.inv libcamera-ipa.x86_64: W: invalid-license LGPLv2.1+ libcamera-ipa.x86_64: W: no-documentation libcamera-tools.x86_64: W: invalid-license LGPLv2.1+ libcamera-tools.x86_64: W: no-documentation libcamera-tools.x86_64: W: no-manual-page-for-binary cam libcamera-qcam.x86_64: W: invalid-license LGPLv2.1+ libcamera-qcam.x86_64: W: no-documentation libcamera-qcam.x86_64: W: no-manual-page-for-binary qcam libcamera-gstreamer.x86_64: W: description-shorter-than-summary libcamera-gstreamer.x86_64: W: invalid-license LGPLv2.1+ libcamera-gstreamer.x86_64: W: no-documentation libcamera-debuginfo.x86_64: W: invalid-license LGPLv2.1+ libcamera-debugsource.x86_64: W: invalid-license LGPLv2.1+ libcamera.src: E: description-line-too-long C libcamera is a library that deals with heavy hardware image processing operations libcamera.src: E: description-line-too-long C of complex camera devices that are shared between the linux host all while allowing libcamera.src: E: description-line-too-long C offload of certain aspects to the control of complex camera hardware such as ISPs. libcamera.src: E: description-line-too-long C Hardware support includes USB UVC cameras, libv4l cameras as well as more complex libcamera.src: W: invalid-license LGPLv2.1+ libcamera.src:13: W: macro-in-comment %{name} libcamera.src:13: W: macro-in-comment %{snapshot} libcamera.src:13: W: macro-in-comment %{snapshot} libcamera.src:13: W: macro-in-comment %{name} libcamera.src:13: W: macro-in-comment %{snapshot} libcamera.src: E: specfile-error warning: Macro expanded in comment on line 13: %{name}-%{snapshot}/ %{snapshot} | xz > %{name}-%{snapshot}.tar.xz 10 packages and 0 specfiles checked; 10 errors, 29 warnings. |