Bug 1827880 - Review Request: fswatch - A cross-platform file change monitor
Summary: Review Request: fswatch - A cross-platform file change monitor
Keywords:
Status: CLOSED NEXTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
low
low
Target Milestone: ---
Assignee: Fabian Affolter
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2020-04-25 05:02 UTC by Darryl T. Agostinelli
Modified: 2020-06-05 03:31 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2020-06-05 03:31:33 UTC
Type: Bug
mail: fedora-review+


Attachments (Terms of Use)

Description Darryl T. Agostinelli 2020-04-25 05:02:14 UTC
Spec URL: https://raw.githubusercontent.com/dagostinelli/fswatch-packaging/master/fswatch.spec
SRPM URL: https://github.com/dagostinelli/fswatch-packaging/raw/master/fswatch-1.14.0-1.fc31.src.rpm
Description: fswatch is a file change monitor that receives notifications when the contents of the specified files or directories are modified.
Fedora Account System Username: dagostinelli

Comment 1 Fabian Affolter 2020-04-25 08:44:31 UTC
Package Review
==============

- The license is GPLv3+ (either version 3, or (at your option) any later version.)
- Descriptions (%description static) should end with a period and %description is too long (see rpmlint ouput)
- COPYING is in %doc and %license, should only be in %license
- "Source0:" could be replaced with %{url}/archive/%{version}/%{name}-%{version}.tar.gz
- NEWS could be part of the package, AUTHORS.libfswatch, NEWS.libfswatch andvREADME.libfswatch.md of the -devel package
- The package should own %{_includedir}/lib%{name}/* 

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
[ ] = Manual review needed

===== MUST items =====

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[x]: If your application is a C or C++ application you must list a
     BuildRequires against gcc, gcc-c++ or clang.
[x]: Header files in -devel subpackage, if present.
[x]: ldconfig not called in %post and %postun for Fedora 28 and later.
[x]: Package does not contain any libtool archives (.la)
[x]: Rpath absent or only used for internal libs.
[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: "Unknown or generated", "GPL (v3 or later)", "FSF All
     Permissive License", "GNU Free Documentation License", "GNU Free
     Documentation License (v1.3 or later)". 31 files have unknown license.
     Detailed output of licensecheck in
     /home/fab/Documents/repos/reviews/1827880-fswatch/licensecheck.txt
[x]: License file installed when any subpackage combination is installed.
[!]: Package requires other packages for directories it uses.
     Note: No known owner of /usr/include/libfswatch
[!]: Package must own all directories that it creates.
     Note: Directories without known owners: /usr/include/libfswatch
[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.
[x]: Development files must be in a -devel package
[x]: Package uses nothing in %doc for runtime.
[x]: The spec file handles locales properly.
[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.
[-]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 61440 bytes in 4 files.
[!]: 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 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 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]: 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]: Static libraries in -static or -devel subpackage, providing -devel if
     present.
     Note: Package has .a files: fswatch-static.
[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.
[-]: Final provides and requires are sane (see attachments).
[-]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in fswatch-
     static
[x]: 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.
[x]: %check is present and all tests pass.
[x]: 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:
[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
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: fswatch-1.14.0-1.fc33.x86_64.rpm
          fswatch-devel-1.14.0-1.fc33.x86_64.rpm
          fswatch-static-1.14.0-1.fc33.x86_64.rpm
          fswatch-debuginfo-1.14.0-1.fc33.x86_64.rpm
          fswatch-debugsource-1.14.0-1.fc33.x86_64.rpm
          fswatch-1.14.0-1.fc33.src.rpm
fswatch.x86_64: E: description-line-too-long C fswatch is a file change monitor that receives notifications when the contents of the specified files or directories are modified.
fswatch-devel.x86_64: E: description-line-too-long C The fswatch-devel package contains libraries and headers for developing applications that use libfswatch.
fswatch-devel.x86_64: W: no-documentation
fswatch-static.x86_64: W: spelling-error %description -l en_US libfswatch -> wristwatch
fswatch-static.x86_64: W: no-documentation
fswatch.src: E: description-line-too-long C fswatch is a file change monitor that receives notifications when the contents of the specified files or directories are modified.
6 packages and 0 specfiles checked; 3 errors, 3 warnings.




Rpmlint (debuginfo)
-------------------
Checking: fswatch-debuginfo-1.14.0-1.fc33.x86_64.rpm
1 packages and 0 specfiles checked; 0 errors, 0 warnings.





Rpmlint (installed packages)
----------------------------
fswatch-static.x86_64: W: spelling-error %description -l en_US libfswatch -> wristwatch
fswatch-static.x86_64: W: invalid-url URL: https://github.com/emcrisostomo/fswatch <urlopen error [Errno -2] Name or service not known>
fswatch-static.x86_64: W: no-documentation
fswatch.x86_64: E: description-line-too-long C fswatch is a file change monitor that receives notifications when the contents of the specified files or directories are modified.
fswatch.x86_64: W: invalid-url URL: https://github.com/emcrisostomo/fswatch <urlopen error [Errno -2] Name or service not known>
fswatch-debuginfo.x86_64: W: invalid-url URL: https://github.com/emcrisostomo/fswatch <urlopen error [Errno -2] Name or service not known>
fswatch-debugsource.x86_64: W: invalid-url URL: https://github.com/emcrisostomo/fswatch <urlopen error [Errno -2] Name or service not known>
fswatch-devel.x86_64: E: description-line-too-long C The fswatch-devel package contains libraries and headers for developing applications that use libfswatch.
fswatch-devel.x86_64: W: invalid-url URL: https://github.com/emcrisostomo/fswatch <urlopen error [Errno -2] Name or service not known>
fswatch-devel.x86_64: W: no-documentation
5 packages and 0 specfiles checked; 2 errors, 8 warnings.



Source checksums
----------------
https://github.com/emcrisostomo/fswatch/archive/1.14.0/1.14.0.tar.gz#/fswatch-1.14.0.tar.gz :
  CHECKSUM(SHA256) this package     : c4f5ef92e79dda7e50c1ded42784791ef536c99684f3d677f6621fe73ee857d2
  CHECKSUM(SHA256) upstream package : c4f5ef92e79dda7e50c1ded42784791ef536c99684f3d677f6621fe73ee857d2


Requires
--------
fswatch (rpmlib, GLIBC filtered):
    ld-linux-x86-64.so.2()(64bit)
    libc.so.6()(64bit)
    libfswatch.so.11()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libm.so.6()(64bit)
    libpthread.so.0()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.5)(64bit)
    rtld(GNU_HASH)

fswatch-devel (rpmlib, GLIBC filtered):
    fswatch(x86-64)
    libfswatch.so.11()(64bit)

fswatch-static (rpmlib, GLIBC filtered):
    fswatch-devel(x86-64)

fswatch-debuginfo (rpmlib, GLIBC filtered):

fswatch-debugsource (rpmlib, GLIBC filtered):



Provides
--------
fswatch:
    fswatch
    fswatch(x86-64)
    libfswatch.so.11()(64bit)

fswatch-devel:
    fswatch-devel
    fswatch-devel(x86-64)

fswatch-static:
    fswatch-static
    fswatch-static(x86-64)

fswatch-debuginfo:
    debuginfo(build-id)
    fswatch-debuginfo
    fswatch-debuginfo(x86-64)

fswatch-debugsource:
    fswatch-debugsource
    fswatch-debugsource(x86-64)



Generated by fedora-review 0.7.5 (5fa5b7e) last change: 2020-02-16
Command line :/usr/bin/fedora-review -b 1827880
Buildroot used: fedora-rawhide-x86_64
Active plugins: Shell-api, C/C++, Generic
Disabled plugins: Perl, R, Haskell, fonts, Java, Python, SugarActivity, Ocaml, PHP
Disabled flags: EPEL6, EPEL7, DISTTAG, BATCH, EXARCH

Comment 3 Fabian Affolter 2020-05-03 09:18:23 UTC
This would be 1.14.0-2 aka with "Release:	2%{?dist}". There was a change and it requires a new release with a changelog entry.

Comment 4 Darryl T. Agostinelli 2020-05-03 12:52:27 UTC
During package review?  I know we do this once it's checked into https://src.fedoraproject.org/

I made the change as requested.

Comment 6 Darryl T. Agostinelli 2020-05-14 15:39:45 UTC
bump

Comment 7 Fabian Affolter 2020-05-19 07:33:45 UTC
(In reply to Darryl T. Agostinelli from comment #4)
> During package review?  I know we do this once it's checked into
> https://src.fedoraproject.org/
> 
> I made the change as requested.

How should the reviewer be able to keep track of the changes otherwise?


- License tag is still wrong
- %defattr(-,root,root,-) is obsolete
- The man page location should be keep. Changing this should be done by upstream and not during the package installation.

Comment 8 Darryl T. Agostinelli 2020-05-21 12:49:37 UTC
Spec URL: https://raw.githubusercontent.com/dagostinelli/fswatch-packaging/master/fswatch.spec
SRPM URL: https://github.com/dagostinelli/fswatch-packaging/raw/master/fswatch-1.14.0-3.fc32.src.rpm

- License tag - fixed "GPLv3+"
- defattr - removed
- The man page -- Upstream and I had a conversation about that.  It should be in man1, not man 7.  Upstream wants to move it, but hasn't gotten around to it yet.  In a future release he will publish an official version with it in man1.  Until then, I'm moving it like this. The convo was in private email.

Ready for your review.

Comment 9 Fabian Affolter 2020-05-24 13:52:11 UTC
Issues were addressed, packaged APPROVED.

Comment 10 Darryl T. Agostinelli 2020-05-24 18:15:33 UTC
Whoop! Whoop! Thx.

Comment 11 Darryl T. Agostinelli 2020-05-24 18:22:10 UTC
repo requested: https://pagure.io/releng/fedora-scm-requests/issue/25250

Comment 12 Igor Raits 2020-05-26 05:13:57 UTC
(fedscm-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/fswatch


Note You need to log in before you can comment on or make changes to this bug.