[Bug 1703477] Review Request: recorder: A lock-free, real-time flight recorder for C or C++ programs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



https://bugzilla.redhat.com/show_bug.cgi?id=1703477



--- Comment #2 from Christophe de Dinechin <dinechin@xxxxxxxxxx> ---
(In reply to Elliott Sales de Andrade from comment #1)
> - Drop "A " from Summary.

Done

> - Please end Description sentences with a period.

Done

> - You have mixed tabs and spaces.

Fixed

> - The license seems to be GPL, not LGPL. Please clarify this with
>   upstream, as the COPYING file contains the LGPL, but all license
>   headers state GPL.

An error when I applied my "header renormalization tool" in
e7df1041176eda88aea6102d1c4ecd9f144321a6.
Fixed.

There are really two licences:
- LGPLv2+ for the library
- GPLv3+ for the scope application

The license change was necessary for another project that uses the recorder
library.

> - devel and scope packages should depend on %{name}%{?_isa} =
>   %{version}-%{release} (though you won't need the latter once some
>   Changes go through).

Ah? Ok.

> - You don't need Requires:qt5-qtcharts as the executable is linked
>   with the library and will have automatic dependency on it.

OK. Is it harmful? I see it as useful documentation. Left it for now.

> - The makefile is not verbose, so I cannot verify if the required flags are
>   being used from the log.

Made build verbose so that you can check.
(For information, a verbose build log is produced by the make-it-quick build
system under .logs/make.log)

This comment caught my attention, and I made additional modifications to make
sure
the "hardeing" CFLAGS were correctly captured, basically adding a "fake"
%configure step
that is only used to capture these flags.


> - Don't use %{__install} macros (also the cd is kind of unneeded).

Done. Would you be kind enough to share the rationale? (I'm sort of new to
Fedora packaging)

> - buildroot is always defined; don't need to %{?...}

Changed.

> - Pass -p to install to preserve timestamps.

Done in a first pass.
In a second pass, I decided to use the %make_install feature for qmake-qt5, so
I removed the explicit install.


> - There's a segfault in %check, but it doesn't fail. I don't know if that's on purpose or it's broken.

It's on purpose. The recorder library has a function to automatically dump what
has been recorded in case of crash. That's what this test checks by provoking a
sefault.

> - ldconfig post(un) scriptlets are no longer necessary.

Removed.

Do you think this is also true on other distros (trying to make sure my .spec
is reasonably reusable).

> - Use *.1.* (etc.) for man pages instead of hardcoding a compression  extension.

Done.

> - Add soversion to library path to be certain of any ABI breaks
>   before building (%{_libdir}/lib%{name}.so.1, etc.)

Done.

I also changed the version number of the package to match.

> 
> 
> Package Review
> ==============
> 
> Legend:
> [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
> [ ] = Manual review needed
> 
> 
> Issues:
> =======
> 
> 
> ===== MUST items =====
> 
> C/C++:
> [x]: Package does not contain kernel modules.
> [x]: Package contains no static executables.
> [x]: ldconfig called in %post and %postun if required.
> [x]: Package does not contain any libtool archives (.la)
> [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.
> [!]: License field in the package spec file matches the actual license.
>      Note: Checking patched sources after %prep for licenses. Licenses
>      found: "GPL (v2 or later)", "GPL (v3 or later)", "Unknown or
>      generated", "GNU General Public License (v3)". 23 files have unknown
>      license. Detailed output of licensecheck in
>      1703477-recorder/licensecheck.txt
> [x]: License file installed when any subpackage combination is installed.
> [x]: Package does not own files or directories owned by other packages.
> [!]: %build honors applicable compiler flags or justifies otherwise.

Of note: I may be mistaken, but my experiments tend to demonstrate that the
interesting flags (hardening) are only setup if you run %configure. As written
above, %configure step added with "fake" configure script for that purpose.
Let me know if there is a better way.

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

The recorder_scope has a GUI, but I believe it is not a GUI application in the
sense of the above test, since it requires command-line options for any
operation
(in other words, you can't launch it by double-clicking an icon).

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

Fixed.

> [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]: Large documentation must go in a -doc subpackage. Large could be size
>      (~1MB) or number of files.
>      Note: Documentation size is 40960 bytes in 3 files.
> [x]: Package complies to the Packaging Guidelines
> [x]: Package successfully compiles and builds into binary rpms on at least
>      one supported primary architecture.
> [x]: Package installs properly.
> [x]: Rpmlint is run on all rpms the build produces.
>      Note: There are rpmlint messages (see attachment).
> [x]: If (and only if) the source package includes the text of the
>      license(s) in its own file, then that file, containing the text of the
>      license(s) for the package is included in %license.
> [x]: Package requires other packages for directories it uses.
> [x]: Package must own all directories that it creates.
> [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:
> [x]: 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).
> [!]: Fully versioned dependency in subpackages if applicable.
>      Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in
>      recorder-devel , recorder-scope , recorder-debuginfo , recorder-
>      debugsource
> [?]: Package functions as described.
> [x]: Latest version is packaged.
> [x]: Package does not include license text files separate from upstream.
> [!]: Scriptlets must be sane, if used.
> [-]: Description and summary sections in the package spec file contains
>      translations for supported Non-English languages, if available.
> [?]: 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]: The placement of pkgconfig(.pc) files are correct.
> [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]: Spec file according to URL is the same as in SRPM.
> 
> 
> Rpmlint
> -------
> Checking: recorder-1.0.7-1.fc31.x86_64.rpm
>           recorder-devel-1.0.7-1.fc31.x86_64.rpm
>           recorder-scope-1.0.7-1.fc31.x86_64.rpm
>           recorder-debuginfo-1.0.7-1.fc31.x86_64.rpm
>           recorder-debugsource-1.0.7-1.fc31.x86_64.rpm
>           recorder-1.0.7-1.fc31.src.rpm
> recorder.x86_64: W: name-repeated-in-summary C recorder

Intentional, part of the phrase "flight recorder"

> recorder.x86_64: W: spelling-error %description -l en_US printf -> print,
> prints, print f

Intentional, refers to the C printf function

> recorder-devel.x86_64: W: no-dependency-on recorder/recorder-libs/librecorder

Fixed

> recorder-devel.x86_64: W: spelling-error %description -l en_US librecorder
> -> lib recorder, lib-recorder, recorder

Reworded

> recorder-devel.x86_64: W: manual-page-warning
> /usr/share/man/man3/recorder_dump.3.gz 177: warning: macro `TR' not defined
> recorder-scope.x86_64: W: manual-page-warning

Fixed


> /usr/share/man/man1/recorder_scope.1.gz 71: warning: macro `TR' not defined
> recorder.src: W: name-repeated-in-summary C recorder
> recorder.src: W: spelling-error %description -l en_US printf -> print,
> prints, print f
> recorder.src:9: W: mixed-use-of-spaces-and-tabs (spaces: line 9, tab: line 1)
> 6 packages and 0 specfiles checked; 0 errors, 9 warnings.
> 
> 
> 
> 
> Rpmlint (debuginfo)
> -------------------
> Checking: recorder-debuginfo-1.0.7-1.fc31.x86_64.rpm
>           recorder-scope-debuginfo-1.0.7-1.fc31.x86_64.rpm
> 2 packages and 0 specfiles checked; 0 errors, 0 warnings.
> 
> 
> 
> 
> 
> Rpmlint (installed packages)
> ----------------------------
> recorder-debuginfo.x86_64: W: invalid-url URL:
> https://github.com/c3d/recorder <urlopen error [Errno -2] Name or service
> not known>
> recorder-scope.x86_64: W: invalid-url URL: https://github.com/c3d/recorder
> <urlopen error [Errno -2] Name or service not known>
> recorder-scope.x86_64: W: manual-page-warning
> /usr/share/man/man1/recorder_scope.1.gz 71: warning: macro `TR' not defined

Fixed.

> recorder-devel.x86_64: W: no-dependency-on recorder/recorder-libs/librecorder
> recorder-devel.x86_64: W: spelling-error %description -l en_US librecorder
> -> lib recorder, lib-recorder, recorder
> recorder-devel.x86_64: W: invalid-url URL: https://github.com/c3d/recorder
> <urlopen error [Errno -2] Name or service not known>
> recorder-devel.x86_64: W: manual-page-warning
> /usr/share/man/man3/recorder_dump.3.gz 177: warning: macro `TR' not defined
> recorder-debugsource.x86_64: W: invalid-url URL:
> https://github.com/c3d/recorder <urlopen error [Errno -2] Name or service
> not known>
> recorder.x86_64: W: name-repeated-in-summary C recorder
> recorder.x86_64: W: spelling-error %description -l en_US printf -> print,
> prints, print f
> recorder.x86_64: W: invalid-url URL: https://github.com/c3d/recorder
> <urlopen error [Errno -2] Name or service not known>
> recorder.x86_64: W: unused-direct-shlib-dependency
> /usr/lib64/librecorder.so.1.0.7 /lib64/libm.so.6
> recorder-scope-debuginfo.x86_64: W: invalid-url URL:
> https://github.com/c3d/recorder <urlopen error [Errno -2] Name or service
> not known>
> 6 packages and 0 specfiles checked; 0 errors, 13 warnings.
> 
> 
> 
> Requires
> --------
> recorder (rpmlib, GLIBC filtered):
>     /sbin/ldconfig
>     libc.so.6()(64bit)
>     libm.so.6()(64bit)
>     libpthread.so.0()(64bit)
>     rtld(GNU_HASH)
> 
> recorder-scope (rpmlib, GLIBC filtered):
>     libGL.so.1()(64bit)
>     libQt5Charts.so.5()(64bit)
>     libQt5Charts.so.5(Qt_5)(64bit)
>     libQt5Core.so.5()(64bit)
>     libQt5Core.so.5(Qt_5)(64bit)
>     libQt5Core.so.5(Qt_5.12)(64bit)
>     libQt5Gui.so.5()(64bit)
>     libQt5Gui.so.5(Qt_5)(64bit)
>     libQt5Widgets.so.5()(64bit)
>     libQt5Widgets.so.5(Qt_5)(64bit)
>     libc.so.6()(64bit)
>     libgcc_s.so.1()(64bit)
>     libgcc_s.so.1(GCC_3.0)(64bit)
>     libm.so.6()(64bit)
>     libpthread.so.0()(64bit)
>     librecorder.so.1()(64bit)
>     libstdc++.so.6()(64bit)
>     libstdc++.so.6(CXXABI_1.3)(64bit)
>     libstdc++.so.6(CXXABI_1.3.9)(64bit)
>     qt5-qtcharts
>     rtld(GNU_HASH)
> 
> recorder-debugsource (rpmlib, GLIBC filtered):
> 
> recorder-devel (rpmlib, GLIBC filtered):
>     /usr/bin/pkg-config
>     librecorder.so.1()(64bit)
> 
> recorder-debuginfo (rpmlib, GLIBC filtered):
> 
> 
> 
> Provides
> --------
> recorder:
>     librecorder.so.1()(64bit)
>     recorder
>     recorder(x86-64)
> 
> recorder-scope:
>     recorder-scope
>     recorder-scope(x86-64)
> 
> recorder-debugsource:
>     recorder-debugsource
>     recorder-debugsource(x86-64)
> 
> recorder-devel:
>     pkgconfig(recorder)
>     recorder-devel
>     recorder-devel(x86-64)
> 
> recorder-debuginfo:
>     debuginfo(build-id)
>     recorder-debuginfo
>     recorder-debuginfo(x86-64)
> 
> 
> 
> Source checksums
> ----------------
> https://github.com/c3d/recorder/archive/v1.0.7/recorder-1.0.7.tar.gz :
>   CHECKSUM(SHA256) this package     :
> 653634a3378654af6e2ab168492f4bb033c3a25a30148d02d98bbd3b8e2a2b50
>   CHECKSUM(SHA256) upstream package :
> 653634a3378654af6e2ab168492f4bb033c3a25a30148d02d98bbd3b8e2a2b50
> 
> 
> Generated by fedora-review 0.6.1 (f03e4e7) last change: 2016-05-02
> Command line :/usr/bin/fedora-review -b 1703477 -m fedora-rawhide-x86_64
> Buildroot used: fedora-rawhide-x86_64
> Active plugins: Generic, Shell-api, C/C++
> Disabled plugins: Java, Python, fonts, SugarActivity, Ocaml, Perl, Haskell,
> R, PHP
> Disabled flags: EXARCH, DISTTAG, EPEL5, BATCH, EPEL6

-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are always notified about changes to this product and component
_______________________________________________
package-review mailing list -- package-review@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to package-review-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/package-review@xxxxxxxxxxxxxxxxxxxxxxx




[Index of Archives]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite Conditions]     [KDE Users]

  Powered by Linux