diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index b4ed6b4..0000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,23 +0,0 @@ -# :noTabs=true:mode=yaml:tabSize=2:indentSize=2: -version: 2.1 -jobs: - build-and-bundle: - macos: - xcode: "13.2.1" - shell: /bin/bash --login -o pipefail - steps: - - checkout - - run: ./bootstrap.sh - - run: ./build.sh - - run: ./bundle.sh - - run: ./release.sh _build/pythonbase.app $(git describe --tags) - - run: rm -Rf _build/pythonbase.app/ _build/run-* - - store_artifacts: - path: /Users/distiller/project/_build - resource_class: macos.x86.medium.gen2 - -workflows: - version: 2 - build-bundle: - jobs: - - build-and-bundle diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4ffddce..24aba39 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,9 +9,9 @@ jobs: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name - runs-on: macos-latest + runs-on: macos-11 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: fetch-depth: 0 # fetch tags - run: ./bootstrap.sh diff --git a/bootstrap.sh b/bootstrap.sh index 915de03..6847861 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -3,6 +3,7 @@ set -e source env.sh +source pins.sh # to allow bootstrapping again, try to delete everything first rm -Rf "_gtk-osx" @@ -13,12 +14,13 @@ rm -f "$HOME/.config/jhbuildrc-custom" mkdir -p "$HOME/.config" cp misc/jhbuildrc-custom "$HOME/.config/jhbuildrc-custom" + git clone https://gitlab.gnome.org/GNOME/gtk-osx.git _gtk-osx -# try latest commit (2023-01-03) -(cd _gtk-osx && git checkout 78bd3324) -# fix boostrap failure: error message on pip download -sed -i '' s,https://bootstrap.pypa.io/2.7/get-pip.py,https://bootstrap.pypa.io/pip/2.7/get-pip.py, _gtk-osx/gtk-osx-setup.sh +(cd _gtk-osx && git checkout $PIN_GTK_OSX_COMMIT) +# don't silence curl errors when bootstrapping sed -i '' 's:curl -ks :curl -ksS :' _gtk-osx/gtk-osx-setup.sh ./_gtk-osx/gtk-osx-setup.sh + git clone https://gitlab.gnome.org/GNOME/gtk-mac-bundler.git _bundler +(cd _bundler && git checkout $PIN_GTK_MAC_BUNDLER_COMMIT) (cd _bundler && make install bindir=$HOME/.new_local/bin) diff --git a/build.sh b/build.sh index 72adab1..ae5ca9d 100755 --- a/build.sh +++ b/build.sh @@ -7,3 +7,5 @@ source env.sh jhbuild bootstrap-gtk-osx jhbuild build meta-gtk-osx-bootstrap jhbuild build meta-gpodder-native + +jhbuild run ./install-pip.sh diff --git a/bundle.sh b/bundle.sh index 5265817..606ce25 100755 --- a/bundle.sh +++ b/bundle.sh @@ -26,11 +26,11 @@ for cmd in ${CMDS}; do done # kill some useless files -rm -Rf "$APP_PREFIX"/lib/python3.9/test -rm -Rvf "$APP_PREFIX"/lib/python3.9/*/test -rm -f "$APP_PREFIX"/lib/python3.9/config/libpython3.9.a -find "$APP_PREFIX"/lib/python3.9 -name '*.pyc' -delete -find "$APP_PREFIX"/lib/python3.9 -name '*.pyo' -delete +rm -Rf "$APP_PREFIX"/lib/python3.11/test +rm -Rvf "$APP_PREFIX"/lib/python3.11/*/test +rm -f "$APP_PREFIX"/lib/python3.11/config/libpython3.11.a +find "$APP_PREFIX"/lib/python3.11 -name '*.pyc' -delete +find "$APP_PREFIX"/lib/python3.11 -name '*.pyo' -delete echo checking for dynamic linking consistency : nothing should reference gtk/inst find "$APP_PREFIX" -name '*.so' -and -print -and -exec sh -c 'otool -L $1 | grep /gtk/inst' '{}' '{}' ';' diff --git a/env.sh b/env.sh old mode 100755 new mode 100644 index f3b0e76..9012b4f --- a/env.sh +++ b/env.sh @@ -1,5 +1,3 @@ -#!/bin/sh - DIR="$(cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd)" cd "$DIR" diff --git a/fetch_modules.sh b/fetch_modules.sh index 23eee42..cd20eff 100755 --- a/fetch_modules.sh +++ b/fetch_modules.sh @@ -1,7 +1,14 @@ #!/bin/sh +source pins.sh + git clone https://gitlab.gnome.org/GNOME/gtk-osx.git _gtk-osx-modules +(cd _gtk-osx-modules && git checkout $PIN_GTK_OSX_COMMIT) + rsync -vrb --delete --exclude gpodder.modules --exclude patches/gpodder* _gtk-osx-modules/modulesets-stable/ modulesets/ rsync -vrb --delete _gtk-osx-modules/patches modulesets/ (cd _gtk-osx-modules/ && git log -1) > modulesets/upstream-ref rm -Rf _gtk-osx-modules + +# Disable check for brotli when building freetype +(cd modulesets && patch -p1 < ../github-brotli.patch) diff --git a/github-brotli.patch b/github-brotli.patch new file mode 100644 index 0000000..bd17af1 --- /dev/null +++ b/github-brotli.patch @@ -0,0 +1,24 @@ +--- modulesets/gtk-osx.modules ++++ modulesets/gtk-osx.modules +@@ -127,8 +127,9 @@ + then build harfbuzz without cairo because cairo requires + harfbuzz. + --> ++ + ++ cmakeargs="-DCMAKE_DISABLE_FIND_PACKAGE_HarfBuzz=TRUE -DCMAKE_DISABLE_FIND_PACKAGE_BZip2=TRUE -D BUILD_SHARED_LIBS=true -D CMAKE_BUILD_TYPE=Release -DCMAKE_DISABLE_FIND_PACKAGE_BrotliDec=TRUE"> + + + + ++ + ++ cmakeargs="-DCMAKE_DISABLE_FIND_PACKAGE_BZip2=TRUE -D BUILD_SHARED_LIBS=true -D CMAKE_BUILD_TYPE=Release -DCMAKE_DISABLE_FIND_PACKAGE_BrotliDec=TRUE"> + + - ${prefix}/lib/python3.9/*.py + ${prefix}/lib/python3.11/*.py - ${prefix}/lib/python3.9/asyncio - ${prefix}/lib/python3.9/collections - ${prefix}/lib/python3.9/concurrent - ${prefix}/lib/python3.9/config-3.9-darwin - ${prefix}/lib/python3.9/ctypes - ${prefix}/lib/python3.9/curses - - ${prefix}/lib/python3.9/email - ${prefix}/lib/python3.9/encodings - ${prefix}/lib/python3.9/html - ${prefix}/lib/python3.9/http - - ${prefix}/lib/python3.9/importlib - ${prefix}/lib/python3.9/json - ${prefix}/lib/python3.9/lib-dynload - - ${prefix}/lib/python3.9/logging - ${prefix}/lib/python3.9/multiprocessing - - ${prefix}/lib/python3.9/sqlite3 - - - - ${prefix}/lib/python3.9/unittest - ${prefix}/lib/python3.9/urllib - - ${prefix}/lib/python3.9/wsgiref - ${prefix}/lib/python3.9/xml + ${prefix}/lib/python3.11/asyncio + ${prefix}/lib/python3.11/collections + ${prefix}/lib/python3.11/concurrent + ${prefix}/lib/python3.11/config-3.11-darwin + ${prefix}/lib/python3.11/ctypes + ${prefix}/lib/python3.11/curses + + + ${prefix}/lib/python3.11/email + ${prefix}/lib/python3.11/encodings + + ${prefix}/lib/python3.11/html + ${prefix}/lib/python3.11/http + + ${prefix}/lib/python3.11/importlib + ${prefix}/lib/python3.11/json + ${prefix}/lib/python3.11/lib-dynload + + ${prefix}/lib/python3.11/logging + ${prefix}/lib/python3.11/multiprocessing + + ${prefix}/lib/python3.11/re + ${prefix}/lib/python3.11/sqlite3 + + + ${prefix}/lib/python3.11/tomllib + + ${prefix}/lib/python3.11/unittest + ${prefix}/lib/python3.11/urllib + + ${prefix}/lib/python3.11/wsgiref + ${prefix}/lib/python3.11/xml + ${prefix}/lib/python3.11/xmlrpc + ${prefix}/lib/python3.11/zoneinfo + ${prefix}/lib/python3.11/__phello__ - ${prefix}/lib/python3.9/site-packages/gi/*.py + ${prefix}/lib/python3.11/site-packages/gi/*.py - ${prefix}/lib/python3.9/site-packages/cairo/*.py + ${prefix}/lib/python3.11/site-packages/cairo/*.py - ${prefix}/lib/python3.9/lib-dynload/*.so + ${prefix}/lib/python3.11/lib-dynload/*.so - ${prefix}/lib/python3.9/site-packages/cairo/*.so + ${prefix}/lib/python3.11/site-packages/cairo/*.so - ${prefix}/lib/python3.9/site-packages/gi/*.so + ${prefix}/lib/python3.11/site-packages/gi/*.so - ${prefix}/include/python3.9 + ${prefix}/include/python3.11 @@ -177,9 +184,6 @@ needed for the "hicolor" base theme. --> - - Tango - Adwaita @@ -218,8 +222,9 @@ ${prefix}/bin/pip3* - ${prefix}/lib/python3.9/distutils - ${prefix}/lib/python3.9/site-packages/pip - ${prefix}/lib/python3.9/xmlrpc + ${prefix}/lib/python3.11/distutils + ${prefix}/lib/python3.11/ensurepip + ${prefix}/lib/python3.11/site-packages/pip + ${prefix}/lib/python3.11/xmlrpc diff --git a/modulesets/bootstrap.modules b/modulesets/bootstrap.modules index 0aea826..59f5796 100644 --- a/modulesets/bootstrap.modules +++ b/modulesets/bootstrap.modules @@ -1,158 +1,210 @@ - + + - - - - - - - - + + + + + + + + + + + + - - - - - + + + - - - - + + + + - - - - - + + + - - - - - + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - - + + + - + - - - + + + - - - - - + + + - + - - - + + + version="2.6.4" + hash="sha256:e87aae032bf07c26f85ac0ed3250998c37621d95f8bd748b31f15b33c45ee995" + repo="github" /> - - - - + + hash="sha256:fcf497688a1d531b192301bd09c55adefda5a662729a58eb8a895166e38ef219" + repo="github" /> - - - + + - + hash="sha256:67c74d94196b153b774ab9f89b2fa6c6ba79352407037c8c14d5aeb334e959cd" + repo="intltool" /> - + - - - + + + - + - - - - - + + + + + - + diff --git a/modulesets/gpodder.modules b/modulesets/gpodder.modules index fc90449..678fd58 100644 --- a/modulesets/gpodder.modules +++ b/modulesets/gpodder.modules @@ -3,14 +3,16 @@ - + + + - - - + diff --git a/modulesets/gtk-osx-bootstrap.modules b/modulesets/gtk-osx-bootstrap.modules index 1a94294..4c5fa4a 100644 --- a/modulesets/gtk-osx-bootstrap.modules +++ b/modulesets/gtk-osx-bootstrap.modules @@ -2,119 +2,90 @@ + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - + + + + - + - - - - - - - - + + + - - + + - - - - - + - - - - + + + + - + diff --git a/modulesets/gtk-osx-gstreamer.modules b/modulesets/gtk-osx-gstreamer.modules index 966da11..e64cc05 100644 --- a/modulesets/gtk-osx-gstreamer.modules +++ b/modulesets/gtk-osx-gstreamer.modules @@ -2,120 +2,143 @@ - - - - + + + + + + + - + + + - - - - - + - - + + + + + + + - + autogenargs="--enable-gpl --enable-version3 --enable-shared --disable-static --disable-runtime-cpudetect --disable-programs --disable-ffplay --disable-ffprobe --disable-doc"> + + - + - + - + - + - - - + + + - - + + - - - + - + - - + + - - - + + + - - + + - + - + - - - - + + + + - + - + + - - - + + + - + - - - - - - + + + + + + - + diff --git a/modulesets/gtk-osx-gtkmm.modules b/modulesets/gtk-osx-gtkmm.modules index 802cb2d..6e45743 100644 --- a/modulesets/gtk-osx-gtkmm.modules +++ b/modulesets/gtk-osx-gtkmm.modules @@ -2,149 +2,162 @@ - - - - + + + + + - + - - - - + + - + - - + + - + - + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - - - - - + + + + + + + - - + + - + - - - + + + - - - + + + - - - - + + + + - + - + - - - - + + + + - - - + + + - - - + + + + + + - - - - - - - - - - - - - - + - - - - - + + + + + - + - + - - - - - + + + + + - + diff --git a/modulesets/gtk-osx-javascript.modules b/modulesets/gtk-osx-javascript.modules index edaece9..4c8a26d 100644 --- a/modulesets/gtk-osx-javascript.modules +++ b/modulesets/gtk-osx-javascript.modules @@ -2,58 +2,78 @@ + + + + - + - - - + + + + - - - - + + - - + + - - + - - + + + - - - + + + - - - - + + + - + diff --git a/modulesets/gtk-osx-network.modules b/modulesets/gtk-osx-network.modules index 65e1574..d007133 100644 --- a/modulesets/gtk-osx-network.modules +++ b/modulesets/gtk-osx-network.modules @@ -2,211 +2,283 @@ - - - - - - - - + + tidy -config ../tidy.conf -m gtk-osx-network.modules + --> + + + + + + + + + + - - + + - - - + - + autogenargs="shared" + makeinstallargs="install_sw" + supports-non-srcdir-builds="no"> + - - - + - - - + - - + + + - - - + - - + + - - - - - + + + - - - - - - + + + + + - + + - - + + - - - - - - - - - - - - - - - - - + + + + + + - - - - - + + + + + - - - + + + + + + + + + - - + - - - + + + - - + + - + - + - - - - + + + + - + - + - - + + + + + + + + - - + - - - - + - - - + + + + + + + + + + + + - - - + + + - - - - - - + + + + + + - - - + + + + + + + + + + + + + + + - - - + USE_WPE_RENDERER: For embedded systems, not Macs. + --> - - - - - + cmakeargs='-DPORT=GTK -DENABLE_X11_TARGET=OFF -DENABLE_QUARTZ_TARGET=ON -DENABLE_MINIBROWSER=ON -DENABLE_INTROSPECTION=ON -DUSE_SYSTEMD=OFF -DENABLE_VIDEO=OFF -DENABLE_WEB_AUDIO=OFF -DENABLE_GEOLOCATION=OFF -DUSE_LIBNOTIFY=OFF -DUSE_LIBHYPHEN=OFF -DUSE_LIBSECRET=OFF -DENABLE_TOUCH_EVENTS=OFF -DUSE_OPENJPEG=OFF -DUSE_WOFF2=OFF -DUSE_WPE_RENDERER=OFF -DENABLE_GRAPHICS_CONTEXT_GL=OFF -DENABLE_GAMEPAD=OFF -DUSE_APPLE_ICU=NO -DCMAKE_CXX_FLAGS="-stdlib=libc++" -DCMAKE_MACOSX_RPATH=OFF'> + + + + + + + - - - - - - + + + + + + - + - + diff --git a/modulesets/gtk-osx-python.modules b/modulesets/gtk-osx-python.modules index 417d671..0290bf0 100644 --- a/modulesets/gtk-osx-python.modules +++ b/modulesets/gtk-osx-python.modules @@ -2,160 +2,109 @@ + + + + + + + + - - - + + + + + - - + - - - - - - - - - - - - - - - - + + + - - + + + - + - + - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + - + - - - + + - + + - - - - + - + - + + - + - + diff --git a/modulesets/gtk-osx-random.modules b/modulesets/gtk-osx-random.modules index af6233d..a8f8625 100644 --- a/modulesets/gtk-osx-random.modules +++ b/modulesets/gtk-osx-random.modules @@ -2,238 +2,338 @@ - - - + + + + + + + + + + + + + + + + - - + + - - - + + + - + + + - - - - - - - - + + + - - - - + + + - + - + + + + + + + + + + - - + + + - - - - - - + + + + + + + - - - + + + - - + + - - - - + + - + - - - - - - - + + + - - + + - - + - - + + - + + - + version="0.0.28" + hash="sha256:1130df3a7957eb9f6f0d29e4aa1c75732a7dfb6d639be013859b5c7ec5421276" + repo="paguire"> + - + - - - - - + + + - - + + - + - + - + - - - - + + + - - - - - + + + - + - - - - - + + + - + - - - + + + - - - - + + + - + - + - - - + + - - + hash="sha256:b040f63836b347eb344f5542443dc254621805072f7141d49c067ecb5a375732" + repo="sourceforge"> + + - - + + - + - + + + + + + + + + + + + + + - - + + + + + + + - - + + + + + - + diff --git a/modulesets/gtk-osx.modules b/modulesets/gtk-osx.modules index dff44b9..1ee5859 100644 --- a/modulesets/gtk-osx.modules +++ b/modulesets/gtk-osx.modules @@ -1,361 +1,448 @@ - + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + - + - - - + + + - + - - - + + + + - - - + + + + - - - + + + + + - - + + - - - - - + + + + + - + - - - - + + + + + + + + + - - - + + + - + - - - repo="sourceforge"/> + + + - - + + - - + - + + - + - - - - + + + - + - - - + + - - - + - - - - + + + + - + - + - - + + - + - - - - + + + + - - - + + + - - - + + + + + + --> - - - - + + + - - - - + + + + - - + + - + - - - + - - - + + + - - - - + + + + + - - + + - + - + - + - + - + - - - - + + - - - - - + + + - - - - - - - + + + + + + + - + - - - + + + - - + + - - + - + rename-tarball="libsass-3.6.5.tar.gz" + repo="github-tarball" /> - - - - - - - - - - + + + + + + + + + + + - - + - + + - + - - + - + - - - - + + + + + - - - + + + - - - + + + - + - - + - + diff --git a/modulesets/patches/0004-Bug-571582-GtkSelection-implementation-for-quartz.patch b/modulesets/patches/0004-Bug-571582-GtkSelection-implementation-for-quartz.patch new file mode 100644 index 0000000..0d8dbe9 --- /dev/null +++ b/modulesets/patches/0004-Bug-571582-GtkSelection-implementation-for-quartz.patch @@ -0,0 +1,923 @@ +From 6118cdb88497c5531e64886d51a96fd24a895c61 Mon Sep 17 00:00:00 2001 +From: John Ralls +Date: Sun, 26 Dec 2010 13:48:47 -0800 +Subject: [PATCH 04/15] Bug 571582: GtkSelection implementation for quartz. + +--- + gdk/quartz/gdkselection-quartz.c | 36 ++- + gtk/Makefile.am | 10 +- + gtk/gtkquartz.c | 1 + + gtk/gtkselection-quartz.c | 670 ++++++++++++++++++++++++++++++++++++++ + gtk/gtkselection.c | 14 +- + 5 files changed, 711 insertions(+), 20 deletions(-) + create mode 100644 gtk/gtkselection-quartz.c + +diff --git a/gdk/quartz/gdkselection-quartz.c b/gdk/quartz/gdkselection-quartz.c +index c327eb9..a51f567 100644 +--- a/gdk/quartz/gdkselection-quartz.c ++++ b/gdk/quartz/gdkselection-quartz.c +@@ -32,7 +32,8 @@ gdk_selection_owner_set_for_display (GdkDisplay *display, + guint32 time, + gint send_event) + { +- /* FIXME: Implement */ ++ g_print ("Not a valid interface on Quartz. Use GtkSelection.\n"); ++ g_return_val_if_reached(TRUE); + return TRUE; + } + +@@ -40,7 +41,7 @@ GdkWindow* + gdk_selection_owner_get_for_display (GdkDisplay *display, + GdkAtom selection) + { +- /* FIXME: Implement */ ++ /* Quartz doesn't have an X-selection, so it doesn't have a gdk_selection. */ + return NULL; + } + +@@ -50,7 +51,9 @@ gdk_selection_convert (GdkWindow *requestor, + GdkAtom target, + guint32 time) + { +- /* FIXME: Implement */ ++ g_print ("Not a valid interface on Quartz. Use GtkSelection.\n"); ++ g_return_if_reached(); ++ + } + + gint +@@ -59,7 +62,8 @@ gdk_selection_property_get (GdkWindow *requestor, + GdkAtom *ret_type, + gint *ret_format) + { +- /* FIXME: Implement */ ++ g_print ("Quartz windows do not support properties.\n"); ++ g_return_val_if_reached(-1); + return 0; + } + +@@ -71,7 +75,8 @@ gdk_selection_send_notify_for_display (GdkDisplay *display, + GdkAtom property, + guint32 time) + { +- /* FIXME: Implement */ ++ g_print ("Not a valid interface on Quartz. Use GtkSelection.\n"); ++ g_return_if_reached(); + } + + gint +@@ -82,8 +87,9 @@ gdk_text_property_to_text_list_for_display (GdkDisplay *display, + gint length, + gchar ***list) + { +- /* FIXME: Implement */ +- return 0; ++ /* text and utf8 are equivalent on OSX */ ++ return gdk_text_property_to_utf8_list_for_display (display, encoding, format, ++ text, length, list); + } + + gint +@@ -94,20 +100,21 @@ gdk_string_to_compound_text_for_display (GdkDisplay *display, + guchar **ctext, + gint *length) + { +- /* FIXME: Implement */ ++ *ctext = (guchar*)g_strdup (str); ++ *length = strlen (str); + return 0; + } + + void gdk_free_compound_text (guchar *ctext) + { +- /* FIXME: Implement */ ++ g_free (ctext); + } + + gchar * + gdk_utf8_to_string_target (const gchar *str) + { +- /* FIXME: Implement */ +- return NULL; ++ /* UTF8 is the standard string on OSX */ ++ return g_strdup (str); + } + + gboolean +@@ -118,8 +125,11 @@ gdk_utf8_to_compound_text_for_display (GdkDisplay *display, + guchar **ctext, + gint *length) + { +- /* FIXME: Implement */ +- return 0; ++ /* We don't use compound text on OSX, just stuff a copy of the string*/ ++ ++ *ctext = (guchar*)g_strdup (str); ++ *length = strlen (str); ++ return TRUE; + } + + void +diff --git a/gtk/Makefile.am b/gtk/Makefile.am +index 78f4684..4794835 100644 +--- a/gtk/Makefile.am ++++ b/gtk/Makefile.am +@@ -560,7 +560,6 @@ gtk_base_c_sources = \ + gtkscalebutton.c \ + gtkscrollbar.c \ + gtkscrolledwindow.c \ +- gtkselection.c \ + gtkseparator.c \ + gtkseparatormenuitem.c \ + gtkseparatortoolitem.c \ +@@ -759,10 +758,15 @@ endif + endif + + if USE_QUARTZ +-gtk_clipboard_dnd_c_sources = gtkclipboard-quartz.c gtkdnd-quartz.c gtkquartz.c ++gtk_clipboard_dnd_c_sources = \ ++ gtkselection.c \ ++ gtkselection-quartz.c \ ++ gtkclipboard-quartz.c \ ++ gtkdnd-quartz.c \ ++ gtkquartz.c + gtk_clipboard_dnd_h_sources = gtkquartz.h + else +-gtk_clipboard_dnd_c_sources = gtkclipboard.c gtkdnd.c ++gtk_clipboard_dnd_c_sources = gtkselection.c gtkclipboard.c gtkdnd.c + endif + EXTRA_DIST += gtkquartz.h + +diff --git a/gtk/gtkquartz.c b/gtk/gtkquartz.c +index 5b54104..8ffeb0b 100644 +--- a/gtk/gtkquartz.c ++++ b/gtk/gtkquartz.c +@@ -271,6 +271,7 @@ _gtk_quartz_set_selection_data_for_pasteboard (NSPasteboard *pasteboard, + + type = target_to_pasteboard_type (target); + g_free (target); ++ g_return_if_fail (data != NULL); + + if ([type isEqualTo:NSStringPboardType]) + [pasteboard setString:[NSString stringWithUTF8String:(const char *)data] +diff --git a/gtk/gtkselection-quartz.c b/gtk/gtkselection-quartz.c +new file mode 100644 +index 0000000..1ce7d55 +--- /dev/null ++++ b/gtk/gtkselection-quartz.c +@@ -0,0 +1,670 @@ ++/* GTK - The GIMP Toolkit ++ * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald ++ * ++ * This library is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2 of the License, or (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with this library; if not, write to the ++ * Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ * Boston, MA 02111-1307, USA. ++ */ ++ ++/* This file implements most of the work of the ICCCM selection protocol. ++ * The code was written after an intensive study of the equivalent part ++ * of John Ousterhout's Tk toolkit, and does many things in much the ++ * same way. ++ * ++ * The one thing in the ICCCM that isn't fully supported here (or in Tk) ++ * is side effects targets. For these to be handled properly, MULTIPLE ++ * targets need to be done in the order specified. This cannot be ++ * guaranteed with the way we do things, since if we are doing INCR ++ * transfers, the order will depend on the timing of the requestor. ++ * ++ * By Owen Taylor 8/16/97 ++ */ ++ ++/* Terminology note: when not otherwise specified, the term "incr" below ++ * refers to the _sending_ part of the INCR protocol. The receiving ++ * portion is referred to just as "retrieval". (Terminology borrowed ++ * from Tk, because there is no good opposite to "retrieval" in English. ++ * "send" can't be made into a noun gracefully and we're already using ++ * "emission" for something else ....) ++ */ ++ ++/* The MOTIF entry widget seems to ask for the TARGETS target, then ++ (regardless of the reply) ask for the TEXT target. It's slightly ++ possible though that it somehow thinks we are responding negatively ++ to the TARGETS request, though I don't really think so ... */ ++ ++/* ++ * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS ++ * file for a list of people on the GTK+ Team. See the ChangeLog ++ * files for a list of changes. These files are distributed with ++ * GTK+ at ftp://ftp.gtk.org/pub/gtk/. ++ */ ++ ++#include "config.h" ++#include ++#include ++#include "gdk.h" ++ ++#include "gtkmain.h" ++#include "gtkselection.h" ++#include "gtktextbufferrichtext.h" ++#include "gtkintl.h" ++#include "gdk-pixbuf/gdk-pixbuf.h" ++#include "gtkclipboard.h" ++ ++#import ++#include "gtkalias.h" ++ ++#undef DEBUG_SELECTION ++/* ++ * DON'T USE THIS INTERFACE: USE GTKCLIPBOARD INSTEAD! ++ * ++ * This is the Quartz version of gtkselection. Unlike the other ++ * versions, it was written in 2010, after most code was rewritten to ++ * use GtkClipboard. Quartz, unlike X11, is not a remote-capable ++ * display system, so most of ICCCM is pointless. This implementation ++ * can therefore be much simpler than the X11 implementation. Text is ++ * a lot simpler, too. It's UTF8. No compound text, no legacy ++ * charsets. There's also only one display, so instead of passing it ++ * around, we'll generally just use gdk_display_get_default() when we ++ * need it. ++ * ++ * There are two constraints: The existing code in various GtkWidgets ++ * which uses GDK_SELECTION_CLIPBOARD (which gtkclipboard-quartz sets ++ * to generalPasteboard) for c copies and GDK_SELECTION_PRIMARY ++ * (for which gtkclipboard-quartz creates a separate pasteboard) for ++ * X-style selection transfers, and Apple's X11 Quartz implementation ++ * which by default puts both on the generalPasteboard. We need to ++ * operate with both. ++ * ++ * IMPORTANT: There is no X11 magic in quartz. If you insist on using ++ * this interface (and you really shouldn't), your MUST connect to ++ * selection-get, selection-received, and selection-clear-event for ++ * your widget. ++ */ ++ ++/* Maximum size of a sent chunk, in bytes. Also the default size of ++ our buffers */ ++ ++ ++#define IDLE_ABORT_TIME 30 ++ ++enum { ++ INCR, ++ MULTIPLE, ++ TARGETS, ++ TIMESTAMP, ++ SAVE_TARGETS, ++ LAST_ATOM ++}; ++ ++typedef struct _GtkSelectionInfo GtkSelectionInfo; ++ ++struct _GtkSelectionInfo ++{ ++ GdkAtom selection; ++ GtkWidget *owner; /* widget that owns selection */ ++ guint32 time; /* time used to acquire selection */ ++}; ++ ++ ++/* Local Functions */ ++static void gtk_selection_get_cb (GtkClipboard *clipboard, ++ GtkSelectionData *data, ++ guint info, ++ gpointer widget); ++static void gtk_selection_clear_cb (GtkClipboard *clipboard, ++ gpointer widget); ++static void gtk_selection_default_handler (GtkWidget *widget, ++ GtkSelectionData *data); ++static int gtk_selection_bytes_per_item (gint format); ++static GtkSelectionInfo *gtk_selection_info_get (GdkAtom selection); ++static void gtk_selection_info_remove (GdkAtom selection, ++ GtkWidget *owner); ++static void gtk_selection_info_append (GdkAtom selection, ++ GtkWidget *owner, ++ guint32 time); ++static void gtk_selection_info_clear (GtkWidget *owner); ++static GtkTargetList *gtk_selection_target_list_get (GtkWidget *widget, ++ GdkAtom selection); ++static void gtk_selection_target_list_remove (GtkWidget *widget); ++ ++/* Local Data */ ++static gint initialize = TRUE; ++static GList *current_selections = NULL; ++ ++static GdkAtom gtk_selection_atoms[LAST_ATOM]; ++static const char gtk_selection_handler_key[] = "gtk-selection-handlers"; ++ ++static GtkTargetEntry default_target = {"UTF8_STRING", 0, 1}; ++ ++/** ++ * gtk_selection_owner_set_for_display: ++ * @display: the #Gdkdisplay where the selection is set ++ * @widget: (allow-none): new selection owner (a #GdkWidget), or %NULL. ++ * @selection: an interned atom representing the selection to claim. ++ * @time_: timestamp with which to claim the selection ++ * ++ * Claim ownership of a given selection for a particular widget, or, ++ * if @widget is %NULL, release ownership of the selection. ++ * ++ * Return value: TRUE if the operation succeeded ++ * ++ * Since: 2.2 ++ */ ++gboolean ++gtk_selection_owner_set_for_display (GdkDisplay *display, ++ GtkWidget *widget, ++ GdkAtom selection, ++ guint32 time) ++{ ++ GObject *old_owner; ++ GtkClipboard *clip = gtk_clipboard_get (selection); ++ GtkTargetEntry *targets = &default_target; ++ gint num_targets = 1; ++ GtkTargetList *tlist; ++ ++ g_return_val_if_fail (GDK_IS_DISPLAY (display), FALSE); ++ g_return_val_if_fail (selection != GDK_NONE, FALSE); ++ ++ old_owner = gtk_clipboard_get_owner (clip); ++ if (old_owner) ++ gtk_selection_info_remove (selection, GTK_WIDGET(old_owner)); ++ ++ if (widget == NULL) ++ return TRUE; ++ ++ g_return_val_if_fail (gtk_widget_get_display (widget) == display, FALSE); ++ ++ if ((tlist = gtk_selection_target_list_get (widget, selection)) != NULL) ++ targets = gtk_target_table_new_from_list (tlist, &num_targets); ++ ++ if (gtk_clipboard_set_with_owner (clip, targets, num_targets, ++ gtk_selection_get_cb, ++ gtk_selection_clear_cb, ++ G_OBJECT (widget))) ++ { ++ gtk_selection_info_append (selection, widget, GDK_CURRENT_TIME); ++ return TRUE; ++ } ++ return FALSE; ++} ++ ++ ++typedef struct _GtkSelectionTargetList GtkSelectionTargetList; ++ ++struct _GtkSelectionTargetList { ++ GdkAtom selection; ++ GtkTargetList *list; ++}; ++ ++/** ++ * gtk_selection_remove_all: ++ * @widget: a #GtkWidget ++ * ++ * Removes all handlers and unsets ownership of all ++ * selections for a widget. Called when widget is being ++ * destroyed. This function will not generally be ++ * called by applications. ++ **/ ++void ++gtk_selection_remove_all (GtkWidget *widget) ++{ ++ g_return_if_fail(widget == NULL || GTK_IS_WIDGET(widget)); ++ gtk_selection_info_clear (widget); ++ /* Remove all selection lists */ ++ gtk_selection_target_list_remove (widget); ++} ++ ++ ++/** ++ * gtk_selection_convert: ++ * @widget: The widget which acts as requestor ++ * @selection: Which selection to get ++ * @target: Form of information desired (e.g., STRING) ++ * @time_: Time of request (usually of triggering event) ++ In emergency, you could use #GDK_CURRENT_TIME ++ * ++ * Requests the contents of a selection. When received, ++ * a "selection-received" signal will be generated. ++ * ++ * Return value: %TRUE if requested succeeded. %FALSE if we could not process ++ * request. (e.g., there was already a request in process for ++ * this widget). ++ **/ ++gboolean ++gtk_selection_convert (GtkWidget *widget, ++ GdkAtom selection, ++ GdkAtom target, ++ guint32 time_) ++{ ++ GtkClipboard *clip = gtk_clipboard_get (selection); ++ GtkSelectionData *data; ++ ++ g_return_val_if_fail (GTK_IS_WIDGET (widget), FALSE); ++ g_return_val_if_fail (selection != GDK_NONE, FALSE); ++ ++ data = gtk_clipboard_wait_for_contents (clip, target); ++ if (data == NULL) ++ return FALSE; ++ ++ g_signal_emit_by_name (widget, "selection-received", data, time); ++ ++ return TRUE; ++} ++ ++ ++/** ++ * gtk_selection_clear: ++ * @widget: a #GtkWidget ++ * @event: the event ++ * ++ * The default handler for the #GtkWidget::selection-clear-event ++ * signal. ++ * ++ * Return value: %TRUE if the event was handled, otherwise false ++ **/ ++gboolean ++gtk_selection_clear (GtkWidget *widget, ++ GdkEventSelection *event) ++{ ++ gtk_selection_clear_targets (widget, event->selection); ++ return FALSE; ++} ++ ++ ++/************************************************************* ++ * _gtk_selection_request: ++ * Handler for "selection_request_event" ++ * arguments: ++ * widget: ++ * event: ++ * results: ++ *************************************************************/ ++ ++gboolean ++_gtk_selection_request (GtkWidget *widget, ++ GdkEventSelection *event) ++{ ++ g_print ("Selection Request Events should not occur in quartz\n"); ++ return TRUE; ++} ++ ++/************************************************************* ++ * _gtk_selection_incr_event: ++ * Called whenever an PropertyNotify event occurs for an ++ * GdkWindow with user_data == NULL. These will be notifications ++ * that a window we are sending the selection to via the ++ * INCR protocol has deleted a property and is ready for ++ * more data. ++ * ++ * arguments: ++ * window: the requestor window ++ * event: the property event structure ++ * ++ * results: ++ *************************************************************/ ++ ++gboolean ++_gtk_selection_incr_event (GdkWindow *window, ++ GdkEventProperty *event) ++{ ++ g_print ("Selection_INCR_Events should not occur in quartz\n"); ++ return TRUE; ++} ++ ++/************************************************************* ++ * _gtk_selection_notify: ++ * Handler for "selection-notify-event" signals on windows ++ * where a retrieval is currently in process. The selection ++ * owner has responded to our conversion request. ++ * arguments: ++ * widget: Widget getting signal ++ * event: Selection event structure ++ * info: Information about this retrieval ++ * results: ++ * was event handled? ++ *************************************************************/ ++ ++gboolean ++_gtk_selection_notify (GtkWidget *widget, ++ GdkEventSelection *event) ++{ ++ g_print ("Selection_Notifications should not occur in quartz\n"); ++ ++ return TRUE; ++} ++ ++/************************************************************* ++ * _gtk_selection_property_notify: ++ * Handler for "property-notify-event" signals on windows ++ * where a retrieval is currently in process. The selection ++ * owner has added more data. ++ * arguments: ++ * widget: Widget getting signal ++ * event: Property event structure ++ * info: Information about this retrieval ++ * results: ++ * was event handled? ++ *************************************************************/ ++ ++gboolean ++_gtk_selection_property_notify (GtkWidget *widget, ++ GdkEventProperty *event) ++{ ++ g_print ("Selection_Property_Notifications should not occur in quartz\n"); ++ return TRUE; ++} ++ ++ ++/************************************************************* ++ * gtk_selection_get_cb() ++ * @clipboard: The clipboard requesting the data ++ * @data: Pass to selection-get signal; handlers should put requested ++ * data in the structure pointed to. ++ * @info: DND uses this on Windows and X11. It can be ignored for ++ * normal selection use. ++ * @owner: The window to which the information request is sent; it's ++ * the owner set with gtk_selection_owner_set_for_display. ++ * ++ * Emits a signal to the owner window to fill in the provided data structure. ++ *************************************************************/ ++/* GtkClipboardGetFunc */ ++static void ++gtk_selection_get_cb (GtkClipboard* clipboard, ++ GtkSelectionData *data, ++ guint info, ++ gpointer owner) ++{ ++ GtkTargetList *target_list; ++ GtkWidget *widget = GTK_WIDGET (owner); ++ ++ ++ g_return_if_fail (widget != NULL); ++ ++ target_list = gtk_selection_target_list_get (widget, data->selection); ++ ++ if ( data->target == gtk_selection_atoms[TIMESTAMP] || ++ data->target == gtk_selection_atoms[TARGETS] || ++ data->target == gtk_selection_atoms[SAVE_TARGETS]) ++ { ++ gtk_selection_default_handler (widget, data); ++ return; ++ } ++ if (target_list && ++ gtk_target_list_find (target_list, data->target, &info)) ++ { ++ g_signal_emit_by_name (widget, ++ "selection-get", ++ data, ++ info, time); ++ } ++} ++ ++static void ++gtk_selection_clear_cb (GtkClipboard* clipboard, ++ gpointer owner) ++{ ++ GtkWidget *widget = GTK_WIDGET (owner); ++ GdkEventSelection event; ++ event.type = GDK_SELECTION_CLEAR; ++ event.selection = GDK_SELECTION_PRIMARY; ++ event.window = gtk_widget_get_window(widget); ++ g_signal_emit_by_name (widget, ++ "selection-clear-event", ++ &event, ++ NULL); ++} ++ ++/************************************************************* ++ * gtk_selection_default_handler: ++ * Handles some default targets that exist for any widget ++ * If it can't fit results into buffer, returns -1. This ++ * won't happen in any conceivable case, since it would ++ * require 1000 selection targets! ++ * ++ * arguments: ++ * widget: selection owner ++ * data: selection data [INOUT] ++ * ++ *************************************************************/ ++ ++static void ++gtk_selection_default_handler (GtkWidget *widget, ++ GtkSelectionData *data) ++{ ++ if (data->target == gtk_selection_atoms[TIMESTAMP]) ++ { ++ /* Time which was used to obtain selection */ ++ GList *tmp_list; ++ GtkSelectionInfo *selection_info; ++ ++ tmp_list = current_selections; ++ while (tmp_list) ++ { ++ selection_info = (GtkSelectionInfo *)tmp_list->data; ++ if ((selection_info->owner == widget) && ++ (selection_info->selection == data->selection)) ++ { ++ gulong time = selection_info->time; ++ ++ gtk_selection_data_set (data, ++ GDK_SELECTION_TYPE_INTEGER, ++ 32, ++ (guchar *)&time, ++ sizeof (time)); ++ return; ++ } ++ ++ tmp_list = tmp_list->next; ++ } ++ ++ data->length = -1; ++ } ++ else if (data->target == gtk_selection_atoms[TARGETS]) ++ { ++ /* List of all targets supported for this widget/selection pair */ ++ GdkAtom *p; ++ guint count; ++ GList *tmp_list; ++ GtkTargetList *target_list; ++ GtkTargetPair *pair; ++ ++ target_list = gtk_selection_target_list_get (widget, ++ data->selection); ++ count = g_list_length (target_list->list) + 3; ++ ++ data->type = GDK_SELECTION_TYPE_ATOM; ++ data->format = 32; ++ data->length = count * sizeof (GdkAtom); ++ ++ /* selection data is always terminated by a trailing \0 ++ */ ++ p = g_malloc (data->length + 1); ++ data->data = (guchar *)p; ++ data->data[data->length] = '\0'; ++ ++ *p++ = gtk_selection_atoms[TIMESTAMP]; ++ *p++ = gtk_selection_atoms[TARGETS]; ++ *p++ = gtk_selection_atoms[MULTIPLE]; ++ ++ tmp_list = target_list->list; ++ while (tmp_list) ++ { ++ pair = (GtkTargetPair *)tmp_list->data; ++ *p++ = pair->target; ++ ++ tmp_list = tmp_list->next; ++ } ++ } ++ else if (data->target == gtk_selection_atoms[SAVE_TARGETS]) ++ { ++ gtk_selection_data_set (data, ++ gdk_atom_intern_static_string ("NULL"), ++ 32, NULL, 0); ++ } ++ else ++ { ++ data->length = -1; ++ } ++} ++ ++static GtkSelectionInfo * ++gtk_selection_info_get (GdkAtom selection) ++{ ++ GList *tmp_list; ++ GList *next; ++ GtkSelectionInfo *selection_info; ++ ++ tmp_list = current_selections; ++ while (tmp_list) ++ { ++ next = tmp_list->next; ++ selection_info = (GtkSelectionInfo *)tmp_list->data; ++ ++ if (selection_info->selection == selection) ++ { ++ return selection_info; ++ } ++ ++ tmp_list = next; ++ } ++ return NULL; ++} ++ ++static void ++gtk_selection_info_remove (GdkAtom selection, GtkWidget *owner) ++{ ++ GList *tmp_list; ++ GList *next; ++ GtkSelectionInfo *selection_info; ++ ++ g_return_if_fail (GTK_IS_WIDGET (owner)); ++ ++ tmp_list = current_selections; ++ while (tmp_list) ++ { ++ next = tmp_list->next; ++ selection_info = (GtkSelectionInfo *)tmp_list->data; ++ ++ if (selection_info->selection == selection && ++ selection_info->owner == owner) ++ { ++ GtkClipboard *clip = gtk_clipboard_get(selection_info->selection); ++ gtk_clipboard_clear(clip); ++ current_selections = g_list_remove_link (current_selections, ++ tmp_list); ++ g_list_free (tmp_list); ++ g_slice_free (GtkSelectionInfo, selection_info); ++ return; ++ } ++ ++ tmp_list = next; ++ } ++} ++static void ++gtk_selection_info_append (GdkAtom selection, GtkWidget *owner, guint32 time) ++{ ++ GtkSelectionInfo *selection_info; ++ ++ g_return_if_fail (GTK_IS_WIDGET (owner)); ++ ++ selection_info = g_slice_new (GtkSelectionInfo); ++ selection_info->selection = selection; ++ selection_info->owner = owner; ++ selection_info->time = time; ++ current_selections = g_list_prepend (current_selections, ++ selection_info); ++} ++ ++static void ++gtk_selection_info_clear (GtkWidget *owner) ++{ ++ GList *tmp_list; ++ GList *next; ++ GtkSelectionInfo *selection_info; ++ ++ g_return_if_fail (GTK_IS_WIDGET (owner)); ++ ++ tmp_list = current_selections; ++ while (tmp_list) ++ { ++ next = tmp_list->next; ++ selection_info = (GtkSelectionInfo *)tmp_list->data; ++ ++ if (selection_info->owner == owner) ++ { ++ current_selections = g_list_remove_link (current_selections, ++ tmp_list); ++ g_list_free (tmp_list); ++ g_slice_free (GtkSelectionInfo, selection_info); ++ } ++ ++ tmp_list = next; ++ } ++} ++ ++static GtkTargetList * ++gtk_selection_target_list_get (GtkWidget *widget, ++ GdkAtom selection) ++{ ++ GtkSelectionTargetList *sellist; ++ GList *tmp_list; ++ GList *lists; ++ ++ lists = g_object_get_data (G_OBJECT (widget), gtk_selection_handler_key); ++ ++ tmp_list = lists; ++ while (tmp_list) ++ { ++ sellist = tmp_list->data; ++ if (sellist->selection == selection) ++ return sellist->list; ++ tmp_list = tmp_list->next; ++ } ++ ++ sellist = g_slice_new (GtkSelectionTargetList); ++ sellist->selection = selection; ++ sellist->list = gtk_target_list_new (NULL, 0); ++ ++ lists = g_list_prepend (lists, sellist); ++ g_object_set_data (G_OBJECT (widget), I_(gtk_selection_handler_key), lists); ++ ++ return sellist->list; ++} ++ ++static void ++gtk_selection_target_list_remove (GtkWidget *widget) ++{ ++ GtkSelectionTargetList *sellist; ++ GList *tmp_list; ++ GList *lists; ++ ++ lists = g_object_get_data (G_OBJECT (widget), gtk_selection_handler_key); ++ ++ tmp_list = lists; ++ while (tmp_list) ++ { ++ sellist = tmp_list->data; ++ ++ gtk_target_list_unref (sellist->list); ++ ++ g_slice_free (GtkSelectionTargetList, sellist); ++ tmp_list = tmp_list->next; ++ } ++ ++ g_list_free (lists); ++ g_object_set_data (G_OBJECT (widget), I_(gtk_selection_handler_key), NULL); ++} ++ +diff --git a/gtk/gtkselection.c b/gtk/gtkselection.c +index c2c9d97..01774dc 100644 +--- a/gtk/gtkselection.c ++++ b/gtk/gtkselection.c +@@ -633,6 +633,7 @@ gtk_target_table_free (GtkTargetEntry *targets, + g_free (targets); + } + ++#ifndef GDK_WINDOWING_QUARTZ /* Quartz handled by gtkselection-quartz.c */ + /** + * gtk_selection_owner_set_for_display: + * @display: the #Gdkdisplay where the selection is set +@@ -735,7 +736,7 @@ gtk_selection_owner_set_for_display (GdkDisplay *display, + else + return FALSE; + } +- ++#endif /* GDK_WINDOWING_QUARTZ */ + /** + * gtk_selection_owner_set: + * @widget: (allow-none): a #GtkWidget, or %NULL. +@@ -937,7 +938,7 @@ gtk_selection_add_targets (GtkWidget *widget, + #endif + } + +- ++#ifndef GDK_WINDOWING_QUARTZ /* Quartz is handled in gtkselection-quartz.c */ + /** + * gtk_selection_remove_all: + * @widget: a #GtkWidget +@@ -998,8 +999,9 @@ gtk_selection_remove_all (GtkWidget *widget) + /* Remove all selection lists */ + gtk_selection_target_list_remove (widget); + } ++#endif /* GDK_WINDOWING_QUARTZ */ + +- ++#ifndef GDK_WINDOWING_QUARTZ /* Quartz is handled in gtkselection-quartz.c */ + /** + * gtk_selection_convert: + * @widget: The widget which acts as requestor +@@ -1111,7 +1113,7 @@ gtk_selection_convert (GtkWidget *widget, + + return TRUE; + } +- ++#endif /* GDK_WINDOWING_QUARTZ */ + /** + * gtk_selection_data_get_selection: + * @selection_data: a pointer to a #GtkSelectionData structure. +@@ -2184,6 +2186,7 @@ gtk_selection_init (void) + initialize = FALSE; + } + ++#ifndef GDK_WINDOWING_QUARTZ /* Quartz handled by gtkselection-quartz.c */ + /** + * gtk_selection_clear: + * @widget: a #GtkWidget +@@ -2622,6 +2625,7 @@ _gtk_selection_incr_event (GdkWindow *window, + + return TRUE; + } ++#endif /* GDK_WINDOWING_QUARTZ */ + + /************************************************************* + * gtk_selection_incr_timeout: +@@ -2676,6 +2680,7 @@ gtk_selection_incr_timeout (GtkIncrInfo *info) + return retval; + } + ++#ifndef GDK_WINDOWING_QUARTZ /* Quartz handled by gtkselection-quartz.c */ + /************************************************************* + * _gtk_selection_notify: + * Handler for "selection-notify-event" signals on windows +@@ -2869,6 +2874,7 @@ _gtk_selection_property_notify (GtkWidget *widget, + + return TRUE; + } ++#endif /* GDK_WINDOWING_QUARTZ */ + + /************************************************************* + * gtk_selection_retrieval_timeout: +-- +1.7.6.3.dirty + diff --git a/modulesets/patches/0006-Bug-658722-Drag-and-Drop-sometimes-stops-working.patch b/modulesets/patches/0006-Bug-658722-Drag-and-Drop-sometimes-stops-working.patch new file mode 100644 index 0000000..fc27587 --- /dev/null +++ b/modulesets/patches/0006-Bug-658722-Drag-and-Drop-sometimes-stops-working.patch @@ -0,0 +1,209 @@ +From 2bf33d856464d33ed1bd5ab787c9279e464f08df Mon Sep 17 00:00:00 2001 +From: John Ralls +Date: Thu, 11 Feb 2016 15:53:33 -0800 +Subject: [PATCH] Bug-658722-Drag-and-Drop-sometimes-stops-working + +--- + gdk/quartz/gdkdnd-quartz.c | 35 ++++- + gtk/gtkdnd-quartz.c | 321 +++++++++++++++++++++------------------------ + 2 files changed, 179 insertions(+), 177 deletions(-) + +diff --git a/gdk/quartz/gdkdnd-quartz.c b/gdk/quartz/gdkdnd-quartz.c +index ec89ad2..7a70415 100644 +--- a/gdk/quartz/gdkdnd-quartz.c ++++ b/gdk/quartz/gdkdnd-quartz.c +@@ -111,11 +111,20 @@ GdkDragContext * + gdk_drag_begin (GdkWindow *window, + GList *targets) + { +- g_assert (_gdk_quartz_drag_source_context == NULL); ++ if (_gdk_quartz_drag_source_context != NULL) ++ { ++ /* Something is amiss with the existing drag, so log a message ++ and abort it */ ++ g_warning ("Drag begun with existing context; aborting the preexisting drag"); ++ gdk_drag_abort (_gdk_quartz_drag_source_context, ++ (guint32)g_get_real_time ()); ++ } ++ + + /* Create fake context */ + _gdk_quartz_drag_source_context = gdk_drag_context_new (); + _gdk_quartz_drag_source_context->is_source = TRUE; ++ _gdk_quartz_drag_source_context->source_window = window; + + return _gdk_quartz_drag_source_context; + } +@@ -155,20 +164,36 @@ gdk_drag_find_window_for_screen (GdkDragContext *context, + /* FIXME: Implement */ + } + ++static void ++gdk_quartz_drag_end (GdkDragContext *context) ++{ ++ GdkEvent event; ++ ++ g_assert (context != NULL); ++ event.dnd.type = GDK_DROP_FINISHED; ++ event.dnd.window = g_object_ref (context->source_window); ++ event.dnd.send_event = FALSE; ++ event.dnd.context = context; ++ ++ (*_gdk_event_func) (&event, _gdk_event_data); ++ ++ g_object_run_dispose (_gdk_quartz_drag_source_context); ++ _gdk_quartz_drag_source_context = NULL; ++} ++ + void + gdk_drag_drop (GdkDragContext *context, + guint32 time) + { +- /* FIXME: Implement */ ++ gdk_quartz_drag_end (context); + } + + void + gdk_drag_abort (GdkDragContext *context, + guint32 time) + { +- g_return_if_fail (context != NULL); +- +- /* FIXME: Implement */ ++ g_warning ("Gdk-quartz-drag-drop, aborting\n"); ++ gdk_quartz_drag_end (context); + } + + void +diff --git a/gtk/gtkdnd-quartz.c b/gtk/gtkdnd-quartz.c +index 62b8570..483525d 100644 +--- a/gtk/gtkdnd-quartz.c ++++ b/gtk/gtkdnd-quartz.c +@@ -270,6 +270,39 @@ gtk_drag_dest_info_destroy (gpointer data) + g_free (info); + } + ++static void ++gtk_drag_source_info_destroy (GtkDragSourceInfo *info) ++{ ++ NSPasteboard *pasteboard; ++ NSAutoreleasePool *pool; ++ ++ if (info->icon_pixbuf) ++ g_object_unref (info->icon_pixbuf); ++ ++ g_signal_emit_by_name (info->widget, "drag-end", ++ info->context); ++ ++ if (info->source_widget) ++ g_object_unref (info->source_widget); ++ ++ if (info->widget) ++ g_object_unref (info->widget); ++ ++ gtk_target_list_unref (info->target_list); ++ ++ pool = [[NSAutoreleasePool alloc] init]; ++ ++ /* Empty the pasteboard, so that it will not accidentally access ++ * info->context after it has been destroyed. ++ */ ++ pasteboard = [NSPasteboard pasteboardWithName: NSDragPboard]; ++ [pasteboard declareTypes: nil owner: nil]; ++ ++ [pool release]; ++ ++ g_free (info); ++} ++ + static GtkDragDestInfo * + gtk_drag_get_dest_info (GdkDragContext *context, + gboolean create) +@@ -303,18 +336,14 @@ gtk_drag_get_source_info (GdkDragContext *context, + { + info = g_new0 (GtkDragSourceInfo, 1); + info->context = context; +- g_object_set_qdata (G_OBJECT (context), dest_info_quark, info); ++ g_object_ref (info->context); ++ g_object_set_qdata_full (G_OBJECT (context), dest_info_quark, ++ info, gtk_drag_source_info_destroy); + } + + return info; + } + +-static void +-gtk_drag_clear_source_info (GdkDragContext *context) +-{ +- g_object_set_qdata (G_OBJECT (context), dest_info_quark, NULL); +-} +- + GtkWidget * + gtk_drag_get_source_widget (GdkDragContext *context) + { +@@ -1888,53 +1917,6 @@ gtk_drag_set_default_icon (GdkColormap *colormap, + g_warning ("gtk_drag_set_default_icon is not supported on Mac OS X."); + } + +-static void +-gtk_drag_source_info_destroy (GtkDragSourceInfo *info) +-{ +- NSPasteboard *pasteboard; +- NSAutoreleasePool *pool; +- +- if (info->icon_pixbuf) +- g_object_unref (info->icon_pixbuf); +- +- g_signal_emit_by_name (info->widget, "drag-end", +- info->context); +- +- if (info->source_widget) +- g_object_unref (info->source_widget); +- +- if (info->widget) +- g_object_unref (info->widget); +- +- gtk_target_list_unref (info->target_list); +- +- pool = [[NSAutoreleasePool alloc] init]; +- +- /* Empty the pasteboard, so that it will not accidentally access +- * info->context after it has been destroyed. +- */ +- pasteboard = [NSPasteboard pasteboardWithName: NSDragPboard]; +- [pasteboard declareTypes: nil owner: nil]; +- +- [pool release]; +- +- gtk_drag_clear_source_info (info->context); +- g_object_unref (info->context); +- +- g_free (info); +- info = NULL; +-} +- +-static gboolean +-drag_drop_finished_idle_cb (gpointer data) +-{ +- GtkDragSourceInfo* info = (GtkDragSourceInfo*) data; +- +- if (info->success) +- gtk_drag_source_info_destroy (data); +- +- return FALSE; +-} + + static void + gtk_drag_drop_finished (GtkDragSourceInfo *info, +@@ -1950,11 +1932,6 @@ gtk_drag_drop_finished (GtkDragSourceInfo *info, + g_signal_emit_by_name (info->source_widget, "drag-data-delete", + info->context); + +- /* Workaround for the fact that the NS API blocks until the drag is +- * over. This way the context is still valid when returning from +- * drag_begin, even if it will still be quite useless. See bug #501588. +- */ +- g_idle_add (drag_drop_finished_idle_cb, info); + } + + /************************************************************* diff --git a/modulesets/patches/0008-Implement-GtkDragSourceOwner-pasteboardChangedOwner.patch b/modulesets/patches/0008-Implement-GtkDragSourceOwner-pasteboardChangedOwner.patch new file mode 100644 index 0000000..5b9153c --- /dev/null +++ b/modulesets/patches/0008-Implement-GtkDragSourceOwner-pasteboardChangedOwner.patch @@ -0,0 +1,39 @@ +From 259563958047ccbf6f61578f2d724fc731218304 Mon Sep 17 00:00:00 2001 +From: John Ralls +Date: Sun, 25 Sep 2011 12:03:54 -0700 +Subject: [PATCH 08/15] Implement GtkDragSourceOwner pasteboardChangedOwner: + +--- + gtk/gtkdnd-quartz.c | 11 +++++++++++ + 1 files changed, 11 insertions(+), 0 deletions(-) + +diff --git a/gtk/gtkdnd-quartz.c b/gtk/gtkdnd-quartz.c +index 084aada..21ce11a 100644 +--- a/gtk/gtkdnd-quartz.c ++++ b/gtk/gtkdnd-quartz.c +@@ -149,6 +149,8 @@ struct _GtkDragFindData + guint target_info; + GtkSelectionData selection_data; + ++ g_return_if_fail(info->source_widget != NULL); ++ g_return_if_fail(info->target_list != NULL); + selection_data.selection = GDK_NONE; + selection_data.data = NULL; + selection_data.length = -1; +@@ -171,6 +173,15 @@ struct _GtkDragFindData + } + } + ++- (void)pasteboardChangedOwner: (NSPasteboard*)sender ++{ ++ if (!info) return; ++ ++ info->target_list = NULL; ++ info->widget = NULL; ++ info->source_widget = NULL; ++} ++ + - (id)initWithInfo:(GtkDragSourceInfo *)anInfo + { + self = [super init]; + diff --git a/modulesets/patches/Pygments-setup-py.patch b/modulesets/patches/Pygments-setup-py.patch new file mode 100644 index 0000000..07e3092 --- /dev/null +++ b/modulesets/patches/Pygments-setup-py.patch @@ -0,0 +1,21 @@ +From 3a15b6526b54b46453043f8e1a853aa0ac7e7f63 Mon Sep 17 00:00:00 2001 +From: John Ralls +Date: Thu, 13 Jul 2023 10:28:01 -0700 +Subject: [PATCH] Add setup.py for jhbuild compatibility. + +--- + setup.py | 2 ++ + 1 file changed, 2 insertions(+) + create mode 100644 setup.py + +diff --git a/setup.py b/setup.py +new file mode 100644 +index 00000000..878e3311 +--- /dev/null ++++ b/setup.py +@@ -0,0 +1,2 @@ ++from setuptools import setup ++setup(name='Pygments', version='2.15.1') +-- +2.37.1 (Apple Git-137.1) + diff --git a/modulesets/patches/amtk-build-on-macOS.patch b/modulesets/patches/amtk-build-on-macOS.patch deleted file mode 100644 index f405355..0000000 --- a/modulesets/patches/amtk-build-on-macOS.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff -u /Users/john/Development/gtk-build/gtk-stable-10.13-x86_64/src/amtk-5.3.1/amtk/meson.build\~ /Users/john/Development/gtk-build/gtk-stable-10.13-x86_64/src/amtk-5.3.1/amtk/meson.build ---- a/amtk/meson.build 2021-01-11 01:38:22.000000000 -0800 -+++ b/amtk/meson.build 2021-04-09 10:30:46.000000000 -0700 -@@ -71,7 +71,8 @@ - amtk_lib_link_args = [] - amtk_lib_link_depends = [] - --if meson.get_compiler('c').get_argument_syntax() != 'msvc' -+if meson.get_compiler('c').get_argument_syntax() != 'msvc' and\ -+ meson.get_compiler('c').get_linker_id() != 'ld64' - symbol_map = meson.current_source_dir() / 'symbol.map' - amtk_lib_link_args = '-Wl,--version-script,' + symbol_map - amtk_lib_link_depends = symbol_map - -Diff finished. Fri Apr 9 14:41:36 2021 diff --git a/modulesets/patches/cairo-1.17.6-snapshot-memory-leak.patch b/modulesets/patches/cairo-1.17.6-snapshot-memory-leak.patch deleted file mode 100644 index 3c10fe7..0000000 --- a/modulesets/patches/cairo-1.17.6-snapshot-memory-leak.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 243938c61a08dac8911153352e55933e0618581e Mon Sep 17 00:00:00 2001 -From: John Ralls -Date: Sat, 23 Apr 2022 16:38:01 -0700 -Subject: [PATCH] [quartz] Destroy local copy of snapshot after attaching it. - -Because cairo_surface_snapshot_attach refs the snapshot. - -Fixes https://gitlab.freedesktop.org/cairo/cairo/-/issues/562 ---- - src/cairo-quartz-surface.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/cairo-quartz-surface.c b/src/cairo-quartz-surface.c -index 5681918c4..fa6d9b1c9 100644 ---- a/src/cairo-quartz-surface.c -+++ b/src/cairo-quartz-surface.c -@@ -2609,6 +2609,7 @@ _cairo_quartz_surface_snapshot_get_image (cairo_quartz_surface_t *surface) - if (unlikely (!snapshot || cairo_surface_status (snapshot))) - return NULL; - _cairo_surface_attach_snapshot (&surface->base, snapshot, NULL); -+ cairo_surface_destroy (snapshot); - } - - return CGImageRetain (((cairo_quartz_snapshot_t*)snapshot)->image); --- -2.32.0 (Apple Git-132) - diff --git a/modulesets/patches/cairo-image-refcount.patch b/modulesets/patches/cairo-image-refcount.patch deleted file mode 100644 index 619cfc2..0000000 --- a/modulesets/patches/cairo-image-refcount.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 59bf3ca963a3e256bc6806497f529eaccb8471a6 Mon Sep 17 00:00:00 2001 -From: John Ralls -Date: Tue, 11 Aug 2020 15:26:16 -0700 -Subject: [PATCH] Ref and destroy the cairo surface handed off to CoreGraphics. - -Fixes https://gitlab.freedesktop.org/cairo/cairo/-/issues/420. ---- - src/cairo-quartz-surface.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/src/cairo-quartz-surface.c b/src/cairo-quartz-surface.c -index 65d03080a..5e4bf6a32 100644 ---- a/src/cairo-quartz-surface.c -+++ b/src/cairo-quartz-surface.c -@@ -790,7 +790,8 @@ static void - DataProviderReleaseCallback (void *info, const void *data, size_t size) - { - quartz_source_image_t *source_img = info; -- _cairo_surface_release_source_image (source_img->surface, source_img->image_out, source_img->image_extra); -+ cairo_surface_destroy(source_img->surface); -+ - free (source_img); - } - -@@ -830,7 +831,7 @@ _cairo_surface_to_cgimage (cairo_surface_t *source, - if (unlikely (source_img == NULL)) - return _cairo_error (CAIRO_STATUS_NO_MEMORY); - -- source_img->surface = source; -+ source_img->surface = cairo_surface_reference(source); - - if (source->type == CAIRO_SURFACE_TYPE_RECORDING) { - image_surface = (cairo_image_surface_t *) --- -2.24.3 (Apple Git-128) - diff --git a/modulesets/patches/frodo-getopt-autotools.patch b/modulesets/patches/getopt-autotools.patch similarity index 100% rename from modulesets/patches/frodo-getopt-autotools.patch rename to modulesets/patches/getopt-autotools.patch diff --git a/modulesets/patches/gjs-remove-js::CodeCoverage.patch b/modulesets/patches/gjs-remove-js::CodeCoverage.patch deleted file mode 100644 index f33da6f..0000000 --- a/modulesets/patches/gjs-remove-js::CodeCoverage.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff -u /Users/john/Development/gtk-build/gtk-stable-10.13-x86_64/src/gjs-1.68.0/gjs/coverage.cpp\~ /Users/john/Development/gtk-build/gtk-stable-10.13-x86_64/src/gjs-1.68.0/gjs/coverage.cpp ---- a/gjs/coverage.cpp 2021-03-20 09:28:52.000000000 -0700 -+++ b/gjs/coverage.cpp 2021-04-12 11:51:39.000000000 -0700 -@@ -19,7 +19,6 @@ - #include - #include // for UniqueChars - #include --#include // for EnableCodeCoverage - #include // for JSAutoRealm, JS_SetPropertyById - #include // for GetCodeCoverageSummary - -@@ -496,6 +495,5 @@ - * Since: 1.66 - */ - void gjs_coverage_enable() { -- js::EnableCodeCoverage(); -- s_coverage_enabled = true; -+ s_coverage_enabled = false; - } - -Diff finished. Mon Apr 12 11:53:49 2021 diff --git a/modulesets/patches/glib-2.76.3-libintl.patch b/modulesets/patches/glib-2.76.3-libintl.patch new file mode 100644 index 0000000..6c4416d --- /dev/null +++ b/modulesets/patches/glib-2.76.3-libintl.patch @@ -0,0 +1,50 @@ +From 32249a22fc39319651e7c23442d37ec837f05764 Mon Sep 17 00:00:00 2001 +From: Nirbheek Chauhan +Date: Thu, 8 Sep 2022 02:36:33 +0530 +Subject: [PATCH] meson: Fix detection of a system-provided proxy-libintl + +proxy-libintl defines ngettext() as a define in the header that points +to the actual symbol in the library which is g_libintl_ngettext(). +Same with bind_textdomain_codeset(). +--- + meson.build | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/meson.build b/meson.build +index 0cbc9689f..de0bee5a3 100644 +--- a/meson.build ++++ b/meson.build +@@ -2089,6 +2089,7 @@ libz_dep = dependency('zlib') + # FIXME: glib-gettext.m4 has much more checks to detect broken/uncompatible + # implementations. This could be extended if issues are found in some platforms. + libintl_deps = [] ++libintl_prefix = '#include ' + libintl = dependency('intl', required: false, allow_fallback: false) + if libintl.found() + # libintl supports different threading APIs, which may not +@@ -2100,11 +2101,11 @@ if libintl.found() + # + # Meson's builtin dependency lookup as of 0.60.0 doesn't check for + # pthread, so we do this manually here. +- if cc.has_function('ngettext', dependencies : libintl) ++ if cc.has_function('ngettext', dependencies : libintl, prefix: libintl_prefix) + libintl_deps += [libintl] + else + libintl_pthread = cc.find_library('pthread', required : false) +- if libintl_pthread.found() and cc.has_function('ngettext', dependencies : [libintl, libintl_pthread]) ++ if libintl_pthread.found() and cc.has_function('ngettext', dependencies : [libintl, libintl_pthread], prefix: libintl_prefix) + libintl_deps += [libintl, libintl_pthread] + else + libintl = disabler() +@@ -2113,7 +2114,7 @@ if libintl.found() + endif + + if libintl.found() +- have_bind_textdomain_codeset = cc.has_function('bind_textdomain_codeset', dependencies: libintl_deps) ++ have_bind_textdomain_codeset = cc.has_function('bind_textdomain_codeset', dependencies: libintl_deps, prefix: libintl_prefix) + else + libintl = dependency('intl', allow_fallback: true) + assert(libintl.type_name() == 'internal') +-- +2.37.1 (Apple Git-137.1) + diff --git a/modulesets/patches/gmp-6.2.1-avoid-x18-register-apple-silicon.patch b/modulesets/patches/gmp-6.2.1-avoid-x18-register-apple-silicon.patch new file mode 100644 index 0000000..de930e2 --- /dev/null +++ b/modulesets/patches/gmp-6.2.1-avoid-x18-register-apple-silicon.patch @@ -0,0 +1,501 @@ +--- a/mpn/arm64/aors_n.asm Sat Nov 28 23:38:32 2020 +0100 ++++ b/mpn/arm64/aors_n.asm Sun Nov 29 22:31:40 2020 +0100 +@@ -68,7 +68,7 @@ + EPILOGUE() + PROLOGUE(func_n) + CLRCY +-L(ent): lsr x18, n, #2 ++L(ent): lsr x17, n, #2 + tbz n, #0, L(bx0) + + L(bx1): ldr x7, [up] +@@ -77,7 +77,7 @@ + str x13, [rp],#8 + tbnz n, #1, L(b11) + +-L(b01): cbz x18, L(ret) ++L(b01): cbz x17, L(ret) + ldp x4, x5, [up,#8] + ldp x8, x9, [vp,#8] + sub up, up, #8 +@@ -88,7 +88,7 @@ + ldp x10, x11, [vp,#8] + add up, up, #8 + add vp, vp, #8 +- cbz x18, L(end) ++ cbz x17, L(end) + b L(top) + + L(bx0): tbnz n, #1, L(b10) +@@ -101,7 +101,7 @@ + + L(b10): ldp x6, x7, [up] + ldp x10, x11, [vp] +- cbz x18, L(end) ++ cbz x17, L(end) + + ALIGN(16) + L(top): ldp x4, x5, [up,#16] +@@ -114,8 +114,8 @@ + ADDSUBC x12, x4, x8 + ADDSUBC x13, x5, x9 + stp x12, x13, [rp],#16 +- sub x18, x18, #1 +- cbnz x18, L(top) ++ sub x17, x17, #1 ++ cbnz x17, L(top) + + L(end): ADDSUBC x12, x6, x10 + ADDSUBC x13, x7, x11 +--- a/mpn/arm64/aorsmul_1.asm Sat Nov 28 23:38:32 2020 +0100 ++++ b/mpn/arm64/aorsmul_1.asm Sun Nov 29 22:31:40 2020 +0100 +@@ -32,10 +32,15 @@ + + include(`../config.m4') + +-C cycles/limb +-C Cortex-A53 9.3-9.8 +-C Cortex-A57 7.0 +-C X-Gene 5.0 ++C addmul_1 submul_1 ++C cycles/limb cycles/limb ++C Cortex-A53 9.3-9.8 9.3-9.8 ++C Cortex-A55 9.0-9.5 9.3-9.8 ++C Cortex-A57 7 7 ++C Cortex-A72 ++C Cortex-A73 6 6 ++C X-Gene 5 5 ++C Apple M1 1.75 1.75 + + C NOTES + C * It is possible to keep the carry chain alive between the addition blocks +--- a/mpn/arm64/aorsorrlshC_n.asm Sat Nov 28 23:38:32 2020 +0100 ++++ b/mpn/arm64/aorsorrlshC_n.asm Sun Nov 29 22:31:40 2020 +0100 +@@ -65,14 +65,14 @@ + + ASM_START() + PROLOGUE(func_n) +- lsr x18, n, #2 ++ lsr x6, n, #2 + tbz n, #0, L(bx0) + + L(bx1): ldr x5, [up] + tbnz n, #1, L(b11) + + L(b01): ldr x11, [vp] +- cbz x18, L(1) ++ cbz x6, L(1) + ldp x8, x9, [vp,#8] + lsl x13, x11, #LSH + ADDSUB( x15, x13, x5) +@@ -94,7 +94,7 @@ + ADDSUB( x17, x13, x5) + str x17, [rp],#8 + sub up, up, #8 +- cbz x18, L(end) ++ cbz x6, L(end) + b L(top) + + L(bx0): tbnz n, #1, L(b10) +@@ -107,7 +107,7 @@ + L(b10): CLRRCY( x9) + ldp x10, x11, [vp] + sub up, up, #16 +- cbz x18, L(end) ++ cbz x6, L(end) + + ALIGN(16) + L(top): ldp x4, x5, [up,#16] +@@ -124,8 +124,8 @@ + ADDSUBC(x16, x12, x4) + ADDSUBC(x17, x13, x5) + stp x16, x17, [rp],#16 +- sub x18, x18, #1 +- cbnz x18, L(top) ++ sub x6, x6, #1 ++ cbnz x6, L(top) + + L(end): ldp x4, x5, [up,#16] + extr x12, x10, x9, #RSH +--- a/mpn/arm64/cnd_aors_n.asm Sat Nov 28 23:38:32 2020 +0100 ++++ b/mpn/arm64/cnd_aors_n.asm Sun Nov 29 22:31:40 2020 +0100 +@@ -65,7 +65,7 @@ + + CLRCY + +- lsr x18, n, #2 ++ lsr x17, n, #2 + tbz n, #0, L(bx0) + + L(bx1): ldr x13, [vp] +@@ -75,7 +75,7 @@ + str x9, [rp] + tbnz n, #1, L(b11) + +-L(b01): cbz x18, L(rt) ++L(b01): cbz x17, L(rt) + ldp x12, x13, [vp,#8] + ldp x10, x11, [up,#8] + sub up, up, #8 +@@ -86,7 +86,7 @@ + L(b11): ldp x12, x13, [vp,#8]! + ldp x10, x11, [up,#8]! + sub rp, rp, #8 +- cbz x18, L(end) ++ cbz x17, L(end) + b L(top) + + L(bx0): ldp x12, x13, [vp] +@@ -99,7 +99,7 @@ + b L(mid) + + L(b10): sub rp, rp, #16 +- cbz x18, L(end) ++ cbz x17, L(end) + + ALIGN(16) + L(top): bic x6, x12, cnd +@@ -116,8 +116,8 @@ + ADDSUBC x9, x11, x7 + ldp x10, x11, [up,#32]! + stp x8, x9, [rp,#32]! +- sub x18, x18, #1 +- cbnz x18, L(top) ++ sub x17, x17, #1 ++ cbnz x17, L(top) + + L(end): bic x6, x12, cnd + bic x7, x13, cnd +--- a/mpn/arm64/logops_n.asm Sat Nov 28 23:38:32 2020 +0100 ++++ b/mpn/arm64/logops_n.asm Sun Nov 29 22:31:40 2020 +0100 +@@ -78,7 +78,7 @@ + + ASM_START() + PROLOGUE(func) +- lsr x18, n, #2 ++ lsr x17, n, #2 + tbz n, #0, L(bx0) + + L(bx1): ldr x7, [up] +@@ -88,7 +88,7 @@ + str x15, [rp],#8 + tbnz n, #1, L(b11) + +-L(b01): cbz x18, L(ret) ++L(b01): cbz x17, L(ret) + ldp x4, x5, [up,#8] + ldp x8, x9, [vp,#8] + sub up, up, #8 +@@ -99,7 +99,7 @@ + ldp x10, x11, [vp,#8] + add up, up, #8 + add vp, vp, #8 +- cbz x18, L(end) ++ cbz x17, L(end) + b L(top) + + L(bx0): tbnz n, #1, L(b10) +@@ -110,7 +110,7 @@ + + L(b10): ldp x6, x7, [up] + ldp x10, x11, [vp] +- cbz x18, L(end) ++ cbz x17, L(end) + + ALIGN(16) + L(top): ldp x4, x5, [up,#16] +@@ -127,8 +127,8 @@ + POSTOP( x12) + POSTOP( x13) + stp x12, x13, [rp],#16 +- sub x18, x18, #1 +- cbnz x18, L(top) ++ sub x17, x17, #1 ++ cbnz x17, L(top) + + L(end): LOGOP( x12, x6, x10) + LOGOP( x13, x7, x11) +--- a/mpn/arm64/lshift.asm Sat Nov 28 23:38:32 2020 +0100 ++++ b/mpn/arm64/lshift.asm Sun Nov 29 22:31:40 2020 +0100 +@@ -61,7 +61,7 @@ + add rp, rp_arg, n, lsl #3 + add up, up, n, lsl #3 + sub tnc, xzr, cnt +- lsr x18, n, #2 ++ lsr x17, n, #2 + tbz n, #0, L(bx0) + + L(bx1): ldr x4, [up,#-8] +@@ -69,7 +69,7 @@ + + L(b01): NSHIFT x0, x4, tnc + PSHIFT x2, x4, cnt +- cbnz x18, L(gt1) ++ cbnz x17, L(gt1) + str x2, [rp,#-8] + ret + L(gt1): ldp x4, x5, [up,#-24] +@@ -89,7 +89,7 @@ + PSHIFT x13, x5, cnt + NSHIFT x10, x4, tnc + PSHIFT x2, x4, cnt +- cbnz x18, L(gt2) ++ cbnz x17, L(gt2) + orr x10, x10, x13 + stp x2, x10, [rp,#-16] + ret +@@ -123,11 +123,11 @@ + orr x11, x12, x2 + stp x10, x11, [rp,#-32]! + PSHIFT x2, x4, cnt +-L(lo0): sub x18, x18, #1 ++L(lo0): sub x17, x17, #1 + L(lo3): NSHIFT x10, x6, tnc + PSHIFT x13, x7, cnt + NSHIFT x12, x7, tnc +- cbnz x18, L(top) ++ cbnz x17, L(top) + + L(end): orr x10, x10, x13 + orr x11, x12, x2 +--- a/mpn/arm64/lshiftc.asm Sat Nov 28 23:38:32 2020 +0100 ++++ b/mpn/arm64/lshiftc.asm Sun Nov 29 22:31:40 2020 +0100 +@@ -61,7 +61,7 @@ + add rp, rp_arg, n, lsl #3 + add up, up, n, lsl #3 + sub tnc, xzr, cnt +- lsr x18, n, #2 ++ lsr x17, n, #2 + tbz n, #0, L(bx0) + + L(bx1): ldr x4, [up,#-8] +@@ -69,7 +69,7 @@ + + L(b01): NSHIFT x0, x4, tnc + PSHIFT x2, x4, cnt +- cbnz x18, L(gt1) ++ cbnz x17, L(gt1) + mvn x2, x2 + str x2, [rp,#-8] + ret +@@ -90,7 +90,7 @@ + PSHIFT x13, x5, cnt + NSHIFT x10, x4, tnc + PSHIFT x2, x4, cnt +- cbnz x18, L(gt2) ++ cbnz x17, L(gt2) + eon x10, x10, x13 + mvn x2, x2 + stp x2, x10, [rp,#-16] +@@ -125,11 +125,11 @@ + eon x11, x12, x2 + stp x10, x11, [rp,#-32]! + PSHIFT x2, x4, cnt +-L(lo0): sub x18, x18, #1 ++L(lo0): sub x17, x17, #1 + L(lo3): NSHIFT x10, x6, tnc + PSHIFT x13, x7, cnt + NSHIFT x12, x7, tnc +- cbnz x18, L(top) ++ cbnz x17, L(top) + + L(end): eon x10, x10, x13 + eon x11, x12, x2 +--- a/mpn/arm64/mul_1.asm Sat Nov 28 23:38:32 2020 +0100 ++++ b/mpn/arm64/mul_1.asm Sun Nov 29 22:31:40 2020 +0100 +@@ -56,7 +56,7 @@ + + PROLOGUE(mpn_mul_1) + adds x4, xzr, xzr C clear register and cy flag +-L(com): lsr x18, n, #2 ++L(com): lsr x17, n, #2 + tbnz n, #0, L(bx1) + + L(bx0): mov x11, x4 +@@ -65,7 +65,7 @@ + L(b10): ldp x4, x5, [up] + mul x8, x4, v0 + umulh x10, x4, v0 +- cbz x18, L(2) ++ cbz x17, L(2) + ldp x6, x7, [up,#16]! + mul x9, x5, v0 + b L(mid)-8 +@@ -80,7 +80,7 @@ + str x9, [rp],#8 + tbnz n, #1, L(b10) + +-L(b01): cbz x18, L(1) ++L(b01): cbz x17, L(1) + + L(b00): ldp x6, x7, [up] + mul x8, x6, v0 +@@ -90,8 +90,8 @@ + adcs x12, x8, x11 + umulh x11, x7, v0 + add rp, rp, #16 +- sub x18, x18, #1 +- cbz x18, L(end) ++ sub x17, x17, #1 ++ cbz x17, L(end) + + ALIGN(16) + L(top): mul x8, x4, v0 +@@ -110,8 +110,8 @@ + stp x12, x13, [rp],#32 + adcs x12, x8, x11 + umulh x11, x7, v0 +- sub x18, x18, #1 +- cbnz x18, L(top) ++ sub x17, x17, #1 ++ cbnz x17, L(top) + + L(end): mul x8, x4, v0 + adcs x13, x9, x10 +--- a/mpn/arm64/rsh1aors_n.asm Sat Nov 28 23:38:32 2020 +0100 ++++ b/mpn/arm64/rsh1aors_n.asm Sun Nov 29 22:31:40 2020 +0100 +@@ -59,7 +59,7 @@ + + ASM_START() + PROLOGUE(func_n) +- lsr x18, n, #2 ++ lsr x6, n, #2 + + tbz n, #0, L(bx0) + +@@ -69,7 +69,7 @@ + + L(b01): ADDSUB x13, x5, x9 + and x10, x13, #1 +- cbz x18, L(1) ++ cbz x6, L(1) + ldp x4, x5, [up],#48 + ldp x8, x9, [vp],#48 + ADDSUBC x14, x4, x8 +@@ -80,8 +80,8 @@ + ADDSUBC x12, x4, x8 + ADDSUBC x13, x5, x9 + str x17, [rp], #24 +- sub x18, x18, #1 +- cbz x18, L(end) ++ sub x6, x6, #1 ++ cbz x6, L(end) + b L(top) + + L(1): cset x14, COND +@@ -97,7 +97,7 @@ + ldp x8, x9, [vp],#32 + ADDSUBC x12, x4, x8 + ADDSUBC x13, x5, x9 +- cbz x18, L(3) ++ cbz x6, L(3) + ldp x4, x5, [up,#-16] + ldp x8, x9, [vp,#-16] + extr x17, x12, x15, #1 +@@ -117,7 +117,7 @@ + ADDSUB x12, x4, x8 + ADDSUBC x13, x5, x9 + and x10, x12, #1 +- cbz x18, L(2) ++ cbz x6, L(2) + ldp x4, x5, [up,#-16] + ldp x8, x9, [vp,#-16] + ADDSUBC x14, x4, x8 +@@ -134,8 +134,8 @@ + ADDSUBC x12, x4, x8 + ADDSUBC x13, x5, x9 + add rp, rp, #16 +- sub x18, x18, #1 +- cbz x18, L(end) ++ sub x6, x6, #1 ++ cbz x6, L(end) + + ALIGN(16) + L(top): ldp x4, x5, [up,#-16] +@@ -152,8 +152,8 @@ + ADDSUBC x12, x4, x8 + ADDSUBC x13, x5, x9 + stp x16, x17, [rp],#32 +- sub x18, x18, #1 +- cbnz x18, L(top) ++ sub x6, x6, #1 ++ cbnz x6, L(top) + + L(end): extr x16, x15, x14, #1 + extr x17, x12, x15, #1 +--- a/mpn/arm64/rshift.asm Sat Nov 28 23:38:32 2020 +0100 ++++ b/mpn/arm64/rshift.asm Sun Nov 29 22:31:40 2020 +0100 +@@ -60,7 +60,7 @@ + PROLOGUE(mpn_rshift) + mov rp, rp_arg + sub tnc, xzr, cnt +- lsr x18, n, #2 ++ lsr x17, n, #2 + tbz n, #0, L(bx0) + + L(bx1): ldr x5, [up] +@@ -68,7 +68,7 @@ + + L(b01): NSHIFT x0, x5, tnc + PSHIFT x2, x5, cnt +- cbnz x18, L(gt1) ++ cbnz x17, L(gt1) + str x2, [rp] + ret + L(gt1): ldp x4, x5, [up,#8] +@@ -89,7 +89,7 @@ + PSHIFT x13, x4, cnt + NSHIFT x10, x5, tnc + PSHIFT x2, x5, cnt +- cbnz x18, L(gt2) ++ cbnz x17, L(gt2) + orr x10, x10, x13 + stp x10, x2, [rp] + ret +@@ -121,11 +121,11 @@ + orr x11, x12, x2 + stp x11, x10, [rp,#32]! + PSHIFT x2, x5, cnt +-L(lo0): sub x18, x18, #1 ++L(lo0): sub x17, x17, #1 + L(lo3): NSHIFT x10, x7, tnc + NSHIFT x12, x6, tnc + PSHIFT x13, x6, cnt +- cbnz x18, L(top) ++ cbnz x17, L(top) + + L(end): orr x10, x10, x13 + orr x11, x12, x2 +--- a/mpn/arm64/sqr_diag_addlsh1.asm Sat Nov 28 23:38:32 2020 +0100 ++++ b/mpn/arm64/sqr_diag_addlsh1.asm Sun Nov 29 22:31:40 2020 +0100 +@@ -47,7 +47,7 @@ + ASM_START() + PROLOGUE(mpn_sqr_diag_addlsh1) + ldr x15, [up],#8 +- lsr x18, n, #1 ++ lsr x14, n, #1 + tbz n, #0, L(bx0) + + L(bx1): adds x7, xzr, xzr +@@ -62,8 +62,8 @@ + ldr x17, [up],#16 + ldp x6, x7, [tp],#32 + umulh x11, x15, x15 +- sub x18, x18, #1 +- cbz x18, L(end) ++ sub x14, x14, #1 ++ cbz x14, L(end) + + ALIGN(16) + L(top): extr x9, x6, x5, #63 +@@ -84,7 +84,7 @@ + extr x8, x5, x4, #63 + stp x12, x13, [rp],#16 + adcs x12, x8, x10 +- sub x18, x18, #1 +- cbnz x18, L(top) ++ sub x14, x14, #1 ++ cbnz x14, L(top) + + L(end): extr x9, x6, x5, #63 + mul x10, x17, x17 \ No newline at end of file diff --git a/modulesets/patches/gnutls-gnulib.patch b/modulesets/patches/gnutls-gnulib.patch new file mode 100644 index 0000000..d464063 --- /dev/null +++ b/modulesets/patches/gnutls-gnulib.patch @@ -0,0 +1,12 @@ +--- a/src/gl/verify.h 2023-02-09 06:55:15.000000000 -0800 ++++ b/src/gl/verify.h 2023-06-30 13:53:05.000000000 -0700 +@@ -213,7 +213,7 @@ + # define _GL_VERIFY(R, DIAGNOSTIC, ...) _Static_assert (R, DIAGNOSTIC) + #else + # define _GL_VERIFY(R, DIAGNOSTIC, ...) \ +- extern int (*_GL_GENSYM (_gl_verify_function) (void)) \ ++ int (*_GL_GENSYM (_gl_verify_function) (void)) \ + [_GL_VERIFY_TRUE (R, DIAGNOSTIC)] + # if 4 < __GNUC__ + (6 <= __GNUC_MINOR__) + # pragma GCC diagnostic ignored "-Wnested-externs" + diff --git a/modulesets/patches/gnutls-pkg-config-pc.patch b/modulesets/patches/gnutls-pkg-config-pc.patch new file mode 100644 index 0000000..94d6bff --- /dev/null +++ b/modulesets/patches/gnutls-pkg-config-pc.patch @@ -0,0 +1,13 @@ +diff --git a/lib/gnutls.pc.in b/lib/gnutls.pc.in +index eeb957cb7..6a66ac464 100644 +--- a/lib/gnutls.pc.in ++++ b/lib/gnutls.pc.in +@@ -18,7 +18,7 @@ Name: GnuTLS + Description: Transport Security Layer implementation for the GNU system + URL: https://www.gnutls.org/ + Version: @VERSION@ +-Libs: -L${libdir} -lgnutls ++Libs: -L${libdir} -lgnutls -lgcrypt + Libs.private: @LIBZ_PC@ @LIBINTL@ @LIBSOCKET@ @INET_PTON_LIB@ @LIBPTHREAD@ @LIB_SELECT@ @TSS_LIBS@ @GMP_LIBS@ @LIBUNISTRING@ @LIBATOMIC_LIBS@ @GNUTLS_LIBS_PRIVATE@ + @GNUTLS_REQUIRES_PRIVATE@ + Cflags: -I${includedir} diff --git a/modulesets/patches/gpodder_disable_getentropy_clock_for_10.11.patch b/modulesets/patches/gpodder_disable_getentropy_clock_for_10.11.patch deleted file mode 100644 index 2c07431..0000000 --- a/modulesets/patches/gpodder_disable_getentropy_clock_for_10.11.patch +++ /dev/null @@ -1,38 +0,0 @@ ---- configure.old 2020-07-20 15:01:32.000000000 +0200 -+++ configure 2021-05-27 16:43:37.000000000 +0200 -@@ -11506,7 +11506,7 @@ - clock confstr copy_file_range ctermid dup3 execv explicit_bzero explicit_memset \ - faccessat fchmod fchmodat fchown fchownat \ - fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ -- futimens futimes gai_strerror getentropy \ -+ futimens futimes gai_strerror \ - getgrgid_r getgrnam_r \ - getgrouplist getgroups getlogin getloadavg getpeername getpgid getpid \ - getpriority getresuid getresgid getpwent getpwnam_r getpwuid_r getspnam getspent getsid getwd \ -@@ -12924,7 +12924,7 @@ - - for ac_func in clock_gettime - do : -- ac_fn_c_check_func "$LINENO" "clock_gettime" "ac_cv_func_clock_gettime" -+ ac_fn_c_check_func "$LINENO" "clock_gettimexx" "ac_cv_func_clock_gettime" - if test "x$ac_cv_func_clock_gettime" = xyes; then : - cat >>confdefs.h <<_ACEOF - #define HAVE_CLOCK_GETTIME 1 -@@ -12986,7 +12986,7 @@ - - for ac_func in clock_getres - do : -- ac_fn_c_check_func "$LINENO" "clock_getres" "ac_cv_func_clock_getres" -+ ac_fn_c_check_func "$LINENO" "clock_getresxx" "ac_cv_func_clock_getres" - if test "x$ac_cv_func_clock_getres" = xyes; then : - cat >>confdefs.h <<_ACEOF - #define HAVE_CLOCK_GETRES 1 -@@ -13044,7 +13044,7 @@ - - for ac_func in clock_settime - do : -- ac_fn_c_check_func "$LINENO" "clock_settime" "ac_cv_func_clock_settime" -+ ac_fn_c_check_func "$LINENO" "clock_settimexx" "ac_cv_func_clock_settime" - if test "x$ac_cv_func_clock_settime" = xyes; then : - cat >>confdefs.h <<_ACEOF - #define HAVE_CLOCK_SETTIME 1 diff --git a/modulesets/patches/graphviz-remove-rpath.patch b/modulesets/patches/graphviz-remove-rpath.patch index 857165b..d735086 100644 --- a/modulesets/patches/graphviz-remove-rpath.patch +++ b/modulesets/patches/graphviz-remove-rpath.patch @@ -1,6 +1,6 @@ --- a/CMakeLists.txt 2021-03-15 17:04:01.000000000 -0700 +++ b/CMakeLists.txt 2021-07-29 13:42:38.000000000 -0700 -@@ -72,6 +72,8 @@ +@@ -94,6 +94,8 @@ # Name of the config file used by Graphviz set(GVPLUGIN_CONFIG_FILE config${GRAPHVIZ_PLUGIN_VERSION}) @@ -11,7 +11,7 @@ list(APPEND CMAKE_PREFIX_PATH ${WINDOWS_DEPENDENCY_DIR}) --- a/plugin/core/CMakeLists.txt 2021-03-15 17:04:01.000000000 -0700 +++ b/plugin/core/CMakeLists.txt 2021-07-29 13:42:09.000000000 -0700 -@@ -53,6 +53,8 @@ +@@ -44,6 +44,8 @@ ARCHIVE DESTINATION ${LIBRARY_INSTALL_DIR} ) @@ -22,18 +22,18 @@ VERSION ${GRAPHVIZ_PLUGIN_VERSION}.0.0 --- a/plugin/pango/CMakeLists.txt 2021-03-15 17:04:01.000000000 -0700 +++ b/plugin/pango/CMakeLists.txt 2021-07-29 13:43:13.000000000 -0700 -@@ -40,6 +40,8 @@ - ARCHIVE DESTINATION ${LIBRARY_INSTALL_DIR} - ) +@@ -36,6 +36,8 @@ + ${PANGOCAIRO_LINK_LIBRARIES} + ) -+set_target_properties(gvplugin_pango PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/${PLUGIN_INSTALL_DIR}") ++ set_target_properties(gvplugin_pango PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/${PLUGIN_INSTALL_DIR}") + - # Include DLLs with this library on Windows - if (WIN32) - install( + # Installation location of library files + install( + TARGETS gvplugin_pango --- a/plugin/neato_layout/CMakeLists.txt 2021-03-15 17:04:01.000000000 -0700 +++ b/plugin/neato_layout/CMakeLists.txt 2021-07-29 13:42:57.000000000 -0700 -@@ -45,6 +45,8 @@ +@@ -42,6 +42,8 @@ ARCHIVE DESTINATION ${LIBRARY_INSTALL_DIR} ) @@ -44,7 +44,7 @@ VERSION ${GRAPHVIZ_PLUGIN_VERSION}.0.0 --- a/plugin/dot_layout/CMakeLists.txt 2021-03-15 17:04:01.000000000 -0700 +++ b/plugin/dot_layout/CMakeLists.txt 2021-07-29 13:42:28.000000000 -0700 -@@ -30,6 +30,8 @@ +@@ -27,6 +27,8 @@ ARCHIVE DESTINATION ${LIBRARY_INSTALL_DIR} ) diff --git a/modulesets/patches/gtk+-Bug-655065-Better-Fix.patch b/modulesets/patches/gtk+-Bug-655065-Better-Fix.patch deleted file mode 100644 index da36d78..0000000 --- a/modulesets/patches/gtk+-Bug-655065-Better-Fix.patch +++ /dev/null @@ -1,86 +0,0 @@ -diff --git a/tests/Makefile.am b/tests/Makefile.am -index e011484..c34b72e 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -14,7 +14,7 @@ DEPS = \ - $(top_builddir)/gdk/$(gdktargetlib) \ - $(top_builddir)/gtk/$(gtktargetlib) - --LDADDS = \ -+LDADD = \ - $(top_builddir)/gdk/$(gdktargetlib) \ - $(top_builddir)/gtk/$(gtktargetlib) \ - $(GTK_DEP_LIBS) \ -@@ -166,72 +166,6 @@ testtooltips_DEPENDENCIES = $(TEST_DEPS) - testvolumebutton_DEPENDENCIES = $(TEST_DEPS) - testwindows_DEPENDENCIES = $(TEST_DEPS) - --flicker_LDADD = $(LDADDS) --simple_LDADD = $(LDADDS) --print_editor_LDADD = $(LDADDS) --testaccel_LDADD = $(LDADDS) --testassistant_LDADD = $(LDADDS) --testbbox_LDADD = $(LDADDS) --testbuttons_LDADD = $(LDADDS) --testframe_LDADD = $(LDADDS) --testcairo_LDADD = $(LDADDS) --testcalendar_LDADD = $(LDADDS) --testcombo_LDADD = $(LDADDS) --testcombochange_LDADD = $(LDADDS) --testcellrenderertext_LDADD = $(LDADDS) --testclientmessage_LDADD = $(LDADDS) --testdnd_LDADD = $(LDADDS) --testentrycompletion_LDADD = $(LDADDS) --testentryicons_LDADD = $(LDADDS) --testfilechooser_LDADD = $(LDADDS) --testfilechooserbutton_LDADD = $(LDADDS) --testgtk_LDADD = $(LDADDS) --testicontheme_LDADD = $(LDADDS) --testiconview_LDADD = $(LDADDS) --testiconview_keynav_LDADD = $(LDADDS) --testinput_LDADD = $(LDADDS) --testimage_LDADD = $(LDADDS) --testmenus_LDADD = $(LDADDS) --testmenubars_LDADD = $(LDADDS) --testmountoperation_LDADD = $(LDADDS) --testmultidisplay_LDADD = $(LDADDS) --testmultiscreen_LDADD = $(LDADDS) --testnotebookdnd_LDADD = $(LDADDS) --testnouiprint_LDADD = $(LDADDS) --testoffscreen_LDADD = $(LDADDS) --testoffscreenwindow_LDADD = $(LDADDS) --testorientable_LDADD = $(LDADDS) --testprint_LDADD = $(LDADDS) --testrecentchooser_LDADD = $(LDADDS) --testrecentchoosermenu_LDADD = $(LDADDS) --testrgb_LDADD = $(LDADDS) --testrichtext_LDADD = $(LDADDS) --testscale_LDADD = $(LDADDS) --testselection_LDADD = $(LDADDS) --testsocket_LDADD = $(LDADDS) --testsocket_child_LDADD = $(LDADDS) --testspinbutton_LDADD = $(LDADDS) --teststatusicon_LDADD = $(LDADDS) --testtoolbar_LDADD = $(LDADDS) --stresstest_toolbar_LDADD = $(LDADDS) --testtreeedit_LDADD = $(LDADDS) --testtreemodel_LDADD = $(LDADDS) --testtreeview_LDADD = $(LDADDS) --testtreefocus_LDADD = $(LDADDS) --testtreeflow_LDADD = $(LDADDS) --testtreecolumns_LDADD = $(LDADDS) --testtreecolumnsizing_LDADD = $(LDADDS) --testtreesort_LDADD = $(LDADDS) --testtext_LDADD = $(LDADDS) --treestoretest_LDADD = $(LDADDS) --testxinerama_LDADD = $(LDADDS) --testmerge_LDADD = $(LDADDS) --testactions_LDADD = $(LDADDS) --testgrouping_LDADD = $(LDADDS) --testtooltips_LDADD = $(LDADDS) --testvolumebutton_LDADD = $(LDADDS) --testwindows_LDADD = $(LDADDS) -- - - testentrycompletion_SOURCES = \ - prop-editor.c \ diff --git a/modulesets/patches/gtk-3-24-36-image-recolor-load-crash.patch b/modulesets/patches/gtk-3-24-36-image-recolor-load-crash.patch deleted file mode 100644 index 18b5a63..0000000 --- a/modulesets/patches/gtk-3-24-36-image-recolor-load-crash.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 40bcba64548bb29b6a6209030eeb06bf13ca98f9 Mon Sep 17 00:00:00 2001 -From: John Ralls -Date: Fri, 23 Dec 2022 13:27:50 -0800 -Subject: [PATCH] Don't rely on gtk_icon_info_load_symbolic to set a GError. - ---- - gtk/gtkcssimagerecolor.c | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/gtk/gtkcssimagerecolor.c b/gtk/gtkcssimagerecolor.c -index 1c38654cfa..db7d08f008 100644 ---- a/gtk/gtkcssimagerecolor.c -+++ b/gtk/gtkcssimagerecolor.c -@@ -125,12 +125,17 @@ gtk_css_image_recolor_load (GtkCssImageRecolor *recolor, - if (gerror) - { - char *uri; -+ char *msg; -+ if (local_error && local_error->message) -+ msg = local_error->message; -+ else -+ msg = "gtk_icon_info_load_symbolic did not set the passed-in GError."; - - uri = g_file_get_uri (url->file); - g_set_error (gerror, - GTK_CSS_PROVIDER_ERROR, - GTK_CSS_PROVIDER_ERROR_FAILED, -- "Error loading image '%s': %s", uri, local_error->message); -+ "Error loading image '%s': %s", uri, msg); - g_error_free (local_error); - g_free (uri); - } --- -2.37.1 (Apple Git-137.1) - diff --git a/modulesets/patches/gtk-3.14-GDesktopAppInfo-not-implemented-on-Mac.patch b/modulesets/patches/gtk-3.14-GDesktopAppInfo-not-implemented-on-Mac.patch deleted file mode 100644 index b2f2ae6..0000000 --- a/modulesets/patches/gtk-3.14-GDesktopAppInfo-not-implemented-on-Mac.patch +++ /dev/null @@ -1,49 +0,0 @@ ---- a/gtk/gtkapplicationwindow.c 2015-07-21 07:22:36.000000000 -0700 -+++ b/gtk/gtkapplicationwindow.c 2018-05-26 11:11:10.000000000 -0700 -@@ -29,7 +29,7 @@ - #include "gtkintl.h" - #include "gtksettings.h" - --#ifdef HAVE_GIO_UNIX -+#if !defined(HAVE_GIO_UNIX) && !defined(__APPLE__) - #include - #endif - -@@ -255,7 +255,7 @@ - { - gchar *retval = NULL; - --#ifdef HAVE_GIO_UNIX -+#if !defined(HAVE_GIO_UNIX) && !defined(__APPLE__) - GDesktopAppInfo *app_info; - const gchar *app_name = NULL; - gchar *desktop_file; ---- a/gtk/gtk-launch.c 2014-11-26 18:54:55.000000000 -0800 -+++ b/gtk/gtk-launch.c 2018-05-26 11:16:49.000000000 -0700 -@@ -28,7 +28,7 @@ - #include - #include - #include --#ifdef G_OS_UNIX -+#if !defined(G_OS_UNIX) && !defined(__APPLE) - #include - #endif - #include -@@ -47,7 +47,7 @@ - GOptionContext *context = NULL; - gchar *summary; - gchar *app_name; --#ifdef G_OS_UNIX -+#if !defined(G_OS_UNIX) && !defined(__APPLE) - gchar *desktop_file_name; - #endif - GAppInfo *info = NULL; -@@ -109,7 +109,7 @@ - gtk_init (&argc, &argv); - - app_name = *args; --#ifdef G_OS_UNIX -+#if !defined(G_OS_UNIX) && !defined(__APPLE) - if (g_str_has_suffix (app_name, ".desktop")) - desktop_file_name = g_strdup (app_name); - else diff --git a/modulesets/patches/gtk-3.14-stylecontext-unnecessary-assert.patch b/modulesets/patches/gtk-3.14-stylecontext-unnecessary-assert.patch deleted file mode 100644 index 3e900c2..0000000 --- a/modulesets/patches/gtk-3.14-stylecontext-unnecessary-assert.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/gtk/gtkstylecontext.c 2015-07-21 07:22:36.000000000 -0700 -+++ b/gtk/gtkstylecontext.c 2018-05-26 10:35:57.000000000 -0700 -@@ -795,8 +795,6 @@ - if (info->values) - return info->values; - -- g_assert (priv->widget != NULL || priv->widget_path != NULL); -- - values = g_hash_table_lookup (priv->style_values, info); - if (values) - { diff --git a/modulesets/patches/gtk-quartz-fix-pixelated-image-surfaces-in-retina-hidpi-.patch b/modulesets/patches/gtk-quartz-fix-pixelated-image-surfaces-in-retina-hidpi-.patch deleted file mode 100644 index de02320..0000000 --- a/modulesets/patches/gtk-quartz-fix-pixelated-image-surfaces-in-retina-hidpi-.patch +++ /dev/null @@ -1,65 +0,0 @@ -From 2a46cc3633069fada208fccee686b7232db40af5 Mon Sep 17 00:00:00 2001 -From: Christoph Reiter -Date: Wed, 16 Mar 2016 19:25:30 +0100 -Subject: [PATCH] quartz: fix pixelated image surfaces in retina/hidpi mode - -gtk+ currently depends on the scaling factor and the cairo device scale -of both the backend surfaces and image surfaces to be equal. - -Until now we didn't apply a cairo device scale at all and depended on the -automatic scaling of CGContexts. This works when drawing with cairo but -fails in case of image surfaces, which get requested at a too small size. - -To make the quartz backend behave more like the X11 one, set the cairo device -scale on the surface in gdk_quartz_ref_cairo_surface(). As this conflicts -with the default scaling done by CGContext (we would get double scaling) -undo the CGContext scaling using CGContextScaleCTM(). ---- - gdk/quartz/gdkwindow-quartz.c | 15 +++++++++++++-- - 1 file changed, 13 insertions(+), 2 deletions(-) - -diff --git a/gdk/quartz/gdkwindow-quartz.c b/gdk/quartz/gdkwindow-quartz.c -index 62710a2..3cd7b3f 100644 ---- a/gdk/quartz/gdkwindow-quartz.c -+++ b/gdk/quartz/gdkwindow-quartz.c -@@ -121,6 +121,7 @@ gdk_window_impl_quartz_get_context (GdkWindowImplQuartz *window_impl, - gboolean antialias) - { - CGContextRef cg_context; -+ CGSize scale; - - if (GDK_WINDOW_DESTROYED (window_impl->wrapper)) - return NULL; -@@ -141,6 +142,12 @@ gdk_window_impl_quartz_get_context (GdkWindowImplQuartz *window_impl, - CGContextSaveGState (cg_context); - CGContextSetAllowsAntialiasing (cg_context, antialias); - -+ /* Undo the default scaling transform, since we apply our own -+ * in gdk_quartz_ref_cairo_surface () */ -+ scale = CGContextConvertSizeToDeviceSpace (cg_context, -+ CGSizeMake (1.0, 1.0)); -+ CGContextScaleCTM (cg_context, 1.0 / scale.width, 1.0 / scale.height); -+ - return cg_context; - } - -@@ -317,10 +324,14 @@ gdk_quartz_ref_cairo_surface (GdkWindow *window) - - if (!impl->cairo_surface) - { -+ gint scale = gdk_window_get_scale_factor (impl->wrapper); -+ - impl->cairo_surface = - gdk_quartz_create_cairo_surface (impl, -- gdk_window_get_width (impl->wrapper), -- gdk_window_get_height (impl->wrapper)); -+ gdk_window_get_width (impl->wrapper) * scale, -+ gdk_window_get_height (impl->wrapper) * scale); -+ -+ cairo_surface_set_device_scale (impl->cairo_surface, scale, scale); - } - else - cairo_surface_reference (impl->cairo_surface); --- -2.7.0 - diff --git a/modulesets/patches/gtk3-14-get-scale-factor.patch b/modulesets/patches/gtk3-14-get-scale-factor.patch deleted file mode 100644 index 1df8983..0000000 --- a/modulesets/patches/gtk3-14-get-scale-factor.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/gdk/quartz/gdkwindow-quartz.c 2018-01-28 15:25:06.000000000 -0800 -+++ b/gdk/quartz/gdkwindow-quartz.c 2018-01-29 13:28:42.000000000 -0800 -@@ -2931,7 +2931,7 @@ - - impl = GDK_WINDOW_IMPL_QUARTZ (window->impl); - -- if (gdk_quartz_osx_version() >= GDK_OSX_LION) -+ if (impl->toplevel != NULL && gdk_quartz_osx_version() >= GDK_OSX_LION) - return [(id ) impl->toplevel backingScaleFactor]; - - return 1; diff --git a/modulesets/patches/gtk3-14-gtkdesktop.patch b/modulesets/patches/gtk3-14-gtkdesktop.patch deleted file mode 100644 index 59634e5..0000000 --- a/modulesets/patches/gtk3-14-gtkdesktop.patch +++ /dev/null @@ -1,40 +0,0 @@ ---- a/gtk/gtkapplicationwindow.c 2015-07-21 07:22:36.000000000 -0700 -+++ b/gtk/gtkapplicationwindow.c 2018-01-28 16:04:38.000000000 -0800 -@@ -29,7 +29,7 @@ - #include "gtkintl.h" - #include "gtksettings.h" - --#ifdef HAVE_GIO_UNIX -+#if !defined(__APPLE__) && defined(HAVE_GIO_UNIX) - #include - #endif - -@@ -255,7 +255,7 @@ - { - gchar *retval = NULL; - --#ifdef HAVE_GIO_UNIX -+#if !defined(__APPLE__) && defined(HAVE_GIO_UNIX) - GDesktopAppInfo *app_info; - const gchar *app_name = NULL; - gchar *desktop_file; ---- a/gtk/gtk-launch.c 2014-11-26 18:54:55.000000000 -0800 -+++ b/gtk/gtk-launch.c 2018-01-28 16:03:08.000000000 -0800 -@@ -28,7 +28,7 @@ - #include - #include - #include --#ifdef G_OS_UNIX -+#if !defined(__APPLE__) && defined(G_OS_UNIX) - #include - #endif - #include -@@ -109,7 +109,7 @@ - gtk_init (&argc, &argv); - - app_name = *args; --#ifdef G_OS_UNIX -+#if !defined(__APPLE__) && defined(G_OS_UNIX) - if (g_str_has_suffix (app_name, ".desktop")) - desktop_file_name = g_strdup (app_name); - else diff --git a/modulesets/patches/gtk3-quartz-3-24-7-fixes.patch b/modulesets/patches/gtk3-quartz-3-24-7-fixes.patch deleted file mode 100644 index 6ffa2d3..0000000 --- a/modulesets/patches/gtk3-quartz-3-24-7-fixes.patch +++ /dev/null @@ -1,250 +0,0 @@ -diff --git a/gtk/gtkclipboard-quartz.c b/gtk/gtkclipboard-quartz.c -index 75699cc..c01a9cd 100644 ---- a/gtk/gtkclipboard-quartz.c -+++ b/gtk/gtkclipboard-quartz.c -@@ -370,7 +370,6 @@ gtk_clipboard_set_contents (GtkClipboard *clipboard, - gpointer user_data, - gboolean have_owner) - { -- GtkClipboardOwner *owner; - NSSet *types; - NSAutoreleasePool *pool; - -@@ -406,26 +405,35 @@ gtk_clipboard_set_contents (GtkClipboard *clipboard, - */ - if (user_data && user_data == clipboard->user_data) - { -- owner = [clipboard->owner retain]; -- -- owner->setting_same_owner = TRUE; -+ clipboard->owner->setting_same_owner = TRUE; - clipboard->change_count = [clipboard->pasteboard declareTypes: [types allObjects] -- owner: owner]; -- owner->setting_same_owner = FALSE; -+ owner: clipboard->owner]; -+ clipboard->owner->setting_same_owner = FALSE; - } - else - { -- owner = [[GtkClipboardOwner alloc] initWithClipboard:clipboard]; -+ GtkClipboardOwner *new_owner; - -+ /* We do not set the new owner on clipboard->owner immediately, -+ * because declareTypes could (but not always does -- see also the -+ * comment at pasteboardChangedOwner above) cause clipboard_unset -+ * to be called, which releases clipboard->owner. -+ */ -+ new_owner = [[GtkClipboardOwner alloc] initWithClipboard:clipboard]; - clipboard->change_count = [clipboard->pasteboard declareTypes: [types allObjects] -- owner: owner]; -+ owner: new_owner]; -+ -+ /* In case pasteboardChangedOwner was not triggered, check to see -+ * whether the previous owner still needs to be released. -+ */ -+ if (clipboard->owner) -+ [clipboard->owner release]; -+ clipboard->owner = new_owner; - } - -- [owner release]; - [types release]; - [pool release]; - -- clipboard->owner = owner; - clipboard->user_data = user_data; - clipboard->have_owner = have_owner; - if (have_owner) -@@ -538,6 +546,8 @@ clipboard_unset (GtkClipboard *clipboard) - g_free (clipboard->storable_targets); - clipboard->storable_targets = NULL; - -+ if (clipboard->owner) -+ [clipboard->owner release]; - clipboard->owner = NULL; - clipboard->get_func = NULL; - clipboard->clear_func = NULL; -@@ -564,8 +574,16 @@ void - gtk_clipboard_clear (GtkClipboard *clipboard) - { - clipboard_unset (clipboard); -- -- [clipboard->pasteboard declareTypes:nil owner:nil]; -+#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1060 -+ if (gdk_quartz_osx_version() >= GDK_OSX_SNOW_LEOPARD) -+ [clipboard->pasteboard clearContents]; -+#if MAC_OS_X_VERSION_MIN_REQUIRED < 1060 -+ else -+#endif -+#endif -+#if MAC_OS_X_VERSION_MIN_REQUIRED < 1060 -+ [clipboard->pasteboard declareTypes:nil owner:nil]; -+#endif - } - - static void -@@ -851,7 +869,6 @@ gtk_clipboard_wait_for_contents (GtkClipboard *clipboard, - /** - * gtk_clipboard_wait_for_text: - * @clipboard: -- * @target: - * - * Returns: (nullable): - */ -@@ -899,7 +916,7 @@ gtk_clipboard_wait_for_image (GtkClipboard *clipboard) - * gtk_clipboard_wait_for_uris: - * @clipboard: - * -- * Returns: (nullable) (array zero-terminated=1): -+ * Returns: (nullable) (array zero-terminated=1) (transfer full) (element-type utf8): - */ - gchar ** - gtk_clipboard_wait_for_uris (GtkClipboard *clipboard) -@@ -1276,6 +1293,8 @@ _gtk_clipboard_store_all (void) - * gtk_clipboard_get_selection: - * @clipboard: - * -+ * Returns: the selection -+ * - * Since: 3.22 - */ - GdkAtom -diff --git a/gtk/gtkmenu.c b/gtk/gtkmenu.c -index f12deb5..01b31ef 100644 ---- a/gtk/gtkmenu.c -+++ b/gtk/gtkmenu.c -@@ -5271,12 +5271,12 @@ gtk_menu_position (GtkMenu *menu, - /* Realize so we have the proper width and height to figure out - * the right place to popup the menu. - */ -- gtk_widget_realize (priv->toplevel); -- gtk_window_move_resize (GTK_WINDOW (priv->toplevel)); -- - if (!gtk_widget_get_visible (priv->toplevel)) - gtk_window_set_type_hint (GTK_WINDOW (priv->toplevel), priv->menu_type_hint); - -+ gtk_widget_realize (priv->toplevel); -+ gtk_window_move_resize (GTK_WINDOW (priv->toplevel)); -+ - if (text_direction == GTK_TEXT_DIR_NONE) - text_direction = gtk_widget_get_direction (GTK_WIDGET (menu)); - -diff --git a/gdk/quartz/GdkQuartzView.c b/gdk/quartz/GdkQuartzView.c -index 72e305c..193fcc1 100644 ---- a/gdk/quartz/GdkQuartzView.c -+++ b/gdk/quartz/GdkQuartzView.c -@@ -33,6 +33,7 @@ - markedRange = NSMakeRange (NSNotFound, 0); - selectedRange = NSMakeRange (0, 0); - } -+ [self setValue: @(YES) forKey: @"postsFrameChangedNotifications"]; - - return self; - } -diff --git a/gdk/quartz/gdkdisplay-quartz.c b/gdk/quartz/gdkdisplay-quartz.c -index 30ba921..ed81f9c 100644 ---- a/gdk/quartz/gdkdisplay-quartz.c -+++ b/gdk/quartz/gdkdisplay-quartz.c -@@ -469,7 +469,7 @@ gdk_quartz_display_get_monitor_at_window (GdkDisplay *display, - } - if (!monitor) - { -- GdkRectangle rect = cgrect_to_gdkrect ([nswindow frame]); -+ GdkRectangle rect = cgrect_to_gdkrect (NSRectToCGRect ([nswindow frame])); - monitor = gdk_display_get_monitor_at_point (display, - rect.x + rect.width/2, - rect.y + rect.height /2); -diff --git a/gdk/quartz/gdkevents-quartz.c b/gdk/quartz/gdkevents-quartz.c -index 83c1232..efb6961 100644 ---- a/gdk/quartz/gdkevents-quartz.c -+++ b/gdk/quartz/gdkevents-quartz.c -@@ -608,11 +608,16 @@ find_toplevel_under_pointer (GdkDisplay *display, - - info = _gdk_display_get_pointer_info (display, gdk_seat_get_pointer (seat)); - toplevel = info->toplevel_under_pointer; -- if (toplevel && WINDOW_IS_TOPLEVEL (toplevel)) -- get_window_point_from_screen_point (toplevel, screen_point, x, y); -- -+ if (!(toplevel && WINDOW_IS_TOPLEVEL (toplevel))) -+ { -+ gint gdk_x = 0, gdk_y = 0; -+ _gdk_quartz_window_nspoint_to_gdk_xy (screen_point, &gdk_x, &gdk_y); -+ toplevel = _gdk_quartz_window_find_child (_gdk_root, gdk_x, gdk_y, TRUE); -+ info->toplevel_under_pointer = g_object_ref (toplevel); -+ } - if (toplevel) - { -+ get_window_point_from_screen_point (toplevel, screen_point, x, y); - /* If the coordinates are out of window bounds, this toplevel is not - * under the pointer and we thus return NULL. This can occur when - * toplevel under pointer has not yet been updated due to a very recent -diff --git a/gdk/quartz/gdkwindow-quartz.c b/gdk/quartz/gdkwindow-quartz.c -index 66c4a14..3b0b565 100644 ---- a/gdk/quartz/gdkwindow-quartz.c -+++ b/gdk/quartz/gdkwindow-quartz.c -@@ -208,6 +208,11 @@ gdk_window_impl_quartz_finalize (GObject *object) - if (impl->transient_for) - g_object_unref (impl->transient_for); - -+ if (impl->view) -+ [[NSNotificationCenter defaultCenter] removeObserver: impl->toplevel -+ name: @"NSViewFrameDidChangeNotification" -+ object: impl->view]; -+ - G_OBJECT_CLASS (parent_class)->finalize (object); - } - -@@ -909,6 +914,10 @@ _gdk_quartz_display_create_window_impl (GdkDisplay *display, - impl->view = [[GdkQuartzView alloc] initWithFrame:content_rect]; - [impl->view setGdkWindow:window]; - [impl->toplevel setContentView:impl->view]; -+ [[NSNotificationCenter defaultCenter] addObserver: impl->toplevel -+ selector: @selector (windowDidResize:) -+ name: @"NSViewFrameDidChangeNotification" -+ object: impl->view]; - [impl->view release]; - } - break; -@@ -2174,7 +2183,14 @@ _gdk_quartz_window_set_collection_behavior (NSWindow *nswindow, - GdkWindowTypeHint hint) - { - #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 -- if (gdk_quartz_osx_version() >= GDK_OSX_LION) -+#if MAC_OS_X_VERSION_MAX_ALLOWED >= 10110 -+#define GDK_QUARTZ_ALLOWS_TILING NSWindowCollectionBehaviorFullScreenAllowsTiling -+#define GDK_QUARTZ_DISALLOWS_TILING NSWindowCollectionBehaviorFullScreenDisallowsTiling -+#else -+#define GDK_QUARTZ_ALLOWS_TILING 1 << 11 -+#define GDK_QUARTZ_DISALLOWS_TILING 1 << 12 -+#endif -+ if (gdk_quartz_osx_version() >= GDK_OSX_LION) - { - /* Fullscreen Collection Behavior */ - NSWindowCollectionBehavior behavior = [nswindow collectionBehavior]; -@@ -2183,20 +2199,22 @@ _gdk_quartz_window_set_collection_behavior (NSWindow *nswindow, - case GDK_WINDOW_TYPE_HINT_NORMAL: - case GDK_WINDOW_TYPE_HINT_SPLASHSCREEN: - behavior &= ~(NSWindowCollectionBehaviorFullScreenAuxiliary & -- NSWindowCollectionBehaviorFullScreenDisallowsTiling); -+ GDK_QUARTZ_DISALLOWS_TILING); - behavior |= (NSWindowCollectionBehaviorFullScreenPrimary | -- NSWindowCollectionBehaviorFullScreenAllowsTiling); -+ GDK_QUARTZ_ALLOWS_TILING); - - break; - default: - behavior &= ~(NSWindowCollectionBehaviorFullScreenPrimary & -- NSWindowCollectionBehaviorFullScreenAllowsTiling); -+ GDK_QUARTZ_ALLOWS_TILING); - behavior |= (NSWindowCollectionBehaviorFullScreenAuxiliary | -- NSWindowCollectionBehaviorFullScreenDisallowsTiling); -+ GDK_QUARTZ_DISALLOWS_TILING); - break; - } - [nswindow setCollectionBehavior:behavior]; - } -+#undef GDK_QUARTZ_ALLOWS_TILING -+#undef GDK_QUARTZ_DISALLOWS_TILING - #endif - } - diff --git a/modulesets/patches/libgcrypt-1.10.2-no-getrandom.patch b/modulesets/patches/libgcrypt-1.10.2-no-getrandom.patch new file mode 100644 index 0000000..a5cb48d --- /dev/null +++ b/modulesets/patches/libgcrypt-1.10.2-no-getrandom.patch @@ -0,0 +1,20 @@ +--- a/random/rndgetentropy.c 2023-04-03 01:22:26.000000000 -0700 ++++ b/random/rndgetentropy.c 2023-06-27 12:39:09.000000000 -0700 +@@ -81,6 +81,7 @@ + do + { + _gcry_pre_syscall (); ++#if HAVE_SYS_RANDOM + if (fips_mode ()) + { + /* DRBG chaining defined in SP 800-90A (rev 1) specify +@@ -98,6 +99,7 @@ + ret = getrandom (buffer, nbytes, GRND_RANDOM); + } + else ++#endif + { + nbytes = length < sizeof (buffer) ? length : sizeof (buffer); + ret = getentropy (buffer, nbytes); + +Diff finished. Tue Jun 27 16:00:41 2023 diff --git a/modulesets/patches/libtasn1-inline-fix.patch b/modulesets/patches/libtasn1-inline-fix.patch deleted file mode 100644 index 10160ab..0000000 --- a/modulesets/patches/libtasn1-inline-fix.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/lib/parser_aux.c 2021-05-13 08:59:58.000000000 -0700 -+++ b/lib/parser_aux.c 2021-08-03 10:25:36.000000000 -0700 -@@ -20,8 +20,9 @@ - */ - - #include // WORD_BIT -+#define _GL_EXTERN_INLINE_STDHEADER_BUG - - #include "int.h" - #include "parser_aux.h" diff --git a/modulesets/patches/libxml2-python-config.patch b/modulesets/patches/libxml2-python-config.patch index 6844fec..ac6808e 100644 --- a/modulesets/patches/libxml2-python-config.patch +++ b/modulesets/patches/libxml2-python-config.patch @@ -1,23 +1,13 @@ ---- a/configure.ac 2021-05-13 11:44:23.000000000 -0700 -+++ b/configure.ac 2021-11-08 11:13:54.000000000 -0800 -@@ -905,7 +905,17 @@ - fi - fi - pythondir='$(PYTHON_SITE_PACKAGES)' -- PYTHON_LIBS=`python$PYTHON_VERSION-config --ldflags` -+ py_ver_major=$(echo $PYTHON_VERSION | cut -d . -f 1) -+ py_ver_minor=$(echo $PYTHON_VERSION | cut -d . -f 2) -+ if test $py_ver_major -eq 3 -a $py_ver_minor -ge 8 -+ then -+ PYTHON_LIBS=`python$PYTHON_VERSION-config --ldflags --embed` -+ elif test $py_ver_major -gt 3 -+ then -+ PYTHON_LIBS=`python$PYTHON_VERSION-config --ldflags --embed` -+ else -+ PYTHON_LIBS=`python$PYTHON_VERSION-config --ldflags` -+ fi - else - PYTHON= - fi - -Diff finished. Mon Nov 8 11:28:35 2021 +diff --git a/configure.ac b/configure.ac +index fa24ca66..79dab797 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -754,7 +754,7 @@ dnl + + AS_IF([test "x$with_python" != "xno"], [ + AM_PATH_PYTHON +- PKG_CHECK_MODULES([PYTHON], [python-${PYTHON_VERSION}]) ++ PKG_CHECK_MODULES([PYTHON], [python-${PYTHON_VERSION}-embed]) + ]) + AM_CONDITIONAL([WITH_PYTHON], [test "x$with_python" != "xno"]) + diff --git a/modulesets/patches/libxslt-python-config.patch b/modulesets/patches/libxslt-python-config.patch new file mode 100644 index 0000000..d07d49e --- /dev/null +++ b/modulesets/patches/libxslt-python-config.patch @@ -0,0 +1,15 @@ +diff --git a/configure.ac b/configure.ac +index baeee600..da430c22 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -189,7 +189,7 @@ AC_ARG_WITH(python, + + AS_IF([test "x$with_python" != "xno"], [ + AM_PATH_PYTHON +- PKG_CHECK_MODULES([PYTHON], [python-${PYTHON_VERSION}]) ++ PKG_CHECK_MODULES([PYTHON], [python-${PYTHON_VERSION}-embed]) + case "$host" in + *-*-cygwin* | *-*-mingw* | *-*-msys* ) + PYTHON_LDFLAGS="-no-undefined -shrext .pyd" + + diff --git a/modulesets/patches/nasm-2.16.01-warnings.c-needs-srcdir.patch b/modulesets/patches/nasm-2.16.01-warnings.c-needs-srcdir.patch new file mode 100644 index 0000000..d34a0cb --- /dev/null +++ b/modulesets/patches/nasm-2.16.01-warnings.c-needs-srcdir.patch @@ -0,0 +1,13 @@ +--- a/Makefile.in 2022-12-21 18:44:37.000000000 -0800 ++++ b/Makefile.in 2023-06-27 16:14:13.000000000 -0700 +@@ -697,7 +697,7 @@ + include/nasmint.h include/nasmlib.h include/nctype.h include/opflags.h \ + include/perfhash.h include/strlist.h include/tables.h include/warnings.h \ + x86/iflaggen.h x86/insnsi.h x86/regs.h +-asm/warnings.$(O): asm/warnings.c config/config.h config/msvc.h \ ++asm/warnings.$(O): $(top_srcdir)asm/warnings.c config/config.h config/msvc.h \ + config/unconfig.h config/unknown.h config/watcom.h include/compiler.h \ + include/error.h include/nasmint.h include/warnings.h + common/common.$(O): common/common.c asm/directiv.h asm/pptok.h asm/preproc.h \ + +Diff finished. Tue Jun 27 16:14:20 2023 diff --git a/modulesets/patches/p11-kit-libintl.patch b/modulesets/patches/p11-kit-libintl.patch new file mode 100644 index 0000000..26a7500 --- /dev/null +++ b/modulesets/patches/p11-kit-libintl.patch @@ -0,0 +1,12 @@ +--- a/Makefile.in 2022-01-17 06:46:40.000000000 -0800 ++++ b/Makefile.in 2023-07-01 14:35:10.000000000 -0700 +@@ -2908,7 +2908,7 @@ + trust/$(DEPDIR)/$(am__dirstamp) + + p11-kit-trust.la: $(p11_kit_trust_la_OBJECTS) $(p11_kit_trust_la_DEPENDENCIES) $(EXTRA_p11_kit_trust_la_DEPENDENCIES) +- $(AM_V_CCLD)$(p11_kit_trust_la_LINK) $(am_p11_kit_trust_la_rpath) $(p11_kit_trust_la_OBJECTS) $(p11_kit_trust_la_LIBADD) $(LIBS) ++ $(AM_V_CCLD)$(p11_kit_trust_la_LINK) $(am_p11_kit_trust_la_rpath) $(p11_kit_trust_la_OBJECTS) $(p11_kit_trust_la_LIBADD) $(LIBS) $(LIBINTL) + common/frob-getauxval.$(OBJEXT): common/$(am__dirstamp) \ + common/$(DEPDIR)/$(am__dirstamp) + + diff --git a/modulesets/patches/pango-coretext-fix-clang-build-failure.patch b/modulesets/patches/pango-coretext-fix-clang-build-failure.patch deleted file mode 100644 index 8476d50..0000000 --- a/modulesets/patches/pango-coretext-fix-clang-build-failure.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 9093ffd69850b630622a3fc8dcf09c45c51ae2f9 Mon Sep 17 00:00:00 2001 -From: John Ralls -Date: Tue, 22 Mar 2022 12:09:09 -0700 -Subject: [PATCH] Coretext: fix clang build failure. - -Recent versions of clang notice that pango_core_text_fontset_load_font's -`key` local variable isn't used and errors out. Remove it. ---- - pango/pangocoretext-fontmap.c | 3 --- - 1 file changed, 3 deletions(-) - -diff --git a/pango/pangocoretext-fontmap.c b/pango/pangocoretext-fontmap.c -index 40e62eed..e090bfc4 100644 ---- a/pango/pangocoretext-fontmap.c -+++ b/pango/pangocoretext-fontmap.c -@@ -1696,11 +1696,8 @@ static PangoFont * - pango_core_text_fontset_load_font (PangoCoreTextFontset *ctfontset, - CTFontDescriptorRef ctdescriptor) - { -- PangoCoreTextFontsetKey *key; - PangoCoreTextFont *font; - -- key = pango_core_text_fontset_get_key (ctfontset); -- - /* For now, we will default the fallbacks to not have synthetic italic, - * in the future this may be improved. - */ --- -2.32.0 (Apple Git-132) - diff --git a/modulesets/patches/shared-mime-info-2.1-freedesktop-generate.patch b/modulesets/patches/shared-mime-info-2.1-freedesktop-generate.patch deleted file mode 100644 index d058eda..0000000 --- a/modulesets/patches/shared-mime-info-2.1-freedesktop-generate.patch +++ /dev/null @@ -1,27 +0,0 @@ ---- a/data/freedesktop_generate.sh 2020-12-31 11:12:16.000000000 -0800 -+++ b/data/freedesktop_generate.sh 2021-11-07 13:50:19.000000000 -0800 -@@ -3,10 +3,17 @@ - src_root="$1" - build_root="$2" - --ninja -C "${build_root}" shared-mime-info-gmo -- --itstool \ -- --its "${src_root}/data/its/shared-mime-info.its" \ -- --join "${src_root}/data/freedesktop.org.xml.in" \ -- -o "${build_root}/data/freedesktop.org.xml" \ -- "${build_root}/po/"*".gmo" -+if test ! -d "${build_root}/po/de"; then -+ ninja -C "${build_root}" shared-mime-info-gmo -+ itstool \ -+ --its "${src_root}/data/its/shared-mime-info.its" \ -+ --join "${src_root}/data/freedesktop.org.xml.in" \ -+ -o "${build_root}/data/freedesktop.org.xml" \ -+ "${build_root}/po/"*".gmo" -+else -+ itstool \ -+ --its "${src_root}/data/its/shared-mime-info.its" \ -+ --join "${src_root}/data/freedesktop.org.xml.in" \ -+ -o "${build_root}/data/freedesktop.org.xml" \ -+ "${build_root}/po/"*"/LC_MESSAGES/shared-mime-info.mo" -+fi diff --git a/modulesets/patches/tiff-nohtml.patch b/modulesets/patches/tiff-nohtml.patch index 0368fb0..3c2f6f4 100644 --- a/modulesets/patches/tiff-nohtml.patch +++ b/modulesets/patches/tiff-nohtml.patch @@ -1,44 +1,57 @@ ---- a/configure 2017-05-22 01:49:37.000000000 +0700 -+++ b/configure 2017-06-12 02:37:01.000000000 +0700 -@@ -20927,7 +20927,7 @@ - ac_config_headers="$ac_config_headers libtiff/tif_config.h libtiff/tiffconf.h" +--- a/Makefile.in 2023-02-19 19:31:46.135333554 +0700 ++++ b/Makefile.in 2023-02-19 19:32:28.379010562 +0700 +@@ -148,9 +148,9 @@ + SOURCES = + DIST_SOURCES = + RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ +- ctags-recursive dvi-recursive html-recursive info-recursive \ ++ ctags-recursive dvi-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ +- install-exec-recursive install-html-recursive \ ++ install-exec-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ +@@ -400,7 +400,6 @@ + host_cpu = @host_cpu@ + host_os = @host_os@ + host_vendor = @host_vendor@ +-htmldir = @htmldir@ + includedir = @includedir@ + infodir = @infodir@ + install_sh = @install_sh@ +@@ -908,10 +907,6 @@ + dvi-am: --ac_config_files="$ac_config_files Makefile build/Makefile contrib/Makefile contrib/addtiffo/Makefile contrib/dbs/Makefile contrib/dbs/xtiff/Makefile contrib/iptcutil/Makefile contrib/mfs/Makefile contrib/pds/Makefile contrib/ras/Makefile contrib/stream/Makefile contrib/tags/Makefile contrib/win_dib/Makefile html/Makefile html/images/Makefile html/man/Makefile libtiff-4.pc libtiff/Makefile man/Makefile port/Makefile test/Makefile tools/Makefile" -+ac_config_files="$ac_config_files Makefile build/Makefile contrib/Makefile contrib/addtiffo/Makefile contrib/dbs/Makefile contrib/dbs/xtiff/Makefile contrib/iptcutil/Makefile contrib/mfs/Makefile contrib/pds/Makefile contrib/ras/Makefile contrib/stream/Makefile contrib/tags/Makefile contrib/win_dib/Makefile libtiff-4.pc libtiff/Makefile man/Makefile port/Makefile test/Makefile tools/Makefile" +-html: html-recursive +- +-html-am: +- + info: info-recursive - cat >confcache <<\_ACEOF - # This file is a shell script that caches the results of configure -@@ -22095,9 +22095,6 @@ - "contrib/stream/Makefile") CONFIG_FILES="$CONFIG_FILES contrib/stream/Makefile" ;; - "contrib/tags/Makefile") CONFIG_FILES="$CONFIG_FILES contrib/tags/Makefile" ;; - "contrib/win_dib/Makefile") CONFIG_FILES="$CONFIG_FILES contrib/win_dib/Makefile" ;; -- "html/Makefile") CONFIG_FILES="$CONFIG_FILES html/Makefile" ;; -- "html/images/Makefile") CONFIG_FILES="$CONFIG_FILES html/images/Makefile" ;; -- "html/man/Makefile") CONFIG_FILES="$CONFIG_FILES html/man/Makefile" ;; - "libtiff-4.pc") CONFIG_FILES="$CONFIG_FILES libtiff-4.pc" ;; - "libtiff/Makefile") CONFIG_FILES="$CONFIG_FILES libtiff/Makefile" ;; - "man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;; ---- a/Makefile.in 2017-05-22 01:49:35.000000000 +0700 -+++ b/Makefile.in 2017-06-12 02:47:22.000000000 +0700 -@@ -436,7 +436,7 @@ - nmake.opt + info-am: +@@ -924,10 +919,6 @@ - dist_doc_DATA = $(docfiles) --SUBDIRS = port libtiff tools build contrib test man html -+SUBDIRS = port libtiff tools build contrib test man - pkgconfigdir = $(libdir)/pkgconfig - pkgconfig_DATA = libtiff-4.pc + install-exec-am: ---- a/Makefile.am 2015-09-07 02:30:46.000000000 +0700 -+++ b/Makefile.am 2017-06-12 02:46:47.000000000 +0700 -@@ -61,7 +61,7 @@ - rm -rf $(distdir)/_build/cmake - rm -rf $(distdir)/_inst/cmake +-install-html: install-html-recursive +- +-install-html-am: +- + install-info: install-info-recursive --SUBDIRS = port libtiff tools build contrib test man html -+SUBDIRS = port libtiff tools build contrib test man - - release: - (rm -f $(top_srcdir)/RELEASE-DATE && echo $(LIBTIFF_RELEASE_DATE) > $(top_srcdir)/RELEASE-DATE) - + install-info-am: +@@ -972,10 +963,10 @@ + dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \ + dist-xz dist-zip distcheck distclean distclean-generic \ + distclean-hdr distclean-libtool distclean-tags distcleancheck \ +- distdir distuninstallcheck dvi dvi-am html html-am info \ ++ distdir distuninstallcheck dvi dvi-am info \ + info-am install install-am install-data install-data-am \ + install-dist_docDATA install-dvi install-dvi-am install-exec \ +- install-exec-am install-html install-html-am install-info \ ++ install-exec-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pkgconfigDATA install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs installdirs-am \ diff --git a/modulesets/patches/vasnprintf.patch b/modulesets/patches/vasnprintf.patch deleted file mode 100644 index 995e1e3..0000000 --- a/modulesets/patches/vasnprintf.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/lib/vasnprintf.c 2017-09-29 11:10:29.000000000 +0200 -+++ b/lib/vasnprintf.c 2017-09-29 11:15:06.000000000 +0200 -@@ -4858,7 +4858,7 @@ - #endif - *fbp = dp->conversion; - #if USE_SNPRINTF --# if !(((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) && !defined __UCLIBC__) || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)) -+# if !(((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) && !defined __UCLIBC__) || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) || defined __APPLE__) - fbp[1] = '%'; - fbp[2] = 'n'; - fbp[3] = '\0'; diff --git a/modulesets/patches/webkit-2.32-bug-224093.patch b/modulesets/patches/webkit-2.32-bug-224093.patch new file mode 100644 index 0000000..2ec8473 --- /dev/null +++ b/modulesets/patches/webkit-2.32-bug-224093.patch @@ -0,0 +1,113 @@ +Subversion Revision: 275837 +diff --git a/Source/JavaScriptCore/Sources.txt b/Source/JavaScriptCore/Sources.txt +index 28b5b83632b9c29bc49f1961694913e6167dbb4d..b6492dfdcb75ac1b76bc0931ca6a114d1201ece6 100644 +--- a/Source/JavaScriptCore/Sources.txt ++++ b/Source/JavaScriptCore/Sources.txt +@@ -849,6 +849,7 @@ runtime/IntlSegmenterConstructor.cpp + runtime/IntlSegmenterPrototype.cpp + runtime/IntlSegments.cpp + runtime/IntlSegmentsPrototype.cpp ++runtime/IntlWorkaround.cpp @no-unify // Confine U_HIDE_DRAFT_API's effect to this file. + runtime/IteratorOperations.cpp + runtime/IteratorPrototype.cpp + runtime/JSArray.cpp +diff --git a/Source/JavaScriptCore/runtime/IntlSegmenter.cpp b/Source/JavaScriptCore/runtime/IntlSegmenter.cpp +index 2ad74f94bbe8ca17c775892afbc6fef712a62b58..93c9b20328476cbfaa040cbbe3883eebb252f3aa 100644 +--- a/Source/JavaScriptCore/runtime/IntlSegmenter.cpp ++++ b/Source/JavaScriptCore/runtime/IntlSegmenter.cpp +@@ -125,7 +125,7 @@ JSValue IntlSegmenter::segment(JSGlobalObject* globalObject, JSValue stringValue + auto upconvertedCharacters = Box>::create(string.charactersWithoutNullTermination()); + + UErrorCode status = U_ZERO_ERROR; +- auto segmenter = std::unique_ptr(ubrk_safeClone(m_segmenter.get(), nullptr, nullptr, &status)); ++ auto segmenter = std::unique_ptr(cloneUBreakIterator(m_segmenter.get(), &status)); + if (U_FAILURE(status)) { + throwTypeError(globalObject, scope, "failed to initialize Segments"_s); + return { }; +diff --git a/Source/JavaScriptCore/runtime/IntlSegmenter.h b/Source/JavaScriptCore/runtime/IntlSegmenter.h +index cd0f426c489756aad4971e69c68119a3f70e0f19..a5239575a9f37990c2bb7bcfafde03a780a7354b 100644 +--- a/Source/JavaScriptCore/runtime/IntlSegmenter.h ++++ b/Source/JavaScriptCore/runtime/IntlSegmenter.h +@@ -75,4 +75,8 @@ private: + Granularity m_granularity { Granularity::Grapheme }; + }; + ++// Abstraction to call ubrk_safeClone or ubrk_clone depending on ICU version. ++// This is implemented in IntlWorkaround.cpp in order to confine draft API visibility. ++UBreakIterator* cloneUBreakIterator(const UBreakIterator*, UErrorCode*); ++ + } // namespace JSC +diff --git a/Source/JavaScriptCore/runtime/IntlSegments.cpp b/Source/JavaScriptCore/runtime/IntlSegments.cpp +index b6aba32fb822e85bbe78088c0482948116a8c355..8b81791e413315f237faaa78f8d443485364a846 100644 +--- a/Source/JavaScriptCore/runtime/IntlSegments.cpp ++++ b/Source/JavaScriptCore/runtime/IntlSegments.cpp +@@ -100,7 +100,7 @@ JSObject* IntlSegments::createSegmentIterator(JSGlobalObject* globalObject) + auto scope = DECLARE_THROW_SCOPE(vm); + + UErrorCode status = U_ZERO_ERROR; +- auto segmenter = std::unique_ptr(ubrk_safeClone(m_segmenter.get(), nullptr, nullptr, &status)); ++ auto segmenter = std::unique_ptr(cloneUBreakIterator(m_segmenter.get(), &status)); + if (U_FAILURE(status)) { + throwTypeError(globalObject, scope, "failed to initialize SegmentIterator"_s); + return nullptr; +diff --git a/Source/JavaScriptCore/runtime/IntlWorkaround.cpp b/Source/JavaScriptCore/runtime/IntlWorkaround.cpp +new file mode 100644 +index 0000000000000000000000000000000000000000..8d820857ec2243f5640237d0c638e6e3f9f885dc +--- /dev/null ++++ b/Source/JavaScriptCore/runtime/IntlWorkaround.cpp +@@ -0,0 +1,53 @@ ++/* ++ * Copyright (C) 2021 Sony Interactive Entertainment Inc. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' ++ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ++ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS ++ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR ++ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF ++ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS ++ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN ++ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ++ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF ++ * THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++#include "config.h" ++ ++#include ++ ++// ICU 69 introduces draft API ubrk_clone and deprecates ubrk_safeClone. ++#if U_ICU_VERSION_MAJOR_NUM >= 69 ++#define HAVE_ICU_UBRK_CLONE 1 ++#endif ++ ++#if defined(U_HIDE_DRAFT_API) ++#undef U_HIDE_DRAFT_API ++#endif ++#include ++ ++namespace JSC { ++ ++UBreakIterator* cloneUBreakIterator(const UBreakIterator*, UErrorCode*); ++ ++UBreakIterator* cloneUBreakIterator(const UBreakIterator* iterator, UErrorCode* status) ++{ ++#if HAVE(ICU_UBRK_CLONE) ++ return ubrk_clone(iterator, status); ++#else ++ return ubrk_safeClone(iterator, nullptr, nullptr, status); ++#endif ++} ++ ++} // namespace JSC + + diff --git a/modulesets/upstream-ref b/modulesets/upstream-ref index 93fb8e2..1ea5a13 100644 --- a/modulesets/upstream-ref +++ b/modulesets/upstream-ref @@ -1,8 +1,5 @@ -commit 1a8dd8730f4ca395b3bb23762cf61bdff165513f +commit a27e8ff6ac5f98b2fc2743fd64fde05775d46293 Author: John Ralls -Date: Fri Feb 18 11:01:08 2022 -0800 +Date: Sun Aug 20 11:01:48 2023 -0700 - Revert "Rename PYENV_VERSION to PYENV_PYTHON_VERSION" - - This reverts commit 18cd0e12797859eb8224e46429688f51208025e0 because - PYENV_VERSION is defined by pyenv and using something else breaks pyenv. + Only set neon enabled when building on ARM. diff --git a/pins.sh b/pins.sh new file mode 100644 index 0000000..aff178f --- /dev/null +++ b/pins.sh @@ -0,0 +1,5 @@ +# use latest commit (2023-08-20) +PIN_GTK_OSX_COMMIT='a27e8ff6' + +# use latest commit (2023-08-17) +PIN_GTK_MAC_BUNDLER_COMMIT='0a95b2d5'