Bug 486977

Summary: Review Request: gnu-free-fonts
Product: [Fedora] Fedora Reporter: Gwyn Ciesla <gwync>
Component: Package ReviewAssignee: Gwyn Ciesla <gwync>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: rawhideCC: fedora-package-review, fonts-bugs, notting, orion, petersen
Target Milestone: ---Flags: nicolas.mailhot: fedora-review+
j: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-03-24 18:30:52 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:
Bug Depends On: 212079    
Bug Blocks: 477336, 479238    

Comment 1 Nicolas Mailhot 2009-03-02 22:18:04 UTC
Thank you very much for working on this. Here is a first review pass:

1. FPC and FESCO have decided %global was preferred over %define. The changes are in fontpackages 1.20, please apply them
http://fedoraproject.org/wiki/PackagingDrafts/global_preferred_over_define

2. Please try to keep the same declaration order as the templates, that makes diffing & reviewing easier

3. Please do not make a metapackage of the main package, if you need a metapackage for upgrade paths create a -compat subpackage that we'll be able to kill at F12 time

http://fedoraproject.org/wiki/Upgrade_paths_%E2%80%94_renaming_or_splitting_packages#Can.27t_I_use_my_old_package_name_instead_of_a_-compat_subpackage.3F

vera, mgopen, dejavu, liberation, etc all use this proven pattern

4. you can probably drop the
Obsoletes: freefont-ttf < %{version}-%{release}
freefont has been named freefont in Fedora for quite a long time

5. In rawhide you can drop the
Group:    User Interface/X
declarations in subpackages

6. use the
%package -n %{fontname}-<FAMILY>-fonts
%description -n %{fontname}-<FAMILY>-fonts
%_font_pkg -n <FAMILY> -f %{fontconf}-<FAMILY>.conf <NAME>*.ttf

which is documented in the templates if you want stuff to actually work

7. put doc in the common package, that's one of its main uses

8. BuildRequire fontforge

9. You'll likely hit
http://www.redhat.com/archives/fedora-fonts-list/2009-February/msg00076.html
too

10. Please add fontconfig rules to each font subpackages. In your case that's probably just taking the
/usr/share/fontconfig/templates/basic-font-template.conf
template and filling in font names

11. Please also make sure you've not forgotten a step in
http://fedoraproject.org/wiki/Upgrade_paths_%E2%80%94_renaming_or_splitting_packages#Source_package_naming_changes

That's all I see right now, I may have missed something else, multi-font packages can be trickier than mono-font ones. But first fix this please

Comment 2 Gwyn Ciesla 2009-03-05 16:55:23 UTC
Corrected all but 9.  Can't test if 9 is needed in rawhide as mock builds are failing at the yum step with 404s, even with a fresh root cache.  Probably a temporary issue.

rel-eng ticket: https://fedorahosted.org/fedora-infrastructure/ticket/1225

Otherwise I *think * I hit all your points.

SPEC: http://zanoni.jcomserv.net/fedora/gnu-free-fonts/gnu-free-fonts.spec
SRPM:
http://zanoni.jcomserv.net/fedora/gnu-free-fonts/gnu-free-fonts-20090104-4.fc10.src.rpm

Comment 4 Nicolas Mailhot 2009-03-05 20:13:58 UTC
We're getting there :)

1. you still have at least one %define in common_desc (probably did not notice it because you've reordered the template)

2.you still have a needless group declaration in your common package

3. you should simplify your subpackage names (for example use %{fontname}-mono-fonts instead of %{fontname}-freemono-fonts). Repeating the project name does not really help users.

4. you need to drop
Requires:  gnu-free-fonts-freemono-fonts = %{version}-%{release}
Requires:  gnu-free-fonts-freesans-fonts = %{version}-%{release}
Requires:  gnu-free-fonts-freeserif-fonts = %{version}-%{release}

Obsoletes: freefont < 20090104-2

from your main package

5. you probably don't need to obsolete package names that were never pushed to user systems, this obsolete data will never be used

6. you don't need
%dir %{_fontdir}
in your common package

7. you can unroll the for loop, but if you do so make sure you don't reference the for variable anymore

8. your fontconfig rule filenames need to start with a number to work (in your case 60 is probably fine, see /usr/share/fontconfig/templates/fontconfig-priorities.txt)

9. your fontconfig rules won't work if you just put the font name everywhere blindly. See /usr/share/fontconfig/templates/fontconfig-generics.txt and  /usr/share/fontconfig/templates/basic-font-template.txt

Comment 6 Jens Petersen 2009-03-06 00:12:09 UTC
*** Bug 479238 has been marked as a duplicate of this bug. ***

Comment 7 Jens Petersen 2009-03-06 00:42:05 UTC
(In reply to comment #4)
> 4. you need to drop
> Requires:  gnu-free-fonts-freemono-fonts = %{version}-%{release}
> Requires:  gnu-free-fonts-freesans-fonts = %{version}-%{release}
> Requires:  gnu-free-fonts-freeserif-fonts = %{version}-%{release}
> from your main package

But they should be moved to the compat package.

> 5. you probably don't need to obsolete package names that were never pushed to
> user systems, this obsolete data will never be used

Right, I think you can drop "Obsoletes: gnu-free-fonts < 20090104-4" from compat too.

Otherwise it looks pretty good to me.

Comment 9 Nicolas Mailhot 2009-03-14 18:52:33 UTC
Another pass:

1. you're not defining fontname as intended by the template and as a result you have weird package names such as gnu-free-fonts-mono-fonts instead of a nice gnu-free-mono-fonts
fontname shoud not have the same value as name or we would not bother with it

2. your fontconfig symlinks are broken
lrw-r--r--    1 root    root                       52 mars 14 19:35 /etc/fonts/conf.d/60-gnu-free-fonts-mono.conf -> /usr/share/fontconfig/conf.avail/gnu-free-fonts-m
ono
-rw-r--r--    1 root    root                      334 mars  5 21:46 /usr/share/fontconfig/conf.avail/60-gnu-free-fonts-mono.conf

It would probably simpler if you just used the symlinking logic proposed by the template

3. Your compat package
Requires:  gnu-free-fonts-freemono-fonts = %{version}-%{release}
Requires:  gnu-free-fonts-freesans-fonts = %{version}-%{release}
Requires:  gnu-free-fonts-freeserif-fonts = %{version}-%{release}
But your srpm generates subpackages named differently, so it won't work

4. rpmlint points some minor problems
W: spelling-error-in-description compatability compatibility
E: description-line-too-long This package only exists to help transition pre 20090104-4 freefotn users to the new\
W: summary-not-capitalized freefont compatibility package

Comment 10 Gwyn Ciesla 2009-03-18 13:17:53 UTC
Fixed 1, 2, 3, and 4.

SPEC: http://zanoni.jcomserv.net/fedora/gnu-free-fonts/gnu-free-fonts.spec
SRPM:
http://zanoni.jcomserv.net/fedora/gnu-free-fonts/gnu-free-fonts-20090104-8.fc10.src.rpm 

Re the symlinks, why do we use absolute and not relative symlinks in font pacakges?

Comment 11 Nicolas Mailhot 2009-03-18 13:34:32 UTC
(In reply to comment #10)

> Re the symlinks, why do we use absolute and not relative symlinks in font
> pacakges?  

Because it's simpler and FPC already decided the rpmlint warning about absolute symlinks was trashable. But they're ok not requiring our rpmlint packager to remove it and having people waste their time in reviews over it.

Comment 12 Nicolas Mailhot 2009-03-19 18:31:17 UTC
Ok, you're producing the right package names at last

But you compat package is still requiring package names that do not match what you build

And if you look in /usr/share/fontconfig/conf.avail/ you'll see the files you pack do not match what other packages do.

Comment 13 Gwyn Ciesla 2009-03-19 19:08:04 UTC
<facepalm>  I fixed the Requires.  I see nothing in /u/s/fc/conf.avail, do you mean /etc/fonts/conf.avail?  If so, my files resemble those, but are not so complex.  They're a straight filling in of a template.  If they need enhancement or alteration, I'm not sure where to go next with them, as I have only a vague idea what these files do, and not much idea *how*.

Comment 14 Nicolas Mailhot 2009-03-19 20:36:24 UTC
Sorry, I was not clear. -ENOSLEEP

Your spec produces dangling symlinks that won't work, such as

/etc/fonts/conf.d/60-gnu-free-sans.conf -> /usr/share/fontconfig/conf.avail/gnu-free-sans

Comment 16 Nicolas Mailhot 2009-03-21 09:50:58 UTC
And now you have another kind of dangling symlink

/etc/fonts/conf.d/60-gnu-free-mono.conf -> /usr/share/fontconfig/conf.avail/gnu-free-mono.conf

Would it be so hard to just use the pattern documented in the official spec templates instead of exploring every possible broken alternative? This is getting really old.

Comment 17 Gwyn Ciesla 2009-03-23 15:34:08 UTC
SPEC: http://zanoni.jcomserv.net/fedora/gnu-free-fonts/gnu-free-fonts.spec
SRPM:
http://zanoni.jcomserv.net/fedora/gnu-free-fonts/gnu-free-fonts-20090104-10.fc10.src.rpm 

Fixed, and I moved closer to the template.  I agree that this is getting old, but I'm learning font packaging as I go.

Comment 18 Nicolas Mailhot 2009-03-23 21:58:38 UTC
Ok, this one looks good. Can't test it fully because of bug #491764 but it passes my other tests

♼♼♼ APPROVED ♼♼♼

Please make sure the other steps in
http://fedoraproject.org/wiki/Upgrade_paths_%E2%80%94_renaming_or_splitting_packages#Source_package_naming_changes

are taken care of. Also I think you deserve at least co-maintainership of the new package. Congratulations

This is about the worst-case font packaging scenario you can get in Fedora so if you don't forget what you've learnt here you should be able to package about any font now.

Comment 19 Orion Poplawski 2009-03-23 22:03:52 UTC
Oh, I'd love to give this package up to whoever wants it.

Comment 20 Gwyn Ciesla 2009-03-24 12:27:59 UTC
Awesome, thanks for you review and font education.  Orion, I'll take over the new package.  You want co-maintainership?


New Package CVS Request
=======================
Package Name: gnu-free-fonts
Short Description: Free UCS Outline Fonts
Owners: limb
Branches: 
InitialCC:

Comment 21 Orion Poplawski 2009-03-24 13:31:05 UTC
(In reply to comment #20)
> Awesome, thanks for you review and font education.  Orion, I'll take over the
> new package.  You want co-maintainership?

Works for me.

New Package CVS Request

======================
Package Name: gnu-free-fonts
Short Description: Free UCS Outline Fonts
Owners: limb orion
Branches: 
InitialCC:

Comment 22 Kevin Fenzi 2009-03-24 17:34:21 UTC
cvs done.

Comment 23 Gwyn Ciesla 2009-03-24 18:30:52 UTC
Imported and built.  Bugs for known dependant packages updated.  freefont EOL ticket updated.

Thanks all!

Comment 24 Orion Poplawski 2010-08-13 16:30:53 UTC
We need an EL6 branch for this.

Package Change Request
======================
Package Name: gnu-free-fonts
New Branches: Free UCS Outline Fonts
Owners: limb orion
InitialCC:

Comment 25 Jason Tibbitts 2010-08-13 17:22:56 UTC
Erm, "Free UCS Outline Fonts" is four not-valid branches.  I changed it to el6
for you.

Git done (by process-git-requests).

Comment 26 Orion Poplawski 2010-08-13 17:26:39 UTC
Ah, sorry about that.  Thanks.