gitlab-ci: Drop x86 (aka 32-bit) cross builds for Windows

This isn't directly related with #10922 and does NOT affect 32-bit support.

After talk with @Jehan, author of 'crossroad' and main dev of crossbuilds,
we decided that the x86 crossroad builds can be dropped by these reasons:

1) 32-bit crossbuilds weren't being built. They are used since c8ec0ae7 but
after the native 32-bit builds they ended in a state that they are the only
pipeline that isn't automatically triggered in any way, a complete limbo.

2) 32-bit crossbuilds weren't being autonomous. They are not working fine
with wine32 so the win-x64-cross artifact is a 'need' and now debian-x64,
so we were spending way more time fixing than using the 32-bit cross jobs
(sometimes the 32-bit cross jobs are just broken and we even noticed).
We have other jobs not autonomous but they don't have additional bugs
like not being able to build with .mng and .wmf (32-bit cross only bugs).

---

The x64 crossbuilds will continue to be supported. They are very useful to
develop on Linux, and test MRs on Windows. I'm an assiduous user of them :)
This commit is contained in:
Bruno Lopes 2024-04-13 14:42:55 -03:00
parent 1f2ce6fe58
commit 28c65b8a5f
4 changed files with 20 additions and 127 deletions

View File

@ -15,7 +15,6 @@
# - GIMP_CI_MESON_GCC: trigger the Debian gcc build. # - GIMP_CI_MESON_GCC: trigger the Debian gcc build.
# - GIMP_CI_RASTER_ICONS: trigger the Debian build without vector icons. # - GIMP_CI_RASTER_ICONS: trigger the Debian build without vector icons.
# - GIMP_CI_CROSSROAD_WIN64: trigger the crossroad build for Win 64-bit. # - GIMP_CI_CROSSROAD_WIN64: trigger the crossroad build for Win 64-bit.
# - GIMP_CI_CROSSROAD_WIN32: trigger the crossroad build for Win 32-bit.
# - GIMP_CI_MSYS2_WIN_AARCH64: trigger the native MSYS2 build for Win Aarch64. # - GIMP_CI_MSYS2_WIN_AARCH64: trigger the native MSYS2 build for Win Aarch64.
# - GIMP_CI_MSYS2_WIN64: trigger the native MSYS2 build for Win 64-bit. # - GIMP_CI_MSYS2_WIN64: trigger the native MSYS2 build for Win 64-bit.
# - GIMP_CI_MSYS2_WIN32: trigger the native MSYS2 build for Win 32-bit. # - GIMP_CI_MSYS2_WIN32: trigger the native MSYS2 build for Win 32-bit.
@ -75,7 +74,6 @@ image-debian-x64:
- if: '$GIMP_CI_MESON_GCC != null' - if: '$GIMP_CI_MESON_GCC != null'
- if: '$GIMP_CI_RASTER_ICONS != null' - if: '$GIMP_CI_RASTER_ICONS != null'
- if: '$GIMP_CI_CROSSROAD_WIN64 != null' - if: '$GIMP_CI_CROSSROAD_WIN64 != null'
- if: '$GIMP_CI_CROSSROAD_WIN32 != null'
- if: '$GIMP_CI_SOURCES != null' - if: '$GIMP_CI_SOURCES != null'
- if: '$GIMP_CI_FLATPAK != null' - if: '$GIMP_CI_FLATPAK != null'
# On merge requests and commits. # On merge requests and commits.
@ -111,8 +109,6 @@ image-debian-x64:
ffmpeg ffmpeg
g++-mingw-w64-x86-64-posix g++-mingw-w64-x86-64-posix
gcc-mingw-w64-x86-64-posix gcc-mingw-w64-x86-64-posix
g++-mingw-w64-i686
gcc-mingw-w64-i686
gettext gettext
ghostscript ghostscript
gi-docgen gi-docgen
@ -227,7 +223,6 @@ deps-debian-x64:
- if: '$GIMP_CI_MESON_CLANG != null' - if: '$GIMP_CI_MESON_CLANG != null'
- if: '$GIMP_CI_RASTER_ICONS != null' - if: '$GIMP_CI_RASTER_ICONS != null'
- if: '$GIMP_CI_CROSSROAD_WIN64 != null' - if: '$GIMP_CI_CROSSROAD_WIN64 != null'
- if: '$GIMP_CI_CROSSROAD_WIN32 != null'
- if: '$GIMP_CI_SOURCES != null' - if: '$GIMP_CI_SOURCES != null'
- if: '$GIMP_CI_FLATPAK != null' - if: '$GIMP_CI_FLATPAK != null'
# On merge requests and commits. # On merge requests and commits.
@ -270,7 +265,6 @@ gimp-debian-x64:
# Custom builds though web GUI, API or schedules. # Custom builds though web GUI, API or schedules.
- if: '$GIMP_CI_MESON_CLANG != null' - if: '$GIMP_CI_MESON_CLANG != null'
- if: '$GIMP_CI_CROSSROAD_WIN64 != null' - if: '$GIMP_CI_CROSSROAD_WIN64 != null'
- if: '$GIMP_CI_CROSSROAD_WIN32 != null'
- if: '$GIMP_CI_SOURCES != null' - if: '$GIMP_CI_SOURCES != null'
- if: '$GIMP_CI_FLATPAK != null' - if: '$GIMP_CI_FLATPAK != null'
# On merge requests and commits. # On merge requests and commits.
@ -436,7 +430,6 @@ deps-win-x64-cross:
extends: .win-cross extends: .win-cross
rules: rules:
- !reference [.win-x64-cross, rules] - !reference [.win-x64-cross, rules]
- if: '$GIMP_CI_CROSSROAD_WIN32 != null'
needs: ["image-debian-x64"] needs: ["image-debian-x64"]
stage: dependencies stage: dependencies
image: $CI_REGISTRY_IMAGE:build-debian-latest image: $CI_REGISTRY_IMAGE:build-debian-latest
@ -455,7 +448,6 @@ gimp-win-x64-cross:
extends: .win-cross extends: .win-cross
rules: rules:
- !reference [.win-x64-cross, rules] - !reference [.win-x64-cross, rules]
- if: '$GIMP_CI_CROSSROAD_WIN32 != null'
needs: ["deps-win-x64-cross", "gimp-debian-x64"] needs: ["deps-win-x64-cross", "gimp-debian-x64"]
stage: gimp stage: gimp
image: $CI_REGISTRY_IMAGE:build-debian-latest image: $CI_REGISTRY_IMAGE:build-debian-latest
@ -497,76 +489,6 @@ packaging-win-x64-nightly:
- done-dll.list - done-dll.list
expire_in: 2 days expire_in: 2 days
## WINDOWS 32-bit CI (cross-build crossroad) ##
.win-x86-cross:
rules:
# Custom builds only (web GUI, API or schedules).
- if: '$GIMP_CI_CROSSROAD_WIN32 != null'
deps-win-x86-cross:
extends: .win-cross
rules:
- !reference [.win-x86-cross, rules]
needs: ["image-debian-x64"]
stage: dependencies
image: $CI_REGISTRY_IMAGE:build-debian-latest
before_script:
- bash -x build/windows/gitlab-ci/1_build-deps-crossroad.sh
script:
- crossroad w32 gimp --run="build/windows/gitlab-ci/1_build-deps-crossroad.sh"
artifacts:
paths:
- .local/
- _deps/_babl/_build-x86-cross/
- _deps/_gegl/_build-x86-cross/
expire_in: 2 hours
gimp-win-x86-cross:
extends: .win-cross
rules:
- !reference [.win-x86-cross, rules]
needs: ["deps-win-x86-cross", "gimp-win-x64-cross", "gimp-debian-x64"]
stage: gimp
image: $CI_REGISTRY_IMAGE:build-debian-latest
cache: []
before_script:
- bash -x build/windows/gitlab-ci/2_build-gimp-crossroad.sh
script:
- crossroad w32 gimp --run="build/windows/gitlab-ci/2_build-gimp-crossroad.sh"
artifacts:
paths:
- _install-x86-cross/
- _build-x86-cross/
expire_in: 1 day
packaging-win-x86-nightly:
extends: .win-cross
rules:
- !reference [.win-x86-cross, rules]
needs: ["gimp-win-x86-cross"]
stage: packaging
variables:
CROSSROAD_PLATFORM: "w32"
cache: []
before_script:
- apt-get update
- apt-get install -y --no-install-recommends
binutils
binutils-mingw-w64-i686
file
libglib2.0-bin
python3
script:
- bash -x build/windows/gitlab-ci/3_package-gimp-uni_base.sh
- cd gimp-x86
- bash -x ../build/windows/gitlab-ci/3_package-gimp-uni_sym.sh
artifacts:
paths:
- gimp-x86/
- done-dll.list
expire_in: 2 days
## WINDOWS Aarch64 CI (native MSYS2) ## ## WINDOWS Aarch64 CI (native MSYS2) ##
.win: .win:

View File

@ -14,11 +14,7 @@ exit 0
# CROSSROAD ENV # CROSSROAD ENV
else else
if [[ "x$CROSSROAD_PLATFORM" = "xw64" ]]; then export ARTIFACTS_SUFFIX="-x64"
export ARTIFACTS_SUFFIX="-x64"
else # [[ "x$CROSSROAD_PLATFORM" = "xw32" ]];
export ARTIFACTS_SUFFIX="-x86"
fi
## Install the required (pre-built) packages for babl, GEGL and GIMP ## Install the required (pre-built) packages for babl, GEGL and GIMP
crossroad source msys2 crossroad source msys2
@ -49,25 +45,23 @@ ninja install
cd ../../ cd ../../
## "Build" part of deps ## "Build" part of deps
if [ "x$CROSSROAD_PLATFORM" = "xw64" ]; then ### Generator of the gio 'giomodule.cache' to fix error about
## Generator of the gio 'giomodule.cache' to fix error about ### libgiognutls.dll that prevents generating loaders.cache
## libgiognutls.dll that prevents generating loaders.cache gio=''
gio='' gio+="libgiognomeproxy.dll: gio-proxy-resolver\n"
gio+="libgiognomeproxy.dll: gio-proxy-resolver\n" gio+="libgiognutls.dll: gio-tls-backend\n"
gio+="libgiognutls.dll: gio-tls-backend\n" gio+="libgiolibproxy.dll: gio-proxy-resolver\n"
gio+="libgiolibproxy.dll: gio-proxy-resolver\n" gio+="libgioopenssl.dll: gio-tls-backend\n"
gio+="libgioopenssl.dll: gio-tls-backend\n" printf "%b" "$gio" > ${CROSSROAD_PREFIX}/lib/gio/modules/giomodule.cache
printf "%b" "$gio" > ${CROSSROAD_PREFIX}/lib/gio/modules/giomodule.cache
## NOT WORKING: Fallback generator of the pixbuf 'loaders.cache' for GUI image support ### NOT WORKING: Fallback generator of the pixbuf 'loaders.cache' for GUI image support
GDK_PATH=$(echo ${CROSSROAD_PREFIX}/lib/gdk-pixbuf-*/*/) GDK_PATH=$(echo ${CROSSROAD_PREFIX}/lib/gdk-pixbuf-*/*/)
wine ${CROSSROAD_PREFIX}/bin/gdk-pixbuf-query-loaders.exe ${GDK_PATH}loaders/*.dll > ${GDK_PATH}loaders.cache wine ${CROSSROAD_PREFIX}/bin/gdk-pixbuf-query-loaders.exe ${GDK_PATH}loaders/*.dll > ${GDK_PATH}loaders.cache
sed -i "s&$CROSSROAD_PREFIX/&&" ${CROSSROAD_PREFIX}/${GDK_PATH}/loaders.cache sed -i "s&$CROSSROAD_PREFIX/&&" ${CROSSROAD_PREFIX}/${GDK_PATH}/loaders.cache
sed -i '/.dll\"/s*/*\\\\*g' ${CROSSROAD_PREFIX}/${GDK_PATH}/loaders.cache sed -i '/.dll\"/s*/*\\\\*g' ${CROSSROAD_PREFIX}/${GDK_PATH}/loaders.cache
## Generator of the glib 'gschemas.compiled' ### Generator of the glib 'gschemas.compiled'
GLIB_PATH=$(echo ${CROSSROAD_PREFIX}/share/glib-*/schemas/) GLIB_PATH=$(echo ${CROSSROAD_PREFIX}/share/glib-*/schemas/)
wine ${CROSSROAD_PREFIX}/bin/glib-compile-schemas.exe --targetdir=${GLIB_PATH} ${GLIB_PATH} wine ${CROSSROAD_PREFIX}/bin/glib-compile-schemas.exe --targetdir=${GLIB_PATH} ${GLIB_PATH}
fi
fi # END OF CROSSROAD ENV fi # END OF CROSSROAD ENV

View File

@ -22,13 +22,7 @@ git submodule update --init
# CROSSROAD ENV # CROSSROAD ENV
else else
if [[ "x$CROSSROAD_PLATFORM" = "xw64" ]]; then export ARTIFACTS_SUFFIX="-x64"
export ARTIFACTS_SUFFIX="-x64"
export MESON_OPTIONS=""
else # [[ "x$CROSSROAD_PLATFORM" = "xw32" ]];
export ARTIFACTS_SUFFIX="-x86"
export MESON_OPTIONS="-Dwmf=disabled -Dmng=disabled"
fi
## The required packages for GIMP are taken from the previous job ## The required packages for GIMP are taken from the previous job
@ -36,8 +30,7 @@ fi
mkdir _build${ARTIFACTS_SUFFIX}-cross && cd _build${ARTIFACTS_SUFFIX}-cross mkdir _build${ARTIFACTS_SUFFIX}-cross && cd _build${ARTIFACTS_SUFFIX}-cross
crossroad meson setup .. -Dgi-docgen=disabled \ crossroad meson setup .. -Dgi-docgen=disabled \
-Djavascript=disabled -Dlua=disabled \ -Djavascript=disabled -Dlua=disabled \
-Dpython=disabled -Dvala=disabled \ -Dpython=disabled -Dvala=disabled
$MESON_OPTIONS
ninja ninja
ninja install ninja install
cd .. cd ..
@ -64,20 +57,4 @@ echo "Please run the gimp.cmd file to know the actual plug-in support." > ${CROS
## Copy built GIMP, babl and GEGL and pre-built packages to GIMP_PREFIX ## Copy built GIMP, babl and GEGL and pre-built packages to GIMP_PREFIX
cp -fr $CROSSROAD_PREFIX/ _install${ARTIFACTS_SUFFIX}-cross/ cp -fr $CROSSROAD_PREFIX/ _install${ARTIFACTS_SUFFIX}-cross/
if [[ "x$CROSSROAD_PLATFORM" = "xw32" ]]; then
# We fail to install wine32 in x86 dep job and Gitlab "needs" field
# requires jobs to be from a prior stage, so we take from the x64 dep job
export CROSSROAD_PREFIX=".local/share/crossroad/roads/w64/gimp"
cp ${CROSSROAD_PREFIX}/lib/gio/modules/giomodule.cache _install${ARTIFACTS_SUFFIX}/lib/gio/modules
GDK_PATH=$(echo ${CROSSROAD_PREFIX}/lib/gdk-pixbuf-*/*/)
GDK_PATH=$(sed "s|${CROSSROAD_PREFIX}/||g" <<< $GDK_PATH)
cp ${CROSSROAD_PREFIX}/${GDK_PATH}loaders.cache _install${ARTIFACTS_SUFFIX}/${GDK_PATH}
GLIB_PATH=$(echo ${CROSSROAD_PREFIX}/share/glib-*/schemas/)
GLIB_PATH=$(sed "s|${CROSSROAD_PREFIX}/||g" <<< $GLIB_PATH)
cp ${CROSSROAD_PREFIX}/${GLIB_PATH}gschemas.compiled _install${ARTIFACTS_SUFFIX}/${GLIB_PATH}
fi
fi # END OF CROSSROAD ENV fi # END OF CROSSROAD ENV

View File

@ -12,7 +12,7 @@ elif [[ "$CROSSROAD_PLATFORM" == "w64" ]] || [[ "$MSYSTEM_CARCH" == "x86_64" ]];
export ARTIFACTS_SUFFIX="-x64" export ARTIFACTS_SUFFIX="-x64"
export MSYS_PREFIX="c:/msys64${MSYSTEM_PREFIX}" export MSYS_PREFIX="c:/msys64${MSYSTEM_PREFIX}"
export GIMP_DISTRIB=`realpath ./gimp-x64` export GIMP_DISTRIB=`realpath ./gimp-x64`
else # [[ "$CROSSROAD_PLATFORM" == "w32" ]] || [[ "$MSYSTEM_CARCH" == "i686" ]]; else # [[ "$MSYSTEM_CARCH" == "i686" ]];
export ARTIFACTS_SUFFIX="-x86" export ARTIFACTS_SUFFIX="-x86"
export MSYS_PREFIX="c:/msys64${MSYSTEM_PREFIX}" export MSYS_PREFIX="c:/msys64${MSYSTEM_PREFIX}"
export GIMP_DISTRIB=`realpath ./gimp-x86` export GIMP_DISTRIB=`realpath ./gimp-x86`