From c2b8cb1687ae8501dca4d59499bae108fcdc8871 Mon Sep 17 00:00:00 2001 From: Chess Griffin Date: Mon, 25 Mar 2013 10:56:49 -0400 Subject: [PATCH] move dependencies into new /deps directory; modify mate-build-base.sh and mate-build-extra.sh scripts to reflect the new location of these dependencies; thanks to Willy Sudiarto Raharjo for the suggestion. --- deps/dconf/dconf.SlackBuild | 123 ++++ deps/dconf/slack-desc | 12 + deps/gtk-engines/glib-single-include.patch | 13 + deps/gtk-engines/gtk-engines.SlackBuild | 127 +++++ deps/gtk-engines/slack-desc | 10 + .../libunique-1.1.6-G_CONST_RETURN.patch | 143 +++++ .../libunique-1.1.6-compiler-warnings.patch | 50 ++ deps/libunique/libunique-1.1.6-gdbus.patch | 529 ++++++++++++++++++ deps/libunique/libunique.SlackBuild | 134 +++++ deps/libunique/slack-desc | 12 + deps/murrine/murrine.SlackBuild | 126 +++++ deps/murrine/slack-desc | 12 + deps/rarian/rarian.SlackBuild | 126 +++++ deps/rarian/slack-desc | 12 + mate-build-base.sh | 76 +++ mate-build-extra.sh | 64 +++ 16 files changed, 1569 insertions(+) create mode 100644 deps/dconf/dconf.SlackBuild create mode 100644 deps/dconf/slack-desc create mode 100644 deps/gtk-engines/glib-single-include.patch create mode 100644 deps/gtk-engines/gtk-engines.SlackBuild create mode 100644 deps/gtk-engines/slack-desc create mode 100644 deps/libunique/libunique-1.1.6-G_CONST_RETURN.patch create mode 100644 deps/libunique/libunique-1.1.6-compiler-warnings.patch create mode 100644 deps/libunique/libunique-1.1.6-gdbus.patch create mode 100644 deps/libunique/libunique.SlackBuild create mode 100644 deps/libunique/slack-desc create mode 100644 deps/murrine/murrine.SlackBuild create mode 100644 deps/murrine/slack-desc create mode 100644 deps/rarian/rarian.SlackBuild create mode 100644 deps/rarian/slack-desc create mode 100755 mate-build-base.sh create mode 100755 mate-build-extra.sh diff --git a/deps/dconf/dconf.SlackBuild b/deps/dconf/dconf.SlackBuild new file mode 100644 index 0000000..b5c49ef --- /dev/null +++ b/deps/dconf/dconf.SlackBuild @@ -0,0 +1,123 @@ +#!/bin/sh + +# Slackware build script for dconf +# Based on the dconf SlackBuild script at SlackBuilds.org + +# Copyright 2013 Chess Griffin Raleigh, NC +# 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. + +PRGNAM=dconf +VERSION=${VERSION:-0.12.1} +BUILD=${BUILD:-1} +TAG=${TAG:-_msb} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i486 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +if [ ! -f $PRGNAM-$VERSION.tar.xz ]; then + wget http://ftp.gnome.org/pub/gnome/sources/dconf/0.12/dconf-0.12.1.tar.xz +fi + +NUMJOBS=${NUMJOBS:-" -j8 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp/msb} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.xz +cd $PRGNAM-$VERSION +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" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --docdir=/usr/doc/$PRGNAM-$VERSION \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make +make install DESTDIR=$PKG + +find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + +# Compress and link manpages +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/$PRGNAM-$VERSION +cp -a \ + COPYING NEWS \ + $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild +find $PKG/usr/doc/$PRGNAM-$VERSION/ -type f -exec chmod 644 {} \; +chown -R root:root $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-txz} diff --git a/deps/dconf/slack-desc b/deps/dconf/slack-desc new file mode 100644 index 0000000..78b7632 --- /dev/null +++ b/deps/dconf/slack-desc @@ -0,0 +1,12 @@ + |-----handy-ruler------------------------------------------------------| +dconf: dconf (low-level configuration system) +dconf: +dconf: dconf is a low-level configuration system. Its main purpose is to +dconf: provide a backend to the GSettings API in GLib. +dconf: +dconf: +dconf: +dconf: +dconf: +dconf: Homepage: http://live.gnome.org/dconf +dconf: diff --git a/deps/gtk-engines/glib-single-include.patch b/deps/gtk-engines/glib-single-include.patch new file mode 100644 index 0000000..ca64fee --- /dev/null +++ b/deps/gtk-engines/glib-single-include.patch @@ -0,0 +1,13 @@ +Index: gtk-engines-2.20.2/engines/clearlooks/src/animation.c +=================================================================== +--- gtk-engines-2.20.2.orig/engines/clearlooks/src/animation.c ++++ gtk-engines-2.20.2/engines/clearlooks/src/animation.c +@@ -28,7 +28,7 @@ + #include "animation.h" + + #ifdef HAVE_WORKING_ANIMATION +-#include ++#include + + struct _AnimationInfo { + GTimer *timer; diff --git a/deps/gtk-engines/gtk-engines.SlackBuild b/deps/gtk-engines/gtk-engines.SlackBuild new file mode 100644 index 0000000..eaceb3f --- /dev/null +++ b/deps/gtk-engines/gtk-engines.SlackBuild @@ -0,0 +1,127 @@ +#!/bin/sh + +# Slackware build script for gtk-engines +# Based on the gtk-engines SlackBuild script at SlackBuilds.org + +# Copyright 2013 Chess Griffin Raleigh, NC +# 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. + +PRGNAM=gtk-engines +VERSION=${VERSION:-2.20.2} +BUILD=${BUILD:-1} +TAG=${TAG:-_msb} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i486 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +if [ ! -f $PRGNAM-$VERSION.tar.gz ]; then + wget \ + http://ftp.gnome.org/pub/gnome/sources/gtk-engines/2.20/gtk-engines-2.20.2.tar.gz +fi + +NUMJOBS=${NUMJOBS:-" -j8 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp/msb} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.gz +cd $PRGNAM-$VERSION +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 {} \; + +patch -p1 -i $CWD/glib-single-include.patch + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./autogen.sh \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --docdir=/usr/doc/$PRGNAM-$VERSION \ + --enable-animation \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make +make install DESTDIR=$PKG + +find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + +# Compress and link manpages +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/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING ChangeLog INSTALL NEWS README \ + $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild +find $PKG/usr/doc/$PRGNAM-$VERSION/ -type f -exec chmod 644 {} \; +chown -R root:root $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-txz} diff --git a/deps/gtk-engines/slack-desc b/deps/gtk-engines/slack-desc new file mode 100644 index 0000000..b2255b0 --- /dev/null +++ b/deps/gtk-engines/slack-desc @@ -0,0 +1,10 @@ + |-----handy-ruler------------------------------------------------------| +gtk-engines: gtk-engines (Theme engines for GTK+2) +gtk-engines: +gtk-engines: gtk-engines is a collection of basic theme engines for GTK+2. +gtk-engines: +gtk-engines: This package contains Clearlooks, Crux, Glide, HC, Industrial, +gtk-engines: LUA, Mist, Redmond, and ThinIce themes. +gtk-engines: +gtk-engines: Homepage: http://ftp.gnome.org/pub/GNOME/sources/gtk-engines/ +gtk-engines: diff --git a/deps/libunique/libunique-1.1.6-G_CONST_RETURN.patch b/deps/libunique/libunique-1.1.6-G_CONST_RETURN.patch new file mode 100644 index 0000000..1cc5b6e --- /dev/null +++ b/deps/libunique/libunique-1.1.6-G_CONST_RETURN.patch @@ -0,0 +1,143 @@ +From 557b0e5045c9eadb556ce11e16965cf0d0787438 Mon Sep 17 00:00:00 2001 +From: Stef Walter +Date: Tue, 14 Jun 2011 12:33:45 +0100 +Subject: [PATCH] Remove G_CONST_RETURN usage, now that its gone in glib. + +https://bugzilla.gnome.org/show_bug.cgi?id=652545 + +[Alexandre Rostovtsev : backported to unique-1.1] +--- + unique/uniqueapp.c | 4 ++-- + unique/uniquebackend.c | 4 ++-- + unique/uniquebackend.h | 4 ++-- + unique/uniqueinternals.h | 4 ++-- + unique/uniquemessage.c | 4 ++-- + unique/uniquemessage.h | 4 ++-- + 6 files changed, 12 insertions(+), 12 deletions(-) + +diff --git a/unique/uniqueapp.c b/unique/uniqueapp.c +index b40a86c..e8edc94 100644 +--- a/unique/uniqueapp.c ++++ b/unique/uniqueapp.c +@@ -781,7 +781,7 @@ unique_app_watch_window (UniqueApp *app, + } + + +-G_CONST_RETURN gchar * ++const gchar * + unique_command_to_string (UniqueApp *app, + gint command) + { +@@ -863,7 +863,7 @@ unique_command_from_string (UniqueApp *app, + return retval; + } + +-G_CONST_RETURN gchar * ++const gchar * + unique_response_to_string (UniqueResponse response) + { + GEnumClass *enum_class; +diff --git a/unique/uniquebackend.c b/unique/uniquebackend.c +index a76e42e..68e2735 100644 +--- a/unique/uniquebackend.c ++++ b/unique/uniquebackend.c +@@ -111,7 +111,7 @@ unique_backend_set_name (UniqueBackend *backend, + * + * Return value: FIXME + */ +-G_CONST_RETURN gchar * ++const gchar * + unique_backend_get_name (UniqueBackend *backend) + { + g_return_val_if_fail (UNIQUE_IS_BACKEND (backend), NULL); +@@ -154,7 +154,7 @@ unique_backend_set_startup_id (UniqueBackend *backend, + * + * Return value: FIXME + */ +-G_CONST_RETURN gchar * ++const gchar * + unique_backend_get_startup_id (UniqueBackend *backend) + { + g_return_val_if_fail (UNIQUE_IS_BACKEND (backend), NULL); +diff --git a/unique/uniquebackend.h b/unique/uniquebackend.h +index a50ce4e..b19ad3e 100644 +--- a/unique/uniquebackend.h ++++ b/unique/uniquebackend.h +@@ -94,10 +94,10 @@ GType unique_backend_get_type (void) G_GNUC_CONST; + + UniqueBackend * unique_backend_create (void); + +-G_CONST_RETURN gchar *unique_backend_get_name (UniqueBackend *backend); ++const gchar * unique_backend_get_name (UniqueBackend *backend); + void unique_backend_set_name (UniqueBackend *backend, + const gchar *name); +-G_CONST_RETURN gchar *unique_backend_get_startup_id (UniqueBackend *backend); ++const gchar * unique_backend_get_startup_id (UniqueBackend *backend); + void unique_backend_set_startup_id (UniqueBackend *backend, + const gchar *startup_id); + GdkScreen * unique_backend_get_screen (UniqueBackend *backend); +diff --git a/unique/uniqueinternals.h b/unique/uniqueinternals.h +index 3cec152..ccae0cd 100644 +--- a/unique/uniqueinternals.h ++++ b/unique/uniqueinternals.h +@@ -44,11 +44,11 @@ UniqueResponse unique_app_emit_message_received (UniqueApp *app, + * and then back into an id + */ + UniqueResponse unique_response_from_string (const gchar *response); +-G_CONST_RETURN gchar *unique_response_to_string (UniqueResponse response); ++const gchar * unique_response_to_string (UniqueResponse response); + + gint unique_command_from_string (UniqueApp *app, + const gchar *command); +-G_CONST_RETURN gchar *unique_command_to_string (UniqueApp *app, ++const gchar * unique_command_to_string (UniqueApp *app, + gint command); + + G_END_DECLS +diff --git a/unique/uniquemessage.c b/unique/uniquemessage.c +index c74392d..2b2a9fc 100644 +--- a/unique/uniquemessage.c ++++ b/unique/uniquemessage.c +@@ -185,7 +185,7 @@ unique_message_data_set (UniqueMessageData *message_data, + * + * Since: 1.0.2 + */ +-G_CONST_RETURN guchar * ++const guchar * + unique_message_data_get (UniqueMessageData *message_data, + gsize *length) + { +@@ -525,7 +525,7 @@ unique_message_data_get_screen (UniqueMessageData *message_data) + * owned by the #UniqueMessageData structure and should not be + * modified or freed + */ +-G_CONST_RETURN gchar * ++const gchar * + unique_message_data_get_startup_id (UniqueMessageData *message_data) + { + g_return_val_if_fail (message_data != NULL, NULL); +diff --git a/unique/uniquemessage.h b/unique/uniquemessage.h +index d3e9c3c..93eee21 100644 +--- a/unique/uniquemessage.h ++++ b/unique/uniquemessage.h +@@ -48,7 +48,7 @@ void unique_message_data_free (UniqueMessageData *me + void unique_message_data_set (UniqueMessageData *message_data, + const guchar *data, + gsize length); +-G_CONST_RETURN guchar *unique_message_data_get (UniqueMessageData *message_data, ++const guchar * unique_message_data_get (UniqueMessageData *message_data, + gsize *length); + + gboolean unique_message_data_set_text (UniqueMessageData *message_data, +@@ -63,7 +63,7 @@ void unique_message_data_set_filename (UniqueMessageData *me + gchar * unique_message_data_get_filename (UniqueMessageData *message_data); + + GdkScreen * unique_message_data_get_screen (UniqueMessageData *message_data); +-G_CONST_RETURN gchar * unique_message_data_get_startup_id (UniqueMessageData *message_data); ++const gchar * unique_message_data_get_startup_id (UniqueMessageData *message_data); + guint unique_message_data_get_workspace (UniqueMessageData *message_data); + + G_END_DECLS +-- +1.7.6 + diff --git a/deps/libunique/libunique-1.1.6-compiler-warnings.patch b/deps/libunique/libunique-1.1.6-compiler-warnings.patch new file mode 100644 index 0000000..f47e662 --- /dev/null +++ b/deps/libunique/libunique-1.1.6-compiler-warnings.patch @@ -0,0 +1,50 @@ +From 9df132a70d54b768a8e1d0335d24b85ac9b3fb76 Mon Sep 17 00:00:00 2001 +From: Emmanuele Bassi +Date: Sun, 27 Mar 2011 08:42:22 +0000 +Subject: Remove compiler warnings + +(cherry picked from commit f791ed16b19dddc7fbaf90d8f797520e67883021) + +Signed-off-by: Emmanuele Bassi +--- +diff --git a/unique/dbus/uniquebackend-dbus.c b/unique/dbus/uniquebackend-dbus.c +index 3ae1bed..69faa00 100644 +--- a/unique/dbus/uniquebackend-dbus.c ++++ b/unique/dbus/uniquebackend-dbus.c +@@ -84,7 +84,6 @@ unique_backend_dbus_register_proxy (UniqueBackendDBus *backend_dbus) + static gboolean + unique_backend_dbus_request_name (UniqueBackend *backend) + { +- UniqueBackendDBus *backend_dbus; + const gchar *name; + DBusGConnection *connection; + DBusGProxy *proxy; +@@ -97,8 +96,6 @@ unique_backend_dbus_request_name (UniqueBackend *backend) + if (!connection) + return FALSE; + +- backend_dbus = UNIQUE_BACKEND_DBUS (backend); +- + retval = TRUE; + name = unique_backend_get_name (backend); + g_assert (name != NULL); +@@ -207,10 +204,14 @@ unique_backend_dbus_send_message (UniqueBackend *backend, + cmd, data, time_, + &resp, + &error); +- if (error) ++ if (!res) + { +- g_warning ("Error while sending message: %s", error->message); +- g_error_free (error); ++ if (error) ++ { ++ g_warning ("Error while sending message: %s", error->message); ++ g_error_free (error); ++ } ++ + g_free (cmd); + + return UNIQUE_RESPONSE_INVALID; +-- +cgit v0.9 diff --git a/deps/libunique/libunique-1.1.6-gdbus.patch b/deps/libunique/libunique-1.1.6-gdbus.patch new file mode 100644 index 0000000..a5045d5 --- /dev/null +++ b/deps/libunique/libunique-1.1.6-gdbus.patch @@ -0,0 +1,529 @@ +From 01066039529c0181f231325476bb4823c16a2aea Mon Sep 17 00:00:00 2001 +From: Christian Persch +Date: Sat, 15 May 2010 17:47:45 +0000 +Subject: Add GDBus backend + +Add backend using GDBus, the new D-BUS binding in GIO 2.25. + +Bug #618723. +--- +diff --git a/configure.ac b/configure.ac +index bc3163a..b6a4221 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -116,6 +116,19 @@ AS_IF([test "x$have_dbus" = "xyes"], + + AM_CONDITIONAL([HAVE_DBUS], [test "x$have_dbus" = "xyes"]) + ++dnl GDBus backend ++dnl This is the default backend if GIO is recent enough ++m4_define([gdbus_gio_required],[2.25.7]) ++PKG_CHECK_MODULES([GDBUS],[gio-2.0 >= gdbus_gio_required],[have_gdbus=yes],[have_gdbus=no]) ++ ++AS_IF([test "x$have_gdbus" = "xyes"], ++ [ ++ AC_DEFINE([HAVE_GDBUS],[1],[Define if GDBus backend is enabled]) ++ ] ++ ) ++ ++AM_CONDITIONAL([HAVE_GDBUS],[test "$have_gdbus" = "yes"]) ++ + dnl Bacon backend + dnl This is the fallback backend, so we *need* these headers and functions + dnl even if we end up using D-Bus +@@ -146,7 +159,13 @@ AM_CONDITIONAL([HAVE_BACON], [test "x$have_bacon" = "xyes"]) + + dnl Choose the default backend + AC_MSG_CHECKING([for default IPC mechanism]) +-AS_IF([test "x$have_dbus" = "xyes"], ++AS_IF([test "x$have_gdbus" = "xyes"], ++ [ ++ UNIQUE_DEFAULT_BACKEND=gdbus ++ AC_MSG_RESULT([GDBus]) ++ ], ++ ++ [test "x$have_dbus" = "xyes"], + [ + UNIQUE_DEFAULT_BACKEND=dbus + AC_MSG_RESULT([D-Bus]) +@@ -243,6 +262,7 @@ AC_CONFIG_FILES([ + unique/uniqueversion.h + unique/bacon/Makefile + unique/dbus/Makefile ++ unique/gdbus/Makefile + tests/Makefile + po/Makefile.in + ]) +@@ -261,6 +281,7 @@ Configuration: + Backends: + Unix Domain Socket: $have_bacon + D-BUS: $have_dbus ++ GDBus: $have_gdbus + + Default backend: $UNIQUE_DEFAULT_BACKEND + " +diff --git a/doc/reference/Makefile.am b/doc/reference/Makefile.am +index 3172588..2c1dbf4 100644 +--- a/doc/reference/Makefile.am ++++ b/doc/reference/Makefile.am +@@ -50,7 +50,8 @@ IGNORE_HFILES = \ + uniquemarshal.h \ + stamp-uniquemarshal.h \ + bacon \ +- dbus ++ dbus \ ++ gdbus + + EXTRA_HFILES = + +diff --git a/unique/Makefile.am b/unique/Makefile.am +index 6475a87..8f0b7ba 100644 +--- a/unique/Makefile.am ++++ b/unique/Makefile.am +@@ -12,7 +12,11 @@ if HAVE_DBUS + SUBDIRS += dbus + endif + +-DIST_SUBDIRS = bacon dbus ++if HAVE_GDBUS ++SUBDIRS += gdbus ++endif ++ ++DIST_SUBDIRS = bacon dbus gdbus + + INCLUDES = -I$(top_srcdir) + +@@ -72,6 +76,10 @@ if HAVE_DBUS + unique_backend_libs += $(top_builddir)/unique/dbus/libunique-dbus.la + endif + ++if HAVE_GDBUS ++unique_backend_libs += $(top_builddir)/unique/gdbus/libunique-gdbus.la ++endif ++ + uniquedir = $(includedir)/unique-1.0/unique + unique_HEADERS = \ + $(unique_sources_h) \ +diff --git a/unique/gdbus/.gitignore b/unique/gdbus/.gitignore +new file mode 100644 +index 0000000..c7e22c3 +--- /dev/null ++++ b/unique/gdbus/.gitignore +@@ -0,0 +1,2 @@ ++libunique_gdbus_la-uniquebackend-gdbus.lo ++libunique-gdbus.la +diff --git a/unique/gdbus/Makefile.am b/unique/gdbus/Makefile.am +new file mode 100644 +index 0000000..e10637d +--- /dev/null ++++ b/unique/gdbus/Makefile.am +@@ -0,0 +1,24 @@ ++include $(top_srcdir)/build/autotools/Makefile.am.silent ++ ++noinst_LTLIBRARIES = libunique-gdbus.la ++ ++libunique_gdbus_la_SOURCES = \ ++ uniquebackend-gdbus.h \ ++ uniquebackend-gdbus.c ++ ++libunique_gdbus_la_PPCFLAGS = \ ++ -DG_LOG_DOMAIN=\"Unique-GDBus\" \ ++ -DG_DISABLE_SINGLE_INCLUDES \ ++ -I$(top_srcdir) \ ++ $(AM_CPPFLAGS) ++ ++libunique_gdbus_la_CFLAGS = \ ++ $(UNIQUE_CFLAGS) \ ++ $(UNIQUE_DEBUG_CFLAGS) \ ++ $(MAINTAINER_CFLAGS) \ ++ $(GDBUS_CFLAGS) \ ++ $(AM_CFLAGS) ++ ++libunique_gdbus_la_LIBADD = \ ++ $(UNIQUE_LIBS) \ ++ $(GDBUS_LIBS) +diff --git a/unique/gdbus/uniquebackend-gdbus.c b/unique/gdbus/uniquebackend-gdbus.c +new file mode 100644 +index 0000000..14d54a9 +--- /dev/null ++++ b/unique/gdbus/uniquebackend-gdbus.c +@@ -0,0 +1,303 @@ ++/* Unique - Single Instance application library ++ * uniquebackend-gdbus.c: GDBus implementation of UniqueBackend ++ * ++ * Copyright (C) 2007 Emmanuele Bassi ++ * Copyright © 2010 Christian Persch ++ * ++ * This library is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2.1 of the License, or (at your option) any later version. ++ * ++ * This library 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 ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with this library; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA ++ * 02110-1301 USA ++ */ ++ ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif ++ ++#include ++#include ++ ++#include "../uniqueinternals.h" ++#include "uniquebackend-gdbus.h" ++ ++struct _UniqueBackendGDBus ++{ ++ UniqueBackend parent_instance; ++ ++ GDBusConnection *connection; ++ guint registration_id; ++ guint owner_id; ++ gboolean owns_name; ++ GMainLoop *loop; ++}; ++ ++struct _UniqueBackendGDBusClass ++{ ++ UniqueBackendClass parent_class; ++ GDBusNodeInfo *introspection_data; ++}; ++ ++G_DEFINE_TYPE (UniqueBackendGDBus, unique_backend_gdbus, UNIQUE_TYPE_BACKEND); ++ ++static const char introspection_xml[] = ++ "" ++ "" ++ "" ++ "" ++ "" ++ "" ++ "" ++ "" ++ "" ++ ""; ++ ++static void ++method_call_cb (GDBusConnection *connection, ++ const gchar *sender, ++ const gchar *object_path, ++ const gchar *interface_name, ++ const gchar *method_name, ++ GVariant *parameters, ++ GDBusMethodInvocation *invocation, ++ gpointer user_data) ++{ ++ if (g_strcmp0 (interface_name, "org.gtk.UniqueApp") != 0 || ++ g_strcmp0 (object_path, "/Factory") != 0) ++ return; ++ ++ if (g_strcmp0 (method_name, "SendMessage") == 0) ++ { ++ UniqueBackend *backend = UNIQUE_BACKEND (user_data); ++ const gchar *command_str, *data, *startup_id; ++ guint len, screen_num, workspace, time_; ++ UniqueMessageData message_data; ++ gint command; ++ UniqueResponse response; ++ GdkDisplay *display; ++ ++ g_variant_get (parameters, ++ "(&s(&suuu&s)u)", ++ &command_str, ++ &data, &len, &screen_num, &workspace, &startup_id, ++ &time_); ++ ++ command = unique_command_from_string (backend->parent, command_str); ++ if (command == 0) ++ { ++ g_dbus_method_invocation_return_error (invocation, ++ G_DBUS_ERROR, ++ G_DBUS_ERROR_INVALID_ARGS, ++ "Invalid command `%s' received", ++ command_str); ++ return; ++ } ++ ++ display = gdk_display_get_default (); ++ ++ message_data.data = len > 0 ? (guchar *) data : NULL; ++ message_data.length = (gint) len; ++ message_data.workspace = workspace; ++ message_data.startup_id = (char *) startup_id; ++ if (screen_num >= 0 && screen_num < gdk_display_get_n_screens (display)) ++ message_data.screen = gdk_display_get_screen (display, screen_num); ++ else ++ message_data.screen = gdk_screen_get_default (); ++ ++ response = unique_app_emit_message_received (backend->parent, command, &message_data, time_); ++ ++ g_dbus_method_invocation_return_value (invocation, ++ g_variant_new ("(s)", unique_response_to_string (response))); ++ return; ++ } ++} ++ ++static void ++name_acquired_cb (GDBusConnection *connection, ++ const gchar *name, ++ gpointer user_data) ++{ ++ UniqueBackendGDBus *backend_gdbus = UNIQUE_BACKEND_GDBUS (user_data); ++ ++ backend_gdbus->owns_name = TRUE; ++ if (backend_gdbus->loop && g_main_loop_is_running (backend_gdbus->loop)) ++ g_main_loop_quit (backend_gdbus->loop); ++} ++ ++static void ++name_lost_cb (GDBusConnection *connection, ++ const gchar *name, ++ gpointer user_data) ++{ ++ UniqueBackendGDBus *backend_gdbus = UNIQUE_BACKEND_GDBUS (user_data); ++ ++ backend_gdbus->owns_name = FALSE; ++ if (backend_gdbus->loop && g_main_loop_is_running (backend_gdbus->loop)) ++ g_main_loop_quit (backend_gdbus->loop); ++} ++ ++static const GDBusInterfaceVTable interface_vtable = { ++ method_call_cb, ++ NULL, ++ NULL ++}; ++ ++static gboolean ++unique_backend_gdbus_request_name (UniqueBackend *backend) ++{ ++ UniqueBackendGDBus *backend_gdbus = UNIQUE_BACKEND_GDBUS (backend); ++ UniqueBackendGDBusClass *klass = UNIQUE_BACKEND_GDBUS_GET_CLASS (backend); ++ GError *error; ++ ++ error = NULL; ++ backend_gdbus->connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error); ++ if (!backend_gdbus->connection) ++ { ++ g_warning ("Unable to open a connection to the session bus: %s", ++ error->message); ++ g_error_free (error); ++ ++ return FALSE; ++ } ++ ++ backend_gdbus->registration_id = ++ g_dbus_connection_register_object (backend_gdbus->connection, ++ "/Factory", ++ klass->introspection_data->interfaces[0], ++ &interface_vtable, ++ backend, NULL, ++ &error); ++ if (backend_gdbus->registration_id == 0) ++ { ++ g_warning ("Unable to register object with the session bus: %s", ++ error->message); ++ g_error_free (error); ++ ++ return FALSE; ++ } ++ ++ backend_gdbus->owns_name = FALSE; ++ ++ backend_gdbus->owner_id = ++ g_bus_own_name_on_connection (backend_gdbus->connection, ++ unique_backend_get_name (backend), ++ G_BUS_NAME_OWNER_FLAGS_NONE, ++ name_acquired_cb, ++ name_lost_cb, ++ backend, NULL); ++ ++ backend_gdbus->loop = g_main_loop_new (NULL, FALSE); ++ g_main_loop_run (backend_gdbus->loop); ++ g_main_loop_unref (backend_gdbus->loop); ++ backend_gdbus->loop = NULL; ++ ++ return backend_gdbus->owns_name; ++} ++ ++static UniqueResponse ++unique_backend_gdbus_send_message (UniqueBackend *backend, ++ gint command, ++ UniqueMessageData *message_data, ++ guint time_) ++{ ++ UniqueBackendGDBus *backend_gdbus = UNIQUE_BACKEND_GDBUS (backend); ++ GVariantBuilder builder; ++ GVariant *result; ++ const gchar *command_str, *resp; ++ UniqueResponse response; ++ GError *error; ++ ++ command_str = unique_command_to_string (backend->parent, command); ++ ++ g_variant_builder_init (&builder, G_VARIANT_TYPE ("(s(suuus)u)")); ++ g_variant_builder_add (&builder, "s", command_str ? command_str : ""); ++ g_variant_builder_open (&builder, G_VARIANT_TYPE ("(suuus)")); ++ g_variant_builder_add (&builder, "s", message_data->data ? (char *) message_data->data : ""); ++ g_variant_builder_add (&builder, "u", (guint) message_data->length); ++ g_variant_builder_add (&builder, "u", (guint) gdk_screen_get_number (message_data->screen)); ++ g_variant_builder_add (&builder, "u", (guint) message_data->workspace); ++ g_variant_builder_add (&builder, "s", message_data->startup_id ? message_data->startup_id : ""); ++ g_variant_builder_close (&builder); ++ g_variant_builder_add (&builder, "u", time_); ++ ++ error = NULL; ++ result = g_dbus_connection_call_sync (backend_gdbus->connection, ++ unique_backend_get_name (backend), ++ "/Factory", ++ "org.gtk.UniqueApp", ++ "SendMessage", ++ g_variant_builder_end (&builder), ++ G_VARIANT_TYPE ("(s)"), ++ G_DBUS_CALL_FLAGS_NO_AUTO_START, ++ -1, ++ NULL, ++ &error); ++ if (error) ++ { ++ g_warning ("Error while sending message: %s", error->message); ++ g_error_free (error); ++ ++ return UNIQUE_RESPONSE_INVALID; ++ } ++ ++ g_variant_get (result, "(&s)", &resp); ++ response = unique_response_from_string (resp); ++ g_variant_unref (result); ++ ++ return response; ++} ++ ++static void ++unique_backend_gdbus_dispose (GObject *gobject) ++{ ++ UniqueBackendGDBus *backend_gdbus = UNIQUE_BACKEND_GDBUS (gobject); ++ ++ if (backend_gdbus->owner_id != 0) ++ { ++ g_bus_unown_name (backend_gdbus->owner_id); ++ backend_gdbus->owner_id = 0; ++ } ++ if (backend_gdbus->registration_id != 0) ++ { ++ g_assert (backend_gdbus->connection != NULL); ++ g_dbus_connection_unregister_object (backend_gdbus->connection, ++ backend_gdbus->registration_id); ++ backend_gdbus->registration_id = 0; ++ } ++ if (backend_gdbus->connection) ++ { ++ g_object_unref (backend_gdbus->connection); ++ backend_gdbus->connection = NULL; ++ } ++ ++ G_OBJECT_CLASS (unique_backend_gdbus_parent_class)->dispose (gobject); ++} ++ ++static void ++unique_backend_gdbus_class_init (UniqueBackendGDBusClass *klass) ++{ ++ GObjectClass *gobject_class = G_OBJECT_CLASS (klass); ++ UniqueBackendClass *backend_class = UNIQUE_BACKEND_CLASS (klass); ++ ++ gobject_class->dispose = unique_backend_gdbus_dispose; ++ ++ backend_class->request_name = unique_backend_gdbus_request_name; ++ backend_class->send_message = unique_backend_gdbus_send_message; ++ ++ klass->introspection_data = g_dbus_node_info_new_for_xml (introspection_xml, NULL); ++ g_assert (klass->introspection_data != NULL); ++} ++ ++static void ++unique_backend_gdbus_init (UniqueBackendGDBus *backend) ++{ ++} +diff --git a/unique/gdbus/uniquebackend-gdbus.h b/unique/gdbus/uniquebackend-gdbus.h +new file mode 100644 +index 0000000..41eb6e5 +--- /dev/null ++++ b/unique/gdbus/uniquebackend-gdbus.h +@@ -0,0 +1,43 @@ ++/* Unique - Single Instance application library ++ * uniquebackend-gdbus.c: GDBus implementation of UniqueBackend ++ * ++ * Copyright (C) 2007 Emmanuele Bassi ++ * ++ * This library is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2.1 of the License, or (at your option) any later version. ++ * ++ * This library 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 ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with this library; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA ++ * 02110-1301 USA ++ */ ++ ++#ifndef __UNIQUE_BACKEND_GDBUS_H__ ++#define __UNIQUE_BACKEND_GDBUS_H__ ++ ++#include ++ ++G_BEGIN_DECLS ++ ++#define UNIQUE_TYPE_BACKEND_GDBUS (unique_backend_gdbus_get_type ()) ++#define UNIQUE_BACKEND_GDBUS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), UNIQUE_TYPE_BACKEND_GDBUS, UniqueBackendGDBus)) ++#define UNIQUE_IS_BACKEND_GDBUS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), UNIQUE_TYPE_BACKEND_GDBUS)) ++#define UNIQUE_BACKEND_GDBUS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), UNIQUE_TYPE_BACKEND_GDBUS, UniqueBackendGDBusClass)) ++#define UNIQUE_IS_BACKEND_GDBUS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), UNIQUE_TYPE_BACKEND_GDBUS)) ++#define UNIQUE_BACKEND_GDBUS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), UNIQUE_TYPE_BACKEND_GDBUS, UniqueBackendGDBusClass)) ++ ++typedef struct _UniqueBackendGDBus UniqueBackendGDBus; ++typedef struct _UniqueBackendGDBusClass UniqueBackendGDBusClass; ++ ++GType unique_backend_gdbus_get_type (void) G_GNUC_CONST; ++ ++G_END_DECLS ++ ++#endif /* __UNIQUE_BACKEND_GDBUS_H__ */ +diff --git a/unique/uniquebackend.c b/unique/uniquebackend.c +index 18a0c45..a76e42e 100644 +--- a/unique/uniquebackend.c ++++ b/unique/uniquebackend.c +@@ -298,6 +298,9 @@ unique_backend_send_message (UniqueBackend *backend, + #ifdef HAVE_DBUS + #include "dbus/uniquebackend-dbus.h" + #endif ++#ifdef HAVE_GDBUS ++#include "gdbus/uniquebackend-gdbus.h" ++#endif + + /** + * unique_backend_create: +@@ -329,6 +332,10 @@ unique_backend_create (void) + if (strcmp (backend_name, "dbus") == 0) + backend_gtype = unique_backend_dbus_get_type (); + #endif /* HAVE_DBUS */ ++#ifdef HAVE_GDBUS ++ if (strcmp (backend_name, "gdbus") == 0) ++ backend_gtype = unique_backend_gdbus_get_type (); ++#endif /* HAVE_GDBUS */ + #if !defined(HAVE_BACON) && !defined(HAVE_DBUS) + #error Need either bacon or dbus + #endif +-- +cgit v0.8.3.1 diff --git a/deps/libunique/libunique.SlackBuild b/deps/libunique/libunique.SlackBuild new file mode 100644 index 0000000..dfeec72 --- /dev/null +++ b/deps/libunique/libunique.SlackBuild @@ -0,0 +1,134 @@ +#!/bin/sh + +# Slackware build script for libunique + +# Copyright 2013 Chess Griffin Raleigh, NC +# 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. + +PRGNAM=libunique +VERSION=${VERSION:-1.1.6} +BUILD=${BUILD:-1} +TAG=${TAG:-_msb} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i486 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +if [ ! -f $PRGNAM-$VERSION.tar.bz2 ]; then + wget http://ftp.gnome.org/pub/GNOME/sources/libunique/1.1/libunique-1.1.6.tar.bz2 +fi + +NUMJOBS=${NUMJOBS:-" -j8 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp/msb} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 +cd $PRGNAM-$VERSION +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 {} \; + +patch -p1 < $CWD/libunique-1.1.6-compiler-warnings.patch +patch -p1 < $CWD/libunique-1.1.6-G_CONST_RETURN.patch +patch -p1 < $CWD/libunique-1.1.6-gdbus.patch + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --docdir=/usr/doc/$PRGNAM-$VERSION \ + --disable-static \ + --enable-dbus=no \ + --enable-gdbus=yes \ + --enable-bacon=yes \ + --enable-introspection=no \ + --disable-dependency-tracking \ + --with-x \ + --enable-debug=no \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make +make install DESTDIR=$PKG + +find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + +# Compress and link manpages +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/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING ChangeLog INSTALL NEWS README \ + $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild +find $PKG/usr/doc/$PRGNAM-$VERSION/ -type f -exec chmod 644 {} \; +chown -R root:root $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-txz} diff --git a/deps/libunique/slack-desc b/deps/libunique/slack-desc new file mode 100644 index 0000000..a60dfcc --- /dev/null +++ b/deps/libunique/slack-desc @@ -0,0 +1,12 @@ + |-----handy-ruler------------------------------------------------------| +libunique: libunique (a library for writing single instance applications) +libunique: +libunique: Unique is a library for writing single instance applications. Unique +libunique: makes it easy to write this kind of applications, by providing a base +libunique: class, taking care of all the IPC machinery needed to send messages +libunique: to a running instance, and also handling the startup notification +libunique: side. +libunique: +libunique: +libunique: Homepage: http://live.gnome.org/LibUnique +libunique: diff --git a/deps/murrine/murrine.SlackBuild b/deps/murrine/murrine.SlackBuild new file mode 100644 index 0000000..71e16db --- /dev/null +++ b/deps/murrine/murrine.SlackBuild @@ -0,0 +1,126 @@ +#!/bin/sh + +# Slackware build script for murrine +# Based on the murrine SlackBuild script at SlackBuilds.org + +# Copyright 2013 Chess Griffin Raleigh, NC +# 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. + +PRGNAM=murrine +VERSION=${VERSION:-0.98.2} +BUILD=${BUILD:-1} +TAG=${TAG:-_msb} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i486 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +if [ ! -f $PRGNAM-$VERSION.tar.xz ]; then + wget \ + http://ftp.acc.umu.se/pub/GNOME/sources/murrine/0.98/murrine-0.98.2.tar.xz +fi + +NUMJOBS=${NUMJOBS:-" -j8 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp/msb} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.xz +cd $PRGNAM-$VERSION +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" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --docdir=/usr/doc/$PRGNAM-$VERSION \ + --infodir=/usr/info \ + --enable-animation \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make +make install DESTDIR=$PKG + +find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + +# Compress and link manpages +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/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING* ChangeLog INSTALL NEWS README TODO \ + $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild +find $PKG/usr/doc/$PRGNAM-$VERSION/ -type f -exec chmod 644 {} \; +chown -R root:root $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-txz} diff --git a/deps/murrine/slack-desc b/deps/murrine/slack-desc new file mode 100644 index 0000000..0b372ba --- /dev/null +++ b/deps/murrine/slack-desc @@ -0,0 +1,12 @@ + |-----handy-ruler------------------------------------------------------| +murrine: murrine (Gtk2 Cairo Engine) +murrine: +murrine: Murrine is an Italian word meaning colored glass patterns made by +murrine: Venetian glass makers. Murrine is a gtk2 engine that will make +murrine: your desktop look like a beautiful Murrina(which is the italian +murrine: singular of Murrine). +murrine: +murrine: +murrine: +murrine: Homepage: http://www.cimitan.com/murrine +murrine: diff --git a/deps/rarian/rarian.SlackBuild b/deps/rarian/rarian.SlackBuild new file mode 100644 index 0000000..e527598 --- /dev/null +++ b/deps/rarian/rarian.SlackBuild @@ -0,0 +1,126 @@ +#!/bin/sh + +# Slackware build script for rarian +# Based on the rarian SlackBuild script at SlackBuilds.org + +# Copyright 2013 Chess Griffin Raleigh, NC +# 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. + +PRGNAM=rarian +VERSION=${VERSION:-0.8.1} +BUILD=${BUILD:-1} +TAG=${TAG:-_msb} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i486 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +if [ ! -f $PRGNAM-$VERSION.tar.bz2 ]; then + wget http://rarian.freedesktop.org/Releases/rarian-0.8.1.tar.bz2 +fi + +NUMJOBS=${NUMJOBS:-" -j8 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp/msb} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 +cd $PRGNAM-$VERSION +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" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --docdir=/usr/doc/$PRGNAM-$VERSION \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make +make install DESTDIR=$PKG + +find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + +# Compress and link manpages +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/$PRGNAM-$VERSION +cp -a \ + MAINTAINERS TODO COPYING NEWS README INSTALL COPYING.UTILS COPYING.LIB ChangeLog \ + $PKG/usr/doc/$PRGNAM-$VERSION +mv $PKG/usr/share/help $PKG/usr/doc/$PRGNAM-$VERSION/help +(ln -s /usr/share/librarian $PKG/usr/doc/$PRGNAM-$VERSION/librarian) + +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild +find $PKG/usr/doc/$PRGNAM-$VERSION/ -type f -exec chmod 644 {} \; +chown -R root:root $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-txz} diff --git a/deps/rarian/slack-desc b/deps/rarian/slack-desc new file mode 100644 index 0000000..76396a3 --- /dev/null +++ b/deps/rarian/slack-desc @@ -0,0 +1,12 @@ + |-----handy-ruler------------------------------------------------------| +rarian: rarian (documentation metadata library) +rarian: +rarian: Rarian is a documentation metadata library based on the proposed +rarian: freedesktop.org specification. +rarian: +rarian: Rarian is a replacement for ScrollKeeper. +rarian: +rarian: +rarian: +rarian: Homepage: http://rarian.freedesktop.org +rarian: diff --git a/mate-build-base.sh b/mate-build-base.sh new file mode 100755 index 0000000..9ac67fd --- /dev/null +++ b/mate-build-base.sh @@ -0,0 +1,76 @@ +#!/bin/sh + +# Copyright 2012 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Copyright 2013 Chess Griffin Raleigh, NC +# All rights reserved. +# +# Based on the xfce-build-all.sh script by Patrick J. Volkerding +# +# 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. + +# Set to 1 if you'd like to install/upgrade package as they are built. +# This is recommended. +INST=1 + +TMP=${TMP:-/tmp} + +MSBROOT=$(pwd) + +for dir in \ + base/mate-common \ + deps/rarian \ + base/mate-doc-utils \ + base/libmatenotify \ + base/libmatekbd \ + base/libmateweather \ + base/mate-icon-theme \ + base/mate-dialogs \ + base/mate-desktop \ + deps/libunique \ + base/mate-file-manager \ + base/libmatewnck \ + base/mate-notification-daemon \ + base/mate-backgrounds \ + base/mate-menus \ + base/mate-window-manager \ + base/mate-polkit \ + deps/dconf \ + base/mate-settings-daemon \ + base/mate-control-center \ + base/mate-panel \ + base/mate-session-manager \ + deps/gtk-engines \ + deps/murrine \ + base/mate-themes \ + ; do + package=$(echo $dir | cut -f2- -d /) + cd $MSBROOT/$dir || exit 1 + sh ${package}.SlackBuild || ( touch /tmp/${package}.failed ; exit 1 ) || exit 1 + if [ "$INST" = "1" ]; then + PACKAGE="$(ls -t $TMP/$(ls ${package}-*.tar.?z* | rev | cut -f2- -d - | rev)-*txz | head -n 1)" + if [ -f $PACKAGE ]; then + upgradepkg --install-new --reinstall $PACKAGE + else + echo "Error: package to upgrade "$PACKAGE" not found in $TMP" + exit 1 + fi + fi + cd $MSBROOT +done diff --git a/mate-build-extra.sh b/mate-build-extra.sh new file mode 100755 index 0000000..6a13050 --- /dev/null +++ b/mate-build-extra.sh @@ -0,0 +1,64 @@ +#!/bin/sh + +# Copyright 2012 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Copyright 2013 Chess Griffin Raleigh, NC +# All rights reserved. +# +# Based on the xfce-build-all.sh script by Patrick J. Volkerding +# +# 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. + +# Set to 1 if you'd like to install/upgrade package as they are built. +# This is recommended. +INST=1 + +TMP=${TMP:-/tmp} + +MSBROOT=$(pwd) + +for dir in \ + extra/libmatekeyring \ + extra/mate-keyring \ + extra/mate-applets \ + extra/mate-calc \ + extra/mate-character-map \ + extra/mate-document-viewer \ + extra/mate-file-archiver \ + extra/mate-file-manager-open-terminal \ + extra/mate-icon-theme-faenza \ + extra/mate-media \ + extra/mate-menu-editor \ + extra/mate-power-manager \ + extra/mate-terminal \ + ; do + package=$(echo $dir | cut -f2- -d /) + cd $MSBROOT/$dir || exit 1 + sh ${package}.SlackBuild || ( touch /tmp/${package}.failed ; exit 1 ) || exit 1 + if [ "$INST" = "1" ]; then + PACKAGE="$(ls -t $TMP/$(ls ${package}-*.tar.?z* | rev | cut -f2- -d - | rev)-*txz | head -n 1)" + if [ -f $PACKAGE ]; then + upgradepkg --install-new --reinstall $PACKAGE + else + echo "Error: package to upgrade "$PACKAGE" not found in $TMP" + exit 1 + fi + fi + cd $MSBROOT +done