From 8970decff9f6dd0877e845c9af5678770454bbab Mon Sep 17 00:00:00 2001 From: "R. S. Ananda Murthy" Date: Sun, 22 Jun 2014 11:18:20 +0700 Subject: [PATCH] academic/drawtiming: Added (tool for drawing timing diagrams). Signed-off-by: Willy Sudiarto Raharjo --- academic/drawtiming/InitializeMagick.diff | 30 +++++ academic/drawtiming/README | 6 + academic/drawtiming/doinst.sh | 9 ++ academic/drawtiming/drawtiming.SlackBuild | 108 ++++++++++++++++++ academic/drawtiming/drawtiming.info | 10 ++ academic/drawtiming/manpage-fix.diff | 62 ++++++++++ academic/drawtiming/missing-includes.diff | 13 +++ academic/drawtiming/slack-desc | 19 +++ academic/drawtiming/switch_LDFLAGS_LDADD.diff | 36 ++++++ 9 files changed, 293 insertions(+) create mode 100644 academic/drawtiming/InitializeMagick.diff create mode 100644 academic/drawtiming/README create mode 100644 academic/drawtiming/doinst.sh create mode 100644 academic/drawtiming/drawtiming.SlackBuild create mode 100644 academic/drawtiming/drawtiming.info create mode 100644 academic/drawtiming/manpage-fix.diff create mode 100644 academic/drawtiming/missing-includes.diff create mode 100644 academic/drawtiming/slack-desc create mode 100644 academic/drawtiming/switch_LDFLAGS_LDADD.diff diff --git a/academic/drawtiming/InitializeMagick.diff b/academic/drawtiming/InitializeMagick.diff new file mode 100644 index 0000000000..d610544a76 --- /dev/null +++ b/academic/drawtiming/InitializeMagick.diff @@ -0,0 +1,30 @@ +Description: Properly initialize GraphicsMagick + Quoting from GraphicsMagick's NEWS file " + 1.3.8 (January 21, 2010) + ======================== + [...] + Behavior Changes: + InitializeMagick() MUST be invoked prior to using any Magick API function. + Failure to do so will likely lead to an immediate application crash. This is + due to initialization and runtime changes intended to improve thread safety + and efficiency. Previously it was only strongly recommended to invoke + InitializeMagick(). + " +Author: Galland (https://launchpad.net/~victor-lopez) +Bug-Ubuntu: https://bugs.launchpad.net/bugs/636021 +Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=599915 +Bug: http://sourceforge.net/tracker/index.php?func=detail&aid=3136111&group_id=118983&atid=682742 +Forwarded: yes + +--- a/src/main.cc ++++ b/src/main.cc +@@ -97,6 +97,9 @@ + double scale = 1; + int flags = 0; + ++#ifndef LITE ++ InitializeMagick(NULL); ++#endif /* ! LITE */ + int k, c; + while ((c = getopt_long (argc, argv, "ac:f:hl:o:p:vVw:x:", opts, &k)) != -1) + switch (c) { diff --git a/academic/drawtiming/README b/academic/drawtiming/README new file mode 100644 index 0000000000..32f4e261c2 --- /dev/null +++ b/academic/drawtiming/README @@ -0,0 +1,6 @@ +DrawTiming provides a command line tool for documenting hardware and +software designs through timing diagrams. It reads signal descriptions +from a text file with an intuitive syntax, and outputs a timing diagram +to an image file. Notation typical of timing diagrams found in the +Electrical Engineering discipline is used, including arrows +indicating causal relationships between signal transitions. diff --git a/academic/drawtiming/doinst.sh b/academic/drawtiming/doinst.sh new file mode 100644 index 0000000000..3e5691a052 --- /dev/null +++ b/academic/drawtiming/doinst.sh @@ -0,0 +1,9 @@ +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1 +fi + +if [ -e usr/share/icons/hicolor/icon-theme.cache ]; then + if [ -x /usr/bin/gtk-update-icon-cache ]; then + /usr/bin/gtk-update-icon-cache usr/share/icons/hicolor >/dev/null 2>&1 + fi +fi diff --git a/academic/drawtiming/drawtiming.SlackBuild b/academic/drawtiming/drawtiming.SlackBuild new file mode 100644 index 0000000000..8fde14c99a --- /dev/null +++ b/academic/drawtiming/drawtiming.SlackBuild @@ -0,0 +1,108 @@ +#!/bin/sh + +# Slackware build script for drawtiming + +# Copyright 2014 R. S. Ananda Murthy, Mysore, India +# 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=drawtiming +VERSION=${VERSION:-0.7.1} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i486 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +CWD=$(pwd) +STARTDIR=$(pwd) +TMP=${TMP:-/tmp/SBo} +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 -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 {} \; + +patch -p1 < $STARTDIR/InitializeMagick.diff +patch -p1 < $STARTDIR/manpage-fix.diff +patch -p1 < $STARTDIR/missing-includes.diff +patch -p1 < $STARTDIR/switch_LDFLAGS_LDADD.diff + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --build=$ARCH-slackware-linux +make +make DESTDIR=$PKG install + +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 + +find $PKG/usr/man -type f -exec gzip -9 {} \; +for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/samples +cp -r $TMP/$PRGNAM-$VERSION/samples/* $PKG/usr/doc/$PRGNAM-$VERSION/samples +rm $PKG/usr/doc/$PRGNAM-$VERSION/samples/runsamples.sh +rm $PKG/usr/doc/$PRGNAM-$VERSION/samples/Makefile* +cp -a COPYING INSTALL NEWS README AUTHORS THANKS $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/doinst.sh > $PKG/install/doinst.sh +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/academic/drawtiming/drawtiming.info b/academic/drawtiming/drawtiming.info new file mode 100644 index 0000000000..3e15375061 --- /dev/null +++ b/academic/drawtiming/drawtiming.info @@ -0,0 +1,10 @@ +PRGNAM="drawtiming" +VERSION="0.7.1" +HOMEPAGE="http://drawtiming.sourceforge.net/" +DOWNLOAD="http://downloads.sourceforge.net/project/drawtiming/drawtiming/0.7.1/drawtiming-0.7.1.tar.gz" +MD5SUM="bc25f43f5301ee6cfb65ed8e151a2e1d" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="" +MAINTAINER="R. S. Ananda Murthy" +EMAIL="rsamurti@gmail.com" diff --git a/academic/drawtiming/manpage-fix.diff b/academic/drawtiming/manpage-fix.diff new file mode 100644 index 0000000000..2aa56c124d --- /dev/null +++ b/academic/drawtiming/manpage-fix.diff @@ -0,0 +1,62 @@ +Description: Fix typos and hyphenation +Author: أحمد المحمودي (Ahmed El-Mahmoudy) +Forwarded: yes +--- a/doc/drawtiming.1 ++++ b/doc/drawtiming.1 +@@ -56,7 +56,7 @@ + .It Fl -pagesize Ar WidthxHeight + Scale the diagram to fit given image size. + .It Fl -aspect +-Maintain fixed aspect ratio if --pagesize given. ++Maintain fixed aspect ratio if \-\-pagesize given. + .It Fl -cell-height Ar H + Height of the each signal in pixels. Default is 32. + .It Fl -cell-width Ar W +@@ -101,23 +101,23 @@ + changing its value. + .El + .Pp +-Statements are seperated by the following symbols: ++Statements are separated by the following symbols: + .Bl -tag -width "-tD>" + .It , +-The comma seperator is used to seperate statements without ++The comma separator is used to separate statements without + affecting the dependency list or clock (ie: the next statement will + add to the dependency list). + .It ; +-The semicolon seperator resets the list of dependencies without ++The semicolon separator resets the list of dependencies without + incrementing the clock + .It . +-The period seperator resets the list of dependencies and ++The period separator resets the list of dependencies and + increments the clock. + .It => +-The "causes" seperator renders dependency arrows based on the ++The "causes" separator renders dependency arrows based on the + current list of dependencies and then resets the dependency list. + .It -tD> +-The "delay" seperator renders a delay arrow from the last dependency ++The "delay" separator renders a delay arrow from the last dependency + with the annotation + .Em tD . + .El +@@ -173,7 +173,7 @@ + value if their initial value is not given. + .Pp + Independent signal transitions which occur simultaneously are normally +-seperated by commas. Since signals aren't normally expected to change ++separated by commas. Since signals aren't normally expected to change + simultaneously, the initial state is a good example of this: + .Pp + .Dl POWER=0, FIRE=0, ARMED=0, LED=OFF, COUNT=N. +@@ -194,7 +194,7 @@ + .Pp + .Dl POWER=1 => LED=GREEN. + .Pp +-For signal state changes with multiple dependencies, seperate the ++For signal state changes with multiple dependencies, separate the + dependencies with commas: + .Pp + .Dl FIRE, ARMED => LED=RED. diff --git a/academic/drawtiming/missing-includes.diff b/academic/drawtiming/missing-includes.diff new file mode 100644 index 0000000000..7dbad2192e --- /dev/null +++ b/academic/drawtiming/missing-includes.diff @@ -0,0 +1,13 @@ +Description: Add missing string.h include. +Author: Wesley J. Landaker +Forwarded: yes +--- a/src/timing.cc ++++ b/src/timing.cc +@@ -23,6 +23,7 @@ + #include "timing.h" + #include + #include ++#include + using namespace std; + using namespace timing; + using namespace Magick; diff --git a/academic/drawtiming/slack-desc b/academic/drawtiming/slack-desc new file mode 100644 index 0000000000..a406fa95ca --- /dev/null +++ b/academic/drawtiming/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------------------------------------------------------| +drawtiming: drawtiming (tool for drawing timing diagrams) +drawtiming: +drawtiming: DrawTiming provides a command line tool for documenting hardware and +drawtiming: software designs through timing diagrams. It reads signal +drawtiming: descriptions from a text file with an intuitive syntax, +drawtiming: and outputs a timing diagram to an image file. Notation typical +drawtiming: of timing diagrams found in the Electrical Engineering discipline +drawtiming: is used, including arrows indicating causal relationships between +drawtiming: signal transitions. +drawtiming: +drawtiming: diff --git a/academic/drawtiming/switch_LDFLAGS_LDADD.diff b/academic/drawtiming/switch_LDFLAGS_LDADD.diff new file mode 100644 index 0000000000..8ae536630d --- /dev/null +++ b/academic/drawtiming/switch_LDFLAGS_LDADD.diff @@ -0,0 +1,36 @@ +Description: Switch LDADD with LDFLAGS + This change is to move the objects before the libs. to fix an FTBFS when + --as-needed is passed to gcc. +Author: أحمد المحمودي (Ahmed El-Mahmoudy) +Forwarded: yes +--- drawtiming-0.7.1.orig/src/Makefile.am ++++ drawtiming-0.7.1/src/Makefile.am +@@ -3,7 +3,7 @@ + + bin_PROGRAMS = drawtiming + drawtiming_SOURCES = main.cc globals.h parser.yy scanner.ll timing.cc timing.h +-drawtiming_LDFLAGS = @MAGICK_LIBS@ ++drawtiming_LDADD = @MAGICK_LIBS@ + + EXTRA_DIST = parser.h + BUILT_SOURCES = parser.h +--- drawtiming-0.7.1.orig/src/Makefile.in ++++ drawtiming-0.7.1/src/Makefile.in +@@ -51,7 +51,7 @@ + am_drawtiming_OBJECTS = main.$(OBJEXT) parser.$(OBJEXT) \ + scanner.$(OBJEXT) timing.$(OBJEXT) + drawtiming_OBJECTS = $(am_drawtiming_OBJECTS) +-drawtiming_LDADD = $(LDADD) ++drawtiming_LDADD = @MAGICK_LIBS@ $(LDADD) + DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) + depcomp = $(SHELL) $(top_srcdir)/depcomp + am__depfiles_maybe = depfiles +@@ -159,7 +159,7 @@ + AM_CXXFLAGS = @MAGICK_CFLAGS@ -DYYDEBUG=1 + AM_YFLAGS = -d + drawtiming_SOURCES = main.cc globals.h parser.yy scanner.ll timing.cc timing.h +-drawtiming_LDFLAGS = @MAGICK_LIBS@ ++drawtiming_LDFLAGS = @LDFLAGS@ + EXTRA_DIST = parser.h + BUILT_SOURCES = parser.h + all: $(BUILT_SOURCES)