Bug 1893327

Summary: Review Request: human-theme-gtk - Human theme for GTK
Product: [Fedora] Fedora Reporter: code <code>
Component: Package ReviewAssignee: Robert-André Mauchin 🐧 <eclipseo>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: rawhideCC: eclipseo, package-review, ppisar
Target Milestone: ---Flags: eclipseo: fedora-review+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-03-23 00:17:19 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description code@luigifab.fr 2020-10-30 17:58:55 UTC
Spec URL: https://gist.githubusercontent.com/luigifab/2befcf27223049ee840fb4a4d1162dab/raw/49a0ffdcee9e79ef1e47f1a5c6370e3d500d7a67/human-theme-gtk.spec
SRPM URL: https://kojipkgs.fedoraproject.org//work/tasks/2450/54652450/human-theme-gtk-1.1.0-1.fc32.src.rpm
KOJI BUILD: https://koji.fedoraproject.org/koji/taskinfo?taskID=54652447
Description: This is an adaptation of Clearlooks-Phénix theme, a GTK 3 port of old GTK 2 Clearlooks style. This is also a continuation of Human Quarny theme. This theme works with GTK 2.24+ (gtk-murrine-engine) and GTK 3.20+ (including 3.22 and 3.24).
Fedora Account System Username: luigifab

Hello, I requesting a review for my first set of packages, and I need a sponsor.

I'm the upstream developer and the packager.

The theme is available here: https://github.com/luigifab/human-theme (v1.0)
The current request contain the package the next release (v1.1).

In the spec file, I'm not sure about: "Requires: gnome-icon-theme dmz-cursor-themes gtk-murrine-engine"

In Debian there are: gtk3-nocsd, qt5-gtk2-platformtheme, qt5-gtk-platformtheme
I haven't found theme in Fedora.

Thanks!

Comment 1 Robert-André Mauchin 🐧 2020-11-07 05:07:10 UTC
 - Not needed

BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

 - Not needed:

rm -rf %{buildroot}


%clean
rm -rf %{buildroot}

%defattr(-,root,root,-)

 - Should this bash script be noreplace? Does the end user reed to edit it for sone reason?

%config(noreplace) /etc/profile.d/human-theme-gtk.sh

 - Same as before: there is no 1.1.0 on Github to be downloaded.

 - For Requires, you're upstream so you should know what's required? I believe Murrine should be required as it won't work without it and the rest should be recommended:

Requires: gtk-murrine-engine
Recommends:  gnome-icon-theme
Recommends:  dmz-cursor-themes

Comment 2 code@luigifab.fr 2020-11-07 13:17:27 UTC
Thanks for your review.
Here are new links with your recommendations.

Spec URL: https://gist.githubusercontent.com/luigifab/2befcf27223049ee840fb4a4d1162dab/raw/a650929af4b30e567f4c530ffa5bd4ca18810e07/human-theme-gtk.spec
SRPM URL: https://kojipkgs.fedoraproject.org//work/tasks/2255/55112255/human-theme-gtk-1.1.0-1.fc32.src.rpm
KOJI BUILD: https://koji.fedoraproject.org/koji/taskinfo?taskID=55112253

The v1.1 is not yet released. I waiting the release date to publish it.
I created a temporary repository with v1.1 sources: https://github.com/luigifab/rpm-tests/tree/master/gtk-theme
With the futur archive: https://github.com/luigifab/rpm-tests/releases/download/v1.1.0/human-theme-gtk-1.1.0.tar.gz
Yes, this is not exactly that you want. I will update the main repository 11/11/2020.

For the config file, I think the user will not modify the file installed with the package.
But, to avoid losing user configuration during an update, I preferred to do so. But I can change.

With one of my Debian package, I getting spank: "Debian is attempting to remove GTK 2, so it would be best to not introduce new packages that require GTK 2"; so I prefer to ask for dependencies. And this theme is mostly for GTK3.

Comment 3 Robert-André Mauchin 🐧 2020-11-08 06:54:05 UTC
 - Fix the changelog date

Package approved, you still need to find  a sponsor.


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

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



===== 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.
[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]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "Unknown or generated", "GNU General Public License", "GNU
     Lesser General Public License". 140 files have unknown license.
     Detailed output of licensecheck in /home/bob/packaging/review/human-
     theme-gtk/review-human-theme-gtk/licensecheck.txt
[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]: 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]: 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]: %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]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 0 bytes in 0 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.
[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.
[-]: 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.
[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: There are rpmlint messages (see attachment).
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: human-theme-gtk-1.1.0-1.fc34.noarch.rpm
          human-theme-gtk-1.1.0-1.fc34.src.rpm
human-theme-gtk.noarch: W: spelling-error %description -l en_US murrine -> urine
human-theme-gtk.noarch: E: changelog-time-in-future 2020-11-11
human-theme-gtk.noarch: W: no-documentation
human-theme-gtk.src: W: spelling-error %description -l en_US murrine -> urine
human-theme-gtk.src: E: changelog-time-in-future 2020-11-11
human-theme-gtk.src: W: invalid-url Source0: human-theme-gtk-1.1.0.tar.gz
2 packages and 0 specfiles checked; 2 errors, 4 warnings.

Comment 4 code@luigifab.fr 2020-11-08 17:51:18 UTC
Thank you very much!

I see an interesting thing in the SHOULD list: "Description and summary sections in the package spec file contains translations for supported Non-English languages, if available.". So I updated my work:

Spec URL: https://gist.githubusercontent.com/luigifab/2befcf27223049ee840fb4a4d1162dab/raw/709ead9a099e530a9ce62d5b46e66ff14f5af513/human-theme-gtk.spec
SRPM URL: https://kojipkgs.fedoraproject.org//work/tasks/9134/55179134/human-theme-gtk-1.1.0-1.fc32.src.rpm
KOJI BUILD: https://koji.fedoraproject.org/koji/taskinfo?taskID=55179131

Now, I hope to find a sponsor :)

Comment 5 code@luigifab.fr 2020-11-11 11:31:52 UTC
Sorry for this not really usefull message, but I updated the main repo with 1.1.0 final.
SPEC URL: https://github.com/luigifab/human-theme/blob/master/fedora/human-theme-gtk.spec

Comment 6 code@luigifab.fr 2020-11-16 08:36:06 UTC
I read more docs, and thanks to Andy (in another package), I fixed many things for this package.
There is a big mistake before, because Source0 not include all files used by the spec.

So I fixed my spec file. What's new?
- Source0
- Source1
- %{expand: ... } for %description
- -n human-theme-%{version} for %setup

I updated the main repository.
Spec URL: https://github.com/luigifab/human-theme/raw/master/fedora/human-theme-gtk.spec
SRPM URL: https://kojipkgs.fedoraproject.org//work/tasks/3822/55673822/human-theme-gtk-1.1.0-1.fc32.src.rpm
KOJI BUILD: https://koji.fedoraproject.org/koji/taskinfo?taskID=55673818

I hope it is better.
Sorry for my multiple attempts.

Comment 7 code@luigifab.fr 2020-11-17 17:45:27 UTC
Here is a new build with:
- Source2
- %license LICENSE
- %doc README.md

Spec URL: https://github.com/luigifab/human-theme/raw/master/fedora/human-theme-gtk.spec
SRPM URL: https://kojipkgs.fedoraproject.org//work/tasks/4736/55754736/human-theme-gtk-1.1.0-1.fc32.src.rpm
KOJI BUILD: https://koji.fedoraproject.org/koji/taskinfo?taskID=55754735

Now I finished, but I thinking that some files are under other licenses (CC-BY-SA-3.0+, GPL-3+, LGPL-2.1+).
I will search a way to explain that.

Comment 8 Robert-André Mauchin 🐧 2021-03-07 10:12:13 UTC
Have you been sponsored?

Comment 9 code@luigifab.fr 2021-03-07 12:05:46 UTC
Not yet :)

Comment 10 code@luigifab.fr 2021-03-13 12:41:37 UTC
Hi, I work on the next release and I need to do a strange thing during installation.

One of the installed file must be modified depending on Pango package version.
For pango >= 1.44, I need to replace bottom="3" by bottom="4".

I did that:

%post
currentver=`rpm -q --queryformat="%{RPMTAG_VERSION}" pango`
requiredver=1.44
if [ "$(printf '%s\n' "$requiredver" "$currentver" | sort -V | head -n1)" = "$requiredver" ]; then
  sed -i 's/<border name="title_border" left="2" right="2" top="4" bottom="3"/<border name="title_border" left="2" right="2" top="4" bottom="4"/g' %{_datadir}/themes/human-theme/metacity-1/metacity-theme-1.xml
else
  sed -i 's/<border name="title_border" left="2" right="2" top="4" bottom="4"/<border name="title_border" left="2" right="2" top="4" bottom="3"/g' %{_datadir}/themes/human-theme/metacity-1/metacity-theme-1.xml
fi

rpmlint says:

human-theme-gtk.noarch: W: percent-in-%post
human-theme-gtk.noarch: W: dangerous-command-in-%post rpm

It is good?
Thanks

Comment 11 Robert-André Mauchin 🐧 2021-03-14 16:33:17 UTC
(In reply to code from comment #10)
> Hi, I work on the next release and I need to do a strange thing during
> installation.
> 
> One of the installed file must be modified depending on Pango package
> version.
> For pango >= 1.44, I need to replace bottom="3" by bottom="4".
> 
> I did that:
> 
> %post
> currentver=`rpm -q --queryformat="%{RPMTAG_VERSION}" pango`
> requiredver=1.44
> if [ "$(printf '%s\n' "$requiredver" "$currentver" | sort -V | head -n1)" =
> "$requiredver" ]; then
>   sed -i 's/<border name="title_border" left="2" right="2" top="4"
> bottom="3"/<border name="title_border" left="2" right="2" top="4"
> bottom="4"/g' %{_datadir}/themes/human-theme/metacity-1/metacity-theme-1.xml
> else
>   sed -i 's/<border name="title_border" left="2" right="2" top="4"
> bottom="4"/<border name="title_border" left="2" right="2" top="4"
> bottom="3"/g' %{_datadir}/themes/human-theme/metacity-1/metacity-theme-1.xml
> fi
> 
> rpmlint says:
> 
> human-theme-gtk.noarch: W: percent-in-%post
> human-theme-gtk.noarch: W: dangerous-command-in-%post rpm
> 
> It is good?
> Thanks
What happens when Pango is updated after the package is installed? This wouldn't work.
Also all Pango on stable Fedora versions are at least 1.44 (https://src.fedoraproject.org/rpms/pango), so I don't know why this change is required? I'd just change metacity-theme-1.xml with a patch.

Comment 12 Robert-André Mauchin 🐧 2021-03-17 14:13:46 UTC
Sponsored + flag refresh

Comment 13 Tomas Hrcka 2021-03-17 20:08:28 UTC
(fedscm-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/human-theme-gtk

Comment 14 code@luigifab.fr 2021-03-18 12:28:10 UTC
Thanks, yes, if Pango is updated for example from 1.41 to 1.45, the previous %post doesn't work.
You are right, Fedora uses only Pango > 1.44, so I will do the sed commands in other way.

These changes are required because Pango 1.44 break the metacity theme.
I will push the current version soon.

Comment 15 Fedora Update System 2021-03-19 07:50:33 UTC
FEDORA-2021-eeddd4c048 has been submitted as an update to Fedora 34. https://bodhi.fedoraproject.org/updates/FEDORA-2021-eeddd4c048

Comment 16 Fedora Update System 2021-03-19 07:50:51 UTC
FEDORA-2021-8e23f12fd5 has been submitted as an update to Fedora 33. https://bodhi.fedoraproject.org/updates/FEDORA-2021-8e23f12fd5

Comment 17 Fedora Update System 2021-03-19 07:51:04 UTC
FEDORA-2021-3922ce9272 has been submitted as an update to Fedora 32. https://bodhi.fedoraproject.org/updates/FEDORA-2021-3922ce9272

Comment 18 Fedora Update System 2021-03-19 18:45:46 UTC
FEDORA-2021-eeddd4c048 has been pushed to the Fedora 34 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf install --enablerepo=updates-testing --advisory=FEDORA-2021-eeddd4c048 \*`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2021-eeddd4c048

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 19 Fedora Update System 2021-03-19 19:30:45 UTC
FEDORA-2021-3922ce9272 has been pushed to the Fedora 32 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf install --enablerepo=updates-testing --advisory=FEDORA-2021-3922ce9272 \*`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2021-3922ce9272

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 20 Fedora Update System 2021-03-19 19:38:44 UTC
FEDORA-2021-8e23f12fd5 has been pushed to the Fedora 33 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf install --enablerepo=updates-testing --advisory=FEDORA-2021-8e23f12fd5 \*`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2021-8e23f12fd5

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 21 Fedora Update System 2021-03-23 00:17:19 UTC
FEDORA-2021-eeddd4c048 has been pushed to the Fedora 34 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 22 Fedora Update System 2021-03-27 01:10:45 UTC
FEDORA-2021-8e23f12fd5 has been pushed to the Fedora 33 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 23 Fedora Update System 2021-03-27 01:23:40 UTC
FEDORA-2021-3922ce9272 has been pushed to the Fedora 32 stable repository.
If problem still persists, please make note of it in this bug report.