2024-05-21 11:53:34 -03:00
|
|
|
#!/bin/sh
|
|
|
|
|
2025-04-26 11:08:29 -03:00
|
|
|
case $(readlink /proc/$$/exe) in
|
|
|
|
*bash)
|
|
|
|
set -o posix
|
|
|
|
;;
|
|
|
|
esac
|
2024-11-01 18:23:18 -03:00
|
|
|
set -e
|
|
|
|
|
2024-07-19 21:43:45 -03:00
|
|
|
if [ -z "$GITLAB_CI" ]; then
|
2024-07-23 12:41:35 -03:00
|
|
|
# Make the script work locally
|
2025-06-15 15:50:40 -03:00
|
|
|
if [ "$0" != 'build/linux/flatpak/1_build-deps-flatpak.sh' ] && [ $(basename "$PWD") != 'flatpak' ]; then
|
|
|
|
printf '\033[31m(ERROR)\033[0m: Script called from wrong dir. Please, read: https://developer.gimp.org/core/setup/build/linux/\n'
|
2024-07-19 21:43:45 -03:00
|
|
|
exit 1
|
2025-04-26 11:08:29 -03:00
|
|
|
elif [ $(basename "$PWD") = 'flatpak' ]; then
|
2024-07-23 12:41:35 -03:00
|
|
|
cd ../../..
|
2024-07-19 21:43:45 -03:00
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
2024-07-06 17:52:17 -03:00
|
|
|
# Install part of the deps
|
2025-06-15 15:50:40 -03:00
|
|
|
if which flatpak-builder >/dev/null 2>&1; then
|
2025-04-25 20:27:43 -03:00
|
|
|
export FLATPAK_BUILDER='flatpak-builder'
|
|
|
|
elif [ -f '/var/lib/flatpak/exports/bin/org.flatpak.Builder' ]; then
|
|
|
|
export FLATPAK_BUILDER='flatpak run --system org.flatpak.Builder'
|
|
|
|
elif [ -f "${XDG_DATA_HOME:-$HOME/.local/share}/flatpak/exports/bin/org.flatpak.Builder" ]; then
|
|
|
|
export FLATPAK_BUILDER='flatpak run --user org.flatpak.Builder'
|
|
|
|
else
|
2025-06-15 15:50:40 -03:00
|
|
|
printf '\033[31m(ERROR)\033[0m: flatpak-builder not found. Please, install it using your package manager.\n'
|
2024-11-01 12:19:02 -03:00
|
|
|
exit 1
|
|
|
|
fi
|
2025-04-25 20:27:43 -03:00
|
|
|
builder_version=$(eval $FLATPAK_BUILDER --version | sed 's/flatpak-builder//' | sed 's/-//' | sed 's/ //' | sed 's/\.//g')
|
2024-11-01 12:19:02 -03:00
|
|
|
if [ "$builder_version" -lt '143' ]; then
|
|
|
|
## Pre-1.4.3 flatpak-builder fails at Cmake deps, let's prevent this
|
2025-06-15 15:50:40 -03:00
|
|
|
printf "\033[31m(ERROR)\033[0m: Installed flatpak-builder is too old. Our .json manifest requires at least 1.4.3.\n"
|
2024-11-01 12:19:02 -03:00
|
|
|
exit 1
|
2025-04-25 20:27:43 -03:00
|
|
|
fi #End of check
|
2024-11-01 12:19:02 -03:00
|
|
|
|
2024-05-21 11:53:34 -03:00
|
|
|
if [ -z "$GITLAB_CI" ]; then
|
2024-07-19 19:18:49 -03:00
|
|
|
flatpak update -y
|
2025-05-10 13:23:29 -03:00
|
|
|
flatpak remote-add --user --if-not-exists --from gnome-nightly https://nightly.gnome.org/gnome-nightly.flatpakrepo
|
|
|
|
flatpak install --user gnome-nightly org.gnome.Sdk/$(uname -m)/master org.gnome.Platform/$(uname -m)/master -y
|
2024-07-06 17:52:17 -03:00
|
|
|
fi
|
|
|
|
|
|
|
|
|
2024-11-01 12:52:41 -03:00
|
|
|
# Prepare env (only GIMP_PREFIX is needed for flatpak)
|
|
|
|
if [ -z "$GIMP_PREFIX" ]; then
|
|
|
|
export GIMP_PREFIX="$PWD/../_install"
|
|
|
|
fi
|
2024-05-21 11:53:34 -03:00
|
|
|
|
2024-11-01 12:52:41 -03:00
|
|
|
|
|
|
|
# Build some deps (including babl and GEGL)
|
|
|
|
if [ -z "$GITLAB_CI" ] && [ "$1" != '--ci' ]; then
|
2025-04-25 20:27:43 -03:00
|
|
|
eval $FLATPAK_BUILDER --force-clean --ccache --state-dir=../.flatpak-builder --keep-build-dirs --stop-at=gimp \
|
2025-04-26 14:13:27 -03:00
|
|
|
"$GIMP_PREFIX" build/linux/flatpak/org.gimp.GIMP-nightly.json 2>&1 | tee flatpak-builder.log
|
2024-05-21 11:53:34 -03:00
|
|
|
|
2024-07-06 17:52:17 -03:00
|
|
|
elif [ "$GITLAB_CI" ] || [ "$1" = '--ci' ]; then
|
2025-06-15 15:50:40 -03:00
|
|
|
printf "\e[0Ksection_start:`date +%s`:deps_build[collapsed=true]\r\e[0KBuilding dependencies not present in GNOME runtime\n"
|
2025-06-13 19:25:30 -03:00
|
|
|
if [ "$CI_PIPELINE_SOURCE" = 'schedule' ]; then
|
|
|
|
# Check dependencies versions with flatpak-external-data-checker
|
|
|
|
export FLATPAK_SYSTEM_HELPER_ON_SESSION=foo
|
|
|
|
flatpak install --user https://dl.flathub.org/repo/appstream/org.flathub.flatpak-external-data-checker.flatpakref -y
|
2025-06-15 15:50:40 -03:00
|
|
|
if ! flatpak run --user --filesystem=$CI_PROJECT_DIR org.flathub.flatpak-external-data-checker \
|
|
|
|
--check-outdated build/linux/flatpak/org.gimp.GIMP-nightly.json; then
|
|
|
|
printf "\033[31m(ERROR)\033[0m: Some dependencies sources are outdated. Please, update them on the manifest.\n"
|
|
|
|
exit 1
|
|
|
|
else
|
|
|
|
printf "(INFO): All dependencies sources are up to date. Building them...\n"
|
|
|
|
fi
|
2025-06-13 19:25:30 -03:00
|
|
|
fi
|
|
|
|
|
2024-07-19 21:43:45 -03:00
|
|
|
## (The deps building is too long and no complete output would be collected,
|
|
|
|
## even from GitLab runner messages. So, let's silent and save logs as a file.)
|
2025-04-25 20:27:43 -03:00
|
|
|
eval $FLATPAK_BUILDER --force-clean --user --disable-rofiles-fuse --keep-build-dirs --build-only --stop-at=babl \
|
2025-06-15 15:50:40 -03:00
|
|
|
"$GIMP_PREFIX" build/linux/flatpak/org.gimp.GIMP-nightly.json > flatpak-builder.log 2>&1
|
|
|
|
printf "\e[0Ksection_end:`date +%s`:deps_build\r\e[0K\n"
|
2024-12-11 13:47:09 -03:00
|
|
|
|
2025-06-15 15:50:40 -03:00
|
|
|
printf "\e[0Ksection_start:`date +%s`:babl_build[collapsed=true]\r\e[0KBuilding babl\n"
|
2025-04-25 20:27:43 -03:00
|
|
|
eval $FLATPAK_BUILDER --force-clean --user --disable-rofiles-fuse --keep-build-dirs --build-only --stop-at=gegl \
|
2025-04-26 14:13:27 -03:00
|
|
|
"$GIMP_PREFIX" build/linux/flatpak/org.gimp.GIMP-nightly.json
|
2024-11-01 12:52:41 -03:00
|
|
|
if [ "$GITLAB_CI" ]; then
|
2024-07-06 17:52:17 -03:00
|
|
|
tar cf babl-meson-log.tar .flatpak-builder/build/babl-1/_flatpak_build/meson-logs/meson-log.txt
|
2024-12-11 13:47:09 -03:00
|
|
|
fi
|
2025-06-15 15:50:40 -03:00
|
|
|
printf "\e[0Ksection_end:`date +%s`:babl_build\r\e[0K\n"
|
2024-12-11 13:47:09 -03:00
|
|
|
|
2025-06-15 15:50:40 -03:00
|
|
|
printf "\e[0Ksection_start:`date +%s`:gegl_build[collapsed=true]\r\e[0KBuilding gegl\n"
|
2025-04-25 20:27:43 -03:00
|
|
|
eval $FLATPAK_BUILDER --force-clean --user --disable-rofiles-fuse --keep-build-dirs --build-only --stop-at=gimp \
|
2025-04-26 14:13:27 -03:00
|
|
|
"$GIMP_PREFIX" build/linux/flatpak/org.gimp.GIMP-nightly.json
|
2024-12-11 13:47:09 -03:00
|
|
|
if [ "$GITLAB_CI" ]; then
|
2024-07-06 17:52:17 -03:00
|
|
|
tar cf gegl-meson-log.tar .flatpak-builder/build/gegl-1/_flatpak_build/meson-logs/meson-log.txt
|
2025-06-15 15:50:40 -03:00
|
|
|
printf "\e[0Ksection_end:`date +%s`:gegl_build\r\e[0K\n"
|
2024-07-06 17:52:17 -03:00
|
|
|
|
2024-07-19 21:43:45 -03:00
|
|
|
## Save built deps for 'gimp-flatpak-x64' job
|
2024-07-06 17:52:17 -03:00
|
|
|
tar cf .flatpak-builder.tar .flatpak-builder/
|
|
|
|
fi
|
2024-05-21 11:53:34 -03:00
|
|
|
fi
|