Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 831910 - app-office/libreoffice-7.1.7.2: base USE flag not taken into account?
Summary: app-office/libreoffice-7.1.7.2: base USE flag not taken into account?
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Office Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-01-23 18:47 UTC by segmentation fault
Modified: 2022-02-08 23:37 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description segmentation fault 2022-01-23 18:47:52 UTC
It seems that the base USE flag is not being taken into account during compilation, and is not listed in equery either...

Reproducible: Always

Steps to Reproduce:
1.equery uses libreoffice
2.No "base" USE flag appears in the list
3.emerge -1av app-office/libreoffice

Actual Results:  
After emerge completes (without errors), it prints:

 * Messages for package app-office/libreoffice-7.1.7.2:

 * If you plan to use Base application you must enable USE base.

But adding 'base' to the use flags of app-office/libreoffice in package.use does not seem to have any effect:

In the ebuild, it says:

REQUIRED_USE="${PYTHON_REQUIRED_USE}
    base? ( firebird java )
...

so actually it should add dev-db/firebird to the list of software to install (dev-db/firebird is not installed here) - but it does not.

Besides, it seems as though 'base' does not exist:

equery uses libreoffice

does not list it!

Expected Results:  
equery uses libreoffice

should list "base" as a USE flag for app-office/libreoffice and the addition of this flag should have as a consequence that firebird is installed too.

It should also work as advertised, i.e. include "base" functionality into libreoffice.

This seems related to

https://forums.gentoo.org/viewtopic-p-8689094.html

Looks like an ebuild bug to me...Other than that, app-office/libreoffice-7.1.7.2 is merged fine, so I refrain from further info first...
Comment 1 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2022-01-23 18:55:14 UTC
It has to exist or CI would fail. equery is not to be relied on for such matters.

It is, however, masked:
```
$ grep -rsin "libreoffice.* base" profiles/
profiles/arch/amd64/package.use.stable.mask:37:app-office/libreoffice base
profiles/arch/x86/package.use.mask:57:>=app-office/libreoffice-7 base java
profiles/arch/x86/package.use.stable.mask:44:app-office/libreoffice base
```

You can try: `emerge -pvO libreoffice` to see the status of all flags. I expect to see '(-base)' to show it is masked (and therefore off).
Comment 2 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2022-01-23 18:55:29 UTC
(emege --info would be helpful here too)
Comment 3 segmentation fault 2022-01-24 13:13:36 UTC
(In reply to Sam James from comment #1)

> You can try: `emerge -pvO libreoffice` to see the status of all flags. I
> expect to see '(-base)' to show it is masked (and therefore off).

Indeed it shows (-base). But then, there is no point in echoing that message at the end:

If you plan to use Base application you must enable USE base.

It just makes us run extra rounds for nothing. I have some old (25 years!) StarBase data somewhere (from StarOffice 5.2!), data that I had meticulously entered, only to lose them in the process of upgrading because StarBase support was dropped, then I think I read somewhere that StarBase support was re-enabled  - and I thought maybe I could read them today with "Base"... :-)

As far as the output of "emerge --info" is concerned, I thought it would be rather counter-productive, as I am in the middle of upgrade hell - after successfully finishing (did you see how? ;-)) https://bugs.gentoo.org/831325.

But FWIW here it is, slightly redacted:

Some info:

Portage 3.0.28 (python 3.8.12-final-0, default/linux/amd64/17.1/hardened, gcc-11.2.0, glibc-2.30-r8, 5.4.168-gentoo x86_64)
=================================================================
System uname: Linux-5.4.168-gentoo-x86_64-Intel-R-_Core-TM-_i7-6700HQ_CPU_@_2.60GHz-with-glibc2.2.5
Timestamp of repository gentoo: Sat, 22 Jan 2022 00:45:01 +0000

sh bash 5.1_p8
ld GNU ld (Gentoo 2.37_p1 p0) 2.37
app-misc/pax-utils:        1.2.5
app-shells/bash:           5.1_p8
dev-java/java-config:      2.2.0-r4
dev-lang/perl:             5.30.1
dev-lang/python:           2.7.18_p13, 3.6.10-r2, 3.7.7-r2, 3.8.12_p1-r1, 3.9.9-r1
dev-lang/rust:             1.41.1
dev-lang/rust-bin:         1.41.1
dev-util/cmake:            3.21.4
dev-util/meson:            0.60.3
sys-apps/baselayout:       2.7-r3
sys-apps/openrc:           0.42.1
sys-apps/sandbox:          2.25
sys-devel/autoconf:        2.13-r1, 2.69-r4
sys-devel/automake:        1.11.6-r3, 1.12.6, 1.13.4-r2, 1.14.1, 1.15.1-r2, 1.16.4
sys-devel/binutils:        2.33.1-r1, 2.37_p1 
sys-devel/binutils-config: 5.4
sys-devel/clang:           7.0.0, 8.0.1, 9.0.1, 10.0.0
sys-devel/gcc:             7.5.0, 8.3.0-r1, 8.4.0, 9.3.0, 11.2.0
sys-devel/gcc-config:      2.5-r1 
sys-devel/libtool:         2.4.6-r6
sys-devel/lld:             10.0.0
sys-devel/llvm:            7.0.0-r1, 8.0.1, 9.0.1, 10.0.0
sys-devel/make:            4.3
sys-kernel/linux-headers:  5.4-r1 (virtual/os-headers)
sys-libs/glibc:            2.30-r8
Comment 4 Andreas Sturmlechner gentoo-dev 2022-01-24 13:33:23 UTC
(In reply to segmentation fault from comment #3)
> Indeed it shows (-base). But then, there is no point in echoing that message
> at the end:
> 
> If you plan to use Base application you must enable USE base.
There is, because that gives a stable user the chance to unmask the flag, of otherwise informs them that Base is essentially broken.

(In reply to segmentation fault from comment #3)
> It just makes us run extra rounds for nothing.
No, not checking your portage output does. You do that using --ask.
Comment 5 segmentation fault 2022-01-24 18:00:48 UTC
(In reply to Andreas Sturmlechner from comment #4)
> (In reply to segmentation fault from comment #3)
> > Indeed it shows (-base). But then, there is no point in echoing that message
> > at the end:
> > 
> > If you plan to use Base application you must enable USE base.
> There is, because that gives a stable user the chance to unmask the flag, of
> otherwise informs them that Base is essentially broken.
> 
> (In reply to segmentation fault from comment #3)
> > It just makes us run extra rounds for nothing.
> No, not checking your portage output does. You do that using --ask.

May I suggest a somewhat user-friendlier way to do it:

After the message 

"If you plan to do X you must enable USE flag Y."

the ebuild, maybe through some standard eclass, could check the "status" of flag Y on user's system and print something like:

flag Y is masked on your system - maybe through your profile or some setting of yours. Before you enable it in your package.use, you should unmask it. See (man page/web page or both) for details on how to do this.

You could do this for every flag that you suggest the user might wish to "enable". In the ebuild you would use a function, say, print_flag_status_message(Y) after echoing a Y-specific message - and would be done about it.

Sure, the user could become an expert in reading portage's "USE flag language" (I *always* use -a (--ask), but still struggle with th einterpretation of its output, as you see...) - but even if he should, you educate your users this way. And I don't think the changes in some eclass to facilitate this would be that dramatic.

Even better, now that I think about it, would be specific information as to why and where it is masked/enabled/disabled/red/yellow/green/whatever: some extra option to emerge could make it print a detailed "legend", e.g.:

(-base): Disabled in the ebuild, enabled in package.use, masked by profile in ...

[my explanation is probably wrong, but you get the idea]

Just a suggestion to think about.

Thank you
Comment 6 Andreas Sturmlechner gentoo-dev 2022-01-24 20:18:15 UTC
No, that's backwards. Portage is facilitating ebuilds and metadata to gain information about use flags, which the user is able to query and gain knowledge about; it is not ebuilds facilitating portage to hand-hold the user. Yes, it is important to know how Portage works and what profiles are and how to deal with USE flags.

The message can be amended with some more hints, but no sort of backwards magic is going to happen from the ebuild.
Comment 7 segmentation fault 2022-01-25 11:53:38 UTC
O.K. Thanks anyway. Feel free to close it.