Bug 1567202

Summary: Review Request: gerbera - UPnP Media Server
Product: [Fedora] Fedora Reporter: Gwyn Ciesla <gwync>
Component: Package ReviewAssignee: Robert-André Mauchin 🐧 <zebob.m>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: package-review, zebob.m
Target Milestone: ---Flags: zebob.m: fedora-review+
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: 2018-04-20 14:33:27 UTC 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: 1567201    
Bug Blocks:    

Description Gwyn Ciesla 2018-04-13 14:44:52 UTC
SRPM: https://fedorapeople.org/~limb/review/gerbera/gerbera-1.1.0-1.src.rpm
SPEC: https://fedorapeople.org/~limb/review/gerbera/gerbera.spec

Description:
Gerbera is a UPnP media server which allows you to stream your digital
media through your home network and consume it on a variety of UPnP
compatible devices.

Comment 1 Robert-André Mauchin 🐧 2018-04-13 20:34:58 UTC
 - That's not good:

#Source0:        https://github.com/gerbera/gerbera/archive/v%%{version}/%%{name}-%%{version}.tar.gz
#Use tarball to address build issue.
Source0:        gerbera-1.1.0-2f6dcb5e94.tar.gz

  If you're packaging a snapshot, just use:

%global commit          2f6dcb5e941dce3ace651394cfa86b862becaa77
%global shortcommit     %(c=%{commit}; echo ${c:0:7})
%global snapshotdate    20180413

Name:           gerbera
Version:        1.1.0
Release:        1.%{snapshotdate}git%{shortcommit}%{?dist}
Summary:        UPnP Media Server
License:        GPLv2
Url:            https://gerbera.io
Source0:        https://github.com/gerbera/gerbera/archive/{commit}/%{name}-%{commit}.tar.gz

   Then:

%prep
%autosetup -n %{name}-%{commit}

   And the %changelog:

* Fri Apr 13 2018 Gwyn Ciesla <limburgher> - 1.1.0-1.20180413git2f6dcb5


 - You're missing the dist tag:

Release:        1.%{snapshotdate}git%{shortcommit}%{?dist}

 - %{__make} %{?_smp_mflags} → %make_build

 - make install DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p" → %make_install

 - %{__install}, %{__mkdir_p}, %{__cat} don't bring anything, just use install, mkdir -p and cat.

Comment 2 Robert-André Mauchin 🐧 2018-04-13 20:41:37 UTC
 - I made a typo, Source0 should be:

Source0:        https://github.com/gerbera/gerbera/archive/%{commit}/%{name}-%{commit}.tar.gz

Comment 3 Robert-André Mauchin 🐧 2018-04-13 21:24:35 UTC
 - Build error:

BUILDSTDERR: CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
BUILDSTDERR:   Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
BUILDSTDERR: Call Stack (most recent call first):
BUILDSTDERR:   /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
BUILDSTDERR:   /usr/share/cmake/Modules/FindZLIB.cmake:112 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
BUILDSTDERR:   CMakeLists.txt:552 (find_package)
-- Configuring incomplete, errors occurred!

  Add:

BuildRequires:  zlib-devel


 - Add these license to the license field:

MIT/X11 (BSD like)
------------------
gerbera-2f6dcb5e941dce3ace651394cfa86b862becaa77/web/vendor/popper/popper.js

SIL (v1.1)
----------
gerbera-2f6dcb5e941dce3ace651394cfa86b862becaa77/web/vendor/lato/LICENCE.md


 - You should own these directories:

[!]: Package must own all directories that it creates.
     Note: Directories without known owners: /usr/share/gerbera/web,
     /etc/logrotate.d, /usr/share/gerbera, /usr/share/gerbera/js

 - gerbera.x86_64: E: non-root-user-log-file /var/log/gerbera gerbera
gerbera.x86_64: E: non-root-group-log-file /var/log/gerbera gerbera

non-root-user-log-file:
If you need log files owned by a non-root user, just create a subdir in
/var/log and put your log files in it.

   Create a subdir for the logs. Don't forget to change the location in the config file and the logrotate file too.

 - The log file should be ghosted:

gerbera.x86_64: E: non-ghost-file /var/log/gerbera

 - [!]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
     Note: Arch-ed rpms have a total of 5396480 bytes in /usr/share

Move the data to a noarch data subpackage


Package Review
==============

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]: 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.
[!]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "GPL (v3 or later)", "Unknown or generated", "MIT/X11 (BSD
     like)", "SIL (v1.1)", "zlib/libpng", "*No copyright* BSD (3 clause)",
     "BSD (2 clause)", "GPL (v2)", "GPL (v2) LGPL (v2.1)". 375 files have
     unknown license. Detailed output of licensecheck in
     /home/bob/packaging/review/gerbera/review-gerbera/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/share/gerbera/web, /usr/share/gerbera/js,
     /usr/share/gerbera
[!]: Package must own all directories that it creates.
     Note: Directories without known owners: /usr/share/gerbera/web,
     /etc/logrotate.d, /usr/share/gerbera, /usr/share/gerbera/js
[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.
[x]: 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 30720 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]: 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 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:
[-]: Avoid bundling fonts in non-fonts packages.
     Note: Package contains font files
[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.
[x]: Final provides and requires are sane (see attachments).
[?]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[-]: 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.
[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]: 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:
[!]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
     Note: Arch-ed rpms have a total of 5396480 bytes in /usr/share
[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]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: gerbera-1.1.0-1.20180413git2f6dcb5.fc29.x86_64.rpm
          gerbera-debuginfo-1.1.0-1.20180413git2f6dcb5.fc29.x86_64.rpm
          gerbera-debugsource-1.1.0-1.20180413git2f6dcb5.fc29.x86_64.rpm
          gerbera-1.1.0-1.20180413git2f6dcb5.fc29.src.rpm
gerbera.x86_64: W: spelling-error Summary(en_US) UPnP -> Upon
gerbera.x86_64: W: non-standard-uid /etc/gerbera gerbera
gerbera.x86_64: W: non-standard-gid /etc/gerbera gerbera
gerbera.x86_64: W: non-standard-uid /etc/gerbera.conf gerbera
gerbera.x86_64: W: non-standard-gid /etc/gerbera.conf gerbera
gerbera.x86_64: W: non-standard-uid /etc/gerbera/config.xml gerbera
gerbera.x86_64: W: non-standard-gid /etc/gerbera/config.xml gerbera
gerbera.x86_64: W: non-standard-uid /etc/gerbera/gerbera.db gerbera
gerbera.x86_64: W: non-standard-gid /etc/gerbera/gerbera.db gerbera
gerbera.x86_64: W: non-standard-uid /etc/gerbera/gerbera.html gerbera
gerbera.x86_64: W: non-standard-gid /etc/gerbera/gerbera.html gerbera
gerbera.x86_64: W: non-standard-uid /var/log/gerbera gerbera
gerbera.x86_64: W: non-standard-gid /var/log/gerbera gerbera
gerbera.x86_64: E: non-root-user-log-file /var/log/gerbera gerbera
gerbera.x86_64: E: non-root-group-log-file /var/log/gerbera gerbera
gerbera.x86_64: E: non-ghost-file /var/log/gerbera
gerbera.x86_64: E: zero-length /var/log/gerbera
gerbera-debugsource.x86_64: W: no-documentation
gerbera.src: W: spelling-error Summary(en_US) UPnP -> Upon
4 packages and 0 specfiles checked; 4 errors, 15 warnings.

Comment 5 Robert-André Mauchin 🐧 2018-04-19 17:53:38 UTC
Everything is good, package approved.

Comment 6 Gwyn Ciesla 2018-04-20 14:01:44 UTC
(fedrepo-req-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/gerbera

Comment 7 Gwyn Ciesla 2018-04-20 14:33:27 UTC
Thank you for the review!