From adb934701975f6b0214475d1a8d0d1ce727b9d4d Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 27 Apr 2024 16:32:59 +0200 Subject: Adding upstream version 3.38.1. Signed-off-by: Daniel Baumann --- build-aux/flatpak/.gitignore | 2 + build-aux/flatpak/1-build-and-install.sh | 3 + build-aux/flatpak/2-run-app.sh | 3 + build-aux/flatpak/3-teardown.sh | 3 + build-aux/flatpak/org.gnome.gedit.yml | 87 + build-aux/meson/post_install.py | 30 + build-aux/osx/README | 24 + build-aux/osx/build/.gitignore | 5 + build-aux/osx/build/README | 131 + build-aux/osx/build/build | 336 + build-aux/osx/build/config/jhbuildrc-gedit | 40 + build-aux/osx/build/modulesets/bootstrap.modules | 249 + build-aux/osx/build/modulesets/gedit.modules | 553 + .../patches/berkeleydb-nonsrctree/atomic.patch | 20 + .../modulesets/patches/berkeleydb/atomic.patch | 20 + .../patches/enchant/enchant-applespell.patch | 368 + .../modulesets/patches/enchant/enchant-gsize.patch | 97 + .../patches/enchant/enchant-relocatable.patch | 40 + .../gettext-runtime/gettext-bug33999-stpncpy.patch | 63 + .../gettext-tools/gettext-bug33999-stpncpy.patch | 63 + ...1-Bug-724590-GSlice-slab_stack-corruption.patch | 28 + .../gobject-introspection/girscanner-objc.patch | 20 + ...722-Drag-and-Drop-sometimes-stops-working.patch | 274 + ...GtkDragSourceOwner-pasteboardChangedOwner.patch | 39 + .../patches/gtk+/gtk+-2-m4-creation.patch | 5 + ...ed-exception-from-attempting-to-access-me.patch | 39 + .../itstool/itstool.use-correct-libxml.patch | 28 + .../patches/libgcrypt/libgcrypt-build-clang.patch | 97 + .../libxml2-Bug-686118-pthreads_once_init.patch | 33 + .../modulesets/patches/readline/readline62-001 | 46 + .../modulesets/patches/readline/readline62-002 | 57 + .../modulesets/patches/readline/readline62-003 | 76 + .../modulesets/patches/readline/readline62-004 | 108 + ...0001-Bug-70255-Build-fails-with-glib-2.38.patch | 42 + .../updater/gedit-bootstrap-overrides.modules | 119 + .../osx/build/updater/gedit-overrides.modules | 211 + .../build/updater/patches/enchant-applespell.patch | 368 + .../updater/patches/enchant-relocatable.patch | 40 + .../patches/gedit-plugins-disable-terminal.patch | 30 + build-aux/osx/build/updater/update_modulesets.py | 320 + build-aux/osx/bundle/.gitignore | 1 + build-aux/osx/bundle/bundle | 327 + build-aux/osx/bundle/data/Info.plist.in | 268 + build-aux/osx/bundle/data/gedit | 66 + build-aux/osx/bundle/data/gedit.bundle | 122 + build-aux/osx/bundle/data/gedit.icns | Bin 0 -> 262295 bytes build-aux/osx/bundle/data/geditdoc.icns | Bin 0 -> 38861 bytes build-aux/osx/bundle/data/geditpkg.icns | Bin 0 -> 290002 bytes build-aux/osx/bundle/data/template.dmg.bz2 | Bin 0 -> 2101803 bytes build-aux/osx/bundle/images/background.png | Bin 0 -> 398486 bytes build-aux/osx/bundle/images/background.svg | 1456 + build-aux/osx/bundle/images/gedit-128x128.png | Bin 0 -> 17789 bytes build-aux/osx/bundle/images/gedit-16x16.png | Bin 0 -> 980 bytes build-aux/osx/bundle/images/gedit-256x256.png | Bin 0 -> 49959 bytes build-aux/osx/bundle/images/gedit-32x32.png.png | Bin 0 -> 2173 bytes build-aux/osx/bundle/images/gedit-512x512.png | Bin 0 -> 134171 bytes build-aux/osx/bundle/images/gedit-icon.svg | 24452 +++++++++++++ build-aux/osx/bundle/images/gedit-pkg-128x128.png | Bin 0 -> 19341 bytes build-aux/osx/bundle/images/gedit-pkg-16x16.png | Bin 0 -> 1012 bytes build-aux/osx/bundle/images/gedit-pkg-256x256.png | Bin 0 -> 55224 bytes build-aux/osx/bundle/images/gedit-pkg-32x32.png | Bin 0 -> 2265 bytes build-aux/osx/bundle/images/gedit-pkg-512x512.png | Bin 0 -> 148664 bytes build-aux/osx/bundle/images/gedit-pkg-icon.svg | 34171 +++++++++++++++++++ build-aux/snap/snapcraft.yaml | 192 + 64 files changed, 65172 insertions(+) create mode 100644 build-aux/flatpak/.gitignore create mode 100755 build-aux/flatpak/1-build-and-install.sh create mode 100755 build-aux/flatpak/2-run-app.sh create mode 100755 build-aux/flatpak/3-teardown.sh create mode 100644 build-aux/flatpak/org.gnome.gedit.yml create mode 100755 build-aux/meson/post_install.py create mode 100644 build-aux/osx/README create mode 100644 build-aux/osx/build/.gitignore create mode 100644 build-aux/osx/build/README create mode 100755 build-aux/osx/build/build create mode 100644 build-aux/osx/build/config/jhbuildrc-gedit create mode 100644 build-aux/osx/build/modulesets/bootstrap.modules create mode 100644 build-aux/osx/build/modulesets/gedit.modules create mode 100644 build-aux/osx/build/modulesets/patches/berkeleydb-nonsrctree/atomic.patch create mode 100644 build-aux/osx/build/modulesets/patches/berkeleydb/atomic.patch create mode 100644 build-aux/osx/build/modulesets/patches/enchant/enchant-applespell.patch create mode 100644 build-aux/osx/build/modulesets/patches/enchant/enchant-gsize.patch create mode 100644 build-aux/osx/build/modulesets/patches/enchant/enchant-relocatable.patch create mode 100644 build-aux/osx/build/modulesets/patches/gettext-runtime/gettext-bug33999-stpncpy.patch create mode 100644 build-aux/osx/build/modulesets/patches/gettext-tools/gettext-bug33999-stpncpy.patch create mode 100644 build-aux/osx/build/modulesets/patches/glib/0001-Bug-724590-GSlice-slab_stack-corruption.patch create mode 100644 build-aux/osx/build/modulesets/patches/gobject-introspection/girscanner-objc.patch create mode 100644 build-aux/osx/build/modulesets/patches/gtk+/0006-Bug-658722-Drag-and-Drop-sometimes-stops-working.patch create mode 100644 build-aux/osx/build/modulesets/patches/gtk+/0008-Implement-GtkDragSourceOwner-pasteboardChangedOwner.patch create mode 100644 build-aux/osx/build/modulesets/patches/gtk+/gtk+-2-m4-creation.patch create mode 100644 build-aux/osx/build/modulesets/patches/gtk-mac-integration/0001-Fix-unhandled-exception-from-attempting-to-access-me.patch create mode 100644 build-aux/osx/build/modulesets/patches/itstool/itstool.use-correct-libxml.patch create mode 100644 build-aux/osx/build/modulesets/patches/libgcrypt/libgcrypt-build-clang.patch create mode 100644 build-aux/osx/build/modulesets/patches/libxml2/libxml2-Bug-686118-pthreads_once_init.patch create mode 100644 build-aux/osx/build/modulesets/patches/readline/readline62-001 create mode 100644 build-aux/osx/build/modulesets/patches/readline/readline62-002 create mode 100644 build-aux/osx/build/modulesets/patches/readline/readline62-003 create mode 100644 build-aux/osx/build/modulesets/patches/readline/readline62-004 create mode 100644 build-aux/osx/build/modulesets/patches/shared-mime-info/0001-Bug-70255-Build-fails-with-glib-2.38.patch create mode 100644 build-aux/osx/build/updater/gedit-bootstrap-overrides.modules create mode 100644 build-aux/osx/build/updater/gedit-overrides.modules create mode 100644 build-aux/osx/build/updater/patches/enchant-applespell.patch create mode 100644 build-aux/osx/build/updater/patches/enchant-relocatable.patch create mode 100644 build-aux/osx/build/updater/patches/gedit-plugins-disable-terminal.patch create mode 100755 build-aux/osx/build/updater/update_modulesets.py create mode 100644 build-aux/osx/bundle/.gitignore create mode 100755 build-aux/osx/bundle/bundle create mode 100644 build-aux/osx/bundle/data/Info.plist.in create mode 100755 build-aux/osx/bundle/data/gedit create mode 100644 build-aux/osx/bundle/data/gedit.bundle create mode 100644 build-aux/osx/bundle/data/gedit.icns create mode 100644 build-aux/osx/bundle/data/geditdoc.icns create mode 100644 build-aux/osx/bundle/data/geditpkg.icns create mode 100644 build-aux/osx/bundle/data/template.dmg.bz2 create mode 100644 build-aux/osx/bundle/images/background.png create mode 100644 build-aux/osx/bundle/images/background.svg create mode 100644 build-aux/osx/bundle/images/gedit-128x128.png create mode 100644 build-aux/osx/bundle/images/gedit-16x16.png create mode 100644 build-aux/osx/bundle/images/gedit-256x256.png create mode 100644 build-aux/osx/bundle/images/gedit-32x32.png.png create mode 100644 build-aux/osx/bundle/images/gedit-512x512.png create mode 100644 build-aux/osx/bundle/images/gedit-icon.svg create mode 100644 build-aux/osx/bundle/images/gedit-pkg-128x128.png create mode 100644 build-aux/osx/bundle/images/gedit-pkg-16x16.png create mode 100644 build-aux/osx/bundle/images/gedit-pkg-256x256.png create mode 100644 build-aux/osx/bundle/images/gedit-pkg-32x32.png create mode 100644 build-aux/osx/bundle/images/gedit-pkg-512x512.png create mode 100644 build-aux/osx/bundle/images/gedit-pkg-icon.svg create mode 100644 build-aux/snap/snapcraft.yaml (limited to 'build-aux') diff --git a/build-aux/flatpak/.gitignore b/build-aux/flatpak/.gitignore new file mode 100644 index 0000000..7949add --- /dev/null +++ b/build-aux/flatpak/.gitignore @@ -0,0 +1,2 @@ +.flatpak-builder/ +build/ diff --git a/build-aux/flatpak/1-build-and-install.sh b/build-aux/flatpak/1-build-and-install.sh new file mode 100755 index 0000000..cb96038 --- /dev/null +++ b/build-aux/flatpak/1-build-and-install.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +flatpak-builder --force-clean --user --install build org.gnome.gedit.yml diff --git a/build-aux/flatpak/2-run-app.sh b/build-aux/flatpak/2-run-app.sh new file mode 100755 index 0000000..1dc2b58 --- /dev/null +++ b/build-aux/flatpak/2-run-app.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +flatpak run org.gnome.gedit diff --git a/build-aux/flatpak/3-teardown.sh b/build-aux/flatpak/3-teardown.sh new file mode 100755 index 0000000..99cbb06 --- /dev/null +++ b/build-aux/flatpak/3-teardown.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +flatpak uninstall --user org.gnome.gedit diff --git a/build-aux/flatpak/org.gnome.gedit.yml b/build-aux/flatpak/org.gnome.gedit.yml new file mode 100644 index 0000000..8c158bb --- /dev/null +++ b/build-aux/flatpak/org.gnome.gedit.yml @@ -0,0 +1,87 @@ +--- +app-id: org.gnome.gedit +runtime: org.gnome.Platform +runtime-version: master +sdk: org.gnome.Sdk +command: gedit +tags: + - nightly +desktop-file-name-prefix: "(Nightly) " + +finish-args: + - "--share=ipc" + - "--socket=x11" + - "--socket=fallback-x11" + - "--socket=wayland" + - "--metadata=X-DConf=migrate-path=/org/gnome/gedit/" + # Needed at least for the integrated file browser plugin: + - "--filesystem=host" + # For opening files from remote locations (with GVfs): + - "--talk-name=org.gtk.vfs.*" + +build-options: + cflags: "-O2 -g" + cxxflags: "-O2 -g" + env: + V: '1' + +cleanup: + - "/include" + - "/lib/pkgconfig" + - "/share/pkgconfig" + - "/share/aclocal" + - "/man" + - "/share/man" + - "/share/gtk-doc" + - "/share/vala" + - "/share/gir-1.0" + - "*.la" + - "*.a" + +modules: + - name: libpeas + buildsystem: meson + config-opts: + - "-Dlua51=false" + - "-Dvapi=true" + - "-Ddemos=false" + - "-Dglade_catalog=false" + sources: + - type: archive + url: https://download.gnome.org/sources/libpeas/1.26/libpeas-1.26.0.tar.xz + sha256: a976d77e20496479a8e955e6a38fb0e5c5de89cf64d9f44e75c2213ee14f7376 + + - name: gspell + cleanup: + - "/bin" + sources: + - type: archive + url: https://download.gnome.org/sources/gspell/1.8/gspell-1.8.4.tar.xz + sha256: cf4d16a716e813449bd631405dc1001ea89537b8cdae2b8abfb3999212bd43b4 + + - name: amtk + sources: + - type: archive + url: https://download.gnome.org/sources/amtk/5.2/amtk-5.2.0.tar.xz + sha256: 820545bb4cf87ecebc2c3638d6b6e58b8dbd60a419a9b43cf020124e5dad7078 + + - name: tepl + buildsystem: meson + sources: + - type: git + url: https://gitlab.gnome.org/GNOME/tepl.git + + - name: gedit + buildsystem: meson + sources: + - type: git + url: https://gitlab.gnome.org/GNOME/gedit.git + # To build a local branch, comment out 'url' and uncomment: + # path: ../../ + # branch: wip/misc + + - name: gedit-plugins + buildsystem: meson + sources: + - type: git + url: https://gitlab.gnome.org/GNOME/gedit-plugins.git diff --git a/build-aux/meson/post_install.py b/build-aux/meson/post_install.py new file mode 100755 index 0000000..15b7838 --- /dev/null +++ b/build-aux/meson/post_install.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python3 + +import os +import subprocess +import sys + +libdir = sys.argv[1] +datadir = sys.argv[2] + +# Packaging tools define DESTDIR and this isn't needed for them +if 'DESTDIR' not in os.environ: + print('Compiling gsettings schemas...') + subprocess.call(['glib-compile-schemas', + os.path.join(datadir, 'glib-2.0', 'schemas')]) + + print('Updating icon cache...') + subprocess.call(['gtk-update-icon-cache', '-qtf', + os.path.join(datadir, 'icons', 'hicolor')]) + + print('Updating desktop database...') + subprocess.call(['update-desktop-database', '-q', + os.path.join(datadir, 'applications')]) + + print('Compiling python modules...') + subprocess.call([sys.executable, '-m', 'compileall', '-f', '-q', + os.path.join(libdir, 'gedit', 'plugins')]) + + print('Compiling python modules (optimized versions) ...') + subprocess.call([sys.executable, '-O', '-m', 'compileall', '-f', '-q', + os.path.join(libdir, 'gedit', 'plugins')]) diff --git a/build-aux/osx/README b/build-aux/osx/README new file mode 100644 index 0000000..fa962d7 --- /dev/null +++ b/build-aux/osx/README @@ -0,0 +1,24 @@ +This document briefly describes how to build and package gedit for OS X. + +Building gedit for OS X +============================================================================= +Please see build/README for more details on building gedit + + +Making a gedit bundle +============================================================================= + +You can make a gedit bundle (i.e. a gedit.app) with a script provided by +gedit. + + ./make bundle + +Note that in order for this to succeed, you will need to have built gedit +successfully before. If successful, you will now have a gedit.app bundle +in this directory. Similarly, if you want to build the final dmg image, +you can use: + + ./make dmg + +Again, for this to succeed you first need to have successfully built the +bundle. diff --git a/build-aux/osx/build/.gitignore b/build-aux/osx/build/.gitignore new file mode 100644 index 0000000..fdd88bc --- /dev/null +++ b/build-aux/osx/build/.gitignore @@ -0,0 +1,5 @@ +.build +.home +updater/.cache +updater/.gtk-osx +updater/modulesets diff --git a/build-aux/osx/build/README b/build-aux/osx/build/README new file mode 100644 index 0000000..79c0d4a --- /dev/null +++ b/build-aux/osx/build/README @@ -0,0 +1,131 @@ +This is a guide to building gedit on OS X. This guide assumes that you are +already familiar with building gtk+ software on OS X (natively) using jhbuild. +Please make sure to read https://live.gnome.org/GTK%2B/OSX/Building +before proceeding. + + +Building gedit for OS X +============================================================================= + +Since version 3.14, gedit hosts a self-contained, in-tree guided build +process using jhbuild. The ./build script in this directory is the main +entry-point which handles: + +1) Initializing the build environment (installing jhbuild in-tree) +2) Bootstrapping and building all the necessary dependencies +3) Simple wrapper around common jhbuild tasks (build, make, shell, etc.) + +The basic build procedure in a pristine environment is: + + ./build all + +This will first initialize the build environment (if necessary), install +jhbuild if needed, bootstrap jhbuild and then continue to build gedit and +all its dependencies. Each of these stages can also be invoked manually: + + ./build init + ./build bootstrap + ./build build + +Note that at the moment of writing, ./build bootstrap is not entirely +equivalent to ./build jh bootstrap. The reason is that there is a problem +when building python as part of the bootstrap process. As a workaround, +python is actually built twice during bootstrap. + +By default, ./build will build against the 10.7 (Lion) OS X SDK, which +has to be already installed and available at + +$(xcode-select -p)/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk + +Although Xcode 5 does not distribute the 10.7 SDK by default, it can be +easily obtained from previous Xcode versions. To do so, find the last +version of Xcode to support a given SDK and download it from apple +developer downloads [1]. Open the package, and without installing, +extract the SDK directory and copy it to the right location. For 10.7, +the latest Xcode version to support it is 4.3.3, which can be downloaded +at [2] (links subject to change). + +It is also possible to build gedit against a different SDK by exporting +the GEDIT_SDK environment variable (defaults to 10.7). For example: + + export GEDIT_SDK=10.9 + ./build all + +Would build gedit against the 10.9 SDK and install in .build/10.9 +(see Directory structure below). + +Note that building gedit for OS X, although made easier by use of this +./build script, often still requires expertise and manual intervention +when things go wrong. If this is the case, please feel free to visit the +#gedit channel on GIMPnet IRC or send an e-mail to the gedit mailing list +(gedit-list@gnome.org). + + +Directory structure +============================================================================= +The general structure is as follows: + + /.build + root jhbuild directory. This directory will contain all the sources, + checkout directories and install locations during building. + + /$SDK : separated by SDK version + /source : checkout directory for all the sources + /inst : install directory for $SDK + + /pkgs : download location for tarballs + + /.home + an automatically created fake $HOME directory. This is used to create + an artificial separation for jhbuild such that it will not pick up on + possible existing .jhbuildrc files. This directory is also used to + install jhbuild itself. + + /config + /jhbuildrc-gedit : the gedit specific jhbuild environment configuration + + /modulesets + the jhbuild modulesets used to build gedit. Note that these are + self-contained and are updated each release. + + /patches : directory with jhbuild patches + /bootstrap.modules : the bootstrap modules + /gedit.modules : modules for gedit and all its dependencies + + /updater + /gedit-bootstrap-overrides.modules + jhbuild moduleset overrides for bootstrap + + /gedit-overrides.modules + jhbuild moduleset overrides for gedit + + /update_modulesets.py + an application which is used to update and merge jhbuild moduleset + files. The use of this application is two-fold: + + 1) It merges the override module files with the latest gtk-osx stable + modulesets, allowing for clean separation. The overrides files + contain only gedit specific changes on top of the gtk-osx stable + modulesets to obtain a gedit build. Additionally, it creates a + single moduleset file with only modules required for gedit in it and + copies any required patches specified in the moduleset to a local + directory. + + 2) It automatically looks for new versions (stable and unstable) of + GNOME libraries and queries whether or not to update modules that + have newer versions than those already in the moduleset. This makes + it easier to update to next-release versions of all required + dependencies. + + The output of running this application is a /modulesets directory + which is a self-contained modulesets/patches jhbuild configuration. + It can be copied to the parent directory to replace the previous + modulesets (which were generated in the same manner). + + Versions queried from GNOME ftp and downloaded patches are cached by + default in /.cache. Make sure to remove this directory (or parts of + it) to get up-to-date. + + +[1] https://developer.apple.com/downloads +[2] http://adcdownload.apple.com/Developer_Tools/xcode_4.3.3_for_lion/xcode_4.3.3_for_lion.dmg diff --git a/build-aux/osx/build/build b/build-aux/osx/build/build new file mode 100755 index 0000000..112b57a --- /dev/null +++ b/build-aux/osx/build/build @@ -0,0 +1,336 @@ +#!/bin/bash + +pushd $(dirname "$0") > /dev/null +D=$(pwd -P) +popd > /dev/null + +BASED="$D/.build" +HOMED="$D/.home" + +SOURCED="$HOMED/source" +INSTALLD="$HOMED/.local" + +GTK_OSX_BASE_URL="https://git.gnome.org/browse/gtk-osx/plain/" +JHBUILD_SOURCED="$SOURCED/jhbuild" + +ME="$0" + +if [ -z "$GEDIT_SDK" ]; then + export GEDIT_SDK=10.7 +fi + +export PATH="$INSTALLD/bin:$PATH" + +function do_exit() { + printf "$@" + echo "" + exit 1 +} + +if [ ! which git &>/dev/null ]; then + do_exit "You need to have git installed to build gedit for OS X" +fi + +if [ ! xcodebuild -version &>/dev/null ]; then + do_exit "You need to have Xcode installed to build gedit for OS X" +fi + +xcodebase=$(xcode-select -p) +sdkdir="$xcodebase/Platforms/MacOSX.platform/Developer/SDKs/MacOSX$GEDIT_SDK.sdk" + +if [ ! -d "$sdkdir" ]; then + do_exit "SDK base directory for $GEDIT_SDK not found. Please make sure to install the SDK at $sdkdir" +fi + +function checkout_jhbuild() { + #JHBUILD_REVISION=$(curl -ks "$GTK_OSX_BASE_URL/jhbuild-revision") + + #if test x"$JHBUILD_REVISION" = x; then + # do_exit "Could not find jhbuild revision to use." + #fi + + mkdir -p $(dirname "$JHBUILD_SOURCED") + + git clone https://gitlab.gnome.org/GNOME/jhbuild.git "$JHBUILD_SOURCED" || do_exit "Failed to clone jhbuild." + #git --work-tree "$JHBUILD_SOURCED" checkout -b stable $JHBUILD_REVISION || do_exit "Failed to checkout stable jhbuild revision." +} + +function build_jhbuild() { + echo "Building jhbuild..." + (cd "$JHBUILD_SOURCED" && ./autogen.sh --prefix="$INSTALLD" && make -f Makefile.plain DISABLE_GETTEXT=1 install) >/dev/null || do_exit "Jhbuild installation failed"; + + rm -f "$INSTALLD/bin/python2" + + cat << PYTHON2 > "$INSTALLD/bin/python2" +#!/bin/bash + +exec /usr/bin/python "\$@" +PYTHON2 + chmod +x "$INSTALLD/bin/python2" +} + +function setup_jhbuildrc() { + echo "Installing jhbuild configuration..." + + mkdir -p "$HOMED" + curl -ks "$GTK_OSX_BASE_URL/jhbuildrc-gtk-osx" | \ + sed -e 's/^.*PYTHONPATH.*$//g' -e 's/^.*PYTHON_SITE_PACKAGES.*$//g' > "$HOMED/.jhbuildrc" || do_exit "Failed to get jhbuildrc." + + rm -f "$HOMED/.jhbuildrc-gedit" + ln -s "$D/config/jhbuildrc-gedit" "$HOMED/.jhbuildrc-gedit" || exit 1 +} + +function init_help_short() { + echo "Initialize the in-tree build environment (installs jhbuild)" +} + +function cmd_init() { + mkdir -p "$SOURCED" + + if [ ! -d "$JHBUILD_SOURCED" ]; then + checkout_jhbuild + fi + + build_jhbuild + setup_jhbuildrc + + rm -f "$BASED/$GEDIT_SDK/source/gedit" + mkdir -p "$BASED/$GEDIT_SDK/source" + ln -s $(cd "$D/../../" && pwd) "$BASED/$GEDIT_SDK/source/gedit" +} + +function bootstrap_help_short() { + echo "Run jhbuild bootstrap" +} + +function cmd_bootstrap() { + # Built python once + cmd_jh bootstrap -q python || exit 1 + + # Built python twice! There is a bug where python somehow manages to link + # its main binary to the system framework library, which then doesn't work... + # Building python again seems to resolve the issue... + cmd_jh bootstrap -q -f -t python python || exit 1 + + # Bootstrap all the rest + cmd_jh bootstrap -q || exit 1 +} + +function jh_help_usage() { + echo "jhbuild-command ..." +} + +function jh_help_short() { + echo "Run jhbuild commands" +} + +function cmd_jh() { + # Setup our jhbuild environment + export GEDIT_OSX_SOURCE_BASE="$D" + export GEDIT_OSX_BUILD_BASE="$BASED" + export __GEDIT_OSX_OLD_HOME="$HOME" + export HOME="$HOMED" + export JHB=gedit + + # We set this because without it, GNU gettext intltool or whatever the cause + # may be, will set DATADIRNAME=lib during configure because gettext is not part + # of libc on OS X. The result is that translations would be installed in lib/ + # instead of share/ and would not get picked up. + export DATADIRNAME=share + + "$INSTALLD/bin/jhbuild" -f "$HOMED/.jhbuildrc" "$@" +} + +function dbg_help_usage() { + echo "build command ..." +} + +function dbg_help_short() { + echo "Run remaining build commands in a debug environment" +} + +function cmd_dbg() { + export GEDIT_OSX_DEBUG=1 + _process "$@" +} + +function shell_help_short() { + echo "Start the jhbuild shell (shorthand for jh shell)" +} + +function cmd_shell() { + cmd_jh shell +} + +function make_help_usage() { + echo "module-source-directory" +} + +function make_help_short() { + echo "Run jhbuild make at the provided source directory" +} + +function cmd_make() { + cd "$BASED/$GEDIT_SDK/source/$1" && cmd_jh make +} + +function run_help_usage() { + echo "program ..." +} + +function run_help_short() { + echo "Run the provided program in the jhbuild environment (shorthand for jh run)" +} + +function cmd_run() { + cmd_jh run "$@" +} + +function env_help_short() { + echo "Obtain certain environment paths" +} + +function cmd_env() { + vars=(source inst bin home local-bin) + + case "$1" in + source) + echo "$BASED/$GEDIT_SDK/source" + ;; + inst) + echo "$BASED/$GEDIT_SDK/inst" + ;; + bin) + echo "$BASED/$GEDIT_SDK/inst/bin" + ;; + home) + echo "$HOMED" + ;; + local-bin) + echo "$HOMED/.local/bin" + ;; + "") + for v in "${vars[@]}"; do + u=$(echo -n "$v" | tr '-' '_') + echo -n "$u=" + cmd_env "$v" + done + ;; + *) + varnames=$(printf ", \033[1m%s\033[0m" "${vars[@]}") + varnames=${varnames:2} + + do_exit "Unknown environment variable \033[1m$1\033[0m, available variables are: $varnames" + ;; + esac +} + +function all_help_short() { + echo "Runs the init, bootstrap and build commands" +} + +function cmd_all() { + if [ ! -d "$JHBUILD_SOURCED" ]; then + cmd_init || exit 1 + fi + + if [ ! -f "$BASED/$GEDIT_SDK/inst/bin/python" ]; then + cmd_bootstrap || exit 1 + fi + + cmd_jh build -q +} + +function help_help_short() { + echo "Shows this help message" +} + +function cmd_help() { + if [ -z "$1" ]; then + echo "Usage: $ME [command]" + echo "" + echo "Available commands:" + echo "" + + for cmd in "${commands[@]}"; do + printf " \033[1m$cmd\x1B[0m " + + l=${#cmd} + let d="$commandsmaxlen - $l + 1" + + printf "%${d}s" "" + echo -n "- " + + if [[ $(type -t "${cmd}_help_short") = "function" ]]; then + "${cmd}_help_short" + else + echo "" + fi + done + + echo "" + else + cmd="cmd_$1" + + if [[ $(type -t "$cmd") != "function" ]]; then + do_exit "Invalid command \033[1m$1\033[0m, available commands are: $cmds" + fi + + printf "Usage: $ME \033[1m$1\033[0m " + + if [[ $(type -t "$1_help_usage") = "function" ]]; then + "$1_help_usage" + else + echo "" + fi + + echo "" + + if [[ $(type -t "$1_help_long") != "function" ]]; then + "$1_help_short" + else + "$1_help_long" + fi + fi +} + +commands=() +commandsmaxlen=0 + +while read line +do + cmd=${line#declare -f } + + if [[ "$cmd" = cmd_* ]]; then + cname=${cmd#cmd_} + + commands+=($cname) + + l=${#cname} + + if [[ $l > $commandsmaxlen ]]; then + commandsmaxlen=$l + fi + fi +done < <(declare -F) + +cmds=$(printf ", \033[1m%s\033[0m" "${commands[@]}") +cmds=${cmds:2} + +function _process() { + if [ -z "$1" ]; then + cmd_help + exit 0 + fi + + cmd="cmd_$1" + + if [[ $(type -t "$cmd") != "function" ]]; then + do_exit "Invalid command $1, available commands are: $cmds" + fi + + shift 1 + "$cmd" "$@" +} + +_process "$@" diff --git a/build-aux/osx/build/config/jhbuildrc-gedit b/build-aux/osx/build/config/jhbuildrc-gedit new file mode 100644 index 0000000..46ca950 --- /dev/null +++ b/build-aux/osx/build/config/jhbuildrc-gedit @@ -0,0 +1,40 @@ +# -*- mode: python -*- + +import sys, os + +_gsdk = os.environ.get('GEDIT_SDK', None) + +if not _gsdk: + sys.stderr.write("No GEDIT_SDK environment given. Please provide 10.x\n") + sys.exit(1) + +_basedir = os.environ['GEDIT_OSX_BUILD_BASE'] + +if not _basedir: + sys.stderr.write("No GEDIT_OSX_BASE environment given. Please provide the base build directory\n") + sys.exit(1) + +_sourcedir = os.environ['GEDIT_OSX_SOURCE_BASE'] + +if not _sourcedir: + sys.stderr.write("No GEDIT_OSX_SOURCE_BASE environment given. Please provide the base source directory\n") + sys.exit(1) + +checkoutroot = os.path.join(_basedir, _gsdk, "source") +prefix = os.path.join(_basedir, _gsdk, "inst") +tarballdir = os.path.join(_basedir, "pkgs") + +# Main setup +setup_sdk(target=_gsdk, sdk_version=_gsdk, architectures=['x86_64']) + +if 'GEDIT_OSX_DEBUG' in os.environ: + setup_debug() +else: + setup_release() + +# Main module set +modulesets_dir = os.path.join(_sourcedir, "modulesets") +moduleset = "gedit.modules" +modules = ["gedit-meta"] + +os.environ['HOME'] = os.environ['__GEDIT_OSX_OLD_HOME'] diff --git a/build-aux/osx/build/modulesets/bootstrap.modules b/build-aux/osx/build/modulesets/bootstrap.modules new file mode 100644 index 0000000..e6dfdc5 --- /dev/null +++ b/build-aux/osx/build/modulesets/bootstrap.modules @@ -0,0 +1,249 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build-aux/osx/build/modulesets/gedit.modules b/build-aux/osx/build/modulesets/gedit.modules new file mode 100644 index 0000000..f8497b9 --- /dev/null +++ b/build-aux/osx/build/modulesets/gedit.modules @@ -0,0 +1,553 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build-aux/osx/build/modulesets/patches/berkeleydb-nonsrctree/atomic.patch b/build-aux/osx/build/modulesets/patches/berkeleydb-nonsrctree/atomic.patch new file mode 100644 index 0000000..398aa1d --- /dev/null +++ b/build-aux/osx/build/modulesets/patches/berkeleydb-nonsrctree/atomic.patch @@ -0,0 +1,20 @@ +--- src/dbinc/atomic.h 2013-03-12 14:07:22.000000000 -0400 ++++ src/dbinc/atomic.h.change 2013-03-12 14:06:35.000000000 -0400 +@@ -144,7 +144,7 @@ + #define atomic_inc(env, p) __atomic_inc(p) + #define atomic_dec(env, p) __atomic_dec(p) + #define atomic_compare_exchange(env, p, o, n) \ +- __atomic_compare_exchange((p), (o), (n)) ++ __atomic_compare_exchange_db((p), (o), (n)) + static inline int __atomic_inc(db_atomic_t *p) + { + int temp; +@@ -176,7 +176,7 @@ + * http://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html + * which configure could be changed to use. + */ +-static inline int __atomic_compare_exchange( ++static inline int __atomic_compare_exchange_db( + db_atomic_t *p, atomic_value_t oldval, atomic_value_t newval) + { + atomic_value_t was; diff --git a/build-aux/osx/build/modulesets/patches/berkeleydb/atomic.patch b/build-aux/osx/build/modulesets/patches/berkeleydb/atomic.patch new file mode 100644 index 0000000..398aa1d --- /dev/null +++ b/build-aux/osx/build/modulesets/patches/berkeleydb/atomic.patch @@ -0,0 +1,20 @@ +--- src/dbinc/atomic.h 2013-03-12 14:07:22.000000000 -0400 ++++ src/dbinc/atomic.h.change 2013-03-12 14:06:35.000000000 -0400 +@@ -144,7 +144,7 @@ + #define atomic_inc(env, p) __atomic_inc(p) + #define atomic_dec(env, p) __atomic_dec(p) + #define atomic_compare_exchange(env, p, o, n) \ +- __atomic_compare_exchange((p), (o), (n)) ++ __atomic_compare_exchange_db((p), (o), (n)) + static inline int __atomic_inc(db_atomic_t *p) + { + int temp; +@@ -176,7 +176,7 @@ + * http://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html + * which configure could be changed to use. + */ +-static inline int __atomic_compare_exchange( ++static inline int __atomic_compare_exchange_db( + db_atomic_t *p, atomic_value_t oldval, atomic_value_t newval) + { + atomic_value_t was; diff --git a/build-aux/osx/build/modulesets/patches/enchant/enchant-applespell.patch b/build-aux/osx/build/modulesets/patches/enchant/enchant-applespell.patch new file mode 100644 index 0000000..f6f1f65 --- /dev/null +++ b/build-aux/osx/build/modulesets/patches/enchant/enchant-applespell.patch @@ -0,0 +1,368 @@ +--- a/configure.in (revision 30591) ++++ b/configure.in (working copy) +@@ -33,4 +33,5 @@ + AC_PROG_CC + AC_PROG_CPP ++AC_PROG_OBJC + AC_PROG_INSTALL + AC_PROG_LN_S +--- a/src/applespell/Makefile.am 2010-04-01 22:53:37.000000000 +0200 ++++ b/src/applespell/Makefile.am 2012-01-11 22:42:13.000000000 +0100 +@@ -1,4 +1,13 @@ +-EXTRA_DIST= \ +- applespell_checker.h \ +- applespell_checker.mm \ +- AppleSpell.config ++target_lib = libenchant_applespell.la ++ ++INCLUDES=-I$(top_srcdir)/src $(ENCHANT_CFLAGS) $(CC_WARN_CFLAGS) -DXP_TARGET_COCOA -xobjective-c -D_ENCHANT_BUILD=1 ++ ++applespell_LTLIBRARIES = $(target_lib) ++applespelldir= $(libdir)/enchant ++ ++libenchant_applespell_la_LIBADD= $(ENCHANT_LIBS) -lobjc $(top_builddir)/src/libenchant.la ++libenchant_applespell_la_LDFLAGS = -module -avoid-version -no-undefined -framework Cocoa ++libenchant_applespell_la_SOURCES = applespell_provider.m ++libenchant_applespell_la_LIBTOOLFLAGS = --tag=CC ++ ++libenchant_applespell_lalibdir=$(libdir)/enchant +--- a/src/applespell/applespell_provider.m 2012-01-11 22:46:35.000000000 +0100 ++++ b/src/applespell/applespell_provider.m 2012-01-11 22:39:17.000000000 +0100 +@@ -0,0 +1,337 @@ ++/* vim: set sw=8: -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ ++/* enchant ++ * Copyright (C) 2004 Remi Payette ++ * Copyright (C) 2004 Francis James Franklin ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 2 ++ * of the License, or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA ++ * 02110-1301, USA. ++ */ ++ ++#include ++#include ++#include ++#include ++ ++#include "enchant-provider.h" ++ ++#ifdef __cplusplus ++extern "C" ++{ ++#endif ++ ++ENCHANT_MODULE_EXPORT (EnchantProvider *) ++init_enchant_provider (void); ++ ++ENCHANT_MODULE_EXPORT (void) ++configure_enchant_provider (EnchantProvider *provider, const gchar *module_dir); ++ ++#ifdef __cplusplus ++} ++#endif ++ ++ENCHANT_PLUGIN_DECLARE("AppleSpell") ++ ++typedef struct ++{ ++ NSSpellChecker *checker; ++ NSString *language; ++} Dictionary; ++ ++static Dictionary * ++dictionary_new (NSSpellChecker *checker, ++ NSString *language) ++{ ++ Dictionary *ret; ++ ++ ret = g_slice_new (Dictionary); ++ ++ ret->checker = checker; ++ ret->language = language; ++ ++ return ret; ++} ++ ++static void ++dictionary_free (Dictionary *dictionary) ++{ ++ [dictionary->language release]; ++ g_slice_free (Dictionary, dictionary); ++} ++ ++static gchar ** ++applespell_dict_suggest (EnchantDict *dict, ++ const gchar * const word, ++ size_t len, ++ size_t *out_n_suggs) ++{ ++ NSAutoreleasePool *pool; ++ gchar **ret = NULL; ++ NSString *str; ++ Dictionary *d; ++ NSArray *words; ++ NSRange range; ++ guint i = 0; ++ ++ pool = [[NSAutoreleasePool alloc] init]; ++ ++ d = dict->user_data; ++ ++ str = [[NSString alloc] initWithBytes:word length:len encoding:NSUTF8StringEncoding]; ++ ++ range.location = 0; ++ range.length = [str length]; ++ ++#if MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_5 ++ words = [d->checker guessesForWordRange:range ++ inString:str ++ language:d->language ++ inSpellDocumentWithTag:0]; ++#else ++ [d->checker setLanguage:d->language]; ++ words = [d->checker guessesForWord:str]; ++#endif ++ ++ *out_n_suggs = [words count]; ++ ++ ret = g_new0 (gchar *, *out_n_suggs + 1); ++ ++ for (i = 0; i < [words count]; ++i) ++ { ++ ret[i] = g_strdup ([[words objectAtIndex:i] UTF8String]); ++ } ++ ++ [str release]; ++ [pool release]; ++ ++ return ret; ++} ++ ++static gint ++applespell_dict_check (EnchantDict *dict, ++ const gchar * const word, ++ size_t len) ++{ ++ NSAutoreleasePool *pool; ++ gint result = 0; ++ NSString *str; ++ Dictionary *d; ++ NSRange range; ++ ++ pool = [[NSAutoreleasePool alloc] init]; ++ ++ d = dict->user_data; ++ ++ str = [[NSString alloc] initWithBytes:word length:len encoding:NSUTF8StringEncoding]; ++ ++ range = [d->checker checkSpellingOfString:str ++ startingAt:0 ++ language:d->language ++ wrap:true ++ inSpellDocumentWithTag:0 ++ wordCount:NULL]; ++ ++ result = range.length > 0 ? 1 : 0; ++ ++ [str release]; ++ [pool release]; ++ ++ return result; ++} ++ ++static EnchantDict * ++applespell_provider_request_dict (EnchantProvider *provider, ++ const char * const tag) ++{ ++ NSAutoreleasePool *pool; ++ EnchantDict *dict; ++ NSString *str; ++ ++ pool = [[NSAutoreleasePool alloc] init]; ++ str = [[NSString alloc] initWithUTF8String:tag]; ++ ++ dict = g_new0 (EnchantDict, 1); ++ ++ dict->check = applespell_dict_check; ++ dict->suggest = applespell_dict_suggest; ++ ++ dict->user_data = dictionary_new (provider->user_data, ++ str); ++ ++ [str retain]; ++ ++ [pool release]; ++ return dict; ++} ++ ++static void ++applespell_provider_dispose_dict (EnchantProvider *provider, ++ EnchantDict *dict) ++{ ++ NSAutoreleasePool *pool; ++ ++ pool = [[NSAutoreleasePool alloc] init]; ++ ++ dictionary_free (dict->user_data); ++ g_free (dict); ++ ++ [pool release]; ++} ++ ++#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_5 ++static gchar const *available_languages[] = { ++ "en", ++ "en_GB", ++ "en_AU", ++ "de", ++ "fr", ++ "nl", ++ "pl", ++ NULL ++}; ++ ++#endif ++ ++static gint ++applespell_provider_dictionary_exists (EnchantProvider *provider, ++ const gchar * const tag) ++{ ++ NSAutoreleasePool *pool; ++ gint result = 0; ++ NSSpellChecker *checker; ++#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5 ++ NSArray *languages; ++ guint i; ++#else ++ gchar const **ptr; ++#endif ++ ++ pool = [[NSAutoreleasePool alloc] init]; ++ ++ checker = provider->user_data; ++ ++#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5 ++ languages = [checker availableLanguages]; ++ ++ for (i = 0; i < [languages count]; ++i) ++ { ++ if (g_strcmp0 (tag, [[languages objectAtIndex:i] UTF8String]) == 0) ++ { ++ result = 1; ++ break; ++ } ++ } ++#else ++ ptr = available_languages; ++ ++ while (ptr && *ptr) ++ { ++ if (g_strcmp0 (tag, *ptr) == 0) ++ { ++ result = 1; ++ break; ++ } ++ ++ptr; ++ } ++#endif ++ ++ [pool release]; ++ ++ return result; ++} ++ ++static void ++applespell_provider_dispose (EnchantProvider *provider) ++{ ++ g_free (provider); ++} ++ ++static const gchar * ++applespell_provider_identify (EnchantProvider *provider) ++{ ++ return "AppleSpell"; ++} ++ ++static const gchar * ++applespell_provider_describe (EnchantProvider *provider) ++{ ++ return "AppleSpell Provider"; ++} ++ ++static gchar ** ++applespell_provider_list_dicts (EnchantProvider *provider, ++ size_t *out_n_dicts) ++{ ++ NSSpellChecker *checker; ++ NSAutoreleasePool *pool; ++ gchar **ret = NULL; ++#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5 ++ NSArray *languages; ++ guint i = 0; ++#endif ++ ++ pool = [[NSAutoreleasePool alloc] init]; ++ ++ checker = provider->user_data; ++ ++#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5 ++ languages = [checker availableLanguages]; ++ *out_n_dicts = [languages count]; ++ ++ ret = g_new0 (gchar *, *out_n_dicts + 1); ++ ++ for (i = 0; i < [languages count]; ++i) ++ { ++ ret[i] = g_strdup ([[languages objectAtIndex:i] UTF8String]); ++ } ++#else ++ ret = g_strdupv ((gchar **)available_languages); ++#endif ++ ++ [pool release]; ++ ++ return ret; ++} ++ ++ENCHANT_MODULE_EXPORT (EnchantProvider *) ++init_enchant_provider (void) ++{ ++ NSAutoreleasePool *pool; ++ EnchantProvider *provider; ++ ++ pool = [[NSAutoreleasePool alloc] init]; ++ ++ provider = g_new0 (EnchantProvider, 1); ++ ++ provider->dispose = applespell_provider_dispose; ++ provider->request_dict = applespell_provider_request_dict; ++ provider->dispose_dict = applespell_provider_dispose_dict; ++ provider->dictionary_exists = applespell_provider_dictionary_exists; ++ provider->identify = applespell_provider_identify; ++ provider->describe = applespell_provider_describe; ++ provider->list_dicts = applespell_provider_list_dicts; ++ ++ provider->user_data = [NSSpellChecker sharedSpellChecker]; ++ ++ [pool release]; ++ ++ return provider; ++} ++ ++ENCHANT_MODULE_EXPORT (void) ++configure_enchant_provider (EnchantProvider *provider, ++ const gchar *module_dir) ++{ ++ return; ++} diff --git a/build-aux/osx/build/modulesets/patches/enchant/enchant-gsize.patch b/build-aux/osx/build/modulesets/patches/enchant/enchant-gsize.patch new file mode 100644 index 0000000..5bfba14 --- /dev/null +++ b/build-aux/osx/build/modulesets/patches/enchant/enchant-gsize.patch @@ -0,0 +1,97 @@ +--- a/src/ispell/ispell_checker.cpp Thu Apr 1 13:53:37 2010 ++++ b/src/ispell/ispell_checker.cpp Mon Feb 24 15:35:49 2014 +@@ -162,7 +162,7 @@ + else + { + /* convert to 8bit string and null terminate */ +- size_t len_in, len_out, result; ++ gsize len_in, len_out, result; + // the 8bit encodings use precomposed forms + char *normalizedWord = g_utf8_normalize (utf8Word, length, G_NORMALIZE_NFC); + char *In = normalizedWord; +@@ -172,7 +172,7 @@ + len_out = sizeof( szWord ) - 1; + result = g_iconv(m_translate_in, &In, &len_in, &Out, &len_out); + g_free(normalizedWord); +- if ((size_t)-1 == result) ++ if ((gsize)-1 == result) + return false; + *Out = '\0'; + } +@@ -210,7 +210,7 @@ + { + /* convert to 8bit string and null terminate */ + +- size_t len_in, len_out, result; ++ gsize len_in, len_out, result; + // the 8bit encodings use precomposed forms + char *normalizedWord = g_utf8_normalize (utf8Word, length, G_NORMALIZE_NFC); + char *In = normalizedWord; +@@ -219,7 +219,7 @@ + len_out = sizeof( word8 ) - 1; + result = g_iconv(m_translate_in, &In, &len_in, &Out, &len_out); + g_free(normalizedWord); +- if ((size_t)-1 == result) ++ if ((gsize)-1 == result) + return NULL; + *Out = '\0'; + } +@@ -252,13 +252,13 @@ + { + /* convert to 32bit string and null terminate */ + +- size_t len_in, len_out; ++ gsize len_in, len_out; + char *In = m_possibilities[c]; + char *Out = reinterpret_cast(utf8Sugg); + + len_in = l; + len_out = INPUTWORDLEN + MAXAFFIXLEN; +- if ((size_t)-1 == g_iconv(m_translate_out, &In, &len_in, &Out, &len_out)) { ++ if ((gsize)-1 == g_iconv(m_translate_out, &In, &len_in, &Out, &len_out)) { + *out_n_suggestions = c; + return sugg_arr; + } +--- a/src/myspell/myspell_checker.cpp Thu Apr 1 13:53:37 2010 ++++ b/src/myspell/myspell_checker.cpp Mon Feb 24 15:37:56 2014 +@@ -159,11 +159,11 @@ + char *in = normalizedWord; + char word8[MAXWORDLEN + 1]; + char *out = word8; +- size_t len_in = strlen(in); +- size_t len_out = sizeof( word8 ) - 1; +- size_t result = g_iconv(m_translate_in, &in, &len_in, &out, &len_out); ++ gsize len_in = strlen(in); ++ gsize len_out = sizeof( word8 ) - 1; ++ gsize result = g_iconv(m_translate_in, &in, &len_in, &out, &len_out); + g_free(normalizedWord); +- if ((size_t)-1 == result) ++ if ((gsize)-1 == result) + return false; + *out = '\0'; + if (myspell->spell(word8)) +@@ -185,11 +185,11 @@ + char *in = normalizedWord; + char word8[MAXWORDLEN + 1]; + char *out = word8; +- size_t len_in = strlen(in); +- size_t len_out = sizeof(word8) - 1; +- size_t result = g_iconv(m_translate_in, &in, &len_in, &out, &len_out); ++ gsize len_in = strlen(in); ++ gsize len_out = sizeof(word8) - 1; ++ gsize result = g_iconv(m_translate_in, &in, &len_in, &out, &len_out); + g_free(normalizedWord); +- if ((size_t)-1 == result) ++ if ((gsize)-1 == result) + return NULL; + + *out = '\0'; +@@ -203,7 +203,7 @@ + len_out = MAXWORDLEN; + char *word = g_new0(char, len_out + 1); + out = reinterpret_cast(word); +- if ((size_t)-1 == g_iconv(m_translate_out, &in, &len_in, &out, &len_out)) { ++ if ((gsize)-1 == g_iconv(m_translate_out, &in, &len_in, &out, &len_out)) { + for (size_t j = i; j < *nsug; j++) + free(sugMS[j]); + free(sugMS); diff --git a/build-aux/osx/build/modulesets/patches/enchant/enchant-relocatable.patch b/build-aux/osx/build/modulesets/patches/enchant/enchant-relocatable.patch new file mode 100644 index 0000000..7e56eb7 --- /dev/null +++ b/build-aux/osx/build/modulesets/patches/enchant/enchant-relocatable.patch @@ -0,0 +1,40 @@ +--- a/src/enchant.c 2010-04-01 22:53:37.000000000 +0200 ++++ b/src/enchant.c 2014-08-26 21:32:21.000000000 +0200 +@@ -210,6 +210,13 @@ + char * module_dir = NULL; + char * prefix = NULL; + ++ const char *envdir = g_getenv ("ENCHANT_MODULES_DIR"); ++ ++ if (envdir != NULL && *envdir != '\0') ++ { ++ module_dirs = enchant_slist_append_unique_path (module_dirs, g_strdup (envdir)); ++ } ++ + { + char* user_module_dir; + +@@ -239,7 +246,8 @@ + module_dirs = enchant_slist_append_unique_path (module_dirs, module_dir); + + #if defined(ENCHANT_GLOBAL_MODULE_DIR) +- module_dirs = enchant_slist_append_unique_path (module_dirs, g_strdup (ENCHANT_GLOBAL_MODULE_DIR)); ++ if (envdir == NULL || *envdir == '\0') ++ module_dirs = enchant_slist_append_unique_path (module_dirs, g_strdup (ENCHANT_GLOBAL_MODULE_DIR)); + #else + /* Dynamically locate library and search for modules relative to it. */ + prefix = enchant_get_prefix_dir(); +@@ -278,6 +286,13 @@ + if (ordering_dir) + conf_dirs = enchant_slist_append_unique_path (conf_dirs, ordering_dir); + ++ const char *envdir = g_getenv ("ENCHANT_DATA_DIR"); ++ ++ if (envdir != NULL && *envdir != '\0') ++ { ++ conf_dirs = enchant_slist_append_unique_path (conf_dirs, g_strdup (envdir)); ++ } ++ + /* Dynamically locate library and search for files relative to it. */ + prefix = enchant_get_prefix_dir(); + if(prefix) diff --git a/build-aux/osx/build/modulesets/patches/gettext-runtime/gettext-bug33999-stpncpy.patch b/build-aux/osx/build/modulesets/patches/gettext-runtime/gettext-bug33999-stpncpy.patch new file mode 100644 index 0000000..eda2932 --- /dev/null +++ b/build-aux/osx/build/modulesets/patches/gettext-runtime/gettext-bug33999-stpncpy.patch @@ -0,0 +1,63 @@ + +--- a/gettext-tools/libgettextpo/string.in.h Sun Apr 25 02:22:40 2010 ++++ b/gettext-tools/libgettextpo/string.in.h Tue Oct 4 14:36:31 2011 +@@ -229,6 +229,7 @@ + #if @GNULIB_STPNCPY@ + # if @REPLACE_STPNCPY@ + # if !(defined __cplusplus && defined GNULIB_NAMESPACE) ++# undef stpncpy + # define stpncpy rpl_stpncpy + # endif + _GL_FUNCDECL_RPL (stpncpy, char *, + + Rename module 'memxfrm' to 'amemxfrm'. +--- a/gettext-tools/gnulib-lib/string.in.h Mon May 24 02:42:47 2010 ++++ b/gettext-tools/gnulib-lib/string.in.h Tue Oct 4 14:35:46 2011 +@@ -229,6 +229,7 @@ + #if @GNULIB_STPNCPY@ + # if @REPLACE_STPNCPY@ + # if !(defined __cplusplus && defined GNULIB_NAMESPACE) ++# undef stpncpy + # define stpncpy rpl_stpncpy + # endif + _GL_FUNCDECL_RPL (stpncpy, char *, + +--- a/gettext-runtime/gnulib-lib/string.in.h Sun Apr 25 02:20:42 2010 ++++ b/gettext-runtime/gnulib-lib/string.in.h Tue Oct 4 14:34:57 2011 +@@ -229,6 +229,7 @@ + #if @GNULIB_STPNCPY@ + # if @REPLACE_STPNCPY@ + # if !(defined __cplusplus && defined GNULIB_NAMESPACE) ++# undef stpncpy + # define stpncpy rpl_stpncpy + # endif + _GL_FUNCDECL_RPL (stpncpy, char *, +--- a/gettext-tools/configure Sun Jun 6 13:12:20 2010 ++++ b/gettext-tools/configure Tue Oct 4 16:29:27 2011 +@@ -40562,6 +40562,16 @@ + + + ++ ac_fn_c_check_decl "$LINENO" "stpncpy" "ac_cv_have_decl_stpncpy" "$ac_includes_default" ++if test "x$ac_cv_have_decl_stpncpy" = x""yes; then : ++ ac_have_decl=1 ++else ++ ac_have_decl=0 ++fi ++ ++cat >>confdefs.h <<_ACEOF ++#define HAVE_DECL_STPNCPY $ac_have_decl ++_ACEOF + + + +@@ -40606,7 +40616,9 @@ + #include + #include /* for strcpy */ + /* The stpncpy prototype is missing in on AIX 4. */ ++#if !HAVE_DECL_STPNCPY + extern char *stpncpy (char *dest, const char *src, size_t n); ++#endif + int main () { + const char *src = "Hello"; + char dest[10]; diff --git a/build-aux/osx/build/modulesets/patches/gettext-tools/gettext-bug33999-stpncpy.patch b/build-aux/osx/build/modulesets/patches/gettext-tools/gettext-bug33999-stpncpy.patch new file mode 100644 index 0000000..eda2932 --- /dev/null +++ b/build-aux/osx/build/modulesets/patches/gettext-tools/gettext-bug33999-stpncpy.patch @@ -0,0 +1,63 @@ + +--- a/gettext-tools/libgettextpo/string.in.h Sun Apr 25 02:22:40 2010 ++++ b/gettext-tools/libgettextpo/string.in.h Tue Oct 4 14:36:31 2011 +@@ -229,6 +229,7 @@ + #if @GNULIB_STPNCPY@ + # if @REPLACE_STPNCPY@ + # if !(defined __cplusplus && defined GNULIB_NAMESPACE) ++# undef stpncpy + # define stpncpy rpl_stpncpy + # endif + _GL_FUNCDECL_RPL (stpncpy, char *, + + Rename module 'memxfrm' to 'amemxfrm'. +--- a/gettext-tools/gnulib-lib/string.in.h Mon May 24 02:42:47 2010 ++++ b/gettext-tools/gnulib-lib/string.in.h Tue Oct 4 14:35:46 2011 +@@ -229,6 +229,7 @@ + #if @GNULIB_STPNCPY@ + # if @REPLACE_STPNCPY@ + # if !(defined __cplusplus && defined GNULIB_NAMESPACE) ++# undef stpncpy + # define stpncpy rpl_stpncpy + # endif + _GL_FUNCDECL_RPL (stpncpy, char *, + +--- a/gettext-runtime/gnulib-lib/string.in.h Sun Apr 25 02:20:42 2010 ++++ b/gettext-runtime/gnulib-lib/string.in.h Tue Oct 4 14:34:57 2011 +@@ -229,6 +229,7 @@ + #if @GNULIB_STPNCPY@ + # if @REPLACE_STPNCPY@ + # if !(defined __cplusplus && defined GNULIB_NAMESPACE) ++# undef stpncpy + # define stpncpy rpl_stpncpy + # endif + _GL_FUNCDECL_RPL (stpncpy, char *, +--- a/gettext-tools/configure Sun Jun 6 13:12:20 2010 ++++ b/gettext-tools/configure Tue Oct 4 16:29:27 2011 +@@ -40562,6 +40562,16 @@ + + + ++ ac_fn_c_check_decl "$LINENO" "stpncpy" "ac_cv_have_decl_stpncpy" "$ac_includes_default" ++if test "x$ac_cv_have_decl_stpncpy" = x""yes; then : ++ ac_have_decl=1 ++else ++ ac_have_decl=0 ++fi ++ ++cat >>confdefs.h <<_ACEOF ++#define HAVE_DECL_STPNCPY $ac_have_decl ++_ACEOF + + + +@@ -40606,7 +40616,9 @@ + #include + #include /* for strcpy */ + /* The stpncpy prototype is missing in on AIX 4. */ ++#if !HAVE_DECL_STPNCPY + extern char *stpncpy (char *dest, const char *src, size_t n); ++#endif + int main () { + const char *src = "Hello"; + char dest[10]; diff --git a/build-aux/osx/build/modulesets/patches/glib/0001-Bug-724590-GSlice-slab_stack-corruption.patch b/build-aux/osx/build/modulesets/patches/glib/0001-Bug-724590-GSlice-slab_stack-corruption.patch new file mode 100644 index 0000000..0e62201 --- /dev/null +++ b/build-aux/osx/build/modulesets/patches/glib/0001-Bug-724590-GSlice-slab_stack-corruption.patch @@ -0,0 +1,28 @@ +From 1b21a85f1914eecc107319cb94e8c8517291599b Mon Sep 17 00:00:00 2001 +From: John Ralls +Date: Mon, 17 Feb 2014 15:51:38 -0800 +Subject: [PATCH] Bug 724590 - GSlice slab_stack corruption + +Dereference allocation->contention_counters before trying to take the +address of an element. +--- + glib/gslice.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/glib/gslice.c b/glib/gslice.c +index 0563d80..2c5f4fb 100644 +--- a/glib/gslice.c ++++ b/glib/gslice.c +@@ -715,7 +715,8 @@ static ChunkLink* + magazine_cache_pop_magazine (guint ix, + gsize *countp) + { +- g_mutex_lock_a (&allocator->magazine_mutex, &allocator->contention_counters[ix]); ++ guint *counters = allocator->contention_counters; ++ g_mutex_lock_a (&allocator->magazine_mutex, &counters[ix]); + if (!allocator->magazines[ix]) + { + guint magazine_threshold = allocator_get_magazine_threshold (allocator, ix); +-- +1.8.3.rc0 + diff --git a/build-aux/osx/build/modulesets/patches/gobject-introspection/girscanner-objc.patch b/build-aux/osx/build/modulesets/patches/gobject-introspection/girscanner-objc.patch new file mode 100644 index 0000000..76d2bee --- /dev/null +++ b/build-aux/osx/build/modulesets/patches/gobject-introspection/girscanner-objc.patch @@ -0,0 +1,20 @@ +diff --git a/giscanner/scannerlexer.l b/giscanner/scannerlexer.l +index 6a40398..40f1fc0 100644 +--- a/giscanner/scannerlexer.l ++++ b/giscanner/scannerlexer.l +@@ -108,6 +108,7 @@ stringtext ([^\\\"])|(\\.) + "|" { return '|'; } + "~" { return '~'; } + "!" { return '!'; } ++"@" { return '@'; } + "=" { return '='; } + "<" { return '<'; } + ">" { return '>'; } +@@ -199,6 +200,7 @@ stringtext ([^\\\"])|(\\.) + + "\""{stringtext}*"\"" { return STRING; } + "L\""{stringtext}*"\"" { return STRING; } ++"@\""{stringtext}*"\"" { return STRING; } + + . { if (yytext[0]) fprintf(stderr, "%s:%d: unexpected character `%c'\n", scanner->current_filename, lineno, yytext[0]); } + diff --git a/build-aux/osx/build/modulesets/patches/gtk+/0006-Bug-658722-Drag-and-Drop-sometimes-stops-working.patch b/build-aux/osx/build/modulesets/patches/gtk+/0006-Bug-658722-Drag-and-Drop-sometimes-stops-working.patch new file mode 100644 index 0000000..b0a1ef5 --- /dev/null +++ b/build-aux/osx/build/modulesets/patches/gtk+/0006-Bug-658722-Drag-and-Drop-sometimes-stops-working.patch @@ -0,0 +1,274 @@ +From dcd9ab00c64a1df63fd5fa58c2ca25efd9b3e09e Mon Sep 17 00:00:00 2001 +From: John Ralls +Date: Sat, 24 Sep 2011 18:14:09 -0700 +Subject: [PATCH 06/15] Bug 658722 - Drag and Drop sometimes stops working + +First, rather than assuming that there's already an event queued up if +_gdk_quartz_drag_source_context isn't NULL, assume that it just didn't get +cleaned up the last time it ran and abort it. + +This naturally requires implementing gdk_quartz_drag_abort(), so remove the +code from [GdkQuartzNSWindow draggedImage:endedAt:operation:] and move it to +gdkdnd_quartz.c as static void gdk_quartz_drag_end(). Implement both +gdk_quartz_drag_drop() and gdk_quartz_drag_abort() by calling +gdk_quartz_drag_end(). + +Next, try to get rid of the memory cycle between gtk_drag_source_info.context +and _gdk_quartz_drag_source_context (which carries the GtkQuartzDragSourceInfo +struct as qdata). Replace gtk_drag_source_clear_info() by using a +g_object_set_qdata_full() for context in gtk_drag_get_source_context, calling +gtk_drag_source_info_destroy() as the destructor. This eliminates the need to +queue a cleanup idle event. I use g_object_run_dispose() on +_gtk_quartz_drag_source_context to force the deletion of the info stored as +qdata, which in turn unrefs the info->context pointer. Ordinarily this gets +fired off from draggedImage:endedAt:operation:, meaning that the special +dragging CFRunLoop is complete and NSEvents are again flowing, so queuing a +cleanup event isn't necessary. The advantage is that it can also be run from +gdk_drag_abort, so if Gdk thinks there's a drag but CF doesn't all of the +memory still gets cleaned up. +--- + gdk/quartz/GdkQuartzWindow.c | 16 +------- + gdk/quartz/gdkdnd-quartz.c | 35 +++++++++++++-- + gtk/gtkdnd-quartz.c | 96 ++++++++++++++++------------------------- + 3 files changed, 69 insertions(+), 78 deletions(-) + +diff --git a/gdk/quartz/GdkQuartzWindow.c b/gdk/quartz/GdkQuartzWindow.c +index dcd7250..20ed80e 100644 +--- a/gdk/quartz/GdkQuartzWindow.c ++++ b/gdk/quartz/GdkQuartzWindow.c +@@ -560,21 +560,7 @@ update_context_from_dragging_info (id sender) + + - (void)draggedImage:(NSImage *)anImage endedAt:(NSPoint)aPoint operation:(NSDragOperation)operation + { +- GdkEvent event; +- +- g_assert (_gdk_quartz_drag_source_context != NULL); +- +- event.dnd.type = GDK_DROP_FINISHED; +- event.dnd.window = g_object_ref ([[self contentView] gdkWindow]); +- event.dnd.send_event = FALSE; +- event.dnd.context = _gdk_quartz_drag_source_context; +- +- (*_gdk_event_func) (&event, _gdk_event_data); +- +- g_object_unref (event.dnd.window); +- +- g_object_unref (_gdk_quartz_drag_source_context); +- _gdk_quartz_drag_source_context = NULL; ++ gdk_drag_drop (_gdk_quartz_drag_source_context, (guint32)g_get_real_time()); + } + + @end +diff --git a/gdk/quartz/gdkdnd-quartz.c b/gdk/quartz/gdkdnd-quartz.c +index bb70b71..143a8ed 100644 +--- a/gdk/quartz/gdkdnd-quartz.c ++++ b/gdk/quartz/gdkdnd-quartz.c +@@ -111,11 +111,20 @@ GdkDragContext * + gdk_drag_begin (GdkWindow *window, + GList *targets) + { +- g_assert (_gdk_quartz_drag_source_context == NULL); ++ if (_gdk_quartz_drag_source_context != NULL) ++ { ++ /* Something is amiss with the existing drag, so log a message ++ and abort it */ ++ g_warning ("Drag begun with existing context; aborting the preexisting drag"); ++ gdk_drag_abort (_gdk_quartz_drag_source_context, ++ (guint32)g_get_real_time ()); ++ } ++ + + /* Create fake context */ + _gdk_quartz_drag_source_context = gdk_drag_context_new (); + _gdk_quartz_drag_source_context->is_source = TRUE; ++ _gdk_quartz_drag_source_context->source_window = window; + + return _gdk_quartz_drag_source_context; + } +@@ -155,20 +164,36 @@ gdk_drag_find_window_for_screen (GdkDragContext *context, + /* FIXME: Implement */ + } + ++static void ++gdk_quartz_drag_end (GdkDragContext *context) ++{ ++ GdkEvent event; ++ ++ g_assert (context != NULL); ++ event.dnd.type = GDK_DROP_FINISHED; ++ event.dnd.window = g_object_ref (context->source_window); ++ event.dnd.send_event = FALSE; ++ event.dnd.context = context; ++ ++ (*_gdk_event_func) (&event, _gdk_event_data); ++ ++ g_object_run_dispose (_gdk_quartz_drag_source_context); ++ _gdk_quartz_drag_source_context = NULL; ++} ++ + void + gdk_drag_drop (GdkDragContext *context, + guint32 time) + { +- /* FIXME: Implement */ ++ gdk_quartz_drag_end (context); + } + + void + gdk_drag_abort (GdkDragContext *context, + guint32 time) + { +- g_return_if_fail (context != NULL); +- +- /* FIXME: Implement */ ++ g_warning ("Gdk-quartz-drag-drop, aborting\n"); ++ gdk_quartz_drag_end (context); + } + + void +diff --git a/gtk/gtkdnd-quartz.c b/gtk/gtkdnd-quartz.c +index 5688568..be92a22 100644 +--- a/gtk/gtkdnd-quartz.c ++++ b/gtk/gtkdnd-quartz.c +@@ -269,6 +269,39 @@ gtk_drag_dest_info_destroy (gpointer data) + g_free (info); + } + ++static void ++gtk_drag_source_info_destroy (GtkDragSourceInfo *info) ++{ ++ NSPasteboard *pasteboard; ++ NSAutoreleasePool *pool; ++ ++ if (info->icon_pixbuf) ++ g_object_unref (info->icon_pixbuf); ++ ++ g_signal_emit_by_name (info->widget, "drag-end", ++ info->context); ++ ++ if (info->source_widget) ++ g_object_unref (info->source_widget); ++ ++ if (info->widget) ++ g_object_unref (info->widget); ++ ++ gtk_target_list_unref (info->target_list); ++ ++ pool = [[NSAutoreleasePool alloc] init]; ++ ++ /* Empty the pasteboard, so that it will not accidentally access ++ * info->context after it has been destroyed. ++ */ ++ pasteboard = [NSPasteboard pasteboardWithName: NSDragPboard]; ++ [pasteboard declareTypes: nil owner: nil]; ++ ++ [pool release]; ++ ++ g_free (info); ++} ++ + static GtkDragDestInfo * + gtk_drag_get_dest_info (GdkDragContext *context, + gboolean create) +@@ -308,18 +341,14 @@ gtk_drag_get_source_info (GdkDragContext *context, + { + info = g_new0 (GtkDragSourceInfo, 1); + info->context = context; +- g_object_set_qdata (G_OBJECT (context), dest_info_quark, info); ++ g_object_ref (info->context); ++ g_object_set_qdata_full (G_OBJECT (context), dest_info_quark, ++ info, gtk_drag_source_info_destroy); + } + + return info; + } + +-static void +-gtk_drag_clear_source_info (GdkDragContext *context) +-{ +- g_object_set_qdata (G_OBJECT (context), dest_info_quark, NULL); +-} +- + GtkWidget * + gtk_drag_get_source_widget (GdkDragContext *context) + { +@@ -1089,7 +1118,8 @@ gtk_drag_begin_idle (gpointer arg) + [owner release]; + [types release]; + +- if ((nswindow = get_toplevel_nswindow (info->source_widget)) == NULL) ++ if (info->source_widget == NULL ++ || (nswindow = get_toplevel_nswindow (info->source_widget)) == NULL) + return FALSE; + + /* Ref the context. It's unreffed when the drag has been aborted */ +@@ -1108,7 +1138,6 @@ gtk_drag_begin_idle (gpointer arg) + source:nswindow + slideBack:YES]; + +- [info->nsevent release]; + [drag_image release]; + + [pool release]; +@@ -1833,61 +1862,12 @@ gtk_drag_set_default_icon (GdkColormap *colormap, + } + + static void +-gtk_drag_source_info_destroy (GtkDragSourceInfo *info) +-{ +- NSPasteboard *pasteboard; +- NSAutoreleasePool *pool; +- +- if (info->icon_pixbuf) +- g_object_unref (info->icon_pixbuf); +- +- g_signal_emit_by_name (info->widget, "drag-end", +- info->context); +- +- if (info->source_widget) +- g_object_unref (info->source_widget); +- +- if (info->widget) +- g_object_unref (info->widget); +- +- gtk_target_list_unref (info->target_list); +- +- pool = [[NSAutoreleasePool alloc] init]; +- +- /* Empty the pasteboard, so that it will not accidentally access +- * info->context after it has been destroyed. +- */ +- pasteboard = [NSPasteboard pasteboardWithName: NSDragPboard]; +- [pasteboard declareTypes: nil owner: nil]; +- +- [pool release]; +- +- gtk_drag_clear_source_info (info->context); +- g_object_unref (info->context); +- +- g_free (info); +- info = NULL; +-} +- +-static gboolean +-drag_drop_finished_idle_cb (gpointer data) +-{ +- gtk_drag_source_info_destroy (data); +- return FALSE; +-} +- +-static void + gtk_drag_drop_finished (GtkDragSourceInfo *info) + { + if (info->success && info->delete) + g_signal_emit_by_name (info->source_widget, "drag-data-delete", + info->context); + +- /* Workaround for the fact that the NS API blocks until the drag is +- * over. This way the context is still valid when returning from +- * drag_begin, even if it will still be quite useless. See bug #501588. +- */ +- g_idle_add (drag_drop_finished_idle_cb, info); + } + + /************************************************************* diff --git a/build-aux/osx/build/modulesets/patches/gtk+/0008-Implement-GtkDragSourceOwner-pasteboardChangedOwner.patch b/build-aux/osx/build/modulesets/patches/gtk+/0008-Implement-GtkDragSourceOwner-pasteboardChangedOwner.patch new file mode 100644 index 0000000..5b9153c --- /dev/null +++ b/build-aux/osx/build/modulesets/patches/gtk+/0008-Implement-GtkDragSourceOwner-pasteboardChangedOwner.patch @@ -0,0 +1,39 @@ +From 259563958047ccbf6f61578f2d724fc731218304 Mon Sep 17 00:00:00 2001 +From: John Ralls +Date: Sun, 25 Sep 2011 12:03:54 -0700 +Subject: [PATCH 08/15] Implement GtkDragSourceOwner pasteboardChangedOwner: + +--- + gtk/gtkdnd-quartz.c | 11 +++++++++++ + 1 files changed, 11 insertions(+), 0 deletions(-) + +diff --git a/gtk/gtkdnd-quartz.c b/gtk/gtkdnd-quartz.c +index 084aada..21ce11a 100644 +--- a/gtk/gtkdnd-quartz.c ++++ b/gtk/gtkdnd-quartz.c +@@ -149,6 +149,8 @@ struct _GtkDragFindData + guint target_info; + GtkSelectionData selection_data; + ++ g_return_if_fail(info->source_widget != NULL); ++ g_return_if_fail(info->target_list != NULL); + selection_data.selection = GDK_NONE; + selection_data.data = NULL; + selection_data.length = -1; +@@ -171,6 +173,15 @@ struct _GtkDragFindData + } + } + ++- (void)pasteboardChangedOwner: (NSPasteboard*)sender ++{ ++ if (!info) return; ++ ++ info->target_list = NULL; ++ info->widget = NULL; ++ info->source_widget = NULL; ++} ++ + - (id)initWithInfo:(GtkDragSourceInfo *)anInfo + { + self = [super init]; + diff --git a/build-aux/osx/build/modulesets/patches/gtk+/gtk+-2-m4-creation.patch b/build-aux/osx/build/modulesets/patches/gtk+/gtk+-2-m4-creation.patch new file mode 100644 index 0000000..26321b7 --- /dev/null +++ b/build-aux/osx/build/modulesets/patches/gtk+/gtk+-2-m4-creation.patch @@ -0,0 +1,5 @@ +diff -uN gtk+-2.24.21/m4/.bogus gtk+-2.24.21.save/m4/.bogus +--- gtk+-2.24.21/m4/.bogus 2013-10-02 08:01:33.000000000 -0700 ++++ gtk+-2.24.21.save/m4/.bogus 2013-10-02 08:03:40.000000000 -0700 +@@ -0,0 +1 @@ ++A phony file to enable making a patch to create this directory. diff --git a/build-aux/osx/build/modulesets/patches/gtk-mac-integration/0001-Fix-unhandled-exception-from-attempting-to-access-me.patch b/build-aux/osx/build/modulesets/patches/gtk-mac-integration/0001-Fix-unhandled-exception-from-attempting-to-access-me.patch new file mode 100644 index 0000000..87151bb --- /dev/null +++ b/build-aux/osx/build/modulesets/patches/gtk-mac-integration/0001-Fix-unhandled-exception-from-attempting-to-access-me.patch @@ -0,0 +1,39 @@ +From cd3a21ff115cd6c6c11ce39aa62eaf912c78b060 Mon Sep 17 00:00:00 2001 +From: John Ralls +Date: Mon, 30 Dec 2013 12:20:26 -0800 +Subject: [PATCH] Fix unhandled exception from attempting to access menu + itemAtIndex:-1 + +--- + src/cocoa_menu_item.c | 14 +++++++++----- + 1 file changed, 9 insertions(+), 5 deletions(-) + +diff --git a/src/cocoa_menu_item.c b/src/cocoa_menu_item.c +index 793c254..dd46586 100644 +--- a/src/cocoa_menu_item.c ++++ b/src/cocoa_menu_item.c +@@ -550,12 +550,16 @@ cocoa_menu_item_add_item (NSMenu* cocoa_menu, GtkWidget* menu_item, int index) + /* Clean up adjacent separators: */ + if ([cocoa_menu numberOfItems] > 0) + { +- if (([cocoa_menu numberOfItems] == index || +- [[cocoa_menu itemAtIndex: index] isSeparatorItem]) && +- [[cocoa_menu itemAtIndex: index - 1] isSeparatorItem]) ++ if (index == 0) ++ { ++ if ([[cocoa_menu itemAtIndex: index] isSeparatorItem]) ++ [cocoa_menu removeItemAtIndex: index]; ++ } ++ else if (([cocoa_menu numberOfItems] == index || ++ [[cocoa_menu itemAtIndex: index] isSeparatorItem]) && ++ [[cocoa_menu itemAtIndex: index - 1] isSeparatorItem]) + [cocoa_menu removeItemAtIndex: index - 1]; +- if (index == 0 && [[cocoa_menu itemAtIndex: index] isSeparatorItem]) +- [cocoa_menu removeItemAtIndex: index]; ++ + } + } + +-- +1.8.3.rc0 + diff --git a/build-aux/osx/build/modulesets/patches/itstool/itstool.use-correct-libxml.patch b/build-aux/osx/build/modulesets/patches/itstool/itstool.use-correct-libxml.patch new file mode 100644 index 0000000..51a25c0 --- /dev/null +++ b/build-aux/osx/build/modulesets/patches/itstool/itstool.use-correct-libxml.patch @@ -0,0 +1,28 @@ +From d6ef86e2fb7bf9ddf888521e2c7dc5b5b7e4b6d8 Mon Sep 17 00:00:00 2001 +From: Michael Catanzaro +Date: Fri, 10 Jan 2014 23:50:52 -0600 +Subject: [PATCH] build: use $PYTHON when testing for libxml2 + +/usr/bin/python is a symlink to /usr/bin/python3 on some systems. +In this case, configure unconditionally checks for the Python 3 version +of libxml2. Instead, use the version of Python found by AM_PATH_PYTHON. +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index c29efad..dbd0c7f 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -14,7 +14,7 @@ AM_PATH_PYTHON([2.6]) + + py_module=libxml2 + AC_MSG_CHECKING(for python module $py_module) +-echo "import $py_module" | python - &>/dev/null ++echo "import $py_module" | $PYTHON - &>/dev/null + if test $? -ne 0; then + AC_MSG_RESULT(not found) + AC_MSG_ERROR(Python module $py_module is needed to run this package) +-- +1.8.5.2 + diff --git a/build-aux/osx/build/modulesets/patches/libgcrypt/libgcrypt-build-clang.patch b/build-aux/osx/build/modulesets/patches/libgcrypt/libgcrypt-build-clang.patch new file mode 100644 index 0000000..5e6beb5 --- /dev/null +++ b/build-aux/osx/build/modulesets/patches/libgcrypt/libgcrypt-build-clang.patch @@ -0,0 +1,97 @@ +diff -c /Users/john/Development/gtk-sources/libgcrypt-1.5.3/cipher/rijndael.c\~ /Users/john/Development/gtk-sources/libgcrypt-1.5.3/cipher/rijndael.c +--- a/cipher/rijndael.c Tue Oct 15 11:09:37 2013 ++++ b/cipher/rijndael.c + Tue Oct 15 11:53:22 2013 +@@ -725,13 +725,13 @@ + "movdqa 0x90(%%esi), %%xmm1\n\t" + aesenc_xmm1_xmm0 + "movdqa 0xa0(%%esi), %%xmm1\n\t" +- "cmp $10, %[rounds]\n\t" ++ "cmpl $10, %[rounds]\n\t" + "jz .Lenclast%=\n\t" + aesenc_xmm1_xmm0 + "movdqa 0xb0(%%esi), %%xmm1\n\t" + aesenc_xmm1_xmm0 + "movdqa 0xc0(%%esi), %%xmm1\n\t" +- "cmp $12, %[rounds]\n\t" ++ "cmpl $12, %[rounds]\n\t" + "jz .Lenclast%=\n\t" + aesenc_xmm1_xmm0 + "movdqa 0xd0(%%esi), %%xmm1\n\t" +@@ -780,13 +780,13 @@ + "movdqa 0x90(%%esi), %%xmm1\n\t" + aesdec_xmm1_xmm0 + "movdqa 0xa0(%%esi), %%xmm1\n\t" +- "cmp $10, %[rounds]\n\t" ++ "cmpl $10, %[rounds]\n\t" + "jz .Ldeclast%=\n\t" + aesdec_xmm1_xmm0 + "movdqa 0xb0(%%esi), %%xmm1\n\t" + aesdec_xmm1_xmm0 + "movdqa 0xc0(%%esi), %%xmm1\n\t" +- "cmp $12, %[rounds]\n\t" ++ "cmpl $12, %[rounds]\n\t" + "jz .Ldeclast%=\n\t" + aesdec_xmm1_xmm0 + "movdqa 0xd0(%%esi), %%xmm1\n\t" +@@ -839,13 +839,13 @@ + "movdqa 0x90(%%esi), %%xmm1\n\t" + aesenc_xmm1_xmm0 + "movdqa 0xa0(%%esi), %%xmm1\n\t" +- "cmp $10, %[rounds]\n\t" ++ "cmpl $10, %[rounds]\n\t" + "jz .Lenclast%=\n\t" + aesenc_xmm1_xmm0 + "movdqa 0xb0(%%esi), %%xmm1\n\t" + aesenc_xmm1_xmm0 + "movdqa 0xc0(%%esi), %%xmm1\n\t" +- "cmp $12, %[rounds]\n\t" ++ "cmpl $12, %[rounds]\n\t" + "jz .Lenclast%=\n\t" + aesenc_xmm1_xmm0 + "movdqa 0xd0(%%esi), %%xmm1\n\t" +@@ -857,7 +857,7 @@ + "movdqu %[src], %%xmm1\n\t" /* Save input. */ + "pxor %%xmm1, %%xmm0\n\t" /* xmm0 = input ^ IV */ + +- "cmp $1, %[decrypt]\n\t" ++ "cmpl $1, %[decrypt]\n\t" + "jz .Ldecrypt_%=\n\t" + "movdqa %%xmm0, %[iv]\n\t" /* [encrypt] Store IV. */ + "jmp .Lleave_%=\n" +@@ -918,13 +918,13 @@ + "movdqa 0x90(%%esi), %%xmm1\n\t" + aesenc_xmm1_xmm0 + "movdqa 0xa0(%%esi), %%xmm1\n\t" +- "cmp $10, %[rounds]\n\t" ++ "cmpl $10, %[rounds]\n\t" + "jz .Lenclast%=\n\t" + aesenc_xmm1_xmm0 + "movdqa 0xb0(%%esi), %%xmm1\n\t" + aesenc_xmm1_xmm0 + "movdqa 0xc0(%%esi), %%xmm1\n\t" +- "cmp $12, %[rounds]\n\t" ++ "cmpl $12, %[rounds]\n\t" + "jz .Lenclast%=\n\t" + aesenc_xmm1_xmm0 + "movdqa 0xd0(%%esi), %%xmm1\n\t" +@@ -1045,7 +1045,7 @@ + aesenc_xmm1_xmm3 + aesenc_xmm1_xmm4 + "movdqa 0xa0(%%esi), %%xmm1\n\t" +- "cmp $10, %[rounds]\n\t" ++ "cmpl $10, %[rounds]\n\t" + "jz .Lenclast%=\n\t" + aesenc_xmm1_xmm0 + aesenc_xmm1_xmm2 +@@ -1057,7 +1057,7 @@ + aesenc_xmm1_xmm3 + aesenc_xmm1_xmm4 + "movdqa 0xc0(%%esi), %%xmm1\n\t" +- "cmp $12, %[rounds]\n\t" ++ "cmpl $12, %[rounds]\n\t" + "jz .Lenclast%=\n\t" + aesenc_xmm1_xmm0 + aesenc_xmm1_xmm2 + +Diff finished. Tue Oct 15 11:53:31 2013 diff --git a/build-aux/osx/build/modulesets/patches/libxml2/libxml2-Bug-686118-pthreads_once_init.patch b/build-aux/osx/build/modulesets/patches/libxml2/libxml2-Bug-686118-pthreads_once_init.patch new file mode 100644 index 0000000..8f42220 --- /dev/null +++ b/build-aux/osx/build/modulesets/patches/libxml2/libxml2-Bug-686118-pthreads_once_init.patch @@ -0,0 +1,33 @@ +From 3f6cfbd1d38d0634a2ddcb9a0a13e1b5a2195a5e Mon Sep 17 00:00:00 2001 +From: Friedrich Haubensak +Date: Wed, 12 Sep 2012 15:34:53 +0000 +Subject: Fix a thread portability problem + +cannot compile libxml2-2.9.0 using studio 12.1 compiler on solaris 10 + +I.M.O. structure initializer (as PTHREAD_ONCE_INIT) cannot be used in +a structure assignment anyway +--- +diff --git a/threads.c b/threads.c +index f206149..7e85a26 100644 +--- a/threads.c ++++ b/threads.c +@@ -146,6 +146,7 @@ struct _xmlRMutex { + static pthread_key_t globalkey; + static pthread_t mainthread; + static pthread_once_t once_control = PTHREAD_ONCE_INIT; ++static pthread_once_t once_control_init = PTHREAD_ONCE_INIT; + static pthread_mutex_t global_init_lock = PTHREAD_MUTEX_INITIALIZER; + #elif defined HAVE_WIN32_THREADS + #if defined(HAVE_COMPILER_TLS) +@@ -915,7 +916,7 @@ xmlCleanupThreads(void) + #ifdef HAVE_PTHREAD_H + if ((libxml_is_threaded) && (pthread_key_delete != NULL)) + pthread_key_delete(globalkey); +- once_control = PTHREAD_ONCE_INIT; ++ once_control = once_control_init; + #elif defined(HAVE_WIN32_THREADS) && !defined(HAVE_COMPILER_TLS) && (!defined(LIBXML_STATIC) || defined(LIBXML_STATIC_FOR_DLL)) + if (globalkey != TLS_OUT_OF_INDEXES) { + xmlGlobalStateCleanupHelperParams *p; +-- +cgit v0.9.0.2 diff --git a/build-aux/osx/build/modulesets/patches/readline/readline62-001 b/build-aux/osx/build/modulesets/patches/readline/readline62-001 new file mode 100644 index 0000000..d4563c3 --- /dev/null +++ b/build-aux/osx/build/modulesets/patches/readline/readline62-001 @@ -0,0 +1,46 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 6.2 +Patch-ID: readline62-001 + +Bug-Reported-by: Clark J. Wang +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00157.html + +Bug-Description: + +The readline vi-mode `cc', `dd', and `yy' commands failed to modify the +entire line. + +[This patch intentionally does not modify patchlevel] + +Patch (apply with `patch -p0'): + +*** ../readline-6.2-patched/vi_mode.c 2010-11-20 19:51:39.000000000 -0500 +--- vi_mode.c 2011-02-17 20:24:25.000000000 -0500 +*************** +*** 1115,1119 **** + _rl_vi_last_motion = c; + RL_UNSETSTATE (RL_STATE_VIMOTION); +! return (0); + } + #if defined (READLINE_CALLBACKS) +--- 1115,1119 ---- + _rl_vi_last_motion = c; + RL_UNSETSTATE (RL_STATE_VIMOTION); +! return (vidomove_dispatch (m)); + } + #if defined (READLINE_CALLBACKS) +*** ../readline-6.2-patched/callback.c 2010-06-06 12:18:58.000000000 -0400 +--- callback.c 2011-02-17 20:43:28.000000000 -0500 +*************** +*** 149,152 **** +--- 149,155 ---- + /* Should handle everything, including cleanup, numeric arguments, + and turning off RL_STATE_VIMOTION */ ++ if (RL_ISSTATE (RL_STATE_NUMERICARG) == 0) ++ _rl_internal_char_cleanup (); ++ + return; + } diff --git a/build-aux/osx/build/modulesets/patches/readline/readline62-002 b/build-aux/osx/build/modulesets/patches/readline/readline62-002 new file mode 100644 index 0000000..3dc2604 --- /dev/null +++ b/build-aux/osx/build/modulesets/patches/readline/readline62-002 @@ -0,0 +1,57 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 6.2 +Patch-ID: readline62-002 + +Bug-Reported-by: Vincent Sheffer +Bug-Reference-ID: +Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-readline/2011-08/msg00000.html + +Bug-Description: + +The readline shared library helper script needs to be updated for Mac OS X +10.7 (Lion, darwin11). + +Patch (apply with `patch -p0'): + +*** ../readline-6.2-patched/support/shobj-conf 2009-10-28 09:20:21.000000000 -0400 +--- support/shobj-conf 2011-08-27 13:25:23.000000000 -0400 +*************** +*** 158,162 **** + + # Darwin/MacOS X +! darwin[89]*|darwin10*) + SHOBJ_STATUS=supported + SHLIB_STATUS=supported +--- 172,176 ---- + + # Darwin/MacOS X +! darwin[89]*|darwin1[012]*) + SHOBJ_STATUS=supported + SHLIB_STATUS=supported +*************** +*** 187,191 **** + + case "${host_os}" in +! darwin[789]*|darwin10*) SHOBJ_LDFLAGS='' + SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v' + ;; +--- 201,205 ---- + + case "${host_os}" in +! darwin[789]*|darwin1[012]*) SHOBJ_LDFLAGS='' + SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v' + ;; + +*** ../readline-6.2-patched/patchlevel 2010-01-14 10:15:52.000000000 -0500 +--- patchlevel 2011-11-17 11:09:35.000000000 -0500 +*************** +*** 1,3 **** + # Do not edit -- exists only for use by patch + +! 1 +--- 1,3 ---- + # Do not edit -- exists only for use by patch + +! 2 diff --git a/build-aux/osx/build/modulesets/patches/readline/readline62-003 b/build-aux/osx/build/modulesets/patches/readline/readline62-003 new file mode 100644 index 0000000..0462242 --- /dev/null +++ b/build-aux/osx/build/modulesets/patches/readline/readline62-003 @@ -0,0 +1,76 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 6.2 +Patch-ID: readline62-003 + +Bug-Reported-by: Max Horn +Bug-Reference-ID: <20CC5C60-07C3-4E41-9817-741E48D407C5@quendi.de> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2012-06/msg00005.html + +Bug-Description: + +A change between readline-6.1 and readline-6.2 to prevent the readline input +hook from being called too frequently had the side effect of causing delays +when reading pasted input on systems such as Mac OS X. This patch fixes +those delays while retaining the readline-6.2 behavior. + +Patch (apply with `patch -p0'): + +*** ../readline-6.2-patched/input.c 2010-05-30 18:33:01.000000000 -0400 +--- input.c 2012-06-25 21:08:42.000000000 -0400 +*************** +*** 410,414 **** + rl_read_key () + { +! int c; + + rl_key_sequence_length++; +--- 412,416 ---- + rl_read_key () + { +! int c, r; + + rl_key_sequence_length++; +*************** +*** 430,441 **** + while (rl_event_hook) + { +! if (rl_gather_tyi () < 0) /* XXX - EIO */ + { + rl_done = 1; + return ('\n'); + } + RL_CHECK_SIGNALS (); +- if (rl_get_char (&c) != 0) +- break; + if (rl_done) /* XXX - experimental */ + return ('\n'); +--- 432,447 ---- + while (rl_event_hook) + { +! if (rl_get_char (&c) != 0) +! break; +! +! if ((r = rl_gather_tyi ()) < 0) /* XXX - EIO */ + { + rl_done = 1; + return ('\n'); + } ++ else if (r == 1) /* read something */ ++ continue; ++ + RL_CHECK_SIGNALS (); + if (rl_done) /* XXX - experimental */ + return ('\n'); +*** ../readline-6.2-patched/patchlevel 2010-01-14 10:15:52.000000000 -0500 +--- patchlevel 2011-11-17 11:09:35.000000000 -0500 +*************** +*** 1,3 **** + # Do not edit -- exists only for use by patch + +! 2 +--- 1,3 ---- + # Do not edit -- exists only for use by patch + +! 3 diff --git a/build-aux/osx/build/modulesets/patches/readline/readline62-004 b/build-aux/osx/build/modulesets/patches/readline/readline62-004 new file mode 100644 index 0000000..5f3ba9b --- /dev/null +++ b/build-aux/osx/build/modulesets/patches/readline/readline62-004 @@ -0,0 +1,108 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 6.2 +Patch-ID: readline62-004 + +Bug-Reported-by: Jakub Filak +Bug-Reference-ID: +Bug-Reference-URL: https://bugzilla.redhat.com/show_bug.cgi?id=813289 + +Bug-Description: + +Attempting to redo (using `.') the vi editing mode `cc', `dd', or `yy' +commands leads to an infinite loop. + +Patch (apply with `patch -p0'): + +*** ../readline-6.2-patched/vi_mode.c 2011-02-25 11:17:02.000000000 -0500 +--- vi_mode.c 2012-06-02 12:24:47.000000000 -0400 +*************** +*** 1235,1243 **** + r = rl_domove_motion_callback (_rl_vimvcxt); + } +! else if (vi_redoing) + { + _rl_vimvcxt->motion = _rl_vi_last_motion; + r = rl_domove_motion_callback (_rl_vimvcxt); + } + #if defined (READLINE_CALLBACKS) + else if (RL_ISSTATE (RL_STATE_CALLBACK)) +--- 1297,1313 ---- + r = rl_domove_motion_callback (_rl_vimvcxt); + } +! else if (vi_redoing && _rl_vi_last_motion != 'd') /* `dd' is special */ + { + _rl_vimvcxt->motion = _rl_vi_last_motion; + r = rl_domove_motion_callback (_rl_vimvcxt); + } ++ else if (vi_redoing) /* handle redoing `dd' here */ ++ { ++ _rl_vimvcxt->motion = _rl_vi_last_motion; ++ rl_mark = rl_end; ++ rl_beg_of_line (1, key); ++ RL_UNSETSTATE (RL_STATE_VIMOTION); ++ r = vidomove_dispatch (_rl_vimvcxt); ++ } + #if defined (READLINE_CALLBACKS) + else if (RL_ISSTATE (RL_STATE_CALLBACK)) +*************** +*** 1317,1325 **** + r = rl_domove_motion_callback (_rl_vimvcxt); + } +! else if (vi_redoing) + { + _rl_vimvcxt->motion = _rl_vi_last_motion; + r = rl_domove_motion_callback (_rl_vimvcxt); + } + #if defined (READLINE_CALLBACKS) + else if (RL_ISSTATE (RL_STATE_CALLBACK)) +--- 1387,1403 ---- + r = rl_domove_motion_callback (_rl_vimvcxt); + } +! else if (vi_redoing && _rl_vi_last_motion != 'c') /* `cc' is special */ + { + _rl_vimvcxt->motion = _rl_vi_last_motion; + r = rl_domove_motion_callback (_rl_vimvcxt); + } ++ else if (vi_redoing) /* handle redoing `cc' here */ ++ { ++ _rl_vimvcxt->motion = _rl_vi_last_motion; ++ rl_mark = rl_end; ++ rl_beg_of_line (1, key); ++ RL_UNSETSTATE (RL_STATE_VIMOTION); ++ r = vidomove_dispatch (_rl_vimvcxt); ++ } + #if defined (READLINE_CALLBACKS) + else if (RL_ISSTATE (RL_STATE_CALLBACK)) +*************** +*** 1378,1381 **** +--- 1456,1472 ---- + r = rl_domove_motion_callback (_rl_vimvcxt); + } ++ else if (vi_redoing && _rl_vi_last_motion != 'y') /* `yy' is special */ ++ { ++ _rl_vimvcxt->motion = _rl_vi_last_motion; ++ r = rl_domove_motion_callback (_rl_vimvcxt); ++ } ++ else if (vi_redoing) /* handle redoing `yy' here */ ++ { ++ _rl_vimvcxt->motion = _rl_vi_last_motion; ++ rl_mark = rl_end; ++ rl_beg_of_line (1, key); ++ RL_UNSETSTATE (RL_STATE_VIMOTION); ++ r = vidomove_dispatch (_rl_vimvcxt); ++ } + #if defined (READLINE_CALLBACKS) + else if (RL_ISSTATE (RL_STATE_CALLBACK)) +*** ../readline-6.2-patched/patchlevel 2010-01-14 10:15:52.000000000 -0500 +--- patchlevel 2011-11-17 11:09:35.000000000 -0500 +*************** +*** 1,3 **** + # Do not edit -- exists only for use by patch + +! 3 +--- 1,3 ---- + # Do not edit -- exists only for use by patch + +! 4 diff --git a/build-aux/osx/build/modulesets/patches/shared-mime-info/0001-Bug-70255-Build-fails-with-glib-2.38.patch b/build-aux/osx/build/modulesets/patches/shared-mime-info/0001-Bug-70255-Build-fails-with-glib-2.38.patch new file mode 100644 index 0000000..f2007d2 --- /dev/null +++ b/build-aux/osx/build/modulesets/patches/shared-mime-info/0001-Bug-70255-Build-fails-with-glib-2.38.patch @@ -0,0 +1,42 @@ +From bfb2d780ff11cb547cc20d31c473be35cacb4509 Mon Sep 17 00:00:00 2001 +From: John Ralls +Date: Tue, 8 Oct 2013 11:33:11 -0700 +Subject: [PATCH] Bug 70255 - Build fails with glib-2.38 + +--- + configure.ac | 3 +++ + test-tree-magic.c | 3 ++- + 2 files changed, 5 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 68007c9..60a4c4d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -29,6 +29,9 @@ dnl Check whether libxml and glib are present is installed + PKG_CHECK_MODULES(ALL, \ + libxml-2.0 >= 2.4 \ + glib-2.0 >= 2.6.0) ++PKG_CHECK_MODULES(GLIB_2_36, glib-2.0 >= 2.36.0, ++ [AC_DEFINE([HAVE_GLIB_2_36], [1], [Configure g_type_init deprecation])], ++ [PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.6.0)]) + AC_SUBST(ALL_CFLAGS) + AC_SUBST(ALL_LIBS) + +diff --git a/test-tree-magic.c b/test-tree-magic.c +index 9b4dfaf..ec44a29 100644 +--- a/test-tree-magic.c ++++ b/test-tree-magic.c +@@ -637,8 +637,9 @@ int main (int argc, char **argv) + char *content, **lines; + guint i; + ++#ifndef HAVE_GLIB_2_36 + g_type_init (); +- ++#endif + if (argc != 2) { + g_print ("Usage: %s [file]\n", argv[0]); + g_print ("Where file contains, on each line, a directory path,\n" +-- +1.8.3.rc0 + diff --git a/build-aux/osx/build/updater/gedit-bootstrap-overrides.modules b/build-aux/osx/build/updater/gedit-bootstrap-overrides.modules new file mode 100644 index 0000000..37c2726 --- /dev/null +++ b/build-aux/osx/build/updater/gedit-bootstrap-overrides.modules @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build-aux/osx/build/updater/gedit-overrides.modules b/build-aux/osx/build/updater/gedit-overrides.modules new file mode 100644 index 0000000..d893392 --- /dev/null +++ b/build-aux/osx/build/updater/gedit-overrides.modules @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build-aux/osx/build/updater/patches/enchant-applespell.patch b/build-aux/osx/build/updater/patches/enchant-applespell.patch new file mode 100644 index 0000000..f6f1f65 --- /dev/null +++ b/build-aux/osx/build/updater/patches/enchant-applespell.patch @@ -0,0 +1,368 @@ +--- a/configure.in (revision 30591) ++++ b/configure.in (working copy) +@@ -33,4 +33,5 @@ + AC_PROG_CC + AC_PROG_CPP ++AC_PROG_OBJC + AC_PROG_INSTALL + AC_PROG_LN_S +--- a/src/applespell/Makefile.am 2010-04-01 22:53:37.000000000 +0200 ++++ b/src/applespell/Makefile.am 2012-01-11 22:42:13.000000000 +0100 +@@ -1,4 +1,13 @@ +-EXTRA_DIST= \ +- applespell_checker.h \ +- applespell_checker.mm \ +- AppleSpell.config ++target_lib = libenchant_applespell.la ++ ++INCLUDES=-I$(top_srcdir)/src $(ENCHANT_CFLAGS) $(CC_WARN_CFLAGS) -DXP_TARGET_COCOA -xobjective-c -D_ENCHANT_BUILD=1 ++ ++applespell_LTLIBRARIES = $(target_lib) ++applespelldir= $(libdir)/enchant ++ ++libenchant_applespell_la_LIBADD= $(ENCHANT_LIBS) -lobjc $(top_builddir)/src/libenchant.la ++libenchant_applespell_la_LDFLAGS = -module -avoid-version -no-undefined -framework Cocoa ++libenchant_applespell_la_SOURCES = applespell_provider.m ++libenchant_applespell_la_LIBTOOLFLAGS = --tag=CC ++ ++libenchant_applespell_lalibdir=$(libdir)/enchant +--- a/src/applespell/applespell_provider.m 2012-01-11 22:46:35.000000000 +0100 ++++ b/src/applespell/applespell_provider.m 2012-01-11 22:39:17.000000000 +0100 +@@ -0,0 +1,337 @@ ++/* vim: set sw=8: -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ ++/* enchant ++ * Copyright (C) 2004 Remi Payette ++ * Copyright (C) 2004 Francis James Franklin ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 2 ++ * of the License, or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA ++ * 02110-1301, USA. ++ */ ++ ++#include ++#include ++#include ++#include ++ ++#include "enchant-provider.h" ++ ++#ifdef __cplusplus ++extern "C" ++{ ++#endif ++ ++ENCHANT_MODULE_EXPORT (EnchantProvider *) ++init_enchant_provider (void); ++ ++ENCHANT_MODULE_EXPORT (void) ++configure_enchant_provider (EnchantProvider *provider, const gchar *module_dir); ++ ++#ifdef __cplusplus ++} ++#endif ++ ++ENCHANT_PLUGIN_DECLARE("AppleSpell") ++ ++typedef struct ++{ ++ NSSpellChecker *checker; ++ NSString *language; ++} Dictionary; ++ ++static Dictionary * ++dictionary_new (NSSpellChecker *checker, ++ NSString *language) ++{ ++ Dictionary *ret; ++ ++ ret = g_slice_new (Dictionary); ++ ++ ret->checker = checker; ++ ret->language = language; ++ ++ return ret; ++} ++ ++static void ++dictionary_free (Dictionary *dictionary) ++{ ++ [dictionary->language release]; ++ g_slice_free (Dictionary, dictionary); ++} ++ ++static gchar ** ++applespell_dict_suggest (EnchantDict *dict, ++ const gchar * const word, ++ size_t len, ++ size_t *out_n_suggs) ++{ ++ NSAutoreleasePool *pool; ++ gchar **ret = NULL; ++ NSString *str; ++ Dictionary *d; ++ NSArray *words; ++ NSRange range; ++ guint i = 0; ++ ++ pool = [[NSAutoreleasePool alloc] init]; ++ ++ d = dict->user_data; ++ ++ str = [[NSString alloc] initWithBytes:word length:len encoding:NSUTF8StringEncoding]; ++ ++ range.location = 0; ++ range.length = [str length]; ++ ++#if MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_5 ++ words = [d->checker guessesForWordRange:range ++ inString:str ++ language:d->language ++ inSpellDocumentWithTag:0]; ++#else ++ [d->checker setLanguage:d->language]; ++ words = [d->checker guessesForWord:str]; ++#endif ++ ++ *out_n_suggs = [words count]; ++ ++ ret = g_new0 (gchar *, *out_n_suggs + 1); ++ ++ for (i = 0; i < [words count]; ++i) ++ { ++ ret[i] = g_strdup ([[words objectAtIndex:i] UTF8String]); ++ } ++ ++ [str release]; ++ [pool release]; ++ ++ return ret; ++} ++ ++static gint ++applespell_dict_check (EnchantDict *dict, ++ const gchar * const word, ++ size_t len) ++{ ++ NSAutoreleasePool *pool; ++ gint result = 0; ++ NSString *str; ++ Dictionary *d; ++ NSRange range; ++ ++ pool = [[NSAutoreleasePool alloc] init]; ++ ++ d = dict->user_data; ++ ++ str = [[NSString alloc] initWithBytes:word length:len encoding:NSUTF8StringEncoding]; ++ ++ range = [d->checker checkSpellingOfString:str ++ startingAt:0 ++ language:d->language ++ wrap:true ++ inSpellDocumentWithTag:0 ++ wordCount:NULL]; ++ ++ result = range.length > 0 ? 1 : 0; ++ ++ [str release]; ++ [pool release]; ++ ++ return result; ++} ++ ++static EnchantDict * ++applespell_provider_request_dict (EnchantProvider *provider, ++ const char * const tag) ++{ ++ NSAutoreleasePool *pool; ++ EnchantDict *dict; ++ NSString *str; ++ ++ pool = [[NSAutoreleasePool alloc] init]; ++ str = [[NSString alloc] initWithUTF8String:tag]; ++ ++ dict = g_new0 (EnchantDict, 1); ++ ++ dict->check = applespell_dict_check; ++ dict->suggest = applespell_dict_suggest; ++ ++ dict->user_data = dictionary_new (provider->user_data, ++ str); ++ ++ [str retain]; ++ ++ [pool release]; ++ return dict; ++} ++ ++static void ++applespell_provider_dispose_dict (EnchantProvider *provider, ++ EnchantDict *dict) ++{ ++ NSAutoreleasePool *pool; ++ ++ pool = [[NSAutoreleasePool alloc] init]; ++ ++ dictionary_free (dict->user_data); ++ g_free (dict); ++ ++ [pool release]; ++} ++ ++#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_5 ++static gchar const *available_languages[] = { ++ "en", ++ "en_GB", ++ "en_AU", ++ "de", ++ "fr", ++ "nl", ++ "pl", ++ NULL ++}; ++ ++#endif ++ ++static gint ++applespell_provider_dictionary_exists (EnchantProvider *provider, ++ const gchar * const tag) ++{ ++ NSAutoreleasePool *pool; ++ gint result = 0; ++ NSSpellChecker *checker; ++#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5 ++ NSArray *languages; ++ guint i; ++#else ++ gchar const **ptr; ++#endif ++ ++ pool = [[NSAutoreleasePool alloc] init]; ++ ++ checker = provider->user_data; ++ ++#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5 ++ languages = [checker availableLanguages]; ++ ++ for (i = 0; i < [languages count]; ++i) ++ { ++ if (g_strcmp0 (tag, [[languages objectAtIndex:i] UTF8String]) == 0) ++ { ++ result = 1; ++ break; ++ } ++ } ++#else ++ ptr = available_languages; ++ ++ while (ptr && *ptr) ++ { ++ if (g_strcmp0 (tag, *ptr) == 0) ++ { ++ result = 1; ++ break; ++ } ++ ++ptr; ++ } ++#endif ++ ++ [pool release]; ++ ++ return result; ++} ++ ++static void ++applespell_provider_dispose (EnchantProvider *provider) ++{ ++ g_free (provider); ++} ++ ++static const gchar * ++applespell_provider_identify (EnchantProvider *provider) ++{ ++ return "AppleSpell"; ++} ++ ++static const gchar * ++applespell_provider_describe (EnchantProvider *provider) ++{ ++ return "AppleSpell Provider"; ++} ++ ++static gchar ** ++applespell_provider_list_dicts (EnchantProvider *provider, ++ size_t *out_n_dicts) ++{ ++ NSSpellChecker *checker; ++ NSAutoreleasePool *pool; ++ gchar **ret = NULL; ++#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5 ++ NSArray *languages; ++ guint i = 0; ++#endif ++ ++ pool = [[NSAutoreleasePool alloc] init]; ++ ++ checker = provider->user_data; ++ ++#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5 ++ languages = [checker availableLanguages]; ++ *out_n_dicts = [languages count]; ++ ++ ret = g_new0 (gchar *, *out_n_dicts + 1); ++ ++ for (i = 0; i < [languages count]; ++i) ++ { ++ ret[i] = g_strdup ([[languages objectAtIndex:i] UTF8String]); ++ } ++#else ++ ret = g_strdupv ((gchar **)available_languages); ++#endif ++ ++ [pool release]; ++ ++ return ret; ++} ++ ++ENCHANT_MODULE_EXPORT (EnchantProvider *) ++init_enchant_provider (void) ++{ ++ NSAutoreleasePool *pool; ++ EnchantProvider *provider; ++ ++ pool = [[NSAutoreleasePool alloc] init]; ++ ++ provider = g_new0 (EnchantProvider, 1); ++ ++ provider->dispose = applespell_provider_dispose; ++ provider->request_dict = applespell_provider_request_dict; ++ provider->dispose_dict = applespell_provider_dispose_dict; ++ provider->dictionary_exists = applespell_provider_dictionary_exists; ++ provider->identify = applespell_provider_identify; ++ provider->describe = applespell_provider_describe; ++ provider->list_dicts = applespell_provider_list_dicts; ++ ++ provider->user_data = [NSSpellChecker sharedSpellChecker]; ++ ++ [pool release]; ++ ++ return provider; ++} ++ ++ENCHANT_MODULE_EXPORT (void) ++configure_enchant_provider (EnchantProvider *provider, ++ const gchar *module_dir) ++{ ++ return; ++} diff --git a/build-aux/osx/build/updater/patches/enchant-relocatable.patch b/build-aux/osx/build/updater/patches/enchant-relocatable.patch new file mode 100644 index 0000000..7e56eb7 --- /dev/null +++ b/build-aux/osx/build/updater/patches/enchant-relocatable.patch @@ -0,0 +1,40 @@ +--- a/src/enchant.c 2010-04-01 22:53:37.000000000 +0200 ++++ b/src/enchant.c 2014-08-26 21:32:21.000000000 +0200 +@@ -210,6 +210,13 @@ + char * module_dir = NULL; + char * prefix = NULL; + ++ const char *envdir = g_getenv ("ENCHANT_MODULES_DIR"); ++ ++ if (envdir != NULL && *envdir != '\0') ++ { ++ module_dirs = enchant_slist_append_unique_path (module_dirs, g_strdup (envdir)); ++ } ++ + { + char* user_module_dir; + +@@ -239,7 +246,8 @@ + module_dirs = enchant_slist_append_unique_path (module_dirs, module_dir); + + #if defined(ENCHANT_GLOBAL_MODULE_DIR) +- module_dirs = enchant_slist_append_unique_path (module_dirs, g_strdup (ENCHANT_GLOBAL_MODULE_DIR)); ++ if (envdir == NULL || *envdir == '\0') ++ module_dirs = enchant_slist_append_unique_path (module_dirs, g_strdup (ENCHANT_GLOBAL_MODULE_DIR)); + #else + /* Dynamically locate library and search for modules relative to it. */ + prefix = enchant_get_prefix_dir(); +@@ -278,6 +286,13 @@ + if (ordering_dir) + conf_dirs = enchant_slist_append_unique_path (conf_dirs, ordering_dir); + ++ const char *envdir = g_getenv ("ENCHANT_DATA_DIR"); ++ ++ if (envdir != NULL && *envdir != '\0') ++ { ++ conf_dirs = enchant_slist_append_unique_path (conf_dirs, g_strdup (envdir)); ++ } ++ + /* Dynamically locate library and search for files relative to it. */ + prefix = enchant_get_prefix_dir(); + if(prefix) diff --git a/build-aux/osx/build/updater/patches/gedit-plugins-disable-terminal.patch b/build-aux/osx/build/updater/patches/gedit-plugins-disable-terminal.patch new file mode 100644 index 0000000..e1d2928 --- /dev/null +++ b/build-aux/osx/build/updater/patches/gedit-plugins-disable-terminal.patch @@ -0,0 +1,30 @@ +--- a/configure.ac 2011-10-16 22:03:19.000000000 +0200 ++++ b/configure.ac 2012-01-15 13:57:54.000000000 +0100 +@@ -246,6 +246,27 @@ + fi + fi + ++# ================================================================ ++# Terminal (vte) ++# ================================================================ ++plugin_defined terminal ++ ++if test "$?" = 1 ++then ++ AC_CHECK_LIB([vte], [vte_terminal_new], [have_vte=yes], [have_vte=no]) ++ ++ if test "x$have_vte" = "xno"; then ++ plugin_defined_explicit terminal ++ if test "$?" = 1 ++ then ++ AC_MSG_ERROR([vte could not be found, needed for terminal plugin]) ++ else ++ AC_MSG_WARN([vte could not be found, terminal plugin will be disabled]) ++ undef_plugin terminal "vte not found" ++ fi ++ fi ++fi ++ + if test -z "$disabled_plugins" + then + disabled_plugins="none" diff --git a/build-aux/osx/build/updater/update_modulesets.py b/build-aux/osx/build/updater/update_modulesets.py new file mode 100755 index 0000000..1382297 --- /dev/null +++ b/build-aux/osx/build/updater/update_modulesets.py @@ -0,0 +1,320 @@ +#!/usr/bin/env python + +import lxml.etree as ET +import lxml.objectify + +import subprocess, shutil, os, glob, urllib2, json, sys, difflib + +if not os.path.exists('.gtk-osx'): + subprocess.call(['git', 'clone', 'git://git.gnome.org/gtk-osx', '.gtk-osx']) + +try: + os.makedirs('.cache') +except: + pass + +class Merger: + def __init__(self): + self.repos = {} + self.modules = {} + + def normalize_xml(self, xml): + s = ET.tostring(xml) + o = lxml.objectify.fromstring(s) + + return ET.tostring(o, pretty_print=True) + + def extract_repos(self, t): + default = None + + for repo in t.findall('./repository'): + name = repo.attrib['name'] + + if 'default' in repo.attrib: + default = repo + + if not name in self.repos: + self.repos[name] = repo + + return default + + def parse_module(self, f): + t = ET.parse(f) + drepo = self.extract_repos(t) + + tags = {} + + for x in t.getroot().findall('./'): + if x.tag == 'include' or x.tag == 'repository': + continue + + branch = x.find('./branch') + + if not branch is None and not 'repo' in branch.attrib: + branch.attrib['repo'] = drepo.attrib['name'] + + id = x.attrib['id'] + + if id in self.modules: + print('Overriding existing module {0}:'.format(id)) + + a = self.normalize_xml(self.modules[id]).splitlines(True) + b = self.normalize_xml(x).splitlines(True) + + print(''.join(difflib.unified_diff(a, b, fromfile='old', tofile='new'))) + print('\n') + + sys.stdout.write('Do you want to keep the original, or the new file? [(o)riginal, (n)new] ') + sys.stdout.flush() + answer = sys.stdin.readline().rstrip() + + if answer == '' or answer == 'n' or answer == 'new': + self.modules[id] = x + print('Using new version\n') + else: + print('Used original version\n') + else: + self.modules[id] = x + + def copy_patches(self, mod): + # Copy patches locally + patches = mod.findall('./branch/patch') + + if len(patches) == 0: + return + + dname = 'modulesets/patches/' + mod.attrib['id'] + + try: + os.makedirs(dname) + except: + pass + + locc = 'http://git.gnome.org/browse/gtk-osx/plain/' + + for p in patches: + f = p.attrib['file'] + + pname = os.path.basename(f) + + if f.startswith(locc): + shutil.copyfile('.gtk-osx/' + f[len(locc):], dname + '/' + pname) + elif f.startswith('patches/'): + shutil.copyfile(f, dname + '/' + pname) + else: + content = self.from_cache_or_url(os.path.join('patches', mod.attrib['id'], pname), f) + + with open(dname + '/' + pname, 'w') as patch: + patch.write(content) + + p.attrib['file'] = mod.attrib['id'] + '/' + pname + + def from_cache_or_url(self, filename, url): + cfile = os.path.join('.cache', filename) + + try: + with open(cfile) as f: + return f.read() + except: + pass + + resp = urllib2.urlopen(url) + ret = resp.read() + resp.close() + + dname = os.path.dirname(cfile) + + try: + os.makedirs(dname) + except: + pass + + try: + with open(cfile, 'w') as f: + f.write(ret) + except: + pass + + return ret + + def update_module(self, mod): + branch = mod.find('./branch') + + if branch is None: + return + + if not branch.attrib['repo'].endswith('.gnome.org'): + return + + # Check for latest versions + repo = self.repos[branch.attrib['repo']] + + if repo.attrib['type'] != 'tarball': + return + + module = branch.attrib['module'] + + modname = module.split('/', 2)[0] + version = [int(x) for x in branch.attrib['version'].split('.')] + + # Skip updating gtk+ 2.x + if modname == 'gtk+' and version[0] == 2: + return + + href = repo.attrib['href'] + versions = self.from_cache_or_url(mod.attrib['id'] + '.json', href + modname + '/cache.json') + versions = json.loads(versions) + + latest = [version, version] + + for v in versions[1][modname]: + vv = [int(x) for x in v.split('.')] + + if vv[1] % 2 == 0: + if vv > latest[0] and vv[0] == latest[0][0]: + latest[0] = vv + else: + if vv > latest[1] and vv[0] == latest[1][0]: + latest[1] = vv + + if latest[0] > version or latest[1] > version: + choices = [] + + if latest[0] > version: + choices.append('stable = {0}'.format('.'.join([str(x) for x in latest[0]]))) + + if latest[1] > version: + choices.append('unstable = {0}'.format('.'.join([str(x) for x in latest[1]]))) + + sversion = '.'.join([str(x) for x in version]) + print('Found new versions for {0} = {1}: {2}'.format(modname, sversion, ', '.join(choices))) + + sys.stdout.write('Do you want to update? [(s)table/(u)nstable/(n)o]: ') + sys.stdout.flush() + answer = sys.stdin.readline().rstrip() + + nv = None + + if answer == '': + if latest[0] > latest[1]: + answer = 'stable' + else: + answer = 'unstable' + + if (answer == 'stable' or answer == 's') and latest[0] > version: + nv = latest[0] + elif (answer =='unstable' or answer == 'u') and latest[1] > version: + nv = latest[1] + + if not nv is None: + v = '.'.join([str(x) for x in nv]) + info = versions[1][modname][v] + branch.attrib['version'] = v + branch.attrib['module'] = '{0}/{1}'.format(modname, info['tar.xz']) + + hfile = href + modname + '/' + info['sha256sum'] + + ret = self.from_cache_or_url(os.path.join('hashes', modname, info['sha256sum']), hfile) + + for line in ret.splitlines(): + hash, fname = line.rstrip().split(None, 2) + + if fname == os.path.basename(info['tar.xz']): + branch.attrib['hash'] = 'sha256:{0}'.format(hash) + + print('Updated to version {0}\n'.format(v)) + else: + print('Keep version {0}\n'.format(sversion)) + + def merge(self, modules, entry_point, overrides): + self.modules = {} + self.repos = {} + + for mod in modules: + self.parse_module(mod) + + self.required_modules = [] + processed = set() + + self.parse_module(overrides) + + process = [self.modules[entry_point]] + processed.add(entry_point) + + while len(process) != 0: + mod = process.pop() + id = mod.attrib['id'] + + self.required_modules.insert(0, mod) + + deps = mod.findall('./dependencies/dep') + mod.findall('./after/dep') + mod.findall('./suggests/dep') + + for dep in deps: + package = dep.attrib['package'] + + if package in processed: + continue + + if not package in self.modules: + sys.stderr.write('Package dependency is not in modules... {0}\n'.format(package)) + sys.exit(1) + + processed.add(package) + process.insert(0, self.modules[package]) + + def write(self, f): + needed_repos = {} + + for mod in self.required_modules: + branch = mod.find('./branch') + + if not branch is None and 'repo' in branch.attrib: + needed_repos[branch.attrib['repo']] = self.repos[branch.attrib['repo']] + + try: + os.makedirs('.cache') + except: + pass + + for mod in self.required_modules: + self.copy_patches(mod) + self.update_module(mod) + + with open(f, 'w') as f: + root = ET.Element('moduleset') + + repos = needed_repos.values() + repos.sort(lambda a, b: cmp(a.attrib['name'], b.attrib['name'])) + + for repo in repos: + root.append(repo) + + for mod in self.required_modules: + root.append(mod) + + ret = ET.ElementTree(root) + + content = ET.tostring(ret, pretty_print=True, xml_declaration=True, encoding='utf-8', doctype='') + f.write(content) + +shutil.rmtree('modulesets', ignore_errors=True) + +os.makedirs('modulesets') +os.makedirs('modulesets/patches') + +allf = glob.glob('.gtk-osx/modulesets-stable/*.modules') + +nobs = [x for x in allf if os.path.basename(x) != 'bootstrap.modules'] +bs = [x for x in allf if os.path.basename(x) == 'bootstrap.modules'] + +m = Merger() + +m.merge(nobs, 'gedit-meta', 'gedit-overrides.modules') +m.write('modulesets/gedit.modules') + +m.merge(bs, 'meta-bootstrap', 'gedit-bootstrap-overrides.modules') +m.write('modulesets/bootstrap.modules') + +print('New modules have been written to "modulesets"') + +# vi:ts=4:et diff --git a/build-aux/osx/bundle/.gitignore b/build-aux/osx/bundle/.gitignore new file mode 100644 index 0000000..c16a2f4 --- /dev/null +++ b/build-aux/osx/bundle/.gitignore @@ -0,0 +1 @@ +gedit.app diff --git a/build-aux/osx/bundle/bundle b/build-aux/osx/bundle/bundle new file mode 100755 index 0000000..379caf2 --- /dev/null +++ b/build-aux/osx/bundle/bundle @@ -0,0 +1,327 @@ +#!/bin/bash + +pushd $(dirname "$0") > /dev/null +D=$(pwd -P) +popd > /dev/null + +ME="$0" +BUNDLE_NAME="Gedit" +BUNDLE="$D/$BUNDLE_NAME.app" + +function do_strip { + tp=$(file -b --mime-type "$1") + + if [ "$tp" != "application/octet-stream" ]; then + return + fi + + name=$(mktemp -t bundle) + st=$(stat -f %p "$1") + + strip -o "$name" -S "$1" + mv -f "$name" "$1" + + chmod "$st" "$1" + chmod u+w "$1" +} + +function dmg_help_short() { + echo "Create a dmg from a bundle" +} + +function cmd_dmg() { + # Copied and modified from Banshee + if [ ! -d "$BUNDLE" ]; then + cmd_make + fi + + VOLUME_NAME="$BUNDLE_NAME" + + if [ ! -z "$1" ]; then + DMG_FILE="$1.dmg" + else + DMG_FILE="$D/$BUNDLE_NAME.dmg" + fi + + DMG_APP="$BUNDLE" + TMP_MOUNT_POINT="$D/$VOLUME_NAME.mounted" + FINAL_MOUNT_POINT="/Volumes/$VOLUME_NAME" + + rm -f $DMG_FILE + rm -f $DMG_FILE.master + + # Compute an approximated image size in MB, and bloat by 30 MB + image_size=$(du -ck "$DMG_APP" | tail -n1 | cut -f1) + image_size=$((($image_size * 11) / 10000)) + + echo "Creating disk image (${image_size}MB)..." + + TMPNAME="${DMG_FILE%.dmg}_tmp.dmg" + + cp "$D/data/template.dmg.bz2" "$TMPNAME.bz2" + bunzip2 "$TMPNAME.bz2" + + hdiutil resize -size ${image_size}m "$TMPNAME" || exit 1 + + echo "Attaching to disk image..." + hdiutil attach "$TMPNAME" -readwrite -noautoopen -mountpoint "$TMP_MOUNT_POINT" -quiet || exit 1 + + echo "Populating image..." + rsync -az "$DMG_APP" "$TMP_MOUNT_POINT/" || exit 1 + + echo "Ensuring permissions" + chmod -Rf go-w "$TMP_MOUNT_POINT" 2>/dev/null + + echo "Blessing image..." + bless --folder "$TMP_MOUNT_POINT" --openfolder "$TMP_MOUNT_POINT" || exit 1 + + echo "Detaching from disk image..." + hdiutil detach "$TMP_MOUNT_POINT" -quiet || exit 1 + + echo "Converting to final image..." + hdiutil convert -quiet -format UDBZ -o "$DMG_FILE" "$TMPNAME" || exit 1 + + # Make internet-enable + hdiutil internet-enable -yes "$DMG_FILE" || exit 1 + + rm -f "$TMPNAME" + + n=$(basename "$DMG_FILE") + echo "Done $n." +} + +function make_help_usage() { + echo "[-f]" +} + +function make_help_short() { + echo "Make the $BUNDLE_NAME.app bundle" +} + +function build_gtk_mac_bundler() { + b="$D/../build/build" + lbin=$("$b" env local-bin) + + if [ -x "$lbin/gtk-mac-bundler" ]; then + return + fi + + echo "Installing gtk-mac-bundler..." + + home=$("$b" env home) + sbin="$home/source" + + mkdir -p "$sbin" + + ( + cd "$sbin" + + if [ ! -d gtk-mac-bundler ]; then + git clone https://github.com/jessevdk/gtk-mac-bundler || exit 1 + fi + + ( + cd gtk-mac-bundler + git checkout -b stable 5994aa557ebb24687ed07e74910e4007521a53b4 || exit 1 + HOME="$home" make install + ) || exit 1 + ) || exit 1 +} + +function make_fake_help_long() { + echo "Create a fake bundle pointing towards files in the build. This is useful mostly to test bundle support." +} + +function make_fake_help_short() { + echo "Create a fake bundle" +} + +function cmd_make_fake() { + fake="$D/Gedit-fake.app" + + rm -rf "$fake" + mkdir -p "$fake/Contents" + + b="$D/../build/build" + inst=$("$b" env inst) + source=$("$b" env source) + + mkdir -p "$fake/Contents/Resources" + + for d in share lib; do + ln -s "$inst/$d" "$fake/Contents/Resources/$d" + done + + mkdir "$fake/Contents/MacOS" + + bin="$fake/Contents/MacOS/Gedit" + + printf "#!/bin/bash\n\nexec $b run \"$source/gedit/gedit/gedit\"\n" > "$bin" + chmod u+x "$bin" + + echo "APPL????" > "$fake/Contents/PkgInfo" + + cp "$D/data/Info.plist" "$fake/Contents/" + cp "$D/data/gedit.icns" "$fake/Contents/Resources/" +} + +function cmd_make() { + build_gtk_mac_bundler + + if [ -d "$BUNDLE" ]; then + rm -rf "$BUNDLE" + fi + + b="$D/../build/build" + + # No idea why it's not writable, but we need it to be so that install_name_tool + # can change the link paths + inst=$("$b" env inst) + chmod u+w "$inst/lib/libpython3.3m.dylib" + + lbin=$("$b" env local-bin) + + echo "Generating bundle from Gedit.bundle specification..." + "$b" run "$lbin/gtk-mac-bundler" "$D/data/Gedit.bundle" || exit 1 + + mv "$D/data/$BUNDLE_NAME.app" "$BUNDLE" + + echo "Removing unneeded files from bundle" + + # Remove pyc and pyo files + for d in lib share/gedit/plugins; do + find "$BUNDLE/Contents/Resources/$d/"* -type f -regex '.*\.py[oc]' -exec 'rm -f {}' 2>/dev/null + find "$BUNDLE/Contents/Resources/$d/"* -type d -name '__pycache__' -exec 'rmdir {}' 2>/dev/null + done + + echo "Creating localized names..." + locales=$(find "$inst/share/locale" -name gedit.mo | sed 's/.*locale\/\([^\/]*\)\/.*/\1/g' | /usr/bin/grep -v @) + + for locale in en $locales; do + printf "$locale " + ldir="$BUNDLE/Contents/Resources/$locale.lproj" + + lname=$(LANG=$locale "$b" run gettext gedit "Text Editor") + + mkdir -p "$ldir" + + echo "CFBundleName = \"Gedit\";" > "$ldir/InfoPlist.strings" + echo "CFBundleDisplayName = \"Gedit $lname\";" >> "$ldir/InfoPlist.strings" + done + + printf ", done...\n\nDo you want to strip debug symbols? [\033[1myes\033[0m/no] " + read strip + + if [ "$strip" = "yes" ] || [ -z "$strip" ]; then + echo "Strip debug symbols from bundle binaries" + + # Strip debug symbols from libraries/modules + for i in $(find -E "$BUNDLE/Contents/Resources" -type f -regex '.*\.(so|dylib)$' 2>/dev/null); do + do_strip "$i" + done + + # Strip debug symbols from binaries + for i in $(find "$BUNDLE/Contents/Resources/bin" -type f 2>/dev/null); do + if [ -x "$i" ]; then + do_strip "$i" + fi + done + + # Strip debug symbols from main binary + do_strip "$BUNDLE/Contents/MacOS/gedit-bin" + fi +} + +function help_help_short() { + echo "Shows this help message" +} + +function cmd_help() { + if [ -z "$1" ]; then + echo "Usage: $ME [command]" + echo "" + echo "Available commands:" + echo "" + + for cmd in "${commands[@]}"; do + printf " \033[1m$cmd\x1B[0m " + + l=${#cmd} + let d="$commandsmaxlen - $l + 1" + + printf "%${d}s" "" + echo -n "- " + + icmd=${cmd/-/_} + + if [[ $(type -t "${icmd}_help_short") = "function" ]]; then + "${icmd}_help_short" + else + echo "" + fi + done + + echo "" + else + cmd="cmd_${1/-/_}" + + if [[ $(type -t "$cmd") != "function" ]]; then + printf "Invalid command \033[1m$1\033[0m, available commands are: $cmds\n" + exit 1 + fi + + printf "Usage: $ME \033[1m$1\033[0m " + + if [[ $(type -t "${1/-/_}_help_usage") = "function" ]]; then + "${1/-/_}_help_usage" + else + echo "" + fi + + echo "" + + if [[ $(type -t "${1/-/_}_help_long") != "function" ]]; then + "${1/-/_}_help_short" + else + "${1/-/_}_help_long" + fi + fi +} + +commands=() +commandsmaxlen=0 + +while read line +do + cmd=${line#declare -f } + + if [[ "$cmd" = cmd_* ]]; then + cname=${cmd#cmd_} + + commands+=(${cname/_/-}) + + l=${#cname} + + if [[ $l > $commandsmaxlen ]]; then + commandsmaxlen=$l + fi + fi +done < <(declare -F) + +cmds=$(printf ", \033[1m%s\033[0m" "${commands[@]}") +cmds=${cmds:2} + +if [ -z "$1" ]; then + cmd_help + exit 0 +fi + +cmd="cmd_${1/-/_}" + +if [[ $(type -t "$cmd") != "function" ]]; then + printf "Invalid command $1, available commands are: $cmds\n" + exit 1 +fi + +shift 1 +"$cmd" "$@" diff --git a/build-aux/osx/bundle/data/Info.plist.in b/build-aux/osx/bundle/data/Info.plist.in new file mode 100644 index 0000000..381cbea --- /dev/null +++ b/build-aux/osx/bundle/data/Info.plist.in @@ -0,0 +1,268 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + Gedit + CFBundleGetInfoString + @VERSION@ Copyright 2009, Gedit + CFBundleIconFile + gedit.icns + CFBundleIdentifier + org.gnome.Gedit + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + APPL + CFBundleShortVersionString + @VERSION@ + CFBundleSignature + ???? + CFBundleVersion + @VERSION@ + NSHumanReadableCopyright + Copyright 2009 Gedit, GNU General Public License. + LSMinimumSystemVersion + 10.7 + CFBundleName + Gedit + CFBundleDisplayName + Gedit + NSHighResolutionCapable + + NSHighResolutionMagnifyAllowed + + CFBundleDocumentTypes + + + CFBundleTypeExtensions + + * + F + F90 + Filemaker + M + act3 + ada + applescript + as + asm + asp + awk + bak + bash + b + bf + brainfuck + c + cgi + c++ + cfm + cob + conf + cp + cpp + cs + csh + css + CSS + csv + custom + cxx + def + default + do + dtd + dxf + enc + eps + err + f + f90 + fcgi + for + fs + fscript + gcc + h + hpgl + htm + HTM + html + ics + idl + inc + ini + java + javascript + js + las + lasso + latex + lgt + lisp + log + ltx + lua + m + m1s + mel + m4 + mk + mm + msl + mtl + mws + mx + mxo + mysql + njs + p + ps + pas + pch + php + php3 + php4 + phtml + pl + plist + pm + pod + postgresql + pike + pp + pro + py + python + pyw + r + rb + rc + reb + rebol + rsp + rtf + ruby + rxp + s + sgml + sh + shtm + shtml + sieve + sl + strings + sty + sps + spss + sql + SQL + st + svg + tab + tcl + tcsh + tex + text + txt + types + uue + v + vbs + vcard + vcs + verilog + vhd + vhdl + vrm + vrml + wmk + x + xhtml + xml + xsl + xslt + yaml + + CFBundleTypeIconFile + geditdoc + CFBundleTypeMIMETypes + + application/base64 + application/dxf + application/php + application/plain + application/postscript + application/rtf + application/vnd.hp-hpgl + application/x-bsh + application/x-csh + application/x-javascript + application/x-latex + application/x-meme + application/x-pointplus + application/x-rtf + application/x-seelogo + application/x-sh + application/x-shar + application/x-tcl + application/x-tex + application/x-vrml + application/xml + image/svg+xml + image/svg-xml + image/vnd.dwg + image/x-dwg + image/x-xpixmap + model/vrml + text/asp + text/calendar + text/css + text/directory + text/html + text/javascript + text/pascal + text/php + text/plain + text/richtext + text/sgml + text/vcard + text/x-asm + text/x-c + text/x-fortran + text/x-h + text/x-java-source + text/x-m + text/x-pascal + text/x-perl-script + text/x-php-script + text/x-script.csh + text/x-script.perl-module + text/x-script.perl + text/x-script.phyton + text/x-script.sh + text/x-script.tcl + text/x-script.tcsh + text/x-server-parsed-html + text/x-sgml + text/x-uuencode + text/x-vcalendar + text/x-vcard + text/xml + x-world/x-vrml + + CFBundleTypeName + Gedit Document + CFBundleTypeOSTypes + + **** + + CFBundleTypeRole + Editor + + + + diff --git a/build-aux/osx/bundle/data/gedit b/build-aux/osx/bundle/data/gedit new file mode 100755 index 0000000..391fbbb --- /dev/null +++ b/build-aux/osx/bundle/data/gedit @@ -0,0 +1,66 @@ +#!/bin/bash + +if test "x$GTK_DEBUG_LAUNCHER" != x; then + set -x +fi + +if test "x$GTK_DEBUG_GDB" != x; then + EXEC="lldb --" +elif test "x$GTK_DEBUG_DTRUSS" != x; then + EXEC="sudo dtruss sudo -u $USER" +else + EXEC=exec +fi + +name=$(basename "$0") +dirn=$(dirname "$0") + +pushd "$dirn/../../" > /dev/null +bundle=$(pwd -P) +popd > /dev/null + +bundle_contents="$bundle"/Contents +bundle_res="$bundle_contents"/Resources +bundle_lib="$bundle_res"/lib +bundle_bin="$bundle_res"/bin +bundle_data="$bundle_res"/share +bundle_etc="$bundle_res"/etc + +export PATH="$bundle_bin:$PATH" +export DYLD_LIBRARY_PATH="$bundle_lib:$DYLD_LIBRARY_PATH" +export XDG_CONFIG_DIRS="$bundle_etc:$XDG_CONFIG_DIRS" +export XDG_DATA_DIRS="$bundle_data:$XDG_DATA_DIRS" +export GTK_DATA_PREFIX="$bundle_res" +export GTK_EXE_PREFIX="$bundle_res" +export GTK_PATH="$bundle_res" +export GDK_PIXBUF_MODULE_FILE="$bundle_lib/gdk-pixbuf-2.0/2.10.0/loaders.cache" +#export GIO_EXTRA_MODULES="$bundle_lib/gio/modules" +export GI_TYPELIB_PATH="$bundle_lib/girepository-1.0" +export PYTHONPATH="$bundle_lib/python3.3/site-packages" +export PYTHONHOME="$bundle_res" +export PANGO_LIBDIR="$bundle_lib" +export PANGO_SYSCONFDIR="$bundle_etc" +export PEAS_PLUGIN_LOADERS_DIR="$bundle_lib/libpeas-1.0/loaders" +export ENCHANT_MODULES_DIR="$bundle_lib/enchant" +export ENCHANT_DATA_DIR="$bundle_data/enchant" + +if test -f "$bundle_lib/charset.alias"; then + export CHARSETALIASDIR="$bundle_lib" +fi + +# Extra arguments can be added in environment.sh. +EXTRA_ARGS= +if test -f "$bundle_res/environment.sh"; then + source "$bundle_res/environment.sh" +fi + +# Strip out the argument added by the OS. +if [ x`echo "x$1" | sed -e "s/^x-psn_.*//"` == x ]; then + shift 1 +fi + +if [ "x$GTK_DEBUG_SHELL" != "x" ]; then + exec bash +else + $EXEC "$bundle_contents/MacOS/$name-bin" "$@" $EXTRA_ARGS +fi diff --git a/build-aux/osx/bundle/data/gedit.bundle b/build-aux/osx/bundle/data/gedit.bundle new file mode 100644 index 0000000..edb138f --- /dev/null +++ b/build-aux/osx/bundle/data/gedit.bundle @@ -0,0 +1,122 @@ + + + + + + gtk+-3.0 + ${env:JHBUILD_PREFIX} + + + + + ${project}/Gedit + + + + + ${project}/Info.plist + ${prefix}/bin/gedit + + + ${prefix}/lib/libgit2-glib*.dylib + + + ${prefix}/lib/gtk-3.0/${pkg:gtk+-3.0:gtk_binary_version}/printbackends/*.so + + + ${prefix}/lib/gtk-3.0/${pkg:gtk+-3.0:gtk_binary_version}/immodules/*.so + + + ${prefix}/lib/pango/${pkg:pango:pango_module_version}/modules/*.so + + + ${prefix}/lib/gdk-pixbuf-2.0/${pkg:gdk-pixbuf-2.0:gdk_pixbuf_binary_version}/loaders/*.so + + + ${prefix}/lib/libpeas-1.0/loaders/*.so + ${prefix}/lib/gedit/plugins/*.so + + + ${prefix}/lib/enchant/libenchant_applespell.so + + + ${prefix}/lib/libpeas-1.0/loaders/*.so + + + ${prefix}/lib/girepository-1.0 + + + ${prefix}/lib/gedit/girepository-1.0 + + + + ${prefix}/lib/python3.3/site-packages/cairo/*.so + ${prefix}/lib/python3.3/site-packages/gi/*.so + + + + ${prefix}/include/python3.3m/pyconfig.h + + ${prefix}/lib/python3.3/lib-dynload/*.so + ${prefix}/lib/python3.3 + ${prefix}/bin/python3 + + + ${prefix}/etc/gtk-3.0/* + + + ${prefix}/share/gtksourceview-4 + + + ${prefix}/share/gedit + ${prefix}/lib/gedit + + + ${prefix}/share/locale + ${prefix}/lib/charset.alias + + + ${prefix}/share/mime + + + ${prefix}/share/xml/iso-codes + + + ${prefix}/share/themes/Default + ${prefix}/share/themes/Adwaita + ${prefix}/share/themes/HighContrast + ${prefix}/share/themes/Mac + + + ${project}/gedit.icns + ${project}/geditdoc.icns + + + ${prefix}/share/glib-2.0/schemas/gschemas.compiled + + + Adwaita + gnome + diff --git a/build-aux/osx/bundle/data/gedit.icns b/build-aux/osx/bundle/data/gedit.icns new file mode 100644 index 0000000..a0bd725 Binary files /dev/null and b/build-aux/osx/bundle/data/gedit.icns differ diff --git a/build-aux/osx/bundle/data/geditdoc.icns b/build-aux/osx/bundle/data/geditdoc.icns new file mode 100644 index 0000000..cea4481 Binary files /dev/null and b/build-aux/osx/bundle/data/geditdoc.icns differ diff --git a/build-aux/osx/bundle/data/geditpkg.icns b/build-aux/osx/bundle/data/geditpkg.icns new file mode 100644 index 0000000..92e7add Binary files /dev/null and b/build-aux/osx/bundle/data/geditpkg.icns differ diff --git a/build-aux/osx/bundle/data/template.dmg.bz2 b/build-aux/osx/bundle/data/template.dmg.bz2 new file mode 100644 index 0000000..b6450e2 Binary files /dev/null and b/build-aux/osx/bundle/data/template.dmg.bz2 differ diff --git a/build-aux/osx/bundle/images/background.png b/build-aux/osx/bundle/images/background.png new file mode 100644 index 0000000..88c8809 Binary files /dev/null and b/build-aux/osx/bundle/images/background.png differ diff --git a/build-aux/osx/bundle/images/background.svg b/build-aux/osx/bundle/images/background.svg new file mode 100644 index 0000000..1473073 --- /dev/null +++ b/build-aux/osx/bundle/images/background.svg @@ -0,0 +1,1456 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + TM + + + 3.14 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build-aux/osx/bundle/images/gedit-128x128.png b/build-aux/osx/bundle/images/gedit-128x128.png new file mode 100644 index 0000000..fbd288d Binary files /dev/null and b/build-aux/osx/bundle/images/gedit-128x128.png differ diff --git a/build-aux/osx/bundle/images/gedit-16x16.png b/build-aux/osx/bundle/images/gedit-16x16.png new file mode 100644 index 0000000..3763b42 Binary files /dev/null and b/build-aux/osx/bundle/images/gedit-16x16.png differ diff --git a/build-aux/osx/bundle/images/gedit-256x256.png b/build-aux/osx/bundle/images/gedit-256x256.png new file mode 100644 index 0000000..ec3732b Binary files /dev/null and b/build-aux/osx/bundle/images/gedit-256x256.png differ diff --git a/build-aux/osx/bundle/images/gedit-32x32.png.png b/build-aux/osx/bundle/images/gedit-32x32.png.png new file mode 100644 index 0000000..264f585 Binary files /dev/null and b/build-aux/osx/bundle/images/gedit-32x32.png.png differ diff --git a/build-aux/osx/bundle/images/gedit-512x512.png b/build-aux/osx/bundle/images/gedit-512x512.png new file mode 100644 index 0000000..b76b2ee Binary files /dev/null and b/build-aux/osx/bundle/images/gedit-512x512.png differ diff --git a/build-aux/osx/bundle/images/gedit-icon.svg b/build-aux/osx/bundle/images/gedit-icon.svg new file mode 100644 index 0000000..0a61cab --- /dev/null +++ b/build-aux/osx/bundle/images/gedit-icon.svg @@ -0,0 +1,24452 @@ + + + + + Text Editor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + Jakub Steiner + + + http://jimmac.musichall.cz + + Text Editor + + + text + editor + gedit + + + + + + + + + + + + + + + + + + + + + Lapo Calamandrei + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + STOP BIKESHEDDING + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + STOP BIKESHEDDING + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + STOP BIKESHEDDING + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build-aux/osx/bundle/images/gedit-pkg-128x128.png b/build-aux/osx/bundle/images/gedit-pkg-128x128.png new file mode 100644 index 0000000..35bd323 Binary files /dev/null and b/build-aux/osx/bundle/images/gedit-pkg-128x128.png differ diff --git a/build-aux/osx/bundle/images/gedit-pkg-16x16.png b/build-aux/osx/bundle/images/gedit-pkg-16x16.png new file mode 100644 index 0000000..1609741 Binary files /dev/null and b/build-aux/osx/bundle/images/gedit-pkg-16x16.png differ diff --git a/build-aux/osx/bundle/images/gedit-pkg-256x256.png b/build-aux/osx/bundle/images/gedit-pkg-256x256.png new file mode 100644 index 0000000..d570368 Binary files /dev/null and b/build-aux/osx/bundle/images/gedit-pkg-256x256.png differ diff --git a/build-aux/osx/bundle/images/gedit-pkg-32x32.png b/build-aux/osx/bundle/images/gedit-pkg-32x32.png new file mode 100644 index 0000000..02484b2 Binary files /dev/null and b/build-aux/osx/bundle/images/gedit-pkg-32x32.png differ diff --git a/build-aux/osx/bundle/images/gedit-pkg-512x512.png b/build-aux/osx/bundle/images/gedit-pkg-512x512.png new file mode 100644 index 0000000..f2048aa Binary files /dev/null and b/build-aux/osx/bundle/images/gedit-pkg-512x512.png differ diff --git a/build-aux/osx/bundle/images/gedit-pkg-icon.svg b/build-aux/osx/bundle/images/gedit-pkg-icon.svg new file mode 100644 index 0000000..277b825 --- /dev/null +++ b/build-aux/osx/bundle/images/gedit-pkg-icon.svg @@ -0,0 +1,34171 @@ + + + + + Text Editor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + Jakub Steiner + + + http://jimmac.musichall.cz + + Text Editor + + + text + editor + gedit + + + + + + + + + + + + + + + + + + + + + Lapo Calamandrei + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + STOP BIKESHEDDING + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + STOP BIKESHEDDING + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + STOP BIKESHEDDING + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build-aux/snap/snapcraft.yaml b/build-aux/snap/snapcraft.yaml new file mode 100644 index 0000000..fc49c39 --- /dev/null +++ b/build-aux/snap/snapcraft.yaml @@ -0,0 +1,192 @@ +name: gedit +version: git +adopt-info: gedit +grade: stable # must be 'stable' to release into candidate/stable channels +confinement: strict +base: core18 + +layout: + /usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libpeas-1.0: + symlink: $SNAP/gnome-platform/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libpeas-1.0 + /usr/lib/$SNAPCRAFT_ARCH_TRIPLET/gedit: + symlink: $SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/gedit + /usr/share/gedit: + symlink: $SNAP/usr/share/gedit + +slots: + # for GtkApplication registration + gedit: + interface: dbus + bus: session + name: org.gnome.gedit + +apps: + gedit: + command: usr/bin/gedit + extensions: [gnome-3-28] + plugs: + - avahi-observe + - cups-control + - gsettings + - home + - network + - mount-observe + - removable-media + common-id: org.gnome.gedit.desktop + environment: + GSETTINGS_SCHEMA_DIR: $SNAP/share/glib-2.0/schemas + LD_LIBRARY_PATH: $LD_LIBRARY_PATH:$SNAP/lib/$SNAPCRAFT_ARCH_TRIPLET/gedit:$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET:$SNAP/gnome-platform/usr/lib/$SNAPCRAFT_ARCH_TRIPLET + GI_TYPELIB_PATH: $SNAP/usr/lib/girepository-1.0:$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/gedit/girepository-1.0:$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/girepository-1.0:$SNAP/gnome-platform/usr/lib/girepository-1.0:$SNAP/gnome-platform/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/girepository-1.0 + PYTHONPATH: $SNAP/usr/lib/python3/dist-packages:$SNAP/gnome-platform/usr/lib/python3/dist-packages + GTK_USE_PORTAL: 1 + +parts: + amtk: + source: https://gitlab.gnome.org/GNOME/amtk.git + source-type: git + plugin: autotools + configflags: + - --prefix=/usr + - --enable-introspection=no + organize: + snap/gedit/current/usr: usr + + tepl: + after: [amtk, gtksourceview] + source: https://gitlab.gnome.org/GNOME/tepl.git + source-type: git + plugin: meson + meson-parameters: + - --prefix=/usr + organize: + snap/gedit/current/usr: usr + build-packages: + - libuchardet-dev + stage-packages: + - libuchardet0 + + gtksourceview: + source: https://gitlab.gnome.org/GNOME/gtksourceview.git + source-type: git + plugin: meson + meson-parameters: + - --prefix=/usr + - -Dc_args="-Wno-error=undef" + organize: + snap/gedit/current/usr: usr + build-packages: + - autoconf-archive + - gettext + - gobject-introspection + - gtk-doc-tools + - libfribidi-dev + - libgirepository1.0-dev + - libglib2.0-dev + - libgtk-3-dev + - libpeas-dev + - libxml2-dev + - libxml2-utils + - valac + # meson gir overrides don't work well + override-build: | + snapcraftctl build + cp $SNAPCRAFT_PART_INSTALL/usr/share/gir-1.0/GtkSource* /usr/share/gir-1.0 + cp $SNAPCRAFT_PART_INSTALL/usr/share/vala/vapi/gtksource* /usr/share/vala/vapi + + gedit: + after: [gtksourceview, tepl] + source: . + source-type: git + parse-info: [usr/share/metainfo/org.gnome.gedit.appdata.xml] + plugin: meson + meson-parameters: + - --prefix=/usr + - -Dvala_args="--vapidir=$SNAPCRAFT_STAGE/usr/share/vala/vapi" + build-environment: + - C_INCLUDE_PATH: $SNAPCRAFT_STAGE/usr/include/gtksourceview-4 + override-build: | + sed -i.bak -e 's|Icon=org.gnome.gedit$|Icon=${SNAP}/meta/gui/org.gnome.gedit.svg|g' data/org.gnome.gedit.desktop.in + sed -i.bak -e "s|symlink_media: true|symlink_media: false|g" help/meson.build + snapcraftctl build + mkdir -p $SNAPCRAFT_PART_INSTALL/meta/gui/ + cp data/icons/org.gnome.gedit.svg $SNAPCRAFT_PART_INSTALL/meta/gui/ + cp ../install/usr/share/applications/org.gnome.gedit.desktop $SNAPCRAFT_PART_INSTALL/meta/gui/ + build-packages: + - desktop-file-utils + - gettext + - gsettings-desktop-schemas-dev + - gtk-doc-tools + - itstool + - libsoup2.4-dev + - libgspell-1-dev + - libxml2-dev + - libglib2.0-dev + - libgtk-3-dev + - libpeas-dev + - libx11-dev + - python3 + - python-gi-dev + - gobject-introspection + - libgirepository1.0-dev + - valac + stage-packages: + - libfribidi0 + + gedit-plugins: + after: [gedit] + source: https://gitlab.gnome.org/GNOME/gedit-plugins.git + source-type: git + plugin: meson + meson-parameters: + - --prefix=/snap/gedit/current/usr + - -Dplugin_bookmarks=true + - -Dplugin_bracketcompletion=true + - -Dplugin_charmap=true + - -Dplugin_codecomment=true + - -Dplugin_colorpicker=true + - -Dplugin_colorschemer=true + - -Dplugin_commander=false + - -Dplugin_drawspaces=true + - -Dplugin_findinfiles=false + - -Dplugin_git=true + - -Dplugin_joinlines=true + - -Dplugin_multiedit=false + - -Dplugin_smartspaces=true + - -Dplugin_terminal=true + - -Dplugin_textsize=true + - -Dplugin_translate=true + - -Dplugin_wordcompletion=true + - -Dplugin_zeitgeist=false + organize: + snap/gedit/current/usr: usr + build-environment: + - C_INCLUDE_PATH: $SNAPCRAFT_STAGE/usr/include:$SNAPCRAFT_STAGE/usr/include/gedit-3.14:$SNAPCRAFT_STAGE/usr/include/gtksourceview-4 + - LD_LIBRARY_PATH: $LD_LIBRARY_PATH:$SNAPCRAFT_STAGE/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/gedit + - PKG_CONFIG_PATH: $PKG_CONFIG_PATH:$SNAPCRAFT_STAGE/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/pkgconfig + build-packages: + - appstream + - build-essential + - gettext + - gnome-common + - itstool + - libgit2-glib-1.0-dev + - libglib2.0-dev + - libgtk-3-dev + - libgucharmap-2-90-dev + - libvte-2.91-dev + - python3 + - python3-dbus + - python-dbus-dev + - python-gi-dev + - yelp-tools + stage-packages: + - python3 + - python3-dbus + - python3-gi + - python3-setuptools +# Zeitgeist plugin isn't as useful in a Snap. + stage: + - -usr/lib/gedit/plugins/libzeitgeist.so + - -usr/lib/gedit/plugins/zeitgeist.plugin + - -usr/share/help/*/gedit/zeitgeist-dataprovider.page + - -usr/share/metainfo/gedit-zeitgeist.metainfo.xml -- cgit v1.2.3