[arch-commits] Commit in gtk4/trunk (PKGBUILD fix-resources.diff)
Jan Steffens
heftig at gemini.archlinux.org
Mon Jan 17 22:23:38 UTC 2022
Date: Monday, January 17, 2022 @ 22:23:37
Author: heftig
Revision: 434651
4.6.0-2: remove gcp deps; noexecstack
Added:
gtk4/trunk/fix-resources.diff
Modified:
gtk4/trunk/PKGBUILD
--------------------+
PKGBUILD | 12 ++++--
fix-resources.diff | 102 +++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 111 insertions(+), 3 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2022-01-17 22:04:50 UTC (rev 434650)
+++ PKGBUILD 2022-01-17 22:23:37 UTC (rev 434651)
@@ -3,7 +3,7 @@
pkgbase=gtk4
pkgname=(gtk4 gtk-update-icon-cache gtk4-docs gtk4-demos)
pkgver=4.6.0
-pkgrel=1
+pkgrel=2
epoch=1
pkgdesc="GObject-based multi-platform GUI toolkit"
url="https://www.gtk.org/"
@@ -13,15 +13,17 @@
libgl libegl harfbuzz libxkbcommon graphene iso-codes tracker3
libcolord wayland libxrandr libx11 libxrender libxi libxext libxcursor
libxdamage libxfixes fontconfig libxinerama libcloudproviders libcups
- rest json-glib gst-plugins-bad-libs librsvg dconf shared-mime-info
- desktop-file-utils adwaita-icon-theme cantarell-fonts)
+ gst-plugins-bad-libs librsvg dconf shared-mime-info desktop-file-utils
+ adwaita-icon-theme cantarell-fonts)
makedepends=(git meson gi-docgen shaderc sassc gobject-introspection docbook-xsl
wayland-protocols python-gobject python-docutils)
checkdepends=(weston)
_commit=70cb61fb7104c76a15bc6494a10e6ff1d470f6d8 # tags/4.6.0^0
source=("git+https://gitlab.gnome.org/GNOME/gtk.git#commit=$_commit"
+ fix-resources.diff
gtk-update-icon-cache.{hook,script} gtk4-querymodules.hook)
sha256sums=('SKIP'
+ 'd458d2b9621f5131510238f1167a758d1f6c4baabc2a7fe5f445c7bdba2b0802'
'2d435e3bec8b79b533f00f6d04decb1d7c299c6e89b5b175f20be0459f003fe8'
'f1d3a0dbfd82f7339301abecdbe5f024337919b48bd0e09296bb0e79863b2541'
'cd8e607eddd9941f279084e1d15309941423d26cca1897f43524a02e58e48816')
@@ -33,6 +35,10 @@
prepare() {
cd gtk
+
+ # Ensure noexecstack
+ git cherry-pick -n 46509b6dd28c58ae 17c2a1cb4ea2093d
+ git apply -3 ../fix-resources.diff
}
build() {
Added: fix-resources.diff
===================================================================
--- fix-resources.diff (rev 0)
+++ fix-resources.diff 2022-01-17 22:23:37 UTC (rev 434651)
@@ -0,0 +1,102 @@
+diff --git i/demos/gtk-demo/meson.build w/demos/gtk-demo/meson.build
+index 5b79dfad5f..7f82c2d6d6 100644
+--- i/demos/gtk-demo/meson.build
++++ w/demos/gtk-demo/meson.build
+@@ -174,42 +174,46 @@ if build_machine.system() == 'linux' and objcopy.found() and objcopy_supports_ad
+ depfile : 'gtkdemo.gresource.d',
+ command : [glib_compile_resources,
+ '--generate',
++ '--internal',
+ '--target=@OUTPUT@',
+ '--dependency-file=@DEPFILE@',
+ '--sourcedir=' + meson.current_source_dir(),
+ '--sourcedir=' + meson.current_build_dir(),
+ '@INPUT@'])
+
+ # Create resource data file
+ gtkdemo_resources_c = custom_target('gtkdemo_resources.c',
+ input : 'demo.gresource.xml',
+ output : 'gtkdemo_resources.c',
+ depfile : 'gtkdemo_resources.c.d',
+ command : [glib_compile_resources,
+ '--generate-source',
++ '--internal',
+ '--target=@OUTPUT@',
+ '--dependency-file=@DEPFILE@',
+ '--sourcedir=' + meson.current_source_dir(),
+ '--sourcedir=' + meson.current_build_dir(),
+ '--external-data',
+ '--c-name', '_g_binary_gtkdemo',
+ '@INPUT@'])
+
+ # Create object file containing resource data
+ gtkdemo_resources_binary = custom_target('gtkdemo_resources.o',
+ input : gtkdemo_gresource,
+ output : 'gtkdemo_resources.o',
+ command : [ld,
++ '-z', 'noexecstack',
+ '-r',
+ '-b','binary',
+ '@INPUT@',
+ '-o','@OUTPUT@'])
+
+ # Rename symbol to match the one in the C file
+ gtkdemo_resources_o = custom_target('gtkdemo_resources2.o',
+ input : gtkdemo_resources_binary,
+ output : 'gtkdemo_resources2.o',
+ command : [objcopy,
++ '--strip-all',
+ '--add-symbol','_g_binary_gtkdemo_resource_data=.data:0',
+ '@INPUT@',
+ '@OUTPUT@'])
+diff --git i/demos/widget-factory/meson.build w/demos/widget-factory/meson.build
+index 800230b512..9a083eb1ac 100644
+--- i/demos/widget-factory/meson.build
++++ w/demos/widget-factory/meson.build
+@@ -18,42 +18,46 @@ if build_machine.system() == 'linux' and objcopy.found() and objcopy_supports_ad
+ depfile: 'widgetfactory.gresource.d',
+ command : [glib_compile_resources,
+ '--generate',
++ '--internal',
+ '--target=@OUTPUT@',
+ '--dependency-file=@DEPFILE@',
+ '--sourcedir=' + meson.current_source_dir(),
+ '--sourcedir=' + meson.current_build_dir(),
+ '@INPUT@'])
+
+ # Create resource data file
+ widgetfactory_resources_c = custom_target('widgetfactory_resources.c',
+ input : 'widget-factory.gresource.xml',
+ output : 'widgetfactory_resources.c',
+ depfile: 'widgetfactory_resources.c.d',
+ command : [glib_compile_resources,
+ '--generate-source',
++ '--internal',
+ '--target=@OUTPUT@',
+ '--dependency-file=@DEPFILE@',
+ '--sourcedir=' + meson.current_source_dir(),
+ '--sourcedir=' + meson.current_build_dir(),
+ '--external-data',
+ '--c-name', '_g_binary_widgetfactory',
+ '@INPUT@'])
+
+ # Create object file containing resource data
+ widgetfactory_resources_binary = custom_target('widgetfactory_resources.o',
+ input : widgetfactory_gresource,
+ output : 'widgetfactory_resources.o',
+ command : [ld,
++ '-z', 'noexecstack',
+ '-r',
+ '-b','binary',
+ '@INPUT@',
+ '-o','@OUTPUT@'])
+
+ # Rename symbol to match the one in the C file
+ widgetfactory_resources_o = custom_target('widgetfactory_resources2.o',
+ input : widgetfactory_resources_binary,
+ output : 'widgetfactory_resources2.o',
+ command : [objcopy,
++ '--strip-all',
+ '--add-symbol','_g_binary_widgetfactory_resource_data=.data:0',
+ '@INPUT@',
+ '@OUTPUT@'])
More information about the arch-commits
mailing list