Bug 2535836 - Review Request: vdr-channellogos - Channel logos for VDR skins
Summary: Review Request: vdr-channellogos - Channel logos for VDR skins
Keywords:
Status: NEW
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Nobody's working on this, feel free to take it
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: MultimediaSIG
TreeView+ depends on / blocked
 
Reported: 2026-09-17 07:46 UTC by MartinKG
Modified: 2026-09-22 22:35 UTC (History)
3 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Type: ---
Embargoed:


Attachments (Terms of Use)

Description MartinKG 2026-09-17 07:46:16 UTC
Spec URL: https://martinkg.fedorapeople.org/Review/SPECS/vdr-channellogos.spec
SRPM URL: https://martinkg.fedorapeople.org/Review/SRPMS/vdr-channellogos-20260912-1.fc45.src.rpm

Description:
Channel logos in PNG format for the Astra 19.2E and Hotbird 13E channel
lineup, installed in the shared skin independent VDR logo directory where
any VDR skin can use them.

Fedora Account System Username: martinkg

%changelog
* Wed Sep 16 2026 Dirk Nehring <dnehring> - 20260912-1
- Render the logos at build time from the picons release
  2026-09-12--23-13-54 instead of shipping a pre-converted tarball
- Ship the artwork the channel list resolves to rather than the whole 1.3 GiB
  upstream release, reproducibly cut by channellogos-make-source.sh
- Initial release

$ rpmlint vdr-channellogos.spec vdr-channellogos-20260912-1.fc45.src.rpm vdr-channellogos-20260912-1.fc45.noarch.rpm
======================== rpmlint session starts ============================
rpmlint: 2.9.0
configuration:
    /usr/lib/python3.15/site-packages/rpmlint/configdefaults.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: 32, packages: 3

vdr-channellogos.spec: W: invalid-url Source0: vdr-channellogos-picons-2026-09-12-23-13-54.tar.xz
vdr-channellogos.spec: W: invalid-url Source0: vdr-channellogos-picons-2026-09-12-23-13-54.tar.xz
============================== 2 packages and 1 specfiles checked; 0 errors, 2 warnings, 8 filtered, 0 badness; has taken 2.1 s

Comment 1 Dirk Nehring 2026-09-17 17:58:19 UTC
Package Review
==============

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


Summary
=======
The package is in very good shape. It builds cleanly in mock (rawhide),
installs, rpmlint reports no errors, %check passes, and Source0 can be
regenerated byte for byte from the upstream release with the included
script. Only two small spec corrections are needed; both are shown below
and were verified with a local build.

Package APPROVED, provided the two corrections below are applied before
import.


Issues
======
1. License tag (MUST)
   "License: GPL-3.0-or-later" does not match the sources.
   - The installed logos are rendered from the picons artwork. Upstream
     (https://github.com/picons/picons) ships only the plain GPL version 3
     text in LICENSE. Neither the README nor any source file grants "or
     later", and the SVG files carry no license metadata of their own.
     That makes the artwork GPL-3.0-only.
   - README.md was written for this package (it is not an upstream file)
     and is installed as %doc.
   -> License: GPL-3.0-only

2. Directory ownership (MUST)
   %files lists %{_datadir}/vdr/logos/*, so /usr/share/vdr and
   /usr/share/vdr/logos are not owned by this package. Both belong to vdr,
   which this package deliberately does not require: the logos are plain
   data and work without vdr. The Packaging Guidelines cover exactly this
   case ("The directory is owned by a package which is not required for
   your package to function"): the package co-owns the directories instead
   of adding a Requires. Mode and owner (0755 root:root) match vdr.
   -> %dir %{_datadir}/vdr/
      %{_datadir}/vdr/logos/

Corrections as a diff against the submitted spec. A local build with this
spec gives rpmlint 0 errors / 0 warnings, the License tag above, and both
directories owned:

--- vdr-channellogos.spec (submitted)
+++ vdr-channellogos.spec (corrected)
@@ -19,7 +19,10 @@
 Release:        1%{?dist}
 Summary:        Channel logos for VDR skins

-License:        GPL-3.0-or-later
+# The logos are rendered from the picons artwork, which upstream ships under
+# the bare GPL v3 text without an "or later" grant.
+License:        GPL-3.0-only
 URL:            https://github.com/picons/picons

 # The upstream release at
@@ -83,7 +86,8 @@
 %files
 %license LICENSE
 %doc README.md
-%{_datadir}/vdr/logos/*
+%dir %{_datadir}/vdr/
+%{_datadir}/vdr/logos/

 %changelog
 * Wed Sep 16 2026 Dirk Nehring <dnehring> - 20260912-1


Suggestion (not blocking)
=========================
- Supplements: (vdr-skinflatplus or vdr-skindesigner)
  vdr-skinflatplus is approved (bug 2445737), but vdr-skindesigner is not
  part of Fedora (it is in RPM Fusion). Weak dependencies should be
  satisfiable within the Fedora repositories, so consider

      Supplements:    vdr-skinflatplus

  and adjusting the comment above it accordingly.



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

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.
     Note: GPL-3.0-only and CC-BY-SA-4.0 are both allowed in Fedora. The
     channel logos are trademarks of the respective broadcasters and are
     used only to identify their channels.
[!]: License field in the package spec file matches the actual license.
     Note: See issue 1. Upstream has no per-file license headers, so
     licensecheck finds nothing; the only license is the GPL v3 text in
     LICENSE.
[!]: Package must own all directories that it creates.
     Note: See issue 2. /usr/share/vdr and /usr/share/vdr/logos have to be
     co-owned, because vdr is intentionally not required.
[x]: Package contains no bundled libraries or specifies bundled libraries
     with Provides: bundled(<libname>) if unbundling is not possible.
     Note: noarch data package, no code is installed.
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
     Note: Channel logos shown in the VDR OSD are content that enhances the
     user experience, comparable to themes or clipart, and are under an
     open source license. The build helpers (Source2, Source3) are only
     used at build time and are not installed.
[-]: 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.
     Note: vdr- prefix like the other VDR add-ons.
[x]: Package does not generate any conflict.
     Note: No other package in rawhide ships files below
     /usr/share/vdr/logos.
[x]: Package obeys FHS, except libexecdir and /usr/target.
     Note: Architecture independent data below /usr/share.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: Requires correct, justified where necessary.
     Note: No Requires on vdr is needed, the logos are plain data. See the
     suggestion about Supplements.
[x]: Spec file is legible and written in American English.
     Note: Well commented, including how Source0 is produced.
[-]: Package contains systemd file(s) if in need.
[x]: Package is not known to require an ExcludeArch tag.
     Note: noarch; all BuildRequires are available on x86_64, aarch64,
     ppc64le and s390x.
[x]: Package complies to the Packaging Guidelines
     Note: With issues 1 and 2 corrected.
[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]: The License field must be a valid SPDX expression.
[x]: Package requires other packages for directories it uses.
[x]: Package does not own files or directories owned by other packages.
     Note: With correction 2, /usr/share/vdr and /usr/share/vdr/logos are
     co-owned with vdr on purpose (see issue 2).
[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.
     Note: Source0 is a subset of the upstream release
     2026-09-12--23-13-54. Regenerating it from the upstream tarball with
     Source3 gives an identical file:
     sha256 85dded7a3a6256e162ffd893dd4bd9786ce165d9f3c1ddf077888ac01549bf54
     Sources 1-4 are files written for this package.
[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 1584 bytes in 1 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.
     Note: Upstream ships LICENSE.
[x]: Final provides and requires are sane (see attachments).
[x]: Package functions as described.
     Note: 1431 logos, all valid 268x200 PNG images, plus 401 symlinks that
     all resolve inside the logo directory. File names follow the
     lowercase channel names the skins look up. The logos are installed in
     /usr/share/vdr/logos, the shared logo directory of VDR skins, and the
     package works without vdr itself being installed.
[x]: Latest version is packaged.
     Note: 2026-09-12--23-13-54 is the newest picons logo release; the
     newer channellists-* tags only carry channel lists.
[x]: Package does not include license text files separate from upstream.
[x]: SourceX tarball generation or download is documented.
     Note: The spec comment and Source3 (channellogos-make-source.sh)
     document how Source0 is cut from the 1.3 GiB upstream release, and
     the result is reproducible (see above). Sources without a URL are
     acceptable here.
[-]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
     Note: Upstream does not publish signatures.
[x]: Package should compile and build into binary rpms on all supported
     architectures.
     Note: noarch
[x]: %check is present and all tests pass.
     Note: Checks that no symlink dangles and that the logos of the main
     channels were rendered.
[x]: Packages should try to preserve timestamps of original installed
     files.
     Note: cp -p for README.md, cp -a for the logos.
[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]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

===== EXTRA items =====

Generic:
[x]: Rpmlint is run on all installed packages.
     Note: No rpmlint messages.
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: vdr-channellogos-20260912-1.fc46.noarch.rpm
          vdr-channellogos-20260912-1.fc46.src.rpm
============================ rpmlint session starts ============================
rpmlint: 2.8.0
configuration:
    /usr/lib/python3.14/site-packages/rpmlint/configdefaults.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/tmp62tdggnj')]
checks: 32, packages: 2

vdr-channellogos.spec: W: invalid-url Source0: vdr-channellogos-picons-2026-09-12-23-13-54.tar.xz
 2 packages and 0 specfiles checked; 0 errors, 1 warnings, 7 filtered, 0 badness; has taken 2.6 s

Note: The invalid-url warning is expected. Source0 is generated from the
upstream release by Source3, as documented in the spec, and is
reproducible.



Rpmlint (installed packages)
----------------------------
============================ rpmlint session starts ============================
rpmlint: 2.10.0
configuration:
    /usr/lib/python3.15/site-packages/rpmlint/configdefaults.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: 33, packages: 1

 1 packages and 0 specfiles checked; 0 errors, 0 warnings, 3 filtered, 0 badness; has taken 0.2 s



Requires
--------
vdr-channellogos (rpmlib, GLIBC filtered):



Provides
--------
vdr-channellogos:
    vdr-channellogos



Generated by fedora-review 0.11.0 (05c5b26) last change: 2025-11-29
Command line :/usr/bin/fedora-review -b 2535836
Buildroot used: fedora-rawhide-x86_64
Active plugins: Shell-api, Generic
Disabled plugins: C/C++, PHP, R, Java, Perl, Ocaml, Python, SugarActivity, Haskell, fonts
Disabled flags: EXARCH, EPEL6, EPEL7, DISTTAG, BATCH


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