diff --git a/extra/gtk4/PKGBUILD b/extra/gtk4/PKGBUILD new file mode 100644 index 000000000..4637d6014 --- /dev/null +++ b/extra/gtk4/PKGBUILD @@ -0,0 +1,86 @@ +# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org> + +# ALARM: Kevin Mihelich <kevin@archlinuxarm.org> +# - remove makedepends on pandoc +# - set gtk_doc=false, comment doc build + +pkgbase=gtk4 +pkgname=(gtk4 gtk-update-icon-cache) +pkgver=4.0.1 +pkgrel=1 +epoch=1 +pkgdesc="GObject-based multi-platform GUI toolkit" +arch=(x86_64) +url="https://www.gtk.org/" +depends=(glib2 cairo pango fribidi gdk-pixbuf2 libepoxy libgl libegl harfbuzz + libxkbcommon graphene iso-codes tracker3 colord wayland libxrandr + libx11 libxrender libxi libxext libxcursor libxdamage libxfixes + libxcomposite fontconfig libxinerama vulkan-icd-loader + libcloudproviders libcups rest json-glib ffmpeg gst-plugins-bad-libs + librsvg dconf shared-mime-info desktop-file-utils adwaita-icon-theme + cantarell-fonts) +makedepends=(git meson gtk-doc glib2-docs wayland-protocols vulkan-headers + sysprof python shaderc sassc gobject-introspection) +license=(LGPL) +_commit=60835227a1ff24512c98b2da608979b426329d87 # tags/4.0.1^0 +source=("git+https://gitlab.gnome.org/GNOME/gtk.git#commit=$_commit" + gtk-update-icon-cache.{hook,script}) +sha256sums=('SKIP' + '2d435e3bec8b79b533f00f6d04decb1d7c299c6e89b5b175f20be0459f003fe8' + 'f1d3a0dbfd82f7339301abecdbe5f024337919b48bd0e09296bb0e79863b2541') + +pkgver() { + cd gtk + git describe --tags | sed 's/-/+/g' +} + +prepare() { + cd gtk +} + +build() { + CFLAGS+=" -DG_ENABLE_DEBUG -DG_DISABLE_CAST_CHECKS" + arch-meson gtk build \ + -D broadway_backend=true \ + -D cloudproviders=enabled \ + -D sysprof=enabled \ + -D tracker=enabled \ + -D colord=enabled \ + -D gtk_doc=false \ + -D man-pages=true + meson compile -C build + #ninja -C build g{d,s,t}k4-doc +} + +package_gtk4() { + depends+=(gtk-update-icon-cache) + provides+=(libgtk-4.so) + + DESTDIR="$pkgdir" meson install -C build + + install -Dm644 /dev/stdin "$pkgdir/usr/share/gtk-4.0/settings.ini" <<END +[Settings] +gtk-icon-theme-name = Adwaita +gtk-theme-name = Adwaita +gtk-font-name = Cantarell 11 +END + + # gtk-update-icon-cache is also used by other toolkits + mkdir -p guic/usr/{bin,share/man/man1} + mv {"$pkgdir",guic}/usr/bin/gtk4-update-icon-cache + mv {"$pkgdir",guic}/usr/share/man/man1/gtk4-update-icon-cache.1 +} + +package_gtk-update-icon-cache() { + pkgdesc="GTK icon cache updater" + depends=(gdk-pixbuf2 librsvg hicolor-icon-theme) + + mv -t "$pkgdir" guic/* + ln -s gtk4-update-icon-cache "$pkgdir/usr/bin/gtk-update-icon-cache" + ln -s gtk4-update-icon-cache.1 "$pkgdir/usr/share/man/man1/gtk-update-icon-cache.1" + + install -Dt "$pkgdir/usr/share/libalpm/hooks" -m644 gtk-update-icon-cache.hook + install -D gtk-update-icon-cache.script "$pkgdir/usr/share/libalpm/scripts/gtk-update-icon-cache" +} + +# vim:set ts=2 sw=2 et: diff --git a/extra/gtk4/gtk-update-icon-cache.hook b/extra/gtk4/gtk-update-icon-cache.hook new file mode 100644 index 000000000..758a62187 --- /dev/null +++ b/extra/gtk4/gtk-update-icon-cache.hook @@ -0,0 +1,13 @@ +[Trigger] +Type = Path +Operation = Install +Operation = Upgrade +Operation = Remove +Target = usr/share/icons/*/ +Target = !usr/share/icons/*/?* + +[Action] +Description = Updating icon theme caches... +When = PostTransaction +Exec = /usr/share/libalpm/scripts/gtk-update-icon-cache +NeedsTargets diff --git a/extra/gtk4/gtk-update-icon-cache.script b/extra/gtk4/gtk-update-icon-cache.script new file mode 100644 index 000000000..ee0f1d12d --- /dev/null +++ b/extra/gtk4/gtk-update-icon-cache.script @@ -0,0 +1,10 @@ +#!/bin/bash + +while read -r f; do + if [[ -e ${f}index.theme ]]; then + gtk-update-icon-cache -q "$f" + elif [[ -d $f ]]; then + rm -f "${f}icon-theme.cache" + rmdir --ignore-fail-on-non-empty "$f" + fi +done