├── .gitignore ├── .gitlab-ci.yml ├── README.md ├── gtk-osx-setup.sh ├── gtk-osx.doap ├── jhbuildrc-gtk-osx ├── jhbuildrc-gtk-osx-custom-example ├── modulesets-stable ├── bootstrap.modules ├── gtk-osx-bootstrap.modules ├── gtk-osx-gstreamer.modules ├── gtk-osx-gtkmm.modules ├── gtk-osx-network.modules ├── gtk-osx-python.modules ├── gtk-osx-random.modules └── gtk-osx.modules ├── modulesets-unstable ├── gtk-osx-bootstrap.modules ├── gtk-osx-gstreamer.modules ├── gtk-osx-gtkmm.modules ├── gtk-osx-network.modules ├── gtk-osx-python.modules ├── gtk-osx-random.modules └── gtk-osx.modules ├── modulesets ├── gtk-osx-bootstrap.modules ├── gtk-osx-gstreamer.modules ├── gtk-osx-gtkmm.modules ├── gtk-osx-network.modules ├── gtk-osx-python.modules ├── gtk-osx-random.modules └── gtk-osx.modules ├── patches ├── 0001-Enable-use-of-XDG_DATA_DIRS-for-locating-iso-code-fi.patch ├── Pygments-setup-py.patch ├── WebKit2Gtk3-2.30.1-Disable-AUDIT_TOKEN-for-Gtk-builds.patch ├── WebKit2Gtk3-2.30.1-Fix-Socket-signal-defines-for-Darwin-and-maybe-BSD.patch ├── WebKit2Gtk3-2.32.0-color-components-correct-math-header.patch ├── WebKit2Gtk3-2.32.0-cumulative.patch ├── WebKit2Gtk3-2.32.0-misc-fixes.patch ├── devhelp-3-build-on-macOS.patch ├── firefox78-rust-manifest-and-max-sdk.patch ├── gdk-pixbuf-loader-name.patch ├── gnutls-gnulib.patch ├── gnutls-pkg-config-pc.patch ├── graphviz-11-fix-python-config.patch ├── gspell-1.14-enchant-resource-path.patch ├── gst-plugins-bad-missing-enum.patch ├── gtk-3.24.48-GtkNotebook-drag-operation-failed.patch ├── gtk-3.24.48-check-all-dnd-windows.patch ├── gtk-3.24.48-fix-leaking-cairo-surface.patch ├── gtk-3.24.48-remove-redundant-NSView-calls.patch ├── gtkmm-3-bad-const-property-background.patch ├── gtkspell-3-install.sh-wrong-sh-path.patch ├── librsvg-libpixbufloader-install-names.patch ├── libtool-apple-sort.patch ├── libxml2-python-config.patch ├── libxslt-python-config.patch ├── nasm-dont-install-docs.patch ├── p11-kit-libintl.patch ├── pangomm3-missing-include.patch ├── patch status ├── patch-bundle-link-webcore.diff ├── patch-webkit2gtk-2282-os-log-availability.diff ├── patch-webkit2gtk-2282-unprotected-egl-changes.diff ├── patch-webkit2gtk-272-macports.diff ├── patch-webkit2gtk-macports.diff ├── pkgconf-link-pkg-config.patch ├── sqlite3-install-name.patch ├── tiff-nohtml.patch └── webkit-2.32-bug-224093.patch └── tidy.conf /.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | tmp-jhbuild-revision 3 | !*.patch -------------------------------------------------------------------------------- /.gitlab-ci.yml: -------------------------------------------------------------------------------- 1 | workflow: 2 | rules: 3 | # run merge request pipelines 4 | - if: $CI_PIPELINE_SOURCE == "merge_request_event" 5 | # do not run branch pipelines if corresponding merge requests exist... 6 | # (this avoids duplicate pipelines) 7 | - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS 8 | when: never 9 | # ...but otherwise run branch pipelines 10 | - if: $CI_COMMIT_BRANCH 11 | 12 | variables: 13 | GIT_DEPTH: 1 14 | 15 | stages: 16 | - build 17 | 18 | build: 19 | stage: build 20 | tags: 21 | - macos 22 | - arm64 23 | cache: 24 | - key: packages 25 | paths: 26 | - pkgs 27 | when: always 28 | - key: ccache 29 | paths: 30 | - ccache 31 | when: always 32 | variables: 33 | CCACHE_VER: "4.11.2" 34 | CCACHE_URL: https://github.com/ccache/ccache/releases/download/v$CCACHE_VER/ccache-$CCACHE_VER-darwin.tar.gz 35 | CCACHE_DIR: $CI_PROJECT_DIR/ccache 36 | CCACHE_MAXSIZE: "500Mi" 37 | SDKROOT: /opt/sdks/MacOSX11.3.sdk 38 | script: 39 | # init: set us up 40 | - export PATH=$HOME/.new_local/bin:$PATH 41 | - ./gtk-osx-setup.sh 42 | # config: set deployment target to SDK version 43 | - | 44 | { 45 | echo "setup_sdk(target=\"$(/usr/libexec/PlistBuddy \ 46 | -c "Print :DefaultProperties:MACOSX_DEPLOYMENT_TARGET" \ 47 | "$SDKROOT"/SDKSettings.plist)\")" 48 | } >$HOME/.config/jhbuildrc-custom 49 | # config: use the local 'modulesets-stable' moduleset 50 | - | 51 | { 52 | echo "modulesets_dir = \"$CI_PROJECT_DIR/modulesets-stable\"" 53 | echo "use_local_modulesets = True" 54 | } >>$HOME/.config/jhbuildrc-custom 55 | # config: move tarballdir below workspace (requird for caching) 56 | - | 57 | { 58 | echo "tarballdir = \"$CI_PROJECT_DIR/pkgs\"" 59 | } >>$HOME/.config/jhbuildrc-custom 60 | # config: use ccache to speed up the builds 61 | - | 62 | curl -L $CCACHE_URL | tar -C $HOME/.new_local/bin -xz --strip-components=1 ccache-$CCACHE_VER-darwin/ccache 63 | for compiler in clang clang++ gcc g++; do 64 | ln -s $HOME/.new_local/bin/ccache $HOME/.new_local/bin/$compiler 65 | done 66 | { 67 | echo "os.environ[\"CC\"] = \"$HOME/.new_local/bin/gcc\"" 68 | echo "os.environ[\"OBJC\"] = \"$HOME/.new_local/bin/gcc\"" 69 | echo "os.environ[\"CXX\"] = \"$HOME/.new_local/bin/g++\"" 70 | } >>$HOME/.config/jhbuildrc-custom 71 | # run: bootstrap 72 | - jhbuild bootstrap-gtk-osx 73 | # run: build modules 74 | - jhbuild build meta-gtk-osx-bootstrap meta-gtk-osx-gtk3 75 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Gtk-OSX # 2 | 3 | This project along with 4 | [gtk-mac-bundler](https://gitlab.gnome.org/GNOME/gtk-mac-bundler) and 5 | [gtk-mac-integration](https://gitlab.gnome.org/GNOME/gtk-mac-integration) 6 | aims to simplify building MacOS application bundles for Gtk+-based 7 | applications. Gtk-OSX provides modulesets, patches, and jhbuild 8 | enhancements for building Gtk+ applications on your Mac. Unlike 9 | "package manager" style systems like MacPorts or Homebrew, Gtk-OSX 10 | installs products into user-configurable "silo" subdirectories that 11 | stand on their own, making it easy to have multiple independent 12 | installations of the Gtk+ stack and other dependencies to accommodate 13 | the requirements of different applications. The build environment 14 | created by Gtk-OSX is suitable for development of Gnome libraries and 15 | Gtk+-based applications on MacOS; indeed the author has been using it 16 | for just that purpose for almost 10 years. 17 | 18 | ## Installation ## 19 | 20 | See [Quickstart](https://gitlab.gnome.org/GNOME/gtk-osx/-/wikis/home#quick-start). 21 | 22 | ## Modulesets ## 23 | 24 | There are 3 modulesets. You can select the one which most suits you by 25 | adding the line 26 | moduleset="https://gitlab.gnome.org/GNOME/gtk-osx/raw/master/modulesets-stable/gtk-osx.modules" 27 | 28 | to your `~/.jhbuildrc-custom`, replacing "modulesets-stable" (the default) with 29 | 30 | * modulesets-stable: The default, all tarball-based released sources. 31 | * modulesets: Sources from VCS repositories when that's available, 32 | with stable release revisions set for each module. 33 | * modulesets-unstable: The bleeding edge modulesets, pulled from VCS 34 | repositories with no release revisions. 35 | 36 | ## Customization ## 37 | 38 | Jhbuild has a hook that opens a special file `~/.jhbuildrc`  (the 39 | name and path can be overridden with the ```-f``` command-line 40 | parameter). Gtk-OSX provides a file intended to be installed as 41 | `~/.jhbuildrc` that configures the build parameters according to 42 | the version of MacOS that you're running or that you intend to target, 43 | i.e. `MACOS_DEPLOYMENT_TARGET`. That file, jhbuildrc-gtk-osx, includes 44 | it's own hook to load a file named `~/.jhbuildrc-custom` (not 45 | overrideable, sorry). This second rc file is for local customization, 46 | including the usual things contemplated by the jhbuild developers for 47 | the [configuration 48 | file](https://developer.gnome.org/jhbuild/unstable/config-reference.html.en). 49 | While Gtk-OSX provides a sample file with extensive comments 50 | explaining possible options, users should in no way feel constrained 51 | by those comments. The file is Python and is loaded and executed just 52 | as is the rest of jhbuild so there are huge opportunities for further 53 | customization. 54 | 55 | ## MacOS Version Support ## 56 | 57 | We tried for a long time to maintain compatibility with Mac OS X 10.4 58 | (Tiger), but the core Gnome projects decided at some point that this 59 | wasn't reasonable; Apple's changes to MacOS, particularly with the 60 | dropping of PPC support in Mac OS X 10.6, the removal of 32-bit 61 | support in 10.15, and the introduction of Apple Hardware (arm64) in 62 | macOS 11 mean that it's not really feasible to both keep up with 63 | changes in Gnome and in MacOS and also to support older versions of 64 | MacOS. 65 | 66 | The current policy is that we'll support whatever version of MacOS was 67 | released 5 years previously. In practice older systems will continue 68 | to work as long as Apple didn't break anything between that older 69 | system and the 5-year-old release, but we'll periodically *and without 70 | notice* clean up ifdefs and such supporting older systems. If you 71 | insist on using an old system, check out the last version of Gtk-OSX 72 | that supports it and never pull again. Make sure that your 73 | configuration is set up to use local modulesets, the ones in the 74 | public repositories are frequently upgraded and are unlikely to work 75 | on obsolete versions of MacOS. 76 | 77 | ## Python ## 78 | 79 | Gnome is transitioning to requiring Python3.2+ for just about 80 | everything else. In particular they have adopted a new build system, 81 | [meson](https://mesonbuild.com/), that requires Python3 and has 82 | dropped support for autotools builds in several of its core packages. 83 | 84 | Apple provided Python3 in Mac OS X 10.6, it in 10.7, and brought it 85 | back in 10.15, so until 10.15 is the minimum supported version we need 86 | to arrange for it to be available for jhbuild to build meson 87 | files with as well as meson itself. Gtk-OSX takes care of that at 88 | installation. It relies on two Python standard packages, 89 | [Pipenv](https://docs.pipenv.org/) and 90 | [pyenv](https://github.com/pyenv/pyenv). In combination they create a 91 | Python3 [virtual 92 | environment](https://docs.python.org/3/tutorial/venv.html) and 93 | populate it with to required dependencies, the afore-mentioned meson 94 | and [six](https://pypi.org/project/six/), a python 2/3 compatibility 95 | library used by gtk-doc. 96 | 97 | ### Python Configuration ### 98 | 99 | `gtk-osx-setup.sh` uses several environment variables to control where it 100 | puts things. Override the defaults by setting the corresponding 101 | variable in the environment before running `gtk-osx-setup.sh`. 102 | 103 | * `DEVROOT` default: `$HOME` Base directory 104 | * `DEVPREFIX` default: `$DEVROOT/.new_local` Prefix for jhbuild tools 105 | * `PYTHONUSERBASE` default: `$DEVROOT/.new_local` Location where PIP installs packages when --user is given as an option; new-setup.sh uses --user when invoking pip. 106 | * `DEV_SRC_ROOT` default: `$DEVROOT/Source` Location of pyenv and jhbuild sources 107 | * `PYENV_ROOT` default: `$DEV_SRC_ROOT/pyenv` Prefix for pyenv's sources and virtual environments. 108 | * `PIP_CONFIG_DIR` default: `$HOME/.config/pip` Pip's configuration, see the PIP documentation. 109 | 110 | `PYTHONUSERBASE`, `PYENV_ROOT`, and `PIP_CONFIG_DIR` are actually specified 111 | by PIP and PYENV. Pipenv and pyenv have other control environment 112 | variables, consult their documentation for more information. 113 | 114 | `gtk-osx-setup.sh` will create several shell-script and configuration files, 115 | but it will not overwrite any that already exist so it's safe to 116 | customize your setup after running it. The files are: 117 | 118 | * `$DEVPREFIX/etc/Pipfile` Configures the python version and installed packages. 119 | * `$DEVPREFIX/etc/pipenv-env` Environment variables for pipenv-controlled virtual environment. 120 | * `$DEVPREFIX/bin/jhbuild` Shell script to run jhbuild inside a pipenv-controlled virtual environment using the above Pipfile and pipenv environment file. 121 | * `$DEVPREFIX/libexec/run_jhbuild.py` Python file replacing the jhbuild executable provided by jhbuild itself. Called from the jhbuild shell script. 122 | 123 | `gtk-osx-setup.sh` will also copy `/usr/bin/bash` to `$DEVPREFIX/bin` and `jhbuildrc-gtk-osx` will set `$SHELL` to that path to work around SIP. 124 | 125 | The pipenv control file sets Python3.8 as its required version, and 126 | `gtk-osx-setup.sh` will create a pyenv virtual environment for that. If 127 | you don't already have Python3.8 in your `$PATH` it will offer to 128 | install the latest Python3.8 release for you. 129 | 130 | 131 | ## Bootstrapping ## 132 | 133 | Unlike previous versions of `gtk-osx-build-setup.sh`, `gtk-osx-setup.sh` 134 | does *not* copy the Gtk-OSX boostrap moduleset over the jhbuild one. 135 | Instead, jhbuildrc provides a new command 136 | 137 | ``` 138 | jhbuild bootstrap-gtk-osx 139 | ``` 140 | 141 | This command will by default load the bootstrap.modules from gtk-osx's 142 | Gitlab repository. If ```use_local_modules``` is true (default is 143 | false, override it in jhbuildrc-custom) and a file named 144 | bootstrap.modules exists in the same directory as the moduleset you've 145 | told jhbuild to use (set with ```moduleset = ``` in jhbuildrc-custom 146 | or the ```-m``` option to jhbuild) it will build that. This allows you 147 | to have a custom bootstrap.modules for your project. 148 | 149 | If you set ```use_local_modules``` to true and set ```modulesets_dir =``` 150 | to a valid path containing a file named bootstrap.modules then 151 | bootstrap-gtk-osx will build that moduleset instead. 152 | 153 | Note that in order to actually work the bootstrap.modules moduleset 154 | file must contain a meta-module named ```meta-bootstrap``` that 155 | depends on all of the modules that you want to build. 156 | 157 | -------------------------------------------------------------------------------- /gtk-osx-setup.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | #################################################################### 3 | # gtk-osx-setup.sh: gtk-osx setup with python virtual environments.# 4 | # # 5 | # Copyright 2018 John Ralls # 6 | # # 7 | # This program is free software; you can redistribute it and/or # 8 | # modify it under the terms of the GNU General Public License as # 9 | # published by the Free Software Foundation; either version 2 of # 10 | # the License, or (at your option) any later version. # 11 | # # 12 | # This program is distributed in the hope that it will be useful, # 13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of # 14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # 15 | # GNU General Public License for more details. # 16 | # # 17 | # You should have received a copy of the GNU General Public License# 18 | # along with this program; if not, contact: # 19 | # # 20 | # Free Software Foundation Voice: +1-617-542-5942 # 21 | # 51 Franklin Street, Fifth Floor Fax: +1-617-542-2652 # 22 | # Boston, MA 02110-1301, USA gnu@gnu.org # 23 | #################################################################### 24 | 25 | # Function envvardir. Tests environment variable, sets default value if unset, 26 | # and creates the specified directory if it doesn't already exist. This 27 | # will barf if the name indicates a file that isn't a directory. 28 | envvar () 29 | { 30 | local _varname=$1 31 | eval local _var=\$$_varname 32 | if test -z "$_var"; then 33 | eval export $_varname="$2" 34 | _var=$2 35 | fi 36 | if test ! -d "$_var"; then 37 | mkdir -p "$_var" 38 | fi 39 | } 40 | 41 | pip_remove() 42 | { 43 | local _package=$1 44 | local _local_package=`$PIP show $_package | grep Location | grep $PYTHONUSERBASE` 45 | if test -n "$_local_package"; then 46 | echo $_local_package 47 | $PIP uninstall -y $_package 48 | fi 49 | } 50 | 51 | # Environment variable defaults: 52 | # 53 | envvar DEVROOT "$HOME" 54 | envvar DEVPREFIX "$DEVROOT/.new_local" 55 | envvar PYTHONUSERBASE "$DEVROOT/.new_local" 56 | envvar DEV_SRC_ROOT "$DEVROOT/Source" 57 | envvar PYENV_INSTALL_ROOT "$DEV_SRC_ROOT/pyenv" 58 | envvar PYENV_ROOT "$DEVPREFIX/share/pyenv" 59 | envvar PIP_CONFIG_DIR "$HOME/.config/pip" 60 | envvar PYTHON_VERSION 3.13.2 61 | 62 | export PYTHONWARNINGS=ignore:DEPRECATION::pip._internal.cli.base_command 63 | 64 | if test ! -d "$DEVPREFIX/bin" ; then 65 | mkdir -p "$DEVPREFIX/bin" 66 | fi 67 | 68 | ARCH=arm64 69 | if test "$(arch)x" = "i386x"; then 70 | ARCH=x86_64 71 | elif test "$(arch)x" != "arm64x"; then 72 | echo "Unknown architecture $(arch), aborting!" 73 | exit 1 74 | fi 75 | 76 | GITLAB="https://gitlab.gnome.org/GNOME" 77 | GITHUB="https://github.com" 78 | 79 | # We need to have a local copy of bash when compiling to prevent SIP problems. 80 | if test ! -x "$DEVPREFIX/bin/bash"; then 81 | ln -s /bin/bash "$DEVPREFIX/bin" 82 | fi 83 | 84 | # Since macOS 13, groff isn't present on the system. By symlinking 'true', we get 85 | # a dummy groff that's succesfully executed in affected makefiles. 86 | if test ! -x /usr/bin/groff -a ! -x "$DEVPREFIX/bin/groff"; then 87 | ln -s /usr/bin/true "$DEVPREFIX/bin/groff" 88 | fi 89 | 90 | # Setup pyenv 91 | if test ! -x "$PYENV_INSTALL_ROOT/libexec/pyenv"; then 92 | if test -d "$PYENV_INSTALL_ROOT"; then 93 | rm -rf "$PYENV_INSTALL_ROOT"; 94 | fi 95 | git clone $GITHUB/pyenv/pyenv.git "$PYENV_INSTALL_ROOT" 96 | else 97 | pushd "$PYENV_INSTALL_ROOT" 98 | git pull --ff-only 99 | popd 100 | fi 101 | 102 | PYENV="$DEVPREFIX/bin/pyenv" 103 | 104 | if test ! -x "$PYENV" ; then 105 | ln -s "$PYENV_INSTALL_ROOT/bin/pyenv" "$DEVPREFIX/bin" 106 | fi 107 | 108 | #Force installation and we hope use of Python with PyEnv. We must 109 | #avoid using the Apple-provided Python2 because jhbuild doesn't work 110 | #with python2 any more, and the Apple-provided python3 because it 111 | #doesn't include a usable libpython for libxml2 to link against. 112 | 113 | export PYTHON_CONFIGURE_OPTS="--enable-shared" 114 | #This really means pyenv's *python* version. It's poorly named but 115 | #it's defined by pyenv so it can't be changed. 116 | export PYENV_VERSION=$PYTHON_VERSION 117 | $PYENV install -v $PYENV_VERSION 118 | $PYENV global $PYENV_VERSION 119 | PIP="$PYENV_ROOT/shims/pip3" 120 | 121 | $PIP install --upgrade --user pip 122 | 123 | # Install pipenv 124 | $PIP install --upgrade --user pipenv==2024.4.1 125 | PIPENV="$PYTHONUSERBASE/bin/pipenv" 126 | export WORKON_HOME=$DEVPREFIX/share/virtualenvs 127 | 128 | JHBUILD_RELEASE_VERSION="master" 129 | # Install jhbuild 130 | if test ! -d "$DEV_SRC_ROOT/jhbuild/.git" ; then 131 | git clone -b $JHBUILD_RELEASE_VERSION $GITLAB/jhbuild.git "$DEV_SRC_ROOT/jhbuild" 132 | cd "$DEV_SRC_ROOT/jhbuild" 133 | else #Get the latest if it's already installed 134 | cd "$DEV_SRC_ROOT/jhbuild" 135 | git pull 136 | git reset --hard $JHBUILD_RELEASE_VERSION 137 | fi 138 | 139 | # Install Ninja 140 | NINJA=`which ninja` 141 | if test ! -x "$NINJA" -a ! -x "$DEVPREFIX/bin/ninja"; then 142 | curl -kLs https://github.com/ninja-build/ninja/releases/download/v1.11.1/ninja-mac.zip -o "$DEVPREFIX/ninja-mac.zip" 143 | unzip -d "$DEVPREFIX/bin" "$DEVPREFIX/ninja-mac.zip" 144 | rm "$DEVPREFIX/ninja-mac.zip" 145 | fi 146 | 147 | # Install Rust (required for librsvg, which gtk needs to render its icons.) 148 | # Cross compilation note: To enable x86_64 rust builds on an Apple Silicon mac, run 149 | # rustup toolchain install stable-x86_64-apple-darwin 150 | # and edit the default toolchain in $DEVPREFIX/settings.toml to match. 151 | RUSTUP=`which rustup` 152 | if test -x "$RUSTUP"; then 153 | case `dirname "$RUSTUP"` in 154 | "$DEVPREFIX"*) 155 | DEFAULT_CARGO_HOME=$(dirname $(dirname "$RUSTUP")) 156 | envvar CARGO_HOME "$DEFAULT_CARGO_HOME" 157 | CARGO_HOME_DIR=$(basename "$CARGO_HOME") 158 | if test "$CARGO_HOME_DIR" == "cargo"; then 159 | CARGO_HOME_BASE=$(dirname "$CARGO_HOME") 160 | envvar RUSTUP_HOME "$CARGO_HOME_BASE"/rustup 161 | else 162 | envvar RUSTUP_HOME "$CARGO_HOME" 163 | fi 164 | ;; 165 | *) 166 | envvar CARGO_HOME "$HOME/.cargo" 167 | envvar RUSTUP_HOME "$HOME/.rustup" 168 | ;; 169 | esac 170 | else 171 | envvar CARGO_HOME "$DEVPREFIX" 172 | envvar RUSTUP_HOME "$DEVPREFIX" 173 | curl https://sh.rustup.rs -sSf | sh -s -- -y --profile minimal --no-modify-path > /dev/null 174 | fi 175 | # Install the Build C package, C integration required to build librsvg 176 | $DEVPREFIX/bin/cargo install cargo-c --features=vendored-openssl 177 | 178 | if test ! -d "$DEVPREFIX/etc" ; then 179 | mkdir -p "$DEVPREFIX/etc" 180 | fi 181 | 182 | PYENV_MINOR_VERSION=$(echo $PYENV_VERSION | cut -d . -f 1,2) 183 | cat < "$DEVPREFIX/etc/Pipfile" 184 | [[source]] 185 | url = "https://pypi.python.org/simple" 186 | verify_ssl = true 187 | name = "pypi" 188 | 189 | [packages] 190 | pygments = "*" 191 | meson = {version=">=0.56.0"} 192 | docutils = "*" 193 | gi-docgen = "*" 194 | setuptools = "*" 195 | packaging = "*" 196 | 197 | [scripts] 198 | jhbuild = "$DEVPREFIX/libexec/run_jhbuild.py" 199 | 200 | [requires] 201 | python_version = "$PYENV_MINOR_VERSION" 202 | EOF 203 | cat < "$DEVPREFIX/etc/pipenv-env" 204 | export PYTHONUSERBASE="$PYTHONUSERBASE" 205 | export DEV_SRC_ROOT="$DEV_SRC_ROOT" 206 | export PYENV_ROOT="$PYENV_ROOT" 207 | export PIP_CONFIG_DIR="$PIP_CONFIG_DIR" 208 | export LANG=C 209 | EOF 210 | 211 | cat < "$DEVPREFIX/bin/jhbuild" 212 | #!/usr/bin/arch -$ARCH $DEVPREFIX/bin/bash 213 | export DEVROOT="$DEVROOT" 214 | export DEVPREFIX="$DEVPREFIX" 215 | export PYTHONUSERBASE="$PYTHONUSERBASE" 216 | export PIPENV_DOTENV_LOCATION="$DEVPREFIX/etc/pipenv-env" 217 | export PIPENV_PIPFILE="$DEVPREFIX/etc/Pipfile" 218 | export PYENV_ROOT="$PYENV_ROOT" 219 | export PYENV_VERSION="$PYENV_VERSION" 220 | export PATH="$PYENV_ROOT/shims:\$PATH" 221 | export CARGO_HOME="$CARGO_HOME" 222 | export RUSTUP_HOME="$RUSTUP_HOME" 223 | export WORKON_HOME="$WORKON_HOME" 224 | 225 | exec $DEVPREFIX/bin/pipenv run jhbuild \$@ 226 | EOF 227 | 228 | if test ! -d "$DEVPREFIX/libexec" ; then 229 | mkdir -p "$DEVPREFIX/libexec" 230 | fi 231 | cat < "$DEVPREFIX/libexec/run_jhbuild.py" 232 | #!/usr/bin/env /usr/bin/arch -$ARCH python3 233 | # -*- coding: utf-8 -*- 234 | 235 | import sys 236 | import os 237 | import builtins 238 | sys.path.insert(0, '$DEV_SRC_ROOT/jhbuild') 239 | pkgdatadir = None 240 | datadir = None 241 | import jhbuild 242 | srcdir = os.path.abspath(os.path.join(os.path.dirname(jhbuild.__file__), '..')) 243 | builtins.__dict__['PKGDATADIR'] = pkgdatadir 244 | builtins.__dict__['DATADIR'] = datadir 245 | builtins.__dict__['SRCDIR'] = srcdir 246 | 247 | import jhbuild.main 248 | jhbuild.main.main(sys.argv[1:]) 249 | 250 | EOF 251 | 252 | if test ! -x "$DEVPREFIX/bin/jhbuild" ; then 253 | chmod +x "$DEVPREFIX/bin/jhbuild" 254 | fi 255 | if test ! -x "$DEVPREFIX/libexec/run_jhbuild.py" ; then 256 | chmod +x "$DEVPREFIX/libexec/run_jhbuild.py" 257 | fi 258 | if test "x`echo $PATH | grep "$DEVPREFIX/bin"`" == x ; then 259 | echo "***********" 260 | echo "PATH does not contain $DEVPREFIX/bin. You probably want to fix that.\n*" 261 | echo "***********" 262 | export PATH="$DEVPREFIX/bin:$PATH" 263 | fi 264 | 265 | SDKROOT=`xcrun --show-sdk-path` 266 | 267 | export PIPENV_DOTENV_LOCATION="$DEVPREFIX/etc/pipenv-env" 268 | export PIPENV_PIPFILE="$DEVPREFIX/etc/Pipfile" 269 | export PATH="$PYENV_ROOT/shims:$DEVPREFIX/bin:$PYENV_INSTALL_ROOT/plugins/python-build/bin:$PATH" 270 | 271 | if test -d "$SDKROOT"; then 272 | export CFLAGS="-isysroot $SDKROOT -I$SDKROOT/usr/include" 273 | fi 274 | 275 | $PIPENV install 276 | 277 | BASEURL="https://gitlab.gnome.org/GNOME/gtk-osx/raw/master" 278 | 279 | config_dir="" 280 | if test -n "$XDG_CONFIG_HOME"; then 281 | config_dir="$XDG_CONFIG_HOME" 282 | else 283 | config_dir="$HOME/.config" 284 | fi 285 | if test ! -d "$config_dir"; then 286 | mkdir -p "$config_dir" 287 | fi 288 | 289 | if test -e "$HOME/.jhbuildrc"; then 290 | JHBUILDRC="$HOME/.jhbuildrc" 291 | else 292 | JHBUILDRC="$config_dir/jhbuildrc" 293 | fi 294 | echo "Installing jhbuild configuration at $JHBUILDRC" 295 | curl -ks $BASEURL/jhbuildrc-gtk-osx -o "$JHBUILDRC" 296 | 297 | if test -z "$JHBUILDRC_CUSTOM"; then 298 | JHBUILDRC_CUSTOM="$config_dir/jhbuildrc-custom" 299 | fi 300 | if test ! -e "$JHBUILDRC_CUSTOM" -a ! -e "$HOME/.jhbuildrc-custom"; then 301 | JHBUILDRC_CUSTOM_DIR=`dirname $JHBUILDRC_CUSTOM` 302 | echo "Installing jhbuild custom configuration at $JHBUILDRC_CUSTOM" 303 | if test ! -d "$JHBUILDRC_CUSTOM_DIR"; then 304 | mkdir -p "$JHBUILDRC_CUSTOM_DIR" 305 | fi 306 | curl -ks $BASEURL/jhbuildrc-gtk-osx-custom-example -o "$JHBUILDRC_CUSTOM" 307 | fi 308 | -------------------------------------------------------------------------------- /gtk-osx.doap: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | Gtk-OSX 9 | gtk-osx 10 | Build scripts and modules for OSX 11 | Gtk-OSX provides scripts, extensions, and 12 | modulesets for build Gtk-based applications on (and for) Apple 13 | Macintosh OS X. 14 | 15 | Gtk-OSX is licensed under the GNU GPL. Nothing from Gtk-OSX is 16 | incorporated into the application, so there is no obstacle to its use 17 | by closed-source developers. 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | Python 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | John Ralls 37 | 38 | jralls 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /jhbuildrc-gtk-osx-custom-example: -------------------------------------------------------------------------------- 1 | # -*- mode: python -*- 2 | 3 | # All of jhbuild is Python, so there are all sorts of interesting 4 | # things you can do to customize your build with python commands. 5 | 6 | # The URL for repositories can be overridden. This is how you'd set 7 | # your developer access to a git repo. 8 | # 9 | # repos["git.gnome.org"] = "git@gitlab.gnome.org:GNOME" 10 | 11 | # _gtk_osx_default_build designates a suffix that if set will load a 12 | # second customization file after jhbuildrc-custom. For example, 13 | # _gtk_osx_default_build = "fw-10.4" 14 | # would load the file .jhbuildrc-fw-10.4. This is a default that can 15 | # be overridded by setting the environment variable $JHB to a 16 | # different suffix. 17 | # 18 | # You can also read environment variables and decide what to do based 19 | # on their values: 20 | 21 | _target = os.environ.get("TARGET") 22 | if _target is None: 23 | # The default setup... 24 | # checkoutroot = os.path.expanduser("~/Source/gtk") 25 | # prefix = "/opt/gtk" 26 | pass 27 | # 28 | # 29 | 30 | # The moduleset can be overridden. 31 | # 32 | # moduleset = "gtk-osx" 33 | 34 | # As can the default modules to build. 35 | # 36 | # modules = [ "meta-gtk-osx-gtk3", "meta-gstreamer" ] 37 | 38 | # You can skip modules. 39 | # 40 | # skip.append("python3") 41 | # 42 | #or put them back: 43 | # 44 | # if "python3" in skip: 45 | # skip.remove("python3") 46 | 47 | # See the jhbuild configuration file reference, 48 | # https://developer.gnome.org/jhbuild/stable/config-reference.html.en 49 | # for complete documentation of more ways to customize your build. 50 | 51 | # Uncomment the following if SIP (see https://developer.apple.com/library/prerelease/mac/documentation/Security/Conceptual/System_Integrity_Protection_Guide/RuntimeProtections/RuntimeProtections.html) 52 | # causes shell-script build failures. You'll also need to edit those 53 | # shell scripts to change the shebang from /bin/sh to $PREFIX/bin/bash. 54 | # Note that /usr/bin/env bash won't work, because it will also strip 55 | # the DYLD_* and LD_* environment variables! 56 | # Note as well that any installed dependencies must use their full 57 | # paths for their id (use install_name_tool -id to fix). Boost is a 58 | # particular violator of this rule. 59 | # if "bash" in skip: 60 | # skip.remove("bash") 61 | 62 | # In addition, you can override _exec_prefix (used to set $M4 and 63 | # $LIBTOOLIZE); by default it's set to prefix. You might want to reset 64 | # it if you want to bootstrap to one directory and build in another 65 | # (or more likely, several others). Mind that this is fiddly and 66 | # requires tweaking a bunch of things to get autoconf to consistently 67 | # find the right m4 files. Not really recommended. Similarly, you can 68 | # override tarballdir so that you need download tarballs only once for 69 | # multiple builds. This works just as you'd expect and can save quite 70 | # a bit of time if you're maintaining several trees. 71 | 72 | # _exec_prefix = os.path.join(os.path.expanduser("~"), "Source", "bootstrap") 73 | # tarballdir = os.path.join(os.path.expanduser("~"), "Source", "Download") 74 | 75 | # .jhbuildrc has a master function, setup_sdk(target, architecture) 76 | # which sets up the build environment. You *must* call it in jhbuildrc-custom. 77 | 78 | # Target is the earliest version of MacOS on which the result binary 79 | # can run, in the form "10.X" or "native" (the default). It sets 80 | # MACOS_DEPLOYMENT_TARGET and the -macosx-version-min CFLAG. 81 | 82 | # Unlike earlier SDKs, recent versions of Xcode have included SDKs 83 | # that can successfully compile programs that will run on earlier 84 | # versions of macOS, so it's reasonable to build for e.g. 10.13 while 85 | # running 11.2 and the Xcode 12.2 that ships with it. 86 | 87 | # Architecture is a list for backwards compatibility; it can contain 88 | # "x86_64" and "arm64" and defaults to the machine's architecture if 89 | # left out. Passing both architectures will in theory build a 90 | # universal binary but this is untested. 91 | 92 | # There are also some utility functions which you may find useful: 93 | # 94 | # environ_append(key, value, separator=' '), environ_prepend(key, 95 | # value, separator=' '), and environ_remove(key, value, separator=':') 96 | # append, prepend, or remove value to/from the environment variable key 97 | # with separator between the value and the existing text of the 98 | # variable. This is primarily intended for manipulating search paths. 99 | # 100 | # append_autogenargs(module, args) and remove_autogenargs(module, 101 | # args) add or remove args from the list of arguments passed to the 102 | # module's autogen-sh attribute during the configure phase of the 103 | # module's build. 104 | # 105 | # setup_debug() and setup_release() add either "-O0 -ggdb3" or 106 | # "-O2" respectively to CFLAGS, CXXFLAGS, and OBJCFLAGS. 107 | 108 | # Set up a particular target and SDK: For default operation, set the 109 | # architecture and SDK for the native machine: 110 | setup_sdk() 111 | 112 | # Comment out the previous and uncomment this one to build for all 113 | # systems running Mojave and later: 114 | # setup_sdk(target="10.14") 115 | 116 | -------------------------------------------------------------------------------- /modulesets-stable/bootstrap.modules: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 11 | 14 | 17 | 20 | 23 | 26 | 30 | 31 | 32 | 36 | 40 | 41 | 44 | 48 | 49 | 51 | 55 | 56 | 59 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 73 | 77 | 78 | 80 | 83 | 87 | 88 | 91 | 95 | 96 | 97 | 98 | 99 | 100 | 103 | 107 | 108 | 111 | 115 | 117 | 118 | 119 | 122 | 126 | 127 | 128 | 129 | 130 | 132 | 136 | 138 | 139 | 140 | 141 | 143 | 147 | 148 | 149 | 150 | 151 | 152 | 155 | 159 | 160 | 165 | 168 | 172 | 173 | 175 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | -------------------------------------------------------------------------------- /modulesets-stable/gtk-osx-bootstrap.modules: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 12 | 15 | 18 | 21 | 24 | 27 | 30 | 33 | 37 | 38 | 39 | 40 | 41 | 45 | 50 | 51 | 52 | 53 | 55 | 60 | 61 | 62 | 63 | 64 | 66 | 70 | 72 | 73 | 74 | 75 | 76 | 77 | 79 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | -------------------------------------------------------------------------------- /modulesets-stable/gtk-osx-gstreamer.modules: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 12 | 15 | 18 | 20 | 23 | 24 | 25 | 30 | 31 | 35 | 39 | 40 | 41 | 42 | 43 | 44 | 47 | 48 | 49 | 50 | 51 | 52 | 54 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 74 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 86 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | -------------------------------------------------------------------------------- /modulesets-stable/gtk-osx-gtkmm.modules: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 12 | 15 | 16 | 19 | 20 | 23 | 24 | 28 | 29 | 30 | 31 | 32 | 33 | 37 | 38 | 39 | 40 | 41 | 42 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 66 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 112 | 113 | 114 | 117 | 118 | 119 | 122 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | -------------------------------------------------------------------------------- /modulesets-stable/gtk-osx-python.modules: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 12 | 15 | 18 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 36 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 75 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /modulesets-stable/gtk-osx-random.modules: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 12 | 15 | 18 | 21 | 24 | 27 | 30 | 33 | 36 | 39 | 43 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 53 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 64 | 68 | 69 | 71 | 75 | 76 | 77 | 78 | 79 | 80 | 83 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 96 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 107 | 109 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 132 | 133 | 134 | 135 | 136 | 137 | 140 | 141 | 142 | 143 | 144 | 145 | 148 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 163 | 166 | 167 | 168 | 169 | 170 | 171 | 173 | 176 | 177 | 178 | 179 | 180 | 182 | 188 | 189 | 192 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 207 | 211 | 213 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 223 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 239 | 240 | 242 | 246 | 247 | 248 | 250 | 253 | 254 | 256 | 259 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | -------------------------------------------------------------------------------- /modulesets-unstable/gtk-osx-bootstrap.modules: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 12 | 15 | 18 | 21 | 24 | 28 | 29 | 30 | 31 | 32 | 36 | 41 | 42 | 43 | 44 | 46 | 51 | 52 | 53 | 54 | 55 | 57 | 61 | 63 | 64 | 65 | 66 | 67 | 68 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | -------------------------------------------------------------------------------- /modulesets-unstable/gtk-osx-gstreamer.modules: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 12 | 15 | 18 | 21 | repos 22 | 26 | 28 | 29 | 30 | 31 | 33 | 34 | 38 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | -------------------------------------------------------------------------------- /modulesets-unstable/gtk-osx-gtkmm.modules: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 12 | 14 | 17 | 20 | 21 | 22 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 46 | 47 | 50 | 51 | 52 | 53 | 54 | 55 | 57 | 58 | 59 | 60 | 61 | 62 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 117 | 119 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | -------------------------------------------------------------------------------- /modulesets-unstable/gtk-osx-network.modules: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 12 | 15 | 18 | 21 | 24 | 27 | 30 | 33 | 36 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 48 | 54 | 58 | 59 | 62 | 64 | 65 | 66 | 67 | 68 | 69 | 71 | 72 | 76 | 77 | 79 | 83 | 84 | 87 | 89 | 90 | 91 | 92 | 93 | 94 | 96 | 99 | 103 | 105 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 119 | 121 | 122 | 125 | 127 | 128 | 129 | 130 | 131 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 158 | 159 | 160 | 162 | 164 | 165 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 176 | 178 | 179 | 181 | 183 | 184 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 199 | 201 | 202 | 220 | 222 | 226 | 228 | 230 | 232 | 234 | 236 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 254 | 256 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | -------------------------------------------------------------------------------- /modulesets-unstable/gtk-osx-python.modules: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 12 | 15 | 18 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 33 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | -------------------------------------------------------------------------------- /modulesets-unstable/gtk-osx-random.modules: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 12 | 15 | 18 | 21 | 24 | 27 | 30 | 33 | 36 | 39 | 42 | 46 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 56 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 77 | 81 | 82 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 92 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 153 | 155 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 184 | 186 | 187 | 191 | 193 | 194 | 195 | 196 | 197 | 198 | 200 | 204 | 206 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 225 | 226 | 230 | 231 | 233 | 237 | 238 | 240 | 242 | 243 | 245 | 249 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | -------------------------------------------------------------------------------- /modulesets-unstable/gtk-osx.modules: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 12 | 15 | 18 | 21 | 24 | 26 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 63 | 65 | 66 | 69 | 71 | 72 | 74 | 76 | 77 | 78 | 79 | 80 | 81 | 83 | 84 | 85 | 86 | 87 | 88 | 92 | 94 | 97 | 98 | 99 | 100 | 101 | 105 | 110 | 111 | 113 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 124 | 127 | 128 | 129 | 130 | 131 | 132 | 134 | 137 | 138 | 139 | 140 | 141 | 143 | 145 | 146 | 147 | 148 | 149 | 152 | 154 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 175 | 177 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 189 | 191 | 192 | 193 | 194 | 195 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 226 | 227 | 228 | 231 | 232 | 234 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 254 | 255 | 256 | 257 | 258 | 259 | 263 | 266 | 269 | 270 | 272 | 275 | 276 | 277 | 278 | 279 | 281 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 308 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | -------------------------------------------------------------------------------- /modulesets/gtk-osx-bootstrap.modules: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 12 | 15 | 18 | 21 | 24 | 28 | 29 | 30 | 31 | 32 | 36 | 41 | 42 | 43 | 44 | 46 | 51 | 52 | 53 | 54 | 55 | 57 | 61 | 63 | 64 | 65 | 66 | 67 | 68 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | -------------------------------------------------------------------------------- /modulesets/gtk-osx-gstreamer.modules: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 12 | 15 | 18 | 20 | 23 | 24 | 25 | 30 | 31 | 35 | 39 | 40 | 41 | 42 | 43 | 44 | 47 | 48 | 49 | 50 | 51 | 52 | 54 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 74 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 86 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | -------------------------------------------------------------------------------- /modulesets/gtk-osx-gtkmm.modules: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 12 | 15 | 18 | 19 | 20 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 43 | 44 | 45 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 121 | 124 | 125 | 126 | 127 | 128 | 130 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | -------------------------------------------------------------------------------- /modulesets/gtk-osx-network.modules: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 12 | 15 | 18 | 21 | 24 | 27 | 30 | 33 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 45 | 50 | 54 | 55 | 57 | 58 | 61 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 75 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 87 | 90 | 94 | 95 | 97 | 101 | 102 | 105 | 109 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 119 | 122 | 126 | 128 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 142 | 145 | 146 | 149 | 152 | 153 | 154 | 155 | 156 | 158 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 177 | 179 | 180 | 181 | 182 | 183 | 184 | 186 | 187 | 188 | 190 | 193 | 194 | 196 | 198 | 199 | 200 | 201 | 202 | 203 | 205 | 208 | 209 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 222 | 225 | 226 | 227 | 228 | 229 | 230 | 232 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 246 | 249 | 250 | 268 | 270 | 274 | 276 | 278 | 280 | 282 | 284 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | -------------------------------------------------------------------------------- /modulesets/gtk-osx-python.modules: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 12 | 15 | 18 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 33 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 74 | 75 | 76 | 77 | 78 | 79 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | -------------------------------------------------------------------------------- /modulesets/gtk-osx-random.modules: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 12 | 15 | 18 | 21 | 24 | 27 | 30 | 33 | 36 | 39 | 42 | 44 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 57 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 69 | 73 | 77 | 78 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 88 | 92 | 93 | 94 | 95 | 96 | 97 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 147 | 148 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 172 | 173 | 174 | 175 | 176 | 177 | 180 | 181 | 184 | 187 | 188 | 189 | 190 | 191 | 192 | 194 | 198 | 200 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 210 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 220 | 221 | 225 | 226 | 228 | 232 | 233 | 235 | 238 | 239 | 241 | 244 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | -------------------------------------------------------------------------------- /patches/0001-Enable-use-of-XDG_DATA_DIRS-for-locating-iso-code-fi.patch: -------------------------------------------------------------------------------- 1 | From afc08dfa25dc5a26d3f0ffae8bf31d3be0e89b57 Mon Sep 17 00:00:00 2001 2 | From: John Ralls 3 | Date: Fri, 9 Sep 2016 15:46:34 -0700 4 | Subject: [PATCH] Enable use of XDG_DATA_DIRS for locating iso-code files. 5 | 6 | Permits using them in a relocatable package like a Mac application bundle. 7 | --- 8 | gtkspell/gtkspell-codetable.c | 5 ++++- 9 | 1 file changed, 4 insertions(+), 1 deletion(-) 10 | 11 | diff --git a/gtkspell/gtkspell-codetable.c b/gtkspell/gtkspell-codetable.c 12 | index b53951f..dcb5f1e 100644 13 | --- a/gtkspell/gtkspell-codetable.c 14 | +++ b/gtkspell/gtkspell-codetable.c 15 | @@ -103,7 +103,10 @@ iso_codes_parse (const GMarkupParser *parser, 16 | gchar *filename; 17 | GError *error = NULL; 18 | 19 | - filename = g_build_filename (ISO_CODES_PREFIX, "share", "xml", "iso-codes", 20 | + const gchar *dirname = g_getenv("XDG_DATA_DIRS"); 21 | + if (dirname == NULL) 22 | + dirname = g_build_filename (ISO_CODES_PREFIX, "share", NULL); 23 | + filename = g_build_filename (dirname, "xml", "iso-codes", 24 | basename, NULL); 25 | mapped_file = g_mapped_file_new (filename, FALSE, &error); 26 | g_free (filename); 27 | -- 28 | 2.2.2 29 | 30 | -------------------------------------------------------------------------------- /patches/Pygments-setup-py.patch: -------------------------------------------------------------------------------- 1 | From 3a15b6526b54b46453043f8e1a853aa0ac7e7f63 Mon Sep 17 00:00:00 2001 2 | From: John Ralls 3 | Date: Thu, 13 Jul 2023 10:28:01 -0700 4 | Subject: [PATCH] Add setup.py for jhbuild compatibility. 5 | 6 | --- 7 | setup.py | 2 ++ 8 | 1 file changed, 2 insertions(+) 9 | create mode 100644 setup.py 10 | 11 | diff --git a/setup.py b/setup.py 12 | new file mode 100644 13 | index 00000000..878e3311 14 | --- /dev/null 15 | +++ b/setup.py 16 | @@ -0,0 +1,2 @@ 17 | +from setuptools import setup 18 | +setup(name='Pygments', version='2.15.1') 19 | -- 20 | 2.37.1 (Apple Git-137.1) 21 | 22 | -------------------------------------------------------------------------------- /patches/WebKit2Gtk3-2.30.1-Disable-AUDIT_TOKEN-for-Gtk-builds.patch: -------------------------------------------------------------------------------- 1 | From c4c4a0b4ff33baad5e859f69ecdf8d41f343cca4 Mon Sep 17 00:00:00 2001 2 | From: John Ralls 3 | Date: Mon, 9 Nov 2020 09:27:37 -0800 4 | Subject: [PATCH 4/7] Disable AUDIT_TOKEN for Gtk builds. 5 | 6 | --- 7 | Source/WTF/wtf/PlatformHave.h | 2 +- 8 | 1 file changed, 1 insertion(+), 1 deletion(-) 9 | 10 | diff --git a/Source/WTF/wtf/PlatformHave.h b/Source/WTF/wtf/PlatformHave.h 11 | index 4ec77e7..5a83520 100644 12 | --- a/Source/WTF/wtf/PlatformHave.h 13 | +++ b/Source/WTF/wtf/PlatformHave.h 14 | @@ -190,7 +190,7 @@ 15 | #define HAVE_SYS_TIMEB_H 1 16 | #endif 17 | 18 | -#if OS(DARWIN) 19 | +#if !PLATFORM(GTK) && OS(DARWIN) 20 | #define HAVE_AUDIT_TOKEN 1 21 | #endif 22 | 23 | -- 24 | 2.2.2 25 | 26 | -------------------------------------------------------------------------------- /patches/WebKit2Gtk3-2.30.1-Fix-Socket-signal-defines-for-Darwin-and-maybe-BSD.patch: -------------------------------------------------------------------------------- 1 | From 5f2c208df57203fe0149bd588a5b9528ad7cdd6a Mon Sep 17 00:00:00 2001 2 | From: John Ralls 3 | Date: Mon, 9 Nov 2020 09:42:08 -0800 4 | Subject: [PATCH 7/7] Fix Socket signal defines for Darwin (and maybe BSD). 5 | 6 | --- 7 | Source/WebKit/Platform/IPC/unix/ConnectionUnix.cpp | 5 +++++ 8 | 1 file changed, 5 insertions(+) 9 | 10 | diff --git a/Source/WebKit/Platform/IPC/unix/ConnectionUnix.cpp b/Source/WebKit/Platform/IPC/unix/ConnectionUnix.cpp 11 | index 3d54402..b053dd1 100644 12 | --- a/Source/WebKit/Platform/IPC/unix/ConnectionUnix.cpp 13 | +++ b/Source/WebKit/Platform/IPC/unix/ConnectionUnix.cpp 14 | @@ -31,6 +31,7 @@ 15 | #include "DataReference.h" 16 | #include "SharedMemory.h" 17 | #include "UnixMessage.h" 18 | +#include 19 | #include 20 | #include 21 | #include 22 | @@ -56,6 +57,10 @@ 23 | #endif 24 | #endif // SOCK_SEQPACKET 25 | 26 | +#ifndef MSG_NOSIGNAL // Not defined in Darwin's socket implementation. 27 | +#define MSG_NOSIGNAL 0x2000 28 | +#endif 29 | + 30 | namespace IPC { 31 | 32 | static const size_t messageMaxSize = 4096; 33 | -- 34 | 2.2.2 35 | 36 | -------------------------------------------------------------------------------- /patches/WebKit2Gtk3-2.32.0-color-components-correct-math-header.patch: -------------------------------------------------------------------------------- 1 | --- a/Source/WebCore/platform/graphics/ColorComponents.h 2021-02-26 01:57:13.000000000 -0800 2 | +++ b/Source/WebCore/platform/graphics/ColorComponents.h 2021-08-26 17:28:59.000000000 -0700 3 | @@ -27,7 +27,8 @@ 4 | 5 | #include 6 | #include 7 | -#include 8 | +#include 9 | +#include 10 | #include 11 | 12 | namespace WebCore { 13 | 14 | -------------------------------------------------------------------------------- /patches/WebKit2Gtk3-2.32.0-misc-fixes.patch: -------------------------------------------------------------------------------- 1 | --- a/Source/WTF/wtf/URLHelpers.cpp 2021-02-26 01:57:08 2 | +++ b/Source/WTF/wtf/URLHelpers.cpp 2024-07-13 13:14:05 3 | @@ -52,7 +52,7 @@ 4 | // WebKit was compiled. 5 | // This is only really important for platforms that load an external IDN allowed script list. 6 | // Not important for the compiled-in one. 7 | -constexpr auto scriptCodeLimit = static_cast(256); 8 | +constexpr auto scriptCodeLimit = static_cast(255); 9 | 10 | static uint32_t allowedIDNScriptBits[(scriptCodeLimit + 31) / 32]; 11 | 12 | 13 | --- a/Source/WTF/wtf/PlatformUse.h 2021-02-26 01:57:08 14 | +++ b/Source/WTF/wtf/PlatformUse.h 2024-07-14 09:27:02 15 | @@ -313,7 +313,7 @@ 16 | #define USE_LEGACY_CFNETWORK_DOWNLOADS 1 17 | #endif 18 | 19 | -#if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 110000) \ 20 | +#if (OS(MAC_OS_X) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 110000) \ 21 | || (PLATFORM(MACCATALYST) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 140000) 22 | #if USE(APPLE_INTERNAL_SDK) 23 | /* Always use the macro on internal builds */ 24 | 25 | --- b/Source/WTF/wtf/glib/GLibUtilities.cpp 2024-07-13 12:02:10 26 | +++ b/Source/WTF/wtf/glib/GLibUtilities.cpp 2024-07-15 17:19:10 27 | @@ -58,6 +58,19 @@ 28 | CFStringGetCString(string, bundle_path, len, kCFStringEncodingUTF8); 29 | CFRelease(abs_url); 30 | CFRelease(string); 31 | + 32 | + auto basename{g_path_get_basename(bundle_path)}; 33 | + if (g_strcmp0("bin", basename) == 0) 34 | + { 35 | + auto parent_path{g_path_get_dirname(bundle_path)}; 36 | + if (parent_path && *parent_path) 37 | + { 38 | + strncpy(bundle_path, parent_path, len); 39 | + len = strlen(parent_path); 40 | + g_free(parent_path); 41 | + } 42 | + } 43 | + g_free(basename); 44 | return CString(bundle_path, len); 45 | } 46 | #endif 47 | 48 | --- a/Source/WebCore/platform/LayoutUnit.h 49 | +++ b/Source/WebCore/platform/LayoutUnit.h 50 | @@ -83,7 +83,7 @@ 51 | { 52 | m_value = clampToInteger(value * kFixedPointDenominator); 53 | } 54 | - 55 | + LayoutUnit(const LayoutUnit& other) = default; 56 | LayoutUnit& operator=(const LayoutUnit& other) = default; 57 | LayoutUnit& operator=(const float& other) { return *this = LayoutUnit(other); } 58 | 59 | 60 | --- a/Source/WebCore/xml/XSLStyleSheetLibxslt.cpp 61 | +++ b/Source/WebCore/xml/XSLStyleSheetLibxslt.cpp 62 | @@ -139,7 +139,8 @@ 63 | if (frame && frame->page()) 64 | console = &frame->page()->console(); 65 | 66 | - XMLDocumentParserScope scope(cachedResourceLoader(), XSLTProcessor::genericErrorFunc, XSLTProcessor::parseErrorFunc, console); 67 | + XMLDocumentParserScope scope(cachedResourceLoader(), XSLTProcessor::genericErrorFunc, 68 | + (xmlStructuredErrorFunc)XSLTProcessor::parseErrorFunc, console); 69 | 70 | auto upconvertedCharacters = StringView(string).upconvertedCharacters(); 71 | const char* buffer = reinterpret_cast(upconvertedCharacters.get()); 72 | 73 | --- a/Source/WebCore/xml/XSLTProcessorLibxslt.cpp 74 | +++ b/Source/WebCore/xml/XSLTProcessorLibxslt.cpp 75 | @@ -130,7 +130,7 @@ 76 | Frame* frame = globalProcessor->xslStylesheet()->ownerDocument()->frame(); 77 | if (frame && frame->page()) 78 | console = &frame->page()->console(); 79 | - xmlSetStructuredErrorFunc(console, XSLTProcessor::parseErrorFunc); 80 | + xmlSetStructuredErrorFunc(console, (xmlStructuredErrorFunc)XSLTProcessor::parseErrorFunc); 81 | xmlSetGenericErrorFunc(console, XSLTProcessor::genericErrorFunc); 82 | 83 | // We don't specify an encoding here. Neither Gecko nor WinIE respects 84 | 85 | --- a/Source/WTF/wtf/Platform.h 86 | +++ b/Source/WTF/wtf/Platform.h 87 | @@ -115,6 +115,7 @@ 88 | /* ICU configuration. Some of these match ICU defaults on some platforms, but we would like them consistently set everywhere we build WebKit. */ 89 | #define U_HIDE_DEPRECATED_API 1 90 | #define U_SHOW_CPLUSPLUS_API 0 91 | +#define U_SHOW_CPLUSPLUS_HEADER_API 0 92 | #ifdef __cplusplus 93 | #define UCHAR_TYPE char16_t 94 | #endif 95 | 96 | -------------------------------------------------------------------------------- /patches/devhelp-3-build-on-macOS.patch: -------------------------------------------------------------------------------- 1 | diff -u /Users/john/Development/gtk-build/gtk-stable-10.13-x86_64/src/devhelp-3.38.1/devhelp/meson.build\~ /Users/john/Development/gtk-build/gtk-stable-10.13-x86_64/src/devhelp-3.38.1/devhelp/meson.build 2 | --- a/devhelp/meson.build 2020-11-20 05:48:48.000000000 -0800 3 | +++ b/devhelp/meson.build 2021-04-09 10:39:31.000000000 -0700 4 | @@ -92,12 +92,18 @@ 5 | ) 6 | 7 | symbol_map = meson.current_source_dir() / 'symbol.map' 8 | +devhelp_link_args = [] 9 | +devhelp_link_depends = [] 10 | +if meson.get_compiler('c').get_linker_id() != 'ld64' 11 | + devhelp_link_args = '-Wl,--version-script,' + symbol_map 12 | + devhelp_link_depends = symbol_map 13 | +endif 14 | 15 | libdevhelp_shared_lib = shared_library( 16 | 'devhelp-@0@'.format(LIBDEVHELP_API_VERSION), 17 | link_whole: libdevhelp_static_lib, 18 | - link_args: '-Wl,--version-script,' + symbol_map, 19 | - link_depends: symbol_map, 20 | + link_args: devhelp_link_args, 21 | + link_depends: devhelp_link_depends, 22 | version: LIBDEVHELP_LT_VERSION, 23 | install: true 24 | ) 25 | 26 | Diff finished. Fri Apr 9 14:44:01 2021 27 | -------------------------------------------------------------------------------- /patches/firefox78-rust-manifest-and-max-sdk.patch: -------------------------------------------------------------------------------- 1 | --- a/Cargo.toml 2020-07-22 10:56:54.000000000 -0700 2 | +++ b/Cargo.toml 2021-04-06 09:49:37.000000000 -0700 3 | @@ -68,8 +68,8 @@ 4 | libudev-sys = { path = "dom/webauthn/libudev-sys" } 5 | packed_simd = { git = "https://github.com/hsivonen/packed_simd", rev="3541e3818fdc7c2a24f87e3459151a4ce955a67a" } 6 | rlbox_lucet_sandbox = { git = "https://github.com/PLSysSec/rlbox_lucet_sandbox/", rev="d510da5999a744c563b0acd18056069d1698273f" } 7 | -nix = { git = "https://github.com/shravanrn/nix/", branch = "r0.13.1", rev="4af6c367603869a30fddb5ffb0aba2b9477ba92e" } 8 | -spirv_cross = { git = "https://github.com/kvark/spirv_cross", branch = "wgpu3", rev = "20191ad2f370afd6d247edcb9ff9da32d3bedb9c" } 9 | +nix = { git = "https://github.com/shravanrn/nix/", rev="4af6c367603869a30fddb5ffb0aba2b9477ba92e" } 10 | +spirv_cross = { git = "https://github.com/kvark/spirv_cross", rev = "20191ad2f370afd6d247edcb9ff9da32d3bedb9c" } 11 | # failure's backtrace feature might break our builds, see bug 1608157. 12 | failure = { git = "https://github.com/badboy/failure", rev = "64af847bc5fdcb6d2438bec8a6030812a80519a5" } 13 | failure_derive = { git = "https://github.com/badboy/failure", rev = "64af847bc5fdcb6d2438bec8a6030812a80519a5" } 14 | --- a/build/moz.configure/toolchain.configure 2020-07-22 10:56:54.000000000 -0700 15 | +++ b/build/moz.configure/toolchain.configure 2021-04-05 17:53:37.000000000 -0700 16 | @@ -141,7 +141,7 @@ 17 | @imports(_from='biplist', _import='readPlist') 18 | def macos_sdk(sdk, host): 19 | sdk_min_version = Version('10.11') 20 | - sdk_max_version = Version('10.15.4') 21 | + sdk_max_version = Version('11.1') 22 | 23 | if sdk: 24 | sdk = sdk[0] 25 | 26 | 27 | -------------------------------------------------------------------------------- /patches/gdk-pixbuf-loader-name.patch: -------------------------------------------------------------------------------- 1 | diff -c /Users/john/Development/gtk-build/gtk-stable-10.9-x86_64/src/gdk-pixbuf-2.38.0/gdk-pixbuf/meson.build\~ /Users/john/Development/gtk-build/gtk-stable-10.9-x86_64/src/gdk-pixbuf-2.38.0/gdk-pixbuf/meson.build 2 | --- a/gdk-pixbuf/meson.build Mon Sep 3 07:41:50 2018 3 | +++ b/gdk-pixbuf/meson.build Wed Jul 31 16:04:12 2019 4 | @@ -246,7 +246,8 @@ 5 | include_directories: [ root_inc, gdk_pixbuf_inc ], 6 | c_args: common_cflags + gdk_pixbuf_cflags + cflags, 7 | install: true, 8 | - install_dir: gdk_pixbuf_loaderdir) 9 | + install_dir: gdk_pixbuf_loaderdir, 10 | + name_suffix: 'so') 11 | 12 | # We need the path to build loaders.cache for tests 13 | dynamic_loaders += mod.full_path() 14 | @@ -265,7 +266,8 @@ 15 | include_directories: [ root_inc, gdk_pixbuf_inc ], 16 | c_args: common_cflags + gdk_pixbuf_cflags + cflags, 17 | install: true, 18 | - install_dir: gdk_pixbuf_loaderdir) 19 | + install_dir: gdk_pixbuf_loaderdir, 20 | + name_suffix: 'so') 21 | dynamic_loaders += mod.full_path() 22 | endforeach 23 | endif 24 | 25 | Diff finished. Wed Jul 31 16:09:09 2019 26 | -------------------------------------------------------------------------------- /patches/gnutls-gnulib.patch: -------------------------------------------------------------------------------- 1 | --- a/src/gl/verify.h 2023-02-09 06:55:15.000000000 -0800 2 | +++ b/src/gl/verify.h 2023-06-30 13:53:05.000000000 -0700 3 | @@ -213,5 +213,5 @@ 4 | # define _GL_VERIFY(R, DIAGNOSTIC, ...) _Static_assert (R, DIAGNOSTIC) 5 | #else 6 | # define _GL_VERIFY(R, DIAGNOSTIC, ...) \ 7 | - extern int (*_GL_GENSYM (_gl_verify_function) (void)) \ 8 | + int (*_GL_GENSYM (_gl_verify_function) (void)) \ 9 | [_GL_VERIFY_TRUE (R, DIAGNOSTIC)] 10 | # if 4 < __GNUC__ + (6 <= __GNUC_MINOR__) && !defined __clang__ 11 | # pragma GCC diagnostic ignored "-Wnested-externs" 12 | 13 | -------------------------------------------------------------------------------- /patches/gnutls-pkg-config-pc.patch: -------------------------------------------------------------------------------- 1 | diff --git a/lib/gnutls.pc.in b/lib/gnutls.pc.in 2 | index eeb957cb7..6a66ac464 100644 3 | --- a/lib/gnutls.pc.in 4 | +++ b/lib/gnutls.pc.in 5 | @@ -18,7 +18,7 @@ Name: GnuTLS 6 | Description: Transport Security Layer implementation for the GNU system 7 | URL: https://www.gnutls.org/ 8 | Version: @VERSION@ 9 | -Libs: -L${libdir} -lgnutls 10 | +Libs: -L${libdir} -lgnutls -lgcrypt 11 | Libs.private: @LIBZ_PC@ @LIBINTL@ @LIBSOCKET@ @INET_PTON_LIB@ @LIBPTHREAD@ @LIB_SELECT@ @TSS_LIBS@ @GMP_LIBS@ @LIBUNISTRING@ @LIBATOMIC_LIBS@ @GNUTLS_LIBS_PRIVATE@ 12 | @GNUTLS_REQUIRES_PRIVATE@ 13 | Cflags: -I${includedir} 14 | -------------------------------------------------------------------------------- /patches/graphviz-11-fix-python-config.patch: -------------------------------------------------------------------------------- 1 | --- a/configure.ac 2024-04-28 08:25:15 2 | +++ b/configure.ac 2024-06-06 16:34:35 3 | @@ -995,7 +995,7 @@ 4 | pkgconfig_python3_found=`$PKG_CONFIG --exists python-$PYTHON3_VERSION 2>/dev/null` 5 | if test "$?" = "0" ; then 6 | PYTHON3_INCLUDES="$PYTHON3_CFLAGS "`$PKG_CONFIG --cflags python-$PYTHON3_VERSION` 7 | - PYTHON3_LIBS="$PYTHON3_LFLAGS "`$PKG_CONFIG --libs python-$PYTHON3_VERSION` 8 | + PYTHON3_LIBS="$PYTHON3_LFLAGS "`$PKG_CONFIG --libs python-$PYTHON3_VERSION-embed` 9 | else 10 | use_python3="No (python-$PYTHON3_VERSION.pc not found)" 11 | fi 12 | -------------------------------------------------------------------------------- /patches/gspell-1.14-enchant-resource-path.patch: -------------------------------------------------------------------------------- 1 | From 94528397ba2cff5006a37b79e7cc4b25bf38265f Mon Sep 17 00:00:00 2001 2 | From: John Ralls 3 | Date: Tue, 14 Jan 2025 15:48:56 -0800 4 | Subject: [PATCH] macOS: Set the bundle resource path for enchant. 5 | 6 | Otherwise it can't find its modules in an app bundle. 7 | --- 8 | gspell/gspell-language.c | 6 ++++++ 9 | gspell/gspell-osx.c | 20 ++++++++++++++++---- 10 | gspell/gspell-osx.h | 2 ++ 11 | 3 files changed, 24 insertions(+), 4 deletions(-) 12 | 13 | diff --git a/gspell/gspell-language.c b/gspell/gspell-language.c 14 | index 6754290..671e7fb 100644 15 | --- a/gspell/gspell-language.c 16 | +++ b/gspell/gspell-language.c 17 | @@ -89,6 +89,12 @@ gspell_language_get_available (void) 18 | static GList *available_languages = NULL; 19 | EnchantBroker *broker; 20 | 21 | +#ifdef __APPLE__ 22 | + gchar* resource_path = _gspell_osx_get_resource_path (); 23 | + if (resource_path) 24 | + enchant_set_prefix_dir (resource_path); 25 | +#endif 26 | + 27 | if (initialized) 28 | { 29 | return available_languages; 30 | diff --git a/gspell/gspell-osx.c b/gspell/gspell-osx.c 31 | index 7c791b0..87ccd21 100644 32 | --- a/gspell/gspell-osx.c 33 | +++ b/gspell/gspell-osx.c 34 | @@ -7,12 +7,10 @@ 35 | #import 36 | 37 | gchar * 38 | -_gspell_osx_get_preferred_spell_language () 39 | +_gspell_osx_get_preferred_spell_language (void) 40 | { 41 | gchar *ret = NULL; 42 | - NSAutoreleasePool *pool; 43 | - 44 | - pool = [[NSAutoreleasePool alloc] init]; 45 | + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 46 | 47 | #if defined(MAC_OS_X_VERSION_10_5) && MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_5 48 | NSArray *langs; 49 | @@ -27,4 +25,18 @@ _gspell_osx_get_preferred_spell_language () 50 | 51 | [pool release]; 52 | return ret; 53 | + 54 | +} 55 | + 56 | +gchar * 57 | +_gspell_osx_get_resource_path (void) 58 | +{ 59 | + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 60 | + gchar *str = NULL; 61 | + NSString *path = [[NSBundle mainBundle] resourcePath]; 62 | + if (!path) 63 | + return NULL; 64 | + str = strdup ([path UTF8String]); 65 | + [pool release]; 66 | + return str; 67 | } 68 | diff --git a/gspell/gspell-osx.h b/gspell/gspell-osx.h 69 | index ddb40ea..17fd536 100644 70 | --- a/gspell/gspell-osx.h 71 | +++ b/gspell/gspell-osx.h 72 | @@ -11,5 +11,7 @@ G_BEGIN_DECLS 73 | 74 | G_GNUC_INTERNAL 75 | gchar * _gspell_osx_get_preferred_spell_language (void); 76 | +G_GNUC_INTERNAL 77 | +gchar * _gspell_osx_get_resource_path (void); 78 | 79 | G_END_DECLS 80 | -- 81 | 2.39.5 (Apple Git-154) 82 | 83 | -------------------------------------------------------------------------------- /patches/gst-plugins-bad-missing-enum.patch: -------------------------------------------------------------------------------- 1 | # https://code.videolan.org/videolan/vlc/-/merge_requests/1966/diffs 2 | # https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7157 3 | --- a/sys/applemedia/vtdec.c 2024-12-29 18:02:51 4 | +++ b/sys/applemedia/vtdec.c 2024-12-29 18:14:48 5 | @@ -76,6 +76,14 @@ 6 | VTDEC_FRAME_FLAG_ERROR = (1 << 12), 7 | }; 8 | 9 | +// Error enum values introduced in macOS 12 10 | +#if defined(MAC_OS_X_VERSION_MAX_ALLOWED) && MAC_OS_X_VERSION_MAX_ALLOWED < 120000 11 | +enum 12 | +{ 13 | + kVTVideoDecoderReferenceMissingErr = -17694 14 | +}; 15 | +#endif 16 | + 17 | static void gst_vtdec_finalize (GObject * object); 18 | 19 | static gboolean gst_vtdec_start (GstVideoDecoder * decoder); 20 | -------------------------------------------------------------------------------- /patches/gtk-3.24.48-GtkNotebook-drag-operation-failed.patch: -------------------------------------------------------------------------------- 1 | From cfb2ec3410fc3c640688e9d873ea942f232b317a Mon Sep 17 00:00:00 2001 2 | From: John Ralls 3 | Date: Wed, 16 Apr 2025 11:25:35 -0400 4 | Subject: [PATCH 5/5] GtkNotebook: Set drag operation to None on drag_failed. 5 | 6 | Otherwise it's stuck on whatever the drag was and if that was 7 | DRAG_OPERATION_DETACHED it stops the current tab being drawn because 8 | of the test for that at the end of gtk_notebook_draw_tabs. 9 | --- 10 | gtk/gtknotebook.c | 1 + 11 | 1 file changed, 1 insertion(+) 12 | 13 | diff --git a/gtk/gtknotebook.c b/gtk/gtknotebook.c 14 | index f51570e745..b90f689b6a 100644 15 | --- a/gtk/gtknotebook.c 16 | +++ b/gtk/gtknotebook.c 17 | @@ -3765,6 +3765,7 @@ gtk_notebook_drag_failed (GtkWidget *widget, 18 | GtkNotebookPrivate *priv = notebook->priv; 19 | 20 | priv->rootwindow_drop = FALSE; 21 | + priv->operation = DRAG_OPERATION_NONE; 22 | 23 | if (result == GTK_DRAG_RESULT_NO_TARGET) 24 | { 25 | -- 26 | 2.39.5 (Apple Git-154) 27 | 28 | -------------------------------------------------------------------------------- /patches/gtk-3.24.48-check-all-dnd-windows.patch: -------------------------------------------------------------------------------- 1 | From 0bf87214125519671545e92b2fd1845f0a10faa1 Mon Sep 17 00:00:00 2001 2 | From: John Ralls 3 | Date: Thu, 10 Apr 2025 12:05:37 -0400 4 | Subject: [PATCH] [quartz] Check all the windows not just the first one. 5 | 6 | --- 7 | gdk/quartz/GdkQuartzNSWindow.c | 7 ++++--- 8 | 1 file changed, 4 insertions(+), 3 deletions(-) 9 | 10 | diff --git a/gdk/quartz/GdkQuartzNSWindow.c b/gdk/quartz/GdkQuartzNSWindow.c 11 | index b00175871f..eaefa76e09 100644 12 | --- a/gdk/quartz/GdkQuartzNSWindow.c 13 | +++ b/gdk/quartz/GdkQuartzNSWindow.c 14 | @@ -790,9 +790,10 @@ update_context_from_dragging_info (id sender) 15 | wh = gdk_window_get_height (win); 16 | 17 | if (gx > wx && gy > wy && gx <= wx + ww && gy <= wy + wh) 18 | - event->dnd.context->dest_window = g_object_ref (win); 19 | - break; 20 | - } 21 | + { 22 | + event->dnd.context->dest_window = g_object_ref (win); 23 | + break; 24 | + }} 25 | } 26 | 27 | device = gdk_drag_context_get_device (_gdk_quartz_drag_source_context); 28 | -- 29 | 2.39.5 (Apple Git-154) 30 | 31 | -------------------------------------------------------------------------------- /patches/gtk-3.24.48-fix-leaking-cairo-surface.patch: -------------------------------------------------------------------------------- 1 | From 6906f010aa5ae3fb0cfb3b6bed47e7bd4fa37e1b Mon Sep 17 00:00:00 2001 2 | From: John Ralls 3 | Date: Mon, 17 Mar 2025 15:05:50 -0700 4 | Subject: [PATCH 2/5] [quartz] Fix leak of GdkWindowImplQuartz's cairo surface. 5 | 6 | --- 7 | gdk/quartz/gdkwindow-quartz.c | 2 ++ 8 | 1 file changed, 2 insertions(+) 9 | 10 | diff --git a/gdk/quartz/gdkwindow-quartz.c b/gdk/quartz/gdkwindow-quartz.c 11 | index 68c1ebd971..6a7527599d 100644 12 | --- a/gdk/quartz/gdkwindow-quartz.c 13 | +++ b/gdk/quartz/gdkwindow-quartz.c 14 | @@ -1126,6 +1126,8 @@ gdk_quartz_window_destroy (GdkWindow *window, 15 | cairo_surface_finish (impl->cairo_surface); 16 | cairo_surface_set_user_data (impl->cairo_surface, &gdk_quartz_cairo_key, 17 | NULL, NULL); 18 | + if (cairo_surface_get_reference_count(impl->cairo_surface)) 19 | + cairo_surface_destroy(impl->cairo_surface); 20 | impl->cairo_surface = NULL; 21 | } 22 | 23 | -- 24 | 2.39.5 (Apple Git-154) 25 | 26 | -------------------------------------------------------------------------------- /patches/gtk-3.24.48-remove-redundant-NSView-calls.patch: -------------------------------------------------------------------------------- 1 | From 8fa5fccf15cae457fcbddf8f59602b44f06550e4 Mon Sep 17 00:00:00 2001 2 | From: John Ralls 3 | Date: Mon, 17 Mar 2025 13:24:47 -0700 4 | Subject: [PATCH 1/5] [quartz] Remove redundant NSView calls 5 | 6 | macOS calls NSView setFrame: and posts the FraneDidChange notification 7 | without being told, so these calls resulted in more than one 8 | notification/execution for a single event. 9 | 10 | Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/7329 11 | --- 12 | gdk/quartz/GdkQuartzNSWindow.c | 2 -- 13 | gdk/quartz/gdkwindow-quartz.c | 8 -------- 14 | 2 files changed, 10 deletions(-) 15 | 16 | diff --git a/gdk/quartz/GdkQuartzNSWindow.c b/gdk/quartz/GdkQuartzNSWindow.c 17 | index b00175871f..77185149d8 100644 18 | --- a/gdk/quartz/GdkQuartzNSWindow.c 19 | +++ b/gdk/quartz/GdkQuartzNSWindow.c 20 | @@ -251,8 +251,6 @@ synthesize_configure_event(GdkWindow *window) 21 | content_rect.origin.x = 0; 22 | content_rect.origin.y = 0; 23 | 24 | - [[self contentView] setFrame:content_rect]; 25 | - 26 | /* Certain resize operations (e.g. going fullscreen), also move the 27 | * origin of the window. 28 | */ 29 | diff --git a/gdk/quartz/gdkwindow-quartz.c b/gdk/quartz/gdkwindow-quartz.c 30 | index 5d6d522846..68c1ebd971 100644 31 | --- a/gdk/quartz/gdkwindow-quartz.c 32 | +++ b/gdk/quartz/gdkwindow-quartz.c 33 | @@ -993,10 +993,6 @@ _gdk_quartz_display_create_window_impl (GdkDisplay *display, 34 | impl->view = [[GdkQuartzView alloc] initWithFrame:content_rect]; 35 | [impl->view setGdkWindow:window]; 36 | [impl->toplevel setContentView:impl->view]; 37 | - [[NSNotificationCenter defaultCenter] addObserver: impl->toplevel 38 | - selector: @selector (windowDidResize:) 39 | - name: @"NSViewFrameDidChangeNotification" 40 | - object: impl->view]; 41 | } 42 | break; 43 | 44 | @@ -1390,7 +1386,6 @@ move_resize_window_internal (GdkWindow *window, 45 | content_rect = NSMakeRect (gx, gy, window->width, window->height); 46 | 47 | frame_rect = [impl->toplevel frameRectForContentRect:content_rect]; 48 | - [impl->toplevel setFrame:frame_rect display:YES]; 49 | impl->cairo_surface = gdk_quartz_ref_cairo_surface (window); 50 | cairo_surface_destroy (impl->cairo_surface); // Remove the extra reference 51 | } 52 | @@ -1433,13 +1428,10 @@ move_resize_window_internal (GdkWindow *window, 53 | by:delta]; 54 | } 55 | 56 | - [impl->view setFrame:nsrect]; 57 | - 58 | gdk_quartz_window_set_needs_display_in_region (window, expose_region); 59 | } 60 | else 61 | { 62 | - [impl->view setFrame:nsrect]; 63 | [impl->view setNeedsDisplay:YES]; 64 | } 65 | 66 | -- 67 | 2.39.5 (Apple Git-154) 68 | 69 | -------------------------------------------------------------------------------- /patches/gtkmm-3-bad-const-property-background.patch: -------------------------------------------------------------------------------- 1 | --- a/tests/builder/main.cc 2021-02-23 01:07:04.000000000 -0800 2 | +++ b/tests/builder/main.cc 2021-04-03 10:28:40.000000000 -0700 3 | @@ -120,7 +120,7 @@ 4 | } 5 | } 6 | 7 | - Glib::PropertyProxy_ReadOnly property_background() const { return m_property_background.get_proxy(); } 8 | + //Glib::PropertyProxy_ReadOnly property_background() const { return m_property_background.get_proxy(); } 9 | Glib::PropertyProxy property_background() { return m_property_background.get_proxy(); } 10 | Glib::ustring get_background() const { return m_property_background.get_value(); } 11 | void set_background(const Glib::ustring& background){ m_property_background.set_value(background); } 12 | 13 | Diff finished. Sat Apr 3 10:38:41 2021 14 | -------------------------------------------------------------------------------- /patches/gtkspell-3-install.sh-wrong-sh-path.patch: -------------------------------------------------------------------------------- 1 | diff -u /Users/john/Development/Gramps-Build/gramps-master-git-10.12-x86_64/src/gtkspell3-3.0.10/build/install-sh\~ /Users/john/Development/Gramps-Build/gramps-master-git-10.12-x86_64/src/gtkspell3-3.0.10/build/install-sh 2 | --- a/build/install-sh 2018-09-19 13:27:56.000000000 -0700 3 | +++ b/build/install-sh 2021-04-10 17:42:24.000000000 -0700 4 | @@ -1,4 +1,4 @@ 5 | -#!/usr/bin/sh 6 | +#!/bin/sh 7 | # install - install a program, script, or datafile 8 | 9 | scriptversion=2018-03-11.20; # UTC 10 | 11 | Diff finished. Sat Apr 10 17:42:32 2021 12 | -------------------------------------------------------------------------------- /patches/librsvg-libpixbufloader-install-names.patch: -------------------------------------------------------------------------------- 1 | --- a/gdk-pixbuf-loader/meson_install.py 2024-10-29 16:44:51 2 | +++ b/gdk-pixbuf-loader/meson_install.py 2025-04-03 15:10:45 3 | @@ -15,6 +16,22 @@ 4 | 5 | if __name__ == '__main__': 6 | args = argparse.parse_args() 7 | + if sys.platform in ['darwin', 'ios']: 8 | + modulepath = Path(args.gdk_pixbuf_moduledir).resolve() 9 | + prefix = modulepath.parent.parent.parent 10 | + location = modulepath 11 | + if 'DESTDIR' in os.environ: 12 | + location = Path(os.environ['DESTDIR']) / modulepath.relative_to('/') 13 | + oldfilepath = location / 'libpixbufloader_svg.dylib' 14 | + newfilename = 'libpixbufloader-svg.so' 15 | + newfilepath = location / newfilename 16 | + installfilepath = modulepath / 'libpixbufloader-svg.so' 17 | + librsvgpath = prefix / 'librsvg-2.2.dylib' 18 | + os.rename(oldfilepath.as_posix(), newfilepath.as_posix()) 19 | + subprocess.run( 20 | + ['install_name_tool', '-id', installfilepath.as_posix(), newfilepath.as_posix()]) 21 | + subprocess.run( 22 | + ['install_name_tool', '-change', '@rpath/librsvg-2.2.dylib', librsvgpath.as_posix(), newfilepath.as_posix()]) 23 | 24 | cache_file: Path = args.gdk_pixbuf_cache_file 25 | 26 | -------------------------------------------------------------------------------- /patches/libtool-apple-sort.patch: -------------------------------------------------------------------------------- 1 | --- a/Makefile.am 2015-01-20 07:34:33.000000000 -0800 2 | +++ b/Makefile.am 2021-11-12 10:18:23.000000000 -0800 3 | @@ -418,8 +418,8 @@ 4 | # files created in the build tree, so instead we regenerate the 5 | # manual pages if the sources for the build-tree files we want to 6 | # run have changed. 7 | -$(libtool_1): $(ltmain_sh) 8 | - $(AM_V_GEN)$(update_mans) -n 'Provide generalized library-building support services' --help-option=--help-all libtool 9 | +#$(libtool_1): $(ltmain_sh) 10 | +# $(AM_V_GEN)$(update_mans) -n 'Provide generalized library-building support services' --help-option=--help-all libtool 11 | $(libtoolize_1): $(libtoolize_in) 12 | $(AM_V_GEN)$(update_mans) -n 'Prepare a package to use libtool' libtoolize 13 | 14 | 15 | --- s/Makefile.in 2015-02-15 08:14:14.000000000 -0800 16 | +++ b/Makefile.in 2021-11-12 10:26:26.000000000 -0800 17 | @@ -2427,8 +2427,8 @@ 18 | # files created in the build tree, so instead we regenerate the 19 | # manual pages if the sources for the build-tree files we want to 20 | # run have changed. 21 | -$(libtool_1): $(ltmain_sh) 22 | - $(AM_V_GEN)$(update_mans) -n 'Provide generalized library-building support services' --help-option=--help-all libtool 23 | +#$(libtool_1): $(ltmain_sh) 24 | +# $(AM_V_GEN)$(update_mans) -n 'Provide generalized library-building support services' --help-option=--help-all libtool 25 | $(libtoolize_1): $(libtoolize_in) 26 | $(AM_V_GEN)$(update_mans) -n 'Prepare a package to use libtool' libtoolize 27 | 28 | 29 | --- a/build-aux/ltmain.in 2015-02-06 04:57:56.000000000 -0800 30 | +++ b/build-aux/ltmain.in 2021-11-08 14:58:33.000000000 -0800 31 | @@ -3188,7 +3188,7 @@ 32 | if test yes = "$lock_old_archive_extraction"; then 33 | $opt_dry_run || rm -f "$lockfile" 34 | fi 35 | - if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then 36 | + if ($AR t "$f_ex_an_ar_oldlib" | sort -u | sort -c >/dev/null 2>&1); then 37 | : 38 | else 39 | func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 40 | 41 | -------------------------------------------------------------------------------- /patches/libxml2-python-config.patch: -------------------------------------------------------------------------------- 1 | diff --git a/configure.ac b/configure.ac 2 | index fa24ca66..79dab797 100644 3 | --- a/configure.ac 4 | +++ b/configure.ac 5 | @@ -754,7 +754,7 @@ dnl 6 | 7 | AS_IF([test "x$with_python" != "xno"], [ 8 | AM_PATH_PYTHON 9 | - PKG_CHECK_MODULES([PYTHON], [python-${PYTHON_VERSION}]) 10 | + PKG_CHECK_MODULES([PYTHON], [python-${PYTHON_VERSION}-embed]) 11 | ]) 12 | AM_CONDITIONAL([WITH_PYTHON], [test "x$with_python" != "xno"]) 13 | 14 | -------------------------------------------------------------------------------- /patches/libxslt-python-config.patch: -------------------------------------------------------------------------------- 1 | diff --git a/configure.ac b/configure.ac 2 | index baeee600..da430c22 100644 3 | --- a/configure.ac 4 | +++ b/configure.ac 5 | @@ -189,7 +189,7 @@ AC_ARG_WITH(python, 6 | 7 | AS_IF([test "x$with_python" != "xno"], [ 8 | AM_PATH_PYTHON 9 | - PKG_CHECK_MODULES([PYTHON], [python-${PYTHON_VERSION}]) 10 | + PKG_CHECK_MODULES([PYTHON], [python-${PYTHON_VERSION}-embed]) 11 | case "$host" in 12 | *-*-cygwin* | *-*-mingw* | *-*-msys* ) 13 | PYTHON_LDFLAGS="-no-undefined -shrext .pyd" 14 | 15 | 16 | -------------------------------------------------------------------------------- /patches/nasm-dont-install-docs.patch: -------------------------------------------------------------------------------- 1 | --- a/Makefile.in 2024-04-17 09:48:27 2 | +++ n/Makefile.in 2025-04-21 16:15:43 3 | @@ -394,9 +394,6 @@ 4 | install: $(PROGS) 5 | $(MKDIR_P) $(DESTDIR)$(bindir) 6 | $(INSTALL_PROGRAM) $(PROGS) $(DESTDIR)$(bindir)/ 7 | - $(MKDIR_P) $(DESTDIR)$(mandir)/man1 8 | - $(INSTALL_DATA) $(srcdir)/nasm.1 $(DESTDIR)$(mandir)/man1/nasm.1 9 | - $(INSTALL_DATA) $(srcdir)/ndisasm.1 $(DESTDIR)$(mandir)/man1/ndisasm.1 10 | 11 | clean: 12 | for d in . $(SUBDIRS) $(XSUBDIRS); do \ 13 | 14 | Diff finished. Mon Apr 21 16:15:55 2025 15 | -------------------------------------------------------------------------------- /patches/p11-kit-libintl.patch: -------------------------------------------------------------------------------- 1 | --- a/Makefile.in 2022-01-17 06:46:40.000000000 -0800 2 | +++ b/Makefile.in 2023-07-01 14:35:10.000000000 -0700 3 | @@ -2908,7 +2908,7 @@ 4 | trust/$(DEPDIR)/$(am__dirstamp) 5 | 6 | p11-kit-trust.la: $(p11_kit_trust_la_OBJECTS) $(p11_kit_trust_la_DEPENDENCIES) $(EXTRA_p11_kit_trust_la_DEPENDENCIES) 7 | - $(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) 8 | + $(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) 9 | common/frob-getauxval.$(OBJEXT): common/$(am__dirstamp) \ 10 | common/$(DEPDIR)/$(am__dirstamp) 11 | 12 | 13 | -------------------------------------------------------------------------------- /patches/pangomm3-missing-include.patch: -------------------------------------------------------------------------------- 1 | --- a/untracked/pango/pangomm/attrlist.cc 2020-12-13 06:11:13 2 | +++ b/untracked/pango/pangomm/attrlist.cc 2024-06-01 15:38:43 3 | @@ -30,6 +30,7 @@ 4 | * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 5 | */ 6 | 7 | +#include 8 | namespace Pango 9 | { 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /patches/patch status: -------------------------------------------------------------------------------- 1 | 2 | libproxy: 0001-Bug-168-libproxy-pc-file.patch (fixed in r827) 3 | Not yet released 4 | libproxy-Bug-052-POSIX_C_SOURCE.patch 5 | (Doesn't seem to be applied, and it builds anyway.) 6 | 7 | gtkmm3: 0001-Gtkmm-won-t-build-for-Quartz.patch 8 | (Bug 662975, fixed 11/29/11, not yet released) 9 | 10 | gobject-intro: 0001-scanner-split-CC-environment-variable.patch fixed, not 11 | released in stable. 12 | girscanner-objc.patch: Bug 626995, will likely never be 13 | committed. 14 | gobject-introspection-625195-Fix-non-libtool-linker-flags-on-Darwin.patch: 15 | https://bugzilla.gnome.org/show_bug.cgi?id=625195, required only 16 | for --no-libtool, i.e. webkit2gtk3. 17 | 18 | gtk2: 0004-Bug-571582-GtkSelection-implementation-for-quartz.patch 19 | 0006-Bug-658722-Drag-and-Drop-sometimes-stops-working.patch 20 | 0008-Implement-GtkDragSourceOwner-pasteboardChangedOwner.patch 21 | gtk+-Bug-655065-autotestkeywords-ldadd.patch 22 | 23 | cairo: Cairo-44584-llvm-no-flto.patch Rejected. Cairo maintainer wants 24 | optimization suppressed instead. 25 | 26 | libunique: libunique-663913-sockaddr-un.patch No Love from maintainer 27 | 28 | pygtk: pygtk-libtool.patch: The PyGtk-2.24.0 tarball uses an argument 29 | export-symbols-regex, which llvm-gcc doesn't seem to like. 30 | 31 | Webkit: Webkit-1.6-enable-blob.patch 32 | webkit-1.6-missing-utf8-include.patch 33 | webkit-1.6-no-x11.patch 34 | webkit-1.6-pango-includes.patch 35 | 36 | webkit1gtk: webkit-140167-disable-netscape-api.patch 37 | There's no configure option to disable this. Work around by 38 | modifying the variable directly. 39 | https://bugs.webkit.org/show_bug.cgi?id=140167 40 | webkit-133293-cfi-clang-failure.patch 41 | Workaround for https://bugs.webkit.org/show_bug.cgi?id=133293 42 | This patch is a workaround for a clang bug in XCode < 6.3. It can 43 | be commented out for XCode 6.3 and later versions. 44 | 45 | webkit2gtk3: webkit-144561-quartz-backend.patch 46 | Unlikely to be merged unless WebKit gains a build bot 47 | for WebKitGTK on OS X. 48 | webkit-144560-platform-fixes.patch 49 | Various fixes to disable OS X-specific functionality that 50 | works for Safari but shouldn't be enabled for WebKitGTK. 51 | webkit-144785-link-injected-bundle.patch 52 | Languishing in Bugzilla 53 | webkit-148606-build-texture-mapper-gl-separately.patch 54 | Languishing in Bugzilla 55 | webkit-148607-include-stub-for-plugin-permission-request.patch 56 | Languishing in Bugzilla 57 | 58 | GConf: GConf-characters.patch Bug 161209. Unlikely ever to be fixed. 59 | 60 | Glade: Glade-3-8-Bug-663492-Update-Mac-integration-bindings-to-.patch 61 | Glade-3-8-Mac-Integration-Fix-up-menu-accelerators-for-Mac.patch 62 | Glade-master-Bug-663492-Update-Mac-integration-bindings-to-.patch 63 | Glade-master-Mac-Integration-Fix-up-menu-accelerators-for-Mac.patch 64 | 65 | dbi: dbi.patch, dbi-driver.patch These belong in gnucash.modules 66 | 67 | devhelp: devhelp-646962-variable-name.patch 68 | devhelp-663789-gtkosxapplication.patch 69 | Both pushed to master, but won't be backported. 70 | 71 | dbus: dbus-install.patch 72 | dbus-msg-nosignal.patch 73 | 74 | gjs: gjs-Bug-737701-Don-t-error-out-on-missing-cairo-xlib.pc.patch 75 | gjs-Bug-737702-Use-R-instead-of-rpath.patch 76 | gjs-Bug-740696-Use-m4-directory-for-macros.patch 77 | All committed to master and gtk-3-14, only needed for modulesets-stable. 78 | 79 | faad2: faad2-2.7-ac-config-headers.patch 80 | Reported at https://sourceforge.net/p/faac/bugs/190/ but there hasn't 81 | been much activity in the last few years 82 | 83 | gstreamer: gstreamer-fix-includes-in-gst-datetime.patch 84 | gstreamer-680428-Fix-flex-version-check.patch 85 | gstreamer-706462-Make-grammar-y-work-with-Bison-3.patch 86 | All fixed on 0.10 branch, only needed for modulesets-stable. 87 | 88 | py2cairo-python2.6: py2cairo-python2.6-Dont-try-to-guess-arch.patch 89 | Needed to work around broken behaviour in waf. 90 | Not sure if this will ever be fixed. 91 | https://code.google.com/p/waf/issues/detail?id=1505 92 | 93 | cmake: cmake-libnetwork.patch 94 | Necessary when building on 10.11. Should be fixed in CMake 3.4. 95 | https://cmake.org/gitweb?p=cmake.git;a=commit;h=01b6ecdb41ec0a60f8abc70555aca6eb1463fe3f 96 | -------------------------------------------------------------------------------- /patches/patch-bundle-link-webcore.diff: -------------------------------------------------------------------------------- 1 | --- Source/WebKit/PlatformGTK.cmake.orig 2017-09-29 02:02:31.000000000 +0800 2 | +++ Source/WebKit/PlatformGTK.cmake 2017-09-29 02:02:53.000000000 +0800 3 | @@ -1092,7 +1092,7 @@ 4 | 5 | add_library(webkit2gtkinjectedbundle MODULE "${WEBKIT_DIR}/WebProcess/InjectedBundle/API/glib/WebKitInjectedBundleMain.cpp") 6 | ADD_WEBKIT_PREFIX_HEADER(webkit2gtkinjectedbundle) 7 | -target_link_libraries(webkit2gtkinjectedbundle WebKit) 8 | +target_link_libraries(webkit2gtkinjectedbundle WebKit WebCore) 9 | 10 | target_include_directories(webkit2gtkinjectedbundle PRIVATE 11 | ${WebKit_INCLUDE_DIRECTORIES} 12 | -------------------------------------------------------------------------------- /patches/patch-webkit2gtk-2282-os-log-availability.diff: -------------------------------------------------------------------------------- 1 | diff --git Source/ThirdParty/ANGLE/src/common/debug.cpp Source/ThirdParty/ANGLE/src/common/debug.cpp 2 | index c26815d3..b07914be 100644 3 | --- Source/ThirdParty/ANGLE/src/common/debug.cpp 4 | +++ Source/ThirdParty/ANGLE/src/common/debug.cpp 5 | @@ -21,7 +21,7 @@ 6 | # include 7 | #endif 8 | 9 | -#if defined(ANGLE_PLATFORM_APPLE) 10 | +#if defined(ANGLE_PLATFORM_APPLE) && MAC_OS_X_VERSION_MAX_ALLOWED > 101200 11 | # include 12 | #endif 13 | 14 | @@ -232,7 +232,7 @@ void Trace(LogSeverity severity, const char *message) 15 | } 16 | __android_log_print(android_priority, "ANGLE", "%s: %s\n", LogSeverityName(severity), 17 | str.c_str()); 18 | -#elif defined(ANGLE_PLATFORM_APPLE) 19 | +#elif defined(ANGLE_PLATFORM_APPLE) && MAC_OS_X_VERSION_MAX_ALLOWED > 101200 20 | if (__builtin_available(macOS 10.12, iOS 10.0, *)) 21 | { 22 | os_log_type_t apple_log_type = OS_LOG_TYPE_DEFAULT; 23 | -------------------------------------------------------------------------------- /patches/patch-webkit2gtk-2282-unprotected-egl-changes.diff: -------------------------------------------------------------------------------- 1 | These changes were added in 2 | 3 | 4 | they don't compile, as they use EGL unprotected, but even when some of them were protected by USE(EGL) there were 5 | errors when trying to play videos in the MiniBrowser. So I added protection to all the addition bits in 6 | the commit that were not initially protected. 7 | 8 | kencu@macports.org 9 | 10 | 11 | 12 | diff --git Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.cpp Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.cpp 13 | index ad632205..29a9eace 100644 14 | --- Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.cpp 15 | +++ Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.cpp 16 | @@ -23,7 +23,7 @@ 17 | #if USE(GSTREAMER) 18 | #include 19 | 20 | -#if USE(GSTREAMER_GL) 21 | +#if USE(WPE_VIDEO_PLANE_DISPLAY_DMABUF) 22 | #include 23 | #endif 24 | 25 | @@ -508,6 +508,7 @@ template<> void derefGPtr(GstGLContext* ptr) 26 | gst_object_unref(GST_OBJECT(ptr)); 27 | } 28 | 29 | +#if USE(WPE_VIDEO_PLANE_DISPLAY_DMABUF) 30 | template <> GRefPtr adoptGRef(GstEGLImage* ptr) 31 | { 32 | return GRefPtr(ptr, GRefPtrAdopt); 33 | @@ -525,6 +526,7 @@ template <> void derefGPtr(GstEGLImage* ptr) 34 | if (ptr) 35 | gst_egl_image_unref(ptr); 36 | } 37 | +#endif //USE(WPE_VIDEO_PLANE_DISPLAY_DMABUF) 38 | 39 | #endif // USE(GSTREAMER_GL) 40 | 41 | diff --git Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.h Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.h 42 | index d940f8ca..bda2f024 100644 43 | --- Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.h 44 | +++ Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.h 45 | @@ -30,9 +30,13 @@ typedef struct _WebKitWebSrc WebKitWebSrc; 46 | #if USE(GSTREAMER_GL) 47 | typedef struct _GstGLDisplay GstGLDisplay; 48 | typedef struct _GstGLContext GstGLContext; 49 | + 50 | +#if USE(WPE_VIDEO_PLANE_DISPLAY_DMABUF) 51 | typedef struct _GstEGLImage GstEGLImage; 52 | #endif 53 | 54 | +#endif 55 | + 56 | namespace WTF { 57 | 58 | template<> GRefPtr adoptGRef(GstPlugin* ptr); 59 | @@ -133,9 +137,12 @@ template<> GRefPtr adoptGRef(GstGLContext* ptr); 60 | template<> GstGLContext* refGPtr(GstGLContext* ptr); 61 | template<> void derefGPtr(GstGLContext* ptr); 62 | 63 | +#if USE(WPE_VIDEO_PLANE_DISPLAY_DMABUF) 64 | template<> GRefPtr adoptGRef(GstEGLImage* ptr); 65 | template<> GstEGLImage* refGPtr(GstEGLImage* ptr); 66 | template<> void derefGPtr(GstEGLImage* ptr); 67 | +#endif // USE(WPE_VIDEO_PLANE_DISPLAY_DMABUF) 68 | + 69 | #endif 70 | 71 | } // namespace WTF 72 | -------------------------------------------------------------------------------- /patches/patch-webkit2gtk-272-macports.diff: -------------------------------------------------------------------------------- 1 | diff --git Source/WebKit/NetworkProcess/NetworkLoadParameters.h Source/WebKit/NetworkProcess/NetworkLoadParameters.h 2 | index de74d33a..fb021faa 100644 3 | --- Source/WebKit/NetworkProcess/NetworkLoadParameters.h 4 | +++ Source/WebKit/NetworkProcess/NetworkLoadParameters.h 5 | @@ -35,6 +35,9 @@ 6 | #include 7 | #include 8 | 9 | +/* audit_token_t */ 10 | +#include 11 | + 12 | namespace WebKit { 13 | 14 | enum class PreconnectOnly { No, Yes }; 15 | diff --git Source/WebKit/Platform/IPC/ArgumentCoders.h Source/WebKit/Platform/IPC/ArgumentCoders.h 16 | index f1ea1ecb..12ceec79 100644 17 | --- Source/WebKit/Platform/IPC/ArgumentCoders.h 18 | +++ Source/WebKit/Platform/IPC/ArgumentCoders.h 19 | @@ -34,6 +34,9 @@ 20 | #include 21 | #include 22 | 23 | +/* audit_token_t */ 24 | +#include 25 | + 26 | namespace IPC { 27 | 28 | // An argument coder works on POD types 29 | diff --git Source/WebKit/Shared/SandboxExtension.h Source/WebKit/Shared/SandboxExtension.h 30 | index 5839d3fc..6f110183 100644 31 | --- Source/WebKit/Shared/SandboxExtension.h 32 | +++ Source/WebKit/Shared/SandboxExtension.h 33 | @@ -33,6 +33,9 @@ 34 | #include 35 | #include 36 | 37 | +/* audit_token_t */ 38 | +#include 39 | + 40 | namespace IPC { 41 | class Encoder; 42 | class Decoder; 43 | diff --git Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp 44 | index 57e8a557..45df4cf6 100644 45 | --- ./Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp.orig 2019-11-22 04:57:54.000000000 -0800 46 | +++ ./Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp 2019-11-27 05:52:39.000000000 -0800 47 | @@ -333,9 +333,10 @@ 48 | " ", 49 | webGLEnabled(request) ? "Yes" : "No"); 50 | 51 | +#if USE(GLX) 52 | auto glContext = GLContext::createOffscreenContext(); 53 | glContext->makeContextCurrent(); 54 | - 55 | +#endif 56 | g_string_append_printf(html, 57 | " " 58 | "
API
" 59 | @@ -349,7 +350,7 @@ 60 | " %s" 61 | " ", 62 | nativeInterface()); 63 | - 64 | +#if USE(GLX) 65 | g_string_append_printf(html, 66 | " " 67 | "
GL_RENDERER
" 68 | @@ -377,7 +378,6 @@ 69 | " %s" 70 | " ", 71 | reinterpret_cast(glGetString(GL_SHADING_LANGUAGE_VERSION))); 72 | - 73 | #if USE(OPENGL_ES) 74 | g_string_append_printf(html, 75 | " " 76 | @@ -402,6 +402,7 @@ 77 | extensions->str); 78 | g_string_free(extensions, TRUE); 79 | #endif 80 | +#endif 81 | 82 | bool isGLX = false; 83 | #if USE(GLX) 84 | -------------------------------------------------------------------------------- /patches/patch-webkit2gtk-macports.diff: -------------------------------------------------------------------------------- 1 | commit 504d7c6714f59b27028a43949f0088f9c19b39d7 2 | Author: ken-cunningham-webuse 3 | Date: Sun Oct 13 16:03:12 2019 -0700 4 | 5 | webkit2-gtk: patchset to enable build on MacPorts 6 | 7 | presently Mojave against 10.14 SDK, building X11 8 | 9 | diff --git Source/JavaScriptCore/shell/PlatformGTK.cmake Source/JavaScriptCore/shell/PlatformGTK.cmake 10 | index c4ac7c9a..cf2fc2d6 100644 11 | --- Source/JavaScriptCore/shell/PlatformGTK.cmake 12 | +++ Source/JavaScriptCore/shell/PlatformGTK.cmake 13 | @@ -1,3 +1,7 @@ 14 | list(APPEND jsc_LIBRARIES 15 | ${GLIB_LIBRARIES} 16 | ) 17 | + 18 | +list(APPEND jsc_PRIVATE_INCLUDE_DIRECTORIES 19 | + ${WTF_DIR} 20 | +) 21 | diff --git Source/WTF/CMakeLists.txt Source/WTF/CMakeLists.txt 22 | index 7c615c55..dd221b1a 100644 23 | --- Source/WTF/CMakeLists.txt 24 | +++ Source/WTF/CMakeLists.txt 25 | @@ -6,6 +6,6 @@ add_subdirectory(wtf) 26 | 27 | # Apple builds have the ICU headers checked into ${WTF_DIR}/icu 28 | # Copy them into ${ICU_INCLUDE_DIRS} so the build behaves like find_package was used 29 | -if (APPLE) 30 | +if (DISABLEAPPLE) 31 | file(COPY ${WTF_DIR}/icu/unicode DESTINATION ${ICU_INCLUDE_DIRS}) 32 | endif () 33 | diff --git Source/WebCore/CMakeLists.txt Source/WebCore/CMakeLists.txt 34 | index a5b62f40..440ef671 100644 35 | --- Source/WebCore/CMakeLists.txt 36 | +++ Source/WebCore/CMakeLists.txt 37 | @@ -173,6 +173,10 @@ set(WebCore_SYSTEM_INCLUDE_DIRECTORIES 38 | ${ZLIB_INCLUDE_DIRS} 39 | ) 40 | 41 | +list(APPEND WebCore_SYSTEM_INCLUDE_DIRECTORIES 42 | + ${PAL_DIR} 43 | +) 44 | + 45 | set(WebCore_IDL_INCLUDES 46 | css 47 | dom 48 | diff --git Source/WebCore/PAL/pal/spi/cocoa/CommonCryptoSPI.h Source/WebCore/PAL/pal/spi/cocoa/CommonCryptoSPI.h 49 | new file mode 100644 50 | index 00000000..cf113819 51 | --- /dev/null 52 | +++ Source/WebCore/PAL/pal/spi/cocoa/CommonCryptoSPI.h 53 | @@ -0,0 +1,117 @@ 54 | +/* 55 | + * Copyright (C) 2013-2019 Apple Inc. All rights reserved. 56 | + * 57 | + * Redistribution and use in source and binary forms, with or without 58 | + * modification, are permitted provided that the following conditions 59 | + * are met: 60 | + * 1. Redistributions of source code must retain the above copyright 61 | + * notice, this list of conditions and the following disclaimer. 62 | + * 2. Redistributions in binary form must reproduce the above copyright 63 | + * notice, this list of conditions and the following disclaimer in the 64 | + * documentation and/or other materials provided with the distribution. 65 | + * 66 | + * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' 67 | + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 68 | + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 69 | + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS 70 | + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 71 | + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 72 | + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 73 | + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 74 | + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 75 | + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 76 | + * THE POSSIBILITY OF SUCH DAMAGE. 77 | + */ 78 | + 79 | +#pragma once 80 | + 81 | +#if USE(APPLE_INTERNAL_SDK) 82 | + 83 | +#include 84 | +#include 85 | +#include 86 | +#include 87 | +#include 88 | +#include 89 | + 90 | +#else 91 | + 92 | +#ifndef _CC_RSACRYPTOR_H_ 93 | +enum { 94 | + kCCDigestNone = 0, 95 | + kCCDigestSHA1 = 8, 96 | + kCCDigestSHA224 = 9, 97 | + kCCDigestSHA256 = 10, 98 | + kCCDigestSHA384 = 11, 99 | + kCCDigestSHA512 = 12, 100 | +}; 101 | +typedef uint32_t CCDigestAlgorithm; 102 | + 103 | +enum { 104 | + ccRSAKeyPublic = 0, 105 | + ccRSAKeyPrivate = 1 106 | +}; 107 | +typedef uint32_t CCRSAKeyType; 108 | + 109 | +enum { 110 | + ccPKCS1Padding = 1001, 111 | + ccOAEPPadding = 1002, 112 | + ccRSAPSSPadding = 1005 113 | +}; 114 | +typedef uint32_t CCAsymmetricPadding; 115 | +#endif 116 | + 117 | +typedef struct _CCRSACryptor *CCRSACryptorRef; 118 | +extern "C" CCCryptorStatus CCRSACryptorEncrypt(CCRSACryptorRef publicKey, CCAsymmetricPadding padding, const void *plainText, size_t plainTextLen, void *cipherText, size_t *cipherTextLen, const void *tagData, size_t tagDataLen, CCDigestAlgorithm digestType); 119 | +extern "C" CCCryptorStatus CCRSACryptorDecrypt(CCRSACryptorRef privateKey, CCAsymmetricPadding padding, const void *cipherText, size_t cipherTextLen, void *plainText, size_t *plainTextLen, const void *tagData, size_t tagDataLen, CCDigestAlgorithm digestType); 120 | +extern "C" CCCryptorStatus CCRSACryptorSign(CCRSACryptorRef privateKey, CCAsymmetricPadding padding, const void *hashToSign, size_t hashSignLen, CCDigestAlgorithm digestType, size_t saltLen, void *signedData, size_t *signedDataLen); 121 | +extern "C" CCCryptorStatus CCRSACryptorVerify(CCRSACryptorRef publicKey, CCAsymmetricPadding padding, const void *hash, size_t hashLen, CCDigestAlgorithm digestType, size_t saltLen, const void *signedData, size_t signedDataLen); 122 | +extern "C" CCCryptorStatus CCRSACryptorGeneratePair(size_t keysize, uint32_t e, CCRSACryptorRef *publicKey, CCRSACryptorRef *privateKey); 123 | +extern "C" CCRSACryptorRef CCRSACryptorGetPublicKeyFromPrivateKey(CCRSACryptorRef privkey); 124 | +extern "C" void CCRSACryptorRelease(CCRSACryptorRef key); 125 | +extern "C" CCCryptorStatus CCRSAGetKeyComponents(CCRSACryptorRef rsaKey, uint8_t *modulus, size_t *modulusLength, uint8_t *exponent, size_t *exponentLength, uint8_t *p, size_t *pLength, uint8_t *q, size_t *qLength); 126 | +extern "C" CCRSAKeyType CCRSAGetKeyType(CCRSACryptorRef key); 127 | +extern "C" CCCryptorStatus CCRSACryptorImport(const void *keyPackage, size_t keyPackageLen, CCRSACryptorRef *key); 128 | +extern "C" CCCryptorStatus CCRSACryptorExport(CCRSACryptorRef key, void *out, size_t *outLen); 129 | + 130 | +extern "C" CCCryptorStatus CCRSAGetCRTComponentsSizes(CCRSACryptorRef rsaKey, size_t *dpSize, size_t *dqSize, size_t *qinvSize); 131 | +extern "C" CCCryptorStatus CCRSAGetCRTComponents(CCRSACryptorRef rsaKey, void *dp, size_t dpSize, void *dq, size_t dqSize, void *qinv, size_t qinvSize); 132 | + 133 | +#ifndef _CC_ECCRYPTOR_H_ 134 | +enum { 135 | + ccECKeyPublic = 0, 136 | + ccECKeyPrivate = 1, 137 | +}; 138 | +typedef uint32_t CCECKeyType; 139 | + 140 | +enum { 141 | + kCCImportKeyBinary = 0, 142 | +}; 143 | +typedef uint32_t CCECKeyExternalFormat; 144 | +#endif 145 | + 146 | +typedef struct _CCECCryptor *CCECCryptorRef; 147 | +extern "C" CCCryptorStatus CCECCryptorGeneratePair(size_t keysize, CCECCryptorRef *publicKey, CCECCryptorRef *privateKey); 148 | +extern "C" void CCECCryptorRelease(CCECCryptorRef key); 149 | +extern "C" CCCryptorStatus CCECCryptorImportKey(CCECKeyExternalFormat format, const void *keyPackage, size_t keyPackageLen, CCECKeyType keyType, CCECCryptorRef *key); 150 | +extern "C" CCCryptorStatus CCECCryptorExportKey(CCECKeyExternalFormat format, void *keyPackage, size_t *keyPackageLen, CCECKeyType keyType, CCECCryptorRef key); 151 | +extern "C" int CCECGetKeySize(CCECCryptorRef key); 152 | +extern "C" CCCryptorStatus CCECCryptorCreateFromData(size_t keySize, uint8_t *qX, size_t qXLength, uint8_t *qY, size_t qYLength, CCECCryptorRef *ref); 153 | +extern "C" CCCryptorStatus CCECCryptorGetKeyComponents(CCECCryptorRef ecKey, size_t *keySize, uint8_t *qX, size_t *qXLength, uint8_t *qY, size_t *qYLength, uint8_t *d, size_t *dLength); 154 | +extern "C" CCCryptorStatus CCECCryptorComputeSharedSecret(CCECCryptorRef privateKey, CCECCryptorRef publicKey, void *out, size_t *outLen); 155 | +extern "C" CCCryptorStatus CCECCryptorSignHash(CCECCryptorRef privateKey, const void *hashToSign, size_t hashSignLen, void *signedData, size_t *signedDataLen); 156 | +extern "C" CCCryptorStatus CCECCryptorVerifyHash(CCECCryptorRef publicKey, const void *hash, size_t hashLen, const void *signedData, size_t signedDataLen, uint32_t *valid); 157 | + 158 | +#ifndef CommonCrypto_CommonNistKeyDerivation_h 159 | +enum { 160 | + kCCKDFAlgorithmHKDF = 6 161 | +}; 162 | +typedef uint32_t CCKDFAlgorithm; 163 | +#endif 164 | + 165 | +extern "C" CCStatus CCKeyDerivationHMac(CCKDFAlgorithm algorithm, CCDigestAlgorithm digest, unsigned rounds, const void *keyDerivationKey, size_t keyDerivationKeyLen, const void *label, size_t labelLen, const void *context, size_t contextLen, const void *iv, size_t ivLen, const void *salt, size_t saltLen, void *derivedKey, size_t derivedKeyLen); 166 | + 167 | +extern "C" CCCryptorStatus CCCryptorGCM(CCOperation op, CCAlgorithm alg, const void* key, size_t keyLength, const void* iv, size_t ivLen, const void* aData, size_t aDataLen, const void* dataIn, size_t dataInLength, void* dataOut, void* tag, size_t* tagLength); 168 | +extern "C" CCCryptorStatus CCRSACryptorCreateFromData(CCRSAKeyType keyType, const uint8_t *modulus, size_t modulusLength, const uint8_t *exponent, size_t exponentLength, const uint8_t *p, size_t pLength, const uint8_t *q, size_t qLength, CCRSACryptorRef *ref); 169 | + 170 | +#endif // !USE(APPLE_INTERNAL_SDK) 171 | --- Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp.orig 2019-11-26 03:02:20.000000000 -0800 172 | +++ Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp 2019-11-26 14:56:04.000000000 -0800 173 | @@ -795,7 +795,7 @@ 174 | if (GST_STATE(m_pipeline.get()) < GST_STATE_PAUSED) 175 | return MediaTime::invalidTime(); 176 | 177 | - int64_t duration = 0; 178 | + gint64 duration = 0; 179 | if (!gst_element_query_duration(m_pipeline.get(), GST_FORMAT_TIME, &duration) || !GST_CLOCK_TIME_IS_VALID(duration)) { 180 | GST_DEBUG_OBJECT(pipeline(), "Time duration query failed for %s", m_url.string().utf8().data()); 181 | return MediaTime::positiveInfiniteTime(); 182 | @@ -2332,7 +2332,7 @@ 183 | GUniqueOutPtr responseHeaders; 184 | if (gst_structure_get(structure, "response-headers", GST_TYPE_STRUCTURE, &responseHeaders.outPtr(), nullptr)) { 185 | CString contentLengthHeaderName = httpHeaderNameString(HTTPHeaderName::ContentLength).utf8(); 186 | - uint64_t contentLength = 0; 187 | + guint64 contentLength = 0; 188 | if (!gst_structure_get_uint64(responseHeaders.get(), contentLengthHeaderName.data(), &contentLength)) { 189 | // souphttpsrc sets a string for Content-Length, so 190 | // handle it here, until we remove the webkit+ protocol 191 | @@ -3707,8 +3707,8 @@ Optional MediaPlayerPrivateGStreamer::videoPlayback 192 | if (!webkitGstCheckVersion(1, 17, 0) && !m_fpsSink) 193 | return WTF::nullopt; 194 | 195 | - uint64_t totalVideoFrames = 0; 196 | - uint64_t droppedVideoFrames = 0; 197 | + guint64 totalVideoFrames = 0; 198 | + guint64 droppedVideoFrames = 0; 199 | if (webkitGstCheckVersion(1, 17, 0)) { 200 | GUniqueOutPtr stats; 201 | g_object_get(m_videoSink.get(), "stats", &stats.outPtr(), nullptr); 202 | -------------------------------------------------------------------------------- /patches/pkgconf-link-pkg-config.patch: -------------------------------------------------------------------------------- 1 | --- a/meson.build 2024-03-27 11:39:43 2 | +++ b/meson.build 2024-05-15 20:48:07 3 | @@ -131,6 +131,7 @@ 4 | c_args: build_static, 5 | install : true) 6 | 7 | +install_symlink('pkg-config', install_dir : 'bin', pointing_to : pkgconf_exe.full_path()) 8 | with_tests = get_option('tests') 9 | kyua_exe = find_program('kyua', required : with_tests, disabler : true) 10 | atf_sh_exe = find_program('atf-sh', required : with_tests, disabler : true) 11 | -------------------------------------------------------------------------------- /patches/sqlite3-install-name.patch: -------------------------------------------------------------------------------- 1 | --- a/Makefile.in 2 | +++ b/Makefile.in 3 | @@ -148,7 +148,8 @@ 4 | $(libsqlite3.SO): sqlite3.o 5 | $(CC) -o $@ sqlite3.o $(LDFLAGS.shlib) \ 6 | $(LDFLAGS) $(LDFLAGS.libsqlite3) \ 7 | - $(LDFLAGS.libsqlite3.os-specific) $(LDFLAGS.libsqlite3.soname) 8 | + $(LDFLAGS.libsqlite3.os-specific) $(LDFLAGS.libsqlite3.soname) \ 9 | + -install_name ${JHBUILD_PREFIX}/lib/$@ 10 | all: $(libsqlite3.SO) 11 | 12 | $(libsqlite3.LIB): sqlite3.o 13 | 14 | -------------------------------------------------------------------------------- /patches/tiff-nohtml.patch: -------------------------------------------------------------------------------- 1 | --- a/Makefile.in 2023-02-19 19:31:46.135333554 +0700 2 | +++ b/Makefile.in 2023-02-19 19:32:28.379010562 +0700 3 | @@ -148,9 +148,9 @@ 4 | SOURCES = 5 | DIST_SOURCES = 6 | RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ 7 | - ctags-recursive dvi-recursive html-recursive info-recursive \ 8 | + ctags-recursive dvi-recursive info-recursive \ 9 | install-data-recursive install-dvi-recursive \ 10 | - install-exec-recursive install-html-recursive \ 11 | + install-exec-recursive \ 12 | install-info-recursive install-pdf-recursive \ 13 | install-ps-recursive install-recursive installcheck-recursive \ 14 | installdirs-recursive pdf-recursive ps-recursive \ 15 | @@ -400,7 +400,6 @@ 16 | host_cpu = @host_cpu@ 17 | host_os = @host_os@ 18 | host_vendor = @host_vendor@ 19 | -htmldir = @htmldir@ 20 | includedir = @includedir@ 21 | infodir = @infodir@ 22 | install_sh = @install_sh@ 23 | @@ -908,10 +907,6 @@ 24 | 25 | dvi-am: 26 | 27 | -html: html-recursive 28 | - 29 | -html-am: 30 | - 31 | info: info-recursive 32 | 33 | info-am: 34 | @@ -924,10 +919,6 @@ 35 | 36 | install-exec-am: 37 | 38 | -install-html: install-html-recursive 39 | - 40 | -install-html-am: 41 | - 42 | install-info: install-info-recursive 43 | 44 | install-info-am: 45 | @@ -972,10 +963,10 @@ 46 | dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \ 47 | dist-xz dist-zip distcheck distclean distclean-generic \ 48 | distclean-hdr distclean-libtool distclean-tags distcleancheck \ 49 | - distdir distuninstallcheck dvi dvi-am html html-am info \ 50 | + distdir distuninstallcheck dvi dvi-am info \ 51 | info-am install install-am install-data install-data-am \ 52 | install-dist_docDATA install-dvi install-dvi-am install-exec \ 53 | - install-exec-am install-html install-html-am install-info \ 54 | + install-exec-am install-info \ 55 | install-info-am install-man install-pdf install-pdf-am \ 56 | install-pkgconfigDATA install-ps install-ps-am install-strip \ 57 | installcheck installcheck-am installdirs installdirs-am \ 58 | -------------------------------------------------------------------------------- /patches/webkit-2.32-bug-224093.patch: -------------------------------------------------------------------------------- 1 | Subversion Revision: 275837 2 | diff --git a/Source/JavaScriptCore/Sources.txt b/Source/JavaScriptCore/Sources.txt 3 | index 28b5b83632b9c29bc49f1961694913e6167dbb4d..b6492dfdcb75ac1b76bc0931ca6a114d1201ece6 100644 4 | --- a/Source/JavaScriptCore/Sources.txt 5 | +++ b/Source/JavaScriptCore/Sources.txt 6 | @@ -849,6 +849,7 @@ runtime/IntlSegmenterConstructor.cpp 7 | runtime/IntlSegmenterPrototype.cpp 8 | runtime/IntlSegments.cpp 9 | runtime/IntlSegmentsPrototype.cpp 10 | +runtime/IntlWorkaround.cpp @no-unify // Confine U_HIDE_DRAFT_API's effect to this file. 11 | runtime/IteratorOperations.cpp 12 | runtime/IteratorPrototype.cpp 13 | runtime/JSArray.cpp 14 | diff --git a/Source/JavaScriptCore/runtime/IntlSegmenter.cpp b/Source/JavaScriptCore/runtime/IntlSegmenter.cpp 15 | index 2ad74f94bbe8ca17c775892afbc6fef712a62b58..93c9b20328476cbfaa040cbbe3883eebb252f3aa 100644 16 | --- a/Source/JavaScriptCore/runtime/IntlSegmenter.cpp 17 | +++ b/Source/JavaScriptCore/runtime/IntlSegmenter.cpp 18 | @@ -125,7 +125,7 @@ JSValue IntlSegmenter::segment(JSGlobalObject* globalObject, JSValue stringValue 19 | auto upconvertedCharacters = Box>::create(string.charactersWithoutNullTermination()); 20 | 21 | UErrorCode status = U_ZERO_ERROR; 22 | - auto segmenter = std::unique_ptr(ubrk_safeClone(m_segmenter.get(), nullptr, nullptr, &status)); 23 | + auto segmenter = std::unique_ptr(cloneUBreakIterator(m_segmenter.get(), &status)); 24 | if (U_FAILURE(status)) { 25 | throwTypeError(globalObject, scope, "failed to initialize Segments"_s); 26 | return { }; 27 | diff --git a/Source/JavaScriptCore/runtime/IntlSegmenter.h b/Source/JavaScriptCore/runtime/IntlSegmenter.h 28 | index cd0f426c489756aad4971e69c68119a3f70e0f19..a5239575a9f37990c2bb7bcfafde03a780a7354b 100644 29 | --- a/Source/JavaScriptCore/runtime/IntlSegmenter.h 30 | +++ b/Source/JavaScriptCore/runtime/IntlSegmenter.h 31 | @@ -75,4 +75,8 @@ private: 32 | Granularity m_granularity { Granularity::Grapheme }; 33 | }; 34 | 35 | +// Abstraction to call ubrk_safeClone or ubrk_clone depending on ICU version. 36 | +// This is implemented in IntlWorkaround.cpp in order to confine draft API visibility. 37 | +UBreakIterator* cloneUBreakIterator(const UBreakIterator*, UErrorCode*); 38 | + 39 | } // namespace JSC 40 | diff --git a/Source/JavaScriptCore/runtime/IntlSegments.cpp b/Source/JavaScriptCore/runtime/IntlSegments.cpp 41 | index b6aba32fb822e85bbe78088c0482948116a8c355..8b81791e413315f237faaa78f8d443485364a846 100644 42 | --- a/Source/JavaScriptCore/runtime/IntlSegments.cpp 43 | +++ b/Source/JavaScriptCore/runtime/IntlSegments.cpp 44 | @@ -100,7 +100,7 @@ JSObject* IntlSegments::createSegmentIterator(JSGlobalObject* globalObject) 45 | auto scope = DECLARE_THROW_SCOPE(vm); 46 | 47 | UErrorCode status = U_ZERO_ERROR; 48 | - auto segmenter = std::unique_ptr(ubrk_safeClone(m_segmenter.get(), nullptr, nullptr, &status)); 49 | + auto segmenter = std::unique_ptr(cloneUBreakIterator(m_segmenter.get(), &status)); 50 | if (U_FAILURE(status)) { 51 | throwTypeError(globalObject, scope, "failed to initialize SegmentIterator"_s); 52 | return nullptr; 53 | diff --git a/Source/JavaScriptCore/runtime/IntlWorkaround.cpp b/Source/JavaScriptCore/runtime/IntlWorkaround.cpp 54 | new file mode 100644 55 | index 0000000000000000000000000000000000000000..8d820857ec2243f5640237d0c638e6e3f9f885dc 56 | --- /dev/null 57 | +++ b/Source/JavaScriptCore/runtime/IntlWorkaround.cpp 58 | @@ -0,0 +1,53 @@ 59 | +/* 60 | + * Copyright (C) 2021 Sony Interactive Entertainment Inc. 61 | + * 62 | + * Redistribution and use in source and binary forms, with or without 63 | + * modification, are permitted provided that the following conditions 64 | + * are met: 65 | + * 1. Redistributions of source code must retain the above copyright 66 | + * notice, this list of conditions and the following disclaimer. 67 | + * 2. Redistributions in binary form must reproduce the above copyright 68 | + * notice, this list of conditions and the following disclaimer in the 69 | + * documentation and/or other materials provided with the distribution. 70 | + * 71 | + * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' 72 | + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 73 | + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 74 | + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS 75 | + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 76 | + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 77 | + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 78 | + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 79 | + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 80 | + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 81 | + * THE POSSIBILITY OF SUCH DAMAGE. 82 | + */ 83 | + 84 | +#include "config.h" 85 | + 86 | +#include 87 | + 88 | +// ICU 69 introduces draft API ubrk_clone and deprecates ubrk_safeClone. 89 | +#if U_ICU_VERSION_MAJOR_NUM >= 69 90 | +#define HAVE_ICU_UBRK_CLONE 1 91 | +#endif 92 | + 93 | +#if defined(U_HIDE_DRAFT_API) 94 | +#undef U_HIDE_DRAFT_API 95 | +#endif 96 | +#include 97 | + 98 | +namespace JSC { 99 | + 100 | +UBreakIterator* cloneUBreakIterator(const UBreakIterator*, UErrorCode*); 101 | + 102 | +UBreakIterator* cloneUBreakIterator(const UBreakIterator* iterator, UErrorCode* status) 103 | +{ 104 | +#if HAVE(ICU_UBRK_CLONE) 105 | + return ubrk_clone(iterator, status); 106 | +#else 107 | + return ubrk_safeClone(iterator, nullptr, nullptr, status); 108 | +#endif 109 | +} 110 | + 111 | +} // namespace JSC 112 | 113 | 114 | -------------------------------------------------------------------------------- /tidy.conf: -------------------------------------------------------------------------------- 1 | indent-attributes: yes 2 | sort-attributes: alpha 3 | indent-spaces: 2 4 | input-xml: yes 5 | output-xml: yes 6 | newline: LF 7 | indent: yes 8 | priority-attributes: id, name, module, version, hash 9 | --------------------------------------------------------------------------------