From e196e8f941a3ea123f73ba3778f755a4faa0d9b0 Mon Sep 17 00:00:00 2001 From: Nitish Ragoomundun Date: Tue, 9 May 2017 14:23:26 +0100 Subject: [PATCH] libraries/pgplot: Added (graphics subroutine library). Signed-off-by: David Spencer --- libraries/pgplot/README | 16 ++++ libraries/pgplot/doinst.sh | 26 +++++++ libraries/pgplot/drivers.list | 114 +++++++++++++++++++++++++++ libraries/pgplot/pgplot.SlackBuild | 120 +++++++++++++++++++++++++++++ libraries/pgplot/pgplot.info | 10 +++ libraries/pgplot/slack-desc | 19 +++++ 6 files changed, 305 insertions(+) create mode 100644 libraries/pgplot/README create mode 100644 libraries/pgplot/doinst.sh create mode 100644 libraries/pgplot/drivers.list create mode 100644 libraries/pgplot/pgplot.SlackBuild create mode 100644 libraries/pgplot/pgplot.info create mode 100644 libraries/pgplot/slack-desc diff --git a/libraries/pgplot/README b/libraries/pgplot/README new file mode 100644 index 0000000000..cadec04fb7 --- /dev/null +++ b/libraries/pgplot/README @@ -0,0 +1,16 @@ +PGPLOT is a Fortran subroutine package for drawing simple scientific +graphs on various graphics display devices. It was originally developed +for use with astronomical data reduction programs in the Caltech +Astronomy Department. + +It consists of a library of routines that are Fortran- and C-callable. +There are routines that are device-dependent, in that they can produce +output for various terminals, image displays, dot-matrix printers, +laser printers, and pen plotters. Common file formats supported include +PostScript and GIF. + +PGPLOT is not public-domain software. However, it is freely available +for non-commercial use. The source code and documentation are +copyrighted by California Institute of Technology, and may not be +redistributed or placed on public Web servers without permission. The +software is provided "as is" with no warranty. diff --git a/libraries/pgplot/doinst.sh b/libraries/pgplot/doinst.sh new file mode 100644 index 0000000000..e14444b033 --- /dev/null +++ b/libraries/pgplot/doinst.sh @@ -0,0 +1,26 @@ +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... +} + +preserve_perms() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + if [ -e $OLD ]; then + cp -a $OLD ${NEW}.incoming + cat $NEW > ${NEW}.incoming + mv ${NEW}.incoming $NEW + fi + config $NEW +} + +preserve_perms etc/profile.d/pgplot.sh.new +preserve_perms etc/profile.d/pgplot.csh.new diff --git a/libraries/pgplot/drivers.list b/libraries/pgplot/drivers.list new file mode 100644 index 0000000000..53108b3b5f --- /dev/null +++ b/libraries/pgplot/drivers.list @@ -0,0 +1,114 @@ +! PGPLOT drivers. +!------------------------------------------------------------------------------ +! To configure PGPLOT, ensure that drivers you do not want are +! commented out (place ! in column 1). N.B. Many device-drivers are +! available on selected operating systems only. +!------------------------------------------------------------------------------ +! File Code Description Restrictions +! BCDRIV 0 /BCANON Canon Laser printer (bitmap version), landscape +! CADRIV 0 /CANON Canon Laser printer, LBP-8/A2, landscape +! CCDRIV 0 /CCP DEC LJ250 Color Companion printer +! CGDRIV 1 /CGM CGM metafile, indexed colour selection C +! CGDRIV 2 /CGMD CGM metafile, direct colour selection C +! CWDRIV 0 /CW6320 Gould/Bryans Colourwriter 6320 pen plotter Std F77 +! EPDRIV 0 /EPSON Epson FX100 dot matrix printer +! EXDRIV 1 /EXCL Talaris/EXCL printers, landscape +! EXDRIV 2 /EXCL Talaris/EXCL printers, portrait +! GCDRIV 0 /GENICOM Genicom 4410 dot-matrix printer, landscape +! Caution: use of GIDRIV may require a license from Unisys: + GIDRIV 1 /GIF GIF-format file, landscape + GIDRIV 2 /VGIF GIF-format file, portrait +! GLDRIV 1 /HPGL Hewlett-Packard HP-GL plotters, landscape Std F77 +! GLDRIV 2 /VHPGL Hewlett-Packard HP-GL plotters, portrait Std F77 +! GODRIV 0 /GOC GOC Sigma T5670 terminal VMS +! GVDRIV 0 /GVENICOM Genicom 4410 dot-matrix printer, portrait +! HGDRIV 0 /HPGL2 Hewlett-Packard graphics language +! HIDRIV 0 /HIDMP Houston Instruments HIDMP pen plotter +! HJDRIV 0 /HJ Hewlett-Packard Desk/Laserjet printer +! HPDRIV 0 /HP7221 Hewlett-Packard HP7221 pen plotter Std F77 +! LADRIV 0 /LA50 Dec LA50 and other sixel printers +! LJDRIV 0 /LJ Hewlett-Packard LaserJet printers VMS +! LSDRIV 1 /LIPS2 Canon LaserShot printer (landscape) +! LSDRIV 2 /VLIPS2 Canon LaserShot printer (portrait) +! LNDRIV 0 /LN03 Dec LN03-PLUS Laser printer (landscape) VMS +! LVDRIV 0 /LVN03 Dec LN03-PLUS Laser printer (portrait) VMS +! LXDRIV 0 /LATEX LaTeX picture environment +! MFDRIV 0 /FILE PGPLOT graphics metafile +! NEDRIV 0 /NEXT Computers running NeXTstep operating system + NUDRIV 0 /NULL Null device (no output) Std F77 +! PGDRIV 0 /PGMF PGPLOT metafile (new format, experimental) Std F77 +! PNDRIV 1 /PNG Portable Network Graphics file C +! PNDRIV 2 /TPNG Portable Network Graphics file - transparent background C +! PPDRIV 1 /PPM Portable Pixel Map file, landscape +! PPDRIV 2 /VPPM Portable PIxel Map file, portrait + PSDRIV 1 /PS PostScript printers, monochrome, landscape Std F77 + PSDRIV 2 /VPS Postscript printers, monochrome, portrait Std F77 + PSDRIV 3 /CPS PostScript printers, color, landscape Std F77 + PSDRIV 4 /VCPS PostScript printers, color, portrait Std F77 +! PXDRIV 0 /PRINTRONI Printronix P300 or P600 dot-matrix printer +! QMDRIV 1 /QMS QUIC devices (QMS and Talaris), landscape Std F77 +! QMDRIV 2 /VQMS QUIC devices (QMS and Talaris), portrait Std F77 +! TFDRIV 0 /TFILE Tektronix-format disk file VMS +! TODRIV 0 /TOSHIBA Toshiba "3-in-one" printer, model P351 +! TTDRIV 1 /TEK4010 Tektronix 4006/4010 storage-tube terminal Std F77 +! TTDRIV 2 /GF GraphOn terminal Std F77 +! TTDRIV 3 /RETRO RetroGraphics terminal Std F77 +! TTDRIV 4 /GTERM GTERM Tektronix terminal emulator Std F77 + TTDRIV 5 /XTERM XTERM Tektronix terminal emulator Std F77 +! TTDRIV 6 /ZSTEM ZSTEM terminal emulator Std F77 +! TTDRIV 7 /V603 Visual 603 terminal Std F77 +! TTDRIV 8 /KRM3 Kermit 3 on IBM-PC Std F77 +! TTDRIV 9 /TK4100 Tektronix 4100-series terminals Std F77 +! TTDRIV 10 /VMAC Macintosh VersaTerm-PRO Tektronix-4105 emulator Std F77 +! TXDRIV 0 /TX TeX PK Font Output files +! VADRIV 0 /VCANON Canon Laser printer, LBP-8/A2, portrait +! VBDRIV 0 /VBCANON Canon Laser printer (bitmap version), portrait +! VTDRIV 0 /VT125 Dec Regis terminals (VT125 etc.) Std F77 + WDDRIV 1 /WD X Window dump file, landscape + WDDRIV 2 /VWD X Window dump file, portrait +! WSDRIV 0 /WS VAX workstations running VWS software VMS +! X2DRIV 0 /XDISP PGDISP or FIGDISP server for X workstations C + XWDRIV 1 /XWINDOW Workstations running X Window System C + XWDRIV 2 /XSERVE Persistent window on X Window System C +! ZEDRIV 0 /ZETA Zeta 8 Digital Plotter +! +! The following drivers can only be used in PGPLOT installations on MS-DOS +! systems with appropriate hardware and software. Do not select these +! on UNIX or VMS systems. +! +! LHDRIV 0 /LH IBM PCs and clones, Lahey F77 32-bit Fortran v5.0 +! MSDRIV 0 /MSOFT IBM PCs and clones running Microsoft Fortran 5.0 +! SSDRIV 0 /SS IBM PCs and clones, MS-DOS, Salford Software FTN +! +! The following driver can only be used in PGPLOT installations on Acorn +! Archimedes systems with appropriate hardware and software. +! +! ACDRIV 0 /ARC Acorn Archimedes computer +! +! Selection of the XMOTIF driver causes a stub driver to be placed in +! the main PGPLOT library. The real driver is placed in libXmPgplot.a. +! Applications that need the Motif driver should link with libXmPgplot.a +! before the PGPLOT library. This treatment means that only Motif +! applications have to be linked with Motif libraries. +! +! XMDRIV 0 /XMOTIF Motif applications containing XmPgplot widgets. C +! +! Selection of the XATHENA driver causes a stub driver to be placed in +! the main PGPLOT library. The real driver is placed in libXawPgplot.a. +! Applications that need the Athena driver should link with libXawPgplot.a +! before the PGPLOT library. This treatment means that only Athena +! applications have to be linked with Xaw libraries. +! +! XADRIV 0 /XATHENA Motif applications containing XaPgplot widgets. C +! +! Selection of the TK driver causes a stub driver to be placed in +! the main PGPLOT library. The real driver is placed in libtkpgplot.a. +! Applications that need the Tk driver should link with libtkpgplot.a +! before the PGPLOT library. This treatment means that only Tcl/Tk +! applications have to be linked with the Tcl and Tk libraries. +! +! TKDRIV 0 /XTK X-window Tcl/Tk programs with pgplot widgets. C +! +! The following driver is included solely for use by the aips++ team. +! +! RVDRIV 0 /XRV X-window Rivet/Tk programs with pgplot widgets. C diff --git a/libraries/pgplot/pgplot.SlackBuild b/libraries/pgplot/pgplot.SlackBuild new file mode 100644 index 0000000000..2fa3207906 --- /dev/null +++ b/libraries/pgplot/pgplot.SlackBuild @@ -0,0 +1,120 @@ +#!/bin/sh + +# Slackware build script for PGPLOT + +# Copyright 2017 Nitish Ragoomundun, Mauritius +# 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=pgplot +VERSION=${VERSION:-5.2.2} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} + +FVER=5.2 + +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 $PRGNAM +tar xvf $CWD/${PRGNAM}${FVER}.tar.gz +cd $PRGNAM +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 {} \; + +# Replace upstream's list of enabled drivers +cat $CWD/drivers.list > drivers.list + +CFLAGC="$SLKCFLAGS" \ +FFLAGC="$SLKCFLAGS" \ +$TMP/$PRGNAM/makemake $TMP/$PRGNAM linux g77_gcc + +make -j1 +make -j1 cpg +ld -shared -o libcpgplot.so --whole-archive libcpgplot.a + +mkdir -p $PKG/usr/bin +install -D -m755 pgxwin_server $PKG/usr/bin + +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/$PRGNAM +install -D -m755 libpgplot.so $PKG/usr/lib${LIBDIRSUFFIX}/$PRGNAM/libpgplot.so +install -D -m644 libpgplot.a libcpgplot.a grfont.dat rgb.txt $PKG/usr/lib${LIBDIRSUFFIX}/$PRGNAM/ + +mkdir -p $PKG/usr/include +cp -a cpgplot.h $PKG/usr/include/cpgplot.h + +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/etc/profile.d/ +cat << EOF > $PKG/etc/profile.d/pgplot.sh.new +#!/bin/sh +export PGPLOT_DIR="/usr/lib${LIBDIRSUFFIX}/$PRGNAM" +EOF +cat << EOF > $PKG/etc/profile.d/pgplot.csh.new +#!/bin/csh +setenv PGPLOT_DIR /usr/lib${LIBDIRSUFFIX}/$PRGNAM +EOF +chmod 0755 $PKG/etc/profile.d/* + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a aaaread.me copyright.notice install*.txt ver5*.txt \ + $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 +cat $CWD/doinst.sh > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} diff --git a/libraries/pgplot/pgplot.info b/libraries/pgplot/pgplot.info new file mode 100644 index 0000000000..1bce238dd5 --- /dev/null +++ b/libraries/pgplot/pgplot.info @@ -0,0 +1,10 @@ +PRGNAM="pgplot" +VERSION="5.2.2" +HOMEPAGE="http://www.astro.caltech.edu/~tjp/pgplot" +DOWNLOAD="ftp://ftp.astro.caltech.edu/pub/pgplot/pgplot5.2.tar.gz" +MD5SUM="e8a6e8d0d5ef9d1709dfb567724525ae" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="" +MAINTAINER="Nitish Ragoomundun" +EMAIL="lrugratz@gmail.com" diff --git a/libraries/pgplot/slack-desc b/libraries/pgplot/slack-desc new file mode 100644 index 0000000000..4845115a0f --- /dev/null +++ b/libraries/pgplot/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------------------------------------------------------| +pgplot: pgplot (graphics subroutine library) +pgplot: +pgplot: PGPLOT is a Fortran- or C-callable, device-independent graphics +pgplot: package for making simple scientific graphs. It is intended for +pgplot: making graphical images of publication quality with minimum effort +pgplot: on the part of the user. +pgplot: +pgplot: +pgplot: Homepage: http://www.astro.caltech.edu/~tjp/pgplot +pgplot: +pgplot: