Gentoo Archives: gentoo-commits

From: Mart Raudsepp <leio@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-libs/glib/, profiles/
Date: Mon, 13 Sep 2021 21:49:47
Message-Id: 1631569749.65d0343e42c00f0f7da79888ef0f9212244c3689.leio@gentoo
1 commit: 65d0343e42c00f0f7da79888ef0f9212244c3689
2 Author: Mart Raudsepp <leio <AT> gentoo <DOT> org>
3 AuthorDate: Mon Sep 13 21:31:00 2021 +0000
4 Commit: Mart Raudsepp <leio <AT> gentoo <DOT> org>
5 CommitDate: Mon Sep 13 21:49:09 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=65d0343e
7
8 dev-libs/glib: bump to 2.69.3
9
10 Package-Manager: Portage-3.0.20, Repoman-3.0.2
11 Signed-off-by: Mart Raudsepp <leio <AT> gentoo.org>
12
13 dev-libs/glib/Manifest | 1 +
14 dev-libs/glib/glib-2.69.3.ebuild | 282 +++++++++++++++++++++++++++++++++++++++
15 profiles/package.mask | 1 +
16 3 files changed, 284 insertions(+)
17
18 diff --git a/dev-libs/glib/Manifest b/dev-libs/glib/Manifest
19 index 496c5f6be09..6e4a8886a2c 100644
20 --- a/dev-libs/glib/Manifest
21 +++ b/dev-libs/glib/Manifest
22 @@ -1,3 +1,4 @@
23 DIST glib-2.68.2.tar.xz 4944192 BLAKE2B d35489dcfe9d57d8bd6ecf4f893b7c8e93a5b8108765791071fc811598d1f41287e03d95f20591d50d51a78db34f11833cc7970b1bf29299385357a14977ba0b SHA512 74d481552629cab67d22f8a440a7263a4e4b83adb6f3b772d368e255c17321b206aafd3af4653e5efbb2c3c14ca67d35f453728cbc5cd68728275d0b56789019
24 DIST glib-2.68.3.tar.xz 4945236 BLAKE2B 6086b7490f418cb98119ab25670766e3a84de81fd180dbc6e8f929d8f8ab748b0ae7ad6a85f5419ab3c00589c3afba95972d8b4541b310acdf6b6dc9b460a07d SHA512 fb120105c4cb582491a53a0e4c61fe4bdd1f94b279bb7c362afd591369ede50a196c706375564ededf3550d4062a285b038e20b605e6d5dfe36f5d208f4bad3f
25 DIST glib-2.68.4.tar.xz 4945212 BLAKE2B 2135e2bea778714494b9f3ef140f20639f95dd347c9025e5663ca8f493092cd2723aba6520bb4f85687491794353685eccacc4dd34339962e5cb717e6130c025 SHA512 be17d79b41d17fd2b144184d6e793180667b7d9ba299215ea6d4948b4c05f6d888b4868c48643e25935a34ee2f85ee1d03e53325151b7a61819437cbd3c84b10
26 +DIST glib-2.69.3.tar.xz 4806532 BLAKE2B 379d41f8d29fe86e53e1def5d5574b3c556c5e2fb94aa4264f8380acc5745e0a3166cf121243187250cfc89f71e1a469ed57c511019bacbeaf71d56277d1426d SHA512 45ab633ea63b8ca947df4e591ac92fcdad3124a4ad11c5a47ef0d829573f664ff671ca413ea644e76ec97ca757ff305d8493cac7ad1293720a538f00caa3da8e
27
28 diff --git a/dev-libs/glib/glib-2.69.3.ebuild b/dev-libs/glib/glib-2.69.3.ebuild
29 new file mode 100644
30 index 00000000000..6dbfc003667
31 --- /dev/null
32 +++ b/dev-libs/glib/glib-2.69.3.ebuild
33 @@ -0,0 +1,282 @@
34 +# Copyright 1999-2021 Gentoo Authors
35 +# Distributed under the terms of the GNU General Public License v2
36 +
37 +EAPI=7
38 +PYTHON_COMPAT=( python3_{7..10} )
39 +
40 +inherit flag-o-matic gnome.org gnome2-utils linux-info meson-multilib multilib python-any-r1 toolchain-funcs xdg
41 +
42 +DESCRIPTION="The GLib library of C routines"
43 +HOMEPAGE="https://www.gtk.org/"
44 +
45 +LICENSE="LGPL-2.1+"
46 +SLOT="2"
47 +IUSE="dbus debug +elf elibc_glibc fam gtk-doc kernel_linux +mime selinux static-libs sysprof systemtap test utils xattr"
48 +RESTRICT="!test? ( test )"
49 +REQUIRED_USE="gtk-doc? ( test )" # Bug #777636
50 +
51 +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
52 +
53 +# * elfutils (via libelf) does not build on Windows. gresources are not embedded
54 +# within ELF binaries on that platform anyway and inspecting ELF binaries from
55 +# other platforms is not that useful so exclude the dependency in this case.
56 +# * Technically static-libs is needed on zlib, util-linux and perhaps more, but
57 +# these are used by GIO, which glib[static-libs] consumers don't really seem
58 +# to need at all, thus not imposing the deps for now and once some consumers
59 +# are actually found to static link libgio-2.0.a, we can revisit and either add
60 +# them or just put the (build) deps in that rare consumer instead of recursive
61 +# RDEPEND here (due to lack of recursive DEPEND).
62 +RDEPEND="
63 + !<dev-util/gdbus-codegen-${PV}
64 + >=virtual/libiconv-0-r1[${MULTILIB_USEDEP}]
65 + >=dev-libs/libpcre-8.31:3[${MULTILIB_USEDEP},static-libs?]
66 + >=dev-libs/libffi-3.0.13-r1:=[${MULTILIB_USEDEP}]
67 + >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]
68 + >=virtual/libintl-0-r2[${MULTILIB_USEDEP}]
69 + kernel_linux? ( >=sys-apps/util-linux-2.23[${MULTILIB_USEDEP}] )
70 + selinux? ( >=sys-libs/libselinux-2.2.2-r5[${MULTILIB_USEDEP}] )
71 + xattr? ( !elibc_glibc? ( >=sys-apps/attr-2.4.47-r1[${MULTILIB_USEDEP}] ) )
72 + elf? ( virtual/libelf:0= )
73 + fam? ( >=virtual/fam-0-r1[${MULTILIB_USEDEP}] )
74 + sysprof? ( >=dev-util/sysprof-capture-3.40.1:4[${MULTILIB_USEDEP}] )
75 +"
76 +DEPEND="${RDEPEND}"
77 +# libxml2 used for optional tests that get automatically skipped
78 +BDEPEND="
79 + app-text/docbook-xsl-stylesheets
80 + dev-libs/libxslt
81 + >=sys-devel/gettext-0.19.8
82 + gtk-doc? ( >=dev-util/gtk-doc-1.33
83 + app-text/docbook-xml-dtd:4.2
84 + app-text/docbook-xml-dtd:4.5 )
85 + systemtap? ( >=dev-util/systemtap-1.3 )
86 + ${PYTHON_DEPS}
87 + test? ( >=sys-apps/dbus-1.2.14 )
88 + virtual/pkgconfig
89 +"
90 +# TODO: >=dev-util/gdbus-codegen-${PV} test dep once we modify gio/tests/meson.build to use external gdbus-codegen
91 +
92 +PDEPEND="
93 + dbus? ( gnome-base/dconf )
94 + mime? ( x11-misc/shared-mime-info )
95 +"
96 +# shared-mime-info needed for gio/xdgmime, bug #409481
97 +# dconf is needed to be able to save settings, bug #498436
98 +
99 +MULTILIB_CHOST_TOOLS=(
100 + /usr/bin/gio-querymodules$(get_exeext)
101 +)
102 +
103 +PATCHES=(
104 + "${FILESDIR}"/${PN}-2.64.1-mark-gdbus-server-auth-test-flaky.patch
105 +)
106 +
107 +pkg_setup() {
108 + if use kernel_linux ; then
109 + CONFIG_CHECK="~INOTIFY_USER"
110 + if use test ; then
111 + CONFIG_CHECK="~IPV6"
112 + WARNING_IPV6="Your kernel needs IPV6 support for running some tests, skipping them."
113 + fi
114 + linux-info_pkg_setup
115 + fi
116 + python-any-r1_pkg_setup
117 +}
118 +
119 +src_prepare() {
120 + if use test; then
121 + # TODO: Review the test exclusions, especially now with meson
122 + # Disable tests requiring dev-util/desktop-file-utils when not installed, bug #286629, upstream bug #629163
123 + if ! has_version dev-util/desktop-file-utils ; then
124 + ewarn "Some tests will be skipped due dev-util/desktop-file-utils not being present on your system,"
125 + ewarn "think on installing it to get these tests run."
126 + sed -i -e "/appinfo\/associations/d" gio/tests/appinfo.c || die
127 + sed -i -e "/g_test_add_func/d" gio/tests/desktop-app-info.c || die
128 + fi
129 +
130 + # gdesktopappinfo requires existing terminal (gnome-terminal or any
131 + # other), falling back to xterm if one doesn't exist
132 + #if ! has_version x11-terms/xterm && ! has_version x11-terms/gnome-terminal ; then
133 + # ewarn "Some tests will be skipped due to missing terminal program"
134 + # These tests seem to sometimes fail even with a terminal; skip for now and reevulate with meson
135 + # Also try https://gitlab.gnome.org/GNOME/glib/issues/1601 once ready for backport (or in a bump) and file new issue if still fails
136 + sed -i -e "/appinfo\/launch/d" gio/tests/appinfo.c || die
137 + # desktop-app-info/launch* might fail similarly
138 + sed -i -e "/desktop-app-info\/launch-as-manager/d" gio/tests/desktop-app-info.c || die
139 + #fi
140 +
141 + # https://bugzilla.gnome.org/show_bug.cgi?id=722604
142 + sed -i -e "/timer\/stop/d" glib/tests/timer.c || die
143 + sed -i -e "/timer\/basic/d" glib/tests/timer.c || die
144 +
145 + ewarn "Tests for search-utils have been skipped"
146 + sed -i -e "/search-utils/d" glib/tests/meson.build || die
147 +
148 + # Play nice with network-sandbox, but this approach would defeat the purpose of the test
149 + #sed -i -e "s/localhost/127.0.0.1/g" gio/tests/gsocketclient-slow.c || die
150 + else
151 + # Don't build tests, also prevents extra deps, bug #512022
152 + sed -i -e '/subdir.*tests/d' {.,gio,glib}/meson.build || die
153 + fi
154 +
155 + # Don't build fuzzing binaries - not used
156 + sed -i -e '/subdir.*fuzzing/d' meson.build || die
157 +
158 + # gdbus-codegen is a separate package
159 + sed -i -e '/install_dir/d' gio/gdbus-2.0/codegen/meson.build || die
160 +
161 + # Same kind of meson-0.50 issue with some installed-tests files; will likely be fixed upstream soon
162 + sed -i -e '/install_dir/d' gio/tests/meson.build || die
163 +
164 + cat > "${T}/glib-test-ld-wrapper" <<-EOF
165 + #!/usr/bin/env sh
166 + exec \${LD:-ld} "\$@"
167 + EOF
168 + chmod a+x "${T}/glib-test-ld-wrapper" || die
169 + sed -i -e "s|'ld'|'${T}/glib-test-ld-wrapper'|g" gio/tests/meson.build || die
170 +
171 + xdg_src_prepare
172 + gnome2_environment_reset
173 + # TODO: python_name sedding for correct python shebang? Might be relevant mainly for glib-utils only
174 +}
175 +
176 +multilib_src_configure() {
177 + if use debug; then
178 + append-cflags -DG_ENABLE_DEBUG
179 + else
180 + append-cflags -DG_DISABLE_CAST_CHECKS # https://gitlab.gnome.org/GNOME/glib/issues/1833
181 + fi
182 +
183 + # TODO: figure a way to pass appropriate values for all cross properties that glib uses (search for get_cross_property)
184 + #if tc-is-cross-compiler ; then
185 + # https://bugzilla.gnome.org/show_bug.cgi?id=756473
186 + # TODO-meson: This should be in meson cross file as 'growing_stack' property; and more, look at get_cross_property
187 + #case ${CHOST} in
188 + #hppa*|metag*) export glib_cv_stack_grows=yes ;;
189 + #*) export glib_cv_stack_grows=no ;;
190 + #esac
191 + #fi
192 +
193 + local emesonargs=(
194 + -Ddefault_library=$(usex static-libs both shared)
195 + $(meson_feature selinux)
196 + $(meson_use xattr)
197 + -Dlibmount=enabled # only used if host_system == 'linux'
198 + -Dman=true
199 + $(meson_use systemtap dtrace)
200 + $(meson_use systemtap)
201 + $(meson_feature sysprof)
202 + $(meson_native_use_bool gtk-doc gtk_doc)
203 + $(meson_use fam)
204 + $(meson_use test tests)
205 + -Dinstalled_tests=false
206 + -Dnls=enabled
207 + -Doss_fuzz=disabled
208 + $(meson_native_use_feature elf libelf)
209 + )
210 + meson_src_configure
211 +}
212 +
213 +multilib_src_test() {
214 + export XDG_CONFIG_DIRS=/etc/xdg
215 + export XDG_DATA_DIRS=/usr/local/share:/usr/share
216 + export G_DBUS_COOKIE_SHA1_KEYRING_DIR="${T}/temp"
217 + export LC_TIME=C # bug #411967
218 + unset GSETTINGS_BACKEND # bug #596380
219 + python_setup
220 +
221 + # Related test is a bit nitpicking
222 + mkdir "$G_DBUS_COOKIE_SHA1_KEYRING_DIR"
223 + chmod 0700 "$G_DBUS_COOKIE_SHA1_KEYRING_DIR"
224 +
225 + meson_src_test --timeout-multiplier 2 --no-suite flaky
226 +}
227 +
228 +multilib_src_install() {
229 + meson_src_install
230 + keepdir /usr/$(get_libdir)/gio/modules
231 +}
232 +
233 +multilib_src_install_all() {
234 + # These are installed by dev-util/glib-utils
235 + # TODO: With patching we might be able to get rid of the python-any deps and removals, and test depend on glib-utils instead; revisit now with meson
236 + rm "${ED}/usr/bin/glib-genmarshal" || die
237 + rm "${ED}/usr/share/man/man1/glib-genmarshal.1" || die
238 + rm "${ED}/usr/bin/glib-mkenums" || die
239 + rm "${ED}/usr/share/man/man1/glib-mkenums.1" || die
240 + rm "${ED}/usr/bin/gtester-report" || die
241 + rm "${ED}/usr/share/man/man1/gtester-report.1" || die
242 + # gdbus-codegen manpage installed by dev-util/gdbus-codegen
243 + rm "${ED}/usr/share/man/man1/gdbus-codegen.1" || die
244 +}
245 +
246 +pkg_preinst() {
247 + xdg_pkg_preinst
248 +
249 + # Make gschemas.compiled belong to glib alone
250 + local cache="/usr/share/glib-2.0/schemas/gschemas.compiled"
251 +
252 + if [[ -e ${EROOT}${cache} ]]; then
253 + cp "${EROOT}"${cache} "${ED}"/${cache} || die
254 + else
255 + touch "${ED}"${cache} || die
256 + fi
257 +
258 + multilib_pkg_preinst() {
259 + # Make giomodule.cache belong to glib alone
260 + local cache="/usr/$(get_libdir)/gio/modules/giomodule.cache"
261 +
262 + if [[ -e ${EROOT}${cache} ]]; then
263 + cp "${EROOT}"${cache} "${ED}"${cache} || die
264 + else
265 + touch "${ED}"${cache} || die
266 + fi
267 + }
268 +
269 + # Don't run the cache ownership when cross-compiling, as it would end up with an empty cache
270 + # file due to inability to create it and GIO might not look at any of the modules there
271 + if ! tc-is-cross-compiler ; then
272 + multilib_foreach_abi multilib_pkg_preinst
273 + fi
274 +}
275 +
276 +pkg_postinst() {
277 + xdg_pkg_postinst
278 + # glib installs no schemas itself, but we force update for fresh install in case
279 + # something has dropped in a schemas file without direct glib dep; and for upgrades
280 + # in case the compiled schema format could have changed
281 + gnome2_schemas_update
282 +
283 + multilib_pkg_postinst() {
284 + gnome2_giomodule_cache_update \
285 + || die "Update GIO modules cache failed (for ${ABI})"
286 + }
287 + if ! tc-is-cross-compiler ; then
288 + multilib_foreach_abi multilib_pkg_postinst
289 + else
290 + ewarn "Updating of GIO modules cache skipped due to cross-compilation."
291 + ewarn "You might want to run gio-querymodules manually on the target for"
292 + ewarn "your final image for performance reasons and re-run it when packages"
293 + ewarn "installing GIO modules get upgraded or added to the image."
294 + fi
295 +
296 + for v in ${REPLACING_VERSIONS}; do
297 + if ver_test "$v" "-lt" "2.63.6"; then
298 + ewarn "glib no longer installs the gio-launch-desktop binary. You may need"
299 + ewarn "to restart your session for \"Open With\" dialogs to work."
300 + fi
301 + done
302 +}
303 +
304 +pkg_postrm() {
305 + xdg_pkg_postrm
306 + gnome2_schemas_update
307 +
308 + if [[ -z ${REPLACED_BY_VERSION} ]]; then
309 + multilib_pkg_postrm() {
310 + rm -f "${EROOT}"/usr/$(get_libdir)/gio/modules/giomodule.cache
311 + }
312 + multilib_foreach_abi multilib_pkg_postrm
313 + rm -f "${EROOT}"/usr/share/glib-2.0/schemas/gschemas.compiled
314 + fi
315 +}
316
317 diff --git a/profiles/package.mask b/profiles/package.mask
318 index 3f3076a2c93..88a8f48f70b 100644
319 --- a/profiles/package.mask
320 +++ b/profiles/package.mask
321 @@ -36,6 +36,7 @@
322 # GNOME 41 mask, bug #812986
323 >=dev-util/gdbus-codegen-2.69
324 >=dev-util/glib-utils-2.69
325 +>=dev-libs/glib-2.69
326
327 # Ionen Wolkens <ionen@g.o> (2021-09-12)
328 # No reverse dependencies, stuck on EAPI-5.