Hi,

Thank you Igor for your review.

On Thu, Jan 2, 2020 at 10:52 PM Igor Gnatenko <
ignatenkobr...@fedoraproject.org> wrote:

> I think it would be useful to mention in the change page that
> langpacks-core-* already depend on "good quality font". If that is
> already there, I apologize.
>
>
I think this is covered under "User Experience" section.

Another thing which is not mentioned on the change page is that you
> are going to drop Requires: font(:lang=…) from fontconfig (otherwise
> it is going to pull all langpacks-core-* packages).
>
>
Yes, once fontconfig updated, mass rebuild of all packages providing some
kind of "Provides: font(:lang=<langcode>)" will drop that dependency.
I think this has been mentioned in Scope section.

Otherwise I'm happy with this change since this will finally solve the
> problem where you install some game like teeworlds, get some fonts
> pulled in and autoremove will never remove it since fontconfig depend
> on font(:lang=xx) and libsolv never auto-removes "alternative"
> packages. So you never remove fonts unless explicitly ask DNF to do
> so.
>
>
Regards,
Parag

On Thu, Jan 2, 2020 at 4:17 PM Ben Cotton <bcot...@redhat.com> wrote:
> >
> > https://fedoraproject.org/wiki/Changes/FontLanguageProvidesToLangpacks
> >
> > == Summary ==
> > Move `Provides: font(:lang=...)` from fonts packages into the
> > `langpacks` package,
> > giving predictable default fonts for language scripts.
> >
> > === Motivation ===
> > Currently fonts packages has auto-generated `font(:lang=...)`
> > provides, which can be used as a dependency identifier to satisfy font
> > coverage required for a certain language requirement. This is used by
> > GTK application to install missing fonts via PackageKit for example.
> > However in practice it has not been very useful since usually there
> > are assorted multiple fonts that provide the language coverage and so
> > an arbitrary fonts of unknown quality would get selected, so the
> > mechanism is not unreliable.
> >
> > This change uses instead the default fonts chosen in `langpacks` for
> > each language, to give reliable predictable default fonts for each
> > language and improve the user application experience around fonts.
> >
> > == Owner ==
> > * Name: [[User:Tagoh| Akira TAGOH]], [[User:Pnemade| Parag Nemade]]
> > * Email: ta...@redhat.com, pnem...@redhat.com
> >
> >
> > == Detailed Description ==
> > The language based metadata for fonts packages was introduced in
> > Fedora 11.  The idea being to provide a mechanism to find and install
> > a font for missing glyphs through PackageKit and was useful for
> > minority languages which might be missing default installed fonts
> > packages.  But the user experience was generally not terribly good.
> >
> > Users cannot predict which fonts will be installed. This often leads
> > to poor fonts choices installed, particularly for languages with too
> > many available fonts such as English, since the first font found
> > lexically will be arbitrarily chosen with gurantee of quality or
> > expected style.
> > This random dependency resolution sometimes introduces highly
> > unexpected results too - for example a font from an external
> > repository may get chosen by chance. This would be particularly
> > problematic when composing ISOs, eg when including EPEL.
> >
> > So this Changes proposal aims to improve the user experience around
> > font dependencies by moving the meta-provides the `langpacks` package
> > instead. Langpacks contains various dependencies to use for certain
> > languages, including dependencies for default fonts. so it will
> > resolve the above issues.
> >
> > Specifically speaking, currently font provides are generated like this:
> > <pre>
> > $ fc-query -f %{=pkgkit}  /usr/share/fonts/dejavu/DejaVuSans.ttf
> > font(dejavusans)
> > font(:lang=aa)
> > font(:lang=ab)
> > ...
> > </pre>
> >
> > and at the build time, it is transformed to:
> > <pre>
> > Provides: font(dejavusans)
> > Provides: font(:lang=aa)
> > Provides: font(:lang=ab)
> > ...
> > </pre>
> >
> > After this proposal, the above result will be:
> > <pre>
> > Provides: font(dejavusans)
> > </pre>
> >
> > and then add `Provides: font(:lang=...)` line to corresponding
> > sub-packages langpacks-core-*.
> >
> > So asking for a font for a certain language through PackageKit will be
> > achieved by langpacks-core-* instead of a random font package.
> >
> > == Benefit to Fedora ==
> > This proposal will provide reliable, predictable, and consistent font
> > dependencies.
> >
> > == Scope ==
> > * Proposal owners:
> > ** Update fontconfig to drop `font(:lang=...)` from the alias of the
> > formatter for `%{=pkgkit}`
> > ** Add a line of `Provides: font(:lang=...)` to each
> > `langpacks-core-...`. For instance, `Provides: font(:lang=hi)` needs
> > to be added to `langpacks-core-hi`.
> >
> > * Other developers: Release Engineers needs to rebuild all fonts
> > packages with the updated fontconfig package.
> > * Release engineering: [https://pagure.io/releng/issue/9132 #9132]
> > * Policies and guidelines: None
> > * Trademark approval: None
> >
> >
> > == Upgrade/compatibility impact ==
> > Some packages may be installed after upgrading if corresponding
> > langpacks-core-* packages isn't yet installed.
> >
> > == How To Test ==
> > # Check that langpacks-core-* provide corresponding `font(:lang=...)`
> > using `rpm -q --provides`.
> > # Check that fonts packages no longer provide `font(:lang=...)`.
> > # Check that langpacks-core-* pulls in the default expected font for
> > the language.
> >
> > == User Experience ==
> > Users should see better fonts chosen for languages when they install a
> > font to cover a certain language script through PackageKit or through
> > font meta dependencies of other packages.
> >
> >
> > == Dependencies ==
> > All fonts packages
> >
> > == Contingency Plan ==
> > * Contingency mechanism: proposal owners will revert all the changes
> > and rebuild all fonts packages to add back the provides.
> >
> > * Contingency deadline: the beta freeze
> > * Blocks release? No
> > * Blocks product? N/A
> >
> > == Documentation ==
> > N/A
> >
> > --
> > Ben Cotton
> > He / Him / His
> > Fedora Program Manager
> > Red Hat
> > TZ=America/Indiana/Indianapolis
> > _______________________________________________
> > devel-announce mailing list -- devel-annou...@lists.fedoraproject.org
> > To unsubscribe send an email to
> devel-announce-le...@lists.fedoraproject.org
> > Fedora Code of Conduct:
> https://docs.fedoraproject.org/en-US/project/code-of-conduct/
> > List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
> > List Archives:
> https://lists.fedoraproject.org/archives/list/devel-annou...@lists.fedoraproject.org
> _______________________________________________
> devel mailing list -- devel@lists.fedoraproject.org
> To unsubscribe send an email to devel-le...@lists.fedoraproject.org
> Fedora Code of Conduct:
> https://docs.fedoraproject.org/en-US/project/code-of-conduct/
> List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
> List Archives:
> https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
>
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org

Reply via email to