summaryrefslogtreecommitdiffstats
path: root/source/xap
diff options
context:
space:
mode:
Diffstat (limited to 'source/xap')
-rwxr-xr-xsource/xap/MPlayer/MPlayer.SlackBuild4
-rwxr-xr-xsource/xap/audacious-plugins/audacious-plugins.SlackBuild6
-rw-r--r--source/xap/audacious-plugins/audacious-plugins.alsa.noise.is.not.helpful.diff25
-rwxr-xr-xsource/xap/audacious/audacious.SlackBuild2
-rwxr-xr-xsource/xap/blackbox/blackbox.SlackBuild4
-rw-r--r--source/xap/blackbox/xinitrc.blackbox6
-rwxr-xr-xsource/xap/blueman/blueman.SlackBuild16
-rw-r--r--source/xap/blueman/fix_on_off_loop.diff58
-rw-r--r--source/xap/blueman/no_hide_applet.diff30
-rwxr-xr-xsource/xap/fluxbox/fluxbox.SlackBuild20
-rw-r--r--source/xap/fluxbox/xinitrc.fluxbox6
-rwxr-xr-xsource/xap/fvwm/fvwm.SlackBuild14
-rw-r--r--source/xap/fvwm/xinitrc.fvwm27
-rwxr-xr-xsource/xap/geeqie/geeqie.SlackBuild14
-rwxr-xr-xsource/xap/gimp/gimp.SlackBuild14
-rw-r--r--source/xap/gimp/gimp.png14.diff19
-rwxr-xr-xsource/xap/gkrellm/gkrellm.SlackBuild6
-rwxr-xr-xsource/xap/gnuchess/gnuchess.SlackBuild24
-rw-r--r--source/xap/gnuchess/gnuchess.SlackBuild.diff89
-rw-r--r--source/xap/gnuchess/gnuchess.gcc4_fix.diff11
-rw-r--r--source/xap/gnuchess/gnuchess.getline.glibc.diff39
-rw-r--r--source/xap/gnuchess/xboard.desktop2
-rwxr-xr-xsource/xap/gnuplot/gnuplot.SlackBuild14
-rwxr-xr-xsource/xap/gucharmap/gucharmap.SlackBuild1
-rwxr-xr-xsource/xap/gv/gv.SlackBuild6
-rw-r--r--source/xap/gv/gv.keysym.diff12
-rwxr-xr-xsource/xap/gxine/gxine.SlackBuild99
-rw-r--r--source/xap/gxine/gxine.desktop14
-rw-r--r--source/xap/gxine/slack-desc19
-rwxr-xr-xsource/xap/imagemagick/imagemagick.SlackBuild10
-rwxr-xr-xsource/xap/mozilla-firefox/mozilla-firefox.SlackBuild38
-rwxr-xr-xsource/xap/mozilla-thunderbird/mozilla-thunderbird.SlackBuild12
-rwxr-xr-xsource/xap/pan/pan.SlackBuild21
-rw-r--r--source/xap/pan/pan.gcc44.diff50
-rw-r--r--source/xap/pan/pan.gmime2.4.diff1271
-rwxr-xr-xsource/xap/pidgin/pidgin.SlackBuild4
-rw-r--r--source/xap/rdesktop/rdesktop.CVE-2011-1595.diff22
-rwxr-xr-xsource/xap/rdesktop/rdesktop.SlackBuild21
-rwxr-xr-xsource/xap/sane/sane.SlackBuild9
-rwxr-xr-xsource/xap/seamonkey/seamonkey.SlackBuild40
-rwxr-xr-xsource/xap/windowmaker/windowmaker.SlackBuild2
-rw-r--r--source/xap/windowmaker/xinitrc.wmaker6
-rwxr-xr-xsource/xap/x11-ssh-askpass/x11-ssh-askpass.SlackBuild41
-rw-r--r--source/xap/xaos/slack-desc19
-rw-r--r--source/xap/xaos/xaos.6266
-rwxr-xr-xsource/xap/xaos/xaos.SlackBuild152
-rw-r--r--source/xap/xaos/xaos.desktop10
-rw-r--r--source/xap/xaos/xaos.pngbin0 -> 14980 bytes
-rw-r--r--source/xap/xchat/patches/patches.url1
-rw-r--r--source/xap/xchat/patches/xc286-smallfixes.diff68
-rw-r--r--source/xap/xchat/patches/xchat.gtk_2_14.diff191
-rwxr-xr-xsource/xap/xchat/xchat.SlackBuild6
-rw-r--r--source/xap/xfce/patches/Thunar.thunar-vfs-io-local.diff20
-rw-r--r--source/xap/xfce/patches/fixup_comments_in_xfce-utils-Xft.xrdb.diff24
-rw-r--r--source/xap/xfce/patches/mousepad-fix_find.diff43
-rw-r--r--source/xap/xfce/patches/mousepad-fix_find_and_replace.diff36
-rw-r--r--source/xap/xfce/patches/no_sensitive_panel_during_plugin_moves.patch26
-rw-r--r--source/xap/xfce/patches/terminal.gtk.2.18.fix.diff101
-rw-r--r--source/xap/xfce/patches/thunar-1.0.1-fixup_docdir.diff360
-rw-r--r--source/xap/xfce/patches/thunar-1.0.1-png14.diff11
-rw-r--r--source/xap/xfce/patches/thunar-1.0.2-fixup_docdir.diff384
-rw-r--r--source/xap/xfce/patches/thunar-fix_umask_properly.diff52
-rw-r--r--source/xap/xfce/patches/xfce-utils-load_systemwide_Xmodmap.diff11
-rw-r--r--source/xap/xfce/patches/xfce-utils.xinitrc.consolekit.diff10
-rw-r--r--source/xap/xfce/patches/xfce4-settings.libxklavier5.diff11
-rw-r--r--source/xap/xfce/patches/xfsm-compat-kde.c-start-kde4-services.diff49
-rwxr-xr-xsource/xap/xfce/xfce.SlackBuild114
-rwxr-xr-xsource/xap/xgames/xgames.SlackBuild19
-rw-r--r--source/xap/xine-lib/xine-lib-1.1.17.ff.diff1044
-rwxr-xr-xsource/xap/xine-lib/xine-lib.SlackBuild12
-rw-r--r--source/xap/xine-lib/xine-lib.XvMClib.h.diff22
-rwxr-xr-xsource/xap/xlockmore/xlockmore.SlackBuild28
-rw-r--r--source/xap/xpdf/patches/xpdf-3.02pl5.patch41
-rw-r--r--source/xap/xpdf/patches/xpdf-3.02pl6.patch1
-rw-r--r--source/xap/xpdf/slack-desc2
-rwxr-xr-xsource/xap/xpdf/xpdf.SlackBuild8
-rwxr-xr-xsource/xap/xsane/xsane.SlackBuild8
-rwxr-xr-xsource/xap/xscreensaver/xscreensaver.SlackBuild1
-rw-r--r--source/xap/xxgdb/xxgdb-1.08-glibc.patch10
-rw-r--r--source/xap/xxgdb/xxgdb-1.12-debian-filemenu.patch10
-rw-r--r--source/xap/xxgdb/xxgdb-1.12-debian-pty.patch76
-rw-r--r--source/xap/xxgdb/xxgdb-1.12-mandriva.patch993
-rw-r--r--source/xap/xxgdb/xxgdb-1.12-sysv.patch24
-rwxr-xr-xsource/xap/xxgdb/xxgdb.SlackBuild29
-rw-r--r--source/xap/xxgdb/xxgdb.fix_glibc_and_gcc.diff45
85 files changed, 2643 insertions, 3823 deletions
diff --git a/source/xap/MPlayer/MPlayer.SlackBuild b/source/xap/MPlayer/MPlayer.SlackBuild
index 0ce4b79ed..17b8b0362 100755
--- a/source/xap/MPlayer/MPlayer.SlackBuild
+++ b/source/xap/MPlayer/MPlayer.SlackBuild
@@ -32,7 +32,7 @@
# -----------------------------------------------------------------------------
PRGNAM=MPlayer
-VERSION=${VERSION:-20100218}
+VERSION=${VERSION:-20101218}
BUILD=${BUILD:-1}
TAG=${TAG:-}
@@ -274,8 +274,6 @@ echo Building ...
--enable-largefiles \
--disable-arts \
--codecsdir=${CODECSDIR} \
- --win32codecsdir=${CODECSDIR} \
- --realcodecsdir=${CODECSDIR} \
--language="${LANGUAGES}" \
${EXTRACONFIGUREOPTIONS} \
${DO_PATENTED} \
diff --git a/source/xap/audacious-plugins/audacious-plugins.SlackBuild b/source/xap/audacious-plugins/audacious-plugins.SlackBuild
index 84417ccbc..50274f1f4 100755
--- a/source/xap/audacious-plugins/audacious-plugins.SlackBuild
+++ b/source/xap/audacious-plugins/audacious-plugins.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006, 2007, 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,7 +22,7 @@
PKGNAM=audacious-plugins
-VERSION=${VERSION:-2.3}
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
NUMJOBS=${NUMJOBS:-" -j7 "}
@@ -66,6 +66,8 @@ rm -rf ${PKGNAM}-${VERSION}
tar xvf $CWD/${PKGNAM}-$VERSION.tar.xz || exit 1
cd ${PKGNAM}-$VERSION || exit 1
+zcat $CWD/audacious-plugins.alsa.noise.is.not.helpful.diff.gz | patch -p1 --verbose || exit 1
+
# Make sure ownerships and permissions are sane:
chown -R root:root .
find . \
diff --git a/source/xap/audacious-plugins/audacious-plugins.alsa.noise.is.not.helpful.diff b/source/xap/audacious-plugins/audacious-plugins.alsa.noise.is.not.helpful.diff
new file mode 100644
index 000000000..e904ab8d9
--- /dev/null
+++ b/source/xap/audacious-plugins/audacious-plugins.alsa.noise.is.not.helpful.diff
@@ -0,0 +1,25 @@
+--- ./src/alsa/alsa.c.orig 2011-02-22 11:29:46.000000000 -0600
++++ ./src/alsa/alsa.c 2011-03-11 15:02:53.340999637 -0600
+@@ -207,10 +207,20 @@
+ static gboolean warned = FALSE;
+ if (! warned)
+ {
+- fprintf (stderr, "\n** WARNING **\nAudacious has detected that "
++ /* fprintf (stderr, "\n** WARNING **\nAudacious has detected that "
+ "your ALSA device has a broken timer. A workaround\nis being "
+ "used to prevent CPU overload. Please report this problem to "
+- "your\nLinux distributor or to the ALSA developers.\n\n");
++ "your\nLinux distributor or to the ALSA developers.\n\n"); */
++ /* ^^^ COMMENTED OUT ^^^ */
++
++ /* I'm glad there is a workaround for this, and the reports
++ are that it works, so spamming the console about it seems
++ a little bit extreme. It's not an issue to be solved here
++ by Slackware, and I would be surprised if the ALSA
++ developers did not know by now, given this warning.
++ FWIW, this seems a strange method of communicating with the
++ ALSA developers. Did they report the bug to them? */
++
+ warned = TRUE;
+ }
+
diff --git a/source/xap/audacious/audacious.SlackBuild b/source/xap/audacious/audacious.SlackBuild
index 45b5c1717..4a6514904 100755
--- a/source/xap/audacious/audacious.SlackBuild
+++ b/source/xap/audacious/audacious.SlackBuild
@@ -22,7 +22,7 @@
PKGNAM=audacious
-VERSION=${VERSION:-2.3}
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
NUMJOBS=${NUMJOBS:-" -j7 "}
diff --git a/source/xap/blackbox/blackbox.SlackBuild b/source/xap/blackbox/blackbox.SlackBuild
index 130355f4b..af0004968 100755
--- a/source/xap/blackbox/blackbox.SlackBuild
+++ b/source/xap/blackbox/blackbox.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2006, 2007, 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006, 2007, 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -26,7 +26,7 @@
PKGNAM=blackbox
VERSION=${VERSION:-0.70.1}
BBKEYSVER=${BBKEYSVER:-0.9.1}
-BUILD=${BUILD:-3}
+BUILD=${BUILD:-4}
NUMJOBS=${NUMJOBS:-" -j7 "}
PKGEXT=${PKGEXT:-txz}
diff --git a/source/xap/blackbox/xinitrc.blackbox b/source/xap/blackbox/xinitrc.blackbox
index fbe0997be..58bd92592 100644
--- a/source/xap/blackbox/xinitrc.blackbox
+++ b/source/xap/blackbox/xinitrc.blackbox
@@ -25,4 +25,8 @@ if [ -f $usermodmap ]; then
fi
# Start the window manager:
-exec /usr/bin/blackbox
+if [ -z "$DESKTOP_SESSION" -a -x /usr/bin/ck-launch-session ]; then
+ exec ck-launch-session /usr/bin/blackbox
+else
+ exec /usr/bin/blackbox
+fi
diff --git a/source/xap/blueman/blueman.SlackBuild b/source/xap/blueman/blueman.SlackBuild
index bdb134e0f..737dae98a 100755
--- a/source/xap/blueman/blueman.SlackBuild
+++ b/source/xap/blueman/blueman.SlackBuild
@@ -26,7 +26,6 @@
PKGNAM=blueman
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
-POLKIT_OPTION=" --disable-polkit "
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -71,17 +70,13 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-# Address a couple of bugs that have been fixed in the bzr repo
-zcat $CWD/no_hide_applet.diff.gz | patch -p0 --verbose || exit 1
-zcat $CWD/fix_on_off_loop.diff.gz | patch -p0 --verbose || exit 1
-
# Use blueman-open, a modified version of this, to browse obexfs shares:
# http://www.kde-apps.org/content/show.php/kde4+bluetooth+files+open?content=108869
zcat $CWD/blueman-use_blueman-open_for_obexfs.diff.gz | patch -p1 || exit 1
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
-./configure \
+./autogen.sh \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--sysconfdir=/etc \
@@ -90,18 +85,13 @@ CXXFLAGS="$SLKCFLAGS" \
--docdir=/usr/doc/$PKGNAM-$VERSION \
--disable-static \
--with-dhcp-config=/etc/dhcpd.conf \
- --enable-hal \
- $POLKIT_OPTION \
+ --disable-hal \
+ --enable-polkit \
--build=$ARCH-slackware-linux
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
-if echo $POLKIT_OPTION | grep -q '\--disable-polkit' ; then
- # Remove unneeded junk
- rm -rf $PKG/usr/share/polkit-1
-fi
-
# Add the blueman-open script to /usr/libexec for browsing obexfs shares
# I don't want to put this in PATH and have someone accidentally run it
mkdir -p $PKG/usr/libexec
diff --git a/source/xap/blueman/fix_on_off_loop.diff b/source/xap/blueman/fix_on_off_loop.diff
deleted file mode 100644
index ac11c1351..000000000
--- a/source/xap/blueman/fix_on_off_loop.diff
+++ /dev/null
@@ -1,58 +0,0 @@
-revno: 602
-committer: walmis
-timestamp: Sun 2009-10-25 15:49:33 +0000
-message:
- fix bluetooth on/off loop
-
-=== modified file 'blueman/plugins/applet/PowerManager.py'
---- blueman/plugins/applet/PowerManager.py 2009-10-25 15:16:14 +0000
-+++ blueman/plugins/applet/PowerManager.py 2009-10-25 15:49:33 +0000
-@@ -66,22 +66,6 @@
- dprint("adapter powered on while in off state, turning bluetooth on")
- self.bluetooth_off = False
-
--
-- def on_manager_state_changed(self, state):
-- if state:
-- adapters = self.Applet.Manager.ListAdapters()
-- for adapter in adapters:
-- props = adapter.GetProperties()
-- if not props["Powered"]:
-- self.bluetooth_off = True
-- if self.state_change_deferred != -1:
-- break
-- else:
-- return
--
-- if self.state_change_deferred != -1:
-- self.bluetooth_off = self.state_change_deferred
-- self.state_change_deferred = -1
-
- def on_bluetooth_toggled(self):
- self.bluetooth_off = not self.bluetooth_off
-@@ -97,9 +81,17 @@
-
- return pixbuf
-
-+ def process_deferred(self):
-+ if self.state_change_deferred != -1:
-+ dprint("Setting deferred status")
-+ self.bluetooth_off = self.state_change_deferred
-+ self.state_change_deferred = -1
-+
- def on_adapter_added(self, path):
- adapter = Bluez.Adapter(path)
- def on_ready():
-+ self.process_deferred()
-+
- if self.bluetooth_off:
- adapter.SetProperty("Powered", False)
- else:
-@@ -134,6 +126,7 @@
- self.__dict__[key] = value
-
- if not self.Applet.Manager:
-+ dprint("deferring status change")
- self.state_change_deferred = value
- return
-
diff --git a/source/xap/blueman/no_hide_applet.diff b/source/xap/blueman/no_hide_applet.diff
deleted file mode 100644
index a57a2b8f9..000000000
--- a/source/xap/blueman/no_hide_applet.diff
+++ /dev/null
@@ -1,30 +0,0 @@
-revno: 647
-committer: Valmantas Palikša <walmis@balticum-tv.lt>
-branch nick: trunk
-timestamp: Wed 2009-12-02 21:31:16 +0200
-message:
- don't force hide the applet if bluez manager is not initialized
-
-=== modified file 'blueman/plugins/applet/StatusIcon.py'
---- blueman/plugins/applet/StatusIcon.py 2009-10-27 16:10:53 +0000
-+++ blueman/plugins/applet/StatusIcon.py 2009-12-02 19:31:16 +0000
-@@ -55,15 +55,16 @@
- self.Query()
-
- def Query(self):
-- if not self.Applet.Manager:
-- self.props.visible = False
-- return
-
- rets = self.Applet.Plugins.Run("on_query_status_icon_visibility")
- if not StatusIcon.FORCE_HIDE in rets:
- if StatusIcon.FORCE_SHOW in rets:
- self.props.visible = True
- else:
-+ if not self.Applet.Manager:
-+ self.props.visible = False
-+ return
-+
- try:
- if self.Applet.Manager.ListAdapters() == []:
- self.props.visible = False
diff --git a/source/xap/fluxbox/fluxbox.SlackBuild b/source/xap/fluxbox/fluxbox.SlackBuild
index 9685e3f6a..2be304107 100755
--- a/source/xap/fluxbox/fluxbox.SlackBuild
+++ b/source/xap/fluxbox/fluxbox.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,8 +21,9 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=1.1.1
-BUILD=${BUILD:-2}
+PKGNAM=fluxbox
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
NUMJOBS=${NUMJOBS:-" -j7 "}
@@ -76,7 +77,6 @@ CXXFLAGS="$SLKCFLAGS" \
--enable-xinerama \
--enable-shape \
--enable-slit \
- --enable-interlace \
--enable-nls \
--enable-timed-cache \
--build=$ARCH-slackware-linux
@@ -91,12 +91,20 @@ gzip -9 $PKG/usr/man/man?/*
mkdir -p $PKG/etc/X11/xinit
zcat $CWD/xinitrc.fluxbox.gz > $PKG/etc/X11/xinit/xinitrc.fluxbox
-chmod 755 $PKG/etc/X11/xinit/xinitrc.fluxbox
+chmod 0755 $PKG/etc/X11/xinit/xinitrc.fluxbox
mkdir -p $PKG/usr/doc/fluxbox-$VERSION
cp -a AUTHORS COPYING* INSTALL NEWS README* TODO \
$PKG/usr/doc/fluxbox-$VERSION
-chmod 644 $PKG/usr/doc/fluxbox-$VERSION/*
+chmod 0644 $PKG/usr/doc/fluxbox-$VERSION/*
+
+# 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
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
diff --git a/source/xap/fluxbox/xinitrc.fluxbox b/source/xap/fluxbox/xinitrc.fluxbox
index 593875db4..62e425b39 100644
--- a/source/xap/fluxbox/xinitrc.fluxbox
+++ b/source/xap/fluxbox/xinitrc.fluxbox
@@ -25,4 +25,8 @@ if [ -f $usermodmap ]; then
fi
# Start the window manager:
-exec /usr/bin/startfluxbox
+if [ -z "$DESKTOP_SESSION" -a -x /usr/bin/ck-launch-session ]; then
+ exec ck-launch-session /usr/bin/startfluxbox
+else
+ exec /usr/bin/startfluxbox
+fi
diff --git a/source/xap/fvwm/fvwm.SlackBuild b/source/xap/fvwm/fvwm.SlackBuild
index c990f1a00..7906a4731 100755
--- a/source/xap/fvwm/fvwm.SlackBuild
+++ b/source/xap/fvwm/fvwm.SlackBuild
@@ -23,11 +23,19 @@
PKGNAM=fvwm
VERSION=${VERSION:-2.4.20}
-ARCH=${ARCH:-x86_64}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
NUMJOBS=${NUMJOBS:-" -j7 "}
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
@@ -43,9 +51,9 @@ fi
CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-${PKGNAM}
+
rm -rf $PKG
mkdir -p $TMP $PKG
-
cd $TMP
rm -rf ${PKGNAM}-${VERSION}
tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1
diff --git a/source/xap/fvwm/xinitrc.fvwm2 b/source/xap/fvwm/xinitrc.fvwm2
index 955629fcd..788a4e43a 100644
--- a/source/xap/fvwm/xinitrc.fvwm2
+++ b/source/xap/fvwm/xinitrc.fvwm2
@@ -27,4 +27,9 @@ fi
# start some nice programs
xsetroot -solid SteelBlue
-fvwm2
+if [ -z "$DESKTOP_SESSION" -a -x /usr/bin/ck-launch-session ]; then
+ ck-launch-session fvwm2
+else
+ fvwm2
+fi
+
diff --git a/source/xap/geeqie/geeqie.SlackBuild b/source/xap/geeqie/geeqie.SlackBuild
index 55b0b69d6..dbde32bb9 100755
--- a/source/xap/geeqie/geeqie.SlackBuild
+++ b/source/xap/geeqie/geeqie.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2010 Patrick Volkerding, Sebeka, MN, USA
+# Copyright 2010, 2011 Patrick Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,7 +25,7 @@
PKGNAM=geeqie
VERSION=1.0
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-3}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -40,15 +40,15 @@ fi
NUMJOBS=${NUMJOBS:-" -j7 "}
if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ SLKCFLAGS="-O2 -D_FILE_OFFSET_BITS=64 -march=i486 -mtune=i686"
elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686"
+ SLKCFLAGS="-O2 -D_FILE_OFFSET_BITS=64 -march=i686"
elif [ "$ARCH" = "s390" ]; then
- SLKCFLAGS="-O2"
+ SLKCFLAGS="-O2 -D_FILE_OFFSET_BITS=64"
elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
+ SLKCFLAGS="-O2 -D_FILE_OFFSET_BITS=64 -fPIC"
else
- SLKCFLAGS="-O2"
+ SLKCFLAGS="-O2 -D_FILE_OFFSET_BITS=64"
fi
CWD=$(pwd)
diff --git a/source/xap/gimp/gimp.SlackBuild b/source/xap/gimp/gimp.SlackBuild
index 377f519ca..330ca4f13 100755
--- a/source/xap/gimp/gimp.SlackBuild
+++ b/source/xap/gimp/gimp.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,8 +21,9 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=2.6.8
-BUILD=${BUILD:-2}
+PKGNAM=gimp
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-3}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -51,6 +52,9 @@ elif [ "$ARCH" = "s390" ]; then
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
fi
cd $TMP
@@ -58,8 +62,6 @@ rm -rf gimp-$VERSION
tar xvf $CWD/gimp-$VERSION.tar.?z* || exit 1
cd gimp-$VERSION || exit 1
-zcat $CWD/gimp.png14.diff.gz | patch -p1 --verbose || exit 1
-
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
@@ -96,7 +98,7 @@ make install DESTDIR=$PKG || exit 1
mkdir -p $PKG/usr/doc/gimp-$VERSION
cp -a \
- AUTHORS COPYING HACKING INSTALL LICENSE NEWS README* docs/Wilber* \
+ AUTHORS COPYING* HACKING INSTALL LICENSE NEWS README* docs/Wilber* \
$PKG/usr/doc/gimp-$VERSION
( cd $PKG/usr/doc/gimp-$VERSION
for i in \
diff --git a/source/xap/gimp/gimp.png14.diff b/source/xap/gimp/gimp.png14.diff
deleted file mode 100644
index 5af06d6e3..000000000
--- a/source/xap/gimp/gimp.png14.diff
+++ /dev/null
@@ -1,19 +0,0 @@
---- ./plug-ins/file-ico/ico-load.c.orig 2009-07-20 15:20:51.000000000 -0500
-+++ ./plug-ins/file-ico/ico-load.c 2010-02-15 22:54:44.000000000 -0600
-@@ -287,14 +287,14 @@
- switch (color_type)
- {
- case PNG_COLOR_TYPE_GRAY:
-- png_set_gray_1_2_4_to_8 (png_ptr);
-+ png_set_expand_gray_1_2_4_to_8 (png_ptr);
- if ( bit_depth == 16 )
- png_set_strip_16 (png_ptr);
- png_set_gray_to_rgb (png_ptr);
- png_set_add_alpha (png_ptr, 0xff, PNG_FILLER_AFTER);
- break;
- case PNG_COLOR_TYPE_GRAY_ALPHA:
-- png_set_gray_1_2_4_to_8 (png_ptr);
-+ png_set_expand_gray_1_2_4_to_8 (png_ptr);
- if ( bit_depth == 16 )
- png_set_strip_16 (png_ptr);
- png_set_gray_to_rgb (png_ptr);
diff --git a/source/xap/gkrellm/gkrellm.SlackBuild b/source/xap/gkrellm/gkrellm.SlackBuild
index f5243b755..e156f1819 100755
--- a/source/xap/gkrellm/gkrellm.SlackBuild
+++ b/source/xap/gkrellm/gkrellm.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -20,8 +20,8 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=2.3.4
-PKGVER=2.3.4
+VERSION=2.3.5
+PKGVER=2.3.5
BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
diff --git a/source/xap/gnuchess/gnuchess.SlackBuild b/source/xap/gnuchess/gnuchess.SlackBuild
index 99cb5c067..b27193dc9 100755
--- a/source/xap/gnuchess/gnuchess.SlackBuild
+++ b/source/xap/gnuchess/gnuchess.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,11 +21,11 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERGNUCHESS=5.07
+VERGNUCHESS=5.08
VERSJENG=11.2
VEREBOARD=1.1.1
-VERXBOARD=4.4.2
-BUILD=${BUILD:-5}
+VERXBOARD=4.5.1
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -59,11 +59,8 @@ mkdir -p $TMP $PKG
### gnuchess
cd $TMP
rm -rf gnuchess-$VERGNUCHESS
-tar xvf $CWD/gnuchess-$VERGNUCHESS.tar.bz2 || exit 1
+tar xvf $CWD/gnuchess-$VERGNUCHESS.tar.?z* || exit 1
cd gnuchess-$VERGNUCHESS || exit 1
-# make gnuchess compile with gcc4
-zcat $CWD/gnuchess.gcc4_fix.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1
-zcat $CWD/gnuchess.getline.glibc.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
@@ -80,8 +77,8 @@ make install DESTDIR=$PKG || exit 1
mkdir -p $PKG/usr/doc/gnuchess-$VERGNUCHESS
cp -a \
- doc/README \
- AUTHORS COPYING INSTALL NEWS TODO \
+ doc/README* \
+ AUTHORS COPYING* INSTALL NEWS TODO \
$PKG/usr/doc/gnuchess-$VERGNUCHESS
### Sjeng
@@ -105,7 +102,7 @@ make install DESTDIR=$PKG || exit 1
mkdir -p $PKG/usr/doc/Sjeng-Free-$VERSJENG
cp -a \
- AUTHORS BUGS COPYING NEWS README THANKS TODO \
+ AUTHORS BUGS COPYING* NEWS README* THANKS TODO \
$PKG/usr/doc/Sjeng-Free-$VERSJENG
### eboard
@@ -129,7 +126,7 @@ make install DESTDIR=$PKG || exit 1
mkdir -p $PKG/usr/doc/eboard-$VEREBOARD
cp -a \
- AUTHORS COPYING README TODO Documentation/*.txt \
+ AUTHORS COPYING* README* TODO Documentation/*.txt \
$PKG/usr/doc/eboard-$VEREBOARD
### XBoard
@@ -146,9 +143,6 @@ find . \
# --infodir is fubar.
#zcat $CWD/xboard.infodir.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1
-# Taken from Debian to fix CVE-2004-2552
-# FOR WHICH THERE IS NO ATTACK VECTOR!!!
-#zcat $CWD/xboard.buffer_overflow_fix.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1
CFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
diff --git a/source/xap/gnuchess/gnuchess.SlackBuild.diff b/source/xap/gnuchess/gnuchess.SlackBuild.diff
deleted file mode 100644
index 0112a9d22..000000000
--- a/source/xap/gnuchess/gnuchess.SlackBuild.diff
+++ /dev/null
@@ -1,89 +0,0 @@
---- gnuchess.SlackBuild 2006-04-04 03:47:10.000000000 +0300
-+++ gnuchess.SlackBuild 2007-05-08 17:06:11.000000000 +0300
-@@ -4,10 +4,10 @@
-
- VERGNUCHESS=5.07
- VERSJENG=11.2
--VEREBOARD=0.9.5
-+VEREBOARD=1.0.3
- VERXBOARD=4.2.7
- ARCH=${ARCH:-i486}
--BUILD=${BUILD:-2}
-+BUILD=${BUILD:-3}
-
- if [ "$ARCH" = "i386" ]; then
- SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
-@@ -27,6 +27,8 @@
- rm -rf gnuchess-$VERGNUCHESS
- tar xjvf $CWD/gnuchess-$VERGNUCHESS.tar.bz2
- cd gnuchess-$VERGNUCHESS
-+# make gnuchess compile with gcc4
-+zcat $CWD/gnuchess.gcc4_fix.diff.gz | patch -p1 --verbose --backup --suffix=.orig
- chown -R root:root .
- find . -perm 664 -exec chmod 644 {} \;
- find . -perm 600 -exec chmod 644 {} \;
-@@ -93,33 +95,13 @@
- find . -perm 511 -exec chmod 755 {} \;
- find . -perm 711 -exec chmod 755 {} \;
- find . -perm 555 -exec chmod 755 {} \;
--CFLAGS="$SLKCFLAGS" \
- ./configure \
-- --prefix=/usr
-+ --prefix=/usr --extra-flags=`echo $SLKCFLAGS | sed -e "y/ /:/"`
- make -j3
--#make install DESTDIR=$PKG
--install -d $PKG/usr/bin
--install -m 0755 eboard $PKG/usr/bin/eboard
--install -m 0755 eboard-config $PKG/usr/bin/eboard-config
--install -m 0755 eboard-addtheme $PKG/usr/bin/eboard-addtheme
--install -d $PKG/usr/man/man1
--install -d $PKG/usr/man/man6
--install -m 0644 eboard.6 $PKG/usr/man/man6
--install -m 0644 eboard-addtheme.1 $PKG/usr/man/man1
--install -m 0644 eboard-config.1 $PKG/usr/man/man1
--install -d $PKG/usr/share/eboard
--install -m 0644 classic.png $PKG/usr/share/eboard/classic.png
--install -m 0644 ghouls.png $PKG/usr/share/eboard/ghouls.png
--install -m 0644 plastic.png $PKG/usr/share/eboard/plastic.png
--install -m 0644 eboard_themes.conf $PKG/usr/share/eboard/eboard_themes.conf
--install -m 0644 NAG.en.txt $PKG/usr/share/eboard/NAG.en.txt
--( cd multilang
-- install -d $PKG/usr/share/eboard
-- install -m 0644 eboard.cs.dict eboard.de.dict eboard.es.dict eboard.it.dict eboard.pt_BR.dict $PKG/usr/share/eboard
--)
-+make install DESTDIR=$PKG
- mkdir -p $PKG/usr/doc/eboard-$VEREBOARD
- cp -a \
-- AUTHORS COPYING README TODO \
-+ AUTHORS COPYING README TODO Documentation/*.txt \
- $PKG/usr/doc/eboard-$VEREBOARD
-
- ### XBoard
-@@ -140,6 +122,8 @@
- find . -perm 555 -exec chmod 755 {} \;
- # --infodir is fubar.
- zcat $CWD/xboard.infodir.diff.gz | patch -p1 --verbose --backup --suffix=.orig
-+# Taken from Debian to fix CVE-2004-2552
-+zcat $CWD/xboard.buffer_overflow_fix.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1
- CFLAGS="$SLKCFLAGS" \
- ./configure \
- --prefix=/usr \
-@@ -153,6 +137,7 @@
- install -c ./pxboard $PKG/usr/bin/pxboard
- install -c -m 644 ./xboard.man $PKG/usr/man/man6/xboard.6
- install -c -m 644 ./zic2xpm.man $PKG/usr/man/man6/zic2xpm.6
-+mkdir -p $PKG/usr/info
- install -c -m 644 xboard.info $PKG/usr/info/xboard.info
- mkdir -p $PKG/usr/doc/xboard-$VERXBOARD
- cp -a \
-@@ -165,8 +150,9 @@
- find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
- )
- gzip -9 $PKG/usr/man/man?/*.?
-+gzip -9 $PKG/usr/info/*.info
- mkdir -p $PKG/usr/share/pixmaps
--cat $CWD/chess.png > $PKG/usr/share/pixmaps/chess.png
-+cp $CWD/chess.png $PKG/usr/share/pixmaps/chess.png
- mkdir -p $PKG/usr/share/applications
- cat $CWD/eboard.desktop > $PKG/usr/share/applications/eboard.desktop
- cat $CWD/xboard.desktop > $PKG/usr/share/applications/xboard.desktop
diff --git a/source/xap/gnuchess/gnuchess.gcc4_fix.diff b/source/xap/gnuchess/gnuchess.gcc4_fix.diff
deleted file mode 100644
index a68351941..000000000
--- a/source/xap/gnuchess/gnuchess.gcc4_fix.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- gnuchess-5.07/src/input.c 2007-05-08 15:55:16.688003280 +0300
-+++ gnuchess-5.07/src/input.c 2007-05-08 15:55:29.238088685 +0300
-@@ -92,7 +92,7 @@
- fgets(inputstr, MAXSTR, stdin);
- }
-
--static pthread_t input_thread;
-+pthread_t input_thread;
-
- /* Mutex and condition variable for thread communication */
-
diff --git a/source/xap/gnuchess/gnuchess.getline.glibc.diff b/source/xap/gnuchess/gnuchess.getline.glibc.diff
deleted file mode 100644
index 51a45df1d..000000000
--- a/source/xap/gnuchess/gnuchess.getline.glibc.diff
+++ /dev/null
@@ -1,39 +0,0 @@
---- ./src/input.c.orig 2010-02-19 21:34:10.000000000 -0600
-+++ ./src/input.c 2010-02-19 21:36:33.000000000 -0600
-@@ -127,7 +127,7 @@
- (RealGameCnt+1)/2 + 1 );
- }
- pthread_mutex_lock(&input_mutex);
-- getline(prompt);
-+ chess_getline(prompt);
- input_status = INPUT_AVAILABLE;
- pthread_cond_signal(&input_cond);
- pthread_mutex_unlock(&input_mutex);
-@@ -173,13 +173,13 @@
- {
- #ifdef HAVE_LIBREADLINE
- if (isatty(STDIN_FILENO)) {
-- getline = getline_readline;
-+ chess_getline = getline_readline;
- using_history();
- } else {
-- getline = getline_standard;
-+ chess_getline = getline_standard;
- }
- #else
-- getline = getline_standard;
-+ chess_getline = getline_standard;
- #endif
- /* Start input thread */
- pthread_create(&input_thread, NULL, input_func, NULL);
---- ./src/common.h.orig 2003-06-30 06:28:38.000000000 -0500
-+++ ./src/common.h 2010-02-19 21:35:33.000000000 -0600
-@@ -745,7 +745,7 @@
- * Input routine, initialized to one of the specific
- * input routines. The given argument is the prompt.
- */
--void (*getline) (char *);
-+void (*chess_getline) (char *);
-
- #define MAXSTR 128
- extern char inputstr[MAXSTR];
diff --git a/source/xap/gnuchess/xboard.desktop b/source/xap/gnuchess/xboard.desktop
index 6336cb63a..c1b2a2d3e 100644
--- a/source/xap/gnuchess/xboard.desktop
+++ b/source/xap/gnuchess/xboard.desktop
@@ -3,7 +3,7 @@ Encoding=UTF-8
Name=XBoard
GenericName=Chess Game
Comment=A graphical chess engine frontend
-Exec=xboard
+Exec=xboard -fcp gnuchess
Icon=/usr/share/pixmaps/chess.png
Terminal=false
Type=Application
diff --git a/source/xap/gnuplot/gnuplot.SlackBuild b/source/xap/gnuplot/gnuplot.SlackBuild
index 180336830..47cf5eb72 100755
--- a/source/xap/gnuplot/gnuplot.SlackBuild
+++ b/source/xap/gnuplot/gnuplot.SlackBuild
@@ -20,8 +20,8 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-VERSION=4.2.6
+PKGNAM=gnuplot
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
@@ -113,12 +113,20 @@ fi
mkdir -p $PKG/usr/doc/gnuplot-$VERSION
cp -a \
- BUGS CodeStyle Copyright FAQ INSTALL NEWS PATCHLEVEL PGPKEYS PORTING \
+ BUGS CodeStyle Copyright FAQ.bloat INSTALL NEWS PATCHLEVEL PGPKEYS PORTING \
README* TODO VERSION \
$PKG/usr/doc/gnuplot-$VERSION
cp -a demo $PKG/usr/doc/gnuplot-$VERSION
rm -f $PKG/usr/doc/gnuplot-$VERSION/demo/Make*
+# 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/${PKGNAM}-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
diff --git a/source/xap/gucharmap/gucharmap.SlackBuild b/source/xap/gucharmap/gucharmap.SlackBuild
index f95766621..13b249a90 100755
--- a/source/xap/gucharmap/gucharmap.SlackBuild
+++ b/source/xap/gucharmap/gucharmap.SlackBuild
@@ -76,7 +76,6 @@ CFLAGS="$SLKCFLAGS" \
--localstatedir=/var/lib \
--docdir=/usr/doc/gucharmap-$VERSION \
--enable-static=no \
- --enable-python-bindings \
--disable-gconf \
--disable-schemas-install \
--disable-scrollkeeper \
diff --git a/source/xap/gv/gv.SlackBuild b/source/xap/gv/gv.SlackBuild
index b30eb321c..1f300165a 100755
--- a/source/xap/gv/gv.SlackBuild
+++ b/source/xap/gv/gv.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2006, 2007, 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006, 2007, 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -23,7 +23,7 @@
PKGNAM=gv
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -58,6 +58,8 @@ rm -rf ${PKGNAM}-${VERSION}
tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z* || exit 1
cd ${PKGNAM}-$VERSION || exit 1
+zcat $CWD/gv.keysym.diff.gz | patch -p1 --verbose || exit 1
+
# Make sure ownerships and permissions are sane:
chown -R root:root .
find . \
diff --git a/source/xap/gv/gv.keysym.diff b/source/xap/gv/gv.keysym.diff
new file mode 100644
index 000000000..f2e0a7caa
--- /dev/null
+++ b/source/xap/gv/gv.keysym.diff
@@ -0,0 +1,12 @@
+diff -ur a/src/gv_misc_res.dat b/src/gv_misc_res.dat
+--- a/src/gv_misc_res.dat 2010-10-15 09:21:36.000000000 +0200
++++ b/src/gv_misc_res.dat 2010-10-15 09:21:48.000000000 +0200
+@@ -476,7 +476,6 @@
+ <Key>BackSpace: GV_Page(up,left-bottom,!page-1,bottom-rightedge)\n\
+ <Key>Insert: GV_Page(page-5) \n\
+ <Key>Delete: GV_Page(page+5) \n\
+- <Key>apLineDel: GV_Page(page+5) \n\
+ <Key>Home: GV_Page(page=0) \n\
+ <Key>End: GV_Page(page=99999) \n\
+ <Key>Prior: GV_Page(page-1) \n\
+
diff --git a/source/xap/gxine/gxine.SlackBuild b/source/xap/gxine/gxine.SlackBuild
deleted file mode 100755
index d9b75d0b4..000000000
--- a/source/xap/gxine/gxine.SlackBuild
+++ /dev/null
@@ -1,99 +0,0 @@
-#!/bin/sh
-
-# Copyright 2008, 2009 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=0.5.903
-ARCH=${ARCH:-x86_64}
-BUILD=${BUILD:-2}
-
-NUMJOBS=${NUMJOBS:-" -j7 "}
-
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "s390" ]; then
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-fi
-
-CWD=$(pwd)
-TMP=${TMP:-/tmp}
-PKG=$TMP/package-gxine
-rm -rf $PKG
-mkdir -p $TMP $PKG
-
-cd $TMP
-rm -rf gxine-$VERSION
-tar xvf $CWD/gxine-$VERSION.tar.bz2 || exit 1
-cd gxine-$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 {} \;
-
-CFLAGS="$SLKCFLAGS" \
-./configure \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --sysconfdir=/etc \
- --localstatedir=/var/lib \
- --mandir=/usr/man \
- --disable-static \
- --with-browser-plugin \
- --build=$ARCH-slackware-linux
-
-make $NUMJOBS || make || exit 1
-make install DESTDIR=$PKG || exit 1
-
-#zcat $CWD/gxine.desktop.gz > $PKG/usr/share/applications/gxine.desktop
-#if [ ! -r $PKG/usr/share/pixmaps/gxine.png ]; then
-# exit 1
-#fi
-
-# I'm sorry, but making this link was the worst suggestion I ever
-# went along with. I'll continue to include it (for now), but having
-# (buggy) gxine pop up without prompting all the time is ANNOYING!!!
-#mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/mozilla/plugins
-#( cd $PKG/usr/lib${LIBDIRSUFFIX}/mozilla/plugins
-# ln -sf /usr/lib${LIBDIRSUFFIX}/gxine/gxineplugin.so .
-#)
-
-find $PKG | xargs file | grep -e "executable" -e "shared object" \
- | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
-
-find $PKG/usr/man -type f -exec gzip -9 {} \;
-
-mkdir -p $PKG/usr/doc/gxine-$VERSION
-cp -a \
- ABOUT-NLS AUTHORS COPYING* INSTALL NEWS README TODO \
- $PKG/usr/doc/gxine-$VERSION
-
-mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
-
-cd $PKG
-/sbin/makepkg -l y -c n $TMP/gxine-$VERSION-$ARCH-$BUILD.txz
-
diff --git a/source/xap/gxine/gxine.desktop b/source/xap/gxine/gxine.desktop
deleted file mode 100644
index 54e5e6c28..000000000
--- a/source/xap/gxine/gxine.desktop
+++ /dev/null
@@ -1,14 +0,0 @@
-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Name=gxine
-GenericName=Video Player
-Comment=Play films and songs, or watch digital TV
-Exec=gxine
-MultipleArgs=true
-Icon=/usr/share/pixmaps/gxine.png
-Terminal=false
-Type=Application
-StartupNotify=true
-Categories=GTK;Application;AudioVideo;
-MimeType=video/mpeg;video/msvideo;video/quicktime;video/x-avi;video/x-ms-asf;video/x-ms-wmv;video/x-msvideo;application/x-ogg;application/ogg;audio/x-mp3;audio/x-mpeg;video/x-mpeg;video/x-fli;audio/x-wav;audio/x-mpegurl;audio/x-scpls;audio/x-ms-asx;application/vnd.rn-realmedia;audio/x-real-audio;audio/x-pn-realaudio;application/x-flac;audio/x-flac;application/x-shockwave-flash;audio/mpeg;audio/x-ms-asf;audio/x-m4a;audio/x-ms-wax;video/dv;video/x-anim;video/x-flc;misc/ultravox;application/x-matroska;audio/vnd.rn-realaudio;audio/x-pn-aiff;audio/x-pn-au;audio/x-pn-wav;audio/x-pn-windows-acm;image/vnd.rn-realpix;video/vnd.rn-realvideo
diff --git a/source/xap/gxine/slack-desc b/source/xap/gxine/slack-desc
deleted file mode 100644
index 18f7cef45..000000000
--- a/source/xap/gxine/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# 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------------------------------------------------------|
-gxine: gxine (GTK+ media player based on Xine)
-gxine:
-gxine: Xine is a free multimedia player. It plays back CDs, DVDs, and VCDs,
-gxine: multimedia files, and multimedia streamed over a network.
-gxine:
-gxine: The gxine package contains a GTK+ graphical user interface for the
-gxine: Xine multimedia player.
-gxine:
-gxine:
-gxine:
-gxine:
diff --git a/source/xap/imagemagick/imagemagick.SlackBuild b/source/xap/imagemagick/imagemagick.SlackBuild
index eb285daf4..565d3a0af 100755
--- a/source/xap/imagemagick/imagemagick.SlackBuild
+++ b/source/xap/imagemagick/imagemagick.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -29,14 +29,14 @@ BUILD=${BUILD:-1}
# This is a bit messy, so we'll explain it well. :-)
# This is the base version number, which is needed to cd into the source tree
-BASEVER=6.5.9-6
+BASEVER=6.6.6-10
# This is the version number used in the source tarball filename
-FILEVER=6.5.9-6
+FILEVER=6.6.6-10
# This is the version number used in the package, where a version number cannot
# contain a '-'
-PKGVER=6.5.9_6
+PKGVER=6.6.6_10
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -108,7 +108,7 @@ CXXFLAGS="$SLKCFLAGS" \
--enable-static=no \
--enable-shared \
--with-perl \
- --build=$ARCH-slackware-linux
+ --build=$ARCH-slackware-linux || exit 1
make $NUMJOBS INSTALLDIRS=vendor || make INSTALLDIRS=vendor || exit 1
make install INSTALLDIRS=vendor DESTDIR=$PKG || exit 1
diff --git a/source/xap/mozilla-firefox/mozilla-firefox.SlackBuild b/source/xap/mozilla-firefox/mozilla-firefox.SlackBuild
index 4de240384..812a7b163 100755
--- a/source/xap/mozilla-firefox/mozilla-firefox.SlackBuild
+++ b/source/xap/mozilla-firefox/mozilla-firefox.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -23,9 +23,6 @@
# Thanks to the folks at the Mozilla Foundation for permission to
# distribute this, and for all the great work! :-)
-# This is a source build script. Unfortunately, there is no official
-# binary tarball available for x86_64
-
VERSION=$(basename $(ls firefox-*.tar.bz2 | cut -d - -f 2 | rev | cut -f 3- -d . | rev) .source)
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -36,9 +33,10 @@ if [ -z "$ARCH" ]; then
*) export ARCH=$( uname -m ) ;;
esac
fi
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
-MOZVERS=${MOZVERS:-1.9.2}
+MOZVERS=${MOZVERS:-2.0}
+RELEASEVER=$(echo $VERSION | cut -f 1 -d r)
NUMJOBS=${NUMJOBS:-" -j7 "}
@@ -103,26 +101,28 @@ export CXXFLAGS="$SLKCFLAGS" &&
--enable-official-branding \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
- --with-default-mozilla-five-home=/usr/lib${LIBDIRSUFFIX}/firefox-$VERSION \
+ --with-default-mozilla-five-home=/usr/lib${LIBDIRSUFFIX}/firefox-$RELEASEVER \
--with-system-zlib \
--enable-application=browser \
--enable-default-toolkit=cairo-gtk2 \
+ --enable-system-cairo \
+ --enable-startup-notification \
--enable-crypto \
--enable-svg \
--enable-canvas \
+ --enable-logging \
--enable-xft \
+ --enable-webm \
--enable-xinerama \
--enable-optimize \
--enable-reorder \
--enable-strip \
- --enable-system-cairo \
--enable-cpp-rtti \
--enable-single-profile \
--disable-ldap \
--disable-accessibility \
--disable-debug \
--disable-tests \
- --disable-logging \
--disable-pedantic \
--disable-installer \
--disable-mailnews \
@@ -136,14 +136,16 @@ make MOZ_MAKE_FLAGS="$NUMJOBS" || exit 1
make install DESTDIR=$PKG || exit 1
# We don't need these (just symlinks anyway):
-rm -rf $PKG/usr/lib${LIBDIRSUFFIX}/firefox-devel-$VERSION
+rm -rf $PKG/usr/lib${LIBDIRSUFFIX}/firefox-devel-$RELEASEVER
# Nor these:
rm -rf $PKG/usr/include
-( cd $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$VERSION
+( cd $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$RELEASEVER
#mv defaults/profile/mimeTypes.rdf defaults/profile/mimeTypes.rdf.orig || exit 1
- zcat $CWD/mimeTypes.rdf > defaults/profile/mimeTypes.rdf || exit 1
+ if [ -d defaults/profile ]; then
+ zcat $CWD/mimeTypes.rdf > defaults/profile/mimeTypes.rdf || exit 1
+ fi
zcat $CWD/firefox.moz_plugin_path.diff.gz \
| sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \
| patch -p1 --verbose --backup --suffix=.orig || exit 1
@@ -160,7 +162,7 @@ cat $CWD/firefox.png > $PKG/usr/share/pixmaps/firefox.png
# These files/directories are usually created if Firefox is run as root,
# which on many systems might (and possibly should) be never. Therefore, if we
# don't see them we'll put stubs in place to prevent startup errors.
-( cd $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$VERSION
+( cd $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$RELEASEVER
if [ -d extensions/talkback\@mozilla.org ]; then
if [ ! -r extensions/talkback\@mozilla.org/chrome.manifest ]; then
echo > extensions/talkback\@mozilla.org/chrome.manifest
@@ -172,17 +174,17 @@ cat $CWD/firefox.png > $PKG/usr/share/pixmaps/firefox.png
)
# Need some default icons in the right place:
-mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$VERSION/chrome/icons/default
+mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$RELEASEVER/chrome/icons/default
install -m 644 other-licenses/branding/firefox/default16.png \
- $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$VERSION/icons/
+ $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$RELEASEVER/icons/
install -m 644 other-licenses/branding/firefox/default16.png \
- $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$VERSION/chrome/icons/default/
-( cd $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$VERSION
+ $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$RELEASEVER/chrome/icons/default/
+( cd $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$RELEASEVER
install -m 644 icons/{default,mozicon50}.xpm chrome/icons/default/
)
# Copy over the LICENSE
-install -p -c -m 644 LICENSE $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$VERSION/
+install -p -c -m 644 LICENSE $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$RELEASEVER/
mkdir $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
diff --git a/source/xap/mozilla-thunderbird/mozilla-thunderbird.SlackBuild b/source/xap/mozilla-thunderbird/mozilla-thunderbird.SlackBuild
index 0a521dd70..d36fe937f 100755
--- a/source/xap/mozilla-thunderbird/mozilla-thunderbird.SlackBuild
+++ b/source/xap/mozilla-thunderbird/mozilla-thunderbird.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -23,10 +23,8 @@
# Thanks to the folks at the Mozilla Foundation for permission to
# distribute this, and for all the great work! :-)
-# This is a source build script. Unfortunately, there is no official
-# binary tarball available for x86_64
-
VERSION=$(basename $(ls thunderbird-*.tar.bz2 | cut -d - -f 2 | rev | cut -f 3- -d . | rev) .source)
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -37,9 +35,8 @@ if [ -z "$ARCH" ]; then
*) export ARCH=$( uname -m ) ;;
esac
fi
-BUILD=${BUILD:-1}
-MOZVERS=${MOZVERS:-1.9.1}
+MOZVERS=${MOZVERS:-1.9.2}
NUMJOBS=${NUMJOBS:-" -j7 "}
@@ -103,11 +100,13 @@ export CXXFLAGS="$SLKCFLAGS" &&
--with-system-zlib \
--enable-application=mail \
--enable-default-toolkit=cairo-gtk2 \
+ --enable-startup-notification \
--enable-crypto \
--enable-svg \
--enable-canvas \
--enable-xft \
--enable-xinerama \
+ --enable-ldap \
--enable-optimize \
--enable-reorder \
--enable-static \
@@ -115,7 +114,6 @@ export CXXFLAGS="$SLKCFLAGS" &&
--enable-system-cairo \
--enable-cpp-rtti \
--enable-single-profile \
- --disable-ldap \
--disable-accessibility \
--disable-debug \
--disable-tests \
diff --git a/source/xap/pan/pan.SlackBuild b/source/xap/pan/pan.SlackBuild
index 4bfbcf7f5..0aab423c7 100755
--- a/source/xap/pan/pan.SlackBuild
+++ b/source/xap/pan/pan.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2006, 2007, 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006, 2007, 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -23,7 +23,7 @@
PKGNAM=pan
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | cut -d - -f 2 | rev | cut -f 3- -d . | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -56,12 +56,9 @@ mkdir -p $TMP $PKG
cd $TMP
rm -rf ${PKGNAM}-${VERSION}
-tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1
+tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z* || exit 1
cd ${PKGNAM}-$VERSION || exit 1
-zcat $CWD/pan.gmime2.4.diff.gz | patch -p1 || exit 1
-zcat $CWD/pan.gcc44.diff.gz | patch -p1 || exit 1
-
# Make sure ownerships and permissions are sane:
chown -R root:root .
find . \
@@ -115,8 +112,18 @@ fi
# Add a documentation directory:
mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
cp -a \
- AUTHORS COPYING* INSTALL NEWS README TODO \
+ AUTHORS COPYING* NEWS README* TODO \
$PKG/usr/doc/${PKGNAM}-$VERSION
+# junk removal
+rm -f $PKG/usr/doc/${PKGNAM}-$VERSION/{README.mingw,README.windows*}
+
+# 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/${PKGNAM}-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
mkdir -p $PKG/install
#zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
diff --git a/source/xap/pan/pan.gcc44.diff b/source/xap/pan/pan.gcc44.diff
deleted file mode 100644
index 22df125f8..000000000
--- a/source/xap/pan/pan.gcc44.diff
+++ /dev/null
@@ -1,50 +0,0 @@
---- ./pan/usenet-utils/numbers.cc.orig 2008-07-04 10:01:53.000000000 -0500
-+++ ./pan/usenet-utils/numbers.cc 2010-02-03 18:06:16.000000000 -0600
-@@ -19,6 +19,7 @@
-
- #include <config.h>
- #include <cctype>
-+#include <cstdio>
- #include <pan/general/string-view.h>
- #include "numbers.h"
- #include <algorithm>
---- ./pan/tasks/nntp.cc.orig 2008-07-05 14:16:06.000000000 -0500
-+++ ./pan/tasks/nntp.cc 2010-02-03 18:07:19.000000000 -0600
-@@ -20,6 +20,7 @@
- #include <config.h>
- #include <cassert>
- #include <cstdarg>
-+#include <cstdio>
- #include <cstdlib> // abort, atoi, strtoul
- extern "C" {
- #include <glib.h>
---- ./pan/tasks/nntp-pool.cc.orig 2008-07-05 01:39:27.000000000 -0500
-+++ ./pan/tasks/nntp-pool.cc 2010-02-03 18:07:55.000000000 -0600
-@@ -19,6 +19,7 @@
-
- #include <config.h>
- #include <ctime>
-+#include <cstdio>
- #include <glib/gi18n.h>
- #include <pan/general/debug.h>
- #include <pan/general/log.h>
---- ./pan/general/progress.cc.orig 2007-08-01 12:00:01.000000000 -0500
-+++ ./pan/general/progress.cc 2010-02-03 18:05:38.000000000 -0600
-@@ -19,6 +19,7 @@
-
- #include <config.h>
- #include <cstdarg>
-+#include <cstdio>
- #include "progress.h"
- #include "string-view.h"
-
---- ./pan/general/log.cc.orig 2007-08-01 12:00:01.000000000 -0500
-+++ ./pan/general/log.cc 2010-02-03 18:05:19.000000000 -0600
-@@ -20,6 +20,7 @@
- #include <config.h>
- #include <iostream>
- #include <cstdarg>
-+#include <cstdio>
- #include "log.h"
-
- using namespace pan;
diff --git a/source/xap/pan/pan.gmime2.4.diff b/source/xap/pan/pan.gmime2.4.diff
deleted file mode 100644
index 4816ea6cd..000000000
--- a/source/xap/pan/pan.gmime2.4.diff
+++ /dev/null
@@ -1,1271 +0,0 @@
-diff -ru pan-0.133.orig/configure pan-0.133/configure
---- pan-0.133.orig/configure 2008-07-29 19:02:08.000000000 -0700
-+++ pan-0.133/configure 2009-09-12 14:58:05.000000000 -0700
-@@ -2377,7 +2377,7 @@
-
- PCRE_REQUIRED=5.0
- GLIB_REQUIRED=2.4.0
--GMIME_REQUIRED=2.1.9
-+GMIME_REQUIRED=2.3.5
- GTK_REQUIRED=2.4.0
- GTKSPELL_REQUIRED=2.0.7
-
-@@ -7957,12 +7957,12 @@
- pkg_cv_GMIME_CFLAGS="$GMIME_CFLAGS"
- elif test -n "$PKG_CONFIG"; then
- if test -n "$PKG_CONFIG" && \
-- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gmime-2.0 >= \$GMIME_REQUIRED\"") >&5
-- ($PKG_CONFIG --exists --print-errors "gmime-2.0 >= $GMIME_REQUIRED") 2>&5
-+ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gmime-2.4 >= \$GMIME_REQUIRED\"") >&5
-+ ($PKG_CONFIG --exists --print-errors "gmime-2.4 >= $GMIME_REQUIRED") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
-- pkg_cv_GMIME_CFLAGS=`$PKG_CONFIG --cflags "gmime-2.0 >= $GMIME_REQUIRED" 2>/dev/null`
-+ pkg_cv_GMIME_CFLAGS=`$PKG_CONFIG --cflags "gmime-2.4 >= $GMIME_REQUIRED" 2>/dev/null`
- else
- pkg_failed=yes
- fi
-@@ -7973,12 +7973,12 @@
- pkg_cv_GMIME_LIBS="$GMIME_LIBS"
- elif test -n "$PKG_CONFIG"; then
- if test -n "$PKG_CONFIG" && \
-- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gmime-2.0 >= \$GMIME_REQUIRED\"") >&5
-- ($PKG_CONFIG --exists --print-errors "gmime-2.0 >= $GMIME_REQUIRED") 2>&5
-+ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gmime-2.4 >= \$GMIME_REQUIRED\"") >&5
-+ ($PKG_CONFIG --exists --print-errors "gmime-2.4 >= $GMIME_REQUIRED") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
-- pkg_cv_GMIME_LIBS=`$PKG_CONFIG --libs "gmime-2.0 >= $GMIME_REQUIRED" 2>/dev/null`
-+ pkg_cv_GMIME_LIBS=`$PKG_CONFIG --libs "gmime-2.4 >= $GMIME_REQUIRED" 2>/dev/null`
- else
- pkg_failed=yes
- fi
-@@ -7996,14 +7996,14 @@
- _pkg_short_errors_supported=no
- fi
- if test $_pkg_short_errors_supported = yes; then
-- GMIME_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gmime-2.0 >= $GMIME_REQUIRED" 2>&1`
-+ GMIME_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gmime-2.4 >= $GMIME_REQUIRED" 2>&1`
- else
-- GMIME_PKG_ERRORS=`$PKG_CONFIG --print-errors "gmime-2.0 >= $GMIME_REQUIRED" 2>&1`
-+ GMIME_PKG_ERRORS=`$PKG_CONFIG --print-errors "gmime-2.4 >= $GMIME_REQUIRED" 2>&1`
- fi
- # Put the nasty error message in config.log where it belongs
- echo "$GMIME_PKG_ERRORS" >&5
-
-- { { echo "$as_me:$LINENO: error: Package requirements (gmime-2.0 >= $GMIME_REQUIRED) were not met:
-+ { { echo "$as_me:$LINENO: error: Package requirements (gmime-2.4 >= $GMIME_REQUIRED) were not met:
-
- $GMIME_PKG_ERRORS
-
-@@ -8014,7 +8014,7 @@
- and GMIME_LIBS to avoid the need to call pkg-config.
- See the pkg-config man page for more details.
- " >&5
--echo "$as_me: error: Package requirements (gmime-2.0 >= $GMIME_REQUIRED) were not met:
-+echo "$as_me: error: Package requirements (gmime-2.4 >= $GMIME_REQUIRED) were not met:
-
- $GMIME_PKG_ERRORS
-
-diff -ru pan-0.133.orig/configure.in pan-0.133/configure.in
---- pan-0.133.orig/configure.in 2008-07-29 19:00:01.000000000 -0700
-+++ pan-0.133/configure.in 2009-09-12 14:52:37.000000000 -0700
-@@ -18,7 +18,7 @@
-
- PCRE_REQUIRED=5.0
- GLIB_REQUIRED=2.4.0
--GMIME_REQUIRED=2.1.9
-+GMIME_REQUIRED=2.3.5
- GTK_REQUIRED=2.4.0
- GTKSPELL_REQUIRED=2.0.7
- AC_SUBST(PCRE_REQUIRED)
-@@ -50,7 +50,7 @@
-
- PKG_CHECK_MODULES(PCRE, libpcre >= $PCRE_REQUIRED)
- AM_PATH_GLIB_2_0($GLIB_REQUIRED,,exit 1,gobject gmodule gthread)
--PKG_CHECK_MODULES(GMIME, gmime-2.0 >= $GMIME_REQUIRED)
-+PKG_CHECK_MODULES(GMIME, gmime-2.4 >= $GMIME_REQUIRED)
- AM_PATH_GTK_2_0($GTK_REQUIRED,,exit 1,gthread)
-
-
---- pan-0.133.orig/pan/general/utf8-utils.cc 2008-07-04 23:13:14.000000000 -0700
-+++ pan-0.133/pan/general/utf8-utils.cc 2009-09-12 14:38:13.000000000 -0700
-@@ -136,7 +136,7 @@
- {
- std::string s = content_to_utf8 (header, fallback_charset1, fallback_charset2);
- if (header.strstr ("=?")) {
-- char * decoded (g_mime_utils_8bit_header_decode ((const guchar*) s.c_str()));
-+ char * decoded (g_mime_utils_header_decode_text (s.c_str()));
- s = clean_utf8 (decoded);
- g_free (decoded);
- }
-@@ -147,15 +147,26 @@
- pan :: mime_part_to_utf8 (GMimePart * part,
- const char * fallback_charset)
- {
-+ GMimeDataWrapper *content;
-+ GMimeStream *stream;
-+ const char *charset;
-+ GByteArray *buffer;
- std::string ret;
-
- g_return_val_if_fail (GMIME_IS_PART(part), ret);
-
-- size_t content_len (0);
-- const char * specified_charset (g_mime_object_get_content_type_parameter (GMIME_OBJECT (part), "charset"));
-- const char * content = g_mime_part_get_content (part, &content_len);
-- if (content && content_len)
-- ret = content_to_utf8 (StringView (content, content_len), specified_charset, fallback_charset);
-+ charset = g_mime_object_get_content_type_parameter (GMIME_OBJECT (part), "charset");
-+ content = g_mime_part_get_content_object (part);
-+
-+ stream = g_mime_stream_mem_new ();
-+ g_mime_data_wrapper_write_to_stream (content, stream);
-+//g_object_unref(content); //SKG gmime 2.4 don't unref returned data wrapper
-+
-+ buffer = ((GMimeStreamMem *) stream)->buffer;
-+
-+ ret = content_to_utf8 (StringView ((const char *) buffer->data, buffer->len), charset, fallback_charset);
-+
-+ g_object_unref (stream);
-
- return ret;
- }
-diff -ru pan-0.133.orig/pan/gui/body-pane.cc pan-0.133/pan/gui/body-pane.cc
---- pan-0.133.orig/pan/gui/body-pane.cc 2008-07-06 07:20:54.000000000 -0700
-+++ pan-0.133/pan/gui/body-pane.cc 2009-09-12 14:41:46.000000000 -0700
-@@ -837,7 +837,7 @@
- }
-
- g_object_unref (mem_stream);
-- g_object_unref (wrapper);
-+ //g_object_unref (wrapper); //SKG gmime 2.4 don't unref returned data wrapper
- }
-
- // flush the loader
-@@ -874,7 +874,7 @@
- return;
-
- GMimePart * part = GMIME_PART (obj);
-- const GMimeContentType * type = g_mime_object_get_content_type (GMIME_OBJECT (part));
-+ GMimeContentType * type = g_mime_object_get_content_type (GMIME_OBJECT (part));
-
- // decide whether or not this part is a picture
- bool is_image (g_mime_content_type_is_type (type, "image", "*"));
-@@ -952,11 +952,11 @@
- GtkTextIter iter;
- gtk_text_buffer_get_end_iter (_buffer, &iter);
- gtk_text_buffer_insert (_buffer, &iter, pch, -1);
-- g_free (pch);
-+// g_free (pch); //SKG don't unref returned const char *
- }
- }
- void
--BodyPane :: foreach_part_cb (GMimeObject* o, gpointer self)
-+BodyPane :: foreach_part_cb (GMimeObject* /*parent*/, GMimeObject* o, gpointer self)
- {
- if (GMIME_IS_MULTIPART (o))
- g_mime_multipart_foreach (GMIME_MULTIPART (o), foreach_part_cb, self);
-@@ -978,7 +978,7 @@
- const char * key,
- const char * fallback_charset)
- {
-- const char * val (message ? g_mime_message_get_header (message, key) : "");
-+ const char * val (message ? g_mime_object_get_header ((GMimeObject *) message, key) : "");
- const std::string utf8_val (header_to_utf8 (val, fallback_charset));
- char * e (0);
- if (strcmp (key, "From"))
-@@ -1015,7 +1015,7 @@
- const char * key,
- const char * fallback_charset)
- {
-- const char * val (msg ? g_mime_message_get_header (msg, key) : "");
-+ const char * val (msg ? g_mime_object_get_header ((GMimeObject *) msg, key) : "");
- return add_header_line (s, key_i18n, key, val, fallback_charset);
- }
- }
-@@ -1037,19 +1037,19 @@
-
- // conditional headers...
- if (message) {
-- const StringView newsgroups (g_mime_message_get_header (message, "Newsgroups"));
-+ const StringView newsgroups (g_mime_object_get_header ((GMimeObject *) message, "Newsgroups"));
- if (newsgroups.strchr(',')) {
- l = add_header_line (s, message, _("Newsgroups"), "Newsgroups", fallback_charset);
- w = std::max (w, l);
- }
-- const StringView followup_to (g_mime_message_get_header (message, "Followup-To"));
-+ const StringView followup_to (g_mime_object_get_header ((GMimeObject *) message, "Followup-To"));
- if (!followup_to.empty() && (followup_to!=newsgroups)) {
- l = add_header_line (s, message, _("Followup-To"), "Followup-To", fallback_charset);
- w = std::max (w, l);
- }
-- const StringView reply_to (g_mime_message_get_header (message, "Reply-To"));
-+ const StringView reply_to (g_mime_object_get_header ((GMimeObject *) message, "Reply-To"));
- if (!reply_to.empty()) {
-- const StringView from (g_mime_message_get_header (message, "From"));
-+ const StringView from (g_mime_object_get_header ((GMimeObject *) message, "From"));
- StringView f_addr, f_name, rt_addr, rt_name;
- GNKSA :: do_check_from (from, f_addr, f_name, false);
- GNKSA :: do_check_from (reply_to, rt_addr, rt_name, false);
-@@ -1070,7 +1070,7 @@
-
- // set the x-face...
- GdkPixbuf * pixbuf (0);
-- const char * pch = message ? g_mime_message_get_header (message, "X-Face") : 0;
-+ const char * pch = message ? g_mime_object_get_header ((GMimeObject *) message, "X-Face") : 0;
- if (pch && _xface->window)
- pixbuf = pan_gdk_pixbuf_create_from_x_face (gtk_widget_get_colormap(_xface), _xface->window, pch);
- gtk_image_set_from_pixbuf (GTK_IMAGE(_xface), pixbuf);
-@@ -1101,7 +1101,7 @@
- // maybe add the headers
- const bool do_show_headers (_prefs.get_flag ("show-all-headers", false));
- if (message && do_show_headers) {
-- char * headers (g_mime_message_get_headers (message));
-+ char * headers (g_mime_object_get_headers ((GMimeObject *) message));
- GtkTextIter end;
- gtk_text_buffer_get_end_iter (_buffer, &end);
- StringView line, v(headers);
-@@ -1119,7 +1119,7 @@
-
- // set the text buffer...
- if (message)
-- g_mime_message_foreach_part (message, foreach_part_cb, this);
-+ g_mime_message_foreach (message, foreach_part_cb, this);
-
- // if there was a picture, scroll to it.
- // otherwise scroll to the top of the body.
-@@ -1514,7 +1514,7 @@
- const char * fallback_charset_1,
- const char * fallback_charset_2)
- {
-- const StringView v (g_mime_message_get_header (msg, key));
-+ const StringView v (g_mime_object_get_header ((GMimeObject *) msg, key));
- std::string s;
- if (!v.empty())
- s = header_to_utf8 (v, fallback_charset_1, fallback_charset_2);
-@@ -1527,7 +1527,7 @@
- std::string body;
- };
-
-- void get_utf8_body_foreach_part (GMimeObject *o, gpointer user_data)
-+ void get_utf8_body_foreach_part (GMimeObject * /*parent*/, GMimeObject *o, gpointer user_data)
- {
- if (GMIME_IS_MULTIPART(o))
- {
-@@ -1538,7 +1538,7 @@
- else
- {
- GMimePart * part = GMIME_PART (o);
-- const GMimeContentType * type = g_mime_object_get_content_type (o);
-+ GMimeContentType * type = g_mime_object_get_content_type (o);
- const bool is_text (g_mime_content_type_is_type (type, "text", "*"));
- if (is_text)
- {
-@@ -1555,7 +1555,7 @@
- if (fallback_charset)
- tmp.fallback_charset = fallback_charset;
- if (source)
-- g_mime_message_foreach_part (source, get_utf8_body_foreach_part, &tmp);
-+ g_mime_message_foreach (source, get_utf8_body_foreach_part, &tmp);
- return tmp.body;
- }
- }
-@@ -1571,7 +1571,7 @@
-
- // fallback character encodings
- const char * group_charset (_charset.c_str());
-- const GMimeContentType * type (g_mime_object_get_content_type (GMIME_OBJECT(_message)));
-+ GMimeContentType * type (g_mime_object_get_content_type (GMIME_OBJECT(_message)));
- const char * message_charset (type ? g_mime_content_type_get_parameter (type, "charset") : 0);
-
- ///
-@@ -1585,14 +1585,14 @@
- const std::string reply_to (get_header (_message, "Reply-To", message_charset, group_charset));
- if (is_reply || fup_to=="poster") {
- const std::string& to (reply_to.empty() ? from : reply_to);
-- g_mime_message_add_recipients_from_string (msg, (char*)GMIME_RECIPIENT_TYPE_TO, to.c_str());
-+ g_mime_message_add_recipients_from_string (msg, GMIME_RECIPIENT_TYPE_TO, to.c_str());
- } else {
- const std::string& groups (fup_to.empty() ? newsgroups : fup_to);
-- g_mime_message_add_header (msg, "Newsgroups", groups.c_str());
-+ g_mime_object_append_header ((GMimeObject *) msg, "Newsgroups", groups.c_str());
- }
-
- // Subject:
-- StringView v = g_mime_message_get_header (_message, "Subject");
-+ StringView v = g_mime_object_get_header ((GMimeObject *) _message, "Subject");
- std::string h = header_to_utf8 (v, message_charset, group_charset);
- std::string val (normalize_subject_re (h));
- if (val.find ("Re:") != 0) // add "Re: " if we don't have one
-@@ -1601,22 +1601,22 @@
-
- // attribution lines
-
-- const char * cpch = g_mime_message_get_header (_message, "From");
-+ const char * cpch = g_mime_object_get_header ((GMimeObject *) _message, "From");
- h = header_to_utf8 (cpch, message_charset, group_charset);
-- g_mime_message_add_header (msg, "X-Draft-Attribution-Author", h.c_str());
-+ g_mime_object_append_header ((GMimeObject *) msg, "X-Draft-Attribution-Author", h.c_str());
-
- cpch = g_mime_message_get_message_id (_message);
- h = header_to_utf8 (cpch, message_charset, group_charset);
-- g_mime_message_add_header (msg, "X-Draft-Attribution-Id", h.c_str());
-+ g_mime_object_append_header ((GMimeObject *) msg, "X-Draft-Attribution-Id", h.c_str());
-
-- char * tmp = g_mime_message_get_date_string (_message);
-+ char * tmp = g_mime_message_get_date_as_string (_message);
- h = header_to_utf8 (tmp, message_charset, group_charset);
-- g_mime_message_add_header (msg, "X-Draft-Attribution-Date", h.c_str());
-+ g_mime_object_append_header ((GMimeObject *) msg, "X-Draft-Attribution-Date", h.c_str());
- g_free (tmp);
-
- // references
- const char * header = "References";
-- v = g_mime_message_get_header (_message, header);
-+ v = g_mime_object_get_header ((GMimeObject *) _message, header);
- val.assign (v.str, v.len);
- if (!val.empty())
- val += ' ';
-@@ -1624,7 +1624,7 @@
- val += g_mime_message_get_message_id (_message);
- val += ">";
- val = GNKSA :: trim_references (val);
-- g_mime_message_add_header (msg, header, val.c_str());
-+ g_mime_object_append_header ((GMimeObject *) msg, header, val.c_str());
-
- ///
- /// BODY
-@@ -1660,17 +1660,17 @@
- // set the clone's content object with our modified body
- GMimeStream * stream = g_mime_stream_mem_new ();
- g_mime_stream_write_string (stream, s.c_str());
-- GMimeDataWrapper * wrapper = g_mime_data_wrapper_new_with_stream (stream, GMIME_PART_ENCODING_8BIT);
-+ GMimeDataWrapper * wrapper = g_mime_data_wrapper_new_with_stream (stream, GMIME_CONTENT_ENCODING_8BIT);
- GMimePart * part = g_mime_part_new ();
- GMimeContentType * new_type = g_mime_content_type_new_from_string ("text/plain; charset=UTF-8");
-- g_mime_part_set_content_type (part, new_type);
-+ g_mime_object_set_content_type ((GMimeObject *) part, new_type);
- g_mime_part_set_content_object (part, wrapper);
-- g_mime_part_set_encoding (part, GMIME_PART_ENCODING_8BIT);
-+ g_mime_part_set_content_encoding (part, GMIME_CONTENT_ENCODING_8BIT);
- g_mime_message_set_mime_part (msg, GMIME_OBJECT(part));
- g_object_unref (wrapper);
- g_object_unref (part);
- g_object_unref (stream);
--//std::cerr << LINE_ID << " here is the modified clone\n [" << g_mime_message_to_string(msg) << ']' << std::endl;
-+//std::cerr << LINE_ID << " here is the modified clone\n [" << g_mime_object_to_string((GMimeObject *) msg) << ']' << std::endl;
- }
-
- return msg;
-diff -ru pan-0.133.orig/pan/gui/body-pane.h pan-0.133/pan/gui/body-pane.h
---- pan-0.133.orig/pan/gui/body-pane.h 2008-07-04 10:57:39.000000000 -0700
-+++ pan-0.133/pan/gui/body-pane.h 2009-09-08 20:40:40.000000000 -0700
-@@ -86,7 +86,7 @@
- void append_part (GMimeObject*, GtkAllocation*);
- static gboolean expander_activated_idle (gpointer self);
- static void expander_activated_cb (GtkExpander*, gpointer self);
-- static void foreach_part_cb (GMimeObject*, gpointer self);
-+ static void foreach_part_cb (GMimeObject*, GMimeObject*, gpointer self);
- static void text_size_allocated (GtkWidget*, GtkAllocation*, gpointer);
- static gboolean text_size_allocated_idle_cb (gpointer p);
- void text_size_allocated_idle ();
-diff -ru pan-0.133.orig/pan/gui/gui.cc pan-0.133/pan/gui/gui.cc
---- pan-0.133.orig/pan/gui/gui.cc 2008-07-05 00:14:56.000000000 -0700
-+++ pan-0.133/pan/gui/gui.cc 2009-09-12 14:44:06.000000000 -0700
-@@ -31,6 +31,7 @@
- #include <pan/general/file-util.h>
- #include <pan/general/macros.h>
- #include <pan/usenet-utils/scorefile.h>
-+#include <pan/usenet-utils/mime-utils.h>
- #include <pan/tasks/task-article.h>
- #include <pan/tasks/task-groups.h>
- #include <pan/tasks/task-xover.h>
-@@ -567,7 +568,7 @@
- ArticleCache& c, const Article& a, const std::string& path):
- _data(d), _queue(q), _root(r), _prefs(p), _cache(c), _article(a), _path(path) {}
-
-- static void foreach_part_cb (GMimeObject *o, gpointer self)
-+ static void foreach_part_cb (GMimeObject * /*parent*/, GMimeObject *o, gpointer self)
- {
- static_cast<SaveArticlesFromNZB*>(self)->foreach_part (o);
- }
-@@ -591,7 +592,7 @@
- if (!tasks.empty())
- _queue.add_tasks (tasks, Queue::BOTTOM);
- g_object_unref (mem_stream);
-- g_object_unref (wrapper);
-+// g_object_unref (wrapper); //SKG gmime 2.4 don't unref returned data wrapper
- }
- }
-
-@@ -601,7 +602,7 @@
- {
- if (status == OK) {
- GMimeMessage * message = _cache.get_message (_article.get_part_mids());
-- g_mime_message_foreach_part (message, foreach_part_cb, this);
-+ g_mime_message_foreach (message, foreach_part_cb, this);
- g_object_unref (message);
- }
- delete this;
-@@ -1041,19 +1042,19 @@
- const char * cpch;
- char * old_mid (g_strdup_printf ("<%s>", g_mime_message_get_message_id(message)));
- GMimeMessage * new_message (g_mime_message_new (false));
-- g_mime_message_set_header (new_message, "Supersedes", old_mid);
-+ g_mime_object_set_header ((GMimeObject *) new_message, "Supersedes", old_mid);
- g_mime_message_set_sender (new_message, g_mime_message_get_sender (message));
- g_mime_message_set_subject (new_message, g_mime_message_get_subject (message));
-- g_mime_message_set_header (new_message, "Newsgroups", g_mime_message_get_header (message, "Newsgroups"));
-- g_mime_message_set_header (new_message, "References", g_mime_message_get_header (message, "References"));
-+ g_mime_object_set_header ((GMimeObject *) new_message, "Newsgroups", g_mime_object_get_header ((GMimeObject *) message, "Newsgroups"));
-+ g_mime_object_set_header ((GMimeObject *) new_message, "References", g_mime_object_get_header ((GMimeObject *) message, "References"));
- if ((cpch = g_mime_message_get_reply_to (message)))
- g_mime_message_set_reply_to (new_message, cpch);
-- if ((cpch = g_mime_message_get_header (message, "Followup-To")))
-- g_mime_message_set_header (new_message, "Followup-To", cpch);
-+ if ((cpch = g_mime_object_get_header ((GMimeObject *) message, "Followup-To")))
-+ g_mime_object_set_header ((GMimeObject *) new_message, "Followup-To", cpch);
- gboolean unused (false);
-- char * body (g_mime_message_get_body (message, true, &unused));
-+ char * body (g_mime_message_get_body (message, &unused));
- GMimeStream * stream = g_mime_stream_mem_new_with_buffer (body, strlen(body));
-- GMimeDataWrapper * content_object = g_mime_data_wrapper_new_with_stream (stream, GMIME_PART_ENCODING_DEFAULT);
-+ GMimeDataWrapper * content_object = g_mime_data_wrapper_new_with_stream (stream, GMIME_CONTENT_ENCODING_DEFAULT);
- GMimePart * part = g_mime_part_new ();
- g_mime_part_set_content_object (part, content_object);
- g_mime_message_set_mime_part (new_message, GMIME_OBJECT(part));
-@@ -1111,11 +1112,11 @@
- char * cancel_message = g_strdup_printf ("cancel <%s>", g_mime_message_get_message_id(message));
- g_mime_message_set_sender (cancel, g_mime_message_get_sender (message));
- g_mime_message_set_subject (cancel, "Cancel");
-- g_mime_message_set_header (cancel, "Newsgroups", g_mime_message_get_header (message, "Newsgroups"));
-- g_mime_message_set_header (cancel, "Control", cancel_message);
-+ g_mime_object_set_header ((GMimeObject *) cancel, "Newsgroups", g_mime_object_get_header ((GMimeObject *) message, "Newsgroups"));
-+ g_mime_object_set_header ((GMimeObject *) cancel, "Control", cancel_message);
- const char * body ("Ignore\r\nArticle canceled by author using " PACKAGE_STRING "\r\n");
- GMimeStream * stream = g_mime_stream_mem_new_with_buffer (body, strlen(body));
-- GMimeDataWrapper * content_object = g_mime_data_wrapper_new_with_stream (stream, GMIME_PART_ENCODING_DEFAULT);
-+ GMimeDataWrapper * content_object = g_mime_data_wrapper_new_with_stream (stream, GMIME_CONTENT_ENCODING_DEFAULT);
- GMimePart * part = g_mime_part_new ();
- g_mime_part_set_content_object (part, content_object);
- g_mime_message_set_mime_part (cancel, GMIME_OBJECT(part));
-@@ -1194,12 +1195,12 @@
- newsgroups = group;
- }
- if (!newsgroups.empty())
-- g_mime_message_add_header (message, "Newsgroups", newsgroups.c_str());
-+ g_mime_object_append_header ((GMimeObject *) message, "Newsgroups", newsgroups.c_str());
-
- // content type
- GMimePart * part = g_mime_part_new ();
-- g_mime_part_set_content_type (part, g_mime_content_type_new_from_string ("text/plain; charset=UTF-8"));
-- g_mime_part_set_encoding (part, GMIME_PART_ENCODING_8BIT);
-+ g_mime_object_set_content_type ((GMimeObject *) part, g_mime_content_type_new_from_string ("text/plain; charset=UTF-8"));
-+ g_mime_part_set_content_encoding (part, GMIME_CONTENT_ENCODING_8BIT);
- g_mime_message_set_mime_part (message, GMIME_OBJECT(part));
- g_object_unref (part);
-
-@@ -1754,8 +1755,8 @@
- g_snprintf (str, sizeof(str), "%s: %u/%u", _("Tasks"), running, size);
-
- // build the tooltip
-- gulong queued, unused, stopped;
-- guint64 KiB_remain;
-+ long unsigned int queued, unused, stopped; //SKG MacPorts can't find function
-+ uint64_t KiB_remain; //SKG using gulong and guint64 types.
- double KiBps;
- int hr, min, sec;
- _queue.get_stats (queued, unused, stopped,
-diff -ru pan-0.133.orig/pan/gui/pan.cc pan-0.133/pan/gui/pan.cc
---- pan-0.133.orig/pan/gui/pan.cc 2008-07-04 11:30:29.000000000 -0700
-+++ pan-0.133/pan/gui/pan.cc 2009-09-12 13:39:13.000000000 -0700
-@@ -211,7 +211,7 @@
- textdomain (GETTEXT_PACKAGE);
-
- g_thread_init (0);
-- g_mime_init (GMIME_INIT_FLAG_UTF8);
-+ g_mime_init (GMIME_ENABLE_RFC2047_WORKAROUNDS);
-
- bool gui(true), nzb(false);
- std::string url;
-diff -ru pan-0.133.orig/pan/gui/post-ui.cc pan-0.133/pan/gui/post-ui.cc
---- pan-0.133.orig/pan/gui/post-ui.cc 2008-07-13 06:32:11.000000000 -0700
-+++ pan-0.133/pan/gui/post-ui.cc 2009-09-12 13:04:51.000000000 -0700
-@@ -529,8 +529,8 @@
- {
- std::string url, to, groups;
- gboolean unused;
-- char * headers (g_mime_message_get_headers (message));
-- char * body (g_mime_message_get_body (message, true, &unused));
-+ char * headers (g_mime_object_get_headers ((GMimeObject *) message));
-+ char * body (g_mime_message_get_body (message, &unused));
- StringView key, val, v(headers);
- v.trim ();
- while (v.pop_token (val, '\n') && val.pop_token(key,':')) {
-@@ -629,7 +629,7 @@
- *** If this is email only, skip the rest of the posting...
- *** we only stayed this long to get check_message()
- **/
-- const StringView groups (g_mime_message_get_header (message, "Newsgroups"));
-+ const StringView groups (g_mime_object_get_header ((GMimeObject *) message, "Newsgroups"));
- if (groups.empty()) {
- maybe_mail_message (message);
- return true;
-@@ -903,9 +903,9 @@
- */
- void pan_g_mime_message_set_message_id (GMimeMessage *msg, const char *mid)
- {
-- g_mime_message_add_header (msg, "Message-ID", mid);
-+ g_mime_object_append_header ((GMimeObject *) msg, "Message-ID", mid);
- char * bracketed = g_strdup_printf ("<%s>", mid);
-- g_mime_header_set (GMIME_OBJECT(msg)->headers, "Message-ID", bracketed);
-+ g_mime_header_list_set (GMIME_OBJECT(msg)->headers, "Message-ID", bracketed);
- g_free (bracketed);
- }
- }
-@@ -928,27 +928,27 @@
- // headers from the ui: To
- const StringView to (gtk_entry_get_text (GTK_ENTRY(_to_entry)));
- if (!to.empty())
-- g_mime_message_add_recipients_from_string (msg, (char*)GMIME_RECIPIENT_TYPE_TO, to.str);
-+ g_mime_message_add_recipients_from_string (msg, GMIME_RECIPIENT_TYPE_TO, to.str);
-
- // headers from the ui: Newsgroups
- const StringView groups (gtk_entry_get_text (GTK_ENTRY(_groups_entry)));
- if (!groups.empty())
-- g_mime_message_set_header (msg, "Newsgroups", groups.str);
-+ g_mime_object_set_header ((GMimeObject *) msg, "Newsgroups", groups.str);
-
- // headers from the ui: Followup-To
- const StringView followupto (gtk_entry_get_text (GTK_ENTRY(_followupto_entry)));
- if (!followupto.empty())
-- g_mime_message_set_header (msg, "Followup-To", followupto.str);
-+ g_mime_object_set_header ((GMimeObject *) msg, "Followup-To", followupto.str);
-
- // headers from the ui: Reply-To
- const StringView replyto (gtk_entry_get_text (GTK_ENTRY(_replyto_entry)));
- if (!replyto.empty())
-- g_mime_message_set_header (msg, "Reply-To", replyto.str);
-+ g_mime_object_set_header ((GMimeObject *) msg, "Reply-To", replyto.str);
-
- // add the 'hidden headers'
- foreach_const (str2str_t, _hidden_headers, it)
- if ((mode==DRAFTING) || (it->first.find ("X-Draft-")!=0))
-- g_mime_message_set_header (msg, it->first.c_str(), it->second.c_str());
-+ g_mime_object_set_header ((GMimeObject *) msg, it->first.c_str(), it->second.c_str());
-
- // build headers from the 'more headers' entry field
- std::map<std::string,std::string> headers;
-@@ -964,14 +964,14 @@
- val.trim ();
- std::string key_str (key.to_string());
- if (extra_header_is_editable (key, val))
-- g_mime_message_set_header (msg, key.to_string().c_str(),
-- val.to_string().c_str());
-+ g_mime_object_set_header ((GMimeObject *) msg, key.to_string().c_str(),
-+ val.to_string().c_str());
- }
- g_free (pch);
-
- // User-Agent
- if (mode==POSTING && _prefs.get_flag (USER_AGENT_PREFS_KEY, true))
-- g_mime_message_set_header (msg, "User-Agent", get_user_agent());
-+ g_mime_object_set_header ((GMimeObject *) msg, "User-Agent", get_user_agent());
-
- // Message-ID
- if (mode==POSTING && _prefs.get_flag (MESSAGE_ID_PREFS_KEY, false)) {
-@@ -987,22 +987,22 @@
- const std::string charset ((mode==POSTING && !_charset.empty()) ? _charset : "UTF-8");
- if (charset != "UTF-8") {
- // add a wrapper to convert from UTF-8 to $charset
-- GMimeStream * tmp = g_mime_stream_filter_new_with_stream (stream);
-+ GMimeStream * tmp = g_mime_stream_filter_new (stream);
- g_object_unref (stream);
- GMimeFilter * filter = g_mime_filter_charset_new ("UTF-8", charset.c_str());
- g_mime_stream_filter_add (GMIME_STREAM_FILTER(tmp), filter);
- g_object_unref (filter);
- stream = tmp;
- }
-- GMimeDataWrapper * content_object = g_mime_data_wrapper_new_with_stream (stream, GMIME_PART_ENCODING_DEFAULT);
-+ GMimeDataWrapper * content_object = g_mime_data_wrapper_new_with_stream (stream, GMIME_CONTENT_ENCODING_DEFAULT);
- g_object_unref (stream);
- GMimePart * part = g_mime_part_new ();
- pch = g_strdup_printf ("text/plain; charset=%s", charset.c_str());
- GMimeContentType * type = g_mime_content_type_new_from_string (pch);
- g_free (pch);
-- g_mime_part_set_content_type (part, type); // part owns type now. type isn't refcounted.
-+ g_mime_object_set_content_type ((GMimeObject *) part, type); // part owns type now. type isn't refcounted.
- g_mime_part_set_content_object (part, content_object);
-- g_mime_part_set_encoding (part, GMIME_PART_ENCODING_8BIT);
-+ g_mime_part_set_content_encoding (part, GMIME_CONTENT_ENCODING_8BIT);
- g_object_unref (content_object);
- g_mime_message_set_mime_part (msg, GMIME_OBJECT(part));
- g_object_unref (part);
-@@ -1036,7 +1036,7 @@
-
- errno = 0;
- std::ofstream o (filename);
-- char * pch = g_mime_message_to_string (msg);
-+ char * pch = g_mime_object_to_string ((GMimeObject *) msg);
- o << pch;
- o.close ();
-
-@@ -1504,16 +1504,16 @@
- std::string s = utf8ize (g_mime_message_get_subject (message));
- gtk_entry_set_text (GTK_ENTRY(_subject_entry), s.c_str());
-
-- s = utf8ize (g_mime_message_get_header (message, "Newsgroups"));
-+ s = utf8ize (g_mime_object_get_header ((GMimeObject *) message, "Newsgroups"));
- gtk_entry_set_text (GTK_ENTRY(_groups_entry), s.c_str());
-
-- s = utf8ize (g_mime_message_get_header (message, "Followup-To"));
-+ s = utf8ize (g_mime_object_get_header ((GMimeObject *) message, "Followup-To"));
- gtk_entry_set_text (GTK_ENTRY(_followupto_entry), s.c_str());
-
-- s = utf8ize (g_mime_message_get_header (message, "Reply-To"));
-+ s = utf8ize (g_mime_object_get_header ((GMimeObject *) message, "Reply-To"));
- gtk_entry_set_text (GTK_ENTRY(_replyto_entry), s.c_str());
-
-- const InternetAddressList * addresses = g_mime_message_get_recipients (message, GMIME_RECIPIENT_TYPE_TO);
-+ InternetAddressList * addresses = g_mime_message_get_recipients (message, GMIME_RECIPIENT_TYPE_TO);
- char * pch = internet_address_list_to_string (addresses, true);
- s = utf8ize (pch);
- gtk_entry_set_text (GTK_ENTRY(_to_entry), s.c_str());
-@@ -1521,16 +1521,34 @@
-
- // update 'other headers'
- SetMessageForeachHeaderData data;
-- if (message->mime_part && g_mime_header_has_raw (message->mime_part->headers))
-- g_mime_header_foreach (message->mime_part->headers, set_message_foreach_header_func, &data);
-- g_mime_header_foreach (GMIME_OBJECT(message)->headers, set_message_foreach_header_func, &data);
-+ const char *name, *value;
-+ GMimeHeaderIter iter;
-+
-+ if (message->mime_part && g_mime_header_list_has_raw (message->mime_part->headers)) {
-+ if (g_mime_header_list_get_iter (message->mime_part->headers, &iter)) {
-+ do {
-+ value = g_mime_header_iter_get_value (&iter);
-+ name = g_mime_header_iter_get_name (&iter);
-+ set_message_foreach_header_func (name, value, &data);
-+ } while (g_mime_header_iter_next (&iter));
-+ }
-+ }
-+
-+ if (g_mime_header_list_get_iter (GMIME_OBJECT (message)->headers, &iter)) {
-+ do {
-+ value = g_mime_header_iter_get_value (&iter);
-+ name = g_mime_header_iter_get_name (&iter);
-+ set_message_foreach_header_func (name, value, &data);
-+ } while (g_mime_header_iter_next (&iter));
-+ }
-+
- s = utf8ize (data.visible_headers);
- gtk_text_buffer_set_text (_headers_buf, s.c_str(), -1);
- _hidden_headers = data.hidden_headers;
-
- // update body
- int ignored;
-- char * tmp = g_mime_message_get_body (message, true, &ignored);
-+ char * tmp = g_mime_message_get_body (message, &ignored);
- s = utf8ize (tmp);
- g_free (tmp);
- if (!s.empty()) {
-diff -ru pan-0.133.orig/pan/usenet-utils/message-check-test.cc pan-0.133/pan/usenet-utils/message-check-test.cc
---- pan-0.133.orig/pan/usenet-utils/message-check-test.cc 2007-08-01 09:59:59.000000000 -0700
-+++ pan-0.133/pan/usenet-utils/message-check-test.cc 2009-09-12 13:41:22.000000000 -0700
-@@ -22,6 +22,20 @@
- std::cerr << LINE_ID << " [" << i << "][" << *it << ']' << std::endl; \
- }
-
-+static void
-+mime_part_set_content (GMimePart *part, const char *str)
-+{
-+ GMimeDataWrapper *content;
-+ GMimeStream *stream;
-+
-+ stream = g_mime_stream_mem_new_with_buffer (str, strlen (str));
-+ content = g_mime_data_wrapper_new_with_stream (stream, GMIME_CONTENT_ENCODING_DEFAULT);
-+ g_object_unref (stream);
-+
-+ g_mime_part_set_content_object (part, content);
-+ g_object_unref (content);
-+}
-+
- int main (void)
- {
- g_mime_init (0);
-@@ -41,11 +55,11 @@
- std::string message_id = GNKSA :: generate_message_id ("rebelbase.com");
- g_mime_message_set_message_id (msg, message_id.c_str());
- g_mime_message_set_subject (msg, "MAKE MONEY FAST");
-- g_mime_message_set_header (msg, "Organization", "Lazars Android Works");
-- g_mime_message_set_header (msg, "Newsgroups", "alt.test");
-+ g_mime_object_set_header ((GMimeObject *) msg, "Organization", "Lazars Android Works");
-+ g_mime_object_set_header ((GMimeObject *) msg, "Newsgroups", "alt.test");
- GMimePart * part = g_mime_part_new_with_type ("text", "plain");
- const char * cpch = "Hello World!";
-- g_mime_part_set_content (part, cpch, strlen(cpch));
-+ mime_part_set_content (part, cpch);
- g_mime_message_set_mime_part (msg, GMIME_OBJECT(part));
- // this should pass the tests
- MessageCheck :: message_check (msg, attribution, groups_our_server_has, errors, goodness);
-@@ -54,7 +68,7 @@
-
- // all quoted
- cpch = "> Hello World!\n> All quoted text.";
-- g_mime_part_set_content (part, cpch, strlen(cpch));
-+ mime_part_set_content (part, cpch);
- MessageCheck :: message_check (msg, attribution, groups_our_server_has, errors, goodness);
- std::vector<std::string> e (errors.begin(), errors.end());
- check (errors.size() == 2)
-@@ -64,7 +78,7 @@
-
- // mostly quoted
- cpch = "> Hello World!\n> quoted\n> text\n> foo\n> bar\nnew text";
-- g_mime_part_set_content (part, cpch, strlen(cpch));
-+ mime_part_set_content (part, cpch);
- MessageCheck :: message_check (msg, attribution, groups_our_server_has, errors, goodness);
- e.assign (errors.begin(), errors.end());
- check (errors.size() == 1)
-@@ -73,14 +87,14 @@
-
- // mostly quoted border condition: 20% of message is new content (should pass)
- cpch = "> Hello World!\n> quoted\n> text\n> foo\nnew text";
-- g_mime_part_set_content (part, cpch, strlen(cpch));
-+ mime_part_set_content (part, cpch);
- MessageCheck :: message_check (msg, attribution, groups_our_server_has, errors, goodness);
- check (errors.empty())
- check (goodness.is_ok())
-
- // sig check: too long
- cpch = "Hello!\n\n-- \nThis\nSig\nIs\nToo\nLong\n";
-- g_mime_part_set_content (part, cpch, strlen(cpch));
-+ mime_part_set_content (part, cpch);
- MessageCheck :: message_check (msg, attribution, groups_our_server_has, errors, goodness);
- e.assign (errors.begin(), errors.end());
- check (errors.size() == 1)
-@@ -95,7 +109,7 @@
- "This sig line is greater than 80 characters wide. In fact, it's 84 characters wide.\n"
- "This sig line is greater than 80 characters wide. In fact, it measures 95 characters in width!\n"
- "This sig line is less than 80 characters wide.";
-- g_mime_part_set_content (part, cpch, strlen(cpch));
-+ mime_part_set_content (part, cpch);
- MessageCheck :: message_check (msg, attribution, groups_our_server_has, errors, goodness);
- e.assign (errors.begin(), errors.end());
- check (errors.size() == 1)
-@@ -104,7 +118,7 @@
-
- // sig check: sig marker, no sig
- cpch = "Hello!\n\n-- \n";
-- g_mime_part_set_content (part, cpch, strlen(cpch));
-+ mime_part_set_content (part, cpch);
- MessageCheck :: message_check (msg, attribution, groups_our_server_has, errors, goodness);
- e.assign (errors.begin(), errors.end());
- check (errors.size() == 1)
-@@ -113,7 +127,7 @@
-
- // sig check: okay sig
- cpch = "Hello!\n\n-- \nThis is a short, narrow sig.\nIt should pass.\n";
-- g_mime_part_set_content (part, cpch, strlen(cpch));
-+ mime_part_set_content (part, cpch);
- MessageCheck :: message_check (msg, attribution, groups_our_server_has, errors, goodness);
- check (errors.empty())
- check (goodness.is_ok())
-@@ -146,7 +160,7 @@
- "This sig line is greater than 80 characters wide. In fact, it's 84 characters wide.\n"
- "This sig line is greater than 80 characters wide. In fact, it measures 95 characters in width!\n"
- "This sig line is less than 80 characters wide.";
-- g_mime_part_set_content (part, cpch, strlen(cpch));
-+ mime_part_set_content (part, cpch);
- MessageCheck :: message_check (msg, attribution, groups_our_server_has, errors, goodness);
- e.assign (errors.begin(), errors.end());
- check (errors.size() == 1)
-@@ -155,7 +169,7 @@
-
- // body empty
- cpch = "\n\t\n \n-- \nThis is the sig.";
-- g_mime_part_set_content (part, cpch, strlen(cpch));
-+ mime_part_set_content (part, cpch);
- MessageCheck :: message_check (msg, attribution, groups_our_server_has, errors, goodness);
- e.assign (errors.begin(), errors.end());
- check (errors.size() == 2)
-@@ -163,7 +177,7 @@
- check (e[0] == "Error: Message appears to have no new content.");
- check (e[1] == "Error: Message is empty.");
- cpch = "Some valid message.";
-- g_mime_part_set_content (part, cpch, strlen(cpch));
-+ mime_part_set_content (part, cpch);
-
- // empty subject
- g_mime_message_set_subject (msg, "");
-@@ -175,17 +189,17 @@
- g_mime_message_set_subject (msg, "Happy Lucky Feeling");
-
- // newsgroups
-- g_mime_message_set_header (msg, "Newsgroups", "alt.test,unknown.group");
-+ g_mime_object_set_header ((GMimeObject *) msg, "Newsgroups", "alt.test,unknown.group");
- MessageCheck :: message_check (msg, attribution, groups_our_server_has, errors, goodness);
- e.assign (errors.begin(), errors.end());
- check (errors.size() == 1)
- check (goodness.is_warn())
- check (e[0] == "Warning: The posting profile's server doesn't carry newsgroup\n\t\"unknown.group\".\n\tIf the group name is correct, switch profiles in the \"From:\"\n\tline or edit the profile with \"Edit|Manage Posting Profiles\".")
-- g_mime_message_set_header (msg, "Newsgroups", "alt.test");
-+ g_mime_object_set_header ((GMimeObject *) msg, "Newsgroups", "alt.test");
-
- // newsgroups w/o followup
-- g_mime_message_set_header (msg, "Newsgroups", "alt.test,alt.religion.kibology,alt.binaries.sounds.mp3.indie");
-- g_mime_header_remove (GMIME_OBJECT(msg)->headers, "Followup-To");
-+ g_mime_object_set_header ((GMimeObject *) msg, "Newsgroups", "alt.test,alt.religion.kibology,alt.binaries.sounds.mp3.indie");
-+ g_mime_header_list_remove (GMIME_OBJECT(msg)->headers, "Followup-To");
- MessageCheck :: message_check (msg, attribution, groups_our_server_has, errors, goodness);
- e.assign (errors.begin(), errors.end());
- check (errors.size() == 1)
-@@ -193,8 +207,8 @@
- check (e[0] == "Warning: Crossposting without setting Followup-To header.")
-
- // unknown follow-up
-- g_mime_message_set_header (msg, "Newsgroups", "alt.test");
-- g_mime_message_set_header (msg, "Followup-To", "alt.test,unknown.group");
-+ g_mime_object_set_header ((GMimeObject *) msg, "Newsgroups", "alt.test");
-+ g_mime_object_set_header ((GMimeObject *) msg, "Followup-To", "alt.test,unknown.group");
- MessageCheck :: message_check (msg, attribution, groups_our_server_has, errors, goodness);
- e.assign (errors.begin(), errors.end());
- check (errors.size() == 1)
-@@ -203,11 +217,11 @@
- g_mime_object_remove_header (GMIME_OBJECT(msg), "Followup-To");
-
- // top posting
-- g_mime_message_set_header (msg, "References", "<asdf@foo.com>");
-+ g_mime_object_set_header ((GMimeObject *) msg, "References", "<asdf@foo.com>");
- cpch = "How Fascinating!\n"
- "\n"
- "> Blah blah blah.\n";
-- g_mime_part_set_content (part, cpch, strlen(cpch));
-+ mime_part_set_content (part, cpch);
- MessageCheck :: message_check (msg, attribution, groups_our_server_has, errors, goodness);
- e.assign (errors.begin(), errors.end());
- check (errors.size() == 1)
-@@ -216,7 +230,7 @@
- g_mime_object_remove_header (GMIME_OBJECT(msg), "References");
-
- // top posting
-- g_mime_message_set_header (msg, "References", "<asdf@foo.com>");
-+ g_mime_object_set_header ((GMimeObject *) msg, "References", "<asdf@foo.com>");
- cpch = "How Fascinating!\n"
- "\n"
- "> Blah blah blah.\n"
-@@ -224,7 +238,7 @@
- "-- \n"
- "Pan shouldn't mistake this signature for\n"
- "original content in the top-posting check.\n";
-- g_mime_part_set_content (part, cpch, strlen(cpch));
-+ mime_part_set_content (part, cpch);
- MessageCheck :: message_check (msg, attribution, groups_our_server_has, errors, goodness);
- e.assign (errors.begin(), errors.end());
- check (errors.size() == 1)
-@@ -238,7 +252,7 @@
- "\n"
- "--\n"
- "This is my signature.\n";
-- g_mime_part_set_content (part, cpch, strlen(cpch));
-+ mime_part_set_content (part, cpch);
- MessageCheck :: message_check (msg, attribution, groups_our_server_has, errors, goodness);
- e.assign (errors.begin(), errors.end());
- check (errors.size() == 1)
-diff -ru pan-0.133.orig/pan/usenet-utils/message-check.cc pan-0.133/pan/usenet-utils/message-check.cc
---- pan-0.133.orig/pan/usenet-utils/message-check.cc 2008-07-04 23:15:22.000000000 -0700
-+++ pan-0.133/pan/usenet-utils/message-check.cc 2009-09-12 13:42:37.000000000 -0700
-@@ -30,6 +30,7 @@
- #include "gnksa.h"
- #include "message-check.h"
- #include "text-massager.h"
-+#include "mime-utils.h"
-
- using namespace pan;
-
-@@ -62,7 +63,7 @@
- std::string body (body_in.to_string());
-
- // strip attribution
-- const char * attribution = g_mime_message_get_header (message, PAN_ATTRIBUTION);
-+ const char * attribution = g_mime_object_get_header ((GMimeObject *) message, PAN_ATTRIBUTION);
- if (attribution && *attribution)
- {
- std::string::size_type attrib_start_pos = body.find (attribution);
-@@ -99,7 +100,7 @@
- GMimeMessage * message)
- {
- // if it's not a reply, then top-posting check is moot
-- if (g_mime_message_get_header (message, "References") == NULL)
-+ if (g_mime_object_get_header ((GMimeObject *) message, "References") == NULL)
- return;
-
- bool quoted_found (false);
-@@ -414,7 +415,6 @@
- }
- }
-
--
- void
- MessageCheck :: message_check (const GMimeMessage * message_const,
- const StringView & attribution,
-@@ -432,7 +432,7 @@
- check_subject (errors, goodness, g_mime_message_get_subject (message));
-
- // check the author...
-- if (GNKSA::check_from (g_mime_message_get_header (message, "From"), true)) {
-+ if (GNKSA::check_from (g_mime_object_get_header ((GMimeObject *) message, "From"), true)) {
- errors.insert (_("Error: Bad email address."));
- goodness.raise_to_warn ();
- }
-@@ -440,17 +440,17 @@
- // check the body...
- TextMassager tm;
- gboolean is_html;
-- char * body = g_mime_message_get_body (message, true, &is_html);
-+ char * body = g_mime_message_get_body (message, &is_html);
- if (is_html) {
- errors.insert (_("Warning: Most newsgroups frown upon HTML posts."));
- goodness.raise_to_warn ();
- }
- check_body (errors, goodness, tm, message, body, attribution);
- g_free (body);
--
-+
- // check the optional followup-to...
- bool followup_to_set (false);
-- const char * cpch = g_mime_message_get_header (message, "Followup-To");
-+ const char * cpch = g_mime_object_get_header ((GMimeObject *) message, "Followup-To");
- if (cpch && *cpch) {
- quarks_t groups;
- get_nntp_rcpts (cpch, groups);
-@@ -460,7 +460,7 @@
-
- // check the groups...
- size_t group_qty (0);
-- cpch = g_mime_message_get_header (message, "Newsgroups");
-+ cpch = g_mime_object_get_header ((GMimeObject *) message, "Newsgroups");
- if (cpch && *cpch) {
- quarks_t groups;
- get_nntp_rcpts (cpch, groups);
-@@ -469,7 +469,7 @@
- }
-
- // one last error check
-- const InternetAddressList * list (g_mime_message_get_recipients (message, GMIME_RECIPIENT_TYPE_TO));
-+ InternetAddressList * list (g_mime_message_get_recipients (message, GMIME_RECIPIENT_TYPE_TO));
- const int n_to (internet_address_list_length (list));
- if (!group_qty && !n_to) {
- errors.insert (_("Error: No Recipients."));
-diff -ru pan-0.133.orig/pan/usenet-utils/mime-utils.cc pan-0.133/pan/usenet-utils/mime-utils.cc
---- pan-0.133.orig/pan/usenet-utils/mime-utils.cc 2008-07-04 23:15:24.000000000 -0700
-+++ pan-0.133/pan/usenet-utils/mime-utils.cc 2009-09-12 14:46:25.000000000 -0700
-@@ -455,10 +455,10 @@
- part->stream = g_mime_stream_mem_new ();
- if (part->type != ENC_PLAIN) {
- part->filter_stream =
-- g_mime_stream_filter_new_with_stream (part->stream);
-+ g_mime_stream_filter_new (part->stream);
- part->filter = part->type == ENC_UU
-- ? g_mime_filter_basic_new_type (GMIME_FILTER_BASIC_UU_DEC)
-- : g_mime_filter_yenc_new (GMIME_FILTER_YENC_DIRECTION_DECODE);
-+ ? g_mime_filter_basic_new (GMIME_CONTENT_ENCODING_UUENCODE, FALSE)
-+ : g_mime_filter_yenc_new (FALSE);
- g_mime_stream_filter_add (GMIME_STREAM_FILTER(part->filter_stream),
- part->filter);
- }
-@@ -722,18 +722,21 @@
- {
- // if the part is a multipart, check its subparts
- if (GMIME_IS_MULTIPART (*part)) {
-- GList * subparts = GMIME_MULTIPART (*part)->subparts;
-- while (subparts) {
-- GMimeObject * subpart = (GMimeObject *) subparts->data;
-+ GMimeMultipart *multipart = (GMimeMultipart *) *part;
-+ int count = g_mime_multipart_get_count(multipart);
-+ int i;
-+
-+ for (i = 0; i < count; i++) {
-+ GMimeObject * subpart = g_mime_multipart_remove_at (multipart, i);
- handle_uu_and_yenc_in_text_plain (&subpart);
-- subparts->data = subpart;
-- subparts = subparts->next;
-+ g_mime_multipart_insert (multipart, i, subpart);
-+ g_object_unref (subpart);
- }
- return;
- }
-
- // we assume that inlined yenc and uu are only in text/plain blocks
-- const GMimeContentType * content_type = g_mime_object_get_content_type (*part);
-+ GMimeContentType * content_type = g_mime_object_get_content_type (*part);
- if (!g_mime_content_type_is_type (content_type, "text", "plain"))
- return;
-
-@@ -746,8 +749,8 @@
- GMimeStream * stream = g_mime_data_wrapper_get_stream (content);
- g_mime_stream_reset (stream);
- GMimeStream * istream = g_mime_stream_buffer_new (stream, GMIME_STREAM_BUFFER_BLOCK_READ);
-- g_object_unref (stream);
-- g_object_unref (content);
-+// g_object_unref (stream); //SKG if this is unrefed, when istream is unrefed below, content loses its stream
-+// g_object_unref (content); //SKG gmime 2.4 don't unref returned data wrapper
-
- // break it into separate parts for text, uu, and yenc pieces.
- temp_parts_t parts;
-@@ -774,22 +777,22 @@
- g_mime_part_set_filename (subpart, filename);
-
- GMimeStream * subpart_stream = tmp_part->stream;
-- content = g_mime_data_wrapper_new_with_stream (subpart_stream, GMIME_PART_ENCODING_DEFAULT);
-+ content = g_mime_data_wrapper_new_with_stream (subpart_stream, GMIME_CONTENT_ENCODING_DEFAULT);
- g_mime_part_set_content_object (subpart, content);
-- g_mime_multipart_add_part (GMIME_MULTIPART (multipart), GMIME_OBJECT (subpart));
-+ g_mime_multipart_add (GMIME_MULTIPART (multipart), GMIME_OBJECT (subpart));
-
- g_object_unref (content);
- g_object_unref (subpart);
- }
-
- // replace the old part with the new multipart
-- g_mime_object_unref (*part);
-+ g_object_unref (*part);
- *part = GMIME_OBJECT (multipart);
- }
-
- foreach (temp_parts_t, parts, it)
- delete *it;
-- g_mime_stream_unref (istream);
-+ g_object_unref (istream);
- }
- }
-
-@@ -831,15 +834,15 @@
- GMimeStream * stream = g_mime_data_wrapper_get_stream (wrapper);
- g_mime_stream_reset (stream);
- g_mime_stream_cat_add_source (GMIME_STREAM_CAT (cat), stream);
-- g_object_unref (stream);
-- g_object_unref (wrapper);
-+// g_object_unref (stream); //SKG if this is unrefed cat loses its stream
-+// g_object_unref (wrapper); //SKG gmime 2.4 don't unref returned data wrapper
- }
-
- GMimeMessage * message = messages[0];
- GMimeDataWrapper * wrapper = g_mime_part_get_content_object (GMIME_PART(message->mime_part));
- g_mime_stream_reset (cat);
- g_mime_data_wrapper_set_stream (wrapper, cat);
-- g_object_unref (wrapper);
-+// g_object_unref (wrapper); //SKG gmime 2.4 don't unref returned data wrapper
- g_object_unref (cat);
- }
-
-@@ -1007,3 +1010,174 @@
- {
- normalize_subject (subject, STRIP_MULTIPART_NUMERATOR, setme);
- }
-+
-+static GMimeObject *
-+handle_multipart_mixed (GMimeMultipart *multipart, gboolean *is_html);
-+
-+static GMimeObject *
-+handle_multipart_alternative (GMimeMultipart *multipart, gboolean *is_html)
-+{
-+ GMimeObject *mime_part, *text_part = NULL;
-+ GMimeContentType *type;
-+ int count = g_mime_multipart_get_count (multipart);
-+
-+ for (int i = 0; i < count; ++i) {
-+ mime_part = g_mime_multipart_get_part (multipart, i);
-+
-+ type = g_mime_object_get_content_type (mime_part);
-+ if (g_mime_content_type_is_type (type, "text", "*")) {
-+ if (!text_part || !g_ascii_strcasecmp (type->subtype, "plain")) {
-+ *is_html = !g_ascii_strcasecmp (type->subtype, "html");
-+ text_part = mime_part;
-+ }
-+ }
-+ }
-+
-+ return text_part;
-+}
-+
-+static GMimeObject *
-+handle_multipart_mixed (GMimeMultipart *multipart, gboolean *is_html)
-+{
-+ GMimeObject *mime_part, *text_part = NULL;
-+ GMimeContentType *type, *first_type = NULL;
-+ int count = g_mime_multipart_get_count (multipart);
-+
-+ for (int i = 0; i < count; ++i) {
-+ mime_part = g_mime_multipart_get_part (multipart, i);
-+
-+ type = g_mime_object_get_content_type (mime_part);
-+ if (GMIME_IS_MULTIPART (mime_part)) {
-+ multipart = GMIME_MULTIPART (mime_part);
-+ if (g_mime_content_type_is_type (type, "multipart", "alternative")) {
-+ mime_part = handle_multipart_alternative (multipart, is_html);
-+ if (mime_part)
-+ return mime_part;
-+ } else {
-+ mime_part = handle_multipart_mixed (multipart, is_html);
-+ if (mime_part && !text_part)
-+ text_part = mime_part;
-+ }
-+ } else if (g_mime_content_type_is_type (type, "text", "*")) {
-+ if (!g_ascii_strcasecmp (type->subtype, "plain")) {
-+ /* we got what we came for */
-+ *is_html = !g_ascii_strcasecmp (type->subtype, "html");
-+ return mime_part;
-+ }
-+
-+ /* if we haven't yet found a text part or if it is a type we can
-+ * * understand and it is the first of that type, save it */
-+ if (!text_part || (!g_ascii_strcasecmp (type->subtype, "plain") && (first_type &&
-+ g_ascii_strcasecmp (type->subtype, first_type->subtype) != 0))) {
-+ *is_html = !g_ascii_strcasecmp (type->subtype, "html");
-+ text_part = mime_part;
-+ first_type = type;
-+ }
-+ }
-+ }
-+
-+ return text_part;
-+}
-+
-+#define NEEDS_DECODING(encoding) ((encoding == GMIME_CONTENT_ENCODING_BASE64) || \
-+ (encoding == GMIME_CONTENT_ENCODING_UUENCODE) || \
-+ (encoding == GMIME_CONTENT_ENCODING_QUOTEDPRINTABLE))
-+
-+static const char *
-+g_mime_part_get_content (const GMimePart *mime_part, size_t *len)
-+{
-+ const char *retval = NULL;
-+ GMimeStream *stream;
-+
-+ g_return_val_if_fail (GMIME_IS_PART (mime_part), NULL);
-+
-+ if (!mime_part->content || !mime_part->content->stream) {
-+ g_warning ("no content set on this mime part");
-+ return NULL;
-+ }
-+
-+ stream = mime_part->content->stream;
-+ if (!GMIME_IS_STREAM_MEM (stream) || NEEDS_DECODING (mime_part->content->encoding)) {
-+ /* Decode and cache this mime part's contents... */
-+ GMimeStream *cache;
-+ GByteArray *buf;
-+
-+ buf = g_byte_array_new ();
-+ cache = g_mime_stream_mem_new_with_byte_array (buf);
-+
-+ g_mime_data_wrapper_write_to_stream (mime_part->content, cache);
-+
-+ g_mime_data_wrapper_set_stream (mime_part->content, cache);
-+ g_mime_data_wrapper_set_encoding (mime_part->content, GMIME_CONTENT_ENCODING_DEFAULT);
-+ g_object_unref (cache);
-+
-+ *len = buf->len;
-+ retval = (char *) buf->data;
-+ } else {
-+ GByteArray *buf = GMIME_STREAM_MEM (stream)->buffer;
-+ off_t end_index = (off_t) buf->len;
-+ off_t start_index = 0;
-+
-+ /* check boundaries */
-+ if (stream->bound_start >= 0)
-+ start_index = CLAMP (stream->bound_start, 0, (off_t) buf->len);
-+ if (stream->bound_end >= 0)
-+ end_index = CLAMP (stream->bound_end, 0, (off_t) buf->len);
-+ if (end_index < start_index)
-+ end_index = start_index;
-+
-+ *len = end_index - start_index;
-+ retval = (char *) buf->data + start_index;
-+ }
-+
-+ return retval;
-+}
-+
-+char *g_mime_message_get_body (GMimeMessage *message, gboolean *is_html)
-+{
-+ GMimeObject *mime_part = NULL;
-+ GMimeContentType *type;
-+ GMimeMultipart *multipart;
-+ const char *content;
-+ char *body = NULL;
-+ size_t len = 0;
-+
-+ g_return_val_if_fail (GMIME_IS_MESSAGE (message), NULL);
-+ g_return_val_if_fail (is_html != NULL, NULL);
-+
-+ type = g_mime_object_get_content_type (message->mime_part);
-+ if (GMIME_IS_MULTIPART (message->mime_part)) {
-+ /* let's see if we can find a body in the multipart */
-+ multipart = GMIME_MULTIPART (message->mime_part);
-+ if (g_mime_content_type_is_type (type, "multipart", "alternative"))
-+ mime_part = handle_multipart_alternative (multipart, is_html);
-+ else
-+ mime_part = handle_multipart_mixed (multipart, is_html);
-+ } else if (g_mime_content_type_is_type (type, "text", "*")) {
-+ /* this *has* to be the message body */
-+ if (g_mime_content_type_is_type (type, "text", "html"))
-+ *is_html = TRUE;
-+ else
-+ *is_html = FALSE;
-+ mime_part = message->mime_part;
-+ }
-+
-+ if (mime_part != NULL) {
-+ content = g_mime_part_get_content (GMIME_PART (mime_part), &len);
-+ body = g_strndup (content, len);
-+ }
-+
-+ return body;
-+}
-+
-+void g_mime_message_add_recipients_from_string (GMimeMessage *message, GMimeRecipientType type, const char *string)
-+{
-+ InternetAddressList *addrlist;
-+ if ((addrlist = internet_address_list_parse_string (string))) {
-+ for (int i = 0; i < internet_address_list_length (addrlist); ++i) {
-+ InternetAddress *ia = internet_address_list_get_address (addrlist, i);
-+ if (INTERNET_ADDRESS_IS_MAILBOX(ia))
-+ g_mime_message_add_recipient (message, type, internet_address_get_name(ia), internet_address_mailbox_get_addr(INTERNET_ADDRESS_MAILBOX(ia)));
-+ }
-+ }
-+}
-diff -ru pan-0.133.orig/pan/usenet-utils/mime-utils.h pan-0.133/pan/usenet-utils/mime-utils.h
---- pan-0.133.orig/pan/usenet-utils/mime-utils.h 2007-08-01 09:59:59.000000000 -0700
-+++ pan-0.133/pan/usenet-utils/mime-utils.h 2009-09-12 13:20:11.000000000 -0700
-@@ -64,4 +64,8 @@
- };
- }
-
-+char *g_mime_message_get_body (GMimeMessage *message, gboolean *is_html);
-+void g_mime_message_add_recipients_from_string (GMimeMessage *message, GMimeRecipientType type, const char *string);
-+
-+
- #endif
-diff -ru pan-0.133.orig/pan.spec pan-0.133/pan.spec
---- pan-0.133.orig/pan.spec 2008-07-29 19:05:05.000000000 -0700
-+++ pan-0.133/pan.spec 2009-09-12 14:58:20.000000000 -0700
-@@ -15,14 +15,14 @@
-
- BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
- BuildRequires: glib2-devel >= 2.4.0
--BuildRequires: gmime-devel >= 2.1.9
-+BuildRequires: gmime-devel >= 2.3.5
- BuildRequires: gtk2-devel >= 2.4.0
- BuildRequires: pcre-devel >= 5.0
- %{!?_without_gtkspell:BuildRequires: gtkspell-devel >= 2.0.7}
-
- Requires: pcre >= 5.0
- Requires: glib2 >= 2.4.0
--Requires: gmime >= 2.1.9
-+Requires: gmime >= 2.3.5
- Requires: gtk2 >= 2.4.0
- %{!?_without_gtkspell:Requires: gtkspell >= 2.0.7}
-
diff --git a/source/xap/pidgin/pidgin.SlackBuild b/source/xap/pidgin/pidgin.SlackBuild
index d61713b60..bfefef2eb 100755
--- a/source/xap/pidgin/pidgin.SlackBuild
+++ b/source/xap/pidgin/pidgin.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2006, 2007, 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006, 2007, 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,7 +22,7 @@
PKGNAM=pidgin
-VERSION=${VERSION:-2.7.0}
+VERSION=${VERSION:-$(echo $PKGNAM-2.*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
PIDGINENC=${PIDGINENC:-3.1}
BUILD=${BUILD:-1}
diff --git a/source/xap/rdesktop/rdesktop.CVE-2011-1595.diff b/source/xap/rdesktop/rdesktop.CVE-2011-1595.diff
new file mode 100644
index 000000000..0db8c3bc2
--- /dev/null
+++ b/source/xap/rdesktop/rdesktop.CVE-2011-1595.diff
@@ -0,0 +1,22 @@
+--- ./disk.c.orig 2008-02-15 18:13:25.000000000 -0600
++++ ./disk.c 2011-04-20 20:27:55.978000772 -0500
+@@ -356,6 +356,19 @@
+ filename[strlen(filename) - 1] = 0;
+ sprintf(path, "%s%s", g_rdpdr_device[device_id].local_path, filename);
+
++ /* Protect against mailicous servers:
++ somelongpath/.. not allowed
++ somelongpath/../b not allowed
++ somelongpath/..b in principle ok, but currently not allowed
++ somelongpath/b.. ok
++ somelongpath/b..b ok
++ somelongpath/b../c ok
++ */
++ if (strstr(path, "/.."))
++ {
++ return RD_STATUS_ACCESS_DENIED;
++ }
++
+ switch (create_disposition)
+ {
+ case CREATE_ALWAYS:
diff --git a/source/xap/rdesktop/rdesktop.SlackBuild b/source/xap/rdesktop/rdesktop.SlackBuild
index cbfc14980..5e1ae2e2e 100755
--- a/source/xap/rdesktop/rdesktop.SlackBuild
+++ b/source/xap/rdesktop/rdesktop.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006, 2008, 2009, 2011 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -23,10 +23,17 @@
PKGNAM=rdesktop
VERSION=${VERSION:-1.6.0}
-ARCH=${ARCH:-x86_64}
-NUMJOBS=${NUMJOBS:-" -j7 "}
-BUILD=${BUILD:-1}
-
+BUILD=${BUILD:-2}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
@@ -39,6 +46,8 @@ elif [ "$ARCH" = "x86_64" ]; then
LIBDIRSUFFIX="64"
fi
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-${PKGNAM}
@@ -50,6 +59,8 @@ rm -rf ${PKGNAM}-${VERSION}
tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1
cd ${PKGNAM}-$VERSION || exit 1
+zcat $CWD/rdesktop.CVE-2011-1595.diff.gz | patch -p1 --verbose || exit 1
+
# Make sure ownerships and permissions are sane:
chown -R root:root .
find . \
diff --git a/source/xap/sane/sane.SlackBuild b/source/xap/sane/sane.SlackBuild
index 95daed9de..613393dc5 100755
--- a/source/xap/sane/sane.SlackBuild
+++ b/source/xap/sane/sane.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010 Patrick Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010, 2011 Patrick Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -20,10 +20,10 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=1.0.21
-BACKVER=1.0.21
+VERSION=1.0.22
+BACKVER=1.0.22
FRONTVER=1.0.14
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -80,6 +80,7 @@ CFLAGS="$SLKCFLAGS" \
--enable-locking \
--with-lockdir=/var/lock/sane \
--with-group=scanner \
+ --enable-libusb_1_0 \
--build=$ARCH-slackware-linux
make $NUMJOBS || make || exit 1
diff --git a/source/xap/seamonkey/seamonkey.SlackBuild b/source/xap/seamonkey/seamonkey.SlackBuild
index af563c092..6b4173e24 100755
--- a/source/xap/seamonkey/seamonkey.SlackBuild
+++ b/source/xap/seamonkey/seamonkey.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,8 +21,8 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
VERSION=${VERSION:-$(basename $(ls seamonkey-*.tar.* | cut -d - -f 2 | rev | cut -f 3- -d . | rev) .source)}
-BUILD=${BUILD:-1}
-NUMJOBS=${NUMJOBS:-" -j7 "}
+COMM=${COMM:-central}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -40,6 +40,8 @@ else
LIBDIRSUFFIX=""
fi
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-seamonkey
@@ -47,9 +49,9 @@ rm -rf $PKG
mkdir -p $TMP $PKG/usr
cd $TMP
-rm -rf comm-1.9.1
+rm -rf comm-$COMM
tar xvf $CWD/seamonkey-${VERSION}.source.tar.?z* || exit 1
-cd comm-1.9.1 || exit 1
+cd comm-$COMM || exit 1
# Make sure the perms/ownerships are sane:
chown -R root:root .
@@ -79,12 +81,13 @@ BUILD_OFFICIAL=1 MOZILLA_OFFICIAL=1 \
--enable-strip \
--disable-tests \
--enable-svg \
- --enable-system-cairo \
--enable-canvas \
--disable-short-wchar \
--enable-nspr-autoconf \
--enable-extensions=default,irc \
--enable-crypto \
+ --enable-shared-js \
+ --enable-libxul \
--disable-xprint \
--without-system-nspr \
--with-system-zlib \
@@ -101,18 +104,25 @@ make $NUMJOBS || exit 1
DESTDIR=$PKG make install || exit 1
# Install js/nspr/nss headers.
-for includedir in js nspr nspr/obsolete nspr/private nss plugin xpcom ; do
+for includedir in nspr nspr/obsolete nspr/private ; do
mkdir -p $PKG/usr/include/seamonkey-${VERSION}/$includedir
cp -aL mozilla/dist/include/${includedir}/*.h $PKG/usr/include/seamonkey-${VERSION}/$includedir
done
-cp -aL mozilla/dist/include/js/*.tbl mozilla/dist/include/js/*.msg $PKG/usr/include/seamonkey-${VERSION}/js
+cp -aL mozilla/dist/include/*.tbl mozilla/dist/include/*.msg $PKG/usr/include/seamonkey-${VERSION}
cp -aL mozilla/dist/include/*.h $PKG/usr/include/seamonkey-${VERSION}
cp -aL mozilla/dist/sdk/include/* $PKG/usr/include/seamonkey-${VERSION}
-( cd $PKG/usr/include/seamonkey-${VERSION}/plugin
- for file in ../j*.h ; do
- ln -sf $file .
- done
+# compat symlinks
+( cd $PKG/usr/include/seamonkey-${VERSION}
+ ln -sf . js
+ ln -sf . nss
+ ln -sf . plugin
+ ln -sf . xpcom
)
+#( cd $PKG/usr/include/seamonkey-${VERSION}/plugin
+# for file in ../j*.h ; do
+# ln -sf $file .
+# done
+#)
chown -R root:root $PKG/usr/include/seamonkey-${VERSION}
find $PKG/usr/include/seamonkey-${VERSION} -name "*.h" -type f -exec chmod 644 {} \;
# Create a more generic include files symlink:
@@ -198,9 +208,9 @@ rm -r $TMP/package-seamonkey-solibs
mkdir -p $TMP/package-seamonkey-solibs/usr/doc
cp -a $PKG/usr/doc/seamonkey-$VERSION $TMP/package-seamonkey-solibs/usr/doc
mkdir -p $TMP/package-seamonkey-solibs/usr/lib${LIBDIRSUFFIX}/seamonkey-${VERSION}
-for file in libfreebl3.chk libfreebl3.so libmozjs.so libnspr4.so libnss3.so \
- libnssckbi.so libnssutil3.so libplc4.so libplds4.so libsmime3.so \
- libsoftokn3.chk libsoftokn3.so libssl3.so ; do
+for file in libfreebl3.chk libfreebl3.so libmozjs.so libmozsqlite3.so \
+ libnspr4.so libnss* libplc4.so libplds4.so libsmime3.so libsoftokn3.chk \
+ libsoftokn3.so libssl3.so ; do
cp -a $PKG/usr/lib${LIBDIRSUFFIX}/seamonkey-${VERSION}/$file \
$TMP/package-seamonkey-solibs/usr/lib${LIBDIRSUFFIX}/seamonkey-${VERSION}
done
diff --git a/source/xap/windowmaker/windowmaker.SlackBuild b/source/xap/windowmaker/windowmaker.SlackBuild
index 15e32edfc..74462e281 100755
--- a/source/xap/windowmaker/windowmaker.SlackBuild
+++ b/source/xap/windowmaker/windowmaker.SlackBuild
@@ -22,7 +22,7 @@
VERSION=20060427cvs
-BUILD=${BUILD:-3}
+BUILD=${BUILD:-4}
NUMJOBS=${NUMJOBS:-" -j7 "}
diff --git a/source/xap/windowmaker/xinitrc.wmaker b/source/xap/windowmaker/xinitrc.wmaker
index 09ca61b4f..2c43c1eb2 100644
--- a/source/xap/windowmaker/xinitrc.wmaker
+++ b/source/xap/windowmaker/xinitrc.wmaker
@@ -35,4 +35,8 @@ if [ ! -x /usr/bin/cpp ]; then
fi
# Start the window manager:
-exec /usr/bin/wmaker $NOCPP
+if [ -z "$DESKTOP_SESSION" -a -x /usr/bin/ck-launch-session ]; then
+ exec ck-launch-session /usr/bin/wmaker $NOCPP
+else
+ exec /usr/bin/wmaker $NOCPP
+fi
diff --git a/source/xap/x11-ssh-askpass/x11-ssh-askpass.SlackBuild b/source/xap/x11-ssh-askpass/x11-ssh-askpass.SlackBuild
index 837b7f8a9..015c489f5 100755
--- a/source/xap/x11-ssh-askpass/x11-ssh-askpass.SlackBuild
+++ b/source/xap/x11-ssh-askpass/x11-ssh-askpass.SlackBuild
@@ -3,17 +3,23 @@
# Slackware build script for x11-ssh-askpass
# Written by "Vincent Batts <vbatts@batts.mine.nu>"
-# Modified by Robby Workman <rworkman@slackbuilds.org>
-
VERSION=1.2.4.1
-ARCH=${ARCH:-x86_64}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-}
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ 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-x11-ssh-askpass
-OUTPUT=${OUTPUT:-/tmp}
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
@@ -24,14 +30,17 @@ elif [ "$ARCH" = "s390" ]; then
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
fi
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf x11-ssh-askpass-$VERSION
-tar xvf $CWD/x11-ssh-askpass-$VERSION.tar.gz
-cd x11-ssh-askpass-$VERSION
+tar xvf $CWD/x11-ssh-askpass-$VERSION.tar.gz || exit 1
+cd x11-ssh-askpass-$VERSION || exit 1
chown -R root:root .
chmod -R a-s,u+rw,go+r-w .
@@ -48,20 +57,20 @@ make || exit 1
make install DESTDIR=$PKG || exit 1
make install.man DESTDIR=$PKG || exit 1
-( cd $PKG
- find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | \
- xargs strip --strip-unneeded 2> /dev/null || true
- find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | \
- xargs strip --strip-unneeded 2> /dev/null
-)
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-gzip -9 $PKG/usr/man/man1/x11-ssh-askpass.1x
+find $PKG/usr/man -type f -exec gzip -9 {} \;
+for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
mkdir -p $PKG/usr/doc/x11-ssh-askpass-$VERSION
-cp README $CWD/xprofile.sample $PKG/usr/doc/x11-ssh-askpass-$VERSION
+cp -a \
+ README TODO ChangeLog $CWD/xprofile.sample \
+ $PKG/usr/doc/x11-ssh-askpass-$VERSION
+chown -R root:root $PKG/usr/doc/x11-ssh-askpass-$VERSION
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
-/sbin/makepkg -l y -c n $OUTPUT/x11-ssh-askpass-$VERSION-$ARCH-$BUILD$TAG.txz
+/sbin/makepkg -l y -c n $TMP/x11-ssh-askpass-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/xap/xaos/slack-desc b/source/xap/xaos/slack-desc
new file mode 100644
index 000000000..a35a1fdf2
--- /dev/null
+++ b/source/xap/xaos/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------------------------------------------------------|
+xaos: xaos (an interactive fractal zoomer)
+xaos:
+xaos: XaoS is a fast portable real-time interactive fractal zoomer. It
+xaos: displays the Mandelbrot set (and other popular fractals), and allows
+xaos: the user to smoothly zoom in or out of a fractal. Other features
+xaos: include autopilot mode, palette changing, PNG saving, and fractal
+xaos: inversion.
+xaos:
+xaos: Visit XaoS online: http://xaos.sf.net
+xaos:
+xaos:
diff --git a/source/xap/xaos/xaos.6 b/source/xap/xaos/xaos.6
new file mode 100644
index 000000000..a0544a576
--- /dev/null
+++ b/source/xap/xaos/xaos.6
@@ -0,0 +1,266 @@
+.TH XaoS 6 "16 Oct 2010" "XaoS" "Demos"
+
+.SH NAME
+xaos - Fast interactive real-time fractal zoomer/morpher
+
+.SH SYNOPSIS
+xaos [\fIOPTIONS\fR]
+
+.SH DESCRIPTION
+XaoS is a fast portable real-time interactive fractal zoomer. It
+displays the Mandelbrot set (among other escape time fractals) and
+allows you to zoom smoothly into the fractal. Various coloring modes are
+provided for both the points inside and outside the selected set. In
+addition, switching between Julia and Mandelbrot fractal types and
+displaying planes is provided. The first version was a poorly written
+Mandelbrot viewer by Thomas later modified by Jan to support high
+frame-rate zooming. Other additions were later made including autopilot
+(for those of you without driver licenses), palette changing, PNG
+saving, and fractal inversion.
+
+.SH OPTIONS
+
+ -delay number
+ Delay screen updates (milliseconds)
+ -driver string
+ Select driver
+ -list List available drivers. Then exit
+ -config Print configuration. Then exit
+ -speedtest Test speed of calculation loop. Then exit
+ -threads number
+ Set number of threads (CPUs) to use
+ -pipe string
+ Accept commands from pipe (use "-" for stdin)
+ -maxframerate number
+ Maximal framerate (0 for unlimited - default)
+
+Screen size options:
+
+ Knowledge of exact screen size makes random dot stereogram look better.
+ Also is used for choosing correct view area
+
+ -screenwidth f.point
+ exact size of screen in centimeters
+ -screenheight f.point
+ exact size of screen in centimeters
+
+ Use this option in case you use some kind of virtual screen
+ or something similiar that confuses previous options
+
+ -pixelwidth f.point
+ exact size of one pixel in centimeters
+ -pixelheight f.point
+ exact size of one pixel in centimeters
+
+Animation rendering:
+
+ -render string
+ Render animation into seqence of .png files
+ -basename string
+ Name for .png files (XaoS will add 4 digit number and extension
+ -size string
+ widthxheight
+ -renderimage string
+ 256 or truecolor
+ -renderframerate f.point
+ framerate
+ -antialiasing Perform antialiasing (slow, requires quite lot of memory)
+ -alwaysrecalc Always recalculate whole image (slowes down rendering, increases quality)
+ -rendervectors Render motion vectors (should be used for MPEG encoding)
+ -iframedist number
+ Recommended distance between I frames in pat file (should be used for MPEG encoding)
+
+X11 driver options:
+
+ -display string
+ Select display
+ -size string
+ Select size of window (WIDTHxHEIGHT).
+ -sync Generate sync signals before looking for events. This
+ helps on old and buggy HP-UX X servers.
+ -shared Use shared colormap on pseudocolor display.
+ -usedefault Use default visual if autodetection causes troubles.
+ -nomitshm Disable MITSHM extension.
+ -fullscreen Enable fullscreen mode.
+ -windowid number
+ Use selected window.
+ -window-id number
+ Use selected window.
+ -root Use root window.
+
+Command line options only
+
+ -print_menus print menus specifications of all menus
+ -print_menu string
+ print menu specification
+ -xshl_print_menustring
+ print menu specification in xshl format
+ -xshl_print_menus print all menu specifications in xshl format
+ -print_dialog string
+ print dialog specification
+
+File
+
+ -loadpos input_file
+ Load
+ -savepos output_file
+ Save
+ -record output_file
+ Record
+ -play input_file
+ Replay
+ -saveimg output_file
+ Save image
+ -loadexample Load random example
+ -savecfg Save configuration
+
+Fractal
+
+ -perturbation real_number real_number
+ Perturbation
+ -initstate Reset to defaults
+ -julia on|off
+ Julia mode
+ -view real_number real_number real_number real_number
+ View
+ -angle real_number
+ Set angle
+ -plane integer
+ Set plane
+ -incoloring integer
+ Inside coloring mode
+ -outcoloring integer
+ Outside coloring mode
+ -intcoloring integer
+ Inside truecolor coloring mode
+ -outtcoloring integer
+ Outside truecolor coloring mode
+ -juliaseed real_number real_number
+ Julia seed
+
+Calculation
+
+ -periodicity Periodicity checking
+ -maxiter integer
+ Iterations
+ -bailout real_number
+ Bailout
+ -fastjulia Fast julia mode
+ -range integer
+ Solid guessing range
+
+Filters
+
+ -edge Edge detection
+ -edge2 Edge detection2
+ -threed Pseudo 3d
+ -starfield Starfield
+ -stereogram Random dot stereogram
+ -interlace Interlace filter
+ -blur Motionblur
+ -emboss Emboss
+ -palettef Palette emulator
+ -anti Antialiasing
+ -truecolor Truecolor emulator
+
+UI
+
+ -letterspersec integer
+ Letters per second
+ -autopilot Autopilot
+ -inhibittextoutput VJ mode
+ -recalculate Recalculate
+ -interrupt Interrupt
+ -speed real_number
+ Zooming speed
+ -fixedstep Fixed step
+ -nogui Disable XaoS's builtin GUI
+ -status Status
+ -ministatus Ministatus
+
+Misc
+
+ -playstr string
+ Play string
+ -text string
+ Display text
+ -color white|black|red
+ Color
+ -textposition left|center|right top|middle|bottom
+ Text position
+ -message string
+ Message
+
+Help
+
+ -help Help
+
+Formulae
+
+ -mandel Mandelbrot
+ -mandel3 Mandelbrot^3
+ -mandel4 Mandelbrot^4
+ -mandel5 Mandelbrot^5
+ -mandel6 Mandelbrot^6
+ -newton Newton
+ -newton4 Newton^4
+ -barnsley Barnsley1
+ -barnsley2 Barnsley2
+ -barnsley3 Barnsley3
+ -octal Octal
+ -phoenix Phoenix
+ -magnet Magnet
+ -magnet2 Magnet2
+
+More formulae
+
+ -trice Triceratops
+ -catseye Catseye
+ -mbar Mandelbar
+ -mlambda Lambda
+ -manowar Manowar
+ -spider Spider
+ -sier Sierpinski
+ -carpet S.Carpet
+ -koch Koch Snowflake
+ -hornflake Spidron hornflake
+
+Palette
+
+ -defpalette Default palette
+ -randompalette Random palette
+ -palette integer integer integer
+ Custom palette
+ -cycling Color cycling
+ -cyclingspeed integer
+ Color cycling speed
+ -shiftpalette integer
+ Shift palette
+
+Dynamic resolution
+
+ -fastmode zero|never|animation|new|allways
+ Dynamic resolution mode
+
+Rotation
+
+ -rotationspeed real_number
+ Rotation speed
+ -autorotate on|off
+ Automatic rotation
+ -fastrotate on|off
+ Fast rotation mode
+
+Quit
+
+ -quit Exit now
+
+.SH DETAILS
+This manual page is obsolete and no longer maintained.
+Please read the full documentation running
+XaoS. You can start it typing 'xaos'. (Press 'h' 3
+times to get into the help system.)
+.P
+In addition,
+.B xaos --help
+should give a detailed list about the command line options.
diff --git a/source/xap/xaos/xaos.SlackBuild b/source/xap/xaos/xaos.SlackBuild
new file mode 100755
index 000000000..c562b6810
--- /dev/null
+++ b/source/xap/xaos/xaos.SlackBuild
@@ -0,0 +1,152 @@
+#!/bin/sh
+
+# Copyright 2010 B. Watson (yalhcru@gmail.com)
+# Copyright 2010 Patrick J. Volkerding, Sebeka, Minnesota, 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.
+
+# Slackware build script for xaos
+
+# Written by B. Watson (yalhcru@gmail.com)
+
+# A few notes:
+#
+# Package really wants to use its own CFLAGS (even checks for them
+# in the configure script). Let it...
+#
+# SFFE is the user formula evaluator, which allows users to define their
+# own fractals. On x86 platforms, an assembly-language implementation of
+# SFFE is used. On non-x86 platforms, SFFE requires a library called GSL
+# (GNU Scientific Library, available from SBo).
+#
+# xaos is still interesting and useful without SFFE support (most users
+# probably don't know/care about the math, so they'll never use the SFFE
+# stuff anyway), so we'll just disable it on non-x86 platforms by default.
+#
+# If you really want to use it, set USE_GSL=yes in the environment before
+# running this script. There's no need to use GSL on x86 platforms, since
+# the asm code is (or should be) faster, but the option is there if you
+# want to use it anyway.
+#
+# Multilib users also have the option of building on a 32-bit Slackware system
+# (or in a chroot) and the resulting package will run just fine on 64-bit.
+#
+# If the preceding didn't make any sense, here's the bottom line:
+#
+# - Regular Slackware (x86) users can just run this script and ignore the junk
+# above.
+#
+# - Everyone else (Slamd64, Bluewhite64, Slackware64, ???) can just
+# run this script and probably never notice the missing functionality.
+#
+# - If you're not on x86, but you want the formula evaluator, install GSL
+# and then run this script with USE_GSL=yes in the environment.
+
+PKGNAM=xaos
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ # might as well use i686 since it won't listen to our CFLAGS anyway
+ i?86) ARCH=i686 ;;
+ arm*) ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+USE_GSL=${USE_GSL:-no}
+
+if [ "$USE_GSL" = "yes" ]; then
+ GSL_OPT="yes"
+ SFFE_OPT="yes"
+elif [ "$ARCH" = "i486" -o "$ARCH" = "i686" ]; then
+ GSL_OPT="no"
+ SFFE_OPT="yes"
+else
+ GSL_OPT="no"
+ SFFE_OPT="no"
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.?z* || exit 1
+cd $PKGNAM-$VERSION || exit 1
+chown -R root:root .
+chmod -R a-s,u+w,go+r-w .
+
+./configure \
+ --prefix=/usr \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
+ --infodir=/usr/info \
+ --mandir=/usr/man \
+ --with-gsl=$GSL_OPT \
+ --with-sffe=$SFFE_OPT \
+ --with-pthread=yes \
+ --build=$ARCH-slackware-linux
+
+make || exit 1
+# binary already stripped, yay!
+make install DESTDIR=$PKG || exit 1
+
+# Replace bogus manpage:
+zcat $CWD/xaos.6.gz > $PKG/usr/man/man6/xaos.6
+
+gzip -9 $PKG/usr/man/man6/xaos.6
+rm -f $PKG/usr/info/dir
+gzip -9 $PKG/usr/info/*.info*
+
+mkdir -p $PKG/usr/doc
+mv $PKG/usr/share/XaoS/doc $PKG/usr/doc/xaos-$VERSION
+( cd $PKG/usr/share/XaoS ; ln -sf ../../doc/xaos-$VERSION doc )
+
+mkdir -p $PKG/usr/share/applications
+cat $CWD/xaos.desktop > $PKG/usr/share/applications/xaos.desktop
+
+mkdir -p $PKG/usr/share/pixmaps
+cat $CWD/xaos.png > $PKG/usr/share/pixmaps/xaos.png
+
+chmod 644 $PKG/usr/doc/xaos-$VERSION/*
+rm -f $PKG/usr/doc/xaos-$VERSION/ChangeLog.old
+cp -a \
+ AUTHORS COPYING* INSTALL NEWS README* TODO \
+ $PKG/usr/doc/xaos-$VERSION
+
+# 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/${PKGNAM}-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/xap/xaos/xaos.desktop b/source/xap/xaos/xaos.desktop
new file mode 100644
index 000000000..5157bf9d4
--- /dev/null
+++ b/source/xap/xaos/xaos.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Version=1.0
+Name=XaoS
+GenericName=XaoS Fractal Explorer
+Type=Application
+Exec=xaos
+Icon=xaos
+Terminal=false
+StartupNotify=false
+Categories=Game;
diff --git a/source/xap/xaos/xaos.png b/source/xap/xaos/xaos.png
new file mode 100644
index 000000000..9aa39b813
--- /dev/null
+++ b/source/xap/xaos/xaos.png
Binary files differ
diff --git a/source/xap/xchat/patches/patches.url b/source/xap/xchat/patches/patches.url
deleted file mode 100644
index 33531f7c9..000000000
--- a/source/xap/xchat/patches/patches.url
+++ /dev/null
@@ -1 +0,0 @@
-http://xchat.org/files/source/2.8/patches/
diff --git a/source/xap/xchat/patches/xc286-smallfixes.diff b/source/xap/xchat/patches/xc286-smallfixes.diff
deleted file mode 100644
index da9001522..000000000
--- a/source/xap/xchat/patches/xc286-smallfixes.diff
+++ /dev/null
@@ -1,68 +0,0 @@
-#
-# Various small fixes from CVS that are considered safe to apply to 2.8.6.
-#
---- xchat-2.8.6/src/common/cfgfiles.c 2008-02-05 21:02:47.000000000 +1100
-+++ xchat-2.8.6p1/src/common/cfgfiles.c 2008-06-15 13:45:43.000000000 +1000
-@@ -886,7 +886,6 @@
- set_showval (session *sess, const struct prefs *var, char *tbuf)
- {
- int len, dots, j;
-- static const char *offon[] = { "OFF", "ON" };
-
- len = strlen (var->name);
- memcpy (tbuf, var->name, len);
-@@ -909,8 +908,10 @@
- *((int *) &prefs + var->offset));
- break;
- case TYPE_BOOL:
-- sprintf (tbuf + len, "\0033:\017 %s\n", offon[
-- *((int *) &prefs + var->offset)]);
-+ if (*((int *) &prefs + var->offset))
-+ sprintf (tbuf + len, "\0033:\017 %s\n", "ON");
-+ else
-+ sprintf (tbuf + len, "\0033:\017 %s\n", "OFF");
- break;
- }
- PrintText (sess, tbuf);
---- xchat-2.8.6/src/common/chanopt.c 2008-06-10 22:00:55.000000000 +1000
-+++ xchat-2.8.6p1/src/common/chanopt.c 2008-06-15 13:48:04.000000000 +1000
-@@ -32,7 +32,7 @@
-
- #define S_F(xx) STRUCT_OFFSET_STR(struct session,xx)
-
--channel_options chanopt[] =
-+static const channel_options chanopt[] =
- {
- {"alert_beep", "BEEP", S_F(alert_beep)},
- {"alert_taskbar", NULL, S_F(alert_taskbar)},
---- xchat-2.8.6/src/common/servlist.c 2008-04-01 19:22:34.000000000 +1100
-+++ xchat-2.8.6p1/src/common/servlist.c 2008-06-15 13:57:41.000000000 +1000
-@@ -509,6 +509,8 @@
- list = g_slist_nth (net->servlist, net->selected);
- if (!list)
- list = net->servlist;
-+ if (!list)
-+ return;
- ircserv = list->data;
-
- /* incase a protocol switch is added to the servlist gui */
---- xchat-2.8.6/src/common/text.c 2008-03-28 13:20:04.000000000 +1100
-+++ xchat-2.8.6p1/src/common/text.c 2008-06-15 13:59:59.000000000 +1000
-@@ -216,7 +216,7 @@
- static void
- scrollback_save (session *sess, char *text)
- {
-- char buf[1024];
-+ char buf[512 * 4];
- time_t stamp;
- int len;
-
-@@ -266,7 +266,7 @@
- scrollback_load (session *sess)
- {
- int fh;
-- char buf[1024];
-+ char buf[512 * 4];
- char *text;
- time_t stamp;
- int lines;
diff --git a/source/xap/xchat/patches/xchat.gtk_2_14.diff b/source/xap/xchat/patches/xchat.gtk_2_14.diff
deleted file mode 100644
index f0a42a1cc..000000000
--- a/source/xap/xchat/patches/xchat.gtk_2_14.diff
+++ /dev/null
@@ -1,191 +0,0 @@
-diff -ur xchat-2.8.6.orig/src/fe-gtk/about.c xchat-2.8.6/src/fe-gtk/about.c
---- xchat-2.8.6.orig/src/fe-gtk/about.c 2008-04-01 10:58:38.000000000 +0200
-+++ xchat-2.8.6/src/fe-gtk/about.c 2008-10-12 14:12:59.329706289 +0200
-@@ -16,7 +16,7 @@
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
--#define GTK_DISABLE_DEPRECATED
-+/* #define GTK_DISABLE_DEPRECATED */
-
- #include <stdio.h>
- #include <stdlib.h>
-diff -ur xchat-2.8.6.orig/src/fe-gtk/ascii.c xchat-2.8.6/src/fe-gtk/ascii.c
---- xchat-2.8.6.orig/src/fe-gtk/ascii.c 2008-02-05 11:02:50.000000000 +0100
-+++ xchat-2.8.6/src/fe-gtk/ascii.c 2008-10-12 14:12:59.329706289 +0200
-@@ -16,7 +16,7 @@
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
--#define GTK_DISABLE_DEPRECATED
-+/* #define GTK_DISABLE_DEPRECATED */
-
- #include <stdio.h>
- #include <stdlib.h>
-diff -ur xchat-2.8.6.orig/src/fe-gtk/banlist.c xchat-2.8.6/src/fe-gtk/banlist.c
---- xchat-2.8.6.orig/src/fe-gtk/banlist.c 2008-02-05 11:02:50.000000000 +0100
-+++ xchat-2.8.6/src/fe-gtk/banlist.c 2008-10-12 14:12:59.329706289 +0200
-@@ -16,7 +16,7 @@
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
--#define GTK_DISABLE_DEPRECATED
-+/* #define GTK_DISABLE_DEPRECATED */
-
- #include <stdio.h>
- #include <stdlib.h>
-diff -ur xchat-2.8.6.orig/src/fe-gtk/fe-gtk.c xchat-2.8.6/src/fe-gtk/fe-gtk.c
---- xchat-2.8.6.orig/src/fe-gtk/fe-gtk.c 2008-02-24 09:39:44.000000000 +0100
-+++ xchat-2.8.6/src/fe-gtk/fe-gtk.c 2008-10-12 14:12:59.339702951 +0200
-@@ -16,7 +16,7 @@
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
--#define GTK_DISABLE_DEPRECATED
-+/* #define GTK_DISABLE_DEPRECATED */
-
- #include <stdio.h>
- #include <string.h>
-diff -ur xchat-2.8.6.orig/src/fe-gtk/ignoregui.c xchat-2.8.6/src/fe-gtk/ignoregui.c
---- xchat-2.8.6.orig/src/fe-gtk/ignoregui.c 2008-02-05 11:02:52.000000000 +0100
-+++ xchat-2.8.6/src/fe-gtk/ignoregui.c 2008-10-12 14:12:59.343034799 +0200
-@@ -16,7 +16,7 @@
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
--#define GTK_DISABLE_DEPRECATED
-+/* #define GTK_DISABLE_DEPRECATED */
-
- #include <stdio.h>
- #include <stdlib.h>
-diff -ur xchat-2.8.6.orig/src/fe-gtk/maingui.c xchat-2.8.6/src/fe-gtk/maingui.c
---- xchat-2.8.6.orig/src/fe-gtk/maingui.c 2008-04-01 10:53:41.000000000 +0200
-+++ xchat-2.8.6/src/fe-gtk/maingui.c 2008-10-12 14:12:59.349699891 +0200
-@@ -16,7 +16,7 @@
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
--#define GTK_DISABLE_DEPRECATED
-+/* #define GTK_DISABLE_DEPRECATED */
-
- #include <stdlib.h>
- #include <string.h>
-diff -ur xchat-2.8.6.orig/src/fe-gtk/menu.c xchat-2.8.6/src/fe-gtk/menu.c
---- xchat-2.8.6.orig/src/fe-gtk/menu.c 2008-06-08 09:59:37.000000000 +0200
-+++ xchat-2.8.6/src/fe-gtk/menu.c 2008-10-12 14:12:59.349699891 +0200
-@@ -16,7 +16,7 @@
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
--#define GTK_DISABLE_DEPRECATED
-+/* #define GTK_DISABLE_DEPRECATED */
-
- #include <stdio.h>
- #include <stdlib.h>
-diff -ur xchat-2.8.6.orig/src/fe-gtk/notifygui.c xchat-2.8.6/src/fe-gtk/notifygui.c
---- xchat-2.8.6.orig/src/fe-gtk/notifygui.c 2008-02-05 11:03:34.000000000 +0100
-+++ xchat-2.8.6/src/fe-gtk/notifygui.c 2008-10-12 14:12:59.363033500 +0200
-@@ -16,7 +16,7 @@
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
--#define GTK_DISABLE_DEPRECATED
-+/* #define GTK_DISABLE_DEPRECATED */
-
- #include <stdio.h>
- #include <stdlib.h>
-diff -ur xchat-2.8.6.orig/src/fe-gtk/palette.c xchat-2.8.6/src/fe-gtk/palette.c
---- xchat-2.8.6.orig/src/fe-gtk/palette.c 2008-02-05 11:02:52.000000000 +0100
-+++ xchat-2.8.6/src/fe-gtk/palette.c 2008-10-12 14:12:59.363033500 +0200
-@@ -16,7 +16,7 @@
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
--#define GTK_DISABLE_DEPRECATED
-+/* #define GTK_DISABLE_DEPRECATED */
-
- #include <stdio.h>
- #include <stdlib.h>
-diff -ur xchat-2.8.6.orig/src/fe-gtk/pixmaps.c xchat-2.8.6/src/fe-gtk/pixmaps.c
---- xchat-2.8.6.orig/src/fe-gtk/pixmaps.c 2008-02-05 11:02:52.000000000 +0100
-+++ xchat-2.8.6/src/fe-gtk/pixmaps.c 2008-10-12 14:12:59.363033500 +0200
-@@ -16,7 +16,7 @@
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
--#define GTK_DISABLE_DEPRECATED
-+/* #define GTK_DISABLE_DEPRECATED */
-
- #include <stdio.h>
- #include <string.h>
-diff -ur xchat-2.8.6.orig/src/fe-gtk/plugingui.c xchat-2.8.6/src/fe-gtk/plugingui.c
---- xchat-2.8.6.orig/src/fe-gtk/plugingui.c 2008-02-05 11:02:52.000000000 +0100
-+++ xchat-2.8.6/src/fe-gtk/plugingui.c 2008-10-12 14:12:59.363033500 +0200
-@@ -16,7 +16,7 @@
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
--#define GTK_DISABLE_DEPRECATED
-+/* #define GTK_DISABLE_DEPRECATED */
-
- #include <string.h>
- #include <stdio.h>
-diff -ur xchat-2.8.6.orig/src/fe-gtk/rawlog.c xchat-2.8.6/src/fe-gtk/rawlog.c
---- xchat-2.8.6.orig/src/fe-gtk/rawlog.c 2008-02-24 05:49:37.000000000 +0100
-+++ xchat-2.8.6/src/fe-gtk/rawlog.c 2008-10-12 14:12:59.366369608 +0200
-@@ -16,7 +16,7 @@
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
--#define GTK_DISABLE_DEPRECATED
-+/* #define GTK_DISABLE_DEPRECATED */
-
- #include <stdio.h>
- #include <string.h>
-diff -ur xchat-2.8.6.orig/src/fe-gtk/search.c xchat-2.8.6/src/fe-gtk/search.c
---- xchat-2.8.6.orig/src/fe-gtk/search.c 2008-02-05 11:02:53.000000000 +0100
-+++ xchat-2.8.6/src/fe-gtk/search.c 2008-10-12 14:12:59.369703062 +0200
-@@ -16,7 +16,7 @@
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
--#define GTK_DISABLE_DEPRECATED
-+/* #define GTK_DISABLE_DEPRECATED */
-
- #include <stdio.h>
- #include <string.h>
-diff -ur xchat-2.8.6.orig/src/fe-gtk/urlgrab.c xchat-2.8.6/src/fe-gtk/urlgrab.c
---- xchat-2.8.6.orig/src/fe-gtk/urlgrab.c 2008-02-05 11:02:53.000000000 +0100
-+++ xchat-2.8.6/src/fe-gtk/urlgrab.c 2008-10-12 14:12:59.376368714 +0200
-@@ -16,7 +16,7 @@
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
--#define GTK_DISABLE_DEPRECATED
-+/* #define GTK_DISABLE_DEPRECATED */
-
- #include <stdio.h>
- #include <string.h>
-diff -ur xchat-2.8.6.orig/src/fe-gtk/userlistgui.c xchat-2.8.6/src/fe-gtk/userlistgui.c
---- xchat-2.8.6.orig/src/fe-gtk/userlistgui.c 2008-02-05 11:02:53.000000000 +0100
-+++ xchat-2.8.6/src/fe-gtk/userlistgui.c 2008-10-12 14:12:59.379703216 +0200
-@@ -16,7 +16,7 @@
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
--#define GTK_DISABLE_DEPRECATED
-+/* #define GTK_DISABLE_DEPRECATED */
-
- #include <stdio.h>
- #include <string.h>
-diff -ur xchat-2.8.6.orig/src/fe-gtk/xtext.h xchat-2.8.6/src/fe-gtk/xtext.h
---- xchat-2.8.6.orig/src/fe-gtk/xtext.h 2008-02-24 05:48:02.000000000 +0100
-+++ xchat-2.8.6/src/fe-gtk/xtext.h 2008-10-12 14:10:49.203049619 +0200
-@@ -1,6 +1,7 @@
- #ifndef __XTEXT_H__
- #define __XTEXT_H__
-
-+#include <gtk/gtktypeutils.h>
- #include <gtk/gtkadjustment.h>
- #ifdef USE_XFT
- #include <X11/Xft/Xft.h>
diff --git a/source/xap/xchat/xchat.SlackBuild b/source/xap/xchat/xchat.SlackBuild
index 8058f9043..cc7b5e1a8 100755
--- a/source/xap/xchat/xchat.SlackBuild
+++ b/source/xap/xchat/xchat.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,8 +21,8 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=2.8.6
-BUILD=${BUILD:-5}
+VERSION=2.8.8
+BUILD=${BUILD:-3}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/xap/xfce/patches/Thunar.thunar-vfs-io-local.diff b/source/xap/xfce/patches/Thunar.thunar-vfs-io-local.diff
new file mode 100644
index 000000000..7d92c3e4d
--- /dev/null
+++ b/source/xap/xfce/patches/Thunar.thunar-vfs-io-local.diff
@@ -0,0 +1,20 @@
+--- thunar-vfs/thunar-vfs-io-local.c.old 2008-06-13 12:43:52.000000000 +0200
++++ thunar-vfs/thunar-vfs-io-local.c 2008-06-13 14:41:46.000000000 +0200
+@@ -301,7 +301,7 @@
+ }
+
+ /* check whether we have a hidden file here */
+- if ((s - (const guchar *) name) > 1 && (*name == '.' || *(s - 1) == '~'))
++ if ((s - (const guchar *) name) > 1 && (*name == '.' ))
+ info->flags = THUNAR_VFS_FILE_FLAGS_HIDDEN;
+ else
+ info->flags = THUNAR_VFS_FILE_FLAGS_NONE;
+@@ -1029,7 +1029,7 @@
+ info->display_name = g_strdup (name);
+
+ /* check if this is a hidden file now */
+- if (strlen (name) > 1 && (name[0] == '.' || name[strlen (name) - 1] == '~'))
++ if (strlen (name) > 1 && (name[0] == '.'))
+ info->flags |= THUNAR_VFS_FILE_FLAGS_HIDDEN;
+ else
+ info->flags &= ~THUNAR_VFS_FILE_FLAGS_HIDDEN;
diff --git a/source/xap/xfce/patches/fixup_comments_in_xfce-utils-Xft.xrdb.diff b/source/xap/xfce/patches/fixup_comments_in_xfce-utils-Xft.xrdb.diff
new file mode 100644
index 000000000..be64a2da6
--- /dev/null
+++ b/source/xap/xfce/patches/fixup_comments_in_xfce-utils-Xft.xrdb.diff
@@ -0,0 +1,24 @@
+From b55be8ded0c7e1119eb062a5831b246b618c89e8 Mon Sep 17 00:00:00 2001
+From: Mike Massonnet <mmassonnet@gmail.com>
+Date: Thu, 8 Apr 2010 22:38:50 +0200
+Subject: [PATCH] use right comment character (! and not #) in Xft.xrdb file (bug 6314)
+
+ scripts/Xft.xrdb | 8 ++++----
+ 1 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/scripts/Xft.xrdb b/scripts/Xft.xrdb
+index af45361..cd26513 100644
+--- a/scripts/Xft.xrdb
++++ b/scripts/Xft.xrdb
+@@ -1,7 +1,7 @@
+-# Those are fallback settings, use the ui plugin to change it
+-# or add your overrides to ~/.Xresources
+-# Xft.hintstyle: hintnone/hintslight/hintmedium/hintfull
+-# Xft hinting: 1/0
++! Those are fallback settings, use the ui plugin to change it
++! or add your overrides to ~/.Xresources
++! Xft.hintstyle: hintnone/hintslight/hintmedium/hintfull
++! Xft hinting: 1/0
+
+ Xft.hinting: 1
+ Xft.hintstyle: hintmedium
diff --git a/source/xap/xfce/patches/mousepad-fix_find.diff b/source/xap/xfce/patches/mousepad-fix_find.diff
new file mode 100644
index 000000000..6477cd78b
--- /dev/null
+++ b/source/xap/xfce/patches/mousepad-fix_find.diff
@@ -0,0 +1,43 @@
+commit a6383ccf4e3ba425ffb6489a795785e6a626c048
+Author: Nick Schermer <nick@xfce.org>
+Date: Tue Jul 6 17:53:54 2010 +0200
+
+ Also fix find (bug #6544).
+
+diff --git a/src/search.c b/src/search.c
+index 4fb1c5b..91f69cf 100644
+--- a/src/search.c
++++ b/src/search.c
+@@ -78,7 +78,7 @@ gboolean document_search_real(StructData *sd, gint direction)
+ static gint document_replace_real(StructData *sd)
+ {
+ GtkTextIter iter, match_start, match_end;
+- GtkTextMark *mark_init = NULL;
++ GtkTextMark *mark_init = NULL, *mark_start, *mark_end;
+ gboolean res;
+ gint num = 0;
+ GtkWidget *q_dialog = NULL;
+@@ -113,6 +113,11 @@ static gint document_replace_real(StructData *sd)
+ if (num == 0 && q_dialog == NULL)
+ q_dialog = create_dialog_message_question(
+ gtk_widget_get_toplevel(sd->mainwin->textview), _("Replace?"));
++
++ gtk_text_buffer_get_selection_bounds(textbuffer, &match_start, &match_end);
++ mark_start = gtk_text_buffer_create_mark(textbuffer, NULL, &match_start, FALSE);
++ mark_end = gtk_text_buffer_create_mark(textbuffer, NULL, &match_end, FALSE);
++
+ switch (gtk_dialog_run(GTK_DIALOG(q_dialog))) {
+ case GTK_RESPONSE_CANCEL:
+ res = 0;
+@@ -122,6 +127,11 @@ static gint document_replace_real(StructData *sd)
+ case GTK_RESPONSE_NO:
+ continue;
+ }
++
++ gtk_text_buffer_get_iter_at_mark(textbuffer, &match_start, mark_start);
++ gtk_text_buffer_get_iter_at_mark(textbuffer, &match_end, mark_end);
++ gtk_text_buffer_move_mark_by_name(textbuffer, "selection_bound", &match_start);
++ gtk_text_buffer_move_mark_by_name(textbuffer, "insert", &match_end);
+ }
+ gtk_text_buffer_delete_selection(textbuffer, TRUE, TRUE);
+ undo_set_sequency(TRUE);
diff --git a/source/xap/xfce/patches/mousepad-fix_find_and_replace.diff b/source/xap/xfce/patches/mousepad-fix_find_and_replace.diff
new file mode 100644
index 000000000..5db73b1e2
--- /dev/null
+++ b/source/xap/xfce/patches/mousepad-fix_find_and_replace.diff
@@ -0,0 +1,36 @@
+commit 80819d447df5661ee6c9e9cd22f501cee612da8b
+Author: Lionel Le Folgoc <mrpouit@gmail.com>
+Date: Mon Jul 5 19:57:53 2010 +0200
+
+ Fix find and replace (bug #5831).
+
+diff --git a/src/search.c b/src/search.c
+index 07e29c7..4fb1c5b 100644
+--- a/src/search.c
++++ b/src/search.c
+@@ -210,8 +210,11 @@ gint run_dialog_find(StructData *sd)
+ G_CALLBACK(toggle_sensitivity), NULL);
+ g_signal_connect(G_OBJECT(entry_find), "delete-text",
+ G_CALLBACK(toggle_sensitivity), NULL);
+- if (sd->search.string_find)
++ if (sd->search.string_find) {
+ gtk_entry_set_text(GTK_ENTRY(entry_find), sd->search.string_find);
++ gtk_dialog_set_response_sensitive(GTK_DIALOG(dialog),
++ GTK_RESPONSE_OK, TRUE);
++ }
+
+ gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK);
+ gtk_entry_set_activates_default(GTK_ENTRY(entry_find), TRUE);
+@@ -275,8 +278,11 @@ gint run_dialog_replace(StructData *sd)
+ G_CALLBACK(toggle_sensitivity), NULL);
+ g_signal_connect(G_OBJECT(entry_find), "delete-text",
+ G_CALLBACK(toggle_sensitivity), NULL);
+- if (sd->search.string_find)
++ if (sd->search.string_find) {
+ gtk_entry_set_text(GTK_ENTRY(entry_find), sd->search.string_find);
++ gtk_dialog_set_response_sensitive(GTK_DIALOG(dialog),
++ GTK_RESPONSE_OK, TRUE);
++ }
+ label_replace = gtk_label_new_with_mnemonic(_("Re_place with: "));
+ gtk_misc_set_alignment(GTK_MISC(label_replace), 0, 0.5);
+ gtk_table_attach_defaults(GTK_TABLE(table), label_replace, 0, 1, 1, 2);
diff --git a/source/xap/xfce/patches/no_sensitive_panel_during_plugin_moves.patch b/source/xap/xfce/patches/no_sensitive_panel_during_plugin_moves.patch
new file mode 100644
index 000000000..6e5b4a9a6
--- /dev/null
+++ b/source/xap/xfce/patches/no_sensitive_panel_during_plugin_moves.patch
@@ -0,0 +1,26 @@
+From 8ae5177d843802b49e90ecf801d8a4fac00b866a Mon Sep 17 00:00:00 2001
+From: Robby Workman <rworkman@slackware.com>
+Date: Tue, 22 Feb 2011 21:48:56 -0600
+Subject: [PATCH] panel/panel.c: Don't make panel insensitive during plugin moves
+
+This fixes http://bugzilla.xfce.org/show_bug.cgi?id=6818 while
+working around https://bugzilla.gnome.org/show_bug.cgi?id=634765
+---
+ panel/panel.c | 1 -
+ 1 files changed, 0 insertions(+), 1 deletions(-)
+
+diff --git a/panel/panel.c b/panel/panel.c
+index fa0709b..e7a9eac 100644
+--- a/panel/panel.c
++++ b/panel/panel.c
+@@ -811,7 +811,6 @@ _item_start_move (GtkWidget *item,
+
+ if (!priv->edit_mode)
+ {
+- panel_set_items_sensitive (p, FALSE);
+ xfce_itembar_raise_event_window (XFCE_ITEMBAR (priv->itembar));
+ panel_block_autohide (p);
+ }
+--
+1.7.4.1
+
diff --git a/source/xap/xfce/patches/terminal.gtk.2.18.fix.diff b/source/xap/xfce/patches/terminal.gtk.2.18.fix.diff
deleted file mode 100644
index 69a9e70e8..000000000
--- a/source/xap/xfce/patches/terminal.gtk.2.18.fix.diff
+++ /dev/null
@@ -1,101 +0,0 @@
-From 028dc2efd846defe796c7fa097ed84818bb43431 Mon Sep 17 00:00:00 2001
-From: Nick Schermer <nick@xfce.org>
-Date: Sun, 21 Mar 2010 22:05:31 +0000
-Subject: Disconnect bindings before closing the dialog.
-
-This avoids possible problems when Gtk+ emits property
-changes before the widgets are destroyed. This is currently
-the case for text entries in some Gtk 2.18 releases.
----
-diff --git a/terminal/terminal-preferences-dialog.c b/terminal/terminal-preferences-dialog.c
-index 587bd92..8f33628 100644
---- a/terminal/terminal-preferences-dialog.c
-+++ b/terminal/terminal-preferences-dialog.c
-@@ -64,24 +64,28 @@ terminal_preferences_dialog_class_init (TerminalPreferencesDialogClass *klass)
-
-
- #define BIND_PROPERTIES(name, property) \
-- { object = gtk_builder_get_object (GTK_BUILDER (dialog), name); \
-+ G_STMT_START { \
-+ object = gtk_builder_get_object (GTK_BUILDER (dialog), name); \
- terminal_return_if_fail (G_IS_OBJECT (object)); \
-- exo_mutual_binding_new (G_OBJECT (dialog->preferences), name, \
-- G_OBJECT (object), property); }
-+ binding = exo_mutual_binding_new (G_OBJECT (dialog->preferences), name, \
-+ G_OBJECT (object), property); \
-+ dialog->bindings = g_slist_prepend (dialog->bindings, binding); \
-+ } G_STMT_END
-
-
-
- static void
- terminal_preferences_dialog_init (TerminalPreferencesDialog *dialog)
- {
-- GError *error = NULL;
-- guint i;
-- GObject *object, *object2;
-- GtkWidget *editor;
-- gchar palette_name[16];
-- GtkFileFilter *filter;
-- gchar *file;
-- const gchar *props_active[] = { "title-mode", "command-login-shell",
-+ GError *error = NULL;
-+ guint i;
-+ GObject *object, *object2;
-+ GtkWidget *editor;
-+ gchar palette_name[16];
-+ GtkFileFilter *filter;
-+ gchar *file;
-+ ExoMutualBinding *binding;
-+ const gchar *props_active[] = { "title-mode", "command-login-shell",
- "command-update-records", "scrolling-single-line",
- "scrolling-on-output", "scrolling-on-keystroke",
- "scrolling-bar", "font-allow-bold",
-@@ -94,9 +98,9 @@ terminal_preferences_dialog_init (TerminalPreferencesDialog *dialog)
- , "font-anti-alias"
- #endif
- };
-- const gchar *props_color[] = { "color-foreground", "color-cursor",
-- "color-background", "tab-activity-color",
-- "color-selection" };
-+ const gchar *props_color[] = { "color-foreground", "color-cursor",
-+ "color-background", "tab-activity-color",
-+ "color-selection" };
-
- dialog->preferences = terminal_preferences_get ();
-
-@@ -248,6 +252,8 @@ terminal_preferences_dialog_response (GtkWidget *widget,
- gint response,
- TerminalPreferencesDialog *dialog)
- {
-+ GSList *li;
-+
- /* check if we should open the user manual */
- if (G_UNLIKELY (response == 1))
- {
-@@ -256,6 +262,11 @@ terminal_preferences_dialog_response (GtkWidget *widget,
- }
- else
- {
-+ /* disconnect all the bindings */
-+ for (li = dialog->bindings; li != NULL; li = li->next)
-+ exo_mutual_binding_unbind (li->data);
-+ g_slist_free (dialog->bindings);
-+
- /* close the preferences dialog */
- gtk_widget_destroy (widget);
- }
-diff --git a/terminal/terminal-preferences-dialog.h b/terminal/terminal-preferences-dialog.h
-index b2db4f5..268d70a 100644
---- a/terminal/terminal-preferences-dialog.h
-+++ b/terminal/terminal-preferences-dialog.h
-@@ -48,6 +48,7 @@ struct _TerminalPreferencesDialog
-
- TerminalPreferences *preferences;
- guint signal_id;
-+ GSList *bindings;
- };
-
- GType terminal_preferences_dialog_get_type (void) G_GNUC_CONST;
---
-cgit v0.8.2.1
diff --git a/source/xap/xfce/patches/thunar-1.0.1-fixup_docdir.diff b/source/xap/xfce/patches/thunar-1.0.1-fixup_docdir.diff
deleted file mode 100644
index 52d076d93..000000000
--- a/source/xap/xfce/patches/thunar-1.0.1-fixup_docdir.diff
+++ /dev/null
@@ -1,360 +0,0 @@
-diff -Nur Thunar-1.0.1.orig/Makefile.in Thunar-1.0.1/Makefile.in
---- Thunar-1.0.1.orig/Makefile.in 2009-04-18 09:41:09.000000000 -0500
-+++ Thunar-1.0.1/Makefile.in 2009-07-20 19:36:55.895440657 -0500
-@@ -932,7 +932,7 @@
-
- ThunarHelp: ThunarHelp.in Makefile
- rm -f ThunarHelp.gen ThunarHelp
-- sed -e "s,\@datadir\@,$(datadir),g" \
-+ sed -e "s,\@htmldir\@,$(htmldir),g" \
- < $(srcdir)/ThunarHelp.in \
- > ThunarHelp.gen
- mv ThunarHelp.gen ThunarHelp
-diff -Nur Thunar-1.0.1.orig/ThunarHelp.in Thunar-1.0.1/ThunarHelp.in
---- Thunar-1.0.1.orig/ThunarHelp.in 2008-10-22 01:43:23.000000000 -0500
-+++ Thunar-1.0.1/ThunarHelp.in 2009-07-20 19:36:38.235721255 -0500
-@@ -19,7 +19,7 @@
- # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- #
-
--HELPDIR="@datadir@/doc/Thunar/html/"
-+HELPDIR="@htmldir@/"
-
- if test -n "$LC_ALL"; then
- LC=$LC_ALL
-diff -Nur Thunar-1.0.1.orig/docs/Makefile.in Thunar-1.0.1/docs/Makefile.in
---- Thunar-1.0.1.orig/docs/Makefile.in 2009-04-18 09:40:14.000000000 -0500
-+++ Thunar-1.0.1/docs/Makefile.in 2009-07-20 19:36:38.235721255 -0500
-@@ -292,7 +292,7 @@
- builddir = @builddir@
- datadir = @datadir@
- datarootdir = @datarootdir@
--docdir = $(datadir)/doc/Thunar
-+docdir = @docdir@
- dvidir = @dvidir@
- exec_prefix = @exec_prefix@
- host = @host@
-diff -Nur Thunar-1.0.1.orig/docs/manual/C/Makefile.in Thunar-1.0.1/docs/manual/C/Makefile.in
---- Thunar-1.0.1.orig/docs/manual/C/Makefile.in 2009-04-18 09:40:19.000000000 -0500
-+++ Thunar-1.0.1/docs/manual/C/Makefile.in 2009-07-20 19:36:38.235721255 -0500
-@@ -319,7 +319,7 @@
- SUBDIRS = \
- images
-
--TARGET_DIR = $(datadir)/doc/Thunar/html/C
-+TARGET_DIR = $(htmldir)/C
- STYLESHEET = ../thunar.xsl
- DOCUMENT = Thunar.xml
-
-diff -Nur Thunar-1.0.1.orig/docs/manual/C/images/Makefile.in Thunar-1.0.1/docs/manual/C/images/Makefile.in
---- Thunar-1.0.1.orig/docs/manual/C/images/Makefile.in 2009-04-18 09:40:21.000000000 -0500
-+++ Thunar-1.0.1/docs/manual/C/images/Makefile.in 2009-07-20 19:36:38.235721255 -0500
-@@ -313,7 +313,7 @@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
- xfconf_query_found = @xfconf_query_found@
--imagesdir = $(datadir)/doc/Thunar/html/C/images
-+imagesdir = $(htmldir)/C/images
- images_DATA = \
- bulk-rename.png \
- file-manager-window.png \
-diff -Nur Thunar-1.0.1.orig/docs/manual/Makefile.in Thunar-1.0.1/docs/manual/Makefile.in
---- Thunar-1.0.1.orig/docs/manual/Makefile.in 2009-04-18 09:40:22.000000000 -0500
-+++ Thunar-1.0.1/docs/manual/Makefile.in 2009-07-20 19:36:38.235721255 -0500
-@@ -338,7 +338,7 @@
- tr \
- zh_TW
-
--cssdir = $(datadir)/doc/Thunar/html
-+cssdir = $(htmldir)
- css_DATA = \
- thunar.css
-
-diff -Nur Thunar-1.0.1.orig/docs/manual/da/Makefile.in Thunar-1.0.1/docs/manual/da/Makefile.in
---- Thunar-1.0.1.orig/docs/manual/da/Makefile.in 2009-04-18 09:40:22.000000000 -0500
-+++ Thunar-1.0.1/docs/manual/da/Makefile.in 2009-07-20 19:36:38.239694094 -0500
-@@ -317,7 +317,7 @@
- SUBDIRS = \
- images
-
--TARGET_DIR = $(datadir)/doc/Thunar/html/da
-+TARGET_DIR = $(htmldir)/da
- STYLESHEET = ../thunar.xsl
- DOCUMENT = Thunar.xml
-
-diff -Nur Thunar-1.0.1.orig/docs/manual/da/images/Makefile.in Thunar-1.0.1/docs/manual/da/images/Makefile.in
---- Thunar-1.0.1.orig/docs/manual/da/images/Makefile.in 2009-04-18 09:40:24.000000000 -0500
-+++ Thunar-1.0.1/docs/manual/da/images/Makefile.in 2009-07-20 19:36:38.239694094 -0500
-@@ -311,7 +311,7 @@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
- xfconf_query_found = @xfconf_query_found@
--imagesdir = $(datadir)/doc/Thunar/html/da/images
-+imagesdir = $(htmldir)/da/images
- images_DATA = \
- bulk-rename.png \
- file-manager-window.png \
-diff -Nur Thunar-1.0.1.orig/docs/manual/es/Makefile.in Thunar-1.0.1/docs/manual/es/Makefile.in
---- Thunar-1.0.1.orig/docs/manual/es/Makefile.in 2009-04-18 09:40:24.000000000 -0500
-+++ Thunar-1.0.1/docs/manual/es/Makefile.in 2009-07-20 19:36:38.239694094 -0500
-@@ -319,7 +319,7 @@
- SUBDIRS = \
- images
-
--TARGET_DIR = $(datadir)/doc/Thunar/html/es
-+TARGET_DIR = $(htmldir)/es
- STYLESHEET = ../thunar.xsl
- DOCUMENT = Thunar.xml
-
-diff -Nur Thunar-1.0.1.orig/docs/manual/es/images/Makefile.in Thunar-1.0.1/docs/manual/es/images/Makefile.in
---- Thunar-1.0.1.orig/docs/manual/es/images/Makefile.in 2009-04-18 09:40:25.000000000 -0500
-+++ Thunar-1.0.1/docs/manual/es/images/Makefile.in 2009-07-20 19:36:38.239694094 -0500
-@@ -313,7 +313,7 @@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
- xfconf_query_found = @xfconf_query_found@
--imagesdir = $(datadir)/doc/Thunar/html/es/images
-+imagesdir = $(htmldir)/es/images
- images_DATA = \
- bulk-rename.png \
- file-manager-window.png \
-diff -Nur Thunar-1.0.1.orig/docs/manual/eu/Makefile.in Thunar-1.0.1/docs/manual/eu/Makefile.in
---- Thunar-1.0.1.orig/docs/manual/eu/Makefile.in 2009-04-18 09:40:25.000000000 -0500
-+++ Thunar-1.0.1/docs/manual/eu/Makefile.in 2009-07-20 19:36:38.239694094 -0500
-@@ -319,7 +319,7 @@
- SUBDIRS = \
- images
-
--TARGET_DIR = $(datadir)/doc/Thunar/html/eu
-+TARGET_DIR = $(htmldir)/eu
- STYLESHEET = ../thunar.xsl
- DOCUMENT = Thunar.xml
-
-diff -Nur Thunar-1.0.1.orig/docs/manual/eu/images/Makefile.in Thunar-1.0.1/docs/manual/eu/images/Makefile.in
---- Thunar-1.0.1.orig/docs/manual/eu/images/Makefile.in 2009-04-18 09:40:26.000000000 -0500
-+++ Thunar-1.0.1/docs/manual/eu/images/Makefile.in 2009-07-20 19:36:38.239694094 -0500
-@@ -313,7 +313,7 @@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
- xfconf_query_found = @xfconf_query_found@
--imagesdir = $(datadir)/doc/Thunar/html/eu/images
-+imagesdir = $(htmldir)/eu/images
- images_DATA = \
- bulk-rename.png \
- file-manager-window.png \
-diff -Nur Thunar-1.0.1.orig/docs/manual/fr/Makefile.in Thunar-1.0.1/docs/manual/fr/Makefile.in
---- Thunar-1.0.1.orig/docs/manual/fr/Makefile.in 2009-04-18 09:40:26.000000000 -0500
-+++ Thunar-1.0.1/docs/manual/fr/Makefile.in 2009-07-20 19:36:38.243692845 -0500
-@@ -319,7 +319,7 @@
- SUBDIRS = \
- images
-
--TARGET_DIR = $(datadir)/doc/Thunar/html/fr
-+TARGET_DIR = $(htmldir)/fr
- STYLESHEET = ../thunar.xsl
- DOCUMENT = Thunar.xml
-
-diff -Nur Thunar-1.0.1.orig/docs/manual/fr/images/Makefile.in Thunar-1.0.1/docs/manual/fr/images/Makefile.in
---- Thunar-1.0.1.orig/docs/manual/fr/images/Makefile.in 2009-04-18 09:40:27.000000000 -0500
-+++ Thunar-1.0.1/docs/manual/fr/images/Makefile.in 2009-07-20 19:36:38.243692845 -0500
-@@ -313,7 +313,7 @@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
- xfconf_query_found = @xfconf_query_found@
--imagesdir = $(datadir)/doc/Thunar/html/fr/images
-+imagesdir = $(htmldir)/fr/images
- images_DATA = \
- bulk-rename.png \
- file-manager-window.png \
-diff -Nur Thunar-1.0.1.orig/docs/manual/gl/Makefile.in Thunar-1.0.1/docs/manual/gl/Makefile.in
---- Thunar-1.0.1.orig/docs/manual/gl/Makefile.in 2009-04-18 09:40:27.000000000 -0500
-+++ Thunar-1.0.1/docs/manual/gl/Makefile.in 2009-07-20 19:36:38.243692845 -0500
-@@ -319,7 +319,7 @@
- SUBDIRS = \
- images
-
--TARGET_DIR = $(datadir)/doc/Thunar/html/gl
-+TARGET_DIR = $(htmldir)/gl
- STYLESHEET = ../thunar.xsl
- DOCUMENT = Thunar.xml
-
-diff -Nur Thunar-1.0.1.orig/docs/manual/gl/images/Makefile.in Thunar-1.0.1/docs/manual/gl/images/Makefile.in
---- Thunar-1.0.1.orig/docs/manual/gl/images/Makefile.in 2009-04-18 09:40:29.000000000 -0500
-+++ Thunar-1.0.1/docs/manual/gl/images/Makefile.in 2009-07-20 19:36:38.243692845 -0500
-@@ -313,7 +313,7 @@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
- xfconf_query_found = @xfconf_query_found@
--imagesdir = $(datadir)/doc/Thunar/html/C/images
-+imagesdir = $(htmldir)/C/images
- images_DATA = \
- bulk-rename.png \
- file-manager-window.png \
-diff -Nur Thunar-1.0.1.orig/docs/manual/it/Makefile.in Thunar-1.0.1/docs/manual/it/Makefile.in
---- Thunar-1.0.1.orig/docs/manual/it/Makefile.in 2009-04-18 09:40:30.000000000 -0500
-+++ Thunar-1.0.1/docs/manual/it/Makefile.in 2009-07-20 19:36:38.243692845 -0500
-@@ -317,7 +317,7 @@
- SUBDIRS = \
- images
-
--TARGET_DIR = $(datadir)/doc/Thunar/html/it
-+TARGET_DIR = $(htmldir)/it
- STYLESHEET = ../thunar.xsl
- DOCUMENT = Thunar.xml
-
-diff -Nur Thunar-1.0.1.orig/docs/manual/it/images/Makefile.in Thunar-1.0.1/docs/manual/it/images/Makefile.in
---- Thunar-1.0.1.orig/docs/manual/it/images/Makefile.in 2009-04-18 09:40:31.000000000 -0500
-+++ Thunar-1.0.1/docs/manual/it/images/Makefile.in 2009-07-20 19:36:38.243692845 -0500
-@@ -311,7 +311,7 @@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
- xfconf_query_found = @xfconf_query_found@
--imagesdir = $(datadir)/doc/Thunar/html/it/images
-+imagesdir = $(htmldir)/it/images
- images_DATA = \
- bulk-rename.png \
- file-manager-window.png \
-diff -Nur Thunar-1.0.1.orig/docs/manual/ja/Makefile.in Thunar-1.0.1/docs/manual/ja/Makefile.in
---- Thunar-1.0.1.orig/docs/manual/ja/Makefile.in 2009-04-18 09:40:32.000000000 -0500
-+++ Thunar-1.0.1/docs/manual/ja/Makefile.in 2009-07-20 19:36:38.247717296 -0500
-@@ -319,7 +319,7 @@
- SUBDIRS = \
- images
-
--TARGET_DIR = $(datadir)/doc/Thunar/html/ja
-+TARGET_DIR = $(htmldir)/ja
- STYLESHEET = ../thunar.xsl
- DOCUMENT = Thunar.xml
-
-diff -Nur Thunar-1.0.1.orig/docs/manual/ja/images/Makefile.in Thunar-1.0.1/docs/manual/ja/images/Makefile.in
---- Thunar-1.0.1.orig/docs/manual/ja/images/Makefile.in 2009-04-18 09:40:33.000000000 -0500
-+++ Thunar-1.0.1/docs/manual/ja/images/Makefile.in 2009-07-20 19:36:38.247717296 -0500
-@@ -313,7 +313,7 @@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
- xfconf_query_found = @xfconf_query_found@
--imagesdir = $(datadir)/doc/Thunar/html/ja/images
-+imagesdir = $(htmldir)/ja/images
- images_DATA = \
- bulk-rename.png \
- file-manager-window.png \
-diff -Nur Thunar-1.0.1.orig/docs/manual/nl/Makefile.in Thunar-1.0.1/docs/manual/nl/Makefile.in
---- Thunar-1.0.1.orig/docs/manual/nl/Makefile.in 2009-04-18 09:40:34.000000000 -0500
-+++ Thunar-1.0.1/docs/manual/nl/Makefile.in 2009-07-20 19:36:38.247717296 -0500
-@@ -319,7 +319,7 @@
- SUBDIRS = \
- images
-
--TARGET_DIR = $(datadir)/doc/Thunar/html/nl
-+TARGET_DIR = $(htmldir)/nl
- STYLESHEET = ../thunar.xsl
- DOCUMENT = Thunar.xml
-
-diff -Nur Thunar-1.0.1.orig/docs/manual/nl/images/Makefile.in Thunar-1.0.1/docs/manual/nl/images/Makefile.in
---- Thunar-1.0.1.orig/docs/manual/nl/images/Makefile.in 2009-04-18 09:40:34.000000000 -0500
-+++ Thunar-1.0.1/docs/manual/nl/images/Makefile.in 2009-07-20 19:36:38.247717296 -0500
-@@ -313,7 +313,7 @@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
- xfconf_query_found = @xfconf_query_found@
--imagesdir = $(datadir)/doc/Thunar/html/nl/images
-+imagesdir = $(htmldir)/nl/images
- images_DATA = \
- bulk-rename.png \
- file-manager-window.png \
-diff -Nur Thunar-1.0.1.orig/docs/manual/pl/Makefile.in Thunar-1.0.1/docs/manual/pl/Makefile.in
---- Thunar-1.0.1.orig/docs/manual/pl/Makefile.in 2009-04-18 09:40:34.000000000 -0500
-+++ Thunar-1.0.1/docs/manual/pl/Makefile.in 2009-07-20 19:36:38.247717296 -0500
-@@ -319,7 +319,7 @@
- SUBDIRS = \
- images
-
--TARGET_DIR = $(datadir)/doc/Thunar/html/pl
-+TARGET_DIR = $(htmldir)/pl
- STYLESHEET = ../thunar.xsl
- DOCUMENT = Thunar.xml
-
-diff -Nur Thunar-1.0.1.orig/docs/manual/pl/images/Makefile.in Thunar-1.0.1/docs/manual/pl/images/Makefile.in
---- Thunar-1.0.1.orig/docs/manual/pl/images/Makefile.in 2009-04-18 09:40:34.000000000 -0500
-+++ Thunar-1.0.1/docs/manual/pl/images/Makefile.in 2009-07-20 19:36:38.247717296 -0500
-@@ -313,7 +313,7 @@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
- xfconf_query_found = @xfconf_query_found@
--imagesdir = $(datadir)/doc/Thunar/html/pl/images
-+imagesdir = $(htmldir)/pl/images
- images_DATA = \
- bulk-rename.png \
- file-manager-window.png \
-diff -Nur Thunar-1.0.1.orig/docs/manual/ru/Makefile.in Thunar-1.0.1/docs/manual/ru/Makefile.in
---- Thunar-1.0.1.orig/docs/manual/ru/Makefile.in 2009-04-18 09:40:35.000000000 -0500
-+++ Thunar-1.0.1/docs/manual/ru/Makefile.in 2009-07-20 19:36:38.251717303 -0500
-@@ -319,7 +319,7 @@
- SUBDIRS = \
- images
-
--TARGET_DIR = $(datadir)/doc/Thunar/html/ru
-+TARGET_DIR = $(htmldir)/ru
- STYLESHEET = ../thunar.xsl
- DOCUMENT = Thunar.xml
-
-diff -Nur Thunar-1.0.1.orig/docs/manual/ru/images/Makefile.in Thunar-1.0.1/docs/manual/ru/images/Makefile.in
---- Thunar-1.0.1.orig/docs/manual/ru/images/Makefile.in 2009-04-18 09:40:35.000000000 -0500
-+++ Thunar-1.0.1/docs/manual/ru/images/Makefile.in 2009-07-20 19:36:38.251717303 -0500
-@@ -313,7 +313,7 @@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
- xfconf_query_found = @xfconf_query_found@
--imagesdir = $(datadir)/doc/Thunar/html/ru/images
-+imagesdir = $(htmldir)/ru/images
- images_DATA = \
- bulk-rename.png \
- file-manager-window.png \
-diff -Nur Thunar-1.0.1.orig/docs/manual/tr/Makefile.in Thunar-1.0.1/docs/manual/tr/Makefile.in
---- Thunar-1.0.1.orig/docs/manual/tr/Makefile.in 2009-04-18 09:40:35.000000000 -0500
-+++ Thunar-1.0.1/docs/manual/tr/Makefile.in 2009-07-20 19:36:38.251717303 -0500
-@@ -317,7 +317,7 @@
- SUBDIRS = \
- images
-
--TARGET_DIR = $(datadir)/doc/Thunar/html/tr
-+TARGET_DIR = $(htmldir)/tr
- STYLESHEET = ../thunar.xsl
- DOCUMENT = Thunar.xml
-
-diff -Nur Thunar-1.0.1.orig/docs/manual/tr/images/Makefile.in Thunar-1.0.1/docs/manual/tr/images/Makefile.in
---- Thunar-1.0.1.orig/docs/manual/tr/images/Makefile.in 2009-04-18 09:40:36.000000000 -0500
-+++ Thunar-1.0.1/docs/manual/tr/images/Makefile.in 2009-07-20 19:36:38.251717303 -0500
-@@ -311,7 +311,7 @@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
- xfconf_query_found = @xfconf_query_found@
--imagesdir = $(datadir)/doc/Thunar/html/tr/images
-+imagesdir = $(htmldir)/tr/images
- images_DATA = \
- bulk-rename.png \
- file-manager-window.png \
-diff -Nur Thunar-1.0.1.orig/docs/manual/zh_TW/Makefile.in Thunar-1.0.1/docs/manual/zh_TW/Makefile.in
---- Thunar-1.0.1.orig/docs/manual/zh_TW/Makefile.in 2009-04-18 09:40:36.000000000 -0500
-+++ Thunar-1.0.1/docs/manual/zh_TW/Makefile.in 2009-07-20 19:36:38.251717303 -0500
-@@ -319,7 +319,7 @@
- SUBDIRS = \
- images
-
--TARGET_DIR = $(datadir)/doc/Thunar/html/zh_TW
-+TARGET_DIR = $(htmldir)/zh_TW
- STYLESHEET = ../thunar.xsl
- DOCUMENT = Thunar.xml
-
-diff -Nur Thunar-1.0.1.orig/docs/manual/zh_TW/images/Makefile.in Thunar-1.0.1/docs/manual/zh_TW/images/Makefile.in
---- Thunar-1.0.1.orig/docs/manual/zh_TW/images/Makefile.in 2009-04-18 09:40:36.000000000 -0500
-+++ Thunar-1.0.1/docs/manual/zh_TW/images/Makefile.in 2009-07-20 19:36:38.251717303 -0500
-@@ -313,7 +313,7 @@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
- xfconf_query_found = @xfconf_query_found@
--imagesdir = $(datadir)/doc/Thunar/html/zh_TW/images
-+imagesdir = $(htmldir)/zh_TW/images
- images_DATA = \
- bulk-rename.png \
- file-manager-window.png \
diff --git a/source/xap/xfce/patches/thunar-1.0.1-png14.diff b/source/xap/xfce/patches/thunar-1.0.1-png14.diff
deleted file mode 100644
index 6c67a407d..000000000
--- a/source/xap/xfce/patches/thunar-1.0.1-png14.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- ./thunar-vfs/thunar-vfs-thumb.c.orig 2009-01-12 14:38:49.000000000 -0600
-+++ ./thunar-vfs/thunar-vfs-thumb.c 2010-02-12 13:24:33.000000000 -0600
-@@ -1169,7 +1169,7 @@
- goto done0;
-
- /* verify the png signature */
-- if (G_LIKELY (png_check_sig ((png_bytep) signature, sizeof (signature))))
-+ if (G_LIKELY (png_sig_cmp ((png_bytep) signature, 0, sizeof (signature)) == 0))
- rewind (fp);
- else
- goto done0;
diff --git a/source/xap/xfce/patches/thunar-1.0.2-fixup_docdir.diff b/source/xap/xfce/patches/thunar-1.0.2-fixup_docdir.diff
new file mode 100644
index 000000000..7315ecea5
--- /dev/null
+++ b/source/xap/xfce/patches/thunar-1.0.2-fixup_docdir.diff
@@ -0,0 +1,384 @@
+diff -Nur Thunar-1.0.2.orig//Makefile.in Thunar-1.0.2/Makefile.in
+--- Thunar-1.0.2.orig//Makefile.in 2010-05-21 12:11:02.000000000 -0500
++++ Thunar-1.0.2/Makefile.in 2010-05-23 17:44:59.068552125 -0500
+@@ -1040,7 +1040,7 @@
+
+ ThunarHelp: ThunarHelp.in Makefile
+ rm -f ThunarHelp.gen ThunarHelp
+- sed -e "s,\@datadir\@,$(datadir),g" \
++ sed -e "s,\@htmldir\@,$(htmldir),g" \
+ < $(srcdir)/ThunarHelp.in \
+ > ThunarHelp.gen
+ mv ThunarHelp.gen ThunarHelp
+diff -Nur Thunar-1.0.2.orig//ThunarHelp.in Thunar-1.0.2/ThunarHelp.in
+--- Thunar-1.0.2.orig//ThunarHelp.in 2010-05-21 12:10:52.000000000 -0500
++++ Thunar-1.0.2/ThunarHelp.in 2010-05-23 17:45:26.207677481 -0500
+@@ -19,7 +19,7 @@
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ #
+
+-HELPDIR="@datadir@/doc/Thunar/html/"
++HELPDIR="@htmldir@/"
+
+ if test -n "$LC_ALL"; then
+ LC=$LC_ALL
+diff -Nur Thunar-1.0.2.orig//docs/Makefile.in Thunar-1.0.2/docs/Makefile.in
+--- Thunar-1.0.2.orig//docs/Makefile.in 2010-05-21 12:10:57.000000000 -0500
++++ Thunar-1.0.2/docs/Makefile.in 2010-05-23 17:46:08.776567272 -0500
+@@ -322,7 +322,7 @@
+ builddir = @builddir@
+ datadir = @datadir@
+ datarootdir = @datarootdir@
+-docdir = $(datadir)/doc/Thunar
++docdir = @docdir@
+ dvidir = @dvidir@
+ exec_prefix = @exec_prefix@
+ host = @host@
+diff -Nur Thunar-1.0.2.orig//docs/manual/C/Makefile.in Thunar-1.0.2/docs/manual/C/Makefile.in
+--- Thunar-1.0.2.orig//docs/manual/C/Makefile.in 2010-05-21 12:10:57.000000000 -0500
++++ Thunar-1.0.2/docs/manual/C/Makefile.in 2010-05-23 17:46:52.539542089 -0500
+@@ -336,7 +336,7 @@
+ SUBDIRS = \
+ images
+
+-TARGET_DIR = $(datadir)/doc/Thunar/html/C
++TARGET_DIR = $(htmldir)/C
+ STYLESHEET = ../thunar.xsl
+ DOCUMENT = Thunar.xml
+
+diff -Nur Thunar-1.0.2.orig//docs/manual/C/images/Makefile.in Thunar-1.0.2/docs/manual/C/images/Makefile.in
+--- Thunar-1.0.2.orig//docs/manual/C/images/Makefile.in 2010-05-21 12:10:57.000000000 -0500
++++ Thunar-1.0.2/docs/manual/C/images/Makefile.in 2010-05-23 17:47:25.359542363 -0500
+@@ -316,7 +316,7 @@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ xfconf_query_found = @xfconf_query_found@
+-imagesdir = $(datadir)/doc/Thunar/html/C/images
++imagesdir = $(htmldir)/C/images
+ images_DATA = \
+ bulk-rename.png \
+ file-manager-window.png \
+diff -Nur Thunar-1.0.2.orig//docs/manual/Makefile.in Thunar-1.0.2/docs/manual/Makefile.in
+--- Thunar-1.0.2.orig//docs/manual/Makefile.in 2010-05-21 12:10:57.000000000 -0500
++++ Thunar-1.0.2/docs/manual/Makefile.in 2010-05-23 17:48:04.650570173 -0500
+@@ -370,7 +370,7 @@
+ tr \
+ zh_TW
+
+-cssdir = $(datadir)/doc/Thunar/html
++cssdir = $(htmldir)
+ css_DATA = \
+ thunar.css
+
+diff -Nur Thunar-1.0.2.orig//docs/manual/am/Makefile.in Thunar-1.0.2/docs/manual/am/Makefile.in
+--- Thunar-1.0.2.orig//docs/manual/am/Makefile.in 2010-05-21 12:10:58.000000000 -0500
++++ Thunar-1.0.2/docs/manual/am/Makefile.in 2010-05-23 17:48:35.304542671 -0500
+@@ -336,7 +336,7 @@
+ SUBDIRS = \
+ images
+
+-TARGET_DIR = $(datadir)/doc/Thunar/html/am
++TARGET_DIR = $(htmldir)/am
+ STYLESHEET = ../thunar.xsl
+ DOCUMENT = Thunar.xml
+
+diff -Nur Thunar-1.0.2.orig//docs/manual/am/images/Makefile.in Thunar-1.0.2/docs/manual/am/images/Makefile.in
+--- Thunar-1.0.2.orig//docs/manual/am/images/Makefile.in 2010-05-21 12:10:58.000000000 -0500
++++ Thunar-1.0.2/docs/manual/am/images/Makefile.in 2010-05-23 17:51:21.111542305 -0500
+@@ -316,7 +316,7 @@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ xfconf_query_found = @xfconf_query_found@
+-imagesdir = $(datadir)/doc/Thunar/html/am/images
++imagesdir = $(htmldir)/am/images
+ images_DATA = \
+ bulk-rename.png \
+ file-manager-window.png \
+diff -Nur Thunar-1.0.2.orig//docs/manual/da/Makefile.in Thunar-1.0.2/docs/manual/da/Makefile.in
+--- Thunar-1.0.2.orig//docs/manual/da/Makefile.in 2010-05-21 12:10:58.000000000 -0500
++++ Thunar-1.0.2/docs/manual/da/Makefile.in 2010-05-23 17:48:52.108550193 -0500
+@@ -334,7 +334,7 @@
+ SUBDIRS = \
+ images
+
+-TARGET_DIR = $(datadir)/doc/Thunar/html/da
++TARGET_DIR = $(htmldir)/da
+ STYLESHEET = ../thunar.xsl
+ DOCUMENT = Thunar.xml
+
+diff -Nur Thunar-1.0.2.orig//docs/manual/da/images/Makefile.in Thunar-1.0.2/docs/manual/da/images/Makefile.in
+--- Thunar-1.0.2.orig//docs/manual/da/images/Makefile.in 2010-05-21 12:10:58.000000000 -0500
++++ Thunar-1.0.2/docs/manual/da/images/Makefile.in 2010-05-23 17:51:27.753542103 -0500
+@@ -314,7 +314,7 @@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ xfconf_query_found = @xfconf_query_found@
+-imagesdir = $(datadir)/doc/Thunar/html/da/images
++imagesdir = $(htmldir)/da/images
+ images_DATA = \
+ bulk-rename.png \
+ file-manager-window.png \
+diff -Nur Thunar-1.0.2.orig//docs/manual/es/Makefile.in Thunar-1.0.2/docs/manual/es/Makefile.in
+--- Thunar-1.0.2.orig//docs/manual/es/Makefile.in 2010-05-21 12:10:58.000000000 -0500
++++ Thunar-1.0.2/docs/manual/es/Makefile.in 2010-05-23 17:48:58.300552519 -0500
+@@ -336,7 +336,7 @@
+ SUBDIRS = \
+ images
+
+-TARGET_DIR = $(datadir)/doc/Thunar/html/es
++TARGET_DIR = $(htmldir)/es
+ STYLESHEET = ../thunar.xsl
+ DOCUMENT = Thunar.xml
+
+diff -Nur Thunar-1.0.2.orig//docs/manual/es/images/Makefile.in Thunar-1.0.2/docs/manual/es/images/Makefile.in
+--- Thunar-1.0.2.orig//docs/manual/es/images/Makefile.in 2010-05-21 12:10:58.000000000 -0500
++++ Thunar-1.0.2/docs/manual/es/images/Makefile.in 2010-05-23 17:51:34.373542961 -0500
+@@ -316,7 +316,7 @@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ xfconf_query_found = @xfconf_query_found@
+-imagesdir = $(datadir)/doc/Thunar/html/es/images
++imagesdir = $(htmldir)/es/images
+ images_DATA = \
+ bulk-rename.png \
+ file-manager-window.png \
+diff -Nur Thunar-1.0.2.orig//docs/manual/eu/Makefile.in Thunar-1.0.2/docs/manual/eu/Makefile.in
+--- Thunar-1.0.2.orig//docs/manual/eu/Makefile.in 2010-05-21 12:10:58.000000000 -0500
++++ Thunar-1.0.2/docs/manual/eu/Makefile.in 2010-05-23 17:49:05.977677434 -0500
+@@ -336,7 +336,7 @@
+ SUBDIRS = \
+ images
+
+-TARGET_DIR = $(datadir)/doc/Thunar/html/eu
++TARGET_DIR = $(htmldir)/eu
+ STYLESHEET = ../thunar.xsl
+ DOCUMENT = Thunar.xml
+
+diff -Nur Thunar-1.0.2.orig//docs/manual/eu/images/Makefile.in Thunar-1.0.2/docs/manual/eu/images/Makefile.in
+--- Thunar-1.0.2.orig//docs/manual/eu/images/Makefile.in 2010-05-21 12:10:58.000000000 -0500
++++ Thunar-1.0.2/docs/manual/eu/images/Makefile.in 2010-05-23 17:51:42.643542360 -0500
+@@ -316,7 +316,7 @@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ xfconf_query_found = @xfconf_query_found@
+-imagesdir = $(datadir)/doc/Thunar/html/eu/images
++imagesdir = $(htmldir)/eu/images
+ images_DATA = \
+ bulk-rename.png \
+ file-manager-window.png \
+diff -Nur Thunar-1.0.2.orig//docs/manual/fr/Makefile.in Thunar-1.0.2/docs/manual/fr/Makefile.in
+--- Thunar-1.0.2.orig//docs/manual/fr/Makefile.in 2010-05-21 12:10:58.000000000 -0500
++++ Thunar-1.0.2/docs/manual/fr/Makefile.in 2010-05-23 17:49:12.495542046 -0500
+@@ -336,7 +336,7 @@
+ SUBDIRS = \
+ images
+
+-TARGET_DIR = $(datadir)/doc/Thunar/html/fr
++TARGET_DIR = $(htmldir)/fr
+ STYLESHEET = ../thunar.xsl
+ DOCUMENT = Thunar.xml
+
+diff -Nur Thunar-1.0.2.orig//docs/manual/fr/images/Makefile.in Thunar-1.0.2/docs/manual/fr/images/Makefile.in
+--- Thunar-1.0.2.orig//docs/manual/fr/images/Makefile.in 2010-05-21 12:10:58.000000000 -0500
++++ Thunar-1.0.2/docs/manual/fr/images/Makefile.in 2010-05-23 17:51:51.116702819 -0500
+@@ -316,7 +316,7 @@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ xfconf_query_found = @xfconf_query_found@
+-imagesdir = $(datadir)/doc/Thunar/html/fr/images
++imagesdir = $(htmldir)/fr/images
+ images_DATA = \
+ bulk-rename.png \
+ file-manager-window.png \
+diff -Nur Thunar-1.0.2.orig//docs/manual/gl/Makefile.in Thunar-1.0.2/docs/manual/gl/Makefile.in
+--- Thunar-1.0.2.orig//docs/manual/gl/Makefile.in 2010-05-21 12:10:58.000000000 -0500
++++ Thunar-1.0.2/docs/manual/gl/Makefile.in 2010-05-23 17:49:19.882542284 -0500
+@@ -336,7 +336,7 @@
+ SUBDIRS = \
+ images
+
+-TARGET_DIR = $(datadir)/doc/Thunar/html/gl
++TARGET_DIR = $(htmldir)/gl
+ STYLESHEET = ../thunar.xsl
+ DOCUMENT = Thunar.xml
+
+diff -Nur Thunar-1.0.2.orig//docs/manual/gl/images/Makefile.in Thunar-1.0.2/docs/manual/gl/images/Makefile.in
+--- Thunar-1.0.2.orig//docs/manual/gl/images/Makefile.in 2010-05-21 12:10:58.000000000 -0500
++++ Thunar-1.0.2/docs/manual/gl/images/Makefile.in 2010-05-23 17:51:57.596588720 -0500
+@@ -316,7 +316,7 @@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ xfconf_query_found = @xfconf_query_found@
+-imagesdir = $(datadir)/doc/Thunar/html/gl/images
++imagesdir = $(htmldir)/gl/images
+ images_DATA = \
+ bulk-rename.png \
+ file-manager-window.png \
+diff -Nur Thunar-1.0.2.orig//docs/manual/it/Makefile.in Thunar-1.0.2/docs/manual/it/Makefile.in
+--- Thunar-1.0.2.orig//docs/manual/it/Makefile.in 2010-05-21 12:10:58.000000000 -0500
++++ Thunar-1.0.2/docs/manual/it/Makefile.in 2010-05-23 17:49:27.597676807 -0500
+@@ -334,7 +334,7 @@
+ SUBDIRS = \
+ images
+
+-TARGET_DIR = $(datadir)/doc/Thunar/html/it
++TARGET_DIR = $(htmldir)/it
+ STYLESHEET = ../thunar.xsl
+ DOCUMENT = Thunar.xml
+
+diff -Nur Thunar-1.0.2.orig//docs/manual/it/images/Makefile.in Thunar-1.0.2/docs/manual/it/images/Makefile.in
+--- Thunar-1.0.2.orig//docs/manual/it/images/Makefile.in 2010-05-21 12:10:58.000000000 -0500
++++ Thunar-1.0.2/docs/manual/it/images/Makefile.in 2010-05-23 17:52:05.152568701 -0500
+@@ -314,7 +314,7 @@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ xfconf_query_found = @xfconf_query_found@
+-imagesdir = $(datadir)/doc/Thunar/html/it/images
++imagesdir = $(htmldir)/it/images
+ images_DATA = \
+ bulk-rename.png \
+ file-manager-window.png \
+diff -Nur Thunar-1.0.2.orig//docs/manual/ja/Makefile.in Thunar-1.0.2/docs/manual/ja/Makefile.in
+--- Thunar-1.0.2.orig//docs/manual/ja/Makefile.in 2010-05-21 12:10:59.000000000 -0500
++++ Thunar-1.0.2/docs/manual/ja/Makefile.in 2010-05-23 17:49:35.728552141 -0500
+@@ -336,7 +336,7 @@
+ SUBDIRS = \
+ images
+
+-TARGET_DIR = $(datadir)/doc/Thunar/html/ja
++TARGET_DIR = $(htmldir)/ja
+ STYLESHEET = ../thunar.xsl
+ DOCUMENT = Thunar.xml
+
+diff -Nur Thunar-1.0.2.orig//docs/manual/ja/images/Makefile.in Thunar-1.0.2/docs/manual/ja/images/Makefile.in
+--- Thunar-1.0.2.orig//docs/manual/ja/images/Makefile.in 2010-05-21 12:10:59.000000000 -0500
++++ Thunar-1.0.2/docs/manual/ja/images/Makefile.in 2010-05-23 17:52:13.534542157 -0500
+@@ -316,7 +316,7 @@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ xfconf_query_found = @xfconf_query_found@
+-imagesdir = $(datadir)/doc/Thunar/html/ja/images
++imagesdir = $(htmldir)/ja/images
+ images_DATA = \
+ bulk-rename.png \
+ file-manager-window.png \
+diff -Nur Thunar-1.0.2.orig//docs/manual/nl/Makefile.in Thunar-1.0.2/docs/manual/nl/Makefile.in
+--- Thunar-1.0.2.orig//docs/manual/nl/Makefile.in 2010-05-21 12:10:59.000000000 -0500
++++ Thunar-1.0.2/docs/manual/nl/Makefile.in 2010-05-23 17:49:42.981677782 -0500
+@@ -336,7 +336,7 @@
+ SUBDIRS = \
+ images
+
+-TARGET_DIR = $(datadir)/doc/Thunar/html/nl
++TARGET_DIR = $(htmldir)/nl
+ STYLESHEET = ../thunar.xsl
+ DOCUMENT = Thunar.xml
+
+diff -Nur Thunar-1.0.2.orig//docs/manual/nl/images/Makefile.in Thunar-1.0.2/docs/manual/nl/images/Makefile.in
+--- Thunar-1.0.2.orig//docs/manual/nl/images/Makefile.in 2010-05-21 12:10:59.000000000 -0500
++++ Thunar-1.0.2/docs/manual/nl/images/Makefile.in 2010-05-23 17:52:19.353553300 -0500
+@@ -316,7 +316,7 @@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ xfconf_query_found = @xfconf_query_found@
+-imagesdir = $(datadir)/doc/Thunar/html/nl/images
++imagesdir = $(htmldir)/nl/images
+ images_DATA = \
+ bulk-rename.png \
+ file-manager-window.png \
+diff -Nur Thunar-1.0.2.orig//docs/manual/pl/Makefile.in Thunar-1.0.2/docs/manual/pl/Makefile.in
+--- Thunar-1.0.2.orig//docs/manual/pl/Makefile.in 2010-05-21 12:10:59.000000000 -0500
++++ Thunar-1.0.2/docs/manual/pl/Makefile.in 2010-05-23 17:49:51.863542378 -0500
+@@ -336,7 +336,7 @@
+ SUBDIRS = \
+ images
+
+-TARGET_DIR = $(datadir)/doc/Thunar/html/pl
++TARGET_DIR = $(htmldir)/pl
+ STYLESHEET = ../thunar.xsl
+ DOCUMENT = Thunar.xml
+
+diff -Nur Thunar-1.0.2.orig//docs/manual/pl/images/Makefile.in Thunar-1.0.2/docs/manual/pl/images/Makefile.in
+--- Thunar-1.0.2.orig//docs/manual/pl/images/Makefile.in 2010-05-21 12:10:59.000000000 -0500
++++ Thunar-1.0.2/docs/manual/pl/images/Makefile.in 2010-05-23 17:52:27.285677594 -0500
+@@ -316,7 +316,7 @@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ xfconf_query_found = @xfconf_query_found@
+-imagesdir = $(datadir)/doc/Thunar/html/pl/images
++imagesdir = $(htmldir)/pl/images
+ images_DATA = \
+ bulk-rename.png \
+ file-manager-window.png \
+diff -Nur Thunar-1.0.2.orig//docs/manual/ru/Makefile.in Thunar-1.0.2/docs/manual/ru/Makefile.in
+--- Thunar-1.0.2.orig//docs/manual/ru/Makefile.in 2010-05-21 12:10:59.000000000 -0500
++++ Thunar-1.0.2/docs/manual/ru/Makefile.in 2010-05-23 17:49:59.951552903 -0500
+@@ -336,7 +336,7 @@
+ SUBDIRS = \
+ images
+
+-TARGET_DIR = $(datadir)/doc/Thunar/html/ru
++TARGET_DIR = $(htmldir)/ru
+ STYLESHEET = ../thunar.xsl
+ DOCUMENT = Thunar.xml
+
+diff -Nur Thunar-1.0.2.orig//docs/manual/ru/images/Makefile.in Thunar-1.0.2/docs/manual/ru/images/Makefile.in
+--- Thunar-1.0.2.orig//docs/manual/ru/images/Makefile.in 2010-05-21 12:10:59.000000000 -0500
++++ Thunar-1.0.2/docs/manual/ru/images/Makefile.in 2010-05-23 17:52:33.673677284 -0500
+@@ -316,7 +316,7 @@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ xfconf_query_found = @xfconf_query_found@
+-imagesdir = $(datadir)/doc/Thunar/html/ru/images
++imagesdir = $(htmldir)/ru/images
+ images_DATA = \
+ bulk-rename.png \
+ file-manager-window.png \
+diff -Nur Thunar-1.0.2.orig//docs/manual/tr/Makefile.in Thunar-1.0.2/docs/manual/tr/Makefile.in
+--- Thunar-1.0.2.orig//docs/manual/tr/Makefile.in 2010-05-21 12:10:59.000000000 -0500
++++ Thunar-1.0.2/docs/manual/tr/Makefile.in 2010-05-23 17:50:08.415553080 -0500
+@@ -334,7 +334,7 @@
+ SUBDIRS = \
+ images
+
+-TARGET_DIR = $(datadir)/doc/Thunar/html/tr
++TARGET_DIR = $(htmldir)/tr
+ STYLESHEET = ../thunar.xsl
+ DOCUMENT = Thunar.xml
+
+diff -Nur Thunar-1.0.2.orig//docs/manual/tr/images/Makefile.in Thunar-1.0.2/docs/manual/tr/images/Makefile.in
+--- Thunar-1.0.2.orig//docs/manual/tr/images/Makefile.in 2010-05-21 12:10:59.000000000 -0500
++++ Thunar-1.0.2/docs/manual/tr/images/Makefile.in 2010-05-23 17:52:40.320542409 -0500
+@@ -314,7 +314,7 @@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ xfconf_query_found = @xfconf_query_found@
+-imagesdir = $(datadir)/doc/Thunar/html/tr/images
++imagesdir = $(htmldir)/tr/images
+ images_DATA = \
+ bulk-rename.png \
+ file-manager-window.png \
+diff -Nur Thunar-1.0.2.orig//docs/manual/zh_TW/Makefile.in Thunar-1.0.2/docs/manual/zh_TW/Makefile.in
+--- Thunar-1.0.2.orig//docs/manual/zh_TW/Makefile.in 2010-05-21 12:10:59.000000000 -0500
++++ Thunar-1.0.2/docs/manual/zh_TW/Makefile.in 2010-05-23 17:50:20.989569041 -0500
+@@ -336,7 +336,7 @@
+ SUBDIRS = \
+ images
+
+-TARGET_DIR = $(datadir)/doc/Thunar/html/zh_TW
++TARGET_DIR = $(htmldir)/zh_TW
+ STYLESHEET = ../thunar.xsl
+ DOCUMENT = Thunar.xml
+
+diff -Nur Thunar-1.0.2.orig//docs/manual/zh_TW/images/Makefile.in Thunar-1.0.2/docs/manual/zh_TW/images/Makefile.in
+--- Thunar-1.0.2.orig//docs/manual/zh_TW/images/Makefile.in 2010-05-21 12:10:59.000000000 -0500
++++ Thunar-1.0.2/docs/manual/zh_TW/images/Makefile.in 2010-05-23 17:52:47.172552372 -0500
+@@ -316,7 +316,7 @@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ xfconf_query_found = @xfconf_query_found@
+-imagesdir = $(datadir)/doc/Thunar/html/zh_TW/images
++imagesdir = $(htmldir)/zh_TW/images
+ images_DATA = \
+ bulk-rename.png \
+ file-manager-window.png \
diff --git a/source/xap/xfce/patches/thunar-fix_umask_properly.diff b/source/xap/xfce/patches/thunar-fix_umask_properly.diff
deleted file mode 100644
index 2070b5802..000000000
--- a/source/xap/xfce/patches/thunar-fix_umask_properly.diff
+++ /dev/null
@@ -1,52 +0,0 @@
-commit eb58c6a6ba7f77c2c16016db064524df598ef421
-Author: Jannis Pohlmann <jannis@xfce.org>
-Date: Sat Oct 3 11:49:41 2009 +0200
-
- Fix bugs #3532 (umask < 0022 not honoured) and #5813 properly (I hope).
-
- The previous patch applied in e53de71e6add9b28ba034111a1d19db7def8f7e7
- made things worse than before: it used DEFFILEMODE which seems to be
- BSD-specific for creating files. It also reset the umask to 0 when
- creating the first directory with _thunar_vfs_io_jobs_mkdir().
-
- What we really want is to use 0777 (dirs) and 0666 (files) and let the
- standard C system calls like open() apply the umask value. This should
- work on all POSIX-compliant systems.
-
- Patch provided by Craig Ringer <craig@postnewspapers.com.au>.
-
-diff --git a/thunar-vfs/thunar-vfs-io-jobs.c b/thunar-vfs/thunar-vfs-io-jobs.c
-index 8d70812..c94523a 100644
---- a/thunar-vfs/thunar-vfs-io-jobs.c
-+++ b/thunar-vfs/thunar-vfs-io-jobs.c
-@@ -432,8 +432,12 @@ _thunar_vfs_io_jobs_create (ThunarVfsJob *job,
- absolute_path = thunar_vfs_path_dup_string (lp->data);
-
- again:
-- /* try to create the file at the given path */
-- fd = g_open (absolute_path, O_CREAT | O_EXCL | O_WRONLY, DEFFILEMODE);
-+ /* Try to create the file at the given path.
-+ *
-+ * Note that despite the 0666 mask, we won't really create a world-writable
-+ * file unless the user's umask permits it (ie the umask is 0000).
-+ */
-+ fd = g_open (absolute_path, O_CREAT | O_EXCL | O_WRONLY, 0666);
- if (G_UNLIKELY (fd < 0))
- {
- /* check if the file already exists */
-@@ -707,8 +711,13 @@ _thunar_vfs_io_jobs_mkdir (ThunarVfsJob *job,
- /* update the progress information */
- _thunar_vfs_job_process_path (job, lp);
-
-- /* try to create the target directory */
-- if (!_thunar_vfs_io_ops_mkdir (lp->data, 0777 & ~umask(0), THUNAR_VFS_IO_OPS_NONE, error))
-+ /* try to create the target directory
-+ *
-+ * Note that the mode specified here is limited by the user's umask, so we will not
-+ * actually be creating a world writable directory unless the user's umask permits
-+ * it.
-+ */
-+ if (!_thunar_vfs_io_ops_mkdir (lp->data, 0777, THUNAR_VFS_IO_OPS_NONE, error))
- return FALSE;
- }
-
diff --git a/source/xap/xfce/patches/xfce-utils-load_systemwide_Xmodmap.diff b/source/xap/xfce/patches/xfce-utils-load_systemwide_Xmodmap.diff
new file mode 100644
index 000000000..fde47a9e8
--- /dev/null
+++ b/source/xap/xfce/patches/xfce-utils-load_systemwide_Xmodmap.diff
@@ -0,0 +1,11 @@
+diff -Nur xfce-utils-4.6.2.orig//scripts/xinitrc.in.in xfce-utils-4.6.2/scripts/xinitrc.in.in
+--- xfce-utils-4.6.2.orig//scripts/xinitrc.in.in 2010-05-21 11:56:26.000000000 -0500
++++ xfce-utils-4.6.2/scripts/xinitrc.in.in 2011-03-09 22:56:18.687297854 -0600
+@@ -97,6 +97,7 @@
+ cat /dev/null $XRESOURCES | xrdb -nocpp -merge -
+
+ # load local modmap
++test -r /etc/X11/xinit/.Xmodmap && xmodmap /etc/X11/xinit/.Xmodmap
+ test -r $HOME/.Xmodmap && xmodmap $HOME/.Xmodmap
+
+ # Launch xscreensaver (if available), but only as non-root user
diff --git a/source/xap/xfce/patches/xfce-utils.xinitrc.consolekit.diff b/source/xap/xfce/patches/xfce-utils.xinitrc.consolekit.diff
index a8d5b2a5f..206f6607a 100644
--- a/source/xap/xfce/patches/xfce-utils.xinitrc.consolekit.diff
+++ b/source/xap/xfce/patches/xfce-utils.xinitrc.consolekit.diff
@@ -1,11 +1,15 @@
--- ./scripts/xinitrc.in.in.orig 2009-04-09 18:21:13.000000000 -0500
-+++ ./scripts/xinitrc.in.in 2010-05-06 03:06:02.000000000 -0500
-@@ -131,7 +131,7 @@
++++ ./scripts/xinitrc.in.in 2010-06-18 11:33:37.000000000 -0500
+@@ -131,7 +131,11 @@
x|xno*)
;;
*)
- $xfcesm
-+ ck-launch-session $xfcesm
++ if [ -z "$DESKTOP_SESSION" -a -x /usr/bin/ck-launch-session ]; then
++ ck-launch-session $xfcesm
++ else
++ $xfcesm
++ fi
if test $kill_sshagent -eq 1; then
eval `$sshagent -k`
diff --git a/source/xap/xfce/patches/xfce4-settings.libxklavier5.diff b/source/xap/xfce/patches/xfce4-settings.libxklavier5.diff
deleted file mode 100644
index d5f8ed8c6..000000000
--- a/source/xap/xfce/patches/xfce4-settings.libxklavier5.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- ./dialogs/keyboard-settings/xfce-keyboard-settings.c.orig 2010-01-02 07:31:06.000000000 -0600
-+++ ./dialogs/keyboard-settings/xfce-keyboard-settings.c 2010-02-12 02:11:05.000000000 -0600
-@@ -457,7 +457,7 @@
-
- #ifdef HAVE_LIBXKLAVIER
- /* Stop xklavier engine */
-- xkl_engine_stop_listen (settings->priv->xkl_engine);
-+ xkl_engine_stop_listen (settings->priv->xkl_engine, XKLL_TRACK_KEYBOARD_STATE);
- #endif /* HAVE_LIBXKLAVIER */
-
- g_object_unref (settings->priv->provider);
diff --git a/source/xap/xfce/patches/xfsm-compat-kde.c-start-kde4-services.diff b/source/xap/xfce/patches/xfsm-compat-kde.c-start-kde4-services.diff
new file mode 100644
index 000000000..9c54cf9a7
--- /dev/null
+++ b/source/xap/xfce/patches/xfsm-compat-kde.c-start-kde4-services.diff
@@ -0,0 +1,49 @@
+From 51ee1e872e8671bf439e5d391b86432904cbc5ef Mon Sep 17 00:00:00 2001
+From: Robby Workman <rworkman@slackware.com>
+Date: Sun, 6 Mar 2011 23:55:35 -0600
+Subject: [PATCH] xfsm-compat-kde.c: Start KDE4 services instead of KDE3
+
+---
+ xfce4-session/xfsm-compat-kde.c | 10 ++++------
+ 1 files changed, 4 insertions(+), 6 deletions(-)
+
+diff --git a/xfce4-session/xfsm-compat-kde.c b/xfce4-session/xfsm-compat-kde.c
+index ced6ece..b51387e 100644
+--- a/xfce4-session/xfsm-compat-kde.c
++++ b/xfce4-session/xfsm-compat-kde.c
+@@ -123,10 +123,10 @@ xfsm_compat_kde_startup (XfsmSplashScreen *splash)
+ if (G_LIKELY (splash != NULL))
+ xfsm_splash_screen_next (splash, _("Starting KDE services"));
+
+- run ("kdeinit");
++ run ("kdeinit4");
+
+ /* tell klauncher about the session manager */
+- g_snprintf (command, 256, "dcop klauncher klauncher setLaunchEnv "
++ g_snprintf (command, 256, "qdbus org.kde.klauncher /KLauncher setLaunchEnv "
+ "SESSION_MANAGER \"%s\"",
+ g_getenv ("SESSION_MANAGER"));
+ run (command);
+@@ -134,7 +134,7 @@ xfsm_compat_kde_startup (XfsmSplashScreen *splash)
+ /* tell kde if we are running multi-head */
+ if (gdk_display_get_n_screens (gdk_display_get_default ()) > 1)
+ {
+- g_snprintf (command, 256, "dcop klauncher klauncher setLaunchEnv "
++ g_snprintf (command, 256, "qdbus org.kde.klauncher /KLauncher setLaunchEnv "
+ "KDE_MULTIHEAD \"true\"");
+ run (command);
+ }
+@@ -150,9 +150,7 @@ xfsm_compat_kde_shutdown (void)
+ return;
+
+ /* shutdown KDE services */
+- run ("kdeinit_shutdown");
+- run ("dcopserver_shutdown");
+- run ("artsshell -q terminate");
++ run ("kdeinit4_shutdown");
+
+ kde_compat_started = FALSE;
+ }
+--
+1.7.4.1
+
diff --git a/source/xap/xfce/xfce.SlackBuild b/source/xap/xfce/xfce.SlackBuild
index a59aa9497..aaa38f994 100755
--- a/source/xap/xfce/xfce.SlackBuild
+++ b/source/xap/xfce/xfce.SlackBuild
@@ -1,7 +1,7 @@
#!/bin/sh
# Copyright 2003 Slackware Linux, Inc., Concord, CA, USA
-# Copyright 2007, 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2007, 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,23 +21,34 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=4.6.1
-BUILD=${BUILD:-8}
+VERSION=4.6.2
+BUILD=${BUILD:-5}
# A few tarballs have different versions; handle them here
-XDT_VERS=4.7.2 # xfce4-dev-tools version
-# We're going to ship xdt from git (targeting xfce-4.8) since it's not used
-# for building release tarballs anyway, but it's handy to have around for
-# building from git, and some folks might want to do that later...
-EXO_VERS=0.3.106 # exo version
-THUNAR_VERS=1.0.1 # thunar version
+XDT_VERS=4.8.0 # xfce4-dev-tools version
+# We're going to ship xdt from xfce-4.8 since it's not used for building
+# release tarballs anyway, but it's handy to have around for building from
+# git, and some folks might want to do that later...
+EXO_VERS=0.3.107 # exo version
+THUNAR_VERS=1.0.2 # thunar version
GXE_VERS=2.6.0 # gtk-xfce-engine version
-TERM_VERS=0.4.4 # terminal version
+TERM_VERS=0.4.6 # terminal version
MPAD_VERS=0.2.16 # mousepad version
+XFWM_VERS=4.6.2 # xfwm4 version
XFWMTHEME_VERS=4.6.0 # xfwm4-themes version
-SETTINGS_VERS=4.6.4 # xfce4-settings version
-PANEL_VERS=4.6.3 # xfce4-panel version
-XFCEGUI_VERS=4.6.3 # libxfcegui4 version
+SETTINGS_VERS=4.6.5 # xfce4-settings version
+SESSION_VERS=4.6.2 # xfce4-settings version
+PANEL_VERS=4.6.4 # xfce4-panel version
+XFCEGUI_VERS=4.6.4 # libxfcegui4 version
+XFCEMENU_VERS=4.6.2 # libxfce4menu version
+LIBUTIL_VERS=4.6.2 # libxfce4util version
+UTILS_VERS=4.6.2 # xfce-utils version
+APPFINDER_VERS=4.6.2 # xfce4-appfinder version
+XFCONF_VERS=4.6.2 # xfconf version
+XFDESKTOP_VERS=4.6.2 # xfdesktop version
+MIXER_VERS=4.6.1 # xfce4-mixer version
+XFPRINT_VERS=4.6.1 # xfprint version
+ORAGE_VERS=4.6.1 # orage version
NUMJOBS=${NUMJOBS:--j6}
@@ -76,32 +87,28 @@ cd $TMP || exit 1
COMPRESSION=xz
COMPRESSUTIL=xz
-# The Rodent theme isn't xdg-compliant, so they're not shipping it
-# xfce4-icon-theme-$VERSION.tar.$COMPRESSION
-# We'll set Tango as the system default instead...
-
for file in \
xfce4-dev-tools-$XDT_VERS.tar.$COMPRESSION \
- libxfce4util-$VERSION.tar.$COMPRESSION \
- xfconf-$VERSION.tar.$COMPRESSION \
+ libxfce4util-$LIBUTIL_VERS.tar.$COMPRESSION \
+ xfconf-$XFCONF_VERS.tar.$COMPRESSION \
libxfcegui4-$XFCEGUI_VERS.tar.$COMPRESSION \
- libxfce4menu-$VERSION.tar.$COMPRESSION \
+ libxfce4menu-$XFCEMENU_VERS.tar.$COMPRESSION \
exo-$EXO_VERS.tar.$COMPRESSION \
xfce4-panel-$PANEL_VERS.tar.$COMPRESSION \
Thunar-$THUNAR_VERS.tar.$COMPRESSION \
xfce4-settings-$SETTINGS_VERS.tar.$COMPRESSION \
- xfce4-session-$VERSION.tar.$COMPRESSION \
- xfdesktop-$VERSION.tar.$COMPRESSION \
- xfwm4-$VERSION.tar.$COMPRESSION \
- xfce-utils-$VERSION.tar.$COMPRESSION \
- xfce4-mixer-$VERSION.tar.$COMPRESSION \
- xfprint-$VERSION.tar.$COMPRESSION \
- xfce4-appfinder-$VERSION.tar.$COMPRESSION \
+ xfce4-session-$SESSION_VERS.tar.$COMPRESSION \
+ xfdesktop-$XFDESKTOP_VERS.tar.$COMPRESSION \
+ xfwm4-$XFWM_VERS.tar.$COMPRESSION \
+ xfce-utils-$UTILS_VERS.tar.$COMPRESSION \
+ xfce4-mixer-$MIXER_VERS.tar.$COMPRESSION \
+ xfprint-$XFPRINT_VERS.tar.$COMPRESSION \
+ xfce4-appfinder-$APPFINDER_VERS.tar.$COMPRESSION \
gtk-xfce-engine-$GXE_VERS.tar.$COMPRESSION \
Terminal-$TERM_VERS.tar.$COMPRESSION \
xfwm4-themes-$XFWMTHEME_VERS.tar.$COMPRESSION \
mousepad-$MPAD_VERS.tar.$COMPRESSION \
- orage-$VERSION.tar.$COMPRESSION ;
+ orage-$ORAGE_VERS.tar.$COMPRESSION ;
do
$COMPRESSUTIL -dc $CWD/src/$file | tar xvf - || exit 1
cd $(basename $file .tar.$COMPRESSION) || exit 1
@@ -115,31 +122,40 @@ do
# Here's where we patch or set up any other package-specific stuff:
# Patch to only show xfcalendar in XFce (otherwise it shows up in
# KDE's Lost & Found and does not work):
- if [ "$file" = "orage-$VERSION.tar.$COMPRESSION" ]; then
- zcat $CWD/patches/xfcalendar.desktop.in.diff.gz | patch -p1 || exit 1
- fi
- # Fix Terminal's title bar and preferences problems with GTK+ 2.18:
- if [ "$file" = "Terminal-$TERM_VERS.tar.$COMPRESSION" ]; then
- zcat $CWD/patches/terminal.gtk.2.18.fix.diff.gz | patch -p1 || exit 1
+ if [ "$file" = "orage-$ORAGE_VERS.tar.$COMPRESSION" ]; then
+ zcat $CWD/patches/xfcalendar.desktop.in.diff.gz | patch -p1 --verbose || exit 1
fi
# Make Thunar respect --docdir
if [ "$file" = "Thunar-$THUNAR_VERS.tar.$COMPRESSION" ]; then
- zcat $CWD/patches/thunar-1.0.1-fixup_docdir.diff.gz | patch -p1 || exit 1
- zcat $CWD/patches/thunar-fix_umask_properly.diff.gz | patch -p1 || exit 1
- # Port to PNG 1.4.0:
- zcat $CWD/patches/thunar-1.0.1-png14.diff.gz | patch -p1 || exit 1
+ zcat $CWD/patches/thunar-1.0.2-fixup_docdir.diff.gz | patch -p1 --verbose || exit 1
+ zcat $CWD/patches/Thunar.thunar-vfs-io-local.diff.gz | patch -p0 --verbose || exit 1
fi
# Fix the missing education icon in the desktop menu
- if [ "$file" = "xfdesktop-$VERSION.tar.$COMPRESSION" ]; then
- zcat $CWD/patches/xfdesktop-fix_education_icon.diff.gz | patch -p1 || exit 1
+ if [ "$file" = "xfdesktop-$XFDESKTOP_VERS.tar.$COMPRESSION" ]; then
+ zcat $CWD/patches/xfdesktop-fix_education_icon.diff.gz | patch -p1 --verbose || exit 1
+ fi
+ # 1) Launch xfce through consolekit so that ck enabled stuff works in xfce
+ # 2) Fix comments in /etc/xfce/xdg/xfce4/Xft.xrdb
+ # http://bugzilla.xfce.org/show_bug.cgi?id=6314
+ # 3) Load system-wide .Xmodmap, not just the one in $HOME
+ if [ "$file" = "xfce-utils-$UTILS_VERS.tar.$COMPRESSION" ]; then
+ zcat $CWD/patches/xfce-utils.xinitrc.consolekit.diff.gz | patch -p1 --verbose || exit 1
+ zcat $CWD/patches/fixup_comments_in_xfce-utils-Xft.xrdb.diff.gz | patch -p1 --verbose || exit 1
+ zcat $CWD/patches/xfce-utils-load_systemwide_Xmodmap.diff.gz | patch -p1 --verbose || exit 1
+ fi
+ # Fix a couple of bugs from mousepad git
+ if [ "$file" = "mousepad-$MPAD_VERS.tar.$COMPRESSION" ]; then
+ zcat $CWD/patches/mousepad-fix_find_and_replace.diff.gz | patch -p1 --verbose || exit 1
+ zcat $CWD/patches/mousepad-fix_find.diff.gz | patch -p1 --verbose || exit 1
fi
- # Port xfce4-settings to libxklavier-5.x:
- if [ "$file" = "xfce4-settings-$SETTINGS_VERS.tar.$COMPRESSION" ]; then
- zcat $CWD/patches/xfce4-settings.libxklavier5.diff.gz | patch -p1 || exit 1
+ # Fix a plugin moving bug in the panel
+ if [ "$file" = "xfce4-panel-$PANEL_VERS.tar.$COMPRESSION" ]; then
+ zcat $CWD/patches/no_sensitive_panel_during_plugin_moves.patch.gz | patch -p1 --verbose || exit 1
fi
- # Launch xfce through consolekit so that ck enabled stuff works in xfce:
- if [ "$file" = "xfce-utils-$VERSION.tar.$COMPRESSION" ]; then
- zcat $CWD/patches/xfce-utils.xinitrc.consolekit.diff.gz | patch -p1 || exit 1
+ # Start kde4 services instead of kde3
+ # http://bugzilla.xfce.org/show_bug.cgi?id=7382
+ if [ "$file" = "xfce4-session-$SESSION_VERS.tar.$COMPRESSION" ]; then
+ zcat $CWD/patches/xfsm-compat-kde.c-start-kde4-services.diff.gz | patch -p1 --verbose || exit 1
fi
# End patches/package-specific stuff
@@ -187,12 +203,12 @@ find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
# The Rodent icon theme isn't xdg compliant, so it spews errors quite often
# and just flat breaks some things here and there, so the Xfce team elected
-# not to ship it with 4.6.0. In the meantime, we'll default to Tango.
-sed -i s/Rodent/Tango/ \
+# not to ship it with 4.6.x. In the meantime, we'll default to gnome.
+sed -i s/Rodent/gnome/ \
$PKG/etc/xfce/xdg/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml
# We're going to borrow the "applications-education" icons (six of them)
-# from kde's oxygen icon theme (it's LGPL)
+# from the kde oxygen icon theme (it's LGPL)
tar xf $CWD/icons.tar.xz -C $PKG/usr/share
# We don't want any of those icon caches
diff --git a/source/xap/xgames/xgames.SlackBuild b/source/xap/xgames/xgames.SlackBuild
index e2514f816..e313d4682 100755
--- a/source/xap/xgames/xgames.SlackBuild
+++ b/source/xap/xgames/xgames.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2011 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,8 +21,17 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
VERSION=0.3
-ARCH=${ARCH:-x86_64}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-4}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
NUMJOBS=${NUMJOBS:-" -j7 "}
@@ -128,8 +137,8 @@ cp -a README.linux $PKG/usr/doc/xgames-$VERSION/xroach
# Build xsnow:
cd $TMP
-tar xvf $CWD/xsnow-1.40.tar.gz || exit 1
-cd xsnow-1.40 || exit 1
+tar xvf $CWD/xsnow-1.42.tar.gz || exit 1
+cd xsnow-1.42 || exit 1
xmkmf
make $NUMJOBS || make || exit 1
cat xsnow > $PKG/usr/bin/xsnow
diff --git a/source/xap/xine-lib/xine-lib-1.1.17.ff.diff b/source/xap/xine-lib/xine-lib-1.1.17.ff.diff
deleted file mode 100644
index c08913eaa..000000000
--- a/source/xap/xine-lib/xine-lib-1.1.17.ff.diff
+++ /dev/null
@@ -1,1044 +0,0 @@
---- ./src/combined/ffmpeg/ff_video_decoder.c.orig 2009-11-30 14:55:46.000000000 -0600
-+++ ./src/combined/ffmpeg/ff_video_decoder.c 2009-04-02 13:44:01.000000000 -0500
-@@ -1,25 +1,25 @@
- /*
- * Copyright (C) 2001-2008 the xine project
-- *
-+ *
- * This file is part of xine, a free video player.
-- *
-+ *
- * xine 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.
-- *
-+ *
- * xine 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
- *
- * xine video decoder plugin using ffmpeg
- */
--
-+
- #ifdef HAVE_CONFIG_H
- #include "config.h"
- #include "../../libffmpeg/ffmpeg_config.h"
-@@ -73,7 +73,7 @@
- int thread_count;
- int8_t skip_loop_filter_enum;
- int8_t choose_speed_over_accuracy;
--
-+
- xine_t *xine;
- } ff_video_class_t;
-
-@@ -107,13 +107,13 @@
- int bufsize;
- int size;
- int skipframes;
--
-+
- int slice_offset_size;
-
- AVFrame *av_frame;
- AVCodecContext *context;
- AVCodec *codec;
--
-+
- int pp_quality;
- int pp_flags;
- pp_context_t *pp_context;
-@@ -126,7 +126,7 @@
- int aspect_ratio_prio;
- int frame_flags;
- int crop_right, crop_bottom;
--
-+
- int output_format;
-
- xine_list_t *dr1_frames;
-@@ -154,7 +154,7 @@
- vo_frame_t *img;
- int width = context->width;
- int height = context->height;
--
-+
- if (!this->bih.biWidth || !this->bih.biHeight) {
- this->bih.biWidth = width;
- this->bih.biHeight = height;
-@@ -166,12 +166,12 @@
- set_stream_info(this);
- }
- }
--
-+
- avcodec_align_dimensions(context, &width, &height);
-
- if( this->context->pix_fmt != PIX_FMT_YUV420P && this->context->pix_fmt != PIX_FMT_YUVJ420P ) {
- if (!this->is_direct_rendering_disabled) {
-- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
-+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
- _("ffmpeg_video_dec: unsupported frame format, DR1 disabled.\n"));
- this->is_direct_rendering_disabled = 1;
- }
-@@ -182,14 +182,14 @@
- av_frame->data[2]= NULL;
- return avcodec_default_get_buffer(context, av_frame);
- }
--
-+
- if((width != this->bih.biWidth) || (height != this->bih.biHeight)) {
- if(this->stream->video_out->get_capabilities(this->stream->video_out) & VO_CAP_CROP) {
- this->crop_right = width - this->bih.biWidth;
- this->crop_bottom = height - this->bih.biHeight;
- } else {
- if (!this->is_direct_rendering_disabled) {
-- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
-+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
- _("ffmpeg_video_dec: unsupported frame dimensions, DR1 disabled.\n"));
- this->is_direct_rendering_disabled = 1;
- }
-@@ -204,7 +204,7 @@
- img = this->stream->video_out->get_frame (this->stream->video_out,
- width,
- height,
-- this->aspect_ratio,
-+ this->aspect_ratio,
- this->output_format,
- VO_BOTH_FIELDS|this->frame_flags);
-
-@@ -246,7 +246,7 @@
- }
-
- xine_list_iterator_t it;
--
-+
- it = xine_list_find(this->dr1_frames, av_frame);
- assert(it);
- if( it != NULL )
-@@ -300,7 +300,7 @@
- }
-
- if (!this->codec) {
-- xprintf (this->stream->xine, XINE_VERBOSITY_LOG,
-+ xprintf (this->stream->xine, XINE_VERBOSITY_LOG,
- _("ffmpeg_video_dec: couldn't find ffmpeg decoder for buf type 0x%X\n"),
- codec_type);
- _x_stream_info_set(this->stream, XINE_STREAM_INFO_VIDEO_HANDLED, 0);
-@@ -309,14 +309,14 @@
-
- lprintf("lavc decoder found\n");
-
-- /* force (width % 8 == 0), otherwise there will be
-- * display problems with Xv.
-- */
-+ /* force (width % 8 == 0), otherwise there will be
-+ * display problems with Xv.
-+ */
- this->bih.biWidth = (this->bih.biWidth + 1) & (~1);
-
- this->context->width = this->bih.biWidth;
- this->context->height = this->bih.biHeight;
-- this->context->stream_codec_tag = this->context->codec_tag =
-+ this->context->stream_codec_tag = this->context->codec_tag =
- _x_stream_info_get(this->stream, XINE_STREAM_INFO_VIDEO_FOURCC);
-
-
-@@ -325,14 +325,14 @@
- if(this->codec->capabilities & CODEC_CAP_DR1 && this->codec->id != CODEC_ID_H264) {
- this->context->flags |= CODEC_FLAG_EMU_EDGE;
- }
--
-+
- if (this->class->choose_speed_over_accuracy)
- this->context->flags2 |= CODEC_FLAG2_FAST;
-
- pthread_mutex_lock(&ffmpeg_lock);
- if (avcodec_open (this->context, this->codec) < 0) {
- pthread_mutex_unlock(&ffmpeg_lock);
-- xprintf (this->stream->xine, XINE_VERBOSITY_LOG,
-+ xprintf (this->stream->xine, XINE_VERBOSITY_LOG,
- _("ffmpeg_video_dec: couldn't open decoder\n"));
- free(this->context);
- this->context = NULL;
-@@ -340,22 +340,6 @@
- return;
- }
-
-- if (this->codec->id == CODEC_ID_VC1 &&
-- (!this->bih.biWidth || !this->bih.biHeight)) {
-- /* VC1 codec must be re-opened with correct width and height. */
-- avcodec_close(this->context);
--
-- if (avcodec_open (this->context, this->codec) < 0) {
-- pthread_mutex_unlock(&ffmpeg_lock);
-- xprintf (this->stream->xine, XINE_VERBOSITY_LOG,
-- _("ffmpeg_video_dec: couldn't open decoder (pass 2)\n"));
-- free(this->context);
-- this->context = NULL;
-- _x_stream_info_set(this->stream, XINE_STREAM_INFO_VIDEO_HANDLED, 0);
-- return;
-- }
-- }
--
- if (this->class->thread_count > 1) {
- avcodec_thread_init(this->context, this->class->thread_count);
- this->context->thread_count = this->class->thread_count;
-@@ -384,14 +368,14 @@
- (this->stream->video_out->open) (this->stream->video_out, this->stream);
-
- this->skipframes = 0;
--
-+
- /* enable direct rendering by default */
- this->output_format = XINE_IMGFMT_YV12;
- #ifdef ENABLE_DIRECT_RENDERING
- if( this->codec->capabilities & CODEC_CAP_DR1 && this->codec->id != CODEC_ID_H264 ) {
- this->context->get_buffer = get_buffer;
- this->context->release_buffer = release_buffer;
-- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
-+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
- _("ffmpeg_video_dec: direct rendering enabled\n"));
- }
- #endif
-@@ -422,25 +406,25 @@
-
- static void choose_speed_over_accuracy_cb(void *user_data, xine_cfg_entry_t *entry) {
- ff_video_class_t *class = (ff_video_class_t *) user_data;
--
-+
- class->choose_speed_over_accuracy = entry->num_value;
- }
-
- static void skip_loop_filter_enum_cb(void *user_data, xine_cfg_entry_t *entry) {
- ff_video_class_t *class = (ff_video_class_t *) user_data;
--
-+
- class->skip_loop_filter_enum = entry->num_value;
- }
-
- static void thread_count_cb(void *user_data, xine_cfg_entry_t *entry) {
- ff_video_class_t *class = (ff_video_class_t *) user_data;
--
-+
- class->thread_count = entry->num_value;
- }
-
- static void pp_quality_cb(void *user_data, xine_cfg_entry_t *entry) {
- ff_video_class_t *class = (ff_video_class_t *) user_data;
--
-+
- class->pp_quality = entry->num_value;
- }
-
-@@ -453,15 +437,15 @@
- this->pp_flags);
- if(this->pp_mode)
- pp_free_mode(this->pp_mode);
--
-- this->pp_mode = pp_get_mode_by_name_and_quality("hb:a,vb:a,dr:a",
-+
-+ this->pp_mode = pp_get_mode_by_name_and_quality("hb:a,vb:a,dr:a",
- this->pp_quality);
- } else {
- if(this->pp_mode) {
- pp_free_mode(this->pp_mode);
- this->pp_mode = NULL;
- }
--
-+
- if(this->pp_context) {
- pp_free_context(this->pp_context);
- this->pp_context = NULL;
-@@ -486,22 +470,22 @@
- this->pp_available = 0;
- break;
- }
--
-+
- /* Detect what cpu accel we have */
- cpu_caps = xine_mm_accel();
- this->pp_flags = PP_FORMAT_420;
--
-+
- if(cpu_caps & MM_ACCEL_X86_MMX)
- this->pp_flags |= PP_CPU_CAPS_MMX;
--
-+
- if(cpu_caps & MM_ACCEL_X86_MMXEXT)
- this->pp_flags |= PP_CPU_CAPS_MMX2;
--
-- if(cpu_caps & MM_ACCEL_X86_3DNOW)
-+
-+ if(cpu_caps & MM_ACCEL_X86_3DNOW)
- this->pp_flags |= PP_CPU_CAPS_3DNOW;
--
-+
- /* Set level */
-- pp_change_quality(this);
-+ pp_change_quality(this);
- }
-
- static int ff_handle_mpeg_sequence(ff_video_decoder_t *this, mpeg_parser_t *parser) {
-@@ -510,13 +494,13 @@
- * init codec
- */
- if (this->decoder_init_mode) {
-- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC,
-+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC,
- "mpeg-1 (ffmpeg)");
-
- init_video_codec (this, BUF_VIDEO_MPEG);
- this->decoder_init_mode = 0;
- }
--
-+
- /* frame format change */
- if ((parser->width != this->bih.biWidth) ||
- (parser->height != this->bih.biHeight) ||
-@@ -542,7 +526,7 @@
- xine_event_send(this->stream, &event);
- }
- this->video_step = this->mpeg_parser->frame_duration;
--
-+
- return 1;
- }
-
-@@ -611,7 +595,7 @@
- this->bih.biHeight);
-
- } else if (this->context->pix_fmt == PIX_FMT_RGB32) {
--
-+
- int x, plane_ptr = 0;
- uint32_t *argb_pixels;
- uint32_t argb;
-@@ -620,7 +604,7 @@
- argb_pixels = (uint32_t *)sy;
- for(x = 0; x < img->width; x++) {
- uint8_t r, g, b;
--
-+
- /* this is endian-safe as the ARGB pixels are stored in
- * machine order */
- argb = *argb_pixels++;
-@@ -635,9 +619,9 @@
- }
- sy += this->av_frame->linesize[0];
- }
--
-+
- yuv444_to_yuy2(&this->yuv, img->base[0], img->pitches[0]);
--
-+
- } else if (this->context->pix_fmt == PIX_FMT_RGB565) {
-
- int x, plane_ptr = 0;
-@@ -648,7 +632,7 @@
- src = sy;
- for(x = 0; x < img->width; x++) {
- uint8_t r, g, b;
--
-+
- /* a 16-bit RGB565 pixel is supposed to be stored in native-endian
- * byte order; the following should be endian-safe */
- pixel16 = *((uint16_t *)src);
-@@ -664,20 +648,20 @@
- }
- sy += this->av_frame->linesize[0];
- }
--
-+
- yuv444_to_yuy2(&this->yuv, img->base[0], img->pitches[0]);
--
-+
- } else if (this->context->pix_fmt == PIX_FMT_RGB555) {
--
-+
- int x, plane_ptr = 0;
- uint8_t *src;
- uint16_t pixel16;
--
-+
- for(y = 0; y < this->bih.biHeight; y++) {
- src = sy;
- for(x = 0; x < img->width; x++) {
- uint8_t r, g, b;
--
-+
- /* a 16-bit RGB555 pixel is supposed to be stored in native-endian
- * byte order; the following should be endian-safe */
- pixel16 = *((uint16_t *)src);
-@@ -693,9 +677,9 @@
- }
- sy += this->av_frame->linesize[0];
- }
--
-+
- yuv444_to_yuy2(&this->yuv, img->base[0], img->pitches[0]);
--
-+
- } else if (this->context->pix_fmt == PIX_FMT_BGR24) {
-
- int x, plane_ptr = 0;
-@@ -705,7 +689,7 @@
- src = sy;
- for(x = 0; x < img->width; x++) {
- uint8_t r, g, b;
--
-+
- b = *src++;
- g = *src++;
- r = *src++;
-@@ -717,9 +701,9 @@
- }
- sy += this->av_frame->linesize[0];
- }
--
-+
- yuv444_to_yuy2(&this->yuv, img->base[0], img->pitches[0]);
--
-+
- } else if (this->context->pix_fmt == PIX_FMT_RGB24) {
-
- int x, plane_ptr = 0;
-@@ -729,7 +713,7 @@
- src = sy;
- for(x = 0; x < img->width; x++) {
- uint8_t r, g, b;
--
-+
- r = *src++;
- g = *src++;
- b = *src++;
-@@ -741,11 +725,11 @@
- }
- sy += this->av_frame->linesize[0];
- }
--
-+
- yuv444_to_yuy2(&this->yuv, img->base[0], img->pitches[0]);
--
-+
- } else if (this->context->pix_fmt == PIX_FMT_PAL8) {
--
-+
- int x, plane_ptr = 0;
- uint8_t *src;
- uint8_t pixel;
-@@ -780,34 +764,34 @@
- }
- sy += this->av_frame->linesize[0];
- }
--
-+
- yuv444_to_yuy2(&this->yuv, img->base[0], img->pitches[0]);
--
-+
- } else {
--
-+
- for (y = 0; y < this->bih.biHeight; y++) {
- xine_fast_memcpy (dy, sy, img->width);
--
-+
- dy += img->pitches[0];
--
-+
- sy += this->av_frame->linesize[0];
- }
-
- for (y = 0; y < this->bih.biHeight / 2; y++) {
--
-+
- if (this->context->pix_fmt != PIX_FMT_YUV444P) {
--
-+
- xine_fast_memcpy (du, su, img->width/2);
- xine_fast_memcpy (dv, sv, img->width/2);
--
-+
- } else {
--
-+
- int x;
- uint8_t *src;
- uint8_t *dst;
--
-+
- /* subsample */
--
-+
- src = su; dst = du;
- for (x=0; x<(img->width/2); x++) {
- *dst = *src;
-@@ -822,7 +806,7 @@
- }
-
- }
--
-+
- du += img->pitches[1];
- dv += img->pitches[2];
-
-@@ -840,8 +824,8 @@
- static void ff_check_bufsize (ff_video_decoder_t *this, int size) {
- if (size > this->bufsize) {
- this->bufsize = size + size / 2;
-- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
-- _("ffmpeg_video_dec: increasing buffer to %d to avoid overflow.\n"),
-+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
-+ _("ffmpeg_video_dec: increasing buffer to %d to avoid overflow.\n"),
- this->bufsize);
- this->buf = realloc(this->buf, this->bufsize + FF_INPUT_BUFFER_PADDING_SIZE );
- }
-@@ -887,28 +871,28 @@
- if (buf->decoder_flags & BUF_FLAG_STDHEADER) {
-
- lprintf("standard header\n");
--
-+
- /* init package containing bih */
- memcpy ( &this->bih, this->buf, sizeof(xine_bmiheader) );
-
- if (this->bih.biSize > sizeof(xine_bmiheader)) {
- this->context->extradata_size = this->bih.biSize - sizeof(xine_bmiheader);
-- this->context->extradata = malloc(this->context->extradata_size +
-+ this->context->extradata = malloc(this->context->extradata_size +
- FF_INPUT_BUFFER_PADDING_SIZE);
- memcpy(this->context->extradata, this->buf + sizeof(xine_bmiheader),
- this->context->extradata_size);
- }
--
-+
- this->context->bits_per_sample = this->bih.biBitCount;
--
-+
- } else {
--
-+
- switch (codec_type) {
- case BUF_VIDEO_RV10:
- case BUF_VIDEO_RV20:
- this->bih.biWidth = _X_BE_16(&this->buf[12]);
- this->bih.biHeight = _X_BE_16(&this->buf[14]);
--
-+
- this->context->sub_id = _X_BE_32(&this->buf[30]);
-
- this->context->slice_offset = calloc(SLICE_OFFSET_SIZE, sizeof(int));
-@@ -950,7 +934,7 @@
- }
-
- static void ff_handle_special_buffer (ff_video_decoder_t *this, buf_element_t *buf) {
-- /* take care of all the various types of special buffers
-+ /* take care of all the various types of special buffers
- * note that order is important here */
- lprintf("special buffer\n");
-
-@@ -959,34 +943,34 @@
-
- lprintf("BUF_SPECIAL_STSD_ATOM\n");
- this->context->extradata_size = buf->decoder_info[2];
-- this->context->extradata = malloc(buf->decoder_info[2] +
-+ this->context->extradata = malloc(buf->decoder_info[2] +
- FF_INPUT_BUFFER_PADDING_SIZE);
- memcpy(this->context->extradata, buf->decoder_info_ptr[2],
- buf->decoder_info[2]);
-
- } else if (buf->decoder_info[1] == BUF_SPECIAL_DECODER_CONFIG &&
- !this->context->extradata_size) {
--
-+
- lprintf("BUF_SPECIAL_DECODER_CONFIG\n");
- this->context->extradata_size = buf->decoder_info[2];
- this->context->extradata = malloc(buf->decoder_info[2] +
- FF_INPUT_BUFFER_PADDING_SIZE);
- memcpy(this->context->extradata, buf->decoder_info_ptr[2],
- buf->decoder_info[2]);
--
-+
- } else if (buf->decoder_info[1] == BUF_SPECIAL_PALETTE) {
- unsigned int i;
-
- palette_entry_t *demuxer_palette;
- AVPaletteControl *decoder_palette;
--
-+
- lprintf("BUF_SPECIAL_PALETTE\n");
- this->context->palctrl = &this->palette_control;
- decoder_palette = (AVPaletteControl *)this->context->palctrl;
- demuxer_palette = (palette_entry_t *)buf->decoder_info_ptr[2];
-
- for (i = 0; i < buf->decoder_info[2]; i++) {
-- decoder_palette->palette[i] =
-+ decoder_palette->palette[i] =
- (demuxer_palette[i].r << 16) |
- (demuxer_palette[i].g << 8) |
- (demuxer_palette[i].b << 0);
-@@ -995,20 +979,20 @@
-
- } else if (buf->decoder_info[1] == BUF_SPECIAL_RV_CHUNK_TABLE) {
- int i;
--
-+
- lprintf("BUF_SPECIAL_RV_CHUNK_TABLE\n");
- this->context->slice_count = buf->decoder_info[2]+1;
-
- lprintf("slice_count=%d\n", this->context->slice_count);
--
-+
- if(this->context->slice_count > this->slice_offset_size) {
- this->context->slice_offset = realloc(this->context->slice_offset,
- sizeof(int)*this->context->slice_count);
- this->slice_offset_size = this->context->slice_count;
- }
--
-+
- for(i = 0; i < this->context->slice_count; i++) {
-- this->context->slice_offset[i] =
-+ this->context->slice_offset[i] =
- ((uint32_t *) buf->decoder_info_ptr[2])[(2*i)+1];
- lprintf("slice_offset[%d]=%d\n", i, this->context->slice_offset[i]);
- }
-@@ -1051,7 +1035,7 @@
-
- if (!this->decoder_ok)
- return;
--
-+
- if (flush) {
- lprintf("flush lavc buffers\n");
- /* hack: ffmpeg outputs the last frame if size=0 */
-@@ -1069,11 +1053,11 @@
- len, got_picture);
- len = current - buf->content - offset;
- lprintf("avcodec_decode_video: consumed_size=%d\n", len);
--
-+
- flush = next_flush;
-
- if ((len < 0) || (len > buf->size)) {
-- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
-+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
- "ffmpeg_video_dec: error decompressing frame\n");
- size = 0; /* draw a bad frame and exit */
- } else {
-@@ -1088,7 +1072,7 @@
- img = this->stream->video_out->get_frame (this->stream->video_out,
- this->bih.biWidth,
- this->bih.biHeight,
-- this->aspect_ratio,
-+ this->aspect_ratio,
- this->output_format,
- VO_BOTH_FIELDS|this->frame_flags);
- free_img = 1;
-@@ -1108,7 +1092,7 @@
-
- img->crop_right = this->crop_right;
- img->crop_bottom = this->crop_bottom;
--
-+
- this->skipframes = img->draw(img, this->stream);
-
- if(free_img)
-@@ -1121,7 +1105,7 @@
- img = this->stream->video_out->get_frame (this->stream->video_out,
- this->bih.biWidth,
- this->bih.biHeight,
-- this->aspect_ratio,
-+ this->aspect_ratio,
- this->output_format,
- VO_BOTH_FIELDS|this->frame_flags);
- img->pts = 0;
-@@ -1181,49 +1165,6 @@
- }
- }
-
--static int ff_vc1_find_header(ff_video_decoder_t *this, buf_element_t *buf)
--{
-- uint8_t *p = buf->content;
--
-- if (!p[0] && !p[1] && p[2] == 1 && p[3] == 0x0f) {
-- int i;
--
-- this->context->extradata = calloc(1, buf->size);
-- this->context->extradata_size = 0;
--
-- for (i = 0; i < buf->size && i < 128; i++) {
-- if (!p[i] && !p[i+1] && p[i+2]) {
-- lprintf("00 00 01 %02x at %d\n", p[i+3], i);
-- if (p[i+3] != 0x0e && p[i+3] != 0x0f)
-- break;
-- }
-- this->context->extradata[i] = p[i];
-- this->context->extradata_size++;
-- }
--
-- lprintf("ff_video_decoder: found VC1 sequence header\n");
-- return 1;
-- }
--
-- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
-- "ffmpeg_video_dec: VC1 extradata missing !\n");
-- return 0;
--}
--
--static int ff_check_extradata(ff_video_decoder_t *this, unsigned int codec_type, buf_element_t *buf)
--{
-- if (this->context && this->context->extradata)
-- return 1;
--
-- switch (codec_type) {
-- case BUF_VIDEO_VC1:
-- return ff_vc1_find_header(this, buf);
-- default:;
-- }
--
-- return 1;
--}
--
- #endif /* AVCODEC_HAS_REORDERED_OPAQUE */
- static void ff_handle_buffer (ff_video_decoder_t *this, buf_element_t *buf) {
- uint8_t *chunk_buf = this->buf;
-@@ -1235,9 +1176,6 @@
- if (this->decoder_init_mode) {
- int codec_type = buf->type & 0xFFFF0000;
-
-- if (!ff_check_extradata(this, codec_type, buf))
-- return;
--
- /* init ffmpeg decoder */
- init_video_codec(this, codec_type);
- init_postprocess(this);
-@@ -1256,8 +1194,7 @@
- if (this->size == 0) {
- /* take over pts when we are about to buffer a frame */
- this->av_frame->reordered_opaque = ff_tag_pts(this, this->pts);
-- if (this->context) /* shouldn't be NULL */
-- this->context->reordered_opaque = ff_tag_pts(this, this->pts);
-+ this->context->reordered_opaque = ff_tag_pts(this, this->pts);
- this->pts = 0;
- }
- #endif /* AVCODEC_HAS_REORDERED_OPAQUE */
-@@ -1265,7 +1202,7 @@
- /* data accumulation */
- if (buf->size > 0) {
- if ((this->size == 0) &&
-- ((buf->size + FF_INPUT_BUFFER_PADDING_SIZE) < buf->max_size) &&
-+ ((buf->size + FF_INPUT_BUFFER_PADDING_SIZE) < buf->max_size) &&
- (buf->decoder_flags & BUF_FLAG_FRAME_END)) {
- /* buf contains a complete frame */
- /* no memcpy needed */
-@@ -1278,7 +1215,7 @@
- chunk_buf = this->buf; /* ff_check_bufsize might realloc this->buf */
-
- xine_fast_memcpy (&this->buf[this->size], buf->content, buf->size);
--
-+
- this->size += buf->size;
- lprintf("accumulate data into this->buf\n");
- }
-@@ -1301,7 +1238,7 @@
- memset(&chunk_buf[this->size], 0, FF_INPUT_BUFFER_PADDING_SIZE);
-
- while (this->size > 0) {
--
-+
- /* DV frames can be completely skipped */
- if( codec_type == BUF_VIDEO_DV && this->skipframes ) {
- this->size = 0;
-@@ -1322,7 +1259,7 @@
-
- lprintf("consumed size: %d, got_picture: %d\n", len, got_picture);
- if ((len <= 0) || (len > this->size)) {
-- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
-+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
- "ffmpeg_video_dec: error decompressing frame\n");
- this->size = 0;
-
-@@ -1366,7 +1303,7 @@
- this->bih.biHeight = this->context->height;
- }
-
-- this->aspect_ratio = av_q2d(this->context->sample_aspect_ratio) *
-+ this->aspect_ratio = av_q2d(this->context->sample_aspect_ratio) *
- (double)this->bih.biWidth / (double)this->bih.biHeight;
- this->aspect_ratio_prio = 2;
- lprintf("ffmpeg aspect ratio: %f\n", this->aspect_ratio);
-@@ -1405,7 +1342,7 @@
- img = this->stream->video_out->get_frame (this->stream->video_out,
- (this->bih.biWidth + 15) & ~15,
- (this->bih.biHeight + 15) & ~15,
-- this->aspect_ratio,
-+ this->aspect_ratio,
- this->output_format,
- VO_BOTH_FIELDS|this->frame_flags);
- free_img = 1;
-@@ -1426,17 +1363,17 @@
- img = this->stream->video_out->get_frame (this->stream->video_out,
- (img->width + 15) & ~15,
- (img->height + 15) & ~15,
-- this->aspect_ratio,
-+ this->aspect_ratio,
- this->output_format,
- VO_BOTH_FIELDS|this->frame_flags);
- free_img = 1;
- }
-
-- pp_postprocess(this->av_frame->data, this->av_frame->linesize,
-- img->base, img->pitches,
-+ pp_postprocess(this->av_frame->data, this->av_frame->linesize,
-+ img->base, img->pitches,
- img->width, img->height,
- this->av_frame->qscale_table, this->av_frame->qstride,
-- this->pp_mode, this->pp_context,
-+ this->pp_mode, this->pp_context,
- this->av_frame->pict_type);
-
- } else if (!this->av_frame->opaque) {
-@@ -1476,7 +1413,7 @@
- img->top_field_first = this->av_frame->top_field_first;
-
- this->skipframes = img->draw(img, this->stream);
--
-+
- if(free_img)
- img->free(img);
- }
-@@ -1490,7 +1427,7 @@
- img = this->stream->video_out->get_frame (this->stream->video_out,
- (this->bih.biWidth <= 0) ? 16 : ((this->bih.biWidth + 15) & ~15),
- (this->bih.biHeight <= 0) ? 16 : ((this->bih.biHeight + 15) & ~15),
-- this->aspect_ratio,
-+ this->aspect_ratio,
- this->output_format,
- VO_BOTH_FIELDS|this->frame_flags);
- /* set PTS to allow early syncing */
-@@ -1520,7 +1457,7 @@
- static void ff_decode_data (video_decoder_t *this_gen, buf_element_t *buf) {
- ff_video_decoder_t *this = (ff_video_decoder_t *) this_gen;
-
-- lprintf ("processing packet type = %08x, len = %d, decoder_flags=%08x\n",
-+ lprintf ("processing packet type = %08x, len = %d, decoder_flags=%08x\n",
- buf->type, buf->size, buf->decoder_flags);
-
- if (buf->decoder_flags & BUF_FLAG_FRAMERATE) {
-@@ -1529,7 +1466,7 @@
- }
-
- if (buf->decoder_flags & BUF_FLAG_PREVIEW) {
--
-+
- ff_handle_preview_buffer(this, buf);
-
- } else {
-@@ -1537,7 +1474,7 @@
- if (buf->decoder_flags & BUF_FLAG_SPECIAL) {
-
- ff_handle_special_buffer(this, buf);
--
-+
- }
-
- if (buf->decoder_flags & BUF_FLAG_HEADER) {
-@@ -1551,7 +1488,7 @@
- lprintf("aspect ratio: %f\n", this->aspect_ratio);
- set_stream_info(this);
- }
-- }
-+ }
-
- } else {
-
-@@ -1582,7 +1519,7 @@
-
- if(this->context && this->decoder_ok)
- avcodec_flush_buffers(this->context);
--
-+
- if (this->is_mpeg12)
- mpeg_parser_reset(this->mpeg_parser);
-
-@@ -1596,14 +1533,14 @@
-
- static void ff_discontinuity (video_decoder_t *this_gen) {
- ff_video_decoder_t *this = (ff_video_decoder_t *) this_gen;
--
-+
- lprintf ("ff_discontinuity\n");
- this->pts = 0;
-
- #ifdef AVCODEC_HAS_REORDERED_OPAQUE
- /*
- * there is currently no way to reset all the pts which are stored in the decoder.
-- * therefore, we add a unique tag (generated from pts_tag_counter) to pts (see
-+ * therefore, we add a unique tag (generated from pts_tag_counter) to pts (see
- * ff_tag_pts()) and wait for it to appear on returned frames.
- * until then, any retrieved pts value will be reset to 0 (see ff_untag_pts()).
- * when we see the tag returned, pts_tag will be reset to 0. from now on, any
-@@ -1640,15 +1577,15 @@
- ff_video_decoder_t *this = (ff_video_decoder_t *) this_gen;
-
- lprintf ("ff_dispose\n");
--
-+
- if (this->decoder_ok) {
- xine_list_iterator_t it;
- AVFrame *av_frame;
--
-+
- pthread_mutex_lock(&ffmpeg_lock);
- avcodec_close (this->context);
- pthread_mutex_unlock(&ffmpeg_lock);
--
-+
- /* frame garbage collector here - workaround for buggy ffmpeg codecs that
- * don't release their DR1 frames */
- while( (it = xine_list_front(this->dr1_frames)) != NULL )
-@@ -1656,7 +1593,7 @@
- av_frame = (AVFrame *)xine_list_get_value(this->dr1_frames, it);
- release_buffer(this->context, av_frame);
- }
--
-+
- this->stream->video_out->close(this->stream->video_out, this->stream);
- this->decoder_ok = 0;
- }
-@@ -1669,27 +1606,27 @@
-
- if(this->yuv_init)
- free_yuv_planes(&this->yuv);
--
-+
- if( this->context )
- av_free( this->context );
-
- if( this->av_frame )
- av_free( this->av_frame );
--
-+
- if (this->buf)
- free(this->buf);
- this->buf = NULL;
--
-+
- if(this->pp_context)
- pp_free_context(this->pp_context);
--
-+
- if(this->pp_mode)
- pp_free_mode(this->pp_mode);
-
- mpeg_parser_dispose(this->mpeg_parser);
--
-+
- xine_list_delete(this->dr1_frames);
--
-+
- free (this_gen);
- }
-
-@@ -1715,7 +1652,7 @@
- this->context = avcodec_alloc_context();
- this->context->opaque = this;
- this->context->palctrl = NULL;
--
-+
- this->decoder_ok = 0;
- this->decoder_init_mode = 1;
- this->buf = calloc(1, VIDEOBUFSIZE + FF_INPUT_BUFFER_PADDING_SIZE);
-@@ -1727,9 +1664,9 @@
- this->pp_quality = 0;
- this->pp_context = NULL;
- this->pp_mode = NULL;
--
-+
- this->mpeg_parser = NULL;
--
-+
- this->dr1_frames = xine_list_new();
-
- #ifdef LOG
-@@ -1755,7 +1692,7 @@
-
- ff_video_class_t *this;
- config_values_t *config;
--
-+
- this = calloc(1, sizeof (ff_video_class_t));
-
- this->decoder_class.open_plugin = ff_video_open_plugin;
-@@ -1765,12 +1702,12 @@
- this->xine = xine;
-
- pthread_once( &once_control, init_once_routine );
--
-+
- /* Configuration for post processing quality - default to mid (3) for the
- * moment */
- config = xine->config;
--
-- this->pp_quality = xine->config->register_range(config, "video.processing.ffmpeg_pp_quality", 3,
-+
-+ this->pp_quality = xine->config->register_range(config, "video.processing.ffmpeg_pp_quality", 3,
- 0, PP_QUALITY_MAX,
- _("MPEG-4 postprocessing quality"),
- _("You can adjust the amount of post processing applied to MPEG-4 video.\n"
-@@ -1779,8 +1716,8 @@
- "too heavy post processing can actually make the image worse by blurring it "
- "too much."),
- 10, pp_quality_cb, this);
--
-- this->thread_count = xine->config->register_num(config, "video.processing.ffmpeg_thread_count", 1,
-+
-+ this->thread_count = xine->config->register_num(config, "video.processing.ffmpeg_thread_count", 1,
- _("FFmpeg video decoding thread count"),
- _("You can adjust the number of video decoding threads which FFmpeg may use.\n"
- "Higher values should speed up decoding but it depends on the codec used "
-@@ -1789,7 +1726,7 @@
- "A change of this setting will take effect with playing the next stream."),
- 10, thread_count_cb, this);
-
-- this->skip_loop_filter_enum = xine->config->register_enum(config, "video.processing.ffmpeg_skip_loop_filter", 0,
-+ this->skip_loop_filter_enum = xine->config->register_enum(config, "video.processing.ffmpeg_skip_loop_filter", 0,
- (char **)skip_loop_filter_enum_names,
- _("Skip loop filter"),
- _("You can control for which frames the loop filter shall be skipped after "
-@@ -1800,7 +1737,7 @@
- "A change of this setting will take effect with playing the next stream."),
- 10, skip_loop_filter_enum_cb, this);
-
-- this->choose_speed_over_accuracy = xine->config->register_bool(config, "video.processing.ffmpeg_choose_speed_over_accuracy", 0,
-+ this->choose_speed_over_accuracy = xine->config->register_bool(config, "video.processing.ffmpeg_choose_speed_over_accuracy", 0,
- _("Choose speed over specification compliance"),
- _("You may want to allow speed cheats which violate codec specification.\n"
- "Cheating may speed up decoding but can also lead to decoding artefacts.\n"
-@@ -1810,14 +1747,14 @@
- return this;
- }
-
--static uint32_t wmv8_video_types[] = {
-+static uint32_t wmv8_video_types[] = {
- BUF_VIDEO_WMV8,
-- 0
-+ 0
- };
-
--static uint32_t wmv9_video_types[] = {
-+static uint32_t wmv9_video_types[] = {
- BUF_VIDEO_WMV9,
-- 0
-+ 0
- };
-
- decoder_info_t dec_info_ffmpeg_video = {
diff --git a/source/xap/xine-lib/xine-lib.SlackBuild b/source/xap/xine-lib/xine-lib.SlackBuild
index 50bc2edee..c11275936 100755
--- a/source/xap/xine-lib/xine-lib.SlackBuild
+++ b/source/xap/xine-lib/xine-lib.SlackBuild
@@ -22,11 +22,11 @@
# Version on the tarball
-VERSION=1.1.17
+VERSION=1.1.19
# Version used in the source directory to cd into
-DIRVER=1.1.17
+DIRVER=1.1.19
# Version used for the Slackware package
-PKGVER=1.1.17
+PKGVER=1.1.19
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -59,12 +59,10 @@ mkdir -p $TMP $PKG/usr
cd $TMP
rm -rf xine-lib-$VERSION
-tar xvf $CWD/xine-lib-$VERSION.tar.bz2 || exit 1
+tar xvf $CWD/xine-lib-$VERSION.tar.xz || exit 1
cd xine-lib-$DIRVER || exit 1
-# revert to xine-lib-1.1.16.3 ffmpeg video decoder...
-# the new one doesn't compile:
-zcat $CWD/xine-lib-1.1.17.ff.diff.gz | patch -p1 --verbose || exit 1
+zcat $CWD/xine-lib.XvMClib.h.diff.gz | patch -p1 --verbose || exit 1
chown -R root:root .
find . \
diff --git a/source/xap/xine-lib/xine-lib.XvMClib.h.diff b/source/xap/xine-lib/xine-lib.XvMClib.h.diff
new file mode 100644
index 000000000..663e7a769
--- /dev/null
+++ b/source/xap/xine-lib/xine-lib.XvMClib.h.diff
@@ -0,0 +1,22 @@
+diff -u -r --new-file xine-lib-1.1.19.orig/src/video_out/video_out_xxmc.c xine-lib-1.1.19/src/video_out/video_out_xxmc.c
+--- xine-lib-1.1.19.orig/src/video_out/video_out_xxmc.c 2010-04-08 09:52:43.000000000 -0500
++++ xine-lib-1.1.19/src/video_out/video_out_xxmc.c 2010-11-06 16:01:34.278017097 -0500
+@@ -35,6 +35,7 @@
+
+
+ #include "xxmc.h"
++#include <X11/extensions/XvMClib.h>
+ #include <unistd.h>
+ #include "xv_common.h"
+
+diff -u -r --new-file xine-lib-1.1.19.orig/src/video_out/xvmc_mocomp.c xine-lib-1.1.19/src/video_out/xvmc_mocomp.c
+--- xine-lib-1.1.19.orig/src/video_out/xvmc_mocomp.c 2010-03-09 16:17:05.000000000 -0600
++++ xine-lib-1.1.19/src/video_out/xvmc_mocomp.c 2010-11-06 16:01:34.272017924 -0500
+@@ -21,6 +21,7 @@
+ */
+
+ #include "xxmc.h"
++#include <X11/extensions/XvMClib.h>
+
+
+ static void calc_DMV(int DMV[][2], int *dmvector,
diff --git a/source/xap/xlockmore/xlockmore.SlackBuild b/source/xap/xlockmore/xlockmore.SlackBuild
index f25bf14e1..09ce261f2 100755
--- a/source/xap/xlockmore/xlockmore.SlackBuild
+++ b/source/xap/xlockmore/xlockmore.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2011 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,19 +21,36 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=5.28
-ARCH=${ARCH:-x86_64}
-NUMJOBS=${NUMJOBS:-" -j7 "}
+PKGNAM=xlockmore
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.bz2 | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC -lcrypt"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
fi
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-xlockmore
@@ -74,14 +91,13 @@ CXXFLAGS="$SLKCFLAGS" \
--prefix=/usr \
--without-dtsaver \
--without-ttf \
- --without-gtk \
--without-rplay \
--without-nas \
--disable-bomb \
--without-motif \
--without-esound \
--without-gtk \
- $ARCH-slackware-linux
+ --build=$ARCH-slackware-linux
make $NUMJOBS || make || exit 1
cd xlock
diff --git a/source/xap/xpdf/patches/xpdf-3.02pl5.patch b/source/xap/xpdf/patches/xpdf-3.02pl5.patch
new file mode 100644
index 000000000..558eac554
--- /dev/null
+++ b/source/xap/xpdf/patches/xpdf-3.02pl5.patch
@@ -0,0 +1,41 @@
+*** xpdf-3.02.orig/xpdf/Gfx.cc Tue Feb 27 14:05:52 2007
+--- xpdf-3.02/xpdf/Gfx.cc Mon Oct 11 15:39:52 2010
+***************
+*** 461,466 ****
+--- 461,467 ----
+ baseMatrix[i] = state->getCTM()[i];
+ }
+ formDepth = 0;
++ parser = NULL;
+ abortCheckCbk = abortCheckCbkA;
+ abortCheckCbkData = abortCheckCbkDataA;
+
+***************
+*** 500,505 ****
+--- 501,507 ----
+ baseMatrix[i] = state->getCTM()[i];
+ }
+ formDepth = 0;
++ parser = NULL;
+ abortCheckCbk = abortCheckCbkA;
+ abortCheckCbkData = abortCheckCbkDataA;
+
+*** xpdf-3.02.orig/fofi/FoFiType1.cc Tue Feb 27 14:05:51 2007
+--- xpdf-3.02/fofi/FoFiType1.cc Mon Oct 11 15:44:13 2010
+***************
+*** 224,230 ****
+ code = code * 8 + (*p2 - '0');
+ }
+ }
+! if (code < 256) {
+ for (p = p2; *p == ' ' || *p == '\t'; ++p) ;
+ if (*p == '/') {
+ ++p;
+--- 224,230 ----
+ code = code * 8 + (*p2 - '0');
+ }
+ }
+! if (code >= 0 && code < 256) {
+ for (p = p2; *p == ' ' || *p == '\t'; ++p) ;
+ if (*p == '/') {
+ ++p;
diff --git a/source/xap/xpdf/patches/xpdf-3.02pl6.patch b/source/xap/xpdf/patches/xpdf-3.02pl6.patch
new file mode 100644
index 000000000..b36491020
--- /dev/null
+++ b/source/xap/xpdf/patches/xpdf-3.02pl6.patch
@@ -0,0 +1 @@
+# There is not a patch 6... just a recompile without t1lib
diff --git a/source/xap/xpdf/slack-desc b/source/xap/xpdf/slack-desc
index 164302aa7..58072776f 100644
--- a/source/xap/xpdf/slack-desc
+++ b/source/xap/xpdf/slack-desc
@@ -12,7 +12,7 @@ xpdf: Xpdf is a viewer for Portable Document Format (PDF) files.
xpdf:
xpdf: xpdf was written by Derek B. Noonburg.
xpdf:
-xpdf: The xpdf package requires the t1lib package to render Type 1 fonts.
+xpdf:
xpdf:
xpdf:
xpdf:
diff --git a/source/xap/xpdf/xpdf.SlackBuild b/source/xap/xpdf/xpdf.SlackBuild
index 5acf7c06e..b19b3aca7 100755
--- a/source/xap/xpdf/xpdf.SlackBuild
+++ b/source/xap/xpdf/xpdf.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,8 +22,8 @@
VERSION=3.02
-PATCHLEVEL=pl4
-BUILD=${BUILD:-2}
+PATCHLEVEL=pl6
+BUILD=${BUILD:-3}
NUMJOBS=${NUMJOBS:-" -j7 "}
@@ -75,6 +75,7 @@ cat $CWD/patches/xpdf-3.02pl1.patch | patch -p1 --verbose || exit 1
cat $CWD/patches/xpdf-3.02pl2.patch | patch -p1 --verbose || exit 1
cat $CWD/patches/xpdf-3.02pl3.patch | patch -p1 --verbose || exit 1
cat $CWD/patches/xpdf-3.02pl4.patch | patch -p1 --verbose || exit 1
+cat $CWD/patches/xpdf-3.02pl5.patch | patch -p1 --verbose || exit 1
zcat $CWD/patches/xpdf_3.02-1.3.diff.gz | patch -p1 --verbose || exit 1
zcat $CWD/patches/xpdfrc.diff.gz | patch -p1 --verbose || exit 1
@@ -87,6 +88,7 @@ CXXFLAGS="$SLKCFLAGS" \
--sysconfdir=/etc \
--with-gzip \
--with-freetype2-includes=/usr/include/freetype2 \
+ --without-t1-library \
--build=$ARCH-slackware-linux
make $NUMJOBS || make || exit 1
diff --git a/source/xap/xsane/xsane.SlackBuild b/source/xap/xsane/xsane.SlackBuild
index 444700c51..1b7117158 100755
--- a/source/xap/xsane/xsane.SlackBuild
+++ b/source/xap/xsane/xsane.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2011 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,8 +21,8 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=0.996
-BUILD=${BUILD:-2}
+VERSION=0.998
+BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -54,7 +54,7 @@ rm -rf $PKG
mkdir -p $TMP $PKG
cd $TMP
rm -rf xsane-$VERSION
-tar xvf $CWD/xsane-$VERSION.tar.bz2 || exit 1
+tar xvf $CWD/xsane-$VERSION.tar.?z* || exit 1
cd xsane-$VERSION || exit 1
chown -R root:root .
find . \
diff --git a/source/xap/xscreensaver/xscreensaver.SlackBuild b/source/xap/xscreensaver/xscreensaver.SlackBuild
index 6d01ced00..57943911c 100755
--- a/source/xap/xscreensaver/xscreensaver.SlackBuild
+++ b/source/xap/xscreensaver/xscreensaver.SlackBuild
@@ -77,7 +77,6 @@ find . \
-exec chmod 644 {} \;
xml_config=/usr/bin/xml-config xml2_config=/usr/bin/xml2-config \
-
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
diff --git a/source/xap/xxgdb/xxgdb-1.08-glibc.patch b/source/xap/xxgdb/xxgdb-1.08-glibc.patch
new file mode 100644
index 000000000..6ec7032cd
--- /dev/null
+++ b/source/xap/xxgdb/xxgdb-1.08-glibc.patch
@@ -0,0 +1,10 @@
+--- xxgdb/calldbx.c.ewt Thu Aug 29 15:39:07 1996
++++ xxgdb/calldbx.c Thu Aug 29 15:39:31 1996
+@@ -76,6 +76,7 @@
+ #include "global.h"
+ #if !(defined(OLDSUNOS) || defined(BSD))
+ #include <termio.h>
++#include <sys/ioctl.h>
+ #else
+ #include <sgtty.h>
+ #endif
diff --git a/source/xap/xxgdb/xxgdb-1.12-debian-filemenu.patch b/source/xap/xxgdb/xxgdb-1.12-debian-filemenu.patch
new file mode 100644
index 000000000..c8595731e
--- /dev/null
+++ b/source/xap/xxgdb/xxgdb-1.12-debian-filemenu.patch
@@ -0,0 +1,10 @@
+--- xxgdb-1.12/filemenu.c.build 2009-03-29 12:26:26.000000000 +0200
++++ xxgdb-1.12/filemenu.c 2009-03-29 12:26:26.000000000 +0200
+@@ -83,6 +83,7 @@
+
+ #ifdef SYSV
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <sys/param.h>
+ #include <sys/types.h>
+ #include <dirent.h>
diff --git a/source/xap/xxgdb/xxgdb-1.12-debian-pty.patch b/source/xap/xxgdb/xxgdb-1.12-debian-pty.patch
new file mode 100644
index 000000000..7a56971f4
--- /dev/null
+++ b/source/xap/xxgdb/xxgdb-1.12-debian-pty.patch
@@ -0,0 +1,76 @@
+diff -urNad xxgdb-1.12~/calldbx.c xxgdb-1.12/calldbx.c
+--- xxgdb-1.12~/calldbx.c 1996-10-02 10:59:45.000000000 +0200
++++ xxgdb-1.12/calldbx.c 2008-05-16 17:44:05.000000000 +0200
+@@ -85,8 +85,10 @@
+ #include <sys/un.h>
+ #endif /* CREATE_IO_WINDOW */
+
+-#ifdef SVR4
++#if defined(SVR4) || defined(UNIX98)
+ #define MASTER_CLONE "/dev/ptmx"
++#endif
++#ifdef SVR4
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <sys/stropts.h>
+@@ -125,13 +127,14 @@
+ {
+ int master;
+
+-#ifdef SVR4 /* (MJH) Use STREAMS */
++#if defined(SVR4) || defined(UNIX98)
+
+ if((master = open(MASTER_CLONE, O_RDWR)) < 0)
+ perror(MASTER_CLONE);
+ else
+ return master;
+-#else
++#endif
++#if !defined(SVR4) && !defined(UNIX98)
+ int i;
+ char c;
+
+@@ -150,7 +153,7 @@
+ #ifndef sco
+ }
+ #endif
+-#endif /* SVR4 */
++#endif /* !defined(SVR4) && !defined(UNIX98) */
+
+ #ifdef GDB
+ fprintf(stderr, "xxgdb: all ptys in use\n");
+@@ -166,6 +169,25 @@
+ {
+ int slave;
+
++#if defined(UNIX98)
++
++ int n;
++ int zero=0;
++ char ptsname[16];
++
++ if (ioctl(master, TIOCGPTN, &n) < 0)
++ exit(2);
++ snprintf(ptsname,sizeof(ptsname),"/dev/pts/%i", n);
++ if (ioctl(master, TIOCSPTLCK, &zero) < 0)
++ exit(3);
++ if ((slave = open(ptsname, O_RDWR)) < 0) {
++ perror(ptsname);
++ exit(4);
++ }
++ return slave;
++
++#else
++
+ #ifdef SVR4 /* (MJH) */
+ char *slave_name = "unknown";
+ extern char *ptsname(int master);
+@@ -193,6 +215,8 @@
+ }
+ return slave;
+ #endif /* SVR4 */
++
++#endif /* UNIX98 */
+ }
+
+ #ifdef CREATE_IO_WINDOW
diff --git a/source/xap/xxgdb/xxgdb-1.12-mandriva.patch b/source/xap/xxgdb/xxgdb-1.12-mandriva.patch
new file mode 100644
index 000000000..3d384f32c
--- /dev/null
+++ b/source/xap/xxgdb/xxgdb-1.12-mandriva.patch
@@ -0,0 +1,993 @@
+diff -p -up xxgdb-1.12/command.c.orig xxgdb-1.12/command.c
+--- xxgdb-1.12/command.c.orig 2010-05-06 21:43:37.932032547 -0300
++++ xxgdb-1.12/command.c 2010-05-06 21:43:56.618036569 -0300
+@@ -74,7 +74,7 @@
+ *
+ * forwardSearch() : forward string search
+ * reverseSearch() : reverse string search
+- * Search() : call either forwardSearch() or reverseSearch()
++ * search() : call either forwardSearch() or reverseSearch()
+ * PopupSearch() : command callback for search button
+ * DoneSearch() : command callback for DONE button in search panel
+ * CreateSearchPopup() : create search panel
+@@ -657,10 +657,8 @@ void PopupSearch(w, client_data, call_da
+ * If no text has been entered, the contents of the cut buffer are used
+ * for searching.
+ */
+-static void Search(w, direction, call_data)
+- Widget w;
+- XtPointer direction;
+- XtPointer call_data;
++static void
++search(Widget w, XtPointer direction, XtPointer call_data)
+ {
+ XawTextBlock textblock;
+ XawTextPosition pos, left, right;
+@@ -716,7 +714,7 @@ static void Activate(w, event, params, n
+ String *params;
+ Cardinal *num_params;
+ {
+- Search(w, (XtPointer)FORWARD, NULL);
++ search(w, (XtPointer)FORWARD, NULL);
+ DoneSearch(w, (XtPointer)searchPopupShell, NULL);
+ }
+
+@@ -747,8 +745,8 @@ static void CreateSearchPopup()
+ searchPopup = XtCreateManagedWidget("searchPopup", dialogWidgetClass,
+ searchPopupShell, args, n);
+
+- AddButton(searchPopup, "<<", Search, (XtPointer) REVERSE);
+- AddButton(searchPopup, ">>", Search, (XtPointer) FORWARD);
++ AddButton(searchPopup, "<<", search, (XtPointer) REVERSE);
++ AddButton(searchPopup, ">>", search, (XtPointer) FORWARD);
+ AddButton(searchPopup, "DONE", DoneSearch, (XtPointer)searchPopupShell);
+
+ dialogValue = XtNameToWidget(searchPopup, "value");
+diff -p -up xxgdb-1.12/dialog.c.orig xxgdb-1.12/dialog.c
+--- xxgdb-1.12/dialog.c.orig 2010-05-06 21:43:37.934032296 -0300
++++ xxgdb-1.12/dialog.c 2010-05-06 21:44:28.258027728 -0300
+@@ -86,6 +86,12 @@ Boolean FalseSignal = FALSE; /* set to
+ static char DialogText[DIALOGSIZE]; /* text buffer for widget */
+ static XawTextPosition StartPos; /* starting position of input text */
+
++static XawTextEditType
++BeginDelete(Widget w);
++
++static void
++EndDelete(Widget w, XawTextEditType type);
++
+
+ /* This procedure prevents the user from deleting past the prompt, or
+ * any text appended by AppendDialogText() to the dialog window.
+@@ -94,11 +100,8 @@ static XawTextPosition StartPos;
+ * character() can only delete the space character.
+ */
+ /* ARGSUSED */
+-static void InsertSpace(w, event, params, num_params)
+- Widget w;
+- XEvent *event;
+- String *params;
+- Cardinal *num_params;
++void
++InsertSpace(Widget w, XEvent *event, String *params, Cardinal *num_params)
+ {
+ XawTextBlock textblock;
+ XawTextPosition lastPos;
+@@ -115,16 +118,70 @@ static void InsertSpace(w, event, params
+ }
+ }
+
++static XawTextEditType
++BeginDelete(Widget w)
++{
++ Widget src;
++ XawTextEditType type;
++ Arg args[1];
++
++ src = XawTextGetSource(w);
++ XtSetArg(args[0], XtNeditType, &type);
++ XtGetValues(src, args, 1);
++ if (type != XawtextEdit) {
++ XtSetArg(args[0], XtNeditType, XawtextEdit);
++ XtSetValues(src, args, 1);
++ }
++
++ return (type);
++}
++
++static void
++EndDelete(Widget w, XawTextEditType type)
++{
++ Widget src;
++ Arg args[1];
++
++ if (type != XawtextEdit) {
++ src = XawTextGetSource(w);
++ XtSetArg(args[0], XtNeditType, type);
++ XtSetValues(src, args, 1);
++ }
++}
++
++/*
++ * Previous logic of calling actions:
++ * InsertSpace() delete-previous-char()
++ * is not going to work because it must create a text in append only
++ * mode, so, hack it here to actually delete a character...
++ */
++void
++DeleteChar(Widget w, XEvent *event, String *params, Cardinal *num_params)
++{
++ XawTextEditType type;
++ XawTextBlock block;
++ XawTextPosition point;
++
++ if (StartPos < (point = XawTextGetInsertionPoint(w))) {
++ type = BeginDelete(w);
++ block.firstPos = 0;
++ block.length = 0;
++ block.ptr = "";
++ block.format = 8;
++ XawTextReplace(w, point - 1, point, &block);
++ XawTextSetInsertionPoint(w, point - 1);
++ EndDelete(w, type);
++ }
++}
++
+ /* Erases the preceding word.
+ * Simulates the action of the WERASE character (ctrl-W).
+ */
+ /* ARGSUSED */
+-void DeleteWord(w, event, params, num_params)
+- Widget w;
+- XEvent *event;
+- String *params;
+- Cardinal *num_params;
++void
++DeleteWord(Widget w, XEvent *event, String *params, Cardinal *num_params)
+ {
++ XawTextEditType type;
+ XawTextBlock textblock;
+ XawTextPosition pos;
+ Cardinal i;
+@@ -138,8 +195,10 @@ void DeleteWord(w, event, params, num_pa
+ pos = TextGetLastPos(w);
+ for (i=pos; i > StartPos && DialogText[i-1] == ' '; i--);
+ for (; i > StartPos && DialogText[i-1] != ' '; i--);
++ type = BeginDelete(w);
+ XawTextReplace(w, i, pos, &textblock);
+ XawTextSetInsertionPoint(w, i);
++ EndDelete(w, type);
+ }
+
+
+@@ -147,12 +206,10 @@ void DeleteWord(w, event, params, num_pa
+ * simulates the action of the KILL character (ctrl-U).
+ */
+ /* ARGSUSED */
+-void DeleteLine(w, event, params, num_params)
+- Widget w;
+- XEvent *event;
+- String *params;
+- Cardinal *num_params;
++void
++DeleteLine(Widget w, XEvent *event, String *params, Cardinal *num_params)
+ {
++ XawTextEditType type;
+ XawTextBlock textblock;
+ XawTextPosition pos, beginPos;
+ Cardinal i;
+@@ -172,8 +229,10 @@ void DeleteLine(w, event, params, num_pa
+ return;
+ }
+ for (i=pos; i > beginPos && s[i-1] != '\n'; i--);
++ type = BeginDelete(w);
+ XawTextReplace(w, i, pos, &textblock);
+ XawTextSetInsertionPoint(w, i);
++ EndDelete(w, type);
+ }
+
+
+@@ -183,11 +242,8 @@ void DeleteLine(w, event, params, num_pa
+ * it is stored in the global variable, Command.
+ */
+ /* ARGSUSED */
+-static void Dispatch(w, event, params, num_params)
+- Widget w;
+- XEvent *event;
+- String *params;
+- Cardinal *num_params;
++void
++Dispatch(Widget w, XEvent *event, String *params, Cardinal *num_params)
+ {
+ #ifdef GDB
+ /*
+@@ -249,22 +305,16 @@ void signal_interrupt_dbx()
+ * Simulates the action of the INTR character (ctrl-C).
+ */
+ /* ARGSUSED */
+-static void SigInt(w, event, params, num_params)
+- Widget w;
+- XEvent *event;
+- String *params;
+- Cardinal *num_params;
++void
++SigInt(Widget w, XEvent *event, String *params, Cardinal *num_params)
+ {
+ signal_interrupt_dbx ();
+ }
+
+ /* Sends an EOF signal to dbx. (ctrl-D) */
+ /* ARGSUSED */
+-static void SigEof(w, event, params, num_params)
+- Widget w;
+- XEvent *event;
+- String *params;
+- Cardinal *num_params;
++void
++SigEof(Widget w, XEvent *event, String *params, Cardinal *num_params)
+ {
+ write_dbx("\04");
+ }
+@@ -274,11 +324,8 @@ static void SigEof(w, event, params, num
+ * Simulates the action of the QUIT character (ctrl-\)
+ */
+ /* ARGSUSED */
+-static void SigQuit(w, event, params, num_params)
+- Widget w;
+- XEvent *event;
+- String *params;
+- Cardinal *num_params;
++void
++SigQuit(Widget w, XEvent *event, String *params, Cardinal *num_params)
+ {
+ FalseSignal = TRUE;
+
+@@ -301,29 +348,8 @@ Widget parent;
+ Arg args[MAXARGS];
+ Cardinal n;
+
+- static XtActionsRec dialog_actions[] = {
+- {"SigInt", (XtActionProc) SigInt},
+- {"SigEof", (XtActionProc) SigEof},
+- {"SigQuit", (XtActionProc) SigQuit},
+- {"InsertSpace", (XtActionProc) InsertSpace},
+- {"Dispatch", (XtActionProc) Dispatch},
+- {NULL, NULL}
+- };
+-
+- static String translations = "#override\n\
+- Ctrl<Key>C: SigInt()\n\
+- Ctrl<Key>D: SigEof()\n\
+- Ctrl<Key>|: SigQuit()\n\
+- Ctrl<Key>W: DeleteWord()\n\
+- Ctrl<Key>U: DeleteLine()\n\
+- Ctrl<Key>H: InsertSpace() delete-previous-character()\n\
+- <Key>Delete: InsertSpace() delete-previous-character()\n\
+- <Key>BackSpace: InsertSpace() delete-previous-character()\n\
+- <Key>Return: newline() Dispatch()\n\
+- ";
+-
+ n = 0;
+- XtSetArg(args[n], XtNuseStringInPlace, True); n++;
++ XtSetArg(args[n], XtNuseStringInPlace, True); n++;
+ XtSetArg(args[n], XtNstring, (XtArgVal) DialogText); n++;
+ XtSetArg(args[n], XtNlength, (XtArgVal) DIALOGSIZE); n++;
+ XtSetArg(args[n], XtNeditType, (XtArgVal) XawtextAppend); n++;
+@@ -331,8 +357,6 @@ Widget parent;
+ XtSetArg(args[n], XtNwrap, XawtextWrapWord); n++;
+ dialogWindow = XtCreateManagedWidget("dialogWindow", asciiTextWidgetClass,
+ parent, args, n );
+- XtOverrideTranslations(dialogWindow, XtParseTranslationTable(translations));
+- XtAppAddActions(app_context, dialog_actions, XtNumber(dialog_actions));
+ }
+
+ #if 0 /* never used */
+diff -p -up xxgdb-1.12/gdb_parser.c.orig xxgdb-1.12/gdb_parser.c
+--- xxgdb-1.12/gdb_parser.c.orig 2010-05-06 21:43:37.936032292 -0300
++++ xxgdb-1.12/gdb_parser.c 2010-05-06 21:44:36.001027757 -0300
+@@ -1053,7 +1053,6 @@ FILE *f;
+ if(errno == EAGAIN || errno == EWOULDBLOCK) {
+ break;
+ }
+- perror("read from gdb");
+ exit(1);
+ /*NOTREACHED*/
+ }
+diff -p -up xxgdb-1.12/global.h.orig xxgdb-1.12/global.h
+--- xxgdb-1.12/global.h.orig 2010-05-06 21:43:37.938031470 -0300
++++ xxgdb-1.12/global.h 2010-05-06 21:44:48.480028375 -0300
+@@ -111,10 +111,34 @@ extern void read_dbx(); /* get data f
+ extern void write_dbx(); /* send data to dbx */
+ extern void query_dbx(); /* ask dbx for info */
+
++extern void
++PopupSearch(Widget w, XtPointer client_data, XtPointer call_data);
++
+ /* dialog.c */
++extern void
++DeleteChar(Widget w, XEvent *event, String *params, Cardinal *num_params);
++
++extern void
++DeleteLine(Widget w, XEvent *event, String *params, Cardinal *num_params);
++
++extern void
++DeleteWord(Widget w, XEvent *event, String *params, Cardinal *num_params);
++
++extern void
++Dispatch(Widget w, XEvent *event, String *params, Cardinal *num_params);
++
++extern void
++InsertSpace(Widget w, XEvent *event, String *params, Cardinal *num_params);
++
++extern void
++SigInt(Widget w, XEvent *event, String *params, Cardinal *num_params);
++
++extern void
++SigEof(Widget w, XEvent *event, String *params, Cardinal *num_params);
++
++extern void
++SigQuit(Widget w, XEvent *event, String *params, Cardinal *num_params);
+
+-extern void DeleteLine(); /* delete line action proc */
+-extern void DeleteWord(); /* delete word action proc */
+ extern void CreateDialogWindow();
+ extern void AppendDialogText(); /* append text to buffer */
+
+@@ -163,18 +187,53 @@ extern void UpdateUpdown(); /* update
+ extern void UpdateBomb(); /* update position of bomb */
+
+ /* source.c */
++extern void
++CreateSourceWindow(Widget parent);
++
++extern char *
++GetPathname(char *filename);
++
++extern int
++LoadCurrentFile(void);
++
++extern int
++LoadFile(char *filename);
++
++extern void
++MakeDirList(char *output);
++
++extern void
++NotifyResize(Widget w, XEvent *event, String *params, Cardinal *num_params);
++
++extern void
++PrintSelection(Widget w, XEvent *event, String *params, Cardinal *num_params);
++
++extern void
++Search(Widget w, XEvent *event, String *params, Cardinal *num_params);
++
++extern void
++SelectEnd(Widget w, XEvent *event, String *params, Cardinal *num_params);
++
++extern void
++SelectStart(Widget w, XEvent *event, String *params, Cardinal *num_params);
++
++extern void
++SelectWord(Widget w, XEvent *event, String *params, Cardinal *num_params);
++
++extern void
++source_init(void);
++
++extern void
++Update(Widget w, XEvent *event, String *params, Cardinal *num_params);
++
++#ifdef EDIT_BUTTON
++extern void
++EdAction(Widget w, XEvent *event, String *params, Cardinal *num_params);
++
++extern void
++StartEditor(void);
++#endif
+
+-extern void SelectStart(); /* modified select-start */
+-extern void SelectEnd(); /* modified select-end */
+-extern void SelectWord(); /* my select word */
+-extern void PrintSelection(); /* select variable and print */
+-extern void Update(); /* update line label */
+-extern void source_init(); /* init routine */
+-extern void CreateSourceWindow();
+-extern int LoadFile(); /* display source file */
+-extern int LoadCurrentFile(); /* display source file */
+-extern char *GetPathname(); /* get full path name of file */
+-extern void MakeDirList(); /* maintain list of dirs */
+
+ /* utils.c */
+
+diff -p -up xxgdb-1.12/source.c.orig xxgdb-1.12/source.c
+--- xxgdb-1.12/source.c.orig 2010-05-06 21:43:37.940032123 -0300
++++ xxgdb-1.12/source.c 2010-05-06 21:43:56.626028358 -0300
+@@ -106,7 +106,8 @@ static FileRec **fileTable; /* table of
+ static int fileTableSize; /* size of file table */
+ static char *dirList[MAXDIRS]; /* list of dirs for searching files */
+
+-void source_init()
++void
++source_init(void)
+ {
+ dirList[0] = NULL;
+ }
+@@ -116,11 +117,8 @@ void source_init()
+ * line label.
+ */
+ /* ARGSUSED */
+-void Update(w, event, params, num_params)
+- Widget w;
+- XEvent *event;
+- String *params;
+- Cardinal *num_params;
++extern void
++Update(Widget w, XEvent *event, String *params, Cardinal *num_params)
+ {
+ XawTextPosition pos;
+ int topline;
+@@ -171,11 +169,8 @@ void Update(w, event, params, num_params
+ * Invoked by ConfigureNotify event.
+ */
+ /* ARGSUSED */
+-static void NotifyResize(w, event, params, num_params)
+- Widget w;
+- XEvent *event;
+- String *params;
+- Cardinal *num_params;
++void
++NotifyResize(Widget w, XEvent *event, String *params, Cardinal *num_params)
+ {
+ XawTextPosition pos;
+ TextWidget ctx = (TextWidget) sourceWindow;
+@@ -216,11 +211,8 @@ void UpdateLine(w, event, params, num_pa
+ * near the bottom of an Athena text widget window.
+ */
+ /* ARGSUSED */
+-void SelectStart(w, event, params, num_params)
+- Widget w;
+- XEvent *event;
+- String *params;
+- Cardinal *num_params;
++void
++SelectStart(Widget w, XEvent *event, String *params, Cardinal *num_params)
+ {
+ XawTextPosition topPosition;
+
+@@ -241,11 +233,8 @@ void SelectStart(w, event, params, num_p
+ * selection and cut buffer 0.
+ */
+ /* ARGSUSED */
+-void SelectEnd(w, event, params, num_params)
+- Widget w;
+- XEvent *event;
+- String *params;
+- Cardinal *num_params;
++extern void
++SelectEnd(Widget w, XEvent *event, String *params, Cardinal *num_params)
+ {
+ XawTextPosition begin, end, start;
+ Widget textsrc;
+@@ -274,11 +263,8 @@ void SelectEnd(w, event, params, num_par
+ * It selects a word delimited by DELIMITERS, not whitespace.
+ */
+ /* ARGSUSED */
+-void SelectWord(w, event, params, num_params)
+- Widget w;
+- XEvent *event;
+- String *params;
+- Cardinal *num_params;
++void
++SelectWord(Widget w, XEvent *event, String *params, Cardinal *num_params)
+ {
+ XawTextPosition pos, left, right, start;
+ XawTextBlock buffer;
+@@ -328,11 +314,8 @@ void SelectWord(w, event, params, num_pa
+
+ /* Print the value of the expression in cut buffer 0. */
+ /* ARGSUSED */
+-void PrintSelection(w, event, params, num_params)
+- Widget w;
+- XEvent *event;
+- String *params;
+- Cardinal *num_params;
++void
++PrintSelection(Widget w, XEvent *event, String *params, Cardinal *num_params)
+ {
+ char command[LINESIZ];
+ char *string;
+@@ -351,24 +334,16 @@ void PrintSelection(w, event, params, nu
+
+ #ifdef EDIT_BUTTON
+ /* allow invocation of favorite editor from within interface */
+-extern void StartEditor();
+-void EdAction(w, event, params, num_params)
+- Widget w;
+- XEvent *event;
+- String *params;
+- Cardinal *num_params;
++void
++EdAction(Widget w, XEvent *event, String *params, Cardinal *num_params)
+ {
+ StartEditor();
+ }
+ #endif /* EDIT_BUTTON */
+
+ /* fixes keybindings in source window */
+-extern PopupSearch();
+-void Search(w, event, params, num_params)
+- Widget w;
+- XEvent *event;
+- String *params;
+- Cardinal *num_params;
++void
++Search(Widget w, XEvent *event, String *params, Cardinal *num_params)
+ {
+ PopupSearch(w, NULL, NULL);
+ }
+@@ -383,134 +358,12 @@ void Search(w, event, params, num_params
+ have operative keys in the editor window for moving around (move stop
+ signs and such around too) */
+
+-void CreateSourceWindow(parent)
+-Widget parent;
++void
++CreateSourceWindow(Widget parent)
+ {
+- TextWidget ctx;
+ Arg args[MAXARGS];
+ Cardinal n;
+
+- static XtActionsRec sbar_actions[] = {
+- {"NotifyResize", NotifyResize},
+- {"Update", Update},
+- {NULL, NULL}
+- };
+-
+- /* fixes keybindings in source window */
+- static XtActionsRec text_actions[] = {
+- {"Update", Update},
+-#ifdef EDIT_BUTTON
+- {"Editor", EdAction},
+-#endif
+- {"Search", Search},
+- {NULL, NULL}
+- };
+-
+-#ifdef EDIT_BUTTON
+-
+- static String eTextTranslations = "#override \n\
+- Ctrl<Key>V: next-page() Update(warp) \n\
+- Meta<Key>V: previous-page() Update(warp) \n\
+- Ctrl<Key>N: next-line() Update() \n\
+- Ctrl<Key>P: previous-line() Update() \n\
+- Ctrl<Key>Z: scroll-one-line-up() Update(warp) \n\
+- Meta<Key>Z: scroll-one-line-down() Update(warp) \n\
+- Meta<Key>]: forward-paragraph() Update(warp) \n\
+- Meta<Key>[: backward-paragraph() Update(warp) \n\
+- Meta<Key>F: forward-word() Update() \n\
+- Meta<Key>B: backward-word() Update() \n\
+- Ctrl<Key>F: forward-character() Update() \n\
+- Ctrl<Key>B: backward-character() Update() \n\
+- Meta<Key>E: Editor() \n\
+- Meta<Key><: beginning-of-file() Update(warp) \n\
+- Meta<Key>>: end-of-file() Update(warp) \n\
+- <Key>L: redraw-display() Update() \n\
+- <Key>S: Search() Update() \n\
+- <Key>R: Search() Update() \n\
+- <Btn1Down>: SelectStart() SelectWord() \n\
+- Shift<Btn1Up>: Update() SelectEnd() PrintSelection() \n\
+- <Btn1Up>: Update() SelectEnd() \n\
+- ";
+-
+- static String vTextTranslations = "#override \n\
+- Ctrl<Key>F: next-page() Update(warp) \n\
+- Ctrl<Key>B: previous-page() Update(warp) \n\
+- Ctrl<Key>D: next-page() Update() \n\
+- Ctrl<Key>U: previous-page() Update() \n\
+- <Key>Return: next-line() Update() \n\
+- <Key>-: previous-line() Update() \n\
+- <Key>j: next-line() Update() \n\
+- <Key>k: previous-line() Update() \n\
+- <Key>space: forward-character() Update() \n\
+- <Key>BackSpace: backward-character() Update() \n\
+- <Key>1: beginning-of-file() Update(warp) \n\
+- <Key>G: end-of-file() Update(warp) \n\
+- <Key>E: Editor() \n\
+- <Key>L: redraw-display() Update() \n\
+- <Key>/: Search() Update() \n\
+- <Key>?: Search() Update() \n\
+- <Btn1Down>: SelectStart() SelectWord() \n\
+- Shift<Btn1Up>: Update() SelectEnd() PrintSelection() \n\
+- <Btn1Up>: Update() SelectEnd() \n\
+- ";
+-
+-#else /* not EDIT_BUTTON */
+-
+- static String eTextTranslations = "#override \n\
+- Ctrl<Key>V: next-page() Update(warp) \n\
+- Meta<Key>V: previous-page() Update(warp) \n\
+- Ctrl<Key>N: next-line() Update() \n\
+- Ctrl<Key>P: previous-line() Update() \n\
+- Ctrl<Key>Z: scroll-one-line-up() Update(warp) \n\
+- Meta<Key>Z: scroll-one-line-down() Update(warp) \n\
+- Meta<Key>]: forward-paragraph() Update(warp) \n\
+- Meta<Key>[: backward-paragraph() Update(warp) \n\
+- Meta<Key>F: forward-word() Update() \n\
+- Meta<Key>B: backward-word() Update() \n\
+- Ctrl<Key>F: forward-character() Update() \n\
+- Ctrl<Key>B: backward-character() Update() \n\
+- Meta<Key><: beginning-of-file() Update(warp) \n\
+- Meta<Key>>: end-of-file() Update(warp) \n\
+- <Key>L: redraw-display() Update() \n\
+- <Key>S: Search() Update() \n\
+- <Key>R: Search() Update() \n\
+- <Btn1Down>: SelectStart() SelectWord() \n\
+- Shift<Btn1Up>: Update() SelectEnd() PrintSelection() \n\
+- <Btn1Up>: Update() SelectEnd() \n\
+- ";
+-
+- static String vTextTranslations = "#override \n\
+- Ctrl<Key>F: next-page() Update(warp) \n\
+- Ctrl<Key>B: previous-page() Update(warp) \n\
+- Ctrl<Key>D: next-page() Update() \n\
+- Ctrl<Key>U: previous-page() Update() \n\
+- <Key>Return: next-line() Update() \n\
+- <Key>-: previous-line() Update() \n\
+- <Key>j: next-line() Update() \n\
+- <Key>k: previous-line() Update() \n\
+- <Key>space: forward-character() Update() \n\
+- <Key>BackSpace: backward-character() Update() \n\
+- <Key>1: beginning-of-file() Update(warp) \n\
+- <Key>G: end-of-file() Update(warp) \n\
+- <Key>L: redraw-display() Update() \n\
+- <Key>/: Search() Update() \n\
+- <Key>?: Search() Update() \n\
+- <Btn1Down>: SelectStart() SelectWord() \n\
+- Shift<Btn1Up>: Update() SelectEnd() PrintSelection() \n\
+- <Btn1Up>: Update() SelectEnd() \n\
+- ";
+-
+-#endif /* EDIT_BUTTON */
+-
+- /* fixes keybindings in source window */
+- static String sbarTranslations = "\
+- <Configure>: NotifyResize() \n\
+- <Btn2Down>: StartScroll(Continuous) MoveThumb() NotifyThumb() \
+- Update() \n\
+- <Btn2Motion>: MoveThumb() NotifyThumb() Update() \n\
+- <BtnUp>: NotifyScroll(Proportional) EndScroll() Update() \n\
+- ";
+-
+ n = 0;
+ XtSetArg(args[n], XtNdefaultDistance, 0); n++;
+ sourceForm = XtCreateManagedWidget("sourceForm", formWidgetClass,
+@@ -523,27 +376,6 @@ Widget parent;
+ XtSetArg(args[n], XtNscrollVertical, (XtArgVal) XawtextScrollAlways);n++;
+ sourceWindow = XtCreateManagedWidget("sourceWindow", asciiTextWidgetClass,
+ sourceForm, args, n);
+-
+- ctx = (TextWidget) sourceWindow;
+- if (ctx->text.vbar)
+- XtOverrideTranslations(ctx->text.vbar,
+- XtParseTranslationTable(sbarTranslations));
+- XtAppAddActions(app_context, sbar_actions, XtNumber(sbar_actions));
+-
+- /* fixes keybindings in source window */
+- XtAppAddActions(app_context, text_actions, XtNumber(text_actions));
+- if (app_resources.bindings && strcmp(app_resources.bindings, "vi") == 0)
+- XtOverrideTranslations((Widget) ctx, XtParseTranslationTable(vTextTranslations));
+- else
+- XtOverrideTranslations((Widget) ctx, XtParseTranslationTable(eTextTranslations));
+-
+- /* setup tabulation */
+- if (app_resources.tabstop >= 0) {
+- int tab, tabs[256];
+- for (n = 0, tab = 0; n < sizeof tabs / sizeof *tabs; n++)
+- tabs[n] = (tab += app_resources.tabstop);
+- XawTextSinkSetTabs(ctx->text.sink, sizeof tabs / sizeof *tabs, tabs);
+- }
+ }
+
+
+@@ -553,8 +385,8 @@ Widget parent;
+ * > Starting position of line #1 is 0, and is stored in linepos[1].
+ * > Search for '\n' till end of buffer.
+ */
+-static void BuildLinePos(file)
+-FileRec *file;
++static void
++BuildLinePos(FileRec *file)
+ {
+ char *p;
+ int line, nlines;
+@@ -587,7 +419,8 @@ FileRec *file;
+ * there might be another path to the same files.
+ */
+
+-static void CheckLookUpFileTable()
++static void
++CheckLookUpFileTable(void)
+ {
+ int i;
+ char * newfullname;
+@@ -639,7 +472,8 @@ static void CheckLookUpFileTable()
+ * display if necessary.
+ *
+ */
+-void CleanUpFileTable ()
++void
++CleanUpFileTable(void)
+ {
+ CheckLookUpFileTable();
+ if (displayedFile == NULL)
+@@ -651,9 +485,8 @@ void CleanUpFileTable ()
+ * If not found, create an entry and initialize proper fields,
+ * else, return pointer to entry found.
+ */
+-static int LookUpFileTable(pathname, filename, file)
+-char *pathname, *filename;
+-FileRec **file;
++static int
++LookUpFileTable(char *pathname, char *filename, FileRec **file)
+ {
+ struct stat fileinfo;
+ int fd;
+@@ -754,7 +587,8 @@ FileRec **file;
+ /*
+ * Remember file position and current line before closing.
+ */
+-static void SaveDisplayedFileInfo()
++static void
++SaveDisplayedFileInfo(void)
+ {
+ XawTextPosition pos;
+
+@@ -771,8 +605,8 @@ static void SaveDisplayedFileInfo()
+ * must recalculate bottomline because the window size might be
+ * different.
+ */
+-static void DisplayFile(file)
+-FileRec *file;
++static void
++DisplayFile(FileRec *file)
+ {
+ Arg args[MAXARGS];
+ Cardinal n;
+@@ -792,8 +626,8 @@ FileRec *file;
+ * the home directory of that user, or to the login home directory if user
+ * is not specified.
+ */
+-static char *expand(filename)
+-char *filename;
++static char *
++expand(char *filename)
+ {
+ struct passwd *pwd;
+ char *string, *name, newfile[MAXNAME];
+@@ -821,8 +655,8 @@ char *filename;
+ *
+ * With fix from Dave Gagne (daveg@fs1.ee.ubc.ca) 7/30/90
+ */
+-void MakeDirList(output)
+-char *output;
++void
++MakeDirList(char *output)
+ {
+ /* fix bug where if text of a directories command is > 1k, crashes. Now works to 4k */
+ char *s, list[LINESIZ], command[LINESIZ];
+@@ -889,8 +723,8 @@ char *output;
+ /* Returns the full pathname of a given file.
+ * It searches for the file from a list of directories.
+ */
+-char *GetPathname(filename)
+-char *filename;
++char *
++GetPathname(char *filename)
+ {
+ char pathname[LINESIZ];
+ int i;
+@@ -949,8 +783,8 @@ char *filename;
+ * 5. update the file label and the various signs on the source window.
+ * LoadFile returns 0 upon successful completion, -1 otherwise.
+ */
+-int LoadFile(filename)
+-char *filename;
++int
++LoadFile(char *filename)
+ {
+ FileRec *file;
+ char *pathname;
+@@ -980,7 +814,8 @@ char *filename;
+ }
+ }
+
+-int LoadCurrentFile()
++int
++LoadCurrentFile(void)
+ {
+ #ifdef GDB
+ query_gdb ("info line\n", PARSE_ON | ECHO_OFF | FILTER_OFF);
+@@ -991,10 +826,11 @@ int LoadCurrentFile()
+ }
+
+ #ifdef EDIT_BUTTON
+-/* simply add editor button that calls $XXGDBWINEDIT, $WINEDIT, xxgdbedit in that order */
++/* simply add editor button that calls $EDITOR and xedit in that order */
+ /* allow invocation of fav. editor from within interface */
+ /* button and the EdAction action procedure for the source window */
+-void StartEditor ()
++void
++StartEditor(void)
+ {
+ XawTextPosition pos;
+ char* editor;
+@@ -1002,11 +838,9 @@ void StartEditor ()
+ int result;
+
+ if (displayedFile == NULL) return;
+- editor = (char *) getenv("XXGDBWINEDIT");
+- if (editor == NULL)
+- editor = (char *) getenv("WINEDIT");
++ editor = (char *) getenv("EDITOR");
+ if (editor == NULL)
+- editor = "xxgdbedit";
++ editor = "xedit";
+ pos = XawTextGetInsertionPoint(sourceWindow);
+ displayedFile->currentline = TextPositionToLine(pos);
+ sprintf(string, "nohup %s +%d %s&\n",
+@@ -1043,8 +877,7 @@ void StartEditor ()
+ *
+ */
+ char *
+-GetSourcePathname (filename)
+-char *filename;
++GetSourcePathname(char *filename)
+ {
+ char *srcpath;
+ char curr_src [MAXPATHLEN];
+diff -p -up xxgdb-1.12/XDbx.ad.orig xxgdb-1.12/XDbx.ad
+--- xxgdb-1.12/XDbx.ad.orig 2010-05-06 21:43:37.942032512 -0300
++++ xxgdb-1.12/XDbx.ad 2010-05-06 21:43:56.626028358 -0300
+@@ -19,31 +19,41 @@
+ *sourceForm.preferredPaneSize: 320
+ *sourceWindow.leftMargin: 35
+ *sourceWindow.scrollHorizontal: whenNeeded
+-*sourceWindow.translations: #override \n\
+- <Btn1Down>: SelectStart() SelectWord() \n\
+- Shift<Btn1Up>: Update(warp) SelectEnd() PrintSelection() \n\
+- <Btn1Up>: Update(warp) SelectEnd() \n\
+- <Key>Down: next-line() Update()\n\
+- <Key>Up: previous-line() Update() \n\
+- Ctrl<Key>L: redraw-display() Update() \n\
+- Ctrl<Key>N: next-line() Update() \n\
+- Ctrl<Key>P: previous-line() Update() \n\
+- Ctrl<Key>V: next-page() Update() \n\
+- Ctrl<Key>Z: scroll-one-line-up() Update() \n\
+- Meta<Key>V: previous-page() Update() \n\
+- Meta<Key>Z: scroll-one-line-down() Update() \n\
+- :Meta<Key>\>: end-of-file() Update() \n\
+- :Meta<Key>]: forward-paragraph() Update() \n\
+- :Meta<Key>[: backward-paragraph() Update()
++*sourceWindow.translations: #override \
++ <Btn1Down>: set-keyboard-focus() SelectStart() SelectWord()\n\
++ Shift<Btn1Up>: Update(warp) SelectEnd() PrintSelection()\n\
++ <Btn1Up>: Update(warp) SelectEnd()\n\
++ <Key>Down: next-line() Update()\n\
++ <Key>Up: previous-line() Update()\n\
++ Ctrl<Key>L: redraw-display() Update()\n\
++ Ctrl<Key>N: next-line() Update()\n\
++ Ctrl<Key>P: previous-line() Update()\n\
++ Ctrl<Key>V: next-page() Update()\n\
++ Ctrl<Key>Z: scroll-one-line-up() Update()\n\
++ Meta<Key>V: previous-page() Update()\n\
++ Meta<Key>Z: scroll-one-line-down() Update()\n\
++ :Meta<Key>\>: end-of-file() Update()\n\
++ :Meta<Key>]: forward-paragraph() Update()\n\
++ :Meta<Key>[: backward-paragraph() Update()
+ *messageWindow*font: variable
+ *messageWindow.min: 30
+ *messageWindow.max: 30
+ *dialogWindow.preferredPaneSize: 200
+ *dialogWindow.resizeToPreferred: True
+-*dialogWindow.translations: #override \n\
+- <Btn1Down>: SelectStart() SelectWord() \n\
+- Shift<Btn1Up>: SelectEnd() PrintSelection() \n\
+- <Btn1Up>: SelectEnd() \n
++*dialogWindow.translations: #override \
++ <Btn1Down>: set-keyboard-focus() SelectStart() SelectWord()\n\
++ Shift<Btn1Up>: SelectEnd() PrintSelection()\n\
++ <Btn1Up>: SelectEnd()\n\
++ Ctrl<Key>C: SigInt()\n\
++ Ctrl<Key>D: SigEof()\n\
++ Ctrl<Key>|: SigQuit()\n\
++ <Key>Tab: no-op(r)\n\
++ Ctrl<Key>W: DeleteWord()\n\
++ Ctrl<Key>U: DeleteLine()\n\
++ Ctrl<Key>H: DeleteChar()\n\
++ <Key>Delete: DeleteChar()\n\
++ <Key>BackSpace: DeleteChar()\n\
++ <Key>Return: newline() Dispatch()
+ *commandWindow.preferredPaneSize: 135
+ *commandWindow.skipAdjust: True
+ !*commandWindow.hSpace: 14
+@@ -55,8 +65,8 @@
+ *displayWindow.skipAdjust: True
+ *displayWindow.scrollVertical: whenNeeded
+ *displayWindow.scrollHorizontal: whenNeeded
+-*displayWindow.translations: #override \n\
+- <Btn1Down>: SelectStart() SelectWord() \n\
+- Shift<Btn1Up>: SelectEnd() PrintSelection() \n\
+- <Btn1Up>: SelectEnd() \n
++*displayWindow.translations: #override \
++ <Btn1Down>: set-keyboard-focus() SelectStart() SelectWord()\n\
++ Shift<Btn1Up>: SelectEnd() PrintSelection()\n\
++ <Btn1Up>: SelectEnd()
+ *popup*showGrip: False
+diff -p -up xxgdb-1.12/xdbx.c.orig xxgdb-1.12/xdbx.c
+--- xxgdb-1.12/xdbx.c.orig 2010-05-06 21:43:37.944031595 -0300
++++ xxgdb-1.12/xdbx.c 2010-05-06 21:43:56.628036652 -0300
+@@ -191,19 +191,11 @@ String fallback_resources[] = {
+ #endif
+ "*sourceWindow.leftMargin: 35",
+ "*sourceWindow.scrollHorizontal: whenNeeded",
+- "*sourceWindow.translations: #override \\n\
+- <Btn1Down>: SelectStart() SelectWord() \\n\
+- Shift<Btn1Up>: Update() SelectEnd() PrintSelection() \\n\
+- <Btn1Up>: Update() SelectEnd() \\n",
+ "*messageWindow*font: variable",
+ "*messageWindow.min: 30",
+ "*messageWindow.max: 30",
+ "*dialogWindow.preferredPaneSize: 240",
+ "*dialogWindow.resizeToPreferred: True",
+- "*dialogWindow.translations: #override \\n\
+- <Btn1Down>: SelectStart() SelectWord() \\n\
+- Shift<Btn1Up>: SelectEnd() PrintSelection() \\n\
+- <Btn1Up>: SelectEnd() \\n",
+ #ifdef NEW_INTERFACE
+ "*commandShell.geometry: 190x370+590+0",
+ #else
+@@ -229,10 +221,6 @@ String fallback_resources[] = {
+ #endif
+ "*displayWindow.scrollVertical: whenNeeded",
+ "*displayWindow.scrollHorizontal: whenNeeded",
+- "*displayWindow.translations: #override \\n\
+- <Btn1Down>: SelectStart() SelectWord() \\n\
+- Shift<Btn1Up>: SelectEnd() PrintSelection() \\n\
+- <Btn1Up>: SelectEnd() \\n",
+ "*popup*showGrip: False",
+ "*bindings: emacs",
+ NULL,
+@@ -271,14 +259,25 @@ static XrmOptionDescRec options[] = {
+ };
+
+ XtActionsRec xdbx_actions[] = {
+- {"SelectStart", (XtActionProc) SelectStart},
+- {"SelectEnd", (XtActionProc) SelectEnd},
+- {"SelectWord", (XtActionProc) SelectWord},
+- {"PrintSelection", (XtActionProc) PrintSelection},
+- {"Update", (XtActionProc) Update},
+- {"DeleteWord", (XtActionProc) DeleteWord},
+- {"DeleteLine", (XtActionProc) DeleteLine},
+- {NULL, NULL}
++#ifdef EDIT_BUTTON
++ {"Editor", EdAction},
++#endif
++ {"DeleteChar", DeleteChar},
++ {"DeleteLine", DeleteLine},
++ {"DeleteWord", DeleteWord},
++ {"Dispatch", Dispatch},
++ {"InsertSpace", InsertSpace},
++ {"NotifyResize", NotifyResize},
++ {"PrintSelection", PrintSelection},
++ {"Search", Search},
++ {"SelectEnd", SelectEnd},
++ {"SelectStart", SelectStart},
++ {"SelectWord", SelectWord},
++ {"SigEof", SigEof},
++ {"SigInt", SigInt},
++ {"SigQuit", SigQuit},
++ {"Update", Update},
++ {NULL, NULL}
+ };
+
+ static void Syntax(call)
diff --git a/source/xap/xxgdb/xxgdb-1.12-sysv.patch b/source/xap/xxgdb/xxgdb-1.12-sysv.patch
new file mode 100644
index 000000000..e8b14b78d
--- /dev/null
+++ b/source/xap/xxgdb/xxgdb-1.12-sysv.patch
@@ -0,0 +1,24 @@
+--- xxgdb-1.12/source.c~ Fri Apr 21 12:16:02 1995
++++ xxgdb-1.12/source.c Mon Dec 2 17:42:39 1996
+@@ -79,7 +79,7 @@
+ #endif
+ #include <stdlib.h>
+
+-#include <X11/Xos.h>
++/* #include <X11/Xos.h> */
+ #include <sys/stat.h>
+ #include <pwd.h>
+ #include "global.h"
+--- xxgdb-1.12/global.h~ Thu Apr 6 12:23:42 1995
++++ xxgdb-1.12/global.h Mon Dec 2 17:38:21 1996
+@@ -62,8 +62,9 @@
+ *
+ * Contain extern declarations of variables and functions.
+ */
+-
++#undef SYSV
+ #include "defs.h"
++#define SYSV
+
+
+ #if defined(__GNUC__) && !defined(alloca)
diff --git a/source/xap/xxgdb/xxgdb.SlackBuild b/source/xap/xxgdb/xxgdb.SlackBuild
index 97c130f6d..a1453e05f 100755
--- a/source/xap/xxgdb/xxgdb.SlackBuild
+++ b/source/xap/xxgdb/xxgdb.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009-2011 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -19,11 +19,11 @@
# 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.
+#
PKGNAM=xxgdb
VERSION=${VERSION:-1.12}
-ARCH=${ARCH:-x86_64}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-3}
CWD=$(pwd)
TMP=${TMP:-/tmp}
@@ -31,6 +31,17 @@ PKG=$TMP/package-${PKGNAM}
rm -rf $PKG
mkdir -p $TMP $PKG
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
+# Set compile flags:
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-march=i486 -mtune=i686"
elif [ "$ARCH" = "s390" ]; then
@@ -39,12 +50,18 @@ elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
fi
+# Extract source:
cd $TMP
rm -rf ${PKGNAM}-${VERSION}
-tar xvf $CWD/${PKGNAM}-$VERSION.tar.gz || exit 1
+tar xvf $CWD/${PKGNAM}-$VERSION.tar.xz || exit 1
cd ${PKGNAM}-$VERSION || exit 1
-zcat $CWD/xxgdb.fix_glibc_and_gcc.diff.gz | patch -p1 --verbose --backup --suffix=.orig
+# Apply patches:
+# The patches were taken from Mandriva's SRPM and address build issues
+# and run-time issues on x86_64.
+for pf in $CWD/*patch.xz ; do
+ { xz -dc $pf | patch -p1 ;} || exit 1
+done
# Make sure ownerships and permissions are sane:
chown -R root:root .
@@ -89,7 +106,7 @@ fi
# Add a documentation directory:
mkdir -p ${PKG}/usr/doc/${PKGNAM}-$VERSION
cp -a \
- README README.NEW_INTERFACE XDBX_README XDbx.NEW_INTERFACE XXGDB_README \
+ *README* XDbx.NEW_INTERFACE \
$PKG/usr/doc/${PKGNAM}-$VERSION
mkdir -p $PKG/install
diff --git a/source/xap/xxgdb/xxgdb.fix_glibc_and_gcc.diff b/source/xap/xxgdb/xxgdb.fix_glibc_and_gcc.diff
deleted file mode 100644
index b61d57ced..000000000
--- a/source/xap/xxgdb/xxgdb.fix_glibc_and_gcc.diff
+++ /dev/null
@@ -1,45 +0,0 @@
-diff -Naur xxgdb-1.12/Imakefile xxgdb-1.12.fixed/Imakefile
---- xxgdb-1.12/Imakefile 1995-06-19 19:20:55.000000000 -0300
-+++ xxgdb-1.12.fixed/Imakefile 2007-02-21 10:40:57.000000000 -0200
-@@ -59,7 +59,7 @@
- #endif
-
- #ifdef LinuxArchitecture
--DEFINES = -DSYSV $(DEFGDB)
-+DEFINES = $(DEFGDB)
- #endif
-
- #if defined(NeXTArchitecture) || defined(NextArchitecture)
-diff -Naur xxgdb-1.12/filemenu.c xxgdb-1.12.fixed/filemenu.c
---- xxgdb-1.12/filemenu.c 1994-08-29 16:38:28.000000000 -0300
-+++ xxgdb-1.12.fixed/filemenu.c 2007-02-21 10:47:47.000000000 -0200
-@@ -207,12 +207,12 @@
- return False;
- if (statbuf.st_mode & S_IFDIR) { /* is directory */
- strcat(entry->d_name, "/");
-- ++(entry->d_namlen);
-+ ++(entry->d_reclen);
- return True;
- }
- if (statbuf.st_mode & S_IEXEC) { /* is executable */
- strcat(entry->d_name, "*");
-- ++(entry->d_namlen);
-+ ++(entry->d_reclen);
- return True;
- }
- return True;
-diff -Naur xxgdb-1.12/gdb_handler.c xxgdb-1.12.fixed/gdb_handler.c
---- xxgdb-1.12/gdb_handler.c 1995-04-19 13:46:22.000000000 -0300
-+++ xxgdb-1.12.fixed/gdb_handler.c 2007-02-21 10:51:30.000000000 -0200
-@@ -85,10 +85,7 @@
- * query_gdb(): Send command to gdb.
- */
-
--#ifdef SYSV
--# include <signal.h>
--#endif
--
-+#include <signal.h>
-
- /*
- * Display an outlined arrow to locate the calling routine in a stack