Verified Commit d01abeba authored by flussence's avatar flussence

x11-libs/gtk+:3 - new ebuild

Make DBus optional, why not. Thanks NetBSD!
parent 32c4d185
......@@ -123,6 +123,10 @@ At some time in the distant future I plan to drop the OpenRC dep for something n
If that happens I'll give you plenty of advance warning.
--
`x11-libs/gtk+:3` — debloated Gtk+3
Contains a NetBSD patch which makes DBus optional.
Patch is from https://forums.gentoo.org/viewtopic-p-8245612.html#8245612
Copyright
---------
......
DIST gtk+-3.22.30.tar.xz 18946084 BLAKE2B 020512f61ae9d265849bb684c55c6ad3f1e1726d73ce169cd482e781e614f22f37ac23bc721b1dc11df03f0d4e07333266cc8549633cb255ca99a85a499108d3 SHA512 31440a615cb2f406d0f904e59febb8f876106f27818ddd6951c76ab9bcb421ca480dae2bebfb1c4b1e03b833fc7c42e9feede053d9d71f19a02fe778e3197b38
$NetBSD: patch-configure.ac,v 1.2 2014/09/08 12:06:48 wiz Exp $
Make gtk3-atk-bridge an option to avoid unwanted dbus dependency.
--- 1/configure.ac
+++ 2/configure.ac
@@ -1370,8 +1370,13 @@ AC_SUBST(GDK_DEP_CFLAGS)
# Check for Accessibility Toolkit flags
########################################
-if test x$enable_x11_backend = xyes; then
+AC_ARG_WITH(atk-bridge,
+ AS_HELP_STRING([--without-atk-bridge], [Do not use atk-bridge-2.0]),
+ :, with_atk_bridge=yes)
+
+if test x$enable_x11_backend = xyes -a x$with_atk_bridge = xyes; then
ATK_PACKAGES="atk atk-bridge-2.0"
+ AC_DEFINE([HAVE_ATK_BRIDGE], [1], [Define if we're using atk-bridge-2.0])
else
ATK_PACKAGES="atk"
fi
$NetBSD: patch-config.h.in,v 1.2 2014/09/08 12:06:48 wiz Exp $
Make gtk3-atk-bridge an option to avoid unwanted dbus dependency.
--- 1/config.h.in
+++ 1/config.h.in
@@ -10,6 +10,9 @@
/* Disable deprecation warnings from glib */
#undef GLIB_DISABLE_DEPRECATION_WARNINGS
+/* Define if we're using atk-bridge-2.0 */
+#undef HAVE_ATK_BRIDGE
+
/* Define to 1 if you have the `bind_textdomain_codeset' function. */
#undef HAVE_BIND_TEXTDOMAIN_CODESET
Make gtk3-atk-bridge an option to avoid unwanted dbus dependency.
--- 1/gtk/a11y/gtkaccessibility.c
+++ 1/gtk/a11y/gtkaccessibility.c
@@ -38,8 +38,10 @@
#include <gtk/gtkaccessible.h>
#ifdef GDK_WINDOWING_X11
+#ifdef HAVE_ATK_BRIDGE
#include <atk-bridge.h>
#endif
+#endif
static gboolean gail_focus_watcher (GSignalInvocationHint *ihint,
guint n_param_values,
@@ -989,8 +991,10 @@ _gtk_accessibility_init (void)
do_window_event_initialization ();
#ifdef GDK_WINDOWING_X11
+#ifdef HAVE_ATK_BRIDGE
atk_bridge_adaptor_init (NULL, NULL);
#endif
+#endif
atk_misc_instance = g_object_new (GTK_TYPE_MISC_IMPL, NULL);
}
From 101b43f4a38904ee21070a3e2eb5ba03dfe17647 Mon Sep 17 00:00:00 2001
From: Gilles Dartiguelongue <eva@gentoo.org>
Date: Tue, 1 Nov 2016 15:24:22 +0100
Subject: [PATCH] Always use external gtk-update-icon-cache
Check for gtk-update-icon-cache to install demos, otherwise it is not
used when building.
---
configure.ac | 2 ++
demos/gtk-demo/Makefile.am | 2 +-
demos/widget-factory/Makefile.am | 2 +-
docs/reference/gtk/Makefile.am | 1 -
gtk/Makefile.am | 44 ----------------------------------------
5 files changed, 4 insertions(+), 47 deletions(-)
diff --git a/configure.ac b/configure.ac
index 4f9f183..ecf99dc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -999,6 +999,8 @@ dnl Look for a host system's gdk-pixbuf-csource if we are cross-compiling
AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
+AC_PATH_PROG(GTK_UPDATE_ICON_CACHE, [gtk-update-icon-cache], [no])
+
########################################
# Windowing system checks
########################################
diff --git a/demos/gtk-demo/Makefile.am b/demos/gtk-demo/Makefile.am
index 8c15e16..5d774d2 100644
--- a/demos/gtk-demo/Makefile.am
+++ b/demos/gtk-demo/Makefile.am
@@ -171,7 +171,7 @@ dist_appsicon32_DATA = data/32x32/gtk3-demo.png data/32x32/gtk3-demo-symbolic.sy
dist_appsicon48_DATA = data/48x48/gtk3-demo.png data/48x48/gtk3-demo-symbolic.symbolic.png
dist_appsicon256_DATA = data/256x256/gtk3-demo.png data/256x256/gtk3-demo-symbolic.symbolic.png
-update_icon_cache = $(top_builddir)/gtk/gtk-update-icon-cache$(EXEEXT) --ignore-theme-index --force
+update_icon_cache = $(GTK_UPDATE_ICON_CACHE) --ignore-theme-index --force
install-data-hook: install-update-icon-cache
uninstall-hook: uninstall-update-icon-cache
diff --git a/demos/widget-factory/Makefile.am b/demos/widget-factory/Makefile.am
index a6bfbdc..28a3be2 100644
--- a/demos/widget-factory/Makefile.am
+++ b/demos/widget-factory/Makefile.am
@@ -47,7 +47,7 @@ dist_appsicon32_DATA = data/32x32/gtk3-widget-factory.png data/32x32/gtk3-widget
dist_appsicon48_DATA = data/48x48/gtk3-widget-factory.png data/48x48/gtk3-widget-factory-symbolic.symbolic.png
dist_appsicon256_DATA = data/256x256/gtk3-widget-factory.png data/256x256/gtk3-widget-factory-symbolic.symbolic.png
-update_icon_cache = $(top_builddir)/gtk/gtk-update-icon-cache$(EXEEXT) --ignore-theme-index --force
+update_icon_cache = $(GTK_UPDATE_ICON_CACHE) --ignore-theme-index --force
install-data-hook: install-update-icon-cache
uninstall-hook: uninstall-update-icon-cache
diff --git a/docs/reference/gtk/Makefile.am b/docs/reference/gtk/Makefile.am
index 5a88a12..b51f3ac 100644
--- a/docs/reference/gtk/Makefile.am
+++ b/docs/reference/gtk/Makefile.am
@@ -504,7 +504,6 @@ EXTRA_DIST += version.xml.in gtk3.types.in
man_MANS = \
gtk-query-immodules-3.0.1 \
- gtk-update-icon-cache.1 \
gtk-encode-symbolic-svg.1 \
gtk-launch.1 \
gtk3-demo.1 \
diff --git a/gtk/Makefile.am b/gtk/Makefile.am
index 3b76b82..d4c5681 100644
--- a/gtk/Makefile.am
+++ b/gtk/Makefile.am
@@ -1581,7 +1581,6 @@ endif
#
bin_PROGRAMS = \
gtk-query-immodules-3.0 \
- gtk-update-icon-cache \
gtk-encode-symbolic-svg \
gtk-builder-tool \
gtk-query-settings \
@@ -1594,9 +1593,6 @@ gtk_query_immodules_3_0_LDADD = \
$(GMODULE_LIBS) \
$(GTK_DEP_LIBS)
-gtk_update_icon_cache_SOURCES = updateiconcache.c
-gtk_update_icon_cache_LDADD = $(GDK_PIXBUF_LIBS)
-
gtk_encode_symbolic_svg_SOURCES = encodesymbolic.c
gtk_encode_symbolic_svg_LDADD = \
$(GDK_PIXBUF_LIBS) \
@@ -1621,46 +1617,6 @@ gtk_launch_LDADD = \
$(top_builddir)/gdk/libgdk-3.la \
$(GTK_DEP_LIBS)
-if OS_WIN32
-
-# Workaround for UAC silliness: programs with "update" in their name
-# are believed to be installers and require elevated privileges to be
-# used... Embed a manifest file into executable to tell Windows that
-# gtk-update-icon-cache.exe doesn't require any special privileges.
-
-GTK_UPDATE_ICON_CACHE_MANIFEST = gtk-update-icon-cache.exe.manifest
-GTK_UPDATE_ICON_CACHE_RC = gtk-update-icon-cache.rc
-GTK_UPDATE_ICON_CACHE_MANIFEST_OBJECT = gtk-update-icon-cache_manifest.o
-
-$(GTK_UPDATE_ICON_CACHE_MANIFEST):
- (echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>' ; \
- echo '<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">' ; \
- echo ' <assemblyIdentity version="1.0.0.0"' ; \
- echo ' processorArchitecture="'$(EXE_MANIFEST_ARCHITECTURE)'"' ; \
- echo ' name="gtk-update-icon-cache.exe"' ; \
- echo ' type="win32"/>' ; \
- echo ' <!-- Identify the application security requirements. -->' ; \
- echo ' <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">' ; \
- echo ' <security>' ; \
- echo ' <requestedPrivileges>' ; \
- echo ' <requestedExecutionLevel' ; \
- echo ' level="asInvoker"' ; \
- echo ' uiAccess="false"/>' ; \
- echo ' </requestedPrivileges>' ; \
- echo ' </security>' ; \
- echo ' </trustInfo>' ; \
- echo '</assembly>' ) >$@
-
-$(GTK_UPDATE_ICON_CACHE_RC):
- (echo 'CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST '$(GTK_UPDATE_ICON_CACHE_MANIFEST)) >$@
-
-$(GTK_UPDATE_ICON_CACHE_MANIFEST_OBJECT): $(GTK_UPDATE_ICON_CACHE_RC) $(GTK_UPDATE_ICON_CACHE_MANIFEST)
- $(WINDRES) --input $< --output $@ --output-format=coff
-
-gtk_update_icon_cache_LDADD += $(GTK_UPDATE_ICON_CACHE_MANIFEST_OBJECT)
-
-endif
-
.PHONY: files
files:
--
2.10.1
From 4588c9c6463d8958d8305caafa58ea5c263fd352 Mon Sep 17 00:00:00 2001
From: Gilles Dartiguelongue <eva@gentoo.org>
Date: Tue, 16 Jan 2018 09:07:38 +0100
Subject: [PATCH] Fix libcloudproviders check
Use autotools managed variables and make use of pkgconfig macros.
---
configure.ac | 26 +++++++++++++-------------
1 file changed, 13 insertions(+), 13 deletions(-)
diff --git a/configure.ac b/configure.ac
index 24110386b4..cebe66c2e5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -349,8 +349,10 @@ AC_ARG_ENABLE(mir-backend,
AC_ARG_ENABLE(cloudproviders,
[AS_HELP_STRING([--enable-cloudproviders],
- [enable libcloudproviders integration])],
- [cloudproviders_set=yes])
+ [enable libcloudproviders integration])
+ ],
+ [],
+ [enable_cloudproviders=yes])
if test -z "$backend_set"; then
if test "$platform_win32" = yes; then
@@ -1350,17 +1352,15 @@ fi
# Check for libcloudproviders
CLOUDPROVIDER_PACKAGES=""
-if test "x$cloudproviders_set" = "xyes"; then
- CLOUDPROVIDER_PACKAGES="cloudproviders >= cloudproviders_required_version"
- if $PKG_CONFIG --exists $CLOUDPROVIDER_PACKAGES ; then
- AC_DEFINE(HAVE_CLOUDPROVIDERS, [1],
- [Define if libcloudproviders is available]
- )
- else
- AC_MSG_ERROR([
-*** libcloudproviders not found.])
- fi
-fi
+AS_IF([test "$enable_cloudproviders" = "yes"],
+ [
+ CLOUDPROVIDER_PACKAGES="cloudproviders >= cloudproviders_required_version"
+ PKG_CHECK_EXISTS(
+ [$CLOUDPROVIDER_PACKAGES],
+ [AC_DEFINE(HAVE_CLOUDPROVIDERS, [1], [Define if libcloudproviders is available])],
+ [AC_MSG_ERROR([*** libcloudproviders not found])]
+ )
+ ])
CFLAGS="$saved_cflags"
LDFLAGS="$saved_ldflags"
--
2.15.1
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
GNOME2_LA_PUNT="yes"
inherit autotools flag-o-matic gnome2 multilib virtualx multilib-minimal
DESCRIPTION="Gimp ToolKit +"
HOMEPAGE="https://www.gtk.org/"
LICENSE="LGPL-2+"
SLOT="3"
IUSE="aqua atk-bridge broadway cloudprint colord cups examples +introspection test vim-syntax wayland +X xinerama"
REQUIRED_USE="
|| ( aqua wayland X )
xinerama? ( X )
"
KEYWORDS="~amd64 ~x86"
# Upstream wants us to do their job:
# https://bugzilla.gnome.org/show_bug.cgi?id=768662#c1
RESTRICT="test"
# FIXME: introspection data is built against system installation of gtk+:3,
# bug #????
COMMON_DEPEND="
>=dev-libs/atk-2.15[introspection?,${MULTILIB_USEDEP}]
>=dev-libs/glib-2.49.4:2[${MULTILIB_USEDEP}]
media-libs/fontconfig[${MULTILIB_USEDEP}]
>=media-libs/libepoxy-1.0[X(+)?,${MULTILIB_USEDEP}]
>=x11-libs/cairo-1.14[aqua?,glib,svg,X?,${MULTILIB_USEDEP}]
>=x11-libs/gdk-pixbuf-2.30:2[introspection?,${MULTILIB_USEDEP}]
>=x11-libs/pango-1.37.3[introspection?,${MULTILIB_USEDEP}]
x11-misc/shared-mime-info
cloudprint? (
>=net-libs/rest-0.7[${MULTILIB_USEDEP}]
>=dev-libs/json-glib-1.0[${MULTILIB_USEDEP}] )
colord? ( >=x11-misc/colord-0.1.9:0=[${MULTILIB_USEDEP}] )
cups? ( >=net-print/cups-1.2[${MULTILIB_USEDEP}] )
introspection? ( >=dev-libs/gobject-introspection-1.39:= )
wayland? (
>=dev-libs/wayland-1.9.91[${MULTILIB_USEDEP}]
>=dev-libs/wayland-protocols-1.12
media-libs/mesa[wayland,${MULTILIB_USEDEP}]
>=x11-libs/libxkbcommon-0.2[${MULTILIB_USEDEP}]
)
X? (
atk-bridge? ( >=app-accessibility/at-spi2-atk-2.5.3[${MULTILIB_USEDEP}] )
x11-libs/libX11[${MULTILIB_USEDEP}]
>=x11-libs/libXi-1.3[${MULTILIB_USEDEP}]
x11-libs/libXext[${MULTILIB_USEDEP}]
>=x11-libs/libXrandr-1.5[${MULTILIB_USEDEP}]
x11-libs/libXcursor[${MULTILIB_USEDEP}]
x11-libs/libXfixes[${MULTILIB_USEDEP}]
x11-libs/libXcomposite[${MULTILIB_USEDEP}]
x11-libs/libXdamage[${MULTILIB_USEDEP}]
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
)
"
DEPEND="${COMMON_DEPEND}
app-text/docbook-xsl-stylesheets
app-text/docbook-xml-dtd:4.1.2
dev-libs/libxslt
dev-libs/gobject-introspection-common
>=dev-util/gdbus-codegen-2.48
>=dev-util/gtk-doc-am-1.20
>=sys-devel/gettext-0.19.7[${MULTILIB_USEDEP}]
virtual/pkgconfig[${MULTILIB_USEDEP}]
X? ( x11-base/xorg-proto )
test? (
media-fonts/font-misc-misc
media-fonts/font-cursor-misc )
"
# gtk+-3.2.2 breaks Alt key handling in <=x11-libs/vte-0.30.1:2.90
# gtk+-3.3.18 breaks scrolling in <=x11-libs/vte-0.31.0:2.90
RDEPEND="${COMMON_DEPEND}
>=dev-util/gtk-update-icon-cache-3
!<gnome-base/gail-1000
!<x11-libs/vte-0.31.0:2.90
"
# librsvg for svg icons (PDEPEND to avoid circular dep), bug #547710
PDEPEND="
gnome-base/librsvg[${MULTILIB_USEDEP}]
>=x11-themes/adwaita-icon-theme-3.14
vim-syntax? ( app-vim/gtk-syntax )
"
MULTILIB_CHOST_TOOLS=(
/usr/bin/gtk-query-immodules-3.0$(get_exeext)
)
strip_builddir() {
local rule=$1
shift
local directory=$1
shift
sed -e "s/^\(${rule} =.*\)${directory}\(.*\)$/\1\2/" -i $@ \
|| die "Could not strip director ${directory} from build."
}
src_prepare() {
if ! use test ; then
# don't waste time building tests
strip_builddir SRC_SUBDIRS testsuite Makefile.{am,in}
# the tests dir needs to be build now because since commit
# 7ff3c6df80185e165e3bf6aa31bd014d1f8bf224 tests/gtkgears.o needs to be there
# strip_builddir SRC_SUBDIRS tests Makefile.{am,in}
fi
if ! use examples; then
# don't waste time building demos
strip_builddir SRC_SUBDIRS demos Makefile.{am,in}
strip_builddir SRC_SUBDIRS examples Makefile.{am,in}
fi
# gtk-update-icon-cache is installed by dev-util/gtk-update-icon-cache
eapply "${FILESDIR}"/${PN}-3.22.2-update-icon-cache.patch
# Fix broken autotools logic
eapply "${FILESDIR}"/${PN}-3.22.20-libcloudproviders-automagic.patch
# get rid of gtk3-atk-bridge crap
eapply "${FILESDIR}"/${PN}-3.22.19.atk-bridge.patch
eautoreconf
gnome2_src_prepare
}
multilib_src_configure() {
# need libdir here to avoid a double slash in a path that libtool doesn't
# grok so well during install (// between $EPREFIX and usr ...)
# cloudprovider is not packaged in Gentoo
ECONF_SOURCE=${S} \
gnome2_src_configure \
$(use_enable aqua quartz-backend) \
$(use_enable broadway broadway-backend) \
$(use_enable cloudprint) \
$(use_enable colord) \
$(use_enable cups cups auto) \
$(multilib_native_use_enable introspection) \
$(use_enable wayland wayland-backend) \
$(use_enable X x11-backend) \
$(use_enable X xcomposite) \
$(use_enable X xdamage) \
$(use_enable X xfixes) \
$(use_enable X xkb) \
$(use_enable X xrandr) \
$(use_enable xinerama) \
$(use_with atk-bridge) \
--disable-cloudproviders \
--disable-mir-backend \
--disable-papi \
--enable-man \
--with-xml-catalog="${EPREFIX}"/etc/xml/catalog \
--libdir="${EPREFIX}"/usr/$(get_libdir) \
CUPS_CONFIG="${EPREFIX}/usr/bin/${CHOST}-cups-config"
# work-around gtk-doc out-of-source brokedness
if multilib_is_native_abi; then
local d
for d in gdk gtk libgail-util; do
ln -s "${S}"/docs/reference/${d}/html docs/reference/${d}/html || die
done
fi
}
multilib_src_test() {
"${EROOT}${GLIB_COMPILE_SCHEMAS}" --allow-any-name "${S}/gtk" || die
GSETTINGS_SCHEMA_DIR="${S}/gtk" virtx emake check
}
multilib_src_install() {
gnome2_src_install
}
multilib_src_install_all() {
insinto /etc/gtk-3.0
doins "${FILESDIR}"/settings.ini
# Skip README.{in,commits,win32} and useless ChangeLog that would get installed by default
DOCS=( AUTHORS NEWS README )
einstalldocs
}
pkg_preinst() {
gnome2_pkg_preinst
multilib_pkg_preinst() {
# Make immodules.cache belongs to gtk+ alone
local cache="usr/$(get_libdir)/gtk-3.0/3.0.0/immodules.cache"
if [[ -e ${EROOT}${cache} ]]; then
cp "${EROOT}"${cache} "${ED}"/${cache} || die
else
touch "${ED}"/${cache} || die
fi
}
multilib_parallel_foreach_abi multilib_pkg_preinst
}
pkg_postinst() {
gnome2_pkg_postinst
multilib_pkg_postinst() {
gnome2_query_immodules_gtk3 \
|| die "Update immodules cache failed (for ${ABI})"
}
multilib_parallel_foreach_abi multilib_pkg_postinst
if ! has_version "app-text/evince"; then
elog "Please install app-text/evince for print preview functionality."
elog "Alternatively, check \"gtk-print-preview-command\" documentation and"
elog "add it to your settings.ini file."
fi
}
pkg_postrm() {
gnome2_pkg_postrm
if [[ -z ${REPLACED_BY_VERSION} ]]; then
multilib_pkg_postrm() {
rm -f "${EROOT}"usr/$(get_libdir)/gtk-3.0/3.0.0/immodules.cache
}
multilib_foreach_abi multilib_pkg_postrm
fi
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>ant+gentoo.bugs@flussence.eu</email>
<name>Anthony Parsons</name>
</maintainer>
<longdescription lang="en">
This is a patched version of Gentoo's gtk+:3 ebuild adding the USE=atk-bridge flag.
</longdescription>
<use>
<flag name="atk-bridge">Enable the <pkg>dev-libs/atk</pkg> runtime bridge. This is rarely used, spawns extra runtime processes, and adds a dependency on DBus to libgtk-3.</flag>
<!-- Borrowed verbatim from ::gentoo -->
<flag name="broadway">Enable the GDK Broadway backend.</flag>
<flag name="cloudprint">Enable printing via Google Cloud Print.</flag>
<flag name="colord">Use <pkg>x11-misc/colord</pkg> for color management
in printing</flag>
</use>
</pkgmetadata>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment