summaryrefslogtreecommitdiff
path: root/source/l/gtk+2
diff options
context:
space:
mode:
authorPatrick J Volkerding <volkerdi@slackware.com>2009-08-26 10:00:38 -0500
committerEric Hameleers <alien@slackware.com>2018-05-31 22:41:17 +0200
commit5a12e7c134274dba706667107d10d231517d3e05 (patch)
tree55718d5acb710fde798d9f38d0bbaf594ed4b296 /source/l/gtk+2
downloadcurrent-5a12e7c134274dba706667107d10d231517d3e05.tar.gz
Slackware 13.0slackware-13.0
Wed Aug 26 10:00:38 CDT 2009 Slackware 13.0 x86_64 is released as stable! Thanks to everyone who helped make this release possible -- see the RELEASE_NOTES for the credits. The ISOs are off to the replicator. This time it will be a 6 CD-ROM 32-bit set and a dual-sided 32-bit/64-bit x86/x86_64 DVD. We're taking pre-orders now at store.slackware.com. Please consider picking up a copy to help support the project. Once again, thanks to the entire Slackware community for all the help testing and fixing things and offering suggestions during this development cycle. As always, have fun and enjoy! -P.
Diffstat (limited to 'source/l/gtk+2')
-rw-r--r--source/l/gtk+2/doinst.sh41
-rwxr-xr-xsource/l/gtk+2/gtk+2.SlackBuild183
-rw-r--r--source/l/gtk+2/gtk.nsplugin.diff11
-rw-r--r--source/l/gtk+2/gtk.pnglz.diff12
-rwxr-xr-xsource/l/gtk+2/profile.d/gtk+.csh2
-rwxr-xr-xsource/l/gtk+2/profile.d/gtk+.sh3
-rw-r--r--source/l/gtk+2/slack-desc19
-rw-r--r--source/l/gtk+2/update-gdk-pixbuf-loaders86
-rw-r--r--source/l/gtk+2/update-gtk-immodules86
9 files changed, 443 insertions, 0 deletions
diff --git a/source/l/gtk+2/doinst.sh b/source/l/gtk+2/doinst.sh
new file mode 100644
index 00000000..1122e0cd
--- /dev/null
+++ b/source/l/gtk+2/doinst.sh
@@ -0,0 +1,41 @@
+#!/bin/sh
+config() {
+ NEW="$1"
+ OLD="`dirname $NEW`/`basename $NEW .new`"
+ # If there's no config file by that name, mv it over:
+ if [ ! -r $OLD ]; then
+ mv $NEW $OLD
+ elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy
+ rm $NEW
+ fi
+ # Otherwise, we leave the .new copy for the admin to consider...
+}
+if [ -d etc/gtk-2.0/$(uname -m)-slackware-linux ]; then
+ config etc/gtk-2.0/$(uname -m)-slackware-linux/im-multipress.conf.new
+elif [ -d etc/gtk-2.0/i486-slackware-linux ]; then
+ config etc/gtk-2.0/i486-slackware-linux/im-multipress.conf.new
+elif [ -d etc/gtk-2.0/*-slackware-linux ]; then
+ config etc/gtk-2.0/*-slackware-linux/im-multipress.conf.new
+fi
+
+# Since the use of icon caching is optional, and has to be kept in sync
+# somehow (like a "registry" through a cron job, or whatever, I tend to
+# think the user should be the one to choose if they really want to set
+# this up or not:
+#
+# Example:
+#for dir in /usr/share/icons/* ; do
+# if [ -d $dir ]; then
+# /usr/bin/gtk-update-icon-cache -f -t $dir 1> /dev/null 2> /dev/null
+# fi
+#done
+mkdir -p etc/gtk-2.0
+
+chroot . rm -f /usr/share/icons/*/icon-theme.cache 1> /dev/null 2> /dev/null
+
+# Run this if we are on an installed system. Otherwise it will be
+# handled on first boot.
+if [ -x /usr/bin/update-gtk-immodules-2.0 ]; then
+ /usr/bin/update-gtk-immodules
+fi
+
diff --git a/source/l/gtk+2/gtk+2.SlackBuild b/source/l/gtk+2/gtk+2.SlackBuild
new file mode 100755
index 00000000..0c4e043a
--- /dev/null
+++ b/source/l/gtk+2/gtk+2.SlackBuild
@@ -0,0 +1,183 @@
+#!/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=2.14.7
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-4}
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-gtk2
+
+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
+
+rm -rf $PKG
+mkdir -p $TMP $PKG/usr
+cd $TMP
+rm -rf gtk+-$VERSION
+tar xvf $CWD/gtk+-$VERSION.tar.bz2 || exit 1
+cd gtk+-$VERSION
+
+# There's been this long standing debate about PNG and -lz
+# and this patch is the workaround. ;-)
+zcat $CWD/gtk.pnglz.diff.gz | patch -p1 --verbose || exit 1
+# Fix Flash in Konquoror:
+zcat $CWD/gtk.nsplugin.diff.gz | patch -p1 --verbose || exit 1
+
+## Fix for x86_64 (does not hurt the other archs but note that we will start
+## using /etc/gtk-2.0/$host instead of /etc/gtk-2.0/ now):
+ sed -i "s/GTK_SYSCONFDIR, \\\"gtk-2\\.0\\\"/GTK_SYSCONFDIR, \\\"gtk-2\\.0\\\", HOST/g" ./gtk/gtkrc.c ./gdk-pixbuf/gdk-pixbuf-io.c
+ sed -i 's/sysconfdir)\\"/& \\\n\t-DHOST=\\\"$(host_triplet)\\\"/g' \
+ gdk-pixbuf/Makefile.am \
+ gtk/Makefile.am \
+ modules/input/Makefile.am
+
+# The original config.{guess,sub} do not work on x86_64
+cp -p /usr/share/libtool/config.{guess,sub} .
+
+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 {} \;
+
+libtoolize --force
+autoreconf -vif
+
+# Autoconf changes linux to linux-gnu.
+# Our host is $ARCH-slackware-linux not $ARCH-slackware-linux-gnu:
+sed -i -e 's#linux|linux-gnu|#linux|linux|#' config.sub
+
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --mandir=/usr/man \
+ --with-xinput=yes \
+ --build=$ARCH-slackware-linux
+
+make $NUMJOBS || make || exit 1
+
+# Check the host value that is passed to the compile to the one in this script:
+host="$ARCH-slackware-linux"
+compile_host=$(grep 'host_triplet =' gtk/Makefile | sed -e "s/.* = //")
+if [ "x$compile_host" != "x$host" ]; then
+ echo "Host mismatch: compile='$compile_host', SlackBuild='$host'" && exit 1
+fi
+
+make install DESTDIR=$PKG \
+ RUN_QUERY_IMMODULES_TEST=false RUN_QUERY_LOADER_TEST=false \
+ || exit 1
+
+# I'm spamming your root partition because /etc/gtk-2.0 won't install to $DESTDIR
+make install || exit 1
+cp -a /etc/gtk-2.0/* $PKG/etc/gtk-2.0/ || exit 1
+rm -rf $PKG/etc/gtk-2.0/$host
+mkdir -p $PKG/etc/gtk-2.0/$host
+mv $PKG/etc/gtk-2.0/* $PKG/etc/gtk-2.0/$host/
+
+mv $PKG/etc/gtk-2.0/$host/im-multipress.conf $PKG/etc/gtk-2.0/$host/im-multipress.conf.new || exit 1
+
+# We need to have separate 32-bit and 64-bit binaries
+# for places where we have two copies of the GTK+ package installed.
+# (we might have x86_64 and i486 packages on the same system, for example.)
+case "$host" in
+ s390x*|x86_64*)
+ mv $PKG/usr/bin/gtk-query-immodules-2.0{,-64}
+ mv $PKG/usr/bin/gdk-pixbuf-query-loaders{,-64}
+ ( cd $PKG/usr/bin
+ ln -sf gtk-query-immodules-2.0-64 gtk-query-immodules-2.0
+ ln -sf gdk-pixbuf-query-loaders-64 gdk-pixbuf-query-loaders
+ )
+ ;;
+ *)
+ mv $PKG/usr/bin/gtk-query-immodules-2.0{,-32}
+ mv $PKG/usr/bin/gdk-pixbuf-query-loaders{,-32}
+ ( cd $PKG/usr/bin
+ ln -sf gtk-query-immodules-2.0-32 gtk-query-immodules-2.0
+ ln -sf gdk-pixbuf-query-loaders-32 gdk-pixbuf-query-loaders
+ )
+ ;;
+esac
+
+# Install wrappers for the binaries:
+cp $CWD/update-gdk-pixbuf-loaders $PKG/usr/bin/update-gdk-pixbuf-loaders
+cp $CWD/update-gtk-immodules $PKG/usr/bin/update-gtk-immodules
+chmod 0755 $PKG/usr/bin/update-*
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+# Compress and if needed symlink the man pages:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.?
+ )
+ done
+ )
+fi
+
+mkdir -p $PKG/usr/doc/gtk+-$VERSION
+cp -a \
+ AUTHORS COPYING NEWS README TODO \
+ $PKG/usr/doc/gtk+-$VERSION
+( cd $PKG/usr/doc/gtk+-$VERSION
+ ln -s /usr/share/gtk-doc/html/gail-libgail-util .
+ ln -s /usr/share/gtk-doc/html/gdk .
+ ln -s /usr/share/gtk-doc/html/gdk-pixbuf .
+ ln -s /usr/share/gtk-doc/html/gtk .
+)
+
+# I'm almost inclined to think this stuff is obsolete but I don't know for sure.
+# I do know that leaving it in doesn't hurt (aside from a few wasted bytes, but
+# probably less than the comments here waste ;-)
+mkdir -p $PKG/etc/profile.d
+cp -a $CWD/profile.d/* $PKG/etc/profile.d
+chmod 755 $PKG/etc/profile.d/*
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/gtk+2-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/l/gtk+2/gtk.nsplugin.diff b/source/l/gtk+2/gtk.nsplugin.diff
new file mode 100644
index 00000000..3e0932de
--- /dev/null
+++ b/source/l/gtk+2/gtk.nsplugin.diff
@@ -0,0 +1,11 @@
+diff -Nur gtk+-2.14.6.orig/gtk/gtkclipboard.c gtk+-2.14.6/gtk/gtkclipboard.c
+--- gtk+-2.14.6.orig/gtk/gtkclipboard.c 2008-12-15 12:38:44.000000000 -0600
++++ gtk+-2.14.6/gtk/gtkclipboard.c 2008-12-16 21:33:21.079854023 -0600
+@@ -299,6 +299,7 @@
+ gtk_clipboard_get_for_display (GdkDisplay *display,
+ GdkAtom selection)
+ {
++ g_return_val_if_fail (display != NULL, NULL);
+ g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL);
+ g_return_val_if_fail (!display->closed, NULL);
+
diff --git a/source/l/gtk+2/gtk.pnglz.diff b/source/l/gtk+2/gtk.pnglz.diff
new file mode 100644
index 00000000..13020c24
--- /dev/null
+++ b/source/l/gtk+2/gtk.pnglz.diff
@@ -0,0 +1,12 @@
+diff -Nur gtk+-2.14.6.orig/gdk-pixbuf/Makefile.in gtk+-2.14.6/gdk-pixbuf/Makefile.in
+--- gtk+-2.14.6.orig/gdk-pixbuf/Makefile.in 2008-12-15 12:42:35.000000000 -0600
++++ gtk+-2.14.6/gdk-pixbuf/Makefile.in 2008-12-16 21:36:45.393854353 -0600
+@@ -245,7 +245,7 @@
+ LIBJASPER = @LIBJASPER@
+ LIBJPEG = @LIBJPEG@
+ LIBOBJS = @LIBOBJS@
+-LIBPNG = @LIBPNG@
++LIBPNG = @LIBPNG@ -lz
+ LIBS = @LIBS@
+ LIBTIFF = @LIBTIFF@
+ LIBTOOL = @LIBTOOL@
diff --git a/source/l/gtk+2/profile.d/gtk+.csh b/source/l/gtk+2/profile.d/gtk+.csh
new file mode 100755
index 00000000..c9ea5acb
--- /dev/null
+++ b/source/l/gtk+2/profile.d/gtk+.csh
@@ -0,0 +1,2 @@
+#!/bin/csh
+setenv GDK_USE_XFT 1
diff --git a/source/l/gtk+2/profile.d/gtk+.sh b/source/l/gtk+2/profile.d/gtk+.sh
new file mode 100755
index 00000000..40b910ad
--- /dev/null
+++ b/source/l/gtk+2/profile.d/gtk+.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+GDK_USE_XFT=1
+export GDK_USE_XFT
diff --git a/source/l/gtk+2/slack-desc b/source/l/gtk+2/slack-desc
new file mode 100644
index 00000000..bd800ade
--- /dev/null
+++ b/source/l/gtk+2/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------------------------------------------------------|
+gtk+2: GTK+ version 2 (multi-platform GUI toolkit)
+gtk+2:
+gtk+2: This is GTK+, a multi-platform toolkit for creating graphical user
+gtk+2: interfaces. Offering a complete set of widgets, GTK+ is suitable for
+gtk+2: projects ranging from small one-off projects to complete application
+gtk+2: suites.
+gtk+2:
+gtk+2:
+gtk+2:
+gtk+2:
+gtk+2:
diff --git a/source/l/gtk+2/update-gdk-pixbuf-loaders b/source/l/gtk+2/update-gdk-pixbuf-loaders
new file mode 100644
index 00000000..942ca186
--- /dev/null
+++ b/source/l/gtk+2/update-gdk-pixbuf-loaders
@@ -0,0 +1,86 @@
+#! /bin/sh
+# Updates the gdk-pixbuf.loaders in /etc/gtk-2.0/$host
+
+umask 022
+
+# Get the machine type from uname:
+host=$(uname -m)-slackware-linux
+
+# Fix $host for arm arch:
+case "$host" in
+ arm*) host=arm-slackware-linux-gnueabi ;;
+esac
+
+# Deriving /etc/gtk-2.0/$host location
+#
+# We have had problems in the past with build systems
+# changing host from i386 to i686 and appending/dropping
+# the -gnu suffix, so try to match up the $host we got
+# with whats actually there.
+if [ ! -d /etc/gtk-2.0/$host ]; then
+ case "$host" in
+ i?86*)
+ for d in $(ls -d /etc/gtk-2.0/i?86*); do
+ host=$(basename $d)
+ break
+ done
+ ;;
+ esac
+fi
+
+FILE=/etc/gtk-2.0/$host/gdk-pixbuf.loaders
+
+case "$host" in
+ s390x*|x86_64*)
+ if [ -x /usr/bin/gdk-pixbuf-query-loaders-64 ]; then
+ if [ "$1" = "--verbose" ]; then
+ echo "Updating gdk-pixbuf.loaders for ${host}:"
+ echo " /usr/bin/gdk-pixbuf-query-loaders-64 \\"
+ echo " > $FILE"
+ fi
+ /usr/bin/gdk-pixbuf-query-loaders-64 > $FILE
+ # Check for x86_64 multilib:
+ if ls -d /etc/gtk-2.0/i?86* 1> /dev/null 2> /dev/null ; then
+ for d in $(ls -d /etc/gtk-2.0/i?86*); do
+ mlhost=$(basename $d)
+ break
+ done
+ if [ -r /etc/gtk-2.0/$mlhost/gdk-pixbuf.loaders -a \
+ -x /usr/bin/gdk-pixbuf-query-loaders-32 ]; then
+ FILE=/etc/gtk-2.0/$mlhost/gdk-pixbuf.loaders
+ if [ "$1" = "--verbose" ]; then
+ echo "Updating gdk-pixbuf.loaders for ${mlhost}:"
+ echo " /usr/bin/gdk-pixbuf-query-loaders-32 \\"
+ echo " > $FILE"
+ fi
+ /usr/bin/gdk-pixbuf-query-loaders-32 > $FILE
+ fi
+ fi
+ else
+ if [ "$1" = "--verbose" ]; then
+ echo "Updating gdk-pixbuf.loaders for ${host}:"
+ echo " /usr/bin/gdk-pixbuf-query-loaders \\"
+ echo " > $FILE"
+ fi
+ /usr/bin/gdk-pixbuf-query-loaders > $FILE
+ fi
+ ;;
+ *)
+ if [ -x /usr/bin/gdk-pixbuf-query-loaders-32 ]; then
+ if [ "$1" = "--verbose" ]; then
+ echo "Updating gdk-pixbuf.loaders for ${host}:"
+ echo " /usr/bin/gdk-pixbuf-query-loaders-32 \\"
+ echo " > $FILE"
+ fi
+ /usr/bin/gdk-pixbuf-query-loaders-32 > $FILE
+ else
+ if [ "$1" = "--verbose" ]; then
+ echo "Updating gdk-pixbuf.loaders for ${host}:"
+ echo " /usr/bin/gdk-pixbuf-query-loaders \\"
+ echo " > $FILE"
+ fi
+ /usr/bin/gdk-pixbuf-query-loaders > $FILE
+ fi
+ ;;
+esac
+
diff --git a/source/l/gtk+2/update-gtk-immodules b/source/l/gtk+2/update-gtk-immodules
new file mode 100644
index 00000000..d913f69f
--- /dev/null
+++ b/source/l/gtk+2/update-gtk-immodules
@@ -0,0 +1,86 @@
+#! /bin/sh
+# Updates the immodules in /etc/gtk-2.0/$host
+
+umask 022
+
+# Get the machine type from uname:
+host=$(uname -m)-slackware-linux
+
+# Fix $host for arm arch:
+case "$host" in
+ arm*) host=arm-slackware-linux-gnueabi ;;
+esac
+
+# Deriving /etc/gtk-2.0/$host location
+#
+# We have had problems in the past with build systems
+# changing host from i386 to i686 and appending/dropping
+# the -gnu suffix, so try to match up the $host we got
+# with whats actually there.
+if [ ! -d /etc/gtk-2.0/$host ]; then
+ case "$host" in
+ i?86*)
+ for d in $(ls -d /etc/gtk-2.0/i?86*); do
+ host=$(basename $d)
+ break
+ done
+ ;;
+ esac
+fi
+
+FILE=/etc/gtk-2.0/$host/gtk.immodules
+
+case "$host" in
+ s390x*|x86_64*)
+ if [ -x /usr/bin/gtk-query-immodules-2.0-64 ]; then
+ if [ "$1" = "--verbose" ]; then
+ echo "Updating gtk.immodules for ${host}:"
+ echo " /usr/bin/gtk-query-immodules-2.0-64 \\"
+ echo " > $FILE"
+ fi
+ /usr/bin/gtk-query-immodules-2.0-64 > $FILE
+ # Check for x86_64 multilib:
+ if ls -d /etc/gtk-2.0/i?86* 1> /dev/null 2> /dev/null ; then
+ for d in $(ls -d /etc/gtk-2.0/i?86*); do
+ mlhost=$(basename $d)
+ break
+ done
+ if [ -r /etc/gtk-2.0/$mlhost/gtk.immodules -a \
+ -x /usr/bin/gtk-query-immodules-2.0-32 ]; then
+ FILE=/etc/gtk-2.0/$mlhost/gtk.immodules
+ if [ "$1" = "--verbose" ]; then
+ echo "Updating gtk.immodules for ${mlhost}:"
+ echo " /usr/bin/gtk-query-immodules-2.0-32 \\"
+ echo " > $FILE"
+ fi
+ /usr/bin/gtk-query-immodules-2.0-32 > $FILE
+ fi
+ fi
+ else
+ if [ "$1" = "--verbose" ]; then
+ echo "Updating gtk.immodules for ${host}:"
+ echo " /usr/bin/gtk-query-immodules-2.0 \\"
+ echo " > $FILE"
+ fi
+ /usr/bin/gtk-query-immodules-2.0 > $FILE
+ fi
+ ;;
+ *)
+ if [ -x /usr/bin/gtk-query-immodules-2.0-32 ]; then
+ if [ "$1" = "--verbose" ]; then
+ echo "Updating gtk.immodules for ${host}:"
+ echo " /usr/bin/gtk-query-immodules-2.0-32 \\"
+ echo " > $FILE"
+ fi
+ /usr/bin/gtk-query-immodules-2.0-32 > $FILE
+ else
+ if [ "$1" = "--verbose" ]; then
+ echo "Updating gtk.immodules for ${host}:"
+ echo " /usr/bin/gtk-query-immodules-2.0 \\"
+ echo " > $FILE"
+ fi
+ /usr/bin/gtk-query-immodules-2.0 > $FILE
+ fi
+ ;;
+esac
+