Bug 1989300 - Review Request: fontawesome5-fonts - Iconic font set
Summary: Review Request: fontawesome5-fonts - Iconic font set
Keywords:
Status: CLOSED NEXTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Wolfgang Ulbrich
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 1981997
TreeView+ depends on / blocked
 
Reported: 2021-08-02 21:20 UTC by Jerry James
Modified: 2021-08-23 20:55 UTC (History)
2 users (show)

Fixed In Version: fontawesome5-fonts-5.15.4-1.fc36
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2021-08-23 20:55:20 UTC
Type: ---
Embargoed:
fedora: fedora-review+


Attachments (Terms of Use)

Description Jerry James 2021-08-02 21:20:15 UTC
Spec URL: https://jjames.fedorapeople.org/fontawesome-free-fonts/fontawesome-free-fonts.spec
SRPM URL: https://jjames.fedorapeople.org/fontawesome-free-fonts/fontawesome-free-fonts-5.15.3-1.fc35.src.rpm
Fedora Account System Username: jjames
Description: Font Awesome gives you scalable vector icons that can instantly be customized - size, color, drop shadow, and anything that can be done with the power of CSS.

This is version 5.x of the font set.  Version 4.x is in the existing fontawesome-fonts and fontawesome-fonts-web packages.  Since it appears that versions 4.x and 5.x will need to coexist for some time (see bug 1857488 and bug 1960052), this is my attempt at making that possible.

Comment 1 Jerry James 2021-08-05 23:28:12 UTC
Based on comments made on fedora-devel-list, I have changed the name to fontawesome5-fonts, and have also reorganized the contents somewhat.  New URLs:

Spec URL: https://jjames.fedorapeople.org/fontawesome5-fonts/fontawesome5-fonts.spec
SRPM URL: https://jjames.fedorapeople.org/fontawesome5-fonts/fontawesome5-fonts-5.15.4-1.fc35.src.rpm

Comment 2 Jerry James 2021-08-18 21:03:27 UTC
The package now fully complies with the font packaging guidelines.  New URLs:

Spec URL: https://jjames.fedorapeople.org/fontawesome5-fonts/fontawesome5-fonts.spec
SRPM URL: https://jjames.fedorapeople.org/fontawesome5-fonts/fontawesome5-fonts-5.15.4-1.fc36.src.rpm

Comment 3 Wolfgang Ulbrich 2021-08-19 20:42:24 UTC
I never did a font review. Can you post the link to font packaging guidelines, please?

Comment 5 Wolfgang Ulbrich 2021-08-20 13:39:51 UTC
Review tool gives me an installation error.
```
Installation errors
-------------------
INFO: mock.py version 2.12 starting (python version = 3.9.6, NVR = mock-2.12-1.fc34)...
Start: init plugins
INFO: selinux disabled
Finish: init plugins
INFO: Signal handler active
Start: run
Start: chroot init
INFO: calling preinit hooks
INFO: enabled root cache
INFO: enabled package manager cache
Start: cleaning package manager metadata
Finish: cleaning package manager metadata
INFO: enabled HW Info plugin
Mock Version: 2.12
INFO: Mock Version: 2.12
Finish: chroot init
INFO: installing package(s): /home/rave/fontawesome5-fonts/results/fontawesome5-fonts-all-5.15.4-1.fc34.noarch.rpm /home/rave/fontawesome5-fonts/results/fontawesome5-fonts-web-5.15.4-1.fc34.noarch.rpm /home/rave/fontawesome5-fonts/results/fontawesome5-fonts-5.15.4-1.fc34.noarch.rpm
ERROR: Command failed: 
 # /usr/bin/dnf --installroot /home/rave//fedora-34-x86_64/root/ --releasever 34 --setopt=deltarpm=False --allowerasing --disableplugin=local --disableplugin=spacewalk --disableplugin=versionlock install /home/rave/fontawesome5-fonts/results/fontawesome5-fonts-all-5.15.4-1.fc34.noarch.rpm /home/rave/fontawesome5-fonts/results/fontawesome5-fonts-web-5.15.4-1.fc34.noarch.rpm /home/rave/fontawesome5-fonts/results/fontawesome5-fonts-5.15.4-1.fc34.noarch.rpm
```

see ~/fontawesome5-fonts/results/root.log
```
DEBUG util.py:444:  No matches found for the following disable plugin patterns: local, spacewalk
DEBUG util.py:446:  fedora                                           27 kB/s |  26 kB     00:00    
DEBUG util.py:446:  updates                                          36 kB/s |  19 kB     00:00    
DEBUG util.py:446:  result                                          3.0 MB/s | 3.0 kB     00:00    
DEBUG util.py:444:  Error: 
DEBUG util.py:444:   Problem: conflicting requests
DEBUG util.py:444:    - nothing provides fontawesome5-brands-fonts = 5.15.4-1.fc34 needed by fontawesome5-fonts-all-5.15.4-1.fc34.noarch
DEBUG util.py:444:    - nothing provides fontawesome5-free-fonts = 5.15.4-1.fc34 needed by fontawesome5-fonts-all-5.15.4-1.fc34.noarch
DEBUG util.py:446:  (try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
```

Not sure if this is an problem or a fault positive, because i can reproduce the error with my box when i install only the 3 mentioned packages. If i install all packages from result dir everything seems to run well.

```
[root@mother results]# ls
build.log
fontawesome5-brands-fonts-5.15.4-1.fc34.noarch.rpm
fontawesome5-fonts-5.15.4-1.fc34.noarch.rpm
fontawesome5-fonts-5.15.4-1.fc34.src.rpm
fontawesome5-fonts-all-5.15.4-1.fc34.noarch.rpm
fontawesome5-fonts-web-5.15.4-1.fc34.noarch.rpm
fontawesome5-free-fonts-5.15.4-1.fc34.noarch.rpm
hw_info.log
installed_pkgs.log
repodata
root.log
state.log
[root@mother results]# 
[root@mother results]# 
[root@mother results]#  
[root@mother results]# dnf install fontawesome5-fonts-all-5.15.4-1.fc34.noarch.rpm fontawesome5-fonts-web-5.15.4-1.fc34.noarch.rpm fontawesome5-fonts-5.15.4-1.fc34.noarch.rpm
Last metadata expiration check: 2:39:26 ago on Fri Aug 20 12:44:06 2021.
Error: 
 Problem: conflicting requests
  - nothing provides fontawesome5-brands-fonts = 5.15.4-1.fc34 needed by fontawesome5-fonts-all-5.15.4-1.fc34.noarch
  - nothing provides fontawesome5-free-fonts = 5.15.4-1.fc34 needed by fontawesome5-fonts-all-5.15.4-1.fc34.noarch
(try to add '--skip-broken' to skip uninstallable packages)
[root@mother results]# 
[root@mother results]# 
[root@mother results]# 
[root@mother results]# dnf install fontawesome5-brands-fonts-5.15.4-1.fc34.noarch.rpm fontawesome5-fonts-5.15.4-1.fc34.noarch.rpm fontawesome5-fonts-all-5.15.4-1.fc34.noarch.rpm fontawesome5-fonts-web-5.15.4-1.fc34.noarch.rpm fontawesome5-free-fonts-5.15.4-1.fc34.noarch.rpm
Last metadata expiration check: 2:40:16 ago on Fri Aug 20 12:44:06 2021.
Dependencies resolved.
================================================================================
 Package                      Arch      Version           Repository       Size
================================================================================
Installing:
 fontawesome5-brands-fonts    noarch    5.15.4-1.fc34     @commandline    244 k
 fontawesome5-fonts           noarch    5.15.4-1.fc34     @commandline    566 k
 fontawesome5-fonts-all       noarch    5.15.4-1.fc34     @commandline    6.2 k
 fontawesome5-fonts-web       noarch    5.15.4-1.fc34     @commandline    716 k
 fontawesome5-free-fonts      noarch    5.15.4-1.fc34     @commandline    284 k

Transaction Summary
================================================================================
Install  5 Packages

Total size: 1.8 M
Installed size: 13 M
Is this ok [y/N]: n
Operation aborted.
```

I am also wondering that fontawesome5-brands-fonts, fontawesome5-fonts-all, fontawesome5-free-fonts are not mentioned in spec file. What magic happened here?  :)

Comment 6 Jerry James 2021-08-20 21:05:36 UTC
(In reply to Wolfgang Ulbrich from comment #5)
> Review tool gives me an installation error.

[snip]

> ```
> DEBUG util.py:444:  No matches found for the following disable plugin
> patterns: local, spacewalk
> DEBUG util.py:446:  fedora                                           27 kB/s
> |  26 kB     00:00    
> DEBUG util.py:446:  updates                                          36 kB/s
> |  19 kB     00:00    
> DEBUG util.py:446:  result                                          3.0 MB/s
> | 3.0 kB     00:00    
> DEBUG util.py:444:  Error: 
> DEBUG util.py:444:   Problem: conflicting requests
> DEBUG util.py:444:    - nothing provides fontawesome5-brands-fonts =
> 5.15.4-1.fc34 needed by fontawesome5-fonts-all-5.15.4-1.fc34.noarch
> DEBUG util.py:444:    - nothing provides fontawesome5-free-fonts =
> 5.15.4-1.fc34 needed by fontawesome5-fonts-all-5.15.4-1.fc34.noarch
> DEBUG util.py:446:  (try to add '--skip-broken' to skip uninstallable
> packages or '--nobest' to use not only best candidate packages)
> ```
> 
> Not sure if this is an problem or a fault positive, because i can reproduce
> the error with my box when i install only the 3 mentioned packages. If i
> install all packages from result dir everything seems to run well.

That is weird.  I don't know what fedora-review is trying to do there.  The fontawesome5-fonts-all package has "all" in the name for a reason: it depends on the other fonts.  Which were built.  So why isn't fedora-review trying to install all of them???

As you note, the packages can all be installed manually, so there is nothing wrong with the dependencies.  I don't know what happened.  It looks like a fedora-review bug to me.

> I am also wondering that fontawesome5-brands-fonts, fontawesome5-fonts-all,
> fontawesome5-free-fonts are not mentioned in spec file. What magic happened
> here?  :)

You are seeing the magic font macros at work!  The %fontpkg macro generates fontawesome5-brands-fonts and fontawesome5-free-fonts from the %global settings above (%fontfamily1, %fontsummary1, etc.), and the %fontmetapkg macro generates fontawesome5-fonts-all from the unnumbered %global settings (%fontlicense, etc.).  Down below, the %fontfiles macro generates %files sections for each of those packages.

Also, speaking of fedora-review bugs, it issues a couple of bogus complaints; see bug 1996210.

Comment 7 Wolfgang Ulbrich 2021-08-21 09:08:10 UTC
Yeah, the problem is that dnf can't resolve the dependency at repos, because missing packages aren't at repos.
I agree it is a fault by fedora-review-tool not to install all packages.

Comment 8 Wolfgang Ulbrich 2021-08-21 10:13:19 UTC
[ ]: Package must own all directories that it creates.
     Note: Directories without known owners: /usr/share/fontawesome5

This is caused by fontawesome5-fonts-web sub-package which can be installed without the main package (fontawesome5-fonts), which owns the directory.
Is this the intended behavior?
If yes, than the -web sub-package needs to own the directory too
```
%files web
%doc CHANGELOG.md README* UPGRADING.md
%license LICENSE.txt
%dir %{_datadir}/fontawesome5
%{_datadir}/fontawesome5/js/
%{_datadir}/fontawesome5/sprites/
%{_datadir}/fontawesome5/svgs/
```
This silences the warning. 
Or you need to add a Requires to the -web sub-package, which pointed to the main package.

Rest looks ok ;)

Comment 9 Jerry James 2021-08-21 20:29:56 UTC
I have added "%dir %{_datadir}/fontawesome5" to the web subpackage.  I updated the spec file and srpm at the URLs in comment 2.

Comment 10 Wolfgang Ulbrich 2021-08-22 12:10:16 UTC
PACKAGE IS APPROVED!



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

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


Issues:
=======


===== 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]: License field in the package spec file matches the actual license.
     Note: There is no build directory. Running licensecheck on vanilla
     upstream sources. No licenses found. Please check the source files for
     licenses manually.
[x]: License file installed when any subpackage combination is installed.
[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[-]: 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 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 245760 bytes in 12 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]: 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 must own all directories that it creates.
[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]: 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.
[x]: Final provides and requires are sane (see attachments).
[x]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: Patches link to upstream bugs/comments/lists or are otherwise
     justified.
[-]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
     Note: gpgverify is not used.
[x]: 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]: 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:
[!]: Rpmlint is run on all installed packages.
     Note: Mock build failed
     See: https://docs.fedoraproject.org/en-US/packaging-
     guidelines/#_use_rpmlint

fonts:
[!]: Run repo-font-audit on all fonts in package.
     Note: Cannot find repo-font-audit, install fontpackages-tools package
     to make a comprehensive font review.
     See: url: undefined
[!]: Run ttname on all fonts in package.
     Note: Cannot find ttname command, install ttname package to make a
     comprehensive font review.
     See: url: undefined


Installation errors
-------------------
INFO: mock.py version 2.12 starting (python version = 3.9.6, NVR = mock-2.12-1.fc34)...
Start: init plugins
INFO: selinux disabled
Finish: init plugins
INFO: Signal handler active
Start: run
Start: chroot init
INFO: calling preinit hooks
INFO: enabled root cache
INFO: enabled package manager cache
Start: cleaning package manager metadata
Finish: cleaning package manager metadata
INFO: enabled HW Info plugin
Mock Version: 2.12
INFO: Mock Version: 2.12
Finish: chroot init
INFO: installing package(s): /home/rave/fontawesome5-fonts/results/fontawesome5-fonts-all-5.15.4-1.fc34.noarch.rpm /home/rave/fontawesome5-fonts/results/fontawesome5-fonts-web-5.15.4-1.fc34.noarch.rpm /home/rave/fontawesome5-fonts/results/fontawesome5-fonts-5.15.4-1.fc34.noarch.rpm
ERROR: Command failed: 
 # /usr/bin/dnf --installroot /home/rave//fedora-34-x86_64/root/ --releasever 34 --setopt=deltarpm=False --allowerasing --disableplugin=local --disableplugin=spacewalk --disableplugin=versionlock install /home/rave/fontawesome5-fonts/results/fontawesome5-fonts-all-5.15.4-1.fc34.noarch.rpm /home/rave/fontawesome5-fonts/results/fontawesome5-fonts-web-5.15.4-1.fc34.noarch.rpm /home/rave/fontawesome5-fonts/results/fontawesome5-fonts-5.15.4-1.fc34.noarch.rpm



Rpmlint
-------
Checking: fontawesome5-fonts-5.15.4-1.fc34.noarch.rpm
          fontawesome5-fonts-all-5.15.4-1.fc34.noarch.rpm
          fontawesome5-fonts-web-5.15.4-1.fc34.noarch.rpm
          fontawesome5-fonts-5.15.4-1.fc34.src.rpm
fontawesome5-fonts.noarch: W: no-documentation
fontawesome5-fonts-all.noarch: W: no-documentation
fontawesome5-fonts-web.noarch: W: spelling-error Summary(en_US) javascript -> java script, java-script, JavaScript
fontawesome5-fonts-web.noarch: W: spelling-error %description -l en_US javascript -> java script, java-script, JavaScript
fontawesome5-fonts.src: W: strange-permission trademarks.py 775
4 packages and 0 specfiles checked; 0 errors, 5 warnings.




Source checksums
----------------
https://github.com/FortAwesome/Font-Awesome/archive/5.15.4/Font-Awesome-5.15.4.tar.gz :
  CHECKSUM(SHA256) this package     : 82c301594a566277ba3cf41e037fc03ae101727d3e5d682d09e322a53937b5ed
  CHECKSUM(SHA256) upstream package : 82c301594a566277ba3cf41e037fc03ae101727d3e5d682d09e322a53937b5ed


Requires
--------
fontawesome5-fonts (rpmlib, GLIBC filtered):

fontawesome5-fonts-all (rpmlib, GLIBC filtered):
    fontawesome5-brands-fonts
    fontawesome5-free-fonts

fontawesome5-fonts-web (rpmlib, GLIBC filtered):



Provides
--------
fontawesome5-fonts:
    fontawesome5-fonts

fontawesome5-fonts-all:
    fontawesome5-fonts-all

fontawesome5-fonts-web:
    fontawesome5-fonts-web



Generated by fedora-review 0.7.6 (b083f91) last change: 2020-11-10
Command line :/usr/bin/fedora-review -v -r -n fontawesome5-fonts -m fedora-34-x86_64
Buildroot used: fedora-34-x86_64
Active plugins: fonts, Generic, Shell-api
Disabled plugins: Perl, Java, Python, R, C/C++, PHP, Haskell, Ocaml, SugarActivity
Disabled flags: EPEL6, EPEL7, DISTTAG, BATCH, EXARCH

Comment 11 Jerry James 2021-08-22 16:21:06 UTC
Thank you, Wolfgang.  I appreciate the review.

Comment 12 Gwyn Ciesla 2021-08-23 13:53:35 UTC
(fedscm-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/fontawesome5-fonts

Comment 13 Jerry James 2021-08-23 20:55:20 UTC
Built for Rawhide and F35.


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