Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

media-libs/mesa: introduce X flag / enable wayland-only systems #12333

Closed
wants to merge 2 commits into from

Conversation

trilean
Copy link
Contributor

@trilean trilean commented Jun 26, 2019

See https://bugs.gentoo.org/560096. This is a continuation of #4374.

This PR introduces an X use-flag for Mesa. This makes it possible to build Mesa without GLX and therefore without XLib & friends. To make existing packages not break I've seded the entire tree and replaced most dependencies on media-libs/mesa with media-libs/mesa[X(+)]. Exceptions are:

  • no change if ebuild depends on virtual/opengl
  • obvious packages (such as weston) didn't get the mesa[X] dependency

Obvious

  • dev-cpp/waylandpp
  • dev-games/ogre (only for USE=opengl)
  • dev-libs/efl (only for USE="opengl X")
  • dev-libs/weston
  • dev-qt/qtgui (only for USE="xcb")
  • dev-qt/qtwayland
  • gui-libs/wlroots
  • kde-frameworks/kwayland
  • x11-libs/libva-intel-driver (depends on mesa[X] via x11-libs/libva[X] -> virtual/opengl)

DONE

  • dev-qt/qtgui
  • media-libs/libepoxy
  • x11-libs/cairo
  • x11-libs/gtk+

TODO

  • sci-electronics/kicad (uses wxGTK, I'll test this myself)
  • sys-apps/kmscon (added COMMON_DEPEND="media-libs/mesa[X(+)]" as stop-gap)
  • x11-terms/kitty (gles headers are #include'd)
  • media-plugins/gst-plugins-vaapi (does if use opengl || use gles2 in src_configure)
  • media-tv/kodi (it should be easy to make GLX optional but I have no way of testing it)

@gentoo-bot
Copy link

Copyright policy change

Please note that on 2018-09-15 Trustees have approved new Gentoo copyright policy. All contributions made to Gentoo need to follow this policy. If you include the Signed-off-by line in your commit message, you indicate that you have read the policy and agree to its terms. For more detailed explanation, please see the new Gentoo copyright policy explained article.

Pull Request assignment

Submitter: @trilean
Areas affected: ebuilds
Packages affected: app-emulation/gallium-nine-standalone, dev-libs/beignet, dev-qt/qtwebengine, dev-util/android-studio, dev-util/apitrace...

@gentoo/github: Too many disjoint maintainers, disabling auto-assignment.

Linked bugs

Bugs linked: 560096


In order to force reassignment and/or bug reference scan, please append [please reassign] to the pull request title.

Docs: Code of ConductCopyright policy (expl.) ● DevmanualGitHub PRsProxy-maint guide

@gentoo-bot gentoo-bot added need assignment It was impossible to assign the PR correctly. Please assign it manually. bug linked Bug/Closes found in footer, and cross-linked with the PR. labels Jun 26, 2019
@gentoo-repo-qa-bot
Copy link
Collaborator

Pull request CI report

Report generated at: 2019-06-26 20:50 UTC
Newest commit scanned: 680c15e
Status: ❌ broken

There are too many broken packages to determine whether the breakages were added by the pull request. If in doubt, please rebase.

Issues:https://qa-reports.gentoo.org/output/gentoo-ci/212aa08/output.html#app-accessibility/sphinxbase
https://qa-reports.gentoo.org/output/gentoo-ci/212aa08/output.html#dev-lang/R
https://qa-reports.gentoo.org/output/gentoo-ci/212aa08/output.html#dev-libs/liblinear
https://qa-reports.gentoo.org/output/gentoo-ci/212aa08/output.html#dev-libs/starpu
https://qa-reports.gentoo.org/output/gentoo-ci/212aa08/output.html#dev-python/numpy
https://qa-reports.gentoo.org/output/gentoo-ci/212aa08/output.html#media-gfx/hugin
https://qa-reports.gentoo.org/output/gentoo-ci/212aa08/output.html#media-libs/opencv
https://qa-reports.gentoo.org/output/gentoo-ci/212aa08/output.html#sci-biology/plink
https://qa-reports.gentoo.org/output/gentoo-ci/212aa08/output.html#sci-chemistry/apbs
https://qa-reports.gentoo.org/output/gentoo-ci/212aa08/output.html#sci-chemistry/gromacs
https://qa-reports.gentoo.org/output/gentoo-ci/212aa08/output.html#sci-chemistry/psi
https://qa-reports.gentoo.org/output/gentoo-ci/212aa08/output.html#sci-libs/armadillo
https://qa-reports.gentoo.org/output/gentoo-ci/212aa08/output.html#sci-libs/arpack
https://qa-reports.gentoo.org/output/gentoo-ci/212aa08/output.html#sci-libs/cblas-reference
https://qa-reports.gentoo.org/output/gentoo-ci/212aa08/output.html#sci-libs/ceres-solver
https://qa-reports.gentoo.org/output/gentoo-ci/212aa08/output.html#sci-libs/cgcode
https://qa-reports.gentoo.org/output/gentoo-ci/212aa08/output.html#sci-libs/cholmod
https://qa-reports.gentoo.org/output/gentoo-ci/212aa08/output.html#sci-libs/clapack
https://qa-reports.gentoo.org/output/gentoo-ci/212aa08/output.html#sci-libs/gsl
https://qa-reports.gentoo.org/output/gentoo-ci/212aa08/output.html#sci-libs/itpp
https://qa-reports.gentoo.org/output/gentoo-ci/212aa08/output.html#sci-libs/lapack-reference
https://qa-reports.gentoo.org/output/gentoo-ci/212aa08/output.html#sci-libs/mc
https://qa-reports.gentoo.org/output/gentoo-ci/212aa08/output.html#sci-libs/pastix
https://qa-reports.gentoo.org/output/gentoo-ci/212aa08/output.html#sci-libs/punc
https://qa-reports.gentoo.org/output/gentoo-ci/212aa08/output.html#sci-libs/qrupdate
https://qa-reports.gentoo.org/output/gentoo-ci/212aa08/output.html#sci-libs/scipy
https://qa-reports.gentoo.org/output/gentoo-ci/212aa08/output.html#sci-libs/superlu
https://qa-reports.gentoo.org/output/gentoo-ci/212aa08/output.html#sci-libs/umfpack
https://qa-reports.gentoo.org/output/gentoo-ci/212aa08/output.html#sci-mathematics/jags
https://qa-reports.gentoo.org/output/gentoo-ci/212aa08/output.html#sci-mathematics/octave
https://qa-reports.gentoo.org/output/gentoo-ci/212aa08/output.html#sci-physics/cernlib
https://qa-reports.gentoo.org/output/gentoo-ci/212aa08/output.html#sci-physics/lammps

@Arfrever
Copy link
Contributor

One pull request per package, or at least one pull request per group of packages with the same maintainer, would have been better.

@SoapGentoo
Copy link
Member

Why the default (+)?

@trilean
Copy link
Contributor Author

trilean commented Jun 27, 2019

Why the default (+)?

https://bugs.gentoo.org/560096#c22:

Aside: make the dependency media-libs/mesa[X(+)] so that versions of Mesa that don't have the X flag will be accepted. The (+) means that if IUSE doesn't contain X then assume its functionality is present.

What do we do about the QA issues? They're not related to my PR but existing issues in the tree.

@mgorny
Copy link
Member

mgorny commented Jun 27, 2019 via email

@trilean
Copy link
Contributor Author

trilean commented Jun 27, 2019

They are fixed now, so please rebase.

Rebase and force-push over the existing PR? I'll do that in the evening (UTC+2).

@trilean trilean force-pushed the mesa-optional-x11 branch 3 times, most recently from 7bffc7b to 2f0e0ae Compare July 4, 2019 12:24
@trilean
Copy link
Contributor Author

trilean commented Jul 4, 2019

I've rebased the PR again, fixing a new conflict.

@trilean
Copy link
Contributor Author

trilean commented Jul 13, 2019

And another rebase...can we move this forward?

@mattst88
Copy link
Contributor

Sorry, I don't know how this fell off my radar. I've committed the first two patches (and modified the second to only modify mesa-9999 since there's so much potential for breakage).

I'm concerned about the 3rd patch. I see lots of packages left that look like they should be modified. media-libs/waffle for instance has a USE=X flag. Don't you think it should depend on mesa[X(+)?]?

@trilean
Copy link
Contributor Author

trilean commented Jul 29, 2019

My reasoning was that it's better to make everything that depends on mesa now require the X flag and sort out those that don't later. That way we don't cause any breakage because there's no change from the status quo.

IMO users will try to build wayland-only systems and will report packages that needlessly depend on media-libs/mesa[X]. I will build a GTK3/Wayland system myself to find the most obvious cases (Qt based stuff already works very will with just dev-qt/qtgui's dependencies fixed because those apps rarely make direct use of Xlib etc.).

In case of media-libs/waffle it certainly looks like it should depend on media-libs/mesa[X?] since the X flag enables GLX (as it does in mesa): $(meson_feature X glx).

Bug: https://bugs.gentoo.org/560096
Package-Manager: Portage-2.3.67, Repoman-2.3.16
Signed-off-by: Philipp Ammann <philipp.ammann@posteo.de>
This changes any package that depends on media-libs/mesa (though not
virtual/opengl) to depend on media-libs/mesa[X(+)] instead.

Bug: https://bugs.gentoo.org/560096
Package-Manager: Portage-2.3.67, Repoman-2.3.16
Signed-off-by: Philipp Ammann <philipp.ammann@posteo.de>
@jonhere
Copy link

jonhere commented Jul 30, 2019

Is there a reason not to take the "depends" patch?
From what I can tell the issue is there may be additional indirect dependencies also (e.g. just uses GTK but needs and expects X.) This does not change the correctness of the patch.
The only potential breakage I see is when you explicitly "enable the new feature" of no X, this isn't the default and should have no impact on existing systems.

@mattst88
Copy link
Contributor

Thanks, merged (after some updates) as commit 97c3d2d.

@mattst88 mattst88 closed this Aug 17, 2019
@Arfrever
Copy link
Contributor

New ebuilds missed by that commit:
media-tv/kodi-18.3-r1

@trilean trilean deleted the mesa-optional-x11 branch November 19, 2019 17:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug linked Bug/Closes found in footer, and cross-linked with the PR. need assignment It was impossible to assign the PR correctly. Please assign it manually.
Projects
None yet
8 participants