Spracherkennung für: .yaml vermutete Sprache: MT940 {MT940[47] Fortran[22] Apollo[9]} [Methode: maximale Elemente, drei Dimensionen]
name: gimp
adopt
-info: gimp
grade: stable #see parts:babl_or_gegl:override
-pull
base: core24
compression: lzo
confinement: strict
platforms:
arm64:
build
-on: [arm64]
build
-for: [arm64]
amd64:
build
-on: [amd64]
build
-for: [amd64]
apps:
gimp:
common
-id: org.gimp.GIMP
command: usr/bin/gimp
command
-chain: [command-chain/enable-plugins]
desktop: usr/share/applications/gimp.desktop
environment:
HOME: $SNAP_REAL_HOME
#Internet connection, Matting Leving support on FG select and NPU hardware support
LD_LIBRARY_PATH: $SNAP/gnome
-platform/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libproxy:$SNAP/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/blas:$SNAP/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/lapack:$SNAP/npu-libs:$LD_LIBRARY_PATH
#JavaScript plug
-ins support
GI_TYPELIB_PATH: $SNAP/gnome
-platform/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/gjs/girepository-1.0:$GI_TYPELIB_PATH
#AVIF, HEIC and HEJ2 plug
-ins support
LIBHEIF_PLUGIN_PATH: $SNAP/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libheif/plugins
#PostScript plug
-in support
GS_LIB: $SNAP/usr/share/ghostscript/
10.
02.
1/Resource/Init
#Acessibility support
GTK_MODULES:
""
slots:
- dbus-gimp
plugs:
- cups
- home
- network
- removable-media
- intel-npu
- npu-libs
- gimp-plugins
- gimp-config
extensions: [gnome]
layout:
#Needed at runtime because etc is usually not on /usr prefix
/etc/gimp:
bind: $SNAP/etc/gimp
slots:
dbus
-gimp:
interface: dbus
bus: session
name: org.gimp.GIMP.UI
plugs:
intel
-npu:
interface: custom
-device
custom
-device: intel-npu-device
npu
-libs:
interface: content
content: npu
-libs-2404
target: $SNAP/npu
-libs
gimp
-plugins:
interface: content
content: gimp
-plugins-3
target: $SNAP/gimp
-plugins
gimp
-config:
interface: personal
-files
write:
- $HOME/.config/GIMP
parts:
buildenv:
plugin: nil
build
-environment: &SNAP_ENVIRON
- CLICOLOR_FORCE: '1'
- CFLAGS: -fdiagnostics-color=always
- CXXFLAGS: -fdiagnostics-color=always
- LD_LIBRARY_PATH: $CRAFT_STAGE/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR:$LD_LIBRARY_PATH
- GI_TYPELIB_PATH: $CRAFT_STAGE/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/girepository-1.0:$GI_TYPELIB_PATH
- LIBHEIF_PLUGIN_PATH: $CRAFT_PART_INSTALL/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libheif/plugins
#Needed to generate splash image because babl and gegl are moved by snapcraft a lot
- BABL_PATH: $CRAFT_STAGE/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/babl-0.1
- GEGL_PATH: $CRAFT_STAGE/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/gegl-0.4
#FIXME: GNOME SDK is not setting this runtime var required by glib
-networking test on gimp build
- GIO_MODULE_DIR: ${SNAPCRAFT_GNOME_SDK:-/snap/gnome-46-2404-sdk/current/}usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/gio/modules
babl:
source:
https://gitlab.gnome.org/GNOME/babl.git
source
-depth: 1
override
-pull: |
if [
"$SNAPCRAFT_PROJECT_GRADE" !=
'stable' ] && [
"$SNAPCRAFT_PROJECT_NAME" =
'gimp' ]; then
printf
'\033[31m(ERROR)\033[0m non-tagged source can not be deployed to gimp snap. Please, change grade value to stable\n'
exit
1
fi
if [
"$SNAPCRAFT_PROJECT_GRADE" !=
'stable' ] && [
"$SNAPCRAFT_PROJECT_NAME" !=
'gimp' ]; then
craftctl default
else
repo=
"https://gitlab.gnome.org/GNOME/$CRAFT_PART_NAME.git"
tag_branch=$(git ls
-remote --exit-code --refs --sort=version:refname "$repo" "refs/tags/$(echo "$CRAFT_PART_NAME" | tr '[:lower:]' '[:upper:]')_[0-9]*_[0-9]*_[0-9]*" | tail -n 1 | sed 's|.*refs/tags/||')
git clone
--branch "$tag_branch" --depth 1 "$repo" .
fi
build
-environment: *SNAP_ENVIRON
plugin: meson
meson
-parameters:
- -Dprefix=/usr
- -Dlibdir=lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR
- -Drelocatable=enabled
- -Dpkgconfig.relocatable=true
- -Dgi-docgen=disabled
- -Dwith-docs=false
gegl:
after:
- babl
source:
https://gitlab.gnome.org/GNOME/gegl.git
source
-depth: 1
override
-pull: |
if [
"$SNAPCRAFT_PROJECT_GRADE" !=
'stable' ] && [
"$SNAPCRAFT_PROJECT_NAME" =
'gimp' ]; then
printf
'\033[31m(ERROR)\033[0m non-tagged source can not be deployed to gimp snap. Please, change grade value to stable\n'
exit
1
fi
if [
"$SNAPCRAFT_PROJECT_GRADE" !=
'stable' ] && [
"$SNAPCRAFT_PROJECT_NAME" !=
'gimp' ]; then
craftctl default
else
repo=
"https://gitlab.gnome.org/GNOME/$CRAFT_PART_NAME.git"
tag_branch=$(git ls
-remote --exit-code --refs --sort=version:refname "$repo" "refs/tags/$(echo "$CRAFT_PART_NAME" | tr '[:lower:]' '[:upper:]')_[0-9]*_[0-9]*_[0-9]*" | tail -n 1 | sed 's|.*refs/tags/||')
git clone
--branch "$tag_branch" --depth 1 "$repo" .
fi
build
-environment: *SNAP_ENVIRON
plugin: meson
meson
-parameters:
- -Dprefix=/usr
- -Dlibdir=lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR
- -Drelocatable=enabled
- -Dpkgconfig.relocatable=true
- -Dgi-docgen=disabled
- -Ddocs=false
build
-packages:
- libmaxflow-dev
- libopenexr-dev #FIXME: https://github.com/ubuntu/gnome-sdk/issues/321
- libsuitesparse-dev
stage
-packages:
- graphviz #FIXME: https://github.com/ubuntu/gnome-sdk/issues/324
- libmaxflow0
- libumfpack6
gimp:
after:
- babl
- gegl
source: .
source
-type: local
override
-pull: |
craftctl default
if ! git describe
--tags --exact-match >/dev/null 2>&1 && [ "$SNAPCRAFT_PROJECT_NAME" = 'gimp' ]; then
printf
'\033[31m(ERROR)\033[0m non-tagged source can not be deployed to gimp snap. Please, checkout gimp repo to a tagged commit\n'
exit
1
fi
craftctl set version=
"$(awk -F"'" '/version:/ {print $2; exit}' $CRAFT_PART_SRC/meson.build)"
build
-environment: *SNAP_ENVIRON
plugin: meson
meson
-parameters:
- -Dprefix=/usr
- -Dlibdir=lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR
- -Drelocatable-bundle=yes
- -Dpkgconfig.relocatable=true
- -Dgi-docgen=disabled
- -Dcheck-update=no
- -Denable-default-bin=enabled
- -Dbuild-id=org.gimp.GIMP.snapcraft.latest
build
-packages:
- bison
- flex
- libaa1-dev #FIXME: https://github.com/ubuntu/gnome-sdk/issues/322
- libarchive-dev #FIXME: https://github.com/ubuntu/gnome-sdk/issues/318
- libcfitsio-dev #FIXME: https://github.com/ubuntu/gnome-sdk/issues/320
- libexpat1-dev #it is on Gnome SDK Snap but inexplicably the linker can't find it
- libgexiv2-dev
- libgs-dev
- libjxl-dev #FIXME: https://github.com/ubuntu/gnome-sdk/issues/317
- libmng-dev
- libmypaint-dev
- libqoi-dev
- libwmf-dev
- libxmu-dev
- libxpm-dev #FIXME: https://github.com/ubuntu/gnome-sdk/issues/319
- xsltproc
stage
-packages:
- gir1.2-gexiv2-0.10
- libgs10
- libheif-plugin-dav1d
- libheif-plugin-aomenc
- libheif-plugin-libde265
- libheif-plugin-x265
- libheif-plugin-j2kdec
- libheif-plugin-j2kenc
- libmng2
- libmypaint-1.5-1
- libwmf-0.2-7
- libxmu6
- mypaint-brushes
- poppler-data
- xdg-utils
override
-stage: |
# update gimp
's plugin search path so it will pick up plugins mounted over snapd's content inter
face
current_path=$(grep "# (plug-in-path" ${CRAFT_PART_INSTALL}/etc/gimp/3.0/gimprc | cut -d '"' -f2)
echo "(plug-in-path \"${current_path}:/snap/${SNAPCRAFT_PROJECT_NAME}/current/gimp-plugins\")" >> ${CRAFT_PART_INSTALL}/etc/gimp/3.0/gimprc
craftctl default
parse-info:
- usr/share/metainfo/org.gimp.GIMP.appdata.xml
override-prime: |
# get gimp icon for proper desktop integration
cp $CRAFT_STAGE/usr/share/icons/hicolor/scalable/apps/gimp.svg $CRAFT_PRIME/gimp
craftctl default
#https://salsa.debian.org/multimedia-team/mypaint-brushes/-/merge_requests/2
for myb in $(find "$CRAFT_PRIME/usr/share/mypaint-data/2.0/brushes/Dieterle" -iname "*.myb"); do
sed -i -e 's|surfacemap_x|gridmap_x|g' -e 's|surfacemap_y|gridmap_y|g' $myb;
done
command-chain-plugins:
plugin: nil
override-prime: |
craftctl default
mkdir -p $CRAFT_PRIME/command-chain
echo '#!/bin/sh
#
# Set LD_LIBRARY_PATH for third-party plugins.
#
# Each third-party plugin snap may provide a
# add-ld-library-path file so GIMP can find the
# plugin .so. The file should provide a path
# relative to ${SNAP}/gimp-plugins, which is the
# mount point for the GIMP snap generic content
# interface plug.
#
for path_file in "${SNAP}"/gimp-plugins/*.conf/add-ld-library-path; do
if [ -f "${path_file}" ]; then
while IFS= read -r path || [ -n "${path}" ]; do
LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${SNAP}/gimp-plugins/${path}"
done < "${path_file}"
fi
done
export LD_LIBRARY_PATH
exec "$@"' > $CRAFT_PRIME/command-chain/enable-plugins
chmod +x $CRAFT_PRIME/command-chain/enable-plugins