Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Gimp/build/linux/snap/   (Gimp Bildeditor Version 3.2.0©)  Datei vom 14.2.2026 mit Größe 9 kB image not shown  

Quelle  snapcraft.yaml  Sprache: unbekannt

 
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 interface
      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

[Dauer der Verarbeitung: 0.3 Sekunden, vorverarbeitet 2026-10-27]