Bug 1869839 - RFE: Provide langpacks-core-all and langpacks-core-none.
Summary: RFE: Provide langpacks-core-all and langpacks-core-none.
Keywords:
Status: ASSIGNED
Alias: None
Product: Fedora
Classification: Fedora
Component: langpacks
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Parag Nemade
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 1380069
Blocks:
TreeView+ depends on / blocked
 
Reported: 2020-08-18 18:39 UTC by Carlos O'Donell
Modified: 2022-04-11 04:16 UTC (History)
4 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Type: Bug
Embargoed:
petersen: mirror+


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker FC-419 0 None None None 2022-04-02 13:08:15 UTC

Description Carlos O'Donell 2020-08-18 18:39:14 UTC
For the purposes of testing and for the purposes of container minimization and VM minimization we should provide:

* langpacks-core-all: All language packs installed.
* langpacks-core-none: No language packs installed (active choice).

In glibc we have glibc-all-langpacks which is an optimized version of all language packages installed which saves considerable space in an install that needs more than 60+ languages installed (think sever handling localized requests per thread).

In glibc we also have glibc-minimal-langpack which is the case of minimal language support providing only C/POSIX (ASCII-only locale) and C.UTF-8 (fully UTF-8 locale).

Comment 1 Parag Nemade 2020-08-20 09:12:33 UTC
I can understand how langpacks-core-all requiring all other langpacks-core-* packages can help to test all the langpacks at once but I don't understand langpacks-core-none subpackage usage.

May I know how this subpackage can be implemented in SPEC file? Just create an empty subpackage with no dependency? if yes, how can it help you? I want to know what scenario this -none subpackage be useful?

Comment 2 Carlos O'Donell 2020-08-20 21:47:57 UTC
(In reply to Parag Nemade from comment #1)
> I can understand how langpacks-core-all requiring all other langpacks-core-*
> packages can help to test all the langpacks at once but I don't understand
> langpacks-core-none subpackage usage.

How do you remove all the langpacks?

Just removing langpacks-core-all will remove just that package but leave all the dependent installed langpacks.

The idea would be that installing langpacks-core-none would be a way to actively ensure nothing was installed.
 
> May I know how this subpackage can be implemented in SPEC file? Just create
> an empty subpackage with no dependency? if yes, how can it help you? I want
> to know what scenario this -none subpackage be useful?

I think the -none package could conflict with every langpack to ensure they were all removed?

Comment 3 Akira TAGOH 2020-08-21 08:32:04 UTC
(In reply to Carlos O'Donell from comment #2)
> (In reply to Parag Nemade from comment #1)
> > I can understand how langpacks-core-all requiring all other langpacks-core-*
> > packages can help to test all the langpacks at once but I don't understand
> > langpacks-core-none subpackage usage.
> 
> How do you remove all the langpacks?

What's wrong with dnf remove langpacks*?

> Just removing langpacks-core-all will remove just that package but leave all
> the dependent installed langpacks.
> 
> The idea would be that installing langpacks-core-none would be a way to
> actively ensure nothing was installed.

But langpacks-core-none is still there.

> I think the -none package could conflict with every langpack to ensure they
> were all removed?

I'm very concerned on that idea. consumers for langpacks expects us to provide something to satisfy their requirements. that is required to get things work for them.  But if we provide langpacks-core-none, that breaks that assumption and that appears on users as a strange behavior. let's say, this is something a package which Provides libc.so* and Replace glibc package but no real shared library or so.

I would rather prefer, if langpacks-core-* contains any extra things, that would be something we need to consider and polish for minimizing more.

Or if there are any specific use case, please let us know.

Comment 4 Carlos O'Donell 2020-08-21 16:17:24 UTC
(In reply to Akira TAGOH from comment #3)
> (In reply to Carlos O'Donell from comment #2)
> > (In reply to Parag Nemade from comment #1)
> > > I can understand how langpacks-core-all requiring all other langpacks-core-*
> > > packages can help to test all the langpacks at once but I don't understand
> > > langpacks-core-none subpackage usage.
> > 
> > How do you remove all the langpacks?
> 
> What's wrong with dnf remove langpacks*?

It doesn't do what you want.

It will try to remove:
 langpacks-core-en
 langpacks-core-es
 langpacks-core-font-en
 langpacks-core-font-es
 langpacks-en
 langpacks-es

Which has the ripple effect of removing all of X because of the fonts.

So it tries to uninstall ~1300 packages.

> > Just removing langpacks-core-all will remove just that package but leave all
> > the dependent installed langpacks.
> > 
> > The idea would be that installing langpacks-core-none would be a way to
> > actively ensure nothing was installed.
> 
> But langpacks-core-none is still there.

Correct.
 
> > I think the -none package could conflict with every langpack to ensure they
> > were all removed?
> 
> I'm very concerned on that idea. consumers for langpacks expects us to
> provide something to satisfy their requirements. that is required to get
> things work for them.  But if we provide langpacks-core-none, that breaks
> that assumption and that appears on users as a strange behavior. let's say,
> this is something a package which Provides libc.so* and Replace glibc
> package but no real shared library or so.

The langpacks-core-none was simply a straw man proposition to start a discussion.

I'm happy if we have a way to remove all language packs. Do we have that today?
 
> I would rather prefer, if langpacks-core-* contains any extra things, that
> would be something we need to consider and polish for minimizing more.

Absolutely.
 
> Or if there are any specific use case, please let us know.

(1) Install all language packs easily.
(2) Uninstall all language packs easily.
(3) Allow a package to know "all languages" has been requested.
(4) Allow a package to know "no languages" has been requested.

In the case of (3) glibc can optimize this and instead of wasting space
can install a special package "glibc-all-langpacks" that provides an
optimized version of all the language packs.

In the case of (4) glibc can optimize this and remove "glibc-all-langpacks"
from the installed set of packages.

Does that clarify the use cases?

Comment 5 Carlos O'Donell 2020-08-21 16:20:25 UTC
Note that if a user specifies to install "some languages", then glibc would simply avoid doing any optimizations.

The glibc locale archive is > 200MiB and is benenficial only in the case that you want 60+ languages installed, or don't care about disk and want the fastest loaded locale speed possible.


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