Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[SOLVED] Can't enable gles2 use flag for cairo
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Desktop Environments
View previous topic :: View next topic  
Author Message
anichang
n00b
n00b


Joined: 19 Mar 2018
Posts: 32

PostPosted: Mon Mar 19, 2018 10:05 pm    Post subject: [SOLVED] Can't enable gles2 use flag for cairo Reply with quote

I'm trying to remove opengl from my system, in favor of gles2/egl. So I added "-opengl gles2 egl" to make.conf and tried a full update

Code:
emerge -uDN --keep-going --with-bdeps=y --backtrack=1000 @system @world


But still

Code:
[ebuild     U ] x11-libs/cairo-9999 [1.14.12] USE="X glib opengl* svg xcb (-aqua) -debug (-gles2) -static-libs -utils% -valgrind" ABI_X86="32 (64) (-x32)"


Here I tried to use cairo-9999, but the same happens with the installed 1.14.12. And the same if I try to emerge cairo only. Why is gles2 disabled? Why opengl is enabled despite my USE flags?

What can I do from here to debug the issue?

Thanks.


Last edited by anichang on Sat Mar 24, 2018 5:46 pm; edited 1 time in total
Back to top
View user's profile Send private message
Hu
Moderator
Moderator


Joined: 06 Mar 2007
Posts: 21607

PostPosted: Tue Mar 20, 2018 2:10 am    Post subject: Reply with quote

Most likely, gles2 is masked by your profile. As for why opengl is forced on, that requires more investigation. Was there any other output explaining it? Perhaps Portage requested that you reactivate it, and explained its request? Please post the output of emerge --info ; emerge --pretend --verbose x11-libs/cairo.
Back to top
View user's profile Send private message
anichang
n00b
n00b


Joined: 19 Mar 2018
Posts: 32

PostPosted: Tue Mar 20, 2018 3:05 am    Post subject: Reply with quote

Hu wrote:
Most likely, gles2 is masked by your profile. As for why opengl is forced on, that requires more investigation. Was there any other output explaining it? Perhaps Portage requested that you reactivate it, and explained its request? Please post the output of emerge --info ; emerge --pretend --verbose x11-libs/cairo.


There's no extra output. It's a fresh install, vanilla desktop profile (no gnome, no kde, no systemd), without any custom ebuild. I unmasked some ~amd64 tough.

Is it possible to reduce a bit the amount of information to post in order to enable you to help me? emerge --info makes my system naked :oops:

Thank you.
Back to top
View user's profile Send private message
Hu
Moderator
Moderator


Joined: 06 Mar 2007
Posts: 21607

PostPosted: Tue Mar 20, 2018 3:29 am    Post subject: Reply with quote

anichang wrote:
There's no extra output.
None at all? On my system, I get a header of
Code:

These are the packages that would be merged, in order:

Calculating dependencies... done!
and a footer of:
Code:

Total: 1 package (1 reinstall), Size of downloads: 0 KiB
Those are not, in themselves, useful here. However, I am a bit surprised Portage would override your USE choice and provide no indication at all. I can think of two major reasons why your choice would not be respected.
  • You have some other dependency which is causing Portage to choose USE=opengl. This should produce a message explaining that Portage recommends reactivating USE=opengl for that package, so as to satisfy that dependency.
  • You entered the choice incorrectly, so Portage is not actually aware you want USE=-opengl. Your emerge --info output could confirm that.
anichang wrote:
Is it possible to reduce a bit the amount of information to post in order to enable you to help me? emerge --info makes my system naked :oops:
Sure, you can leave out the parts we do not need. As soon as I see all of it, I can be sure which parts I didn't need. ;)
Back to top
View user's profile Send private message
anichang
n00b
n00b


Joined: 19 Mar 2018
Posts: 32

PostPosted: Tue Mar 20, 2018 11:46 am    Post subject: Reply with quote

Hu wrote:
anichang wrote:
There's no extra output.
None at all? On my system, I get a header of
Code:

These are the packages that would be merged, in order:

Calculating dependencies... done!
and a footer of:
Code:

Total: 1 package (1 reinstall), Size of downloads: 0 KiB
Those are not, in themselves, useful here.


I added "--quiet" to EMERGE_DEFAULT_OPTS. But I tried without --quiet, and no useful extra output anyway. Prompt to prompt output, I removed user@host only:

Code:

 ~ $ USE="-opengl gles gles1 gles2 egl" emerge --pretend --verbose x11-libs/cairo
[ebuild   R   ] x11-libs/cairo-9999  USE="X glib svg xcb (-aqua) -debug (-gles2) -opengl* -static-libs -utils -valgrind" ABI_X86="32 (64) (-x32)"
 ~ $


No extra output. However, yesterday I cleaned up a bit removing some packages and re-enabled opengl in make.conf, together with gles2 (and pinned out in single packages can't live with both), and by specify it inline it removes opengl but gles2 is still disabled.

What * and () means? I've searched and it is not clear whether it is 'forced' or 'disabled' or ... . I also have some yellow colored use flags with % postponed. What is it?

Hu wrote:
However, I am a bit surprised Portage would override your USE choice and provide no indication at all.


I'm not, there's must be a reason. That's what we are searching for :)

Hu wrote:
I can think of two major reasons why your choice would not be respected.
  • You have some other dependency which is causing Portage to choose USE=opengl. This should produce a message explaining that Portage recommends reactivating USE=opengl for that package, so as to satisfy that dependency.
  • You entered the choice incorrectly, so Portage is not actually aware you want USE=-opengl. Your emerge --info output could confirm that.


Well, the command line USE var overrides make.conf/profile, right? So, let's flag out the second option. There's must be some other dependency which forces gles2 out.

How can I check that? I couldn't find a command to limit the output of equery d cairo to installed packages only. The full list of existing packages depending on the compositor is ... HUGE. If I can't reduce that list to the installed packages only, I have no idea how to pinpoint the dependencies.

Hu wrote:
anichang wrote:
Is it possible to reduce a bit the amount of information to post in order to enable you to help me? emerge --info makes my system naked :oops:
Sure, you can leave out the parts we do not need. As soon as I see all of it, I can be sure which parts I didn't need. ;)


Eheheh... chicken-egg. That's pretty common when it comes to privacy.

Anyway, I'm a long time linux user. From 1999 to 2002 I've been a Gentoo user. Things changed a lot but I'm self confident that with your help I can get some internals I'm not aware of.
I prefer to learn how to debug those issues instead of just having a working system this time and come back here whining next time something isn't working.

Thanks for your patience.
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54220
Location: 56N 3W

PostPosted: Tue Mar 20, 2018 1:05 pm    Post subject: Reply with quote

anichang,

There is no personal information in
Code:
emerge --info
It tells about your system, not about you.
If there really is personal information, that's a bug.
What data items, not the values, do you not want to share?

The ( ) mean that the USE flag setting is forced by your profile.
(pie) is forced on, (-gles2) is forced off.
The * next to a USE flag indicates the the setting has been changed since the package was built and that the package must be rebuilt for the setting to take effect.

(-gles2) is forced off for a reason ... like its broken.

Like all things in Gentoo, you can change that if you really want to, its just extra steps.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
anichang
n00b
n00b


Joined: 19 Mar 2018
Posts: 32

PostPosted: Tue Mar 20, 2018 5:37 pm    Post subject: Reply with quote

NeddySeagoon wrote:
anichang,

There is no personal information in
Code:
emerge --info
It tells about your system, not about you.
If there really is personal information, that's a bug.
What data items, not the values, do you not want to share?


Sure: my health records are not myself, as well as my ATM card pin code is not myself. They just tell about my health and my bank account. Not about me. Moreover, I've no special health concerns, and I've nothing in my bank account. But still: I prefer to keep my health file and my pin code secrets. Just in the case one day I win the lottery.

I'd prefer to not start this discussion because it would shift the thread from useful stuff to general abstract overhead. In any case not here, please point out the proper forum for this issue and I'm happy to discuss with you (too) about this.

A few arguments to discuss about:

  • security-trough-obscurity is a pretty weak tool, but it helps, especially when combined with other policies. So, to not release the name of the host, the name (note: sometimes it is the real name) of the user (that is in the paths), and other information, is helpful. Other information I've spotted yesterday in emerge --info: kernel/compiler/libc (in this case not needed to disclose: I'm using a standard triplet and cairo is pretty far from it), overlays subscribed (ie: to know code sources makes easier to inject malicious code; and git is not a blockchain: any atom can be removed anytime, opening the way to any kind of abuse), misc environmental vars (ex: the desktop environment in use restrict the number of code sources that may be subscribed by that host). We can produce thousands of technological walls to protect our systems (ex: PaX, RBAC, ecc), but without these kind of behavioral precautions I'm talking about here, any technological tool is worth nothing (ie: it is too expensive without a reason); as a little shoulder surfing can make the whole system crumble.
  • to make difference between 'system' (or 'avatar' in other contexts) and the owner of the system, in regard of privacy, is bullshit. The same applies for the distinction of 'data' and 'metadata' (ex: 'America spied on its citizens!!!', Obama: 'No data recorded, metadata only'). I can prove it straight away posting my emerge --info, but I don't want to be identified trough it, so I can't prove it; that's why the discussion would grow way too much. But another helpful Facebook crap hit the headlines just a couple days ago: they sold profiles to a company in charge for D.Trump campaign, in order to identify preferred parties and manipulate consciences; I've no idea what's the deal over there, as the voting preference in US is public (ie: there's no really need to interpolate personal data to figure it out); here where I come from the vote is strictly secret, instead. In other words, many items in emerge --info can be used (as is, or interpolated with other data sources) to identify someone; using a computer (or any other complex tool) increases the attack surface. The proper way to share debugging info is to send a private email, encrypted end-to-end, to the person willing to help, only; hoping that s/he enact the so called 'best practices' in regard of his/her own tools. Someone long time ago tried to enforce this using gpg to make a w-o-t; but here in my place the law makes the w-o-t become an illegal 'secret society' (and in other places a tattoo or a patch on a jacket is forbidden as well).
  • jurisdictions make difference: my constitution grants me the right to secrecy, US Constitution instead, grants US citizens against government intrusions only. As a result: my employer can't spy on me, US private employers can spy their employees instead. And I've no idea what happens elsewhere (ex: UK has no Constitution but their common law evolved in time granting similar rights to its citizens). Is it really worth discussion without taking into consideration the jurisdiction (ie: mine and your) and the consciences it shaped?
  • this discussion is worth nothing now: since the DMCA (Digital Millennium Copyright Act) a whole new industry was born. Data mining, warehousing, ecc. In the '90s it was mostly impossible/illegal. Today there are millions of people that make their day spying, manipulating, and selling other people. And billions repeating the bullshit those are spitting around: "Your avatar is not you", "Your system is not you", "If you have nothing to hide, why you worried for?", and so on. John Oliver interview to Edward Snowden made a joke out of it already.

Those are 4 tracks, with incremental difficulty. Like the cuspids in the BTC difficulty curve. Good luck with it. Over.

NeddySeagoon wrote:
The ( ) mean that the USE flag setting is forced by your profile.
(pie) is forced on, (-gles2) is forced off.
The * next to a USE flag indicates the the setting has been changed since the package was built and that the package must be rebuilt for the setting to take effect.

(-gles2) is forced off for a reason ... like its broken.


Thanks! And what about the %?

I repeat: I'm sure there is a reason! What I don't know is how to figure this reason. The ebuild looks good; those are the occurrences of gles2 in it:

Code:

IUSE="X aqua debug gles2 +glib opengl static-libs +svg valgrind xcb"

gles2? ( >=media-libs/mesa-9.1.6[gles2,${MULTILIB_USEDEP}] )

gles2? ( !opengl )

ECONF_SOURCE="${S}" econf (...configure flags...) $(use_enable gles2 glesv2) (...more configure flags...)


What about the profile? What do I have to check?

NeddySeagoon wrote:
Like all things in Gentoo, you can change that if you really want to, its just extra steps.


Well, yesterday before posting I copied the ebuild in my localrepo but I realized soon that the ebuild had no problems. AFAIK. It must be something else.
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54220
Location: 56N 3W

PostPosted: Tue Mar 20, 2018 6:19 pm    Post subject: Reply with quote

anichang,

You are correct about not discussing privacy concerns here.
My sole interest is eliminating personally identifiable information from data regularly posted on the forums.

The % means the USE flag is new. It has not been used on the package before.
It may or may not affect the installed code.

Gentoo profiles are set and changed by Gentoo developers. You get updates with
Code:
emerge --sync

The files go in /usr/portage/profiles.
You choose a profile with
Code:
eselect profile


Gentoo profiles provide default USE settings and can force USE flags on or off too.
These things can be done globally (across the entire install) or per package.
Your (-gles2) comes from your profile, not the ebuid.

Do not edit your profile because emerge --sync will revert your change.

Just like you fine tune USE settings globally in make.conf or per package in /etc/portage/package.use/ you can fine tune your profile too. Read
Code:
man portage


You need /etc/portage/profile/package.use.mask or /etc/portage/profile/use.mask
The former inverts a use mask set at a higher level on a per package basis
The latter inverts a use mask set at a higher level system wide.
Code:
x11-libs/cairo -gles2
in /etc/portage/profile/package.use.mask will remove the forcing for all versions of x11-libs/cairo. Then you can set it in the normal way. The -ve inverts the inherited setting.

Do read the comments in your profile about why the gles2 USE flag was forced off.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
anichang
n00b
n00b


Joined: 19 Mar 2018
Posts: 32

PostPosted: Wed Mar 21, 2018 2:58 pm    Post subject: Reply with quote

NeddySeagoon wrote:
anichang,

You are correct about not discussing privacy concerns here.
My sole interest is eliminating personally identifiable information from data regularly posted on the forums.


Well, I appreciate there is someone privacy sensitive on this forum. Just tell me if I can do something to help you.

That said, I don't think the problem is the forum itself; in other words I don't think you can do something about it. Also because the only think you can do is to delete content; and this very often (more than what inexperienced admins can think) results into undesirable effects (ex: censorship). To make you an example: I could be willing to write here, now, my name and surname, nationality and home address; 100% aware that by doing so, everything I might have written on this forum in the past years could be easily associated to a real name, by any forum user AND any automated spider. You might look at this stupid thing from me and think that it could be better for myself to remove my name and surname from the forum, because you don't know if I'm fully aware of consequences of my stupid act. Is it ethically correct from you to censor my full disclosure? Even if I really want to? Even if that is not a problem for the quality of operations on this forum? Or you are stepping into, and denying, someone else's will? I mean: I might be really willing to fully disclose my own business. It's the information side dilemma similar to euthanasia or suicide in other contexts. No simple answers here.

But let's give up theory and go back to our stuff.

We need to post emerge --info here for debugging purposes. As well as a telecom company needs to keep some metadata for debugging, accounting and wiretapping purposes; no other good reasons: technologically there's no need of any central authority, because given reactive routing protocols and some very efficient hybrids (ex: OLSR), there's no need of any point coordination function for any information to be routed. Napster told us, BTC stoned who doesn't believe it yet. Even UN has found 5 minutes for privacy concerns in late 2015!!!

So the only possible help you can give us is to ask some developers to permanently include this issue in their design rules. In this case, portage developers. There's the need of:

  • to hide host/username from emerge output.
  • to hide kernel/gcc/libc versions, and add a flag to add those info on request (ex: for debugging kernel/gcc/libc issues and alike).
  • to hide source repos, their timestamps, and so on; and add a flag to disclose those on request by user.


More info might be hidden as well. This is just a quick preliminary look at the issue.

NeddySeagoon wrote:

The % means the USE flag is new. It has not been used on the package before.
...
Your (-gles2) comes from your profile, not the ebuid.
...
Read
Code:
man portage

...
You need /etc/portage/profile/package.use.mask or /etc/portage/profile/use.mask
...
Do read the comments in your profile about why the gles2 USE flag was forced off.


Thanks a lot. That's the info I was searching for. I'm on my way to figure out this thing. I'll report and mark SOLVED as soon as I get something good.
Back to top
View user's profile Send private message
Hu
Moderator
Moderator


Joined: 06 Mar 2007
Posts: 21607

PostPosted: Thu Mar 22, 2018 2:05 am    Post subject: Reply with quote

anichang wrote:
Code:
 ~ $ USE="-opengl gles gles1 gles2 egl" emerge --pretend --verbose x11-libs/cairo
[ebuild   R   ] x11-libs/cairo-9999  USE="X glib svg xcb (-aqua) -debug (-gles2) -opengl* -static-libs -utils -valgrind" ABI_X86="32 (64) (-x32)"
 ~ $
That is fairly informative. That shows that when you set your USE flag on the command line, it works. Therefore, Portage is ignoring your file-based configuration setting because you expressed it incorrectly, not because it conflicts with some other requirement.
anichang wrote:
Well, the command line USE var overrides make.conf/profile, right? So, let's flag out the second option. There's must be some other dependency which forces gles2 out.
Yes, USE on the command-line supersedes USE in other sources. However, I was looking at the unwanted opengl in the emerge output, not the masking of gles2. The mask is easily explained by your profile. The unwanted opengl is not, and is contrary to how you said you had configured the system.
anichang wrote:
A few arguments to discuss about: ...
I posted my prior remark because I did not see the point of picking through emerge --info trying to guess in advance which fields I would need and could get you to share. If you don't want to share full emerge --info, then redact whatever you think is too sensitive. If you redact too much, we'll either ask you to share more or fail to help you.
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54220
Location: 56N 3W

PostPosted: Thu Mar 22, 2018 10:33 am    Post subject: Reply with quote

anichang,

USE on the command line does not override your profile.
Its the last ditch setting and unsetting of permitted USE flags.

Poking about in
Code:
$ grep -R gles2 /usr/portage/profiles/
/usr/portage/profiles/base/package.use.mask:x11-libs/cairo gles2

That shows gles2 is masked for everyone on all versions of cairo.

Looking at why
Code:
grep -R gles2 -B3 /usr/portage/profiles/base
/usr/portage/profiles/base/package.use.mask-
/usr/portage/profiles/base/package.use.mask-# Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org> (13 Jul 2013)
/usr/portage/profiles/base/package.use.mask-# GL/GLES support in cairo is mutually exclusive, bug #428770.
/usr/portage/profiles/base/package.use.mask:x11-libs/cairo gles2


To enable gles2 on cario, you need the correct entry in /etc/portage/... as I explained above.
The you must set -opengl on x11-libs/cairo
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
anichang
n00b
n00b


Joined: 19 Mar 2018
Posts: 32

PostPosted: Fri Mar 23, 2018 10:22 pm    Post subject: Reply with quote

Hu wrote:

anichang wrote:

Code:
 ~ $ USE="-opengl gles gles1 gles2 egl" emerge --pretend --verbose x11-libs/cairo
[ebuild   R   ] x11-libs/cairo-9999  USE="X glib svg xcb (-aqua) -debug (-gles2) -opengl* -static-libs -utils -valgrind" ABI_X86="32 (64) (-x32)"
 ~ $


That is fairly informative. That shows that when you set your USE flag on the command line, it works. Therefore, Portage is ignoring your file-based configuration setting because you expressed it incorrectly, not because it conflicts with some other requirement.


It's not (informative). And my file-based configuration is not expressed incorrectly. No matter what I set on the command line: gles2 is always forced out.

Code:

$ USE="opengl -gles -gles1 -gles2 -egl" emerge --pretend --verbose x11-libs/cairo
[ebuild   R   ] x11-libs/cairo-9999  USE="X glib opengl svg xcb (-aqua) -debug (-gles2) -static-libs -utils -valgrind" ABI_X86="32 (64) (-x32)"
$


Probably by profile, as NeddySeagoon said.

Code:

  [12]  default/linux/amd64/17.0 (stable) *


He probably nailed it; but I didn't have time to go back to this issue yet.

Hu wrote:
The mask is easily explained by your profile. The unwanted opengl is not, and is contrary to how you said you had configured the system.


You probably missed this line in my previous message: "However, yesterday I cleaned up a bit removing some packages and re-enabled opengl in make.conf, together with gles2 (and pinned out in single packages can't live with both), and by specify it inline it removes opengl but gles2 is still disabled."

Anyway, never mind. We got closer to the reason already, thanks to NeddySeagoon. I'll post something as soon as I go back studying this thing.

Hu wrote:
anichang wrote:
A few arguments to discuss about: ...
I posted my prior remark because I did not see the point of picking through emerge --info trying to guess in advance which fields I would need and could get you to share. If you don't want to share full emerge --info, then redact whatever you think is too sensitive. If you redact too much, we'll either ask you to share more or fail to help you.


Your perspective is clear and I approve: the one in need of help is me, so I should favor your effort to help me, instead of making it more complicate for you. Actually, I apologize for making it too complicate, and I thank you again for the time you've spent. But the current emerge command is what we have ... we can modify it or live with it.

I understand the need of emerge --info, that's why I've spent some time figuring out how to make it satisfy my needs as well. I'm one of those weird guys with tin-foil hats, worried of NSA keeping my dick-pics (see John Oliver's show I linked before) on some memory somewhere in the cloud.
At the moment I don't have a complete running system so I'm spending time on building one. But as soon as I finished here, I'll try to made the patch myself and deliver to someone that (hopefully) is willing to make it mainstream.
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54220
Location: 56N 3W

PostPosted: Fri Mar 23, 2018 10:48 pm    Post subject: Reply with quote

anichang,

On my system
Code:
$ emerge -pv x11-libs/cairo

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R    ] x11-libs/cairo-1.14.12::gentoo  USE="X glib opengl svg (-aqua) -debug (-gles2) -static-libs -valgrind -xcb" 0 KiB


Now put the right incantation into /etc/portage/profile/package.use.mask/cairo

Code:
# emerge -pv x11-libs/cairo

These are the packages that would be merged, in order:

Calculating dependencies /

!!! Problem resolving dependencies for x11-libs/cairo
... done!

!!! The ebuild selected to satisfy "x11-libs/cairo" has unmet requirements.
- x11-libs/cairo-1.14.12::gentoo USE="X gles2 glib opengl svg (-aqua) -debug -static-libs -valgrind -xcb"

  The following REQUIRED_USE flag constraints are unsatisfied:
    gles2? ( !opengl )


gles2 can be selected and it looks like I have it set on somewhere.

Determining the right incantation for /etc/portage/profile/package.use.mask/cairo iss left as an exercise for the reader.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
anichang
n00b
n00b


Joined: 19 Mar 2018
Posts: 32

PostPosted: Fri Mar 23, 2018 11:22 pm    Post subject: Reply with quote

NeddySeagoon wrote:
anichang,

USE on the command line does not override your profile.
Its the last ditch setting and unsetting of permitted USE flags.

Poking about in
Code:
$ grep -R gles2 /usr/portage/profiles/
/usr/portage/profiles/base/package.use.mask:x11-libs/cairo gles2

That shows gles2 is masked for everyone on all versions of cairo.


My output is different

Code:

$ grep -R gles2 /usr/portage/profiles/ | grep cairo
/usr/portage/profiles/arch/arm64/package.use.stable.mask:x11-libs/cairo gles2 opengl
/usr/portage/profiles/base/package.use.mask:x11-libs/cairo gles2
/usr/portage/profiles/use.local.desc:dev-libs/weston:gles2 - Use GLESv2 cairo instead of full GL
/usr/portage/profiles/use.local.desc:x11-libs/cairo:gles2 - Build the OpenGL ES 2 backend
$


It looks like the second row is forcing gles2 off even without opengl. Am I correct? And that shouldn't be the case, as bug #428770 state they must be mutually exclusive, not gles2 always off.

NeddySeagoon wrote:

Looking at why
Code:
grep -R gles2 -B3 /usr/portage/profiles/base
/usr/portage/profiles/base/package.use.mask-
/usr/portage/profiles/base/package.use.mask-# Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org> (13 Jul 2013)
/usr/portage/profiles/base/package.use.mask-# GL/GLES support in cairo is mutually exclusive, bug #428770.
/usr/portage/profiles/base/package.use.mask:x11-libs/cairo gles2



Bug #428770 is a bit old (=x11-libs/cairo-1.12.2-r*). Maybe current cairo doesn't have that issue anymore.

NeddySeagoon wrote:
To enable gles2 on cario, you need the correct entry in /etc/portage/... as I explained above.
The you must set -opengl on x11-libs/cairo


I added

Code:

x11-libs/cairo -gles2


to /etc/portage/profile/package.use.mask and now gles2 is unmasked. I'm currently rebuilding net-libs/webkit-gtk with gles2 instead of opengl, because cairo needs to have the same gl of webkit-gtk, then I'll try to build cairo as well.
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54220
Location: 56N 3W

PostPosted: Fri Mar 23, 2018 11:34 pm    Post subject: Reply with quote

anichang,

Code:
/usr/portage/profiles/arch/arm64/package.use.stable.mask:x11-libs/cairo gles2 opengl

forces both gles2 opengl off on stable arm64 systems. The file does not apply to ~arm64 or any other arch.
Code:
/usr/portage/profiles/base/package.use.mask:x11-libs/cairo gles2

forces gles2 off on cairo for everyone

I guessed you weren't running arm64, so that first entry would not apply to you
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
anichang
n00b
n00b


Joined: 19 Mar 2018
Posts: 32

PostPosted: Sat Mar 24, 2018 2:04 am    Post subject: Reply with quote

Here I am now:

Code:

user@host ~ $ sudo USE="-opengl gles2" emerge webkit-gtk
[ebuild   R   ] net-libs/webkit-gtk-2.18.6  USE="X egl geolocation gles2 gstreamer introspection jit wayland webgl (-aqua) -coverage -doc -gnome-keyring -libnotify -nsplugin -opengl -spell {-test}"

Would you like to merge these packages? [Yes/No] n

Quitting.

user@host ~ $ sudo USE="-opengl gles2" emerge =cairo-9999
[ebuild   R   ] x11-libs/cairo-9999  USE="X gles2* glib svg xcb (-aqua) -debug -opengl* -static-libs -utils -valgrind" ABI_X86="32 (64) (-x32)"

!!! Multiple package instances within a single package slot have been pulled
!!! into the dependency graph, resulting in a slot conflict:

x11-libs/cairo:0

  (x11-libs/cairo-9999:0/0::gentoo, ebuild scheduled for merge) pulled in by
    =x11-libs/cairo-9999 (Argument)

  (x11-libs/cairo-9999:0/0::gentoo, installed) pulled in by
    x11-libs/cairo[opengl] required by (net-libs/webkit-gtk-2.18.6:4/37::gentoo, installed)
                   ^^^^^^


user@host ~ $
Back to top
View user's profile Send private message
Ant P.
Watchman
Watchman


Joined: 18 Apr 2009
Posts: 6920

PostPosted: Sat Mar 24, 2018 6:43 am    Post subject: Reply with quote

It follows that since you're ripping out standard desktop GL from cairo, you need to do the same for all packages that depend on it. That means removing webgl support from webkit-gtk.
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54220
Location: 56N 3W

PostPosted: Sat Mar 24, 2018 9:58 am    Post subject: Reply with quote

anichang,

The desktop world uses opengl rather than gles/gles2.
It would be useful to know what you want to achieve.

Portage has found a block and stopped. Once you fix net-libs/webkit-gtk, there will probably be other things that you need to fix.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
Hu
Moderator
Moderator


Joined: 06 Mar 2007
Posts: 21607

PostPosted: Sat Mar 24, 2018 3:55 pm    Post subject: Reply with quote

anichang wrote:
It's not (informative). And my file-based configuration is not expressed incorrectly. No matter what I set on the command line: gles2 is always forced out.
I understood exactly why gles2 was ignored for you, and NeddySeagoon was already helping you with that. I had nothing useful I could contribute to your gles2 problem, but I wanted to help with your opengl problem. I did not see from your output why opengl should be set as it was, since that contradicted what you said you had done to the files. I focused solely on getting opengl set as you wished it.
Back to top
View user's profile Send private message
anichang
n00b
n00b


Joined: 19 Mar 2018
Posts: 32

PostPosted: Sat Mar 24, 2018 5:42 pm    Post subject: Reply with quote

Ant P. wrote:
It follows that since you're ripping out standard desktop GL from cairo, you need to do the same for all packages that depend on it. That means removing webgl support from webkit-gtk.


Yep. That's why I rebuilt webkit-gtk first, then tried cairo[gles2]. But it is complaining about webkit-gtk calling for cairo[opengl]. And It shouldn't.

Following Neddy's advice, I checked out the profile masking of gles2; it was pointing out bug #428770 where devs figured out that opengl and gles2 are mutually exclusive. That bug has been recently modified to add a 'see also #643726' note. In #643726 they supposed webkit-gtk and cairo should agree about the having the same 3D lib. I give it a go now (ie: try to force gles2 for webkit-gtk as well, and see if they both build).

NeddySeagoon wrote:

I guessed you weren't running arm64, so that first entry would not apply to you


EDIT: mistake!!! (I'm running arm64 (stable profile), but I enabled some ~arm64 ebuilds.)

I'm running amd64 (stable profile), but I enabled some ~amd64 ebuilds.

NeddySeagoon wrote:

The desktop world uses opengl rather than gles/gles2.
It would be useful to know what you want to achieve.


I've no clear target in mind. I started to purse wayland, by doing what I then figured out to be the most stupid thing to do: enable global gles2 use flag. I've already tried 3-4 years ago without success. The only thing I've been able to run on wayland is weston with its basic test apps; not a full fledged desktop (gnome, kde, enlightenment). And this piss me off. I'd really like to get rid of X11.
Then I stepped back, re-enabling opengl, rebuilding everything to be sure that I didn't leave debris behind (broken shared libs); and tried again pinning gles2 where needed. And here I am.
I'm also appreciating learning a bit more about portage, and I'll have to do the same soon for ARM. So exploring it on a 8 cores desktop is faster.

Hu wrote:

I wanted to help with your opengl problem.


Thanks Hu for helping me, but ... I've no opengl problem! Opengl is currently working good: kde, gnome, enlightenment, videogames, blender, kicad 3d features, are all running flawless. I'm actually trying to switch the entire system to gles2; I need to eradicate opengl!

Edit: BTW, I probably should mark this thread solved and open a new one. Because we figured out about cairo[gles2] as in title.


Last edited by anichang on Sat Mar 24, 2018 6:39 pm; edited 1 time in total
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54220
Location: 56N 3W

PostPosted: Sat Mar 24, 2018 5:55 pm    Post subject: Reply with quote

anichang,

There are no stable arm64 profiles. The arm64 stable keyword only exists so that Gentoo can generate stage3 tarballs for arm64
You may as well go all ~arm64.

Please explain your build system.

There is an arm64 BINHOST Do read the readme there.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.


Last edited by NeddySeagoon on Sat Mar 24, 2018 5:57 pm; edited 2 times in total
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54220
Location: 56N 3W

PostPosted: Sat Mar 24, 2018 5:56 pm    Post subject: Reply with quote

Moved from Desktop Environments to Gentoo on ARM.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
anichang
n00b
n00b


Joined: 19 Mar 2018
Posts: 32

PostPosted: Sat Mar 24, 2018 6:37 pm    Post subject: Reply with quote

NeddySeagoon wrote:
Moved from Desktop Environments to Gentoo on ARM.


I apologize, I'm not running arm64!!! I'm running amd64!!!! At the time of writing I had just wake up...
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54220
Location: 56N 3W

PostPosted: Sat Mar 24, 2018 8:12 pm    Post subject: Reply with quote

Moved from Gentoo on ARM to Desktop Environments.

and back again ...

No harm done.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Desktop Environments All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum