diff options
Diffstat (limited to 'patches/source/glib2')
-rw-r--r-- | patches/source/glib2/0001-GDBusProxy-Fix-a-memory-leak-during-initialization.patch | 25 | ||||
-rw-r--r-- | patches/source/glib2/doinst.sh | 32 | ||||
-rw-r--r-- | patches/source/glib2/glib.bug.758823.diff | 40 | ||||
-rwxr-xr-x | patches/source/glib2/glib2.SlackBuild | 145 | ||||
-rw-r--r-- | patches/source/glib2/libglib2.csh | 27 | ||||
-rw-r--r-- | patches/source/glib2/libglib2.sh | 26 | ||||
-rw-r--r-- | patches/source/glib2/slack-desc | 19 |
7 files changed, 314 insertions, 0 deletions
diff --git a/patches/source/glib2/0001-GDBusProxy-Fix-a-memory-leak-during-initialization.patch b/patches/source/glib2/0001-GDBusProxy-Fix-a-memory-leak-during-initialization.patch new file mode 100644 index 000000000..a315a01b0 --- /dev/null +++ b/patches/source/glib2/0001-GDBusProxy-Fix-a-memory-leak-during-initialization.patch @@ -0,0 +1,25 @@ +From db641e32920ee8b553ab6f2d318aafa156e4390c Mon Sep 17 00:00:00 2001 +From: Evangelos Foutras <evangelos@foutrelis.com> +Date: Wed, 25 Nov 2015 23:29:18 +0200 +Subject: [PATCH] GDBusProxy: Fix a memory leak during initialization + +https://bugzilla.gnome.org/show_bug.cgi?id=758641 +--- + gio/gdbusproxy.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/gio/gdbusproxy.c b/gio/gdbusproxy.c +index 52a22fb..7b1140f 100644 +--- a/gio/gdbusproxy.c ++++ b/gio/gdbusproxy.c +@@ -1720,6 +1720,7 @@ async_initable_init_second_finish (GAsyncInitable *initable, + if (result != NULL) + { + process_get_all_reply (proxy, result); ++ g_variant_unref (result); + } + + proxy->priv->initialized = TRUE; +-- +2.6.3 + diff --git a/patches/source/glib2/doinst.sh b/patches/source/glib2/doinst.sh new file mode 100644 index 000000000..a14f9606c --- /dev/null +++ b/patches/source/glib2/doinst.sh @@ -0,0 +1,32 @@ +# Handle the incoming configuration files: +config() { + for infile in $1; do + NEW="$infile" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then + # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... + done +} + +# Prepare the new configuration files +for file in etc/profile.d/libglib2.csh.new etc/profile.d/libglib2.sh.new ; do + if test -e $(dirname $file)/$(basename $file .new) ; then + if [ ! -x $(dirname $file)/$(basename $file .new) ]; then + chmod 644 $file + else + chmod 755 $file + fi + fi + config $file +done + +# Try to run these. If they fail, no biggie. +chroot . /usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas/ 1> /dev/null 2> /dev/null +chroot . /usr/bin/gio-querymodules @LIBDIR@/gio/modules/ 1> /dev/null 2> /dev/null + diff --git a/patches/source/glib2/glib.bug.758823.diff b/patches/source/glib2/glib.bug.758823.diff new file mode 100644 index 000000000..e92c03687 --- /dev/null +++ b/patches/source/glib2/glib.bug.758823.diff @@ -0,0 +1,40 @@ +From 30359e740953b596d6c3d980dba36dd131681a1f Mon Sep 17 00:00:00 2001 +From: Allison Ryan Lortie <desrt@desrt.ca> +Date: Mon, 30 Nov 2015 10:13:46 -0500 +Subject: file monitors: reorder some code to avoid segfault + +We must initialise '->source' before we use fields inside of it. + +https://bugzilla.gnome.org/show_bug.cgi?id=758823 +--- + gio/glocalfilemonitor.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/gio/glocalfilemonitor.c b/gio/glocalfilemonitor.c +index dbd62ec..49a4dd2 100644 +--- a/gio/glocalfilemonitor.c ++++ b/gio/glocalfilemonitor.c +@@ -748,6 +748,9 @@ g_local_file_monitor_start (GLocalFileMonitor *local_monitor, + + g_assert (!local_monitor->source); + ++ source = g_file_monitor_source_new (local_monitor, filename, is_directory, flags); ++ local_monitor->source = source; /* owns the ref */ ++ + if (is_directory && !class->mount_notify && (flags & G_FILE_MONITOR_WATCH_MOUNTS)) + { + #ifdef G_OS_WIN32 +@@ -771,9 +774,6 @@ g_local_file_monitor_start (GLocalFileMonitor *local_monitor, + #endif + } + +- source = g_file_monitor_source_new (local_monitor, filename, is_directory, flags); +- local_monitor->source = source; /* owns the ref */ +- + G_LOCAL_FILE_MONITOR_GET_CLASS (local_monitor)->start (local_monitor, + source->dirname, source->basename, source->filename, + source); +-- +cgit v0.12 + + diff --git a/patches/source/glib2/glib2.SlackBuild b/patches/source/glib2/glib2.SlackBuild new file mode 100755 index 000000000..0b39949ac --- /dev/null +++ b/patches/source/glib2/glib2.SlackBuild @@ -0,0 +1,145 @@ +#!/bin/sh + +# Copyright 2008, 2009, 2010, 2011, 2015, 2016 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +VERSION=${VERSION:-$(echo glib-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +BUILD=${BUILD:-3_slack14.2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i586 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-glib2 + +if [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG/usr +cd $TMP +rm -rf glib-$VERSION +tar xvf $CWD/glib-$VERSION.tar.?z* || exit 1 +cd glib-$VERSION || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Silly upstream, using the bleeding edge. Reconf: +#autoreconf --force --install + +cat $CWD/0001-GDBusProxy-Fix-a-memory-leak-during-initialization.patch | patch -p1 --verbose || exit 1 + +# Patch from upsteam, fixes use-before-allocate bug: +cat $CWD/glib.bug.758823.diff | patch -p1 --verbose || exit 1 + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --disable-libelf \ + --build=$ARCH-slackware-linux || exit 1 + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Install profile scripts: +mkdir -p $PKG/etc/profile.d/ +cp -a $CWD/libglib2.{csh,sh} $PKG/etc/profile.d/ +chown root:root $PKG/etc/profile.d/* +chmod 755 $PKG/etc/profile.d/* +mv $PKG/etc/profile.d/libglib2.csh $PKG/etc/profile.d/libglib2.csh.new +mv $PKG/etc/profile.d/libglib2.sh $PKG/etc/profile.d/libglib2.sh.new + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/usr/doc/glib-$VERSION +cp -a \ + AUTHORS COPYING* NEWS README* \ + $PKG/usr/doc/glib-$VERSION + rm -f $PKG/usr/doc/glib-$VERSION/README.{in,win32} +( cd $PKG/usr/doc/glib-$VERSION ; ln -s /usr/share/gtk-doc/html/gobject html ) + +# If there's a ChangeLog, installing at least part of the recent history +# is useful, but don't let it get totally out of control: +if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog +fi + +# Trim down bloated NEWS file: +if [ -r NEWS ]; then + DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION) + cat NEWS | head -n 1000 > $DOCSDIR/NEWS + touch -r NEWS $DOCSDIR/NEWS +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz | sed "s,@LIBDIR@,/usr/lib${LIBDIRSUFFIX}," > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n --prepend $TMP/glib2-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/glib2/libglib2.csh b/patches/source/glib2/libglib2.csh new file mode 100644 index 000000000..a1b675615 --- /dev/null +++ b/patches/source/glib2/libglib2.csh @@ -0,0 +1,27 @@ +#!/bin/csh +# +# Description: This script sets the environment variables G_FILENAME_ENCODING +# and G_BROKEN_FILENAMES for the glib-2.0 library. +# +# G_FILENAME_ENCODING +# This environment variable can be set to a comma-separated list of +# character set names. GLib assumes that filenames are encoded in the +# first character set from that list rather than in UTF-8. The special +# token "@locale" can be used to specify the character set for the +# current locale. +# +# G_BROKEN_FILENAMES +# If this environment variable is set, GLib assumes that filenames are +# in the locale encoding rather than in UTF-8. + +# If the LANG you have set contains any form of "UTF", we will guess you are +# using a UTF-8 locale. Hopefully we're correct. +echo $LANG | grep -iq UTF +if ($status == 0) then + setenv G_FILENAME_ENCODING "@locale" +endif + +# It doesn't hurt to export this since G_FILENAME_ENCODING takes priority +# over G_BROKEN_FILENAMES: +setenv G_BROKEN_FILENAMES 1 + diff --git a/patches/source/glib2/libglib2.sh b/patches/source/glib2/libglib2.sh new file mode 100644 index 000000000..9b9fdc69f --- /dev/null +++ b/patches/source/glib2/libglib2.sh @@ -0,0 +1,26 @@ +#!/bin/sh +# +# Description: This script sets the environment variables G_FILENAME_ENCODING +# and G_BROKEN_FILENAMES for the glib-2.0 library. +# +# G_FILENAME_ENCODING +# This environment variable can be set to a comma-separated list of +# character set names. GLib assumes that filenames are encoded in the +# first character set from that list rather than in UTF-8. The special +# token "@locale" can be used to specify the character set for the +# current locale. +# +# G_BROKEN_FILENAMES +# If this environment variable is set, GLib assumes that filenames are +# in the locale encoding rather than in UTF-8. + +# If the LANG you have set contains any form of "UTF", we will guess you are +# using a UTF-8 locale. Hopefully we're correct. +if echo $LANG | grep -iq UTF ; then + export G_FILENAME_ENCODING="@locale" +fi + +# It doesn't hurt to export this since G_FILENAME_ENCODING takes priority +# over G_BROKEN_FILENAMES: +export G_BROKEN_FILENAMES=1 + diff --git a/patches/source/glib2/slack-desc b/patches/source/glib2/slack-desc new file mode 100644 index 000000000..1633f2f7a --- /dev/null +++ b/patches/source/glib2/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +glib2: glib2 (library of C routines) +glib2: +glib2: GLib is a library which includes support routines for C such as lists, +glib2: trees, hashes, memory allocation, and many other things. +glib2: +glib2: +glib2: +glib2: +glib2: +glib2: +glib2: |