HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //snap/gnome-46-2404/145/snap/snapcraft.yaml
name: gnome-46-2404
adopt-info: gnome-sdk
summary: Shared GNOME 46 Ubuntu stack
source-code: https://github.com/ubuntu/gnome-sdk/tree/gnome-46-2404
description: |
  This snap provides the GNOME 46 stack to other snaps that use it. It shares the base GNOME libraries and desktop integration components through the content interface. This helps reduce the size of snaps and helps developers to easily snap desktop applications.

  **For users**

  This snap is automatically installed and removed when needed. **Manually adding or removing this snap is not recommended** and might break things.

  * If you are having issues with **snaps** using GNOME, please contact the experts on the Snapcraft forum: https://forum.snapcraft.io/
  * If you want to install the GNOME Desktop Environment, then you are in the wrong place. Please take a look at https://www.gnome.org/ for more information on how to get it.

  **For developers**

  * The `gnome` extension is the recommended way to use this in your own snap: https://snapcraft.io/docs/gnome-extension
  * You can report issues with this content snap on GitHub: https://github.com/ubuntu/gnome-sdk/issues
  * The source code of this snap is available on GitHub in the `gnome-46-2404` branch: https://github.com/ubuntu/gnome-sdk/tree/gnome-46-2404
contact: https://github.com/ubuntu/gnome-sdk/issues

confinement: strict
grade: stable
icon: icon.png
base: core24
compression: lzo

# the recommended mountpoint for that content is /gnome-platform
slots:
    gnome-46-2404:
      interface: content
      read:
        - /

parts:
  gnome-sdk:
    plugin: nil
    stage-snaps: [ gnome-46-2404-sdk/latest/candidate ]
    build-packages:
      - yq
    override-build: |
      set -eu
      craftctl default
      sdk_version=$(cat ${CRAFT_PART_INSTALL}/snap.gnome-46-2404-sdk/manifest.yaml \
        | yq -r '.version')

      # Use the same logic of snapcraft
      project_version=$(git -C "${CRAFT_PROJECT_DIR}" describe --dirty 2>/dev/null || true)
      if [ -z "${project_version}" ]; then
        project_version="0+git.$(git -C "${CRAFT_PROJECT_DIR}" describe --dirty --always)"
      fi
      version="${project_version}-sdk${sdk_version}"
      craftctl set version="${version:0:32}"
    stage:
      - lib/*/bindtextdomain.so
      - usr
      - lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/*
      - etc/gnome/*
      - -etc/emacs
      - -etc/X11/Xreset.d/README
      - -etc/fonts/conf.d/README
      - -var/lib/aspell/README
      - -var/lib/ispell/README
      - -usr/share/dict/README.select-wordlist
      - -usr/share/emacs
      - -usr/share/fontconfig
      - -usr/share/gdb
      - -usr/share/glade
      - -usr/share/gobject-introspection-1.0
      - -usr/share/gst-plugins-base
      - -usr/share/gtk-doc
      - -usr/share/help
      - -usr/share/installed-tests
      - -usr/share/maven-repo
      - -usr/bin/dpkg*
      - -usr/bin/$CRAFT_ARCH_TRIPLET_BUILD_FOR-*
      - -usr/bin/g-ir-*
      - -usr/bin/glib-compile-*
      - -usr/bin/glib-gettextize
      - -usr/bin/glib-genmarshal
      - -usr/bin/glib-mkenums
      - -usr/bin/gtester*
      - -usr/bin/gtk-builder-tool
      - -usr/bin/gtk4-builder-tool
      - -usr/bin/gtk-update-icon-cache
      - -usr/bin/gtk4-update-icon-cache
      - -usr/bin/h2ph
      - -usr/bin/h2xs
      - -usr/bin/make
      - -usr/bin/make-first-existing-target
      - -usr/bin/mm-common-get
      - -usr/bin/mm-common-prepare
      - -usr/bin/nm
      - -usr/bin/objcopy
      - -usr/bin/objdump
      - -usr/bin/patch
      - -usr/bin/peas-demo
      - -usr/bin/pkg-config
      - -usr/bin/pl2pm
      - -usr/bin/pldd
      - -usr/bin/prove
      - -usr/bin/py3clean
      - -usr/bin/ranlib
      - -usr/bin/readelf
      - -usr/bin/rpcgen
      - -usr/bin/size
      - -usr/bin/strings
      - -usr/bin/strip
      - -usr/bin/wayland-scanner
      - -usr/bin/x86_64-pc-linux-gnu-pkg-config
      - -usr/bin/xgettext
      - -usr/bin/xsubpp

      - -usr/**/*.a
      - -usr/**/*.c
      - -usr/**/*.cpp
      - -usr/**/*.o
      - -usr/**/*.h
      - -usr/**/*.hpp
      - -usr/**/*.pc

      - -usr/bin/g++*
      - -usr/bin/*-linux-gnu-g++*
      - -usr/bin/gcc*
      - -usr/bin/*-linux-gnu-gcc*
      - -usr/bin/python*
      - -usr/bin/vala*
      - -usr/bin/vapi*

      - -usr/include

      - -usr/lib/*vala*

      - -usr/share/perl
      - -usr/share/vala*
      - -usr/share/gir*

      - -usr/bin/meson
      - -usr/bin/ninja
      - -usr/lib/python3/dist-packages/meson*
      - -usr/share/devhelp/books

  debs:
    after: [ gnome-sdk ]
    plugin: nil
    stage-packages:
      - fcitx-frontend-gtk3
      - fonts-noto-color-emoji
      - gir1.2-ggit-1.0
      - gir1.2-gucharmap-2.90
      - gir1.2-vte-2.91
      - gstreamer1.0-gl
      - gstreamer1.0-plugins-base
      - gstreamer1.0-plugins-good
      - gstreamer1.0-pipewire
      - ibus-gtk3
      - libasound2t64
      - libasyncns0
      - libavahi-client3
      - libavahi-common3
      - libbrotli1
      - libc-bin
      - libcanberra-gtk3-module
      - libcdt5
      - libcgraph6
      - libcolord2
      - libcups2t64
      - libdatrie1
      - libdbus-glib-1-2
      - libdb5.3t64
      - libevdev2
      - libflac12t64
      - libfontconfig1
      - libfreetype6
      - libgck-1-0
      - libgcr-base-3-1
      - libgcr-ui-3-1
      - libgoa-1.0-0b
      - libgraphite2-3
      - libgspell-1-2
      - libgstreamer-plugins-base1.0-0
      - libgstreamer-plugins-good1.0-0
      - libgstreamer1.0-0
      - libgtk3-nocsd0
      - libgtksourceview-3.0-1
      - libgvc6
      - libicu74
      - libinput10
      - libjbig0
      - libjpeg-turbo8
      - liblcms2-2
      - libllvm17t64
      - libmozjs-115-0t64
      - libmpc3
      - libmpfr6
      - libmtdev1t64
      - libogg0
      - libpathplan4
      - libpipewire-0.3-0t64
      - libproxy1v5
      - libpng16-16t64
      - libpulse0
      - libpython3.12t64
      - librsvg2-2
      - libsigc++-2.0-0v5
      - libsndfile1
      - libthai0
      - libtiff6
      - libvorbis0a
      - libvorbisenc2
      - libwacom9
      - libwebkit2gtk-4.1-0
      - libx11-6
      - libxau6
      - libxcb-render0
      - libxcomposite1
      - libxcursor1
      - libxdamage1
      - libxdmcp6
      - libxext6
      - libxfixes3
      - libxft2
      - libxi6
      - libxinerama1
      - libxkbcommon0
      - libxml2
      - libxrandr2
      - libxrender1
      - libxtst6
      - locales-all
      - python3-dbus
      - python3-gi
      - python3.12-minimal
      - shared-mime-info
      - ubuntu-settings
      - unity-gtk3-module
      - xdg-user-dirs
      - xkb-data
    stage:
      - -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libLLVM*
    override-build: |
      set -eux
      craftctl default
      cd $CRAFT_STAGE/usr
      # We need to explicitly remove this recursively
      rm -rf $CRAFT_PART_INSTALL/usr/lib/python3/dist-packages/PyGObject-3.*.egg-info
      find . -type f,l -exec rm -f $CRAFT_PART_INSTALL/usr/{} \;
      find . -type f,l -name "*.so*" -exec bash -c "rm -f $CRAFT_PART_INSTALL/usr/{}*" \;
      cd $CRAFT_STAGE/usr/lib
      find . -type f,l -exec rm -f $CRAFT_PART_INSTALL/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/{} \;
      find . -type f,l -name "*.so*" -exec bash -c "rm -f $CRAFT_PART_INSTALL/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/{}*" \;
      cd $CRAFT_STAGE/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR
      find . -type f,l -exec rm -f $CRAFT_PART_INSTALL/usr/lib/{} \;
      find . -type f,l -name "*.so*" -exec bash -c "rm -f $CRAFT_PART_INSTALL/usr/lib/{}*" \;

  fonts-config:
      after: [ debs ]
      plugin: nil
      stage-packages: [ fontconfig-config, fonts-arphic-ukai, fonts-arphic-uming, fonts-beng-extra, fonts-dejavu-core, fonts-deva-extra, fonts-droid-fallback, fonts-gubbi, fonts-gujr-extra, fonts-guru-extra, fonts-lohit-beng-assamese, fonts-lohit-beng-bengali, fonts-lohit-deva, fonts-lohit-gujr, fonts-lohit-guru, fonts-lohit-knda, fonts-lohit-mlym, fonts-lohit-orya, fonts-lohit-taml, fonts-lohit-taml-classical, fonts-lohit-telu, fonts-noto-cjk, fonts-noto-mono, fonts-orya-extra, fonts-pagul, fonts-smc-anjalioldlipi, fonts-smc-chilanka, fonts-smc-dyuthi, fonts-smc-karumbi, fonts-smc-keraleeyam, fonts-smc-manjari, fonts-smc-meera, fonts-smc-rachana, fonts-smc-raghumalayalamsans, fonts-smc-suruma, fonts-smc-uroob, fonts-telu-extra, fonts-tlwg-garuda, fonts-tlwg-kinnari, fonts-tlwg-laksaman, fonts-tlwg-loma, fonts-tlwg-mono, fonts-tlwg-norasi, fonts-tlwg-typist, fonts-tlwg-typo, fonts-tlwg-umpush, fonts-tlwg-waree, fonts-urw-base35, language-selector-common ]
      stage:
      - etc/fonts
      - usr/share/fontconfig

  caches:
    after: [ fonts-config ]
    plugin: nil
    build-packages:
      - gtk-update-icon-cache
      - libglib2.0-bin
      - shared-mime-info
    build-environment:
      - LD_LIBRARY_PATH: $CRAFT_STAGE/usr/lib:$CRAFT_STAGE/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
    override-build: |
      set -eux
      craftctl default
      $CRAFT_STAGE/usr/bin/glib-compile-schemas $CRAFT_STAGE/usr/share/glib-2.0/schemas
      $CRAFT_STAGE/usr/bin/update-mime-database $CRAFT_STAGE/usr/share/mime

      # the icons cache is rebuilt in 'cleanup' priming because it is there where the duplicated icons are removed

      export CACHE=$CRAFT_STAGE/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/gdk-pixbuf-2.0/2.10.0/loaders.cache
      $CRAFT_STAGE/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders $CRAFT_STAGE/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/gdk-pixbuf-2.0/2.10.0/loaders/* > $CACHE
      sed -i "s@$CRAFT_STAGE/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/gdk-pixbuf-2.0/2.10.0@/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/gdk-pixbuf-2.0/2.10.0@g" $CACHE

  command-chain:
    source: https://github.com/snapcore/snapcraft-desktop-integration.git
    source-type: git
    source-subdir: gnome
    plugin: make
    make-parameters:
      - PLATFORM_PLUG=$SNAPCRAFT_PROJECT_NAME
      - WITH_GRAPHICS=false
      - WITH_PYTHON=3.12

  cleanup:
    after: [ caches ]
    plugin: nil
    source: https://github.com/canonical/gpu-snap.git
    build-snaps:
      - gtk-common-themes
    build-packages:
      - python3-pip
      - zip
      - python3-apt
    override-prime: |
      set -eux

      cd /snap/gtk-common-themes/current
      find . -type f,l ! -name index.theme -exec rm -f $CRAFT_PRIME/usr/{} \;
      cd $CRAFT_PRIME
      for dir in usr/share/icons/*; do
        if [ -f "$dir/index.theme" ]; then
          $CRAFT_STAGE/usr/bin/gtk-update-icon-cache --force "$dir"
        fi
      done

      rm -rf usr/share/doc
      rm -rf usr/share/man

      find . -type d -empty -delete

      ${CRAFT_PART_SRC}/bin/gpu-2404-cleanup mesa-2404
      # delete any broken link
      find . -xtype l -delete