commit:     a7769ff706b3176e49138bd3101f6e6800fd0da7
Author:     stefson <herrtimson <AT> yahoo <DOT> de>
AuthorDate: Sun Oct 20 13:57:30 2019 +0000
Commit:     Jory Pratt <anarchy <AT> gentoo <DOT> org>
CommitDate: Sun Oct 20 22:13:34 2019 +0000
URL:        https://gitweb.gentoo.org/proj/musl.git/commit/?id=a7769ff7

dev-libs/glib: add new stable v2.60.6

the in tree version does compile, but we still have to carry the ebuild as 
there are various segfaults
with that unpatched version. upstream does know about this and chose to ignore 
it.

Closes: https://github.com/gentoo/musl/pull/268
Signed-off-by: Steffen Kuhn <nielson2 <AT> yandex.com>
Signed-off-by: Jory Pratt <anarchy <AT> gentoo.org>

 dev-libs/glib/Manifest           |   1 +
 dev-libs/glib/glib-2.60.6.ebuild | 281 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 282 insertions(+)

diff --git a/dev-libs/glib/Manifest b/dev-libs/glib/Manifest
index f28decd..1fd2300 100644
--- a/dev-libs/glib/Manifest
+++ b/dev-libs/glib/Manifest
@@ -2,4 +2,5 @@ DIST glib-2.56.2.tar.xz 8041756 BLAKE2B 
1af5bb37378856e959602bcb9299266bba46b990
 DIST glib-2.56.4.tar.xz 7029768 BLAKE2B 
21cf840128e468151eeac55f0323f8f643973422b70bb65655e24c0a6b2f7ee72d5ae879bfae73df84fa2281fc425cc98328597910ba8fd99d7a52024e1b3ab6
 SHA512 
280a46c2af13283a08c15ff0b4f5492659c2884521930600ad45310ed181c44a878ad8f9b36bae68ed6e7d92db6f1630f7bf015148c513dc317d25807f13abb0
 DIST glib-2.58.2.tar.xz 4862612 BLAKE2B 
e94d3dfc5d4b6d100c2425fda34c90fdf643fdb71b8bd65df691e34d11bfaf79fdc4c844eb215df24b0f680991fb0d0c08c3bb3dea61f5157ccd8bec200e2059
 SHA512 
4017ae308f2ef6313abbff2eb9b21ec6f8fa38935007491ca0cb4d1ffac6fedab6f50e911ac088995d6212323ba1767399f18529a2620d60378ecade193b4b1a
 DIST glib-2.58.3.tar.xz 4863648 BLAKE2B 
4269bd6e80869f39d567917438f750561debb1b45d40ecea487d2e76e2468e07dc8d80a23678699f7b8f7778c2ed9d29e866ae5e33770f51ed00709dd5fe97eb
 SHA512 
1e1cb5b607367dcbadb95563d463e81702cf396b28f1173f6d933707f4f3d5595a70225423e918807a05994a24f16fa3ac87d2ec67e4b670244ea99836634cce
+DIST glib-2.60.6.tar.xz 4589516 BLAKE2B 
33546aea288dee4aa8c04bda610a65ce75705c0e2b98284e787d42576c61eccbd33788084b092e030fe26c50ff08e398782227d1f2ac39ef9754b91af1ab1aa1
 SHA512 
2e079d2268e0cd4dd234501c03e7784a69258ea2303e62baa4869ff7a442d121c2ffdc742467e3b0b46ad953b831962e1dd847463d66b2b28745ba0f0bfd28d9
 DIST pkg-config-0.28.tar.gz 1931203 BLAKE2B 
bafdd4e838623965c6bd454421ddd9051fc43fc29948e1615b49fef463c3c3a18807aabe6416f96cfdf58d6b1c9e114d77f97bd985facee7c14284a8a64a768b
 SHA512 
6eafa5ca77c5d44cd15f48457a5e96fcea2555b66d8e35ada5ab59864a0aa03d441e15f54ab9c6343693867b3b490f392c75b7d9312f024c9b7ec6a0194d8320

diff --git a/dev-libs/glib/glib-2.60.6.ebuild b/dev-libs/glib/glib-2.60.6.ebuild
new file mode 100644
index 0000000..3974ff5
--- /dev/null
+++ b/dev-libs/glib/glib-2.60.6.ebuild
@@ -0,0 +1,281 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python{3_5,3_6,3_7} )
+
+inherit flag-o-matic gnome.org gnome2-utils linux-info meson multilib 
multilib-minimal python-any-r1 toolchain-funcs xdg
+
+DESCRIPTION="The GLib library of C routines"
+HOMEPAGE="https://www.gtk.org/";
+
+LICENSE="LGPL-2.1+"
+SLOT="2"
+IUSE="dbus debug elibc_glibc fam gtk-doc kernel_linux +mime selinux 
static-libs systemtap test utils xattr"
+
+KEYWORDS="alpha amd64 arm arm64 ~hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 
~sh sparc x86 ~amd64-linux ~x86-linux"
+
+# * libelf isn't strictly necessary, but makes gresource tool more useful, and
+# the check is automagic in gio/meson.build. gresource is not a multilib tool
+# right now, thus it doesn't matter if non-native ABI libelf exists or not
+# (non-native binary is overwritten, it doesn't matter if libelf was linked 
to).
+# * Technically static-libs is needed on zlib, util-linux and perhaps more, but
+# these are used by GIO, which glib[static-libs] consumers don't really seem
+# to need at all, thus not imposing the deps for now and once some consumers
+# are actually found to static link libgio-2.0.a, we can revisit and either add
+# them or just put the (build) deps in that rare consumer instead of recursive
+# RDEPEND here (due to lack of recursive DEPEND).
+RDEPEND="
+       !<dev-util/gdbus-codegen-${PV}
+       >=virtual/libiconv-0-r1[${MULTILIB_USEDEP}]
+       >=dev-libs/libpcre-8.31:3[${MULTILIB_USEDEP},static-libs?]
+       >=virtual/libffi-3.0.13-r1:=[${MULTILIB_USEDEP}]
+       >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]
+       >=virtual/libintl-0-r2[${MULTILIB_USEDEP}]
+       kernel_linux? ( >=sys-apps/util-linux-2.23[${MULTILIB_USEDEP}] )
+       selinux? ( >=sys-libs/libselinux-2.2.2-r5[${MULTILIB_USEDEP}] )
+       xattr? ( !elibc_glibc? ( >=sys-apps/attr-2.4.47-r1[${MULTILIB_USEDEP}] 
) )
+       virtual/libelf:0=
+       fam? ( >=virtual/fam-0-r1[${MULTILIB_USEDEP}] )
+"
+DEPEND="${RDEPEND}"
+# libxml2 used for optional tests that get automatically skipped
+BDEPEND="
+       app-text/docbook-xsl-stylesheets
+       dev-libs/libxslt
+       >=sys-devel/gettext-0.19.8
+       gtk-doc? ( >=dev-util/gtk-doc-1.20
+               app-text/docbook-xml-dtd:4.2
+               app-text/docbook-xml-dtd:4.5 )
+       systemtap? ( >=dev-util/systemtap-1.3 )
+       ${PYTHON_DEPS}
+       test? ( >=sys-apps/dbus-1.2.14 )
+       virtual/pkgconfig[${MULTILIB_USEDEP}]
+"
+# TODO: >=dev-util/gdbus-codegen-${PV} test dep once we modify 
gio/tests/meson.build to use external gdbus-codegen
+
+PDEPEND="
+       dbus? ( gnome-base/dconf )
+       mime? ( x11-misc/shared-mime-info )
+"
+# shared-mime-info needed for gio/xdgmime, bug #409481
+# dconf is needed to be able to save settings, bug #498436
+
+MULTILIB_CHOST_TOOLS=(
+       /usr/bin/gio-querymodules$(get_exeext)
+)
+
+pkg_setup() {
+       if use kernel_linux ; then
+               CONFIG_CHECK="~INOTIFY_USER"
+               if use test ; then
+                       CONFIG_CHECK="~IPV6"
+                       WARNING_IPV6="Your kernel needs IPV6 support for 
running some tests, skipping them."
+               fi
+               linux-info_pkg_setup
+       fi
+       python-any-r1_pkg_setup
+}
+
+src_prepare() {
+
+       # Musl fix
+       eapply "${FILESDIR}/2.56.2-quark_init_on_demand.patch"
+       eapply "${FILESDIR}/2.56.2-gobject_init_on_demand.patch"
+
+       if use test; then
+               # TODO: Review the test exclusions, especially now with meson
+               # Disable tests requiring dev-util/desktop-file-utils when not 
installed, bug #286629, upstream bug #629163
+               if ! has_version dev-util/desktop-file-utils ; then
+                       ewarn "Some tests will be skipped due 
dev-util/desktop-file-utils not being present on your system,"
+                       ewarn "think on installing it to get these tests run."
+                       sed -i -e "/appinfo\/associations/d" 
gio/tests/appinfo.c || die
+                       sed -i -e "/g_test_add_func/d" 
gio/tests/desktop-app-info.c || die
+               fi
+
+               # gdesktopappinfo requires existing terminal (gnome-terminal or 
any
+               # other), falling back to xterm if one doesn't exist
+               #if ! has_version x11-terms/xterm && ! has_version 
x11-terms/gnome-terminal ; then
+               #       ewarn "Some tests will be skipped due to missing 
terminal program"
+               # These tests seem to sometimes fail even with a terminal; skip 
for now and reevulate with meson
+               # 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
+               sed -i -e "/appinfo\/launch/d" gio/tests/appinfo.c || die
+               # desktop-app-info/launch* might fail similarly
+               sed -i -e "/desktop-app-info\/launch-as-manager/d" 
gio/tests/desktop-app-info.c || die
+               #fi
+
+               # https://bugzilla.gnome.org/show_bug.cgi?id=722604
+               sed -i -e "/timer\/stop/d" glib/tests/timer.c || die
+               sed -i -e "/timer\/basic/d" glib/tests/timer.c || die
+
+               ewarn "Tests for search-utils have been skipped"
+               sed -i -e "/search-utils/d" glib/tests/meson.build || die
+
+               # Play nice with network-sandbox, but this approach would 
defeat the purpose of the test
+               #sed -i -e "s/localhost/127.0.0.1/g" 
gio/tests/gsocketclient-slow.c || die
+       else
+               # Don't build tests, also prevents extra deps, bug #512022
+               sed -i -e '/subdir.*tests/d' {.,gio,glib}/meson.build || die
+       fi
+
+       # Don't build fuzzing binaries - not used
+       sed -i -e '/subdir.*fuzzing/d' meson.build || die
+
+       # gdbus-codegen is a separate package
+       sed -i -e 's/install.*true/install : false/g' 
gio/gdbus-2.0/codegen/meson.build || die
+       # Older than meson-0.50 doesn't know about install kwarg for 
configure_file; for that we need to remove the install_dir kwarg.
+       # Upstream will remove the install kwarg in a future version to require 
only meson-0.49.2 or newer, at which point the
+       # install_dir removal only should be kept.
+       sed -i -e '/install_dir/d' gio/gdbus-2.0/codegen/meson.build || die
+
+       # Same kind of meson-0.50 issue with some installed-tests files; will 
likely be fixed upstream soon
+       sed -i -e '/install_dir/d' gio/tests/meson.build || die
+
+       cat > "${T}/glib-test-ld-wrapper" <<-EOF
+               #!/usr/bin/env sh
+               exec \${LD:-ld} "\$@"
+       EOF
+       chmod a+x "${T}/glib-test-ld-wrapper" || die
+       sed -i -e "s|'ld'|'${T}/glib-test-ld-wrapper'|g" gio/tests/meson.build 
|| die
+
+       xdg_src_prepare
+       gnome2_environment_reset
+       # TODO: python_name sedding for correct python shebang? Might be 
relevant mainly for glib-utils only
+}
+
+multilib_src_configure() {
+       if use debug; then
+               append-cflags -DG_ENABLE_DEBUG
+       else
+               append-cflags -DG_DISABLE_CAST_CHECKS # 
https://gitlab.gnome.org/GNOME/glib/issues/1833
+       fi
+
+       # TODO: figure a way to pass appropriate values for all cross 
properties that glib uses (search for get_cross_property)
+       #if tc-is-cross-compiler ; then
+               # https://bugzilla.gnome.org/show_bug.cgi?id=756473
+               # TODO-meson: This should be in meson cross file as 
'growing_stack' property; and more, look at get_cross_property
+               #case ${CHOST} in
+               #hppa*|metag*) export glib_cv_stack_grows=yes ;;
+               #*)            export glib_cv_stack_grows=no ;;
+               #esac
+       #fi
+
+       local emesonargs=(
+               -Ddefault_library=$(usex static-libs both shared)
+               $(meson_feature selinux)
+               $(meson_use xattr)
+               -Dlibmount=true # only used if host_system == 'linux'
+               -Dinternal_pcre=false
+               -Dman=true
+               $(meson_use systemtap dtrace)
+               $(meson_use systemtap)
+               -Dgtk_doc=$(multilib_native_usex gtk-doc true false)
+               $(meson_use fam)
+               -Dinstalled_tests=false
+               -Dnls=enabled
+       )
+       meson_src_configure
+}
+
+multilib_src_compile() {
+       meson_src_compile
+}
+
+multilib_src_test() {
+       export XDG_CONFIG_DIRS=/etc/xdg
+       export XDG_DATA_DIRS=/usr/local/share:/usr/share
+       export G_DBUS_COOKIE_SHA1_KEYRING_DIR="${T}/temp"
+       export LC_TIME=C # bug #411967
+       unset GSETTINGS_BACKEND # bug #596380
+       python_setup
+
+       # Related test is a bit nitpicking
+       mkdir "$G_DBUS_COOKIE_SHA1_KEYRING_DIR"
+       chmod 0700 "$G_DBUS_COOKIE_SHA1_KEYRING_DIR"
+
+       meson_src_test --timeout-multiplier 2 --no-suite flaky
+}
+
+multilib_src_install() {
+       meson_src_install
+       keepdir /usr/$(get_libdir)/gio/modules
+}
+
+multilib_src_install_all() {
+       einstalldocs
+
+       # These are installed by dev-util/glib-utils
+       # 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
+       rm "${ED}/usr/bin/glib-genmarshal" || die
+       rm "${ED}/usr/share/man/man1/glib-genmarshal.1" || die
+       rm "${ED}/usr/bin/glib-mkenums" || die
+       rm "${ED}/usr/share/man/man1/glib-mkenums.1" || die
+       rm "${ED}/usr/bin/gtester-report" || die
+       rm "${ED}/usr/share/man/man1/gtester-report.1" || die
+       # gdbus-codegen manpage installed by dev-util/gdbus-codegen
+       rm "${ED}/usr/share/man/man1/gdbus-codegen.1" || die
+}
+
+pkg_preinst() {
+       xdg_pkg_preinst
+
+       # Make gschemas.compiled belong to glib alone
+       local cache="/usr/share/glib-2.0/schemas/gschemas.compiled"
+
+       if [[ -e ${EROOT}${cache} ]]; then
+               cp "${EROOT}"${cache} "${ED}"/${cache} || die
+       else
+               touch "${ED}"${cache} || die
+       fi
+
+       multilib_pkg_preinst() {
+               # Make giomodule.cache belong to glib alone
+               local cache="/usr/$(get_libdir)/gio/modules/giomodule.cache"
+
+               if [[ -e ${EROOT}${cache} ]]; then
+                       cp "${EROOT}"${cache} "${ED}"${cache} || die
+               else
+                       touch "${ED}"${cache} || die
+               fi
+       }
+
+       # Don't run the cache ownership when cross-compiling, as it would end 
up with an empty cache
+       # file due to inability to create it and GIO might not look at any of 
the modules there
+       if ! tc-is-cross-compiler ; then
+               multilib_foreach_abi multilib_pkg_preinst
+       fi
+}
+
+pkg_postinst() {
+       xdg_pkg_postinst
+       # glib installs no schemas itself, but we force update for fresh 
install in case
+       # something has dropped in a schemas file without direct glib dep; and 
for upgrades
+       # in case the compiled schema format could have changed
+       gnome2_schemas_update
+
+       multilib_pkg_postinst() {
+               gnome2_giomodule_cache_update \
+                       || die "Update GIO modules cache failed (for ${ABI})"
+       }
+       if ! tc-is-cross-compiler ; then
+               multilib_foreach_abi multilib_pkg_postinst
+       else
+               ewarn "Updating of GIO modules cache skipped due to 
cross-compilation."
+               ewarn "You might want to run gio-querymodules manually on the 
target for"
+               ewarn "your final image for performance reasons and re-run it 
when packages"
+               ewarn "installing GIO modules get upgraded or added to the 
image."
+       fi
+}
+
+pkg_postrm() {
+       xdg_pkg_postrm
+       gnome2_schemas_update
+
+       if [[ -z ${REPLACED_BY_VERSION} ]]; then
+               multilib_pkg_postrm() {
+                       rm -f 
"${EROOT}"/usr/$(get_libdir)/gio/modules/giomodule.cache
+               }
+               multilib_foreach_abi multilib_pkg_postrm
+               rm -f "${EROOT}"/usr/share/glib-2.0/schemas/gschemas.compiled
+       fi
+}

Reply via email to