2025-10-04 15:26:27 +01:00

120 lines
5.0 KiB
Bash

# Maintainer: Alexey Pavlov <alexpux@gmail.com>
# Contributor: Renato Silva <br.renatosilva@gmail.com>
_realname=gtk2
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=2.24.33
pkgrel=8
pkgdesc="GTK+ is a multi-platform toolkit (v2) (mingw-w64)"
arch=('any')
mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64')
url="https://www.gtk.org/"
msys2_references=(
"cpe: cpe:/a:gnome:gtk"
"cpe: cpe:/a:gtk:gtk%2b"
)
# According to gtk/gtk.h, this is either LGPL2+ or LGPL2.1+, if that makes any
# difference. So let's stick to LGPL2.1+ for safety.
license=(LGPL2.1+)
depends=("${MINGW_PACKAGE_PREFIX}-cc-libs"
"${MINGW_PACKAGE_PREFIX}-adwaita-icon-theme"
"${MINGW_PACKAGE_PREFIX}-atk"
"${MINGW_PACKAGE_PREFIX}-cairo"
"${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2"
"${MINGW_PACKAGE_PREFIX}-gettext-runtime"
"${MINGW_PACKAGE_PREFIX}-glib2"
"${MINGW_PACKAGE_PREFIX}-pango"
"${MINGW_PACKAGE_PREFIX}-shared-mime-info")
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
"${MINGW_PACKAGE_PREFIX}-gobject-introspection"
"${MINGW_PACKAGE_PREFIX}-autotools"
"${MINGW_PACKAGE_PREFIX}-gtk-doc")
#optdepends=("${MINGW_PACKAGE_PREFIX}-gnome-icon-theme: Default icon theme")
install=gtk2-${MSYSTEM}.install
source=("https://download.gnome.org/sources/gtk+/${pkgver%.*}/gtk+-${pkgver}.tar.xz"
'gtkrc'
0001-fix-m4-location.mingw.patch
0003-Fix-notebook-tab-state-change.mingw.patch
0005-Fix-header-ref.all.patch
0006-Fix-unix-symbols-in-docs.mingw.patch
0009-give-cc-to-gir-scanner.mingw.patch
0010-put-gtk-dll-into-path.mingw.patch
0011-gir-for-gdkwin32.mingw.patch
0012-embed-manifest.all.patch
0013_fix_mouse_events.patch
0022-icontheme-win32-detect-SVG-files-by-extension.patch
0023-gdkkeys-win32.c-fix-initialisation-of-key_state-in-u.patch
0024-gtk-update-icon-cache-rc-quote.patch)
sha256sums=('ac2ac757f5942d318a311a54b0c80b5ef295f299c2a73c632f6bfb1ff49cc6da'
'b77a427df55a14182c10ad7e683b4d662df2846fcd38df2aa8918159d6be3ae2'
'9641e7e7204df7b96448033cd45357ef4a9f60f4ba24dedab772034049dab04b'
'a11eb8ca1ff7a96b1bda6202c259f85ca0c1b1a489ffa81745dffe329985a5f1'
'90f5374c6b9b1cbdf59ca71ac3335475f4395af617e2a9bbca2dc7dfe00f6928'
'07dac87d01d52bfe6c3f57098c0723dbda1bebb1c5b74b38e96e551bd631926c'
'458840bc6bedeb7503114c89bf9f9f34766b39f9a6bfaec09af411a023c96a31'
'75f3bd1098c39ccf881508f4c9d23278465bcfe15beaed4bed2af4b00efa00f3'
'10569e2bc2afe6ab320dcb4b0e708ddd8235244ec0daff05ca518cb8463f2924'
'4bc70de68084585dcf2b5a7e4abe32a789360fc2be97a9c94ba3b52dac89ad93'
'f6d731acecf6e35e4ec9739a6d949d2d045c9396c4564283ee6ec935ec690e24'
'b0f18b85d2fd47057c266887848be1f1c0b6171a1ee6d52a33df7af6e0abb8b0'
'68f9c7ea1a548a5d700aa4ad17bb961815ad59cc8d05fc1af156ef680da24a15'
'9c6e2646b22c9dc1725595dbd5fedcaa71ea85ddb5611a1bccc130a00e9e7e30')
prepare() {
cd gtk+-${pkgver}
patch -p1 -i "${srcdir}"/0001-fix-m4-location.mingw.patch
patch -p1 -i "${srcdir}"/0003-Fix-notebook-tab-state-change.mingw.patch
patch -p1 -i "${srcdir}"/0005-Fix-header-ref.all.patch
patch -p1 -i "${srcdir}"/0006-Fix-unix-symbols-in-docs.mingw.patch
patch -p1 -i "${srcdir}"/0009-give-cc-to-gir-scanner.mingw.patch
patch -p1 -i "${srcdir}"/0010-put-gtk-dll-into-path.mingw.patch
patch -p1 -i "${srcdir}"/0011-gir-for-gdkwin32.mingw.patch
#patch -p1 -i "${srcdir}"/0012-embed-manifest.all.patch
patch -p1 -i "${srcdir}"/0013_fix_mouse_events.patch
patch -p1 -i "${srcdir}"/0022-icontheme-win32-detect-SVG-files-by-extension.patch
# https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/3741
patch -p1 -i "${srcdir}"/0023-gdkkeys-win32.c-fix-initialisation-of-key_state-in-u.patch
# https://github.com/msys2/MINGW-packages/issues/9130
patch -p1 -i "${srcdir}"/0024-gtk-update-icon-cache-rc-quote.patch
autoreconf -fi
}
build() {
mkdir -p "${srcdir}"/build-${MSYSTEM} && cd "${srcdir}"/build-${MSYSTEM}
CFLAGS+=" -Wno-incompatible-pointer-types -Wno-implicit-function-declaration -Wno-implicit-int" \
../gtk+-${pkgver}/configure \
--prefix=${MINGW_PREFIX} \
--build=${MINGW_CHOST} \
--host=${MINGW_CHOST} \
--with-gdktarget=win32 \
--disable-modules \
--disable-cups \
--disable-papi \
--enable-static \
--enable-shared \
--enable-introspection \
--disable-glibtest \
--disable-visibility \
--with-included-immodules=ime
make
}
package() {
cd "${srcdir}/build-${MSYSTEM}"
make -j1 DESTDIR="${pkgdir}" install
# Provided by a gtk3/4 split package instead
rm "${pkgdir}${MINGW_PREFIX}/bin/gtk-update-icon-cache"
install -Dm644 "${srcdir}/gtkrc" "${pkgdir}${MINGW_PREFIX}/share/gtk-2.0/gtkrc.example"
find "${pkgdir}${MINGW_PREFIX}" -name '*.def' -o -name '*.exp' | xargs -rtl1 rm
install -Dm644 "${srcdir}"/gtk+-${pkgver}/COPYING \
"${pkgdir}"${MINGW_PREFIX}/share/licenses/${_realname}/COPYING
}