| 13 |
13 |
inherit git-r3
|
| 14 |
14 |
EGIT_REPO_URI="https://gitlab.gnome.org/GNOME/mutter.git"
|
| 15 |
15 |
SRC_URI=""
|
| 16 |
|
SLOT="0/14" # This can get easily out of date, but better than 9967
|
|
16 |
SLOT="0/15" # This can get easily out of date, but better than 9967
|
| 17 |
17 |
else
|
| 18 |
|
KEYWORDS="amd64 ~arm arm64 ~loong ~ppc64 ~riscv x86"
|
|
18 |
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
|
| 19 |
19 |
SLOT="0/$(($(ver_cut 1) - 32))" # 0/libmutter_api_version - ONLY gnome-shell (or anything using mutter-clutter-<api_version>.pc) should use the subslot
|
| 20 |
20 |
fi
|
| 21 |
21 |
|
| 22 |
|
IUSE="debug elogind gnome gtk-doc input_devices_wacom +introspection screencast sysprof systemd test udev wayland video_cards_nvidia"
|
|
22 |
IUSE="debug elogind gnome gtk-doc input_devices_wacom +introspection screencast sysprof systemd test udev wayland X +xwayland video_cards_nvidia"
|
| 23 |
23 |
# native backend requires gles3 for hybrid graphics blitting support, udev and a logind provider
|
| 24 |
24 |
REQUIRED_USE="
|
|
25 |
|| ( X wayland )
|
| 25 |
26 |
gtk-doc? ( introspection )
|
| 26 |
27 |
wayland? ( ^^ ( elogind systemd ) udev )
|
| 27 |
|
test? ( wayland )"
|
|
28 |
test? ( screencast wayland )"
|
| 28 |
29 |
RESTRICT="!test? ( test )"
|
| 29 |
30 |
|
| 30 |
31 |
# gnome-settings-daemon is build checked, but used at runtime only for org.gnome.settings-daemon.peripherals.keyboard gschema
|
| ... | ... | |
| 34 |
35 |
# in Xwayland after mutter is installed, Xwayland would fail to be started by mutter. mutter already hard-depends on libei, so there's
|
| 35 |
36 |
# really no extra deps here (besides xdg-desktop-portal, but we want that too, anyhow).
|
| 36 |
37 |
# v3.32.2 has many excessive or unused *_req variables declared, thus currently the dep order ignores those and goes via dependency() call order
|
|
38 |
# dev-libs/wayland is always needed at build time due to https://bugs.gentoo.org/937632
|
| 37 |
39 |
RDEPEND="
|
| 38 |
40 |
>=media-libs/graphene-1.10.2[introspection?]
|
| 39 |
41 |
x11-libs/gdk-pixbuf:2
|
| ... | ... | |
| 41 |
43 |
>=x11-libs/cairo-1.14[X]
|
| 42 |
44 |
>=x11-libs/pixman-0.42
|
| 43 |
45 |
>=dev-libs/fribidi-1.0.0
|
| 44 |
|
>=gnome-base/gsettings-desktop-schemas-42.0[introspection?]
|
| 45 |
|
>=dev-libs/glib-2.75.1:2
|
|
46 |
>=gnome-base/gsettings-desktop-schemas-47_beta[introspection?]
|
|
47 |
>=dev-libs/glib-2.81.1:2
|
| 46 |
48 |
gnome-base/gnome-settings-daemon
|
| 47 |
|
>=x11-libs/libxkbcommon-0.4.3
|
| 48 |
|
x11-libs/libICE
|
|
49 |
>=x11-libs/libxkbcommon-0.4.3[X?]
|
| 49 |
50 |
>=app-accessibility/at-spi2-core-2.46:2[introspection?]
|
| 50 |
51 |
sys-apps/dbus
|
| 51 |
52 |
>=x11-misc/colord-1.4.5:=
|
| 52 |
53 |
>=media-libs/lcms-2.6:2
|
| 53 |
54 |
>=media-libs/harfbuzz-2.6.0:=
|
| 54 |
55 |
>=dev-libs/libei-1.0.901
|
| 55 |
|
media-libs/libdisplay-info:=
|
|
56 |
>=media-libs/libdisplay-info-0.2:=
|
| 56 |
57 |
|
| 57 |
58 |
gnome? ( gnome-base/gnome-desktop:4= )
|
| 58 |
59 |
|
| 59 |
60 |
>=media-libs/libcanberra-0.26
|
| 60 |
61 |
|
| 61 |
|
media-libs/libglvnd[X]
|
|
62 |
media-libs/libglvnd
|
| 62 |
63 |
|
|
64 |
>=dev-libs/wayland-1.23.0
|
| 63 |
65 |
wayland? (
|
| 64 |
|
>=dev-libs/wayland-protocols-1.33
|
| 65 |
|
>=dev-libs/wayland-1.22.0
|
|
66 |
>=dev-libs/wayland-protocols-1.36
|
| 66 |
67 |
|
| 67 |
68 |
>=x11-libs/libdrm-2.4.118
|
| 68 |
69 |
media-libs/mesa[gbm(+)]
|
| 69 |
|
>=dev-libs/libinput-1.19.0:=
|
|
70 |
>=dev-libs/libinput-1.26.0:=
|
| 70 |
71 |
|
| 71 |
72 |
elogind? ( sys-auth/elogind )
|
| 72 |
|
>=x11-base/xwayland-23.2.1[libei(+)]
|
|
73 |
xwayland? ( >=x11-base/xwayland-23.2.1[libei(+)] )
|
| 73 |
74 |
video_cards_nvidia? ( gui-libs/egl-wayland )
|
| 74 |
75 |
)
|
| 75 |
76 |
udev? (
|
| ... | ... | |
| 77 |
78 |
>=dev-libs/libgudev-238
|
| 78 |
79 |
)
|
| 79 |
80 |
systemd? ( sys-apps/systemd )
|
| 80 |
|
x11-libs/libSM
|
| 81 |
81 |
input_devices_wacom? ( >=dev-libs/libwacom-0.13:= )
|
| 82 |
|
>=x11-libs/startup-notification-0.7
|
| 83 |
|
screencast? ( >=media-video/pipewire-0.3.33:= )
|
|
82 |
screencast? ( >=media-video/pipewire-1.2.0:= )
|
| 84 |
83 |
introspection? ( >=dev-libs/gobject-introspection-1.54:= )
|
| 85 |
84 |
test? (
|
| 86 |
85 |
>=x11-libs/gtk+-3.19.8:3[X,introspection?]
|
| 87 |
|
gnome-extra/zenity
|
| 88 |
86 |
)
|
| 89 |
87 |
sysprof? ( >=dev-util/sysprof-capture-3.40.1:4 >=dev-util/sysprof-3.46.0 )
|
| 90 |
88 |
"
|
| 91 |
|
# for now upstream has "have_x11 = true" in the meson.build, but sooner or later upstream is going to make X optional.
|
| 92 |
|
# X? (
|
|
89 |
|
|
90 |
X11_CLIENT_DEPS="
|
|
91 |
>=gui-libs/gtk-4.0.0:4[X,introspection?]
|
|
92 |
media-libs/libglvnd[X]
|
|
93 |
>=x11-libs/libX11-1.7.0
|
|
94 |
>=x11-libs/libXcomposite-0.4
|
|
95 |
x11-libs/libXcursor
|
|
96 |
x11-libs/libXdamage
|
|
97 |
x11-libs/libXext
|
|
98 |
>=x11-libs/libXfixes-6
|
|
99 |
>=x11-libs/libXi-1.7.4
|
|
100 |
x11-misc/xkeyboard-config
|
|
101 |
>=x11-libs/libXrandr-1.5.0
|
|
102 |
x11-libs/libxcb:=
|
|
103 |
x11-libs/libXinerama
|
|
104 |
x11-libs/libXau
|
|
105 |
>=x11-libs/startup-notification-0.7
|
|
106 |
"
|
|
107 |
|
| 93 |
108 |
RDEPEND+="
|
| 94 |
|
>=gui-libs/gtk-4.0.0:4[X,introspection?]
|
| 95 |
|
>=x11-libs/libX11-1.7.0
|
| 96 |
|
>=x11-libs/libXcomposite-0.4
|
| 97 |
|
x11-libs/libXcursor
|
| 98 |
|
x11-libs/libXdamage
|
| 99 |
|
x11-libs/libXext
|
| 100 |
|
>=x11-libs/libXfixes-6
|
| 101 |
|
>=x11-libs/libXi-1.7.4
|
| 102 |
|
x11-libs/libXtst
|
|
109 |
X? (
|
|
110 |
${X11_CLIENT_DEPS}
|
|
111 |
x11-libs/libICE
|
| 103 |
112 |
x11-libs/libxkbfile
|
| 104 |
|
x11-misc/xkeyboard-config
|
| 105 |
|
>=x11-libs/libxkbcommon-0.4.3[X]
|
| 106 |
|
x11-libs/libXrender
|
| 107 |
|
>=x11-libs/libXrandr-1.5.0
|
| 108 |
|
x11-libs/libxcb:=
|
| 109 |
|
x11-libs/libXinerama
|
| 110 |
|
x11-libs/libXau
|
|
113 |
x11-libs/libXtst
|
|
114 |
x11-libs/libSM
|
|
115 |
)
|
|
116 |
wayland? ( xwayland? ( ${X11_CLIENT_DEPS} ) )
|
| 111 |
117 |
"
|
| 112 |
|
# )"
|
| 113 |
118 |
DEPEND="${RDEPEND}
|
| 114 |
119 |
x11-base/xorg-proto
|
| 115 |
120 |
sysprof? ( >=dev-util/sysprof-common-3.38.0 )
|
| ... | ... | |
| 127 |
132 |
>=dev-python/python-dbusmock-0.28[${PYTHON_USEDEP}]
|
| 128 |
133 |
')
|
| 129 |
134 |
app-text/docbook-xml-dtd:4.5
|
| 130 |
|
x11-misc/xvfb-run
|
|
135 |
X? (
|
|
136 |
gnome-extra/zenity
|
|
137 |
x11-misc/xvfb-run
|
|
138 |
)
|
| 131 |
139 |
)
|
| 132 |
140 |
wayland? (
|
| 133 |
141 |
>=sys-kernel/linux-headers-4.4
|
| ... | ... | |
| 165 |
173 |
$(meson_use wayland gles2)
|
| 166 |
174 |
#gles2_libname
|
| 167 |
175 |
-Degl=true
|
| 168 |
|
-Dglx=true
|
|
176 |
$(meson_use X glx)
|
| 169 |
177 |
$(meson_use wayland)
|
| 170 |
|
$(meson_use wayland xwayland)
|
|
178 |
)
|
|
179 |
|
|
180 |
if use wayland; then
|
|
181 |
emesonargs+=(
|
|
182 |
$(meson_use xwayland)
|
|
183 |
)
|
|
184 |
else
|
|
185 |
emesonargs+=(
|
|
186 |
-Dxwayland=false
|
|
187 |
)
|
|
188 |
fi
|
|
189 |
|
|
190 |
emesonargs+=(
|
| 171 |
191 |
$(meson_use systemd)
|
| 172 |
192 |
$(meson_use wayland native_backend)
|
| 173 |
193 |
$(meson_use screencast remote_desktop)
|
| ... | ... | |
| 176 |
196 |
-Dudev_dir=$(get_udevdir)
|
| 177 |
197 |
$(meson_use input_devices_wacom libwacom)
|
| 178 |
198 |
-Dsound_player=true
|
| 179 |
|
-Dpango_ft2=true
|
| 180 |
199 |
-Dstartup_notification=true
|
| 181 |
|
-Dsm=true
|
|
200 |
$(meson_use X sm)
|
| 182 |
201 |
$(meson_use introspection)
|
| 183 |
202 |
$(meson_use gtk-doc docs)
|
| 184 |
203 |
$(meson_use test cogl_tests)
|
| 185 |
|
$(meson_use wayland core_tests) # core tests require wayland; overall -Dtests option is honored on top, so no extra conditional needed
|
| 186 |
|
-Dnative_tests=false
|
| 187 |
204 |
$(meson_use test clutter_tests)
|
| 188 |
|
$(meson_use test tests)
|
|
205 |
$(meson_use test mutter_tests)
|
|
206 |
$(meson_feature test tests)
|
| 189 |
207 |
-Dkvm_tests=false
|
| 190 |
208 |
-Dtty_tests=false
|
| 191 |
209 |
$(meson_use sysprof profiler)
|
| 192 |
210 |
-Dinstalled_tests=false
|
|
211 |
$(meson_use X x11)
|
| 193 |
212 |
|
| 194 |
213 |
#verbose # Let upstream choose default for verbose mode
|
| 195 |
214 |
#xwayland_path
|
| ... | ... | |
| 217 |
236 |
gnome2_environment_reset
|
| 218 |
237 |
export XDG_DATA_DIRS="${EPREFIX}"/usr/share
|
| 219 |
238 |
glib-compile-schemas "${BUILD_DIR}"/data
|
| 220 |
|
GSETTINGS_SCHEMA_DIR="${BUILD_DIR}"/data meson_src_test --setup=CI
|
|
239 |
GSETTINGS_SCHEMA_DIR="${BUILD_DIR}"/data meson_src_test
|
| 221 |
240 |
}
|
| 222 |
241 |
|
| 223 |
242 |
pkg_postinst() {
|