DevHeads.net

Fedora 31 System-Wide Change proposal: Langpacks-core for i18n functionality

<a href="https://fedoraproject.org/wiki/Changes/Langpacks-core" title="https://fedoraproject.org/wiki/Changes/Langpacks-core">https://fedoraproject.org/wiki/Changes/Langpacks-core</a>

== Summary ==
Add `langpacks-core-*` subpackages to `langpacks` for easier
installation of minimal core i18n support for a language
(locale, default font, and any default input-method if needed).

== Owner ==
* Name: [[User:Petersen|Jens Petersen]]
* Email: <a href="mailto: ... at redhat dot com"> ... at redhat dot com</a>
* Name: [[User:pnemade|Parag Nemade]]
* Email: <a href="mailto: ... at redhat dot com"> ... at redhat dot com</a>
* Name: [[User:mfabian|Mike Fabian]]
* Email: <a href="mailto: ... at redhat dot com"> ... at redhat dot com</a>

== Detailed Description ==
In Fedora 30 we replaced the remaining Yum language-support groups in
Comps by extending the `langpacks` meta packages to handle the
installation of fonts (and input-methods) required for a language, in
addition to locale and translation package weak dependencies.
However this all or nothing approach can be too heavy for some use
cases, since the old language-support groups did not pull in
translation langpacks.

With this Change we want to refine the approach to allow finer-grained
installation of language support.
So users who only want basic support installed for a language (without
translation langpacks and additional fonts for example)
can install `langpacks-core-XY` to get just the default font,
locale(s) and a weak dependency for any default input method.

Note: in this proposal `XY` stands just for the ISO language code (eg
`es` for Spanish).

Users who want general default Fedora international support should
continue to install `@fonts`, `@input-methods`, and
`glibc-all-langpacks` (as they are already in Fedora Workstation, etc).

Later we may consider whether to separate the input methods into
separate meta langpacks subpackages.

== Benefit to Fedora ==
This allows more flexibility for users who want to do custom
installations/Spins, or starting from minimal images/installs.
They will be able to add basic i18n support for one or more specific
language in a predictable standard way without pulling in
additional langpacks for translations and extra fonts which may not be
required for each added languages.

Users wanting full support for a language can continue to install the
`langpacks-XY` package for their language.

== Scope ==
* Proposal owners:
** Add `langpacks-core-*` subpackages to langpacks for core i18n functionality:
*** default font
*** glibc locale
*** weak dependency on ibus IME if needed
** Other langpacks weak deps and additional fonts will remain in `langpacks-XY`.
** `langpacks-XY` will require `langpacks-core-XY`.
** glibc locales subpackages weak dependencies will be updated to
depend on `langpacks-core-XY`

* Other developers: No other changes should be needed - current
package translation langpacks will continue to depend on
`langpacks-xx`.
** Policies and guidelines: No major changes here
* Trademark approval: N/A (not needed for this Change)

== Upgrade/compatibility impact ==
<!-- What happens to systems that have had a previous versions of
Fedora installed and are updated to the version containing this
change? Will anything require manual configuration or data migration?
Will any existing functionality be no longer supported? -->

No impact - the design is fully backwards compatible: `langpacks-XY`
will pull in the new `langpacks-core-XY`.

== How To Test ==
* dnf list langpacks-*
* dnf install langpacks-core-XY
* dnf install langpacks-XY

== User Experience ==
Fedora users will have more flexibility with installation of i18n
support packages and langpacks.

== Dependencies ==
glibc.spec needs to be updated with `s/langpacks/langpacks-core/` once
`langpacks` has implemented `langpacks-core`.

No other packages should be directly affected by the current proposal.

== Contingency Plan ==
* Contingency mechanism: Proposal owners will revert to F30
`langpacks` and glibc
* Contingency deadline: Beta freeze
* Blocks release? No
* Blocks product? N/A

== Documentation ==
No additional documentation at this stage.