diff --git a/pkg.info b/pkg.info index 50ceb63..30d9e34 100644 --- a/pkg.info +++ b/pkg.info @@ -1,7 +1,7 @@ name: gtk4 description: GObject-based multi-platform GUI toolkit version 4 version: 4.21.2 -revision: 1 +revision: 2 url: https://www.gtk.org/ license: LGPL2.1-or-later architecture: any @@ -102,6 +102,11 @@ split_packages: - shared-mime-info - vulkan-loader - wayland + - name: gtk4-demos + description: Demo applications for GTK4 + depends: + - gtk4 + - hicolor-icon-theme - name: gtk-update-icon-cache description: The gtk-update-icon-cache binary depends: diff --git a/source.sh b/source.sh index abecacd..2d40a7b 100644 --- a/source.sh +++ b/source.sh @@ -16,15 +16,35 @@ build() { meson compile -C build } +_pick() { + local p="$1" f d; shift + for f; do + [ -d "$BPM_WORKDIR"/output_"$p" ] || { echo "Split package $p not found"; exit 1; } + d="$BPM_WORKDIR"/output_"$p"/"${f#$BPM_OUTPUT}" + mkdir -p "$(dirname "$d")" + mv "$f" "$d" + rmdir -p --ignore-fail-on-non-empty "$(dirname "$f")" + done +} + # The package function is executed in the source directory # This function is used to move the compiled files into the output directory package_gtk4() { meson install -C build --destdir="$BPM_OUTPUT" - # Move gtk-update-icon-cache to temporary directory for gtk-update-icon-cache package - mkdir "$BPM_WORKDIR"/output-gtk-update-icon-cache - install -d "$BPM_WORKDIR"/output-gtk-update-icon-cache/usr/{bin,share/man/man1} - mv "$BPM_OUTPUT"/usr/bin/gtk4-update-icon-cache -t "$BPM_WORKDIR"/output-gtk-update-icon-cache/usr/bin/ + cd "$BPM_OUTPUT" + + # Move demo files into split package + _pick gtk4-demos usr/bin/gtk4-{demo,demo-application,node-editor,print-editor,widget-factory} + _pick gtk4-demos usr/share/applications/org.gtk.{Demo4,PrintEditor4,WidgetFactory4,gtk4.NodeEditor}.desktop + _pick gtk4-demos usr/share/glib-2.0/schemas/org.gtk.Demo4.gschema.xml + _pick gtk4-demos usr/share/icons/hicolor/*/apps/org.gtk.{Demo4,PrintEditor4,WidgetFactory4,gtk4.NodeEditor}[-.]* + _pick gtk4-demos usr/share/man/man1/gtk4-{demo,demo-application,node-editor,widget-factory}.1 + _pick gtk4-demos usr/share/metainfo/org.gtk.{Demo4,PrintEditor4,WidgetFactory4,gtk4.NodeEditor}.appdata.xml + + # Move gtk-update-icon-cache into split package + _pick gtk-update-icon-cache usr/bin/gtk4-update-icon-cache + _pick gtk-update-icon-cache usr/share/man/man1/gtk4-update-icon-cache.1 # Install BPM hook and script install -Dm644 "$BPM_WORKDIR"/gtk4-querymodules.bpmhook "$BPM_OUTPUT"/var/lib/bpm/hooks/gtk4-querymodules.bpmhook @@ -34,11 +54,12 @@ package_gtk4() { install -Dm644 "$BPM_SOURCE"/COPYING "$BPM_OUTPUT"/usr/share/licenses/gtk3/COPYING } -package_gtk-update-icon-cache() { - # Replace 'output' directory with 'output-gtk-update-icon-cache' - rmdir "$BPM_OUTPUT" - mv "$BPM_WORKDIR"/output-gtk-update-icon-cache "$BPM_OUTPUT" +package_gtk4-demos() { + # Install package license + install -Dm644 "$BPM_SOURCE"/COPYING "$BPM_OUTPUT"/usr/share/licenses/gtk3/COPYING +} +package_gtk-update-icon-cache() { # Symlink 'gtk-update-icon-cache' to 'gtk4-update-icon-cache' ln -s gtk4-update-icon-cache "$BPM_OUTPUT"/usr/bin/gtk-update-icon-cache