From ce08a37f59ddd62d0fadcbb7962e5664457fa51b Mon Sep 17 00:00:00 2001 From: Willy Sudiarto Raharjo Date: Mon, 11 Sep 2017 09:07:10 +0700 Subject: [PATCH] graphviz: Added. A new requirement for vala 0.38.0. Signed-off-by: Willy Sudiarto Raharjo --- MATE-1.18-CHANGES.TXT | 14 --- MATE-1.20-CHANGES.TXT | 6 + MATE-1.18-DEPS.TXT => MATE-1.20-DEPS.TXT | 0 deps/README | 2 +- deps/graphviz/doinst.sh | 18 +++ deps/graphviz/ghostscript918.patch | 18 +++ deps/graphviz/graphviz.SlackBuild | 133 +++++++++++++++++++++++ deps/graphviz/graphviz.ini | 12 ++ deps/graphviz/php_5.4_compat.patch | 17 +++ deps/graphviz/slack-desc | 12 ++ mate-build-deps.sh | 1 + 11 files changed, 218 insertions(+), 15 deletions(-) delete mode 100644 MATE-1.18-CHANGES.TXT create mode 100644 MATE-1.20-CHANGES.TXT rename MATE-1.18-DEPS.TXT => MATE-1.20-DEPS.TXT (100%) create mode 100644 deps/graphviz/doinst.sh create mode 100644 deps/graphviz/ghostscript918.patch create mode 100644 deps/graphviz/graphviz.SlackBuild create mode 100644 deps/graphviz/graphviz.ini create mode 100644 deps/graphviz/php_5.4_compat.patch create mode 100644 deps/graphviz/slack-desc diff --git a/MATE-1.18-CHANGES.TXT b/MATE-1.18-CHANGES.TXT deleted file mode 100644 index 112b4ec..0000000 --- a/MATE-1.18-CHANGES.TXT +++ /dev/null @@ -1,14 +0,0 @@ -New Packages in MATE 1.18: -glade -gtksourceview3 -libunique3 -libpeas -mate-calc -caja-actions - -Renamed Packages in MATE 1.18: - -Packages removed in MATE 1.18: -gtksourceview -pygtksourceview -galculator diff --git a/MATE-1.20-CHANGES.TXT b/MATE-1.20-CHANGES.TXT new file mode 100644 index 0000000..4b78b51 --- /dev/null +++ b/MATE-1.20-CHANGES.TXT @@ -0,0 +1,6 @@ +New Packages in MATE 1.20: +graphviz + +Renamed Packages in MATE 1.20: + +Packages removed in MATE 1.20: diff --git a/MATE-1.18-DEPS.TXT b/MATE-1.20-DEPS.TXT similarity index 100% rename from MATE-1.18-DEPS.TXT rename to MATE-1.20-DEPS.TXT diff --git a/deps/README b/deps/README index 5c3943d..87ce99f 100644 --- a/deps/README +++ b/deps/README @@ -3,5 +3,5 @@ of packages in /base and /extra. Some of these have been pulled from SlackBuilds.org with minor modifications. If you have already installed any of these packages from SlackBuilds.org, then you shouldn't need to install them again. If that's the case, you might want to manually edit the -mate-build-base.sh and mate-build-extra.sh scripts and remove the lines for +mate-build-deps.sh script and remove the lines for the applicable dependencies so they aren't built a second time. diff --git a/deps/graphviz/doinst.sh b/deps/graphviz/doinst.sh new file mode 100644 index 0000000..86cc279 --- /dev/null +++ b/deps/graphviz/doinst.sh @@ -0,0 +1,18 @@ +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... +} + +config etc/php.d/graphviz.ini.new + +# Configure plugins +# (writes /usr/lib*/graphviz/config6 with available plugin information) +chroot . /usr/bin/dot -c diff --git a/deps/graphviz/ghostscript918.patch b/deps/graphviz/ghostscript918.patch new file mode 100644 index 0000000..189c513 --- /dev/null +++ b/deps/graphviz/ghostscript918.patch @@ -0,0 +1,18 @@ +diff -uprb graphviz-2.38.0.orig/plugin/gs/gvloadimage_gs.c graphviz-2.38.0/plugin/gs/gvloadimage_gs.c +--- graphviz-2.38.0.orig/plugin/gs/gvloadimage_gs.c 2014-04-13 23:40:25.000000000 +0300 ++++ graphviz-2.38.0/plugin/gs/gvloadimage_gs.c 2015-11-11 00:08:32.916123704 +0200 +@@ -72,11 +72,11 @@ static void gs_error(GVJ_t * job, const + + assert (err < 0); + +- if (err >= e_VMerror) ++ if (err >= gs_error_VMerror) + errsrc = "PostScript Level 1"; +- else if (err >= e_unregistered) ++ else if (err >= gs_error_unregistered) + errsrc = "PostScript Level 2"; +- else if (err >= e_invalidid) ++ else if (err >= gs_error_invalidid) + errsrc = "DPS error"; + else + errsrc = "Ghostscript internal error"; diff --git a/deps/graphviz/graphviz.SlackBuild b/deps/graphviz/graphviz.SlackBuild new file mode 100644 index 0000000..181ac35 --- /dev/null +++ b/deps/graphviz/graphviz.SlackBuild @@ -0,0 +1,133 @@ +#!/bin/sh + +# Slackware build script for graphviz + +# Copyright 2007 Robby Workman +# Copyright 2011 Heinz Wiesinger +# Copyright 2013-2017 Audrius Kažukauskas +# 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. +# +# Modified by Willy Sudiarto Raharjo for MSB Project + +PRGNAM=graphviz +VERSION=${VERSION:-2.40.1} +BUILD=${BUILD:-1} +TAG=${TAG:-_msb} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i586 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +wget -c http://graphviz.org/pub/graphviz/stable/SOURCES/$PRGNAM-$VERSION.tar.gz + +CWD=$(pwd) +TMP=${TMP:-/tmp/msb} +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 -eu + +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 -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 {} \; + +# Install PHP bindings to proper location. +sed -i 's|/php/modules|/php/extensions|' configure + +# Fix for php-5.4 +patch -p1 -i $CWD/php_5.4_compat.patch + +# Patch from Arch (thanks!) +patch -p1 -i $CWD/ghostscript918.patch + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +LDFLAGS="-L/usr/lib${LIBDIRSUFFIX}" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --disable-static \ + --enable-ocaml=no \ + --enable-php=no \ + --build=$ARCH-slackware-linux + +make +make install-strip DESTDIR=$PKG + +# Install config file for PHP. +mkdir -p $PKG/etc/php.d +sed "s|@LIBDIRSUFFIX@|$LIBDIRSUFFIX|" $CWD/graphviz.ini > $PKG/etc/php.d/graphviz.ini.new + +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 + +# Remove empty directories of language bindings that are absent. +find $PKG/usr/lib${LIBDIRSUFFIX}/graphviz -depth -type d -empty -exec rmdir {} \; + +# Create a "dummy" config file in /usr/lib${LIBDIRSUFFIX}/graphviz so that it +# will be removed when the package is uninstalled. This file is generated by +# the postinstall script and contains information about available plugins, so +# this is (or at least should be) safe. +# +# Write some dummy content to it to avoid +# "Error: /usr/lib64/graphviz/config6 is zero sized, or other read error." +# message during installation. +echo '# Dummy content.' > $PKG/usr/lib${LIBDIRSUFFIX}/graphviz/config6 + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a README $PKG/usr/doc/$PRGNAM-$VERSION +mv $PKG/usr/share/$PRGNAM/doc/* $PKG/usr/doc/$PRGNAM-$VERSION +rmdir $PKG/usr/share/$PRGNAM/doc +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +cat $CWD/doinst.sh > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n -p $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-txz} diff --git a/deps/graphviz/graphviz.ini b/deps/graphviz/graphviz.ini new file mode 100644 index 0000000..86c1706 --- /dev/null +++ b/deps/graphviz/graphviz.ini @@ -0,0 +1,12 @@ +; Enable graphviz extension module +; extension=gv.so + +; Graphviz' own documentation mentions a "gv.php" file that should +; be included. This file is however not necessary, it is just a +; wrapper class around functions that are already available after +; loading the extension, just leave out the "gv::" prefix. +; In case you still prefer to use the wrapper class you have to +; include it using its absolute path: +; diff --git a/deps/graphviz/php_5.4_compat.patch b/deps/graphviz/php_5.4_compat.patch new file mode 100644 index 0000000..58c2993 --- /dev/null +++ b/deps/graphviz/php_5.4_compat.patch @@ -0,0 +1,17 @@ +diff -Naur graphviz-2.28.0.orig/tclpkg/gv/gv_php_init.c graphviz-2.28.0/tclpkg/gv/gv_php_init.c +--- graphviz-2.28.0.orig/tclpkg/gv/gv_php_init.c 2011-01-25 17:30:51.000000000 +0100 ++++ graphviz-2.28.0/tclpkg/gv/gv_php_init.c 2012-05-30 04:10:40.657221055 +0200 +@@ -19,11 +19,13 @@ + + static size_t gv_string_writer (GVJ_t *job, const char *s, size_t len) + { ++ TSRMLS_FETCH(); + return PHPWRITE(s, len); + } + + static size_t gv_channel_writer (GVJ_t *job, const char *s, size_t len) + { ++ TSRMLS_FETCH(); + return PHPWRITE(s, len); + } + diff --git a/deps/graphviz/slack-desc b/deps/graphviz/slack-desc new file mode 100644 index 0000000..c2564f0 --- /dev/null +++ b/deps/graphviz/slack-desc @@ -0,0 +1,12 @@ + |-----handy-ruler------------------------------------------------------| +graphviz: graphviz (Graph Visualization) +graphviz: +graphviz: Graphviz is open source graph visualization software. +graphviz: It has several main graph layout programs. It also has +graphviz: web and interactive graphical interfaces, and auxiliary +graphviz: tools, libraries, and language bindings. +graphviz: +graphviz: Homepage: http://graphviz.org/ +graphviz: +graphviz: +graphviz: diff --git a/mate-build-deps.sh b/mate-build-deps.sh index 90a4d5f..5dceef8 100755 --- a/mate-build-deps.sh +++ b/mate-build-deps.sh @@ -42,6 +42,7 @@ CHECKDUPLICATE=0 # Loop for all dependency packages for dir in \ deps/zenity \ + deps/graphviz \ deps/vala \ deps/rarian \ deps/yelp-xsl \