From 4d635ee499b92b309dff0e2482a1a3f228c34862 Mon Sep 17 00:00:00 2001 From: David Woodfall Date: Tue, 24 Oct 2017 00:33:37 +0100 Subject: libraries/libappindicator3: Added (Menu Library). Signed-off-by: David Spencer --- libraries/libappindicator3/README | 3 + .../libappindicator3/libappindicator3.SlackBuild | 129 +++++++++++++++++++++ libraries/libappindicator3/libappindicator3.info | 10 ++ .../patches/0001-Glib.Timeout-fix.patch | 24 ++++ .../0002-Fix-mono-nunit-pkgconfig-name.patch | 25 ++++ .../0003-Fix-Mono-assemblies-directory.patch | 39 +++++++ .../libappindicator3/patches/badfunction.patch | 12 ++ .../patches/conditional-py-bindings.patch | 72 ++++++++++++ .../libappindicator3/patches/disable-mono.patch | 21 ++++ libraries/libappindicator3/patches/gtk3.patch | 9 ++ .../patches/improved-plasma-support.patch | 27 +++++ .../libappindicator3/patches/vala-inherit.patch | 14 +++ libraries/libappindicator3/slack-desc | 19 +++ 13 files changed, 404 insertions(+) create mode 100644 libraries/libappindicator3/README create mode 100644 libraries/libappindicator3/libappindicator3.SlackBuild create mode 100644 libraries/libappindicator3/libappindicator3.info create mode 100644 libraries/libappindicator3/patches/0001-Glib.Timeout-fix.patch create mode 100644 libraries/libappindicator3/patches/0002-Fix-mono-nunit-pkgconfig-name.patch create mode 100644 libraries/libappindicator3/patches/0003-Fix-Mono-assemblies-directory.patch create mode 100644 libraries/libappindicator3/patches/badfunction.patch create mode 100644 libraries/libappindicator3/patches/conditional-py-bindings.patch create mode 100644 libraries/libappindicator3/patches/disable-mono.patch create mode 100644 libraries/libappindicator3/patches/gtk3.patch create mode 100644 libraries/libappindicator3/patches/improved-plasma-support.patch create mode 100644 libraries/libappindicator3/patches/vala-inherit.patch create mode 100644 libraries/libappindicator3/slack-desc (limited to 'libraries/libappindicator3') diff --git a/libraries/libappindicator3/README b/libraries/libappindicator3/README new file mode 100644 index 0000000000..c2e657520c --- /dev/null +++ b/libraries/libappindicator3/README @@ -0,0 +1,3 @@ +A library to allow applications to export a menu into the Unity Menu +bar. Based on KSNI it also works in KDE and will fallback to generic +Systray support if none of those are available. diff --git a/libraries/libappindicator3/libappindicator3.SlackBuild b/libraries/libappindicator3/libappindicator3.SlackBuild new file mode 100644 index 0000000000..83f9670d83 --- /dev/null +++ b/libraries/libappindicator3/libappindicator3.SlackBuild @@ -0,0 +1,129 @@ +#!/bin/sh + +# Slackware build script for libappindicator +# Copyright 2017 David Woodfall +# 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=libappindicator3 +SRCNAM=libappindicator +VERSION=${VERSION:-16.10} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i586 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -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 $SRCNAM-$VERSION +tar xvf $CWD/$SRCNAM-$VERSION.tar.gz +cd $SRCNAM-$VERSION +chown -R root:root . +find -L . \ + \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ + -o -perm 511 \) -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; + +# Force autogen.sh to use gtk3 or it errors out +patch -p1 --verbose < $CWD/patches/gtk3.patch + +# The next 3 patches shamelessly pinched from Arch +patch -p1 --verbose < $CWD/patches/0001-Glib.Timeout-fix.patch +patch -p1 --verbose < $CWD/patches/0002-Fix-mono-nunit-pkgconfig-name.patch +patch -p1 --verbose < $CWD/patches/0003-Fix-Mono-assemblies-directory.patch + +# This one is also from Arch(ish), but had to be recreated best it could +patch -p1 --verbose < $CWD/patches/improved-plasma-support.patch + +# Patch pinched from Gentoo +patch -p1 --verbose < $CWD/patches/conditional-py-bindings.patch + +# Removed a function which had no declaration +patch -p1 --verbose < $CWD/patches/badfunction.patch + +# Having mono or gtk-sharp installed kills this build +patch -p1 --verbose < $CWD/patches/disable-mono.patch + +# Don't use -Werror +sed -i -e 's/ -Werror//' src/Makefile.am + +./autogen.sh +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS -std=c++11" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --with-gtk=3 \ + --disable-mono-test \ + --disable-static \ + --disable-gtk-doc-html \ + --disable-tests \ + --docdir=/usr/doc/$PRGNAM-$VERSION \ + --build=$ARCH-slackware-linux + +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 + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING COPYING.LGPL.2.1 ChangeLog NEWS README \ + $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +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:-tgz} diff --git a/libraries/libappindicator3/libappindicator3.info b/libraries/libappindicator3/libappindicator3.info new file mode 100644 index 0000000000..3ffc899679 --- /dev/null +++ b/libraries/libappindicator3/libappindicator3.info @@ -0,0 +1,10 @@ +PRGNAM="libappindicator3" +VERSION="16.10" +HOMEPAGE="https://launchpad.net/libappindicator" +DOWNLOAD="http://unrealize.co.uk/source/libappindicator-16.10.tar.gz" +MD5SUM="5dae1ab64184702cbe724cd8c3e48f8f" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="libindicator3 libdbusmenu" +MAINTAINER="David Woodfall" +EMAIL="dave@dawoodfall.net" diff --git a/libraries/libappindicator3/patches/0001-Glib.Timeout-fix.patch b/libraries/libappindicator3/patches/0001-Glib.Timeout-fix.patch new file mode 100644 index 0000000000..27744c4117 --- /dev/null +++ b/libraries/libappindicator3/patches/0001-Glib.Timeout-fix.patch @@ -0,0 +1,24 @@ +From f949448c898b2428e146d18e0821fa242a7099f6 Mon Sep 17 00:00:00 2001 +From: Xiao-Long Chen +Date: Tue, 7 Oct 2014 17:21:42 -0400 +Subject: [PATCH 1/3] Glib.Timeout fix + +--- + example/simple-client-vala.vala | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/example/simple-client-vala.vala b/example/simple-client-vala.vala +index f8cd874..6d8d71b 100644 +--- a/example/simple-client-vala.vala ++++ b/example/simple-client-vala.vala +@@ -20,6 +20,7 @@ You should have received a copy of the GNU General Public License along + with this program. If not, see . + */ + ++using GLib; + using Gtk; + using AppIndicator; + +-- +2.1.2 + diff --git a/libraries/libappindicator3/patches/0002-Fix-mono-nunit-pkgconfig-name.patch b/libraries/libappindicator3/patches/0002-Fix-mono-nunit-pkgconfig-name.patch new file mode 100644 index 0000000000..0398698e3e --- /dev/null +++ b/libraries/libappindicator3/patches/0002-Fix-mono-nunit-pkgconfig-name.patch @@ -0,0 +1,25 @@ +From 72de73f8d90fa54b884086dddf3b06a1d14b9e59 Mon Sep 17 00:00:00 2001 +From: Xiao-Long Chen +Date: Tue, 7 Oct 2014 17:22:16 -0400 +Subject: [PATCH 2/3] Fix mono-nunit pkgconfig name + +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index d131c9e..c8e480f 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -160,7 +160,7 @@ AC_ARG_ENABLE([mono-test], + [enable_mono_test=auto]) + + if test x"$enable_mono_test" != x"no" ; then +- PKG_CHECK_MODULES(NUNIT, nunit >= 2.4.7, ++ PKG_CHECK_MODULES(NUNIT, mono-nunit >= 2.4.7, + [have_nunit=yes], + [PKG_CHECK_MODULES(MONO_NUNIT, mono-nunit, + [have_nunit=yes], +-- +2.1.2 + diff --git a/libraries/libappindicator3/patches/0003-Fix-Mono-assemblies-directory.patch b/libraries/libappindicator3/patches/0003-Fix-Mono-assemblies-directory.patch new file mode 100644 index 0000000000..42bfacc94e --- /dev/null +++ b/libraries/libappindicator3/patches/0003-Fix-Mono-assemblies-directory.patch @@ -0,0 +1,39 @@ +From c31b285b856fdf4a131baab5e0a2397a375ac24f Mon Sep 17 00:00:00 2001 +From: Xiao-Long Chen +Date: Tue, 7 Oct 2014 17:23:43 -0400 +Subject: [PATCH 3/3] Fix Mono assemblies directory + +--- + bindings/mono/Makefile.am | 2 +- + bindings/mono/appindicator-sharp-0.1.pc.in | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/bindings/mono/Makefile.am b/bindings/mono/Makefile.am +index 6f8e8a9..e1bd6e5 100644 +--- a/bindings/mono/Makefile.am ++++ b/bindings/mono/Makefile.am +@@ -31,7 +31,7 @@ TARGET = \ + $(DLLPOLICY1) \ + $(POLICY1).config + +-assemblydir = $(libdir)/cli/appindicator-sharp-0.1 ++assemblydir = $(libdir)/appindicator-sharp-0.1 + assembly_DATA = $(TARGET) + + CLEANFILES = \ +diff --git a/bindings/mono/appindicator-sharp-0.1.pc.in b/bindings/mono/appindicator-sharp-0.1.pc.in +index f63c01e..ca09a6d 100644 +--- a/bindings/mono/appindicator-sharp-0.1.pc.in ++++ b/bindings/mono/appindicator-sharp-0.1.pc.in +@@ -1,7 +1,7 @@ + prefix=@prefix@ + exec_prefix=@exec_prefix@ + libdir=@libdir@ +-assemblies_dir=${prefix}/lib/cli/appindicator-sharp-0.1 ++assemblies_dir=${prefix}/lib/appindicator-sharp-0.1 + + Name: appindicator-sharp + Description: application indicators for .NET +-- +2.1.2 + diff --git a/libraries/libappindicator3/patches/badfunction.patch b/libraries/libappindicator3/patches/badfunction.patch new file mode 100644 index 0000000000..21a7fa502c --- /dev/null +++ b/libraries/libappindicator3/patches/badfunction.patch @@ -0,0 +1,12 @@ +diff -Naur a/src/app-indicator.c b/src/app-indicator.c +--- a/src/app-indicator.c 2017-10-23 07:03:29.000000000 +0000 ++++ b/src/app-indicator.c 2017-10-23 13:08:25.530191393 +0000 +@@ -2577,7 +2577,7 @@ + + g_return_if_fail(priv->shorties != NULL); + +- indicator_desktop_shortcuts_nick_exec_with_context(priv->shorties, nick, NULL); ++// indicator_desktop_shortcuts_nick_exec_with_context(priv->shorties, nick, NULL); + + return; + } diff --git a/libraries/libappindicator3/patches/conditional-py-bindings.patch b/libraries/libappindicator3/patches/conditional-py-bindings.patch new file mode 100644 index 0000000000..c916d9ba2c --- /dev/null +++ b/libraries/libappindicator3/patches/conditional-py-bindings.patch @@ -0,0 +1,72 @@ +--- a/bindings/Makefile.am 2015-07-10 10:04:18.091199191 +0200 ++++ b/bindings/Makefile.am 2015-07-10 10:19:47.047974439 +0200 +@@ -3,8 +3,10 @@ + vala + else + SUBDIRS = \ +- python \ + vala ++if HAS_PYTHON ++SUBDIRS += python ++endif + endif + + if HAS_MONO +--- a/configure.ac 2015-07-16 13:28:41.007502838 +0200 ++++ b/configure.ac_new 2015-07-16 13:53:18.118602877 +0200 +@@ -188,25 +188,37 @@ + PYGTK_REQUIRED=2.14.0 + PYGOBJECT_REQUIRED=0.22 + +-AM_PATH_PYTHON(2.3.5) +-AM_CHECK_PYTHON_HEADERS(,[AC_MSG_ERROR(could not find Python headers)]) ++AC_ARG_ENABLE([python], ++ AC_HELP_STRING([--enable-python], [Enable python for GTK2 build]),, ++ [enable_python=yes]) + +-PKG_CHECK_MODULES(APPINDICATOR_PYTHON, ++if test x"$with_gtk" = x"3" ; then ++ enable_python=no ++fi ++ ++AM_CONDITIONAL(HAS_PYTHON, test x"${enable_python}" != x"no") ++ ++if test x"$enable_python" != x"no" ; then ++ AM_PATH_PYTHON(2.3.5) ++ AM_CHECK_PYTHON_HEADERS(,[AC_MSG_ERROR(could not find Python headers)]) ++ ++ PKG_CHECK_MODULES(APPINDICATOR_PYTHON, + [ + pygtk-2.0 >= $PYGTK_REQUIRED + gtk+-2.0 >= $GTK_REQUIRED_VERSION + pygobject-2.0 >= $PYGOBJECT_REQUIRED + ]) + +-AC_MSG_CHECKING(for pygtk defs) +-PYGTK_DEFSDIR=`$PKG_CONFIG --variable=defsdir pygtk-2.0` +-AC_SUBST(PYGTK_DEFSDIR) +-AC_MSG_RESULT($PYGTK_DEFSDIR) +- +-AC_MSG_CHECKING(for pygtk codegen) +-PYGTK_CODEGEN="$PYTHON `$PKG_CONFIG --variable=codegendir pygtk-2.0`/codegen.py" +-AC_SUBST(PYGTK_CODEGEN) +-AC_MSG_RESULT($PYGTK_CODEGEN) ++ AC_MSG_CHECKING(for pygtk defs) ++ PYGTK_DEFSDIR=`$PKG_CONFIG --variable=defsdir pygtk-2.0` ++ AC_SUBST(PYGTK_DEFSDIR) ++ AC_MSG_RESULT($PYGTK_DEFSDIR) ++ ++ AC_MSG_CHECKING(for pygtk codegen) ++ PYGTK_CODEGEN="$PYTHON `$PKG_CONFIG --variable=codegendir pygtk-2.0`/codegen.py" ++ AC_SUBST(PYGTK_CODEGEN) ++ AC_MSG_RESULT($PYGTK_CODEGEN) ++fi + + ######################### + # Check if build tests +@@ -278,4 +290,5 @@ + Tests: $enable_tests + Mono tests: $have_nunit + gcov: $use_gcov ++ Python: $enable_python + ]) diff --git a/libraries/libappindicator3/patches/disable-mono.patch b/libraries/libappindicator3/patches/disable-mono.patch new file mode 100644 index 0000000000..a8da053aa9 --- /dev/null +++ b/libraries/libappindicator3/patches/disable-mono.patch @@ -0,0 +1,21 @@ +diff -Naur a/configure.ac b/configure.ac +--- a/configure.ac 2017-10-23 14:05:48.291548000 +0000 ++++ b/configure.ac 2017-10-23 15:37:41.434800880 +0000 +@@ -104,7 +104,7 @@ + # Check for Mono support + ########################### + +-MONO_REQUIRED_VERSION=1.0 ++MONO_REQUIRED_VERSION=9999 + PKG_CHECK_MODULES(MONO_DEPENDENCY, mono >= $MONO_REQUIRED_VERSION, has_mono=true, has_mono=false) + AM_CONDITIONAL(HAS_MONO, [test "x$has_mono" = "xtrue"]) + +@@ -143,7 +143,7 @@ + AC_SUBST(GENERATED_SOURCES) + + GLIB_SHARP_REQ_VERSION=2.12.1 +-GTK_SHARP_REQ_VERSION=2.12 ++GTK_SHARP_REQ_VERSION=9999 + PKG_CHECK_MODULES(GTK_SHARP, gtk-sharp-2.0 >= $GTK_SHARP_REQ_VERSION, has_gtksharp=true, has_gtksharp=false) + + PKG_CHECK_MODULES(GAPI, gapi-2.0 >= $GLIB_SHARP_REQ_VERSION, has_gapi=true, has_gapi=false) diff --git a/libraries/libappindicator3/patches/gtk3.patch b/libraries/libappindicator3/patches/gtk3.patch new file mode 100644 index 0000000000..068af900fc --- /dev/null +++ b/libraries/libappindicator3/patches/gtk3.patch @@ -0,0 +1,9 @@ +diff -Naur a/autogen.sh b/autogen.sh +--- a/autogen.sh 2017-10-23 08:03:29.000000000 +0100 ++++ b/autogen.sh 2017-10-23 10:26:05.918283577 +0100 +@@ -10,4 +10,4 @@ + gtkdocize || exit 1 + USE_GNOME2_MACROS=1 \ + USE_COMMON_DOC_BUILD=yes \ +-gnome-autogen.sh --enable-gtk-doc $@ ++gnome-autogen.sh --enable-gtk-doc --with-gtk=3 $@ diff --git a/libraries/libappindicator3/patches/improved-plasma-support.patch b/libraries/libappindicator3/patches/improved-plasma-support.patch new file mode 100644 index 0000000000..f41a18652c --- /dev/null +++ b/libraries/libappindicator3/patches/improved-plasma-support.patch @@ -0,0 +1,27 @@ +diff -Naur a/src/app-indicator.c b/src/app-indicator.c +--- a/src/app-indicator.c 2017-10-23 07:03:29.000000000 +0000 ++++ b/src/app-indicator.c 2017-10-23 13:25:03.332259298 +0000 +@@ -1178,7 +1178,8 @@ + delta = ABS(delta); + g_signal_emit(app, signals[SCROLL_EVENT], 0, delta, direction); + +- } else if (g_strcmp0(method, "SecondaryActivate") == 0 || ++ } else if (g_strcmp0(method, "Activate") == 0 || ++ g_strcmp0(method, "SecondaryActivate") == 0 || + g_strcmp0(method, "XAyatanaSecondaryActivate") == 0) { + GtkWidget *menuitem = priv->sec_activate_target; + +diff -Naur a/src/notification-item.xml b/src/notification-item.xml +--- a/src/notification-item.xml 2017-10-23 07:03:29.000000000 +0000 ++++ b/src/notification-item.xml 2017-10-23 13:24:48.252258271 +0000 +@@ -20,6 +20,10 @@ + + + ++ ++ ++ ++ + + + diff --git a/libraries/libappindicator3/patches/vala-inherit.patch b/libraries/libappindicator3/patches/vala-inherit.patch new file mode 100644 index 0000000000..e71cb690c1 --- /dev/null +++ b/libraries/libappindicator3/patches/vala-inherit.patch @@ -0,0 +1,14 @@ +# http://bazaar.launchpad.net/~indicator-applet-developers/libappindicator/trunk.12.10/revision/244 +=== modified file 'bindings/vala/appindicator-0.1-custom.vala' +--- a/bindings/vala/appindicator-0.1-custom.vala 2011-09-23 15:46:27 +0000 ++++ b/bindings/vala/appindicator-0.1-custom.vala 2012-10-10 23:33:35 +0000 +@@ -23,7 +23,7 @@ + */ + + namespace AppIndicator { +- [CCode (type_check_function = "IS_APP_INDICATOR")] ++ [CCode (type_check_function = "IS_APP_INDICATOR", type_id = "app_indicator_get_type ()")] + public class Indicator : GLib.Object { + } + } + diff --git a/libraries/libappindicator3/slack-desc b/libraries/libappindicator3/slack-desc new file mode 100644 index 0000000000..587d1a2ab9 --- /dev/null +++ b/libraries/libappindicator3/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 ':' except on otherwise blank lines. + + |-----handy-ruler------------------------------------------------------| +libappindicator3: libappindicator3 (Menu Library) +libappindicator3: +libappindicator3: A library to allow applications to export a menu into the Unity Menu +libappindicator3: bar. Based on KSNI it also works in KDE and will fallback to generic +libappindicator3: Systray support if none of those are available. +libappindicator3: +libappindicator3: https://launchpad.net/libappindicator +libappindicator3: +libappindicator3: +libappindicator3: +libappindicator3: -- cgit v1.2.3