commit: 89984cb53ee47c5a5416ce75ba48c238c381c1f8
Author: Dennis Lamm <expeditioneer <AT> gentoo <DOT> org>
AuthorDate: Sun Jan 14 15:02:51 2018 +0000
Commit: Dennis Lamm <expeditioneer <AT> gentoo <DOT> org>
CommitDate: Sun Jan 14 15:02:51 2018 +0000
URL: https://gitweb.gentoo.org/proj/gnome.git/commit/?id=89984cb5
dev-libs/glib: version bump
Package-Manager: Portage-2.3.13, Repoman-2.3.3
dev-libs/glib/glib-2.54.2.ebuild | 2 +-
.../{glib-2.54.2.ebuild => glib-2.54.3.ebuild} | 5 +-
dev-libs/glib/glib-9999.ebuild | 255 +++++++++++----------
3 files changed, 141 insertions(+), 121 deletions(-)
diff --git a/dev-libs/glib/glib-2.54.2.ebuild b/dev-libs/glib/glib-2.54.2.ebuild
index 46a5e3ee..257cbe2c 100644
--- a/dev-libs/glib/glib-2.54.2.ebuild
+++ b/dev-libs/glib/glib-2.54.2.ebuild
@@ -273,7 +273,7 @@ pkg_preinst() {
pkg_postinst() {
# force (re)generation of gschemas.compiled
- gnome-meson_ECLASS_GLIB_SCHEMAS="force"
+ gnome-meson_GNOME2_ECLASS_GLIB_SCHEMAS="force"
gnome-meson_pkg_postinst
diff --git a/dev-libs/glib/glib-2.54.2.ebuild b/dev-libs/glib/glib-2.54.3.ebuild
similarity index 99%
copy from dev-libs/glib/glib-2.54.2.ebuild
copy to dev-libs/glib/glib-2.54.3.ebuild
index 46a5e3ee..3179d90e 100644
--- a/dev-libs/glib/glib-2.54.2.ebuild
+++ b/dev-libs/glib/glib-2.54.3.ebuild
@@ -7,8 +7,7 @@
EAPI=6
PYTHON_COMPAT=( python2_7 )
-# Completely useless with or without USE static-libs, people need to use
-# pkg-config
+# Completely useless with or without USE static-libs, people need to use
pkg-config
GNOME2_LA_PUNT="yes"
inherit bash-completion-r1 epunt-cxx flag-o-matic gnome-meson libtool
linux-info \
@@ -273,7 +272,7 @@ pkg_preinst() {
pkg_postinst() {
# force (re)generation of gschemas.compiled
- gnome-meson_ECLASS_GLIB_SCHEMAS="force"
+ gnome-meson_GNOME2_ECLASS_GLIB_SCHEMAS="force"
gnome-meson_pkg_postinst
diff --git a/dev-libs/glib/glib-9999.ebuild b/dev-libs/glib/glib-9999.ebuild
index bb0f63b6..c0953b57 100644
--- a/dev-libs/glib/glib-9999.ebuild
+++ b/dev-libs/glib/glib-9999.ebuild
@@ -5,20 +5,16 @@
# adding new dependencies end up making stage3 to grow. Every addition needs
# then to be think very closely.
-EAPI="5"
+EAPI=6
PYTHON_COMPAT=( python2_7 )
-# Building with --disable-debug highly unrecommended. It will build glib in
-# an unusable form as it disables some commonly used API. Please do not
-# convert this to the use_enable form, as it results in a broken build.
-GCONF_DEBUG="yes"
-# Completely useless with or without USE static-libs, people need to use
-# pkg-config
+# Completely useless with or without USE static-libs, people need to use
pkg-config
GNOME2_LA_PUNT="yes"
-inherit autotools bash-completion-r1 gnome2 libtool eutils flag-o-matic
multilib \
- pax-utils python-r1 toolchain-funcs versionator virtualx linux-info
multilib-minimal
+inherit bash-completion-r1 epunt-cxx flag-o-matic gnome-meson libtool
linux-info \
+ multilib multilib-minimal pax-utils python-r1 toolchain-funcs
versionator virtualx
+
if [[ ${PV} = 9999 ]]; then
- inherit gnome2-live
+ inherit git-r3
fi
DESCRIPTION="The GLib library of C routines"
@@ -26,40 +22,40 @@ HOMEPAGE="http://www.gtk.org/"
SRC_URI="${SRC_URI}
http://pkgconfig.freedesktop.org/releases/pkg-config-0.28.tar.gz" #
pkg.m4 for eautoreconf
+if [[ ${PV} = 9999 ]]; then
+ EGIT_REPO_URI="https://git.gnome.org/browse/${GNOME_ORG_MODULE}"
+ SRC_URI=""
+fi
+
LICENSE="LGPL-2+"
SLOT="2"
-IUSE="dbus fam kernel_linux +mime selinux static-libs systemtap test utils
xattr"
+IUSE="dbus debug fam kernel_linux +mime selinux static-libs systemtap test
utils xattr"
REQUIRED_USE="
utils? ( ${PYTHON_REQUIRED_USE} )
test? ( ${PYTHON_REQUIRED_USE} )
"
+
if [[ ${PV} = 9999 ]]; then
- IUSE="${IUSE} doc"
KEYWORDS=""
else
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64
~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~arm-linux
~x86-linux"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64
~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
fi
RDEPEND="
!<dev-util/gdbus-codegen-${PV}
+ >=dev-libs/libpcre-8.13:3[${MULTILIB_USEDEP},static-libs?]
>=virtual/libiconv-0-r1[${MULTILIB_USEDEP}]
>=virtual/libffi-3.0.13-r1[${MULTILIB_USEDEP}]
+ >=virtual/libintl-0-r2[${MULTILIB_USEDEP}]
>=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]
+ kernel_linux? ( sys-apps/util-linux[${MULTILIB_USEDEP}] )
selinux? ( >=sys-libs/libselinux-2.2.2-r5[${MULTILIB_USEDEP}] )
xattr? ( >=sys-apps/attr-2.4.47-r1[${MULTILIB_USEDEP}] )
fam? ( >=virtual/fam-0-r1[${MULTILIB_USEDEP}] )
utils? (
${PYTHON_DEPS}
>=dev-util/gdbus-codegen-${PV}[${PYTHON_USEDEP}]
- || (
- >=dev-libs/elfutils-0.142
- >=dev-libs/libelf-0.8.12
- >=sys-freebsd/freebsd-lib-9.2_rc1
- )
- )
- abi_x86_32? (
- !<=app-emulation/emul-linux-x86-baselibs-20130224-r9
- !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
+ virtual/libelf:0=
)
"
DEPEND="${RDEPEND}
@@ -75,9 +71,6 @@ DEPEND="${RDEPEND}
>=sys-apps/dbus-1.2.14 )
!<dev-util/gtk-doc-1.15-r2
"
-# gobject-introspection blocker to ensure people don't mix
-# different g-i and glib major versions
-
PDEPEND="!<gnome-base/gvfs-1.6.4-r990
dbus? ( gnome-base/dconf )
mime? ( x11-misc/shared-mime-info )
@@ -86,49 +79,35 @@ PDEPEND="!<gnome-base/gvfs-1.6.4-r990
# dconf is needed to be able to save settings, bug #498436
# Earlier versions of gvfs do not work with glib
-# For safety, generate sources using the gdbus-codegen from glib git tree
-if [[ ${PV} = 9999 ]]; then
- DEPEND="${DEPEND}
- ${PYTHON_DEPS}
- doc? (
- >=dev-util/gdbus-codegen-${PV}[${PYTHON_USEDEP}]
- >=dev-util/gtk-doc-1.20 )
- "
-fi
-
-DOCS="AUTHORS ChangeLog* NEWS*"
+MULTILIB_CHOST_TOOLS=(
+ /usr/bin/gio-querymodules$(get_exeext)
+)
pkg_setup() {
if use kernel_linux ; then
CONFIG_CHECK="~INOTIFY_USER"
- if use test; then
+ if use test ; then
CONFIG_CHECK="~IPV6"
WARNING_IPV6="Your kernel needs IPV6 support for
running some tests, skipping them."
- export IPV6_DISABLED="yes"
fi
linux-info_pkg_setup
fi
}
src_prepare() {
- [[ ${PV} = 9999 ]] && gnome2-live_src_prepare
-
# Prevent build failure in stage3 where pkgconfig is not available, bug
#481056
mv -f "${WORKDIR}"/pkg-config-*/pkg.m4 "${S}"/m4macros/ || die
+ # Copy missing gengiotypefuncs.py
+ cp "${FILESDIR}"/gengiotypefuncs.py "${S}"/gio/tests/ || die
+ # We need gengiotypefuncs
if use test; then
- # Do not try to remove files on live filesystem, upstream bug
#619274
- sed 's:^\(.*"/desktop-app-info/delete".*\):/*\1*/:' \
- -i "${S}"/gio/tests/desktop-app-info.c || die "sed
failed"
-
# 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 "/desktop-app-info\/default/d"
gio/tests/desktop-app-info.c || die
- sed -i -e "/desktop-app-info\/fallback/d"
gio/tests/desktop-app-info.c || die
- sed -i -e "/desktop-app-info\/lastused/d"
gio/tests/desktop-app-info.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
@@ -138,57 +117,33 @@ src_prepare() {
sed -i -e "/appinfo\/launch/d" gio/tests/appinfo.c ||
die
fi
- # Disable tests requiring dbus-python and pygobject; bugs
#349236, #377549, #384853
- if ! has_version dev-python/dbus-python || ! has_version
'dev-python/pygobject:3' ; then
- ewarn "Some tests will be skipped due to
dev-python/dbus-python or dev-python/pygobject:3"
- ewarn "not being present on your system, think on
installing them to get these tests run."
- sed -i -e "/connection\/filter/d"
gio/tests/gdbus-connection.c || die
- sed -i -e "/connection\/large_message/d"
gio/tests/gdbus-connection-slow.c || die
- sed -i -e "/gdbus\/proxy/d" gio/tests/gdbus-proxy.c ||
die
- sed -i -e "/gdbus\/proxy-well-known-name/d"
gio/tests/gdbus-proxy-well-known-name.c || die
- sed -i -e "/gdbus\/introspection-parser/d"
gio/tests/gdbus-introspection.c || die
- sed -i -e "/g_test_add_func/d"
gio/tests/gdbus-threading.c || die
- sed -i -e "/gdbus\/method-calls-in-thread/d"
gio/tests/gdbus-threading.c || die
- # needed to prevent gdbus-threading from asserting
- ln -sfn $(type -P true) gio/tests/gdbus-testserver.py
- fi
-
- # Some tests need ipv6, upstream bug #667468
- if [[ -n "${IPV6_DISABLED}" ]]; then
- sed -i -e "/gdbus\/peer-to-peer/d"
gio/tests/gdbus-peer.c || die
- sed -i -e "/gdbus\/delayed-message-processing/d"
gio/tests/gdbus-peer.c || die
- sed -i -e "/gdbus\/nonce-tcp/d" gio/tests/gdbus-peer.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
- # This test is prone to fail, bug #504024, upstream bug #723719
- sed -i -e '/gdbus-close-pending/d' gio/tests/Makefile.am || die
+ ewarn "Tests for search-utils have been skipped"
+ sed -i -e "/search-utils/d" glib/tests/Makefile.am || die
else
# Don't build tests, also prevents extra deps, bug #512022
sed -i -e 's/ tests//' {.,gio,glib}/Makefile.am || die
fi
# gdbus-codegen is a separate package
- epatch "${FILESDIR}/${PN}-2.40.0-external-gdbus-codegen.patch"
+ eapply "${FILESDIR}"/${PN}-2.54.2-external-codegen.patch
- # leave python shebang alone
+ # Leave python shebang alone - handled by python_replicate_script
+ # We could call python_setup and give configure a valid --with-python
+ # arg, but that would mean a build dep on python when USE=utils.
sed -e '/${PYTHON}/d' \
-i glib/Makefile.{am,in} || die
- # Gentoo handles completions in a different directory
- sed -i "s|^completiondir =.*|completiondir = $(get_bashcompdir)|" \
- gio/Makefile.am || die
-
- epatch_user
-
- # Also needed to prevent cross-compile failures, see bug #267603
- eautoreconf
-
- gnome2_src_prepare
+ gnome-meson_src_prepare
epunt_cxx
}
multilib_src_configure() {
+ # TODO is this still relevent?
# Avoid circular depend with dev-util/pkgconfig and
# native builds (cross-compiles won't need pkg-config
# in the target ROOT to work here)
@@ -199,32 +154,43 @@ multilib_src_configure() {
fi
export LIBFFI_CFLAGS="-I$(echo
/usr/$(get_libdir)/libffi-*/include)"
export LIBFFI_LIBS="-lffi"
+ export PCRE_CFLAGS=" " # test -n "$PCRE_CFLAGS" needs to pass
+ export PCRE_LIBS="-lpcre"
+ fi
+
+ # These configure tests don't work when cross-compiling.
+ if tc-is-cross-compiler ; then
+ # https://bugzilla.gnome.org/show_bug.cgi?id=756473
+ case ${CHOST} in
+ hppa*|metag*) export glib_cv_stack_grows=yes ;;
+ *) export glib_cv_stack_grows=no ;;
+ esac
+ # https://bugzilla.gnome.org/show_bug.cgi?id=756474
+ export glib_cv_uscore=no
+ # https://bugzilla.gnome.org/show_bug.cgi?id=756475
+ export ac_cv_func_posix_get{pwuid,grgid}_r=yes
fi
local myconf
- case "${CHOST}" in
- *-mingw*) myconf="${myconf} --with-threads=win32" ;;
- *) myconf="${myconf} --with-threads=posix" ;;
- esac
-
- [[ ${PV} = 9999 ]] && myconf="${myconf} $(use_enable doc gtk-doc)"
-
- # FIXME: Always use internal libpcre, bug #254659
- # (maybe consider going back to system lib)
- # libelf used only by the gresource bin
- ECONF_SOURCE="${S}" gnome2_src_configure ${myconf} \
- $(use_enable xattr) \
- $(use_enable fam) \
- $(use_enable selinux) \
- $(use_enable static-libs static) \
- $(use_enable systemtap dtrace) \
- $(use_enable systemtap systemtap) \
- $(multilib_native_use_enable utils libelf) \
- --disable-compile-warnings \
- --enable-man \
- --with-pcre=internal \
- --with-xml-catalog="${EPREFIX}/etc/xml/catalog"
+ # FIXME multilib automagic for libelf
+ # FIXME set systemtap/tapse/static-lib install dir and test it.
+ # FIXME no selinux, fam, xattr for now.
+ # FIXME is this still valid.
+ # libelf used only by the gresource bin ??
+ # FIXME enable docs if possible.
+
+ use static-libs && myconf="-Ddefault_library='static'"
+ use debug && myconf="$myconf -Dbuildtype='debug'"
+
+ gnome-meson_src_configure \
+ ${myconf} \
+ -Denable-libmount=$(usex kernel_linux yes no) \
+ $(gnome-meson_use systemtap dtrace) \
+ $(gnome-meson_use systemtap) \
+ -Dwith-pcre=system \
+ -Dwith-docs=no \
+ -Dwith-man=yes
if multilib_is_native_abi; then
local d
@@ -234,14 +200,17 @@ multilib_src_configure() {
fi
}
+multilib_src_compile() {
+ gnome-meson_src_compile
+}
+# FIXME
multilib_src_test() {
- unset DBUS_SESSION_BUS_ADDRESS
export XDG_CONFIG_DIRS=/etc/xdg
export XDG_DATA_DIRS=/usr/local/share:/usr/share
export G_DBUS_COOKIE_SHA1_KEYRING_DIR="${T}/temp"
- unset GSETTINGS_BACKEND # bug 352451
export LC_TIME=C # bug #411967
- python_export_best
+ unset GSETTINGS_BACKEND # bug #596380
+ python_setup
# Related test is a bit nitpicking
mkdir "$G_DBUS_COOKIE_SHA1_KEYRING_DIR"
@@ -254,15 +223,16 @@ multilib_src_test() {
fi
# Need X for dbus-launch session X11 initialization
- Xemake check
+ virtx meson_src_test
}
+# FIXME completentiondir
multilib_src_install() {
- gnome2_src_install
+ gnome-meson_src_install completiondir="$(get_bashcompdir)"
+ keepdir /usr/$(get_libdir)/gio/modules
}
multilib_src_install_all() {
- DOCS="AUTHORS ChangeLog* NEWS* README"
einstalldocs
if use utils ; then
@@ -279,13 +249,64 @@ multilib_src_install_all() {
rm -rf "${ED}/usr/share/gdb/" "${ED}/usr/share/glib-2.0/gdb/"
}
+pkg_preinst() {
+ gnome-meson_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() {
- gnome2_pkg_postinst
- if has_version '<x11-libs/gtk+-3.0.12:3'; then
- # To have a clear upgrade path for gtk+-3.0.x users, have to
resort to
- # a warning instead of a blocker
- ewarn
- ewarn "Using <gtk+-3.0.12:3 with ${P} results in frequent
crashes."
- ewarn "You should upgrade to a newer version of gtk+:3
immediately."
+ # force (re)generation of gschemas.compiled
+ gnome-meson_GNOME2_ECLASS_GLIB_SCHEMAS="force"
+
+ gnome-meson_pkg_postinst
+
+ 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() {
+ gnome-meson_pkg_postrm
+
+ 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
}