Gentoo Archives: gentoo-commits

From: Sobhan Mohammadpour <sobhan@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/gnome:master commit in: dev-libs/glib/files/, dev-libs/glib/
Date: Tue, 02 Jan 2018 15:17:16
Message-Id: 1514906217.c7531c44e7b7be5ee795894aa6de15c182ef0f15.sobhan@gentoo
1 commit: c7531c44e7b7be5ee795894aa6de15c182ef0f15
2 Author: Sobhan Mohammadpour <sobhan <AT> gentoo <DOT> org>
3 AuthorDate: Tue Jan 2 15:16:57 2018 +0000
4 Commit: Sobhan Mohammadpour <sobhan <AT> gentoo <DOT> org>
5 CommitDate: Tue Jan 2 15:16:57 2018 +0000
6 URL: https://gitweb.gentoo.org/proj/gnome.git/commit/?id=c7531c44
7
8 dev-libs/glib: add 2.54.1
9
10 used ebuild and patch from https://github.com/mattst88/gentoo/tree/gnome/dev-libs/glib
11 fixed the ebuild
12
13 Package-Manager: Portage-2.3.19, Repoman-2.3.6
14 RepoMan-Options: --force
15 Manifest-Sign-Key: 0x7DF238CF0AA182E1
16
17 .../files/glib-2.54.1-external-gdbus-codegen.patch | 93 +++++++
18 dev-libs/glib/glib-2.54.1.ebuild | 302 +++++++++++++++++++++
19 2 files changed, 395 insertions(+)
20
21 diff --git a/dev-libs/glib/files/glib-2.54.1-external-gdbus-codegen.patch b/dev-libs/glib/files/glib-2.54.1-external-gdbus-codegen.patch
22 new file mode 100644
23 index 00000000..162d7fa7
24 --- /dev/null
25 +++ b/dev-libs/glib/files/glib-2.54.1-external-gdbus-codegen.patch
26 @@ -0,0 +1,93 @@
27 +diff --git a/configure.ac b/configure.ac
28 +index 9cd151075..2b907f66b 100644
29 +--- a/configure.ac
30 ++++ b/configure.ac
31 +@@ -372,14 +372,14 @@ AC_SUBST(REBUILD)
32 + # option to specify python interpreter to use; this just sets $PYTHON, so that
33 + # we will fallback to reading $PYTHON if --with-python is not given, and
34 + # python.m4 will get the expected input
35 +-AC_ARG_WITH(python,
36 +- AS_HELP_STRING([--with-python=PATH],
37 +- [Path to Python interpreter; searches $PATH if only a program name is given; if not given, searches for a few standard names such as "python3" or "python2"]),
38 +- [PYTHON="$withval"], [])
39 +-if test x"$PYTHON" = xyes; then
40 +- AC_MSG_ERROR([--with-python option requires a path or program argument])
41 +-fi
42 +-AM_PATH_PYTHON(2.7,,PYTHON="python2.7")
43 ++# AC_ARG_WITH(python,
44 ++# AS_HELP_STRING([--with-python=PATH],
45 ++# [Path to Python interpreter; searches $PATH if only a program name is given; if not given, searches for a few standard names such as "python3" or "python2"]),
46 ++# [PYTHON="$withval"], [])
47 ++# if test x"$PYTHON" = xyes; then
48 ++# AC_MSG_ERROR([--with-python option requires a path or program argument])
49 ++# fi
50 ++# AM_PATH_PYTHON(2.7,,PYTHON="python2.7")
51 +
52 +
53 + dnl ***********************
54 +@@ -3475,7 +3475,6 @@ gobject/glib-mkenums
55 + gobject/tests/Makefile
56 + gthread/Makefile
57 + gio/Makefile
58 +-gio/gdbus-2.0/codegen/Makefile
59 + gio/gdbus-2.0/codegen/config.py
60 + gio/gnetworking.h
61 + gio/xdgmime/Makefile
62 +diff --git a/docs/reference/gio/Makefile.am b/docs/reference/gio/Makefile.am
63 +index 5741a3edc..d38e768ff 100644
64 +--- a/docs/reference/gio/Makefile.am
65 ++++ b/docs/reference/gio/Makefile.am
66 +@@ -177,7 +177,6 @@ man_MANS += \
67 + gsettings.1 \
68 + gresource.1 \
69 + gdbus.1 \
70 +- gdbus-codegen.1 \
71 + gio.1 \
72 + $(NULL)
73 +
74 +diff --git a/gio/Makefile.am b/gio/Makefile.am
75 +index 1ffe0cc6f..bfd7b535e 100644
76 +--- a/gio/Makefile.am
77 ++++ b/gio/Makefile.am
78 +@@ -1,6 +1,6 @@
79 + include $(top_srcdir)/glib.mk
80 +
81 +-SUBDIRS = gdbus-2.0/codegen
82 ++SUBDIRS =
83 +
84 + if OS_UNIX
85 + SUBDIRS += xdgmime
86 +diff --git a/gio/tests/Makefile.am b/gio/tests/Makefile.am
87 +index 4e269dc26..0bcc16899 100644
88 +--- a/gio/tests/Makefile.am
89 ++++ b/gio/tests/Makefile.am
90 +@@ -461,10 +461,8 @@ gnotification_SOURCES = $(gdbus_sessionbus_sources) gnotifica
91 +
92 + BUILT_SOURCES += gdbus-test-codegen-generated.c gdbus-test-codegen-generated.h
93 + gdbus-test-codegen.o: gdbus-test-codegen-generated.h
94 +-gdbus-test-codegen-generated.h: test-codegen.xml Makefile $(top_builddir)/gio/gdbus-2.0/codegen/gdbus-codegen
95 +- $(AM_V_GEN) UNINSTALLED_GLIB_SRCDIR=$(top_srcdir) \
96 +- UNINSTALLED_GLIB_BUILDDIR=$(top_builddir) \
97 +- $(PYTHON) $(top_builddir)/gio/gdbus-2.0/codegen/gdbus-codegen \
98 ++gdbus-test-codegen-generated.h: test-codegen.xml Makefile
99 ++ $(AM_V_GEN) gdbus-codegen \
100 + --interface-prefix org.project. \
101 + --generate-c-code gdbus-test-codegen-generated \
102 + --c-generate-object-manager \
103 +diff --git a/gio/tests/gdbus-object-manager-example/Makefile.am b/gio/tests/gdbus-object-manager-example/Makefile.am
104 +index 1d0464c5c..b0ce60ca7 100644
105 +--- a/gio/tests/gdbus-object-manager-example/Makefile.am
106 ++++ b/gio/tests/gdbus-object-manager-example/Makefile.am
107 +@@ -11,10 +11,8 @@ GDBUS_GENERATED = \
108 + gdbus-example-objectmanager-generated-org.gtk.GDBus.Example.ObjectManager.Cat.xml \
109 + $(NULL)
110 +
111 +-$(GDBUS_GENERATED) : gdbus-example-objectmanager.xml Makefile $(top_builddir)/gio/gdbus-2.0/codegen/gdbus-codegen
112 +- $(AM_V_GEN) UNINSTALLED_GLIB_SRCDIR=$(top_srcdir) \
113 +- UNINSTALLED_GLIB_BUILDDIR=$(top_builddir) \
114 +- $(PYTHON) $(top_builddir)/gio/gdbus-2.0/codegen/gdbus-codegen \
115 ++$(GDBUS_GENERATED) : gdbus-example-objectmanager.xml Makefile
116 ++ $(AM_V_GEN) gdbus-codegen \
117 + --interface-prefix org.gtk.GDBus.Example.ObjectManager. \
118 + --c-namespace Example \
119 + --c-generate-object-manager \
120
121 diff --git a/dev-libs/glib/glib-2.54.1.ebuild b/dev-libs/glib/glib-2.54.1.ebuild
122 new file mode 100644
123 index 00000000..857d07cc
124 --- /dev/null
125 +++ b/dev-libs/glib/glib-2.54.1.ebuild
126 @@ -0,0 +1,302 @@
127 +# Copyright 1999-2018 Gentoo Foundation
128 +# Distributed under the terms of the GNU General Public License v2
129 +
130 +# Until bug #537330 glib is a reverse dependency of pkgconfig and, then
131 +# adding new dependencies end up making stage3 to grow. Every addition needs
132 +# then to be think very closely.
133 +
134 +EAPI=6
135 +PYTHON_COMPAT=( python2_7 )
136 +# Completely useless with or without USE static-libs, people need to use
137 +# pkg-config
138 +GNOME2_LA_PUNT="yes"
139 +
140 +inherit autotools bash-completion-r1 epunt-cxx flag-o-matic gnome2 libtool linux-info \
141 + multilib multilib-minimal pax-utils python-r1 toolchain-funcs versionator virtualx
142 +
143 +DESCRIPTION="The GLib library of C routines"
144 +HOMEPAGE="https://www.gtk.org/"
145 +SRC_URI="${SRC_URI}
146 + https://pkgconfig.freedesktop.org/releases/pkg-config-0.28.tar.gz" # pkg.m4 for eautoreconf
147 +
148 +LICENSE="LGPL-2.1+"
149 +SLOT="2"
150 +IUSE="dbus debug fam kernel_linux +mime selinux static-libs systemtap test utils xattr"
151 +REQUIRED_USE="
152 + utils? ( ${PYTHON_REQUIRED_USE} )
153 + test? ( ${PYTHON_REQUIRED_USE} )
154 +"
155 +
156 +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"
157 +
158 +# Added util-linux multilib dependency to have libmount support (which
159 +# is always turned on on linux systems, unless explicitly disabled, but
160 +# this ebuild does not do that anyway) (bug #599586)
161 +
162 +RDEPEND="
163 + !<dev-util/gdbus-codegen-${PV}
164 + >=dev-libs/libpcre-8.13:3[${MULTILIB_USEDEP},static-libs?]
165 + >=virtual/libiconv-0-r1[${MULTILIB_USEDEP}]
166 + >=virtual/libffi-3.0.13-r1[${MULTILIB_USEDEP}]
167 + >=virtual/libintl-0-r2[${MULTILIB_USEDEP}]
168 + >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]
169 + kernel_linux? ( sys-apps/util-linux[${MULTILIB_USEDEP}] )
170 + selinux? ( >=sys-libs/libselinux-2.2.2-r5[${MULTILIB_USEDEP}] )
171 + xattr? ( >=sys-apps/attr-2.4.47-r1[${MULTILIB_USEDEP}] )
172 + fam? ( >=virtual/fam-0-r1[${MULTILIB_USEDEP}] )
173 + utils? (
174 + ${PYTHON_DEPS}
175 + >=dev-util/gdbus-codegen-${PV}[${PYTHON_USEDEP}]
176 + virtual/libelf:0=
177 + )
178 +"
179 +DEPEND="${RDEPEND}
180 + app-text/docbook-xml-dtd:4.1.2
181 + >=dev-libs/libxslt-1.0
182 + >=sys-devel/gettext-0.11
183 + >=dev-util/gtk-doc-am-1.20
184 + systemtap? ( >=dev-util/systemtap-1.3 )
185 + test? (
186 + sys-devel/gdb
187 + ${PYTHON_DEPS}
188 + >=dev-util/gdbus-codegen-${PV}[${PYTHON_USEDEP}]
189 + >=sys-apps/dbus-1.2.14 )
190 + !<dev-util/gtk-doc-1.15-r2
191 +"
192 +PDEPEND="!<gnome-base/gvfs-1.6.4-r990
193 + dbus? ( gnome-base/dconf )
194 + mime? ( x11-misc/shared-mime-info )
195 +"
196 +# shared-mime-info needed for gio/xdgmime, bug #409481
197 +# dconf is needed to be able to save settings, bug #498436
198 +# Earlier versions of gvfs do not work with glib
199 +
200 +MULTILIB_CHOST_TOOLS=(
201 + /usr/bin/gio-querymodules$(get_exeext)
202 +)
203 +
204 +pkg_setup() {
205 + if use kernel_linux ; then
206 + CONFIG_CHECK="~INOTIFY_USER"
207 + if use test ; then
208 + CONFIG_CHECK="~IPV6"
209 + WARNING_IPV6="Your kernel needs IPV6 support for running some tests, skipping them."
210 + fi
211 + linux-info_pkg_setup
212 + fi
213 +}
214 +
215 +src_prepare() {
216 + # Prevent build failure in stage3 where pkgconfig is not available, bug #481056
217 + mv -f "${WORKDIR}"/pkg-config-*/pkg.m4 "${S}"/m4macros/ || die
218 +
219 + if use test; then
220 + # Disable tests requiring dev-util/desktop-file-utils when not installed, bug #286629, upstream bug #629163
221 + if ! has_version dev-util/desktop-file-utils ; then
222 + ewarn "Some tests will be skipped due dev-util/desktop-file-utils not being present on your system,"
223 + ewarn "think on installing it to get these tests run."
224 + sed -i -e "/appinfo\/associations/d" gio/tests/appinfo.c || die
225 + sed -i -e "/g_test_add_func/d" gio/tests/desktop-app-info.c || die
226 + fi
227 +
228 + # gdesktopappinfo requires existing terminal (gnome-terminal or any
229 + # other), falling back to xterm if one doesn't exist
230 + if ! has_version x11-terms/xterm && ! has_version x11-terms/gnome-terminal ; then
231 + ewarn "Some tests will be skipped due to missing terminal program"
232 + sed -i -e "/appinfo\/launch/d" gio/tests/appinfo.c || die
233 + fi
234 +
235 + # https://bugzilla.gnome.org/show_bug.cgi?id=722604
236 + sed -i -e "/timer\/stop/d" glib/tests/timer.c || die
237 + sed -i -e "/timer\/basic/d" glib/tests/timer.c || die
238 +
239 + ewarn "Tests for search-utils have been skipped"
240 + sed -i -e "/search-utils/d" glib/tests/Makefile.am || die
241 + else
242 + # Don't build tests, also prevents extra deps, bug #512022
243 + sed -i -e 's/ tests//' {.,gio,glib}/Makefile.am || die
244 + fi
245 +
246 + # gdbus-codegen is a separate package
247 + eapply "${FILESDIR}"/${PN}-2.54.1-external-gdbus-codegen.patch
248 +
249 + # Leave python shebang alone - handled by python_replicate_script
250 + # We could call python_setup and give configure a valid --with-python
251 + # arg, but that would mean a build dep on python when USE=utils.
252 + sed -e '/${PYTHON}/d' \
253 + -i glib/Makefile.{am,in} || die
254 +
255 + sed -e 's:@PYTHON@:python:' \
256 + -i gobject/glib-{genmarshal,mkenums}.in || die
257 + # Also needed to prevent cross-compile failures, see bug #267603
258 + eautoreconf
259 +
260 + gnome2_src_prepare
261 +
262 + epunt_cxx
263 +}
264 +
265 +multilib_src_configure() {
266 + # Avoid circular depend with dev-util/pkgconfig and
267 + # native builds (cross-compiles won't need pkg-config
268 + # in the target ROOT to work here)
269 + if ! tc-is-cross-compiler && ! $(tc-getPKG_CONFIG) --version >& /dev/null; then
270 + if has_version sys-apps/dbus; then
271 + export DBUS1_CFLAGS="-I/usr/include/dbus-1.0 -I/usr/$(get_libdir)/dbus-1.0/include"
272 + export DBUS1_LIBS="-ldbus-1"
273 + fi
274 + export LIBFFI_CFLAGS="-I$(echo /usr/$(get_libdir)/libffi-*/include)"
275 + export LIBFFI_LIBS="-lffi"
276 + export PCRE_CFLAGS=" " # test -n "$PCRE_CFLAGS" needs to pass
277 + export PCRE_LIBS="-lpcre"
278 + fi
279 +
280 + # These configure tests don't work when cross-compiling.
281 + if tc-is-cross-compiler ; then
282 + # https://bugzilla.gnome.org/show_bug.cgi?id=756473
283 + case ${CHOST} in
284 + hppa*|metag*) export glib_cv_stack_grows=yes ;;
285 + *) export glib_cv_stack_grows=no ;;
286 + esac
287 + # https://bugzilla.gnome.org/show_bug.cgi?id=756474
288 + export glib_cv_uscore=no
289 + # https://bugzilla.gnome.org/show_bug.cgi?id=756475
290 + export ac_cv_func_posix_get{pwuid,grgid}_r=yes
291 + fi
292 +
293 + local myconf
294 +
295 + case "${CHOST}" in
296 + *-mingw*) myconf="${myconf} --with-threads=win32" ;;
297 + *) myconf="${myconf} --with-threads=posix" ;;
298 + esac
299 +
300 + # libelf used only by the gresource bin
301 + ECONF_SOURCE="${S}" gnome2_src_configure ${myconf} \
302 + $(usex debug --enable-debug=yes ' ') \
303 + $(use_enable xattr) \
304 + $(use_enable fam) \
305 + $(use_enable kernel_linux libmount) \
306 + $(use_enable selinux) \
307 + $(use_enable static-libs static) \
308 + $(use_enable systemtap dtrace) \
309 + $(use_enable systemtap systemtap) \
310 + $(multilib_native_use_enable utils libelf) \
311 + --disable-compile-warnings \
312 + --enable-man \
313 + --with-pcre=system \
314 + --with-xml-catalog="${EPREFIX}/etc/xml/catalog"
315 +
316 + if multilib_is_native_abi; then
317 + local d
318 + for d in glib gio gobject; do
319 + ln -s "${S}"/docs/reference/${d}/html docs/reference/${d}/html || die
320 + done
321 + fi
322 +}
323 +
324 +multilib_src_test() {
325 + export XDG_CONFIG_DIRS=/etc/xdg
326 + export XDG_DATA_DIRS=/usr/local/share:/usr/share
327 + export G_DBUS_COOKIE_SHA1_KEYRING_DIR="${T}/temp"
328 + export LC_TIME=C # bug #411967
329 + unset GSETTINGS_BACKEND # bug #596380
330 + python_setup
331 +
332 + # Related test is a bit nitpicking
333 + mkdir "$G_DBUS_COOKIE_SHA1_KEYRING_DIR"
334 + chmod 0700 "$G_DBUS_COOKIE_SHA1_KEYRING_DIR"
335 +
336 + # Hardened: gdb needs this, bug #338891
337 + if host-is-pax ; then
338 + pax-mark -mr "${BUILD_DIR}"/tests/.libs/assert-msg-test \
339 + || die "Hardened adjustment failed"
340 + fi
341 +
342 + # Need X for dbus-launch session X11 initialization
343 + virtx emake check
344 +}
345 +
346 +multilib_src_install() {
347 + gnome2_src_install completiondir="$(get_bashcompdir)"
348 + keepdir /usr/$(get_libdir)/gio/modules
349 +}
350 +
351 +multilib_src_install_all() {
352 + einstalldocs
353 +
354 + if use utils ; then
355 + python_replicate_script "${ED}"/usr/bin/gtester-report
356 + else
357 + rm "${ED}usr/bin/gtester-report"
358 + rm "${ED}usr/share/man/man1/gtester-report.1"
359 + fi
360 +
361 + # Do not install charset.alias even if generated, leave it to libiconv
362 + rm -f "${ED}/usr/lib/charset.alias"
363 +
364 + # Don't install gdb python macros, bug 291328
365 + rm -rf "${ED}/usr/share/gdb/" "${ED}/usr/share/glib-2.0/gdb/"
366 +}
367 +
368 +pkg_preinst() {
369 + gnome2_pkg_preinst
370 +
371 + # Make gschemas.compiled belong to glib alone
372 + local cache="usr/share/glib-2.0/schemas/gschemas.compiled"
373 +
374 + if [[ -e ${EROOT}${cache} ]]; then
375 + cp "${EROOT}"${cache} "${ED}"/${cache} || die
376 + else
377 + touch "${ED}"/${cache} || die
378 + fi
379 +
380 + multilib_pkg_preinst() {
381 + # Make giomodule.cache belong to glib alone
382 + local cache="usr/$(get_libdir)/gio/modules/giomodule.cache"
383 +
384 + if [[ -e ${EROOT}${cache} ]]; then
385 + cp "${EROOT}"${cache} "${ED}"/${cache} || die
386 + else
387 + touch "${ED}"/${cache} || die
388 + fi
389 + }
390 +
391 + # Don't run the cache ownership when cross-compiling, as it would end up with an empty cache
392 + # file due to inability to create it and GIO might not look at any of the modules there
393 + if ! tc-is-cross-compiler ; then
394 + multilib_foreach_abi multilib_pkg_preinst
395 + fi
396 +}
397 +
398 +pkg_postinst() {
399 + # force (re)generation of gschemas.compiled
400 + GNOME2_ECLASS_GLIB_SCHEMAS="force"
401 +
402 + gnome2_pkg_postinst
403 +
404 + multilib_pkg_postinst() {
405 + gnome2_giomodule_cache_update \
406 + || die "Update GIO modules cache failed (for ${ABI})"
407 + }
408 + if ! tc-is-cross-compiler ; then
409 + multilib_foreach_abi multilib_pkg_postinst
410 + else
411 + ewarn "Updating of GIO modules cache skipped due to cross-compilation."
412 + ewarn "You might want to run gio-querymodules manually on the target for"
413 + ewarn "your final image for performance reasons and re-run it when packages"
414 + ewarn "installing GIO modules get upgraded or added to the image."
415 + fi
416 +}
417 +
418 +pkg_postrm() {
419 + gnome2_pkg_postrm
420 +
421 + if [[ -z ${REPLACED_BY_VERSION} ]]; then
422 + multilib_pkg_postrm() {
423 + rm -f "${EROOT}"usr/$(get_libdir)/gio/modules/giomodule.cache
424 + }
425 + multilib_foreach_abi multilib_pkg_postrm
426 + rm -f "${EROOT}"usr/share/glib-2.0/schemas/gschemas.compiled
427 + fi
428 +}