debian/ 0000775 0000000 0000000 00000000000 12253225750 007173 5 ustar debian/rules 0000775 0000000 0000000 00000012655 11773052453 010270 0 ustar #!/usr/bin/make -f
DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH)
# start by saving the path to debian/rules (useful in get-orig-source)
PATH_TO_DEBIAN := $(shell dirname $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)))
ifneq (,$(filter $(DEB_HOST_ARCH), ia64))
DEB_CPPFLAGS_MAINT_APPEND = -DMM_MIN_ALIGNMENT=16
endif
DPKG_EXPORT_BUILDFLAGS = 1
-include /usr/share/dpkg/buildflags.mk
CFLAGS += $(CPPFLAGS)
export CFLAGS
# This has to be exported to make some magic below work.
export DH_OPTIONS
check:
dh_testdir
ifeq (,$(filter nocheck, $(DEB_BUILD_OPTIONS)))
# Untill 580524 is closed
ifeq (,$(filter $(DEB_HOST_ARCH), ia64 hurd-i386 mips))
relocate/bin/yorick -batch debian/check.i
endif
endif
configure: configure-stamp
configure-stamp:
dh_testdir
make Y_HOME=relocate ysite
chmod a+x debian/helpers/*.i
touch configure-stamp
BUILDDIR=../../build/
build: build-arch build-indep
build-arch: build-stamp
build-indep: build-stamp
build-stamp: configure-stamp
dh_testdir
$(MAKE) CDG_FLAGS="$(CFLAGS) $(LDFLAGS)" install
-rm relocate/LICENSE
$(MAKE) -C doc yorick.info
mkdir -p build/share
mkdir -p build/lib/yorick
cp -a relocate build/share/yorick
mv build/share/yorick/doc build
cp debian/helpers/README build/doc
mkdir -p build/share/yorick/packages/installed
mv build/share/yorick/bin build/lib/yorick/
mv build/share/yorick/lib build/lib/yorick/
mkdir -p build/yorick-dev/share/yorick/
mkdir -p build/yorick-dev/lib/yorick/lib/
mv build/share/yorick/Make* build/yorick-dev/share/yorick/
mv build/share/yorick/include build/yorick-dev/share/yorick/
cd build/lib/yorick/lib; \
mv codger install.grp install.sh libdep.sh libyor.a main.o \
$(CURDIR)/build/yorick-dev/lib/yorick/lib
cp emacs/yorick-auto.el build/50yorick-auto.el
convert icons/yicon32.png build/yorick32x32.xpm
convert icons/yicon16.png build/yorick16x16.xpm
$(MAKE) -C doc/html BUILDDIR=$(BUILDDIR) manual refcard $(BUILDDIR)doc/README.html $(BUILDDIR)doc/images/triangle3.jpg $(BUILDDIR)doc/skull.css
cp doc/html/packinfo.txt build/00yorick.packinfo
cp doc/html/keywords.txt build/00yorick.keywords
cp doc/html/aliases.txt build/00yorick.aliases
touch build-stamp
build-mpy-stamp: build-stamp
cp -a mpy mpy.mpich2
(cd mpy.mpich2 ; \
./configure --yorick=../relocate/bin/yorick --mpicc=mpicc.mpich2 ; \
$(MAKE))
mv mpy.mpich2/mpy mpy.mpich2/mpy.mpich2
mv mpy.mpich2/libmpy.a mpy.mpich2/libmpy.mpich2.a
mv mpy.mpich2/Makempy mpy.mpich2/Makempy.mpich2
mv mpy.mpich2/mpymain.o mpy.mpich2/mpymain.mpich2.o
ifeq ($(wildcard /usr/bin/mpicc.openmpi), /usr/bin/mpicc.openmpi)
cp -a mpy mpy.openmpi
(cd mpy.openmpi ; \
./configure --yorick=../relocate/bin/yorick --mpicc=mpicc.openmpi ; \
$(MAKE))
mv mpy.openmpi/mpy mpy.openmpi/mpy.openmpi
mv mpy.openmpi/libmpy.a mpy.openmpi/libmpy.openmpi.a
mv mpy.openmpi/Makempy mpy.openmpi/Makempy.openmpi
mv mpy.openmpi/mpymain.o mpy.openmpi/mpymain.openmpi.o
endif
touch build-mpy-stamp
clean-mpy:
rm -Rf build-mpy-stamp mpy.mpich2 mpy.openmpi
clean: configure-stamp clean-mpy
dh_testdir
rm -Rf build-stamp configure-stamp build relocate
touch Make.cfg
$(MAKE) -C doc/html clean
$(MAKE) distclean
# $(MAKE) Y_HOME=. ysite
dh_clean
# Must not depend on anything. This is to be called by
# binary-arch/binary-indep
# in another 'make' thread.
binary-common:
dh_testdir
dh_testroot
dh_prep
dh_installdirs
dh_install
dh_installchangelogs
dh_installdocs
dh_installexamples
dh_installmenu
dh_installinfo
dh_installdebconf
dh_installman
dh_link
dh_strip -pyorick --dbg-package=yorick-dbg
dh_strip -pyorick-dev -pyorick-mpy-openmpi -pyorick-mpy-mpich2
dh_usrlocal
dh_compress
dh_fixperms
dh_installdeb
dh_shlibdeps
dh_gencontrol
dh_md5sums
dh_builddeb
# Build architecture independant packages using the common target.
#binary-indep: build-indep install-indep
binary-indep: build-stamp
$(MAKE) -f debian/rules DH_OPTIONS=-i binary-common
# Build architecture dependant packages using the common target.
binary-arch: build-mpy-stamp check
$(MAKE) -f debian/rules DH_OPTIONS=-a binary-common
###### Getting the original source:
Y_FULL_VERS:=$(shell dpkg-parsechangelog -l$(PATH_TO_DEBIAN)/changelog | grep Version | sed 's/Version: //' | sed 's/-[0-9].*//')
Y_VERS:=$(subst +dfsg,,$(Y_FULL_VERS))
GIT_TAG:=y_$(subst .,_,$(Y_VERS))
GIT_REPO=git://github.com/dhmunro/yorick.git
# Non-DFSG-free files (see copyright):
PRUNEFILES:=play/hacks/hack103.c i/idlsave.i opengl
# make orig.tar.bz2 from current source dir, pruning PRUNEFILES
orig-txz:
rm -Rf $(PRUNEFILES)
cd .. ; \
mv `basename $(CURDIR)` yorick-$(Y_FULL_VERS) ; \
tar cvf - yorick-$(Y_FULL_VERS) --exclude=.pc --exclude=.git \
--exclude=yorick-$(Y_FULL_VERS)/debian --exclude=.gitignore \
| xz > yorick_$(Y_FULL_VERS).orig.tar.xz
get-orig-source:
-rm -Rf ../orig-sources
mkdir ../orig-sources
cd ../orig-sources ; \
git clone $(GIT_REPO) ; \
cd yorick ; \
git checkout $(GIT_TAG) ; \
rm -Rf $(PRUNEFILES)
-rm -Rf ../yorick-$(Y_VERS)
mv ../orig-sources/yorick ../yorick-$(Y_VERS)+dfsg
rm -Rf ../orig-sources
cd ..; tar cf - --exclude=.git --exclude=.gitignore \
yorick-$(Y_VERS)+dfsg | \
xz > yorick_$(Y_VERS)+dfsg.orig.tar.xz
gitclean: clean
-quilt pop -a
if test -e .pc ; then \
cd .pc ; \
rm .quilt_patches .quilt_series .version ; \
cd .. ; rmdir .pc ; \
fi
binary: binary-arch binary-indep
.PHONY: build-arch build-indep build clean binary-indep binary-arch binary \
configure clean-mpy gitclean
debian/yorick.preinst 0000664 0000000 0000000 00000001551 11770117412 012101 0 ustar #!/bin/sh
set -e
case "$1" in
install|upgrade)
# older (unofficial) versions of yorick 2.x shipped with the package
# manager but no debian-friendly setup. Users that have used pkg_mngr
# with this configuration have automatically created a pkg_setup.i file
# we'd like them to get rid of. All this mess can certainly disappear
# at lenny+1.
if [ -e /usr/lib/yorick/packages/pkg_setup.i ] &&
[ ! -h /usr/lib/yorick/packages/pkg_setup.i ]; then
[ -e /etc/yorick/packages ] || mkdir -p /etc/yorick/packages
if [ -e /etc/yorick/packages/pkg_setup.i ]; then
mv /etc/yorick/packages/pkg_setup.i \
/etc/yorick/packages/pkg_setup.i.dpkg-bak
fi
mv /usr/lib/yorick/packages/pkg_setup.i \
/etc/yorick/packages/pkg_setup.i
rm -f /etc/yorick/packages/pkg_setup_may_use_Y_HOME || true
fi
;;
esac
#DEBHELPER#
debian/watch 0000664 0000000 0000000 00000000204 11770117412 010216 0 ustar version=3
opts=dversionmangle=s/\+dfsg$//,uversionmangle=s/_/./g \
https://github.com/dhmunro/yorick/tags .*/tarball/y_(\d[\d\_]+)
debian/yorick.postinst 0000664 0000000 0000000 00000000212 11770117412 012271 0 ustar #!/bin/sh
set -e
if [ "$1" = "configure" ] && [ -x "`which update-yorickdoc 2>/dev/null`" ]; then
update-yorickdoc --auto
fi
#DEBHELPER#
debian/yorick-doc.install 0000664 0000000 0000000 00000000300 11770117412 012615 0 ustar debian/helpers/update-yorickdoc usr/bin
debian/etc/yorick-doc etc
doc/html/template.html usr/share/yorick-doc
doc/html/texi2html.tpl usr/share/yorick-doc
build/00yorick.* usr/share/yorick-doc
debian/yorick-doc.manpages 0000664 0000000 0000000 00000000042 11770117412 012745 0 ustar debian/helpers/update-yorickdoc.1
debian/check.i 0000664 0000000 0000000 00000001373 11770117412 010424 0 ustar /*
* $Id: check.i,v 1.1 2009/12/02 16:01:03 paumard Exp $
* This file runs a full set of tests on the Macintosh version
* of yorick, although it should be also useful for any other version.
*/
/* Copyright (c) 2005, The Regents of the University of California.
* All rights reserved.
* This file is part of yorick (http://yorick.sourceforge.net).
* Read the accompanying LICENSE file for details.
*/
/* run all tests in testp.i */
skip_testb= 0;
skip_test1= 0;
skip_test2= 0;
skip_test3= 0;
/* use the same pass count for all tests */
npass= 20;
/* run the parser test */
#include "testp.i"
/* Run the tests of the math library routines */
#include "testm.i"
testm;
/* Run the linpack benchmark */
#include "testlp.i"
testlp, 200;
write, "";
quit;
debian/changelog 0000664 0000000 0000000 00000037763 12253225747 011073 0 ustar yorick (2.2.02+dfsg-6ubuntu2) trusty; urgency=medium
* No-change rebuild for libopenmpi1.3 -> libopenmpi1.6 transition.
-- Logan Rosen Sat, 14 Dec 2013 23:11:12 -0500
yorick (2.2.02+dfsg-6ubuntu1) saucy; urgency=low
* Add armhf to the list of arches that don't build yorick-av.
-- Adam Conrad Thu, 10 Oct 2013 00:26:44 -0600
yorick (2.2.02+dfsg-6) unstable; urgency=low
* yorick-full Depends: on yorick-svipc and yorick-gyoto
-- Thibaut Paumard Sat, 30 Jun 2012 07:41:29 +0200
yorick (2.2.02+dfsg-5) unstable; urgency=low
* Fortify (make sure CPPFLAGS end up in Make.cfg)
-- Thibaut Paumard Thu, 28 Jun 2012 15:04:40 +0200
yorick (2.2.02+dfsg-4) unstable; urgency=low
* Mention yorick-full in yorick's package description
* Shorten yorick's suggest to only yorick-full and what it doesn't provide
* Suggest yorick-svipc and yorick-gyoto in yorick-full
-- Thibaut Paumard Tue, 26 Jun 2012 10:16:17 +0200
yorick (2.2.02+dfsg-3) unstable; urgency=low
* Move maintenance to the debian-science team. Update debian/control
to comply with their policy:
+ change Maintainer, put self in Uploaders;
+ DM-Upload-Allowed: yes;
+ fill-in Vcs-* fields;
+ Priority is extra.
* update README.source accordingly
* Bug fix: "p_malloc uses wrong alignment on ia64", introducing patch
fix-weird-alignment (Closes: #678276).
* Bug fix: "re-enable testsuite on hppa", thanks to dann frazier
(Closes: #584136).
-- Thibaut Paumard Wed, 20 Jun 2012 17:10:58 +0200
yorick (2.2.02+dfsg-2) unstable; urgency=low
* Add yorick-full metapackage
* Fix lintian warning about codger not being compiled with hardenned
LDFLAGS.
-- Thibaut Paumard Wed, 13 Jun 2012 15:23:45 +0200
yorick (2.2.02+dfsg-1) unstable; urgency=low
* New upstream release
* Bump standards version to 3.9.3
-- Thibaut Paumard Sun, 15 Apr 2012 12:45:43 +0200
yorick (2.2.01+dfsg-2) unstable; urgency=low
* Add yorick-dbg package
* Add Vcs-Git and Vcs-Browser control fields
* Update list of achitectures for openmpi
* include /usr/share/dpkg/buildflags.mk in debian/rules
-- Thibaut Paumard Tue, 27 Sep 2011 11:51:07 +0200
yorick (2.2.01+dfsg-1) unstable; urgency=low
* New upstream from git repository (tagged release)
* Fix lintian warnings (bump standards version)
-- Thibaut Paumard Mon, 26 Sep 2011 22:10:42 +0200
yorick (2.2.00+dfsg+cvs20100907-1) experimental; urgency=low
* New upstream release from CVS: experimental object-oriented features.
See http://yorick.sourceforge.net/phpBB2/viewtopic.php?t=299
* Check against policy 3.9.1
-- Thibaut Paumard Wed, 08 Sep 2010 17:41:17 +0200
yorick (2.1.06+dfsg-2) unstable; urgency=low
* Deactivate check suite on MIPS due to bug #580524.
-- Thibaut Paumard Thu, 06 May 2010 17:47:18 +0200
yorick (2.1.06+dfsg-1) unstable; urgency=low
* New upstream release
-- Thibaut Paumard Mon, 19 Apr 2010 10:56:52 +0200
yorick (2.1.05+dfsg+cvs20100408-1) unstable; urgency=low
* New upstream (many new functions from YETI)
* Removed two patches applied upstream (debian/patches/mpy*)
-- Thibaut Paumard Thu, 08 Apr 2010 17:18:27 +0200
yorick (2.1.05+dfsg+cvs20100318-1) unstable; urgency=low
* New upstream
* Build additional yorick-mpy-* packages
* Fix spelling errors in manpages
-- Thibaut Paumard Tue, 23 Mar 2010 16:55:43 +0100
yorick (2.1.05+dfsg+cvs20091202-2) unstable; urgency=low
* Desactivate check on hppa, hurd-i386 and ia64. On those three
architectures, there remains a bug to fix, see 559406 and 560026.
-- Thibaut Paumard Tue, 08 Dec 2009 14:19:22 +0100
yorick (2.1.05+dfsg+cvs20091202-1) unstable; urgency=low
* New upstream from CVS:
- initial support for interpreting code stored in a string array
(see include())
- new set_gpath() function for setting the path for .gs and .gp files
* Use 3.0 (quilt) format
* Reformat debian/copyright in the DEP-3 spirit
-- Thibaut Paumard Sat, 28 Nov 2009 20:44:19 +0100
yorick (2.1.05+dfsg-7) unstable; urgency=low
* Adapt doc build system to texi2html 1.82 thanks to Lucas Nussbaum
(Closes: #552966).
* Checked against policy 3.8.3.
-- Thibaut Paumard Sun, 15 Nov 2009 15:32:31 +0100
yorick (2.1.05+dfsg-6) unstable; urgency=low
* Bug fix: "yorick-dev: make debug generates 'undefined reference
to main' error", thanks to Alan W. Irwin (Closes: #490597).
-- Thibaut Paumard Tue, 15 Jul 2008 15:04:56 +0200
yorick (2.1.05+dfsg-5) unstable; urgency=low
* Add triggers support to yorick-doc:
* add triggers control file;
* rename --auto option of update-yorickdoc to --auto-now;
* add new --auto option which makes update-yorickdoc a no-op on
systems where dpkg-trigger exists and else falls back to the same
as --auto-now;
* change dh_installyorick to not modify maintainer scripts by default,
use -m option to force it.
* Add a draft policy document in yorick-dev.
-- Thibaut Paumard Sun, 18 May 2008 23:14:45 +0200
yorick (2.1.05+dfsg-4) unstable; urgency=low
* Bug fix: "update-yorickdoc crashes when parsing UTF-8 files", thanks
to Aaron M. Ucko, Dave Munro and Arnaud Sevin (Closes: #463746). The
fix consist in patching the strtok function, which now behaves well on
UTF-8 strings.
* Move menu entry to Applications/Science/Data Analysis.
* Move doc-base entry to Science/Data Analysis.
* Update-yorickdoc:
+ Add --quiet/--verbose options and short options (-a, -p, -v, -q).
+ Ignore $HOME/.yorick-doc for the root user, else problems happen
when using sudo.
+ update-yorickdoc now creates $TO directory if needed and gives usage
notice if called with unkown arguments (e.g. --help).
* Remove obsolete linda overrides and yorick-almost-everything files
from source package.
-- Thibaut Paumard Fri, 14 Mar 2008 14:57:16 +0100
yorick (2.1.05+dfsg-3) unstable; urgency=low
* Convert from dpatch to quilt.
* Re-introduce -dSAFER in EPSGS_CMD. Fixes wrong bounding boxes when
using the eps et al. functions. (Closes: #468336).
* Strip main.o in yorick-dev.
* Add longtitle to Debian menu item.
-- Thibaut Paumard Thu, 28 Feb 2008 16:38:53 +0100
yorick (2.1.05+dfsg-2) unstable; urgency=low
* debian/copyright: fixed typo in download information:
y_2_1_04 -> y_2_1_05
* debian/control: add XS-DM-Upload-Allowed field
* fix a regression: pkginst.i now installs correctly again the infofile
specified on the command-line.
-- Thibaut Paumard Thu, 10 Jan 2008 13:43:45 +0100
yorick (2.1.05+dfsg-1) unstable; urgency=low
* update to cvs.
* add linda and lintian overrides.
* add data, python and glade directories.
* add watch file
* aknowledging Ubuntu fix to debian/helpers/pkginst.i
(closes: #459137, #459138, #459142, #459143, #459144, #459145).
* new yorick-doc package.
* move most txt and pdf documentation there.
* add html documentation.
* add update-yorickdoc command.
* large development of pkginst.i from yorick-dev:
* add dh_installyorick link to this file, which now behaves
like a debhelper script.
* add lines in maintainer scripts to call update-yorickdoc.
* add code in yorick-data.postrm to purge /etc/yorick if
necessary (closes: #454387).
-- Thibaut Paumard Mon, 7 Jan 2008 15:43:38 +0100
yorick (2.1.04+dfsg-1ubuntu1) hardy; urgency=low
[ Thibaut Paumard ]
* debian/helpers/pkginst.i: fix bashism which leads packages which
build-depend on yorick-dev to FTBFS.
[ Luca Falavigna ]
* debian/control: update Maintainer script as per spec
-- Luca Falavigna Thu, 06 Dec 2007 19:59:25 +0100
yorick (2.1.04+dfsg-1) unstable; urgency=low
* new upstream release.
* added link from /usr/lib/yorick/LICENSE to
/usr/share/doc/yorick/copyright. Closes: #399191
* minor doc corrections. Closes: #399192
* improved emacs integration.
If .i files have no association yet, they get
associated to yorick-mode. Closes: #399193
* modified dependencies for binNMU-safeness. Closes: #435966
* menu entry updated to new hierarchy, yorick is now found in
Applications/Science/Mathematics.
* installation scripts updated to use debconf for prompting.
* if /usr/lib/yorick/packages/pkg_setup.i exists, it is moved to
/etc/yorick/packages/. The link normal link is now part of the
package.
-- Thibaut Paumard Thu, 20 Sep 2007 10:33:53 +0200
yorick (2.1.01cvs20060706-1) unstable; urgency=low
* new maintainer. Closes: #357679
* acknowledged NMU. Closes: #346861
* upgrade to cvs ("2.1.02"), many new features, see ONEWS for changes
Closes: #333074, #367895
* fixed doc. Closes: #250903, #306726
* package revamped:
* now builds a "relocatable" tree with Y_SITE=Y_HOME=/usr/lib/yorick
(see README.Debian); request from DH Munro (upstream author and
former maintainer);
* split package into yorick, yorick-data and yorick-dev;
* yorick is now accessible through the Debian menu;
* system-wide configuration can now be done in /etc/yorick/,
user-wide in ~/.yorick/i-start/;
* now always installs the emacs helpers (yorick.el and yorick-auto.el);
* idlsave.i removed due to copyright issues.
* repackaged with debhelper (Closes: #372975)
-- Thibaut Paumard Thu, 06 Jul 2006 13:28:54 +0200
yorick (1.5.14-1.1) unstable; urgency=high
* Non-maintainer upload.
* Split xlibs-dev build-dep (Closes: #346861).
-- Luk Claes Mon, 9 Jan 2006 19:46:59 +0100
yorick (1.5.14-1) unstable; urgency=low
* fixed info manual long ago (Closes: #75177)
* upgrade to 1.5.14, see NEWS for changes
-- David H. Munro Wed, 8 Oct 2002 16:38:57 -0800
yorick (1.5.12-1) unstable; urgency=low
* upgrade to 1.5.12, see NEWS for changes
-- David H. Munro Thu, 21 Nov 2002 16:38:57 -0800
yorick (1.5.10-1) unstable; urgency=low
* added -geometry switch to gist (Closes: #150115)
* fixed gist font orientation (Closes: #150110)
* reworded gist "partly illegible" warning (Closes: #150093)
* (the warning is not bogus, a file with cell arrays really
* would be partly illegible)
* numerous other more serious bug fixes, see NEWS
-- David H. Munro Mon, 1 Jul 2002 15:12:04 -0800
yorick (1.5.08-1) unstable; urgency=low
* 1.5.08 replaces infant mortality 1.5.07, see NEWS
-- David H. Munro Mon, 4 Feb 2002 08:47:40 -0800
yorick (1.5.07-1) unstable; urgency=low
* renumber version to accomodate binary file change in upstream source
* numerous bug fixes, see NEWS file
-- David H. Munro Mon, 28 Jan 2002 09:15:46 -0800
yorick (1.5-06) unstable; urgency=low
* private release, never uploaded
-- David H. Munro Fri, 25 Jan 2002 15:12:26 -0800
yorick (1.5-05) unstable; urgency=low
* private release, never uploaded
-- David H. Munro Fri, 25 Jan 2002 15:11:44 -0800
yorick (1.5-04) unstable; urgency=low
* repair debian problems (Closes: #116588)
-- David H. Munro Mon, 22 Oct 2001 15:11:07 -0700
yorick (1.5-03) unstable; urgency=low
* fixes many bugs in 1.5-02, see NEWS file
-- David H. Munro Fri, 19 Oct 2001 15:11:07 -0700
yorick (1.5-02) frozen unstable; urgency=low
* repairs debian/control (Closes: #105154)
-- David H. Munro Thu, 19 Jul 2001 15:11:07 -0700
yorick (1.5-01) unstable; urgency=low
* version 1.5.01 upstream release
-- David H. Munro Sat, 5 May 2001 12:45:38 -0700
yorick (1.4-15) unstable; urgency=low
* resync 1.4-14.2 with upstream sources
-- David H. Munro Wed, 2 May 2001 14:27:45 -0700
yorick (1.4-14.2) unstable; urgency=low
* NMU
* Package is orphaned: maintainer set to the Debian QA Group,
which acknowledges the previous NMU. (Closes: #91102, #91103, #91726,
#91727, #91728)
* Maintainer stated in the entry for yorick 1.4-13 that he had
dealt with bugs 30857, 37405, 37587 and 39814, therefore I'm assuming
he forgot to close them. (Closes: #30857, #37405, #37587, #39814)
-- Carlos Laviola Sat, 21 Apr 2001 00:41:26 -0300
yorick (1.4-14.1) unstable; urgency=low
* NMU
* Yorick/doc/yorick.tex: Typo is fixed (Closes: #75177)
* debian/rules: replaced every reference of /usr/{doc,man} with the proper
paths, which are /usr/share/{doc,man} now.
(Closes: #91102, #91103, #91726, #91727, #91728)
* Upped Standards-Version to 3.5.2.
-- Carlos Laviola Mon, 16 Apr 2001 21:41:45 -0300
yorick (1.4-14) frozen unstable; urgency=low
* fix unsigned char parsing problems, other minor fixes
-- David H. Munro Mon, 17 Apr 2000 14:00:10 -0700
yorick (1.4-13) unstable; urgency=low
* deal with bugs 30857 37405 37587 39814
-- David H. Munro Fri, 30 Jul 1999 11:06:19 -0700
yorick (1.4-12) stable unstable; urgency=low
* attempt to cope with slink and potato problems
-- David H. Munro Wed, 28 Apr 1999 10:30:17 -0700
yorick (1.4-11) frozen unstable; urgency=low
* fixed bogus xdevel virtual package dependency
-- David H. Munro Thu, 17 Dec 1998 09:48:48 -0800
yorick (1.4-10) frozen unstable; urgency=low
* many bug fixes, see NEWS file
-- David H. Munro Mon, 7 Dec 1998 10:39:08 -0800
yorick (1.4-9) unstable; urgency=low
* fixes bugs with rotated text and other graphics
-- David H. Munro Fri, 10 Apr 1998 08:21:56 -0700
yorick (1.4-8) unstable; urgency=low
* added copyright for yorick-dev, upstream bug fixes
-- David H. Munro Tue, 17 Mar 1998 12:21:04 -0800
yorick (1.4-7) unstable; urgency=low
* fix double-align problem for x2 speedup of fft, matrix ops
-- David H. Munro Wed, 4 Feb 1998 17:19:27 -0800
yorick (1.4-6) unstable; urgency=low
* rebuilt with libc6 and xlib6g for hamm
-- David H. Munro Thu, 15 Jan 1998 18:20:14 -0800
yorick (1.4-5) unstable; urgency=low
* upstream bug fixes thru 7/Nov/97 patch
-- David H. Munro Fri, 7 Nov 1997 17:12:23 -0800
yorick (1.4-4) unstable; urgency=low
* many small bug fixes and improvements
-- David H. Munro Tue, 7 Oct 1997 10:48:08 -0700
yorick (1.4-3) unstable; urgency=low
* Fixed package description to conform with debian-policy.
-- David H. Munro Tue, 29 Apr 1997 09:23:08 -0700
yorick (1.4-2) unstable; urgency=low
* fixed Gist/ps.ps, Yorick/ascio.c, yorick-dev and g77 dependencies
-- David H. Munro Thu, 10 Apr 1997 11:49:39 -0700
yorick (1.4-1) unstable; urgency=low
* New 1.4 version
-- David H. Munro Tue, 18 Mar 1997 17:56:14 -0800
yorick (1.3-3) unstable; urgency=low
* install through patch-4 on ftp-icf.llnl.gov:/pub/Yorick
-- David H. Munro Fri, 17 Jan 1997 14:11:51 -0800
yorick (1.3-2) unstable; urgency=low
* Upgraded to debstd technology, included yorick-1.3-patch-1.
-- David H. Munro Fri, 3 Jan 1997 15:14:46 -0800
yorick (1.3-1) unstable; urgency=low
* Initial Release.
-- David H. Munro Thu, 2 Jan 1997 12:38:08 -0800
debian/yorick.docs 0000664 0000000 0000000 00000000044 11770117412 011341 0 ustar ONEWS
debian/README.Debian.packages
debian/yorick-mpy-openmpi.prerm 0000664 0000000 0000000 00000000203 11770117412 014003 0 ustar #!/bin/sh
set -e
#DEBHELPER#
if [ "$1" != "upgrade" ]; then
update-alternatives --remove mpy /usr/bin/mpy.openmpi
fi
exit 0
debian/yorick-mpy-common.examples 0000664 0000000 0000000 00000000015 11770117412 014316 0 ustar mpy/testmp.i
debian/compat 0000664 0000000 0000000 00000000002 11770117412 010367 0 ustar 7
debian/yorick-doc.docs 0000664 0000000 0000000 00000000014 11770117412 012101 0 ustar build/doc/*
debian/README.source 0000664 0000000 0000000 00000002606 11770117412 011354 0 ustar This package uses quilt to manage all modifications to the upstream
source. Changes are stored in the source package as diffs in
debian/patches and applied during the build.
See /usr/share/doc/quilt/README.source for usage.
It is maintained on Alioth:
git://git.debian.org/git/debian-science/packages/yorick.git
The branches are set as follows:
- upstream-non-dfsg is a direct copy of upstream's master branch at
git://github.com/dhmunro/yorick.git
- upstream is the same with the following files or directories
removed: play/hacks/hack103.c i/idlsave.i opengl/
- master is a merge of upstream with the debian changes and the
debian/ directory
- pristine-tar holds the files needed by the eponymous utility
The tags are as follows:
- We inherit (non-dfsg) upstream release tags of the form y_x_y_zz;
- We use upstream/x.y.zz+dfsg for the corresponding DFSG-free
release;
- The Debian revisions are tagged debian/x.y.zz+dfsg-n.
Since this package uses quilt, the "upstream" and "master" branches
should remain identical except for the debian directory.
The quilt patches should be applied before building (in case one of
them modifies a file later modified during built) and the source
should be cleaned and unpatched commiting to git. This can be done
with: fakeroot debian/rules gitclean.
-- Thibaut Paumard , Tue, 19 Jun 2012 15:07:02 +0200
debian/yorick-doc.triggers 0000664 0000000 0000000 00000000132 11770117412 013000 0 ustar interest /usr/share/yorick-doc
interest /usr/share/yorick/i
interest /usr/share/yorick/i0
debian/yorick-policy 0000664 0000000 0000000 00000013750 11770117412 011717 0 ustar Yorick for Debian Packaging Policy
==================================
This document drafts the best practices/policy for Yorick and add-on
packages. Concensus on has been easy to reach since there is so far
mostly one person involved, although at times I have to argue fiercely
with myself and have been edging on the verge of self-inflicted
flame-war.
In fact, I am just aiming at documenting hereby how I do things.
Other relevant documents
------------------------
/usr/share/doc/yorick/README.Debian*, man dh_installyorick, man
update-yorickdoc, Yorick source README.
File layout
-----------
After discussions with David Munro (primary upstream author of
Yorick), I have made the Debian packages relocatable and install it under
Y_SITE=Y_HOME=/usr/lib/yorick. There are mainly two reasons for it:
- David plans on deprecating the Y_SITE/Y_HOME dichotomy and on
supporting only relocatable builds at some point;
- this makes is reasonably easy for a sysadmin to save a working
version of Yorick to somewhere under /usr/local for instance,
before a major, potentially incompatible upgrade (or even after,
since they are supposed to back-up their systems!). Installing
under something like /usr/lib/yorick/2.1 for instance looked like
an unnecessary burden to me.
However, the Debian policy, following the FHS, specifies that
arch-indep files should be installed under /usr/share. This is the
case of many files in Yorick and its add-ons: the interpreted
libraries (.i files), the GIST (graphic) files (.gp and .gs), python
scripts and glade files for packages which peruse a fancy GUI... So
indeed those files are installed under /usr/share/yorick and linked to
from /usr/lib/yorick.
The yorick-dev package provides the command dh_installyorick, which
any yorick add-on should use. It handles installation of files under
various subdirectories of /usr/lib/yorick and /usr/share/yorick, so
add-on package maintainers don't need to deal with the nasty details
(and should not, as they may change). However, here they are:
/usr/share/yorick
all arch-indep files for yorick and add-ons.
/usr/share/yorick/data
misc data files for add-ons (no example in mind, this is a
provision should a maintainer need it).
/usr/share/yorick/include
C include files
/usr/share/yorick/python
Python scripts, usually for software coded in Yorick with a GUI
coded in Python+glade.
/usr/share/yorick/i
Yorick interpreted functions (.i files)
/usr/share/yorick/i/debian
Debian-specific .i files, used in dh_installyorick for instance.
/usr/share/yorick/i-start
Initialization .i files for packages, mostly used for autoload
statements.
/usr/share/yorick/g
Gist fils (.gs and .gp)
/usr/share/yorick/i0
Yorick bindings for compiled code (e.g. .i files containing a
plug_in statement).
/usr/share/yorick/packages
Files for pkg_mngr.i
/usr/share/yorick/packages/installed
.info files (see below) for packages installed under Y_SITE/Y_HOME.
/usr/share/yorick/glade
Glade files defining GUIs for Yorick software.
/usr/lib/yorick/
Yorick. This is Y_SITE and Y_HOME as perceived from within
yorick. All the files and directories directly under
/usr/share/yorick/ are linked to from here. Some files under
/usr/share/doc/ are also linked to from here.
/usr/lib/yorick/bin/
Binaries and executable scripts that need to be here (e.g. yorick
itself and gist), or that should not be in the path. It is fine to
put any executable file here, with or without a link from
e.g. /usr/bin. Currently, stand-alone programs coded in Yorick are
directly put in /usr/bin, but it could be nice to put them here
with a link in /usr/bin.
/usr/lib/yorick/lib/
.so files, mostly compiled plug-ins. Also object files and
libraries (.o, .so and .a files) as well as support executables
(codger, shell scripts) used for compiling plug-ins and custom
yorick executables.
/usr/share/yorick-doc/
Files used by update-yorickdoc for building the HTML
documentation. Each add-on package should put at least a .packinfo
file here, and may add .keywords and .aliases files as needed.
/etc/yorick/
Customization files. Some programs which use Yorick have their own
file directly under /etc/, but if possible, this should be
avoided. However, only packages with a strong dependency on Yorick
should put anything under /etc/yorick, since this directory will
be forcibly deleted when purging the yorick package. yorick-doc,
for instance, must survive a yorick purge, and therefore has its
own /etc/yorick-doc.
Mandatory files
---------------
Each add-on package should provide:
- one or several autoload file(s) named after the package (keep
upstream name if it exists already;
- a .info file, so that pkg_mngr knows what add-ons are installed in
Y_SITE; this makes it easier for users to use pkg_mngr to install
additional add-ons in their home directories;
- one or several .packinfo file(s) for update-yorickdoc, possibly
accompanied by .keywords and .aliases files.
dh_installyorick should be used to manage installation of these files
where they belong, refer to its manpage for more details.
Maintainer scripts
------------------
During Lenny development, the add-on packages used to call
"update-yorickdoc -a" in their postinst and postrm
scripts. Regeneration of HTML pages is now automatically triggered
whenever the content of any of these directories changes during
package unpack:
/usr/share/yorick-doc
/usr/share/yorick/i
/usr/share/yorick/i0
Therefore, the "update-yorickdoc -a" call is not necessary anymore,
and should be removed as soon as convenient. Since these lines are
normally added by dh_installyorick, a simple rebuild is sufficient.
However, if a package modifies any of these directories during
postinst or postrm, it should trigger the regeneration by calling
explicitely dpkg-trigger on this directory.
-- Thibaut Paumard Fri, 18 May 2008 08:06:43 +0200
debian/yorick-mpy-mpich2.install 0000664 0000000 0000000 00000000366 11770117412 014051 0 ustar mpy.mpich2/mpy.mpich2 /usr/lib/yorick/bin/
mpy.mpich2/libmpy.mpich2.a /usr/lib/yorick/lib/
mpy.mpich2/mpymain.mpich2.o /usr/lib/yorick/lib/
mpy.mpich2/Makempy.mpich2 /usr/share/yorick/
debian/yorick-mpy-openmpi.postinst 0000664 0000000 0000000 00000000721 11770117412 014546 0 ustar #!/bin/sh
set -e
update-alternatives --install /usr/bin/mpy mpy /usr/bin/mpy.openmpi 40 \
--slave /usr/lib/yorick/lib/libmpy.a libmpy.a \
/usr/lib/yorick/lib/libmpy.openmpi.a \
--slave /usr/lib/yorick/lib/mpymain.o mpymain.o \
/usr/lib/yorick/lib/mpymain.openmpi.o \
--slave /usr/lib/yorick/Makempy Makempy \
/usr/lib/yorick/Makempy.openmpi
#DEBHELPER#
exit 0
debian/yorick-doc.doc-base 0000664 0000000 0000000 00000000722 11770117412 012634 0 ustar Document: yorick-doc
Title: Yorick Documentation
Author: David Munro
Abstract: Yorick documentation consists of the Yorick Manual, quick reference
cards, and the indexed and cross-referenced documentation for all
Yorick and add-on functions installed on this system.
Section: Science/Data Analysis
Format: HTML
Index: /usr/share/doc/yorick-doc/README.html
Files: /usr/share/doc/yorick-doc/README.html /usr/share/doc/yorick-doc/*/* /usr/share/doc/yorick-doc/*.css
debian/yorick-doc.postrm 0000664 0000000 0000000 00000000402 11770117412 012476 0 ustar #!/bin/sh
set -e
case $1 in
remove)
if [ -x "`which update-yorickdoc 2>/dev/null`" ]; then
update-yorickdoc --auto
fi
;;
purge)
if [ -e "/usr/share/doc/yorick-doc" ]; then
rm -Rf /usr/share/doc/yorick-doc
fi
;;
esac
#DEBHELPER#
debian/yorick.install 0000664 0000000 0000000 00000000220 11770117412 012053 0 ustar build/lib usr
debian/etc/yorick etc
build/50yorick-auto.el etc/emacs/site-start.d
debian/lintian-overrides.d/yorick usr/share/lintian/overrides
debian/yorick-mpy-openmpi.links 0000664 0000000 0000000 00000000271 11770117412 014003 0 ustar /usr/lib/yorick/bin/mpy.openmpi /usr/bin/mpy.openmpi
/usr/share/yorick/Makempy.openmpi /usr/lib/yorick/Makempy.openmpi
/usr/share/man/man1/mpy.1.gz /usr/share/man/man1/mpy.openmpi.1.gz
debian/yorick-data.install 0000664 0000000 0000000 00000000362 11770117412 012771 0 ustar build/share usr
debian/zzdebian.i usr/share/yorick/i-start
emacs/yorick.el usr/share/emacs/site-lisp
build/yorick*.xpm usr/share/pixmaps
debian/lintian-overrides.d/yorick-data usr/share/lintian/overrides
doc/html/htmldoc.i usr/share/yorick/i
debian/yorick.README.Debian 0000664 0000000 0000000 00000007731 11770117412 012541 0 ustar Yorick for Debian
-----------------
This is the `Yorick' interpreted language by David H. Munro, prepackaged for
Debian GNU/Linux.
This package was put together by Thibaut Paumard
from the sourceforge CVS sources. The changes are regularly committed back to
the CVS.
1) Documentation
2) Configuration
3) Add-ons
4) Relocation
5) Suppressed material
6) Additional documentation
1) Documentation
----------------
The homepage is full-featured with an active forum, bug-tracker etc.
http://yorick.sourceforge.net
Install the yorick-doc package for off-line documentation. It contains
the Yorick Manual and Quick-Reference Cards in HTML and PDF formats,
as well as HTML documentation for all the Yorick functions installed
on your system. By default, this documentation is updated each time
you install, update, or remove Yorick or a Yorick add-on package. See
the `update-yorickdoc'command in the yorick-doc package if this is not
what you want, or if this does not work for some reason.
2) Configuration:
-----------------
* System-wide:
Any .i script found in /etc/yorick/ will be sourced by Yorick on start-up (in
alphabetic order). Use this for system-wide configuration.
* Per-user:
Each user can have one user directory, one of ~/.yorick, ~/yorick and
~/Yorick. If you have several of them and want to know which one Yorick is
using , look at the Y_USER variable. Any .i script found in Y_USER/i-start/
will be sourced by Yorick on start-up (in alphabetic order). This can be used
for user-level configuration.
Additionally, Yorick will look for custom.i in the path. This can be used for
"task-level" customizations by putting a custom.i in the directory from which
you start Yorick for a given task.
3) Add-ons:
-----------
There are useful interpreted libraries as well as compiled plug-ins available
around the net (see e.g. http://www.maumae.net), some of which are packaged
for Debian.
By default, the Debian package of Yorick is configured in such way that its
package manager (pkg_mngr.i) will install packages under
/usr/local/lib/yorick. See README.Debian.packages for details. Users can take
inspiration from this file to install packages in their home directories.
4) Relocation:
--------------
This build of Yorick is relocatable. This means that you can keep a functional
copy of this version e.g. before upgrading by simply copying the entire
/usr/lib/yorick directory anywhere. If you do that:
- make sure you dereference symbolic links (-L option to cp);
- you may want to remove i-start/zzdebian.i, which makes an
`include_all,"/etc/yorick";';
- you may also want to have a look at packages/pkg_setup.i
and check whether it does something useful for you (you probably want to
delete it).
- the yorick binary is in bin/; you may set up a symbolic link, but you
cannot change the layout of the directory tree or move the real executable
out.
5) Suppressed material
----------------------
Due to some copyright incompatibilities, a few files have been removed from
the upstream source. Most of them do not get used in the standard Linux build
anyway and are therefore useless for the Debian package (see copyright file
for details).
The exception is idlsave.i, that can be used to read "save" files from the
commercial software Interactive Data Language (IDL) from Research System
Inc. (RSI). It is legal for an IDL user to use and distribute this file, but
it might be problematic for Debian to ship it.
If you need to exchange data between IDL and Yorick, I suggest you look at a
standard file format: FITS is supported out-of-the-box by Yorick, HDF5 thanks
to the yorick-hdf5 plug-in. If you really need idlsave.i, grab it from the CVS
web interface, as of writing:
http://yorick.cvs.sourceforge.net/*checkout*/yorick/yorick/i/idlsave.i
and put it anywhere in your path (e.g. /usr/local/lib/yorick/i/ for
system-wide install, ~/.yorick/ for per-user install).
Thibaut Paumard ,
Sat, 29 Dec 2007 15:31:24 +0100
debian/yorick.manpages 0000664 0000000 0000000 00000000030 11770117412 012177 0 ustar doc/yorick.1
doc/gist.1
debian/yorick-mpy-mpich2.README.Debian 0000664 0000000 0000000 00000001421 11770117412 014512 0 ustar Message Passing Yorick package for Debian
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This package is built against the MPICH2 implementation of the Message
Passing Interface (MPI).
A test script is provided in
/usr/share/doc/yorick-mpy-common/examples/.
To run it, you must first start the mpd daemon. After having created a
mpd.conf file (see man mpd), run
mpd&
Then copy, unzip and run the script:
cp /usr/share/doc/yorick-mpy-common/examples/testmp.i.gz ./
gunzip testmp.i.gz
mpirun -np 4 mpy.mpich2 -j testmp.i
Then, at the mpy command prompt:
> testmp
> quit
You can test with other values of the -np parameter above, see man
mpirun.
See the yorick and mpy manpages for more details.
-- Thibaut Paumard , Tue, 23 Mar 2010 16:22:52 +0100
debian/copyright 0000664 0000000 0000000 00000013260 11770117412 011126 0 ustar Format: http://svn.debian.org/wsvn/dep/web/deps/dep5.mdwn?op=file
Upstream-Name: Yorick
Upstream-Contact: David H. Munro
Source: http://yorick.sourceforge.net/
Files: *
Copyright: 1989, 1993-1995, 2005-2011, The Regents of the University of California.
License: BSD
Files: emacs/yorick.el
Copyright: 2000, David H. Munro
License: GPL-2+
Files: i/fits.i
Copyright: 2000-2008, Éric Thiébaut
License: GPL-2+
Files: doc/refs.tex
Copyright: 1987, Free Software Foundation, Inc.
1995, Regents of the University of California
License: GPL-1+
Files: debian/* distribs/debian/*
Copyright: 2006-2011 Thibaut Paumard
License: GPL-2+
Files: regexp/yregexp.c
Copyright: 1986, University of Toronto
License: other
Written by Henry Spencer. Not derived from licensed software.
.
Permission is granted to anyone to use this software for any
purpose on any computer system, and to redistribute it freely,
subject to the following restrictions:
.
1. The author is not responsible for the consequences of use of
this software, no matter how awful, even if they arise
from defects in it.
.
2. The origin of this software must not be misrepresented, either
by explicit claim or by omission.
.
3. Altered versions must be plainly marked as such, and must not
be misrepresented as being the original software.
.
Beware that some of this code is subtly aware of the way operator
precedence is structured in regular expressions. Serious changes in
regular-expression syntax might require a total rethink.
License: BSD
BSD License
.
Copyright (c) 2005, The Regents of the University of California.
Produced at the Lawrence Livermore National Laboratory.
Written by David H. Munro .
UCRL-CODE-155996
All rights reserved.
.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
.
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the disclaimer below.
.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the disclaimer (as noted below)
in the documentation and/or other materials provided with the
distribution.
.
* Neither the name of the UC/LLNL nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"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 REGENTS OF
THE UNIVERSITY OF CALIFORNIA, THE U.S. DEPARTMENT OF ENERGY OR
CONTRIBUTORS 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.
.
.
.
.
Additional BSD Notice
.
1. This notice is required to be provided under our contract with the
U.S. Department of Energy (DOE). This work was produced at the
University of California, Lawrence Livermore National Laboratory under
Contract No. W-7405-ENG-48 with the DOE.
.
2. Neither the United States Government nor the University of
California nor any of their employees, makes any warranty, express or
implied, or assumes any liability or responsibility for the accuracy,
completeness, or usefulness of any information, apparatus, product, or
process disclosed, or represents that its use would not infringe
privately-owned rights.
.
3. Also, reference herein to any specific commercial products,
process, or services by trade name, trademark, manufacturer or
otherwise does not necessarily constitute or imply its endorsement,
recommendation, or favoring by the United States Government or the
University of California. The views and opinions of authors expressed
herein do not necessarily state or reflect those of the United States
Government or the University of California, and shall not be used for
advertising or product endorsement purposes.
License: GPL-1+
Permission is granted to make and distribute copies of
this card provided the copyright notice and this permission notice
are preserved on all copies.
.
On Debian systems, the GPL (v. 2) can be found in
/usr/share/common-licenses/GPL-2
License: GPL-2+
This program is free software; you can redistribute it
and/or modify it under the terms of the GNU General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later
version.
.
This program 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 General Public License for more
details.
.
You should have received a copy of the GNU General Public
License along with this package; if not, write to the Free
Software Foundation, Inc., 51 Franklin St, Fifth Floor,
Boston, MA 02110-1301 USA
.
On Debian systems, the full text of the GNU General Public
License version 2 can be found in the file
`/usr/share/common-licenses/GPL-2'.
debian/source/ 0000775 0000000 0000000 00000000000 11770117412 010471 5 ustar debian/source/format 0000664 0000000 0000000 00000000014 11770117412 011677 0 ustar 3.0 (quilt)
debian/yorick-mpy-common.manpages 0000664 0000000 0000000 00000000012 11770117412 014270 0 ustar mpy/mpy.1
debian/README.Debian.packages 0000664 0000000 0000000 00000017713 11770117412 013020 0 ustar Debian treatment for Yorick add-on packages
-------------------------------------------
1 What are Yorick add-on packages?
2 How to install add-on packages under Debian?
2.1 Using pkg_mngr.i
2.2 Compiling from source
2.3 Adjusting your paths
3 Technical details
3.1 What does Debian do with add-on packages?
3.2 Why?
3.3 How?
4 Bugs
4.1 ERROR (*main*) autoload variable must be nil initially
4.2 GISTPATH
1) What are Yorick add-on packages?
-----------------------------------
The Yorick core package is intentionally simple. It has very few external
dependencies and contains only the functionalities needed in most setups.
Add-on packages exist for a variety of more specific problems, ranging from
fairly general purpose file format support (e.g. jpeg support in the yorick-z
package) to very specialized software (e.g. modelling of the adaptive optics
systems used in modern telescopes in the yorick-yao package).
Some of these add-ons are purely interpreted libraries, others contain
compiled code (and are then called plug-ins).
There are basically three ways of installing add-ons:
- some are available as Debian packages installable through e.g. apt-get
(there names always start in yorick-);
- more can be downloaded and installed using Yorick's own package manager
pkg_mngr.i (as of writing, the only Debian platform supported is i386, ppc
coming soon);
- even more can be downloaded from the Internet as source code that you have
to compile and install yourself.
We will describe the last two methods below, as the first is straightforward.
2) How to install add-on packages under Debian?
-----------------------------------------------
2.1 using pkg_mngr.i
--------------------
This method currently works only for GNU/Linux on i386 as well as MacOS on PPC
and MS Windows on i386.
To install packages using the pkg_mngr, simply install the Debian package
`curl' and issue the following at the Yorick prompt:
//install system-wide under /usr/local/lib/yorick:
// you must be root or in the `staff' group
#include "pkg_mngr.i"; // you then get a message that a special Debian
// configuration has been loaded
pkg_sync; // synchronize the package list with the repository
pkg_list; // lists available packages
pkg_install,"pkg_name"; // replace pkg_name by the actual name
//install at the user level or at another location:
#include "pkg_mngr.i"; // you then get a message that a special Debian
// configuration has been loaded
pkg_setup; // reconfigure the pkg_mngr: you would normally
// accept all defaults except for `PKG_Y_HOME'.
// Follow the instructions on screen.
pkg_sync; // synchronize the package list with the repository
pkg_list; // lists available packages
pkg_install,"pkg_name"; // replace pkg_name by the actual name
2.2 Compiling from source
-------------------------
First make sure you installed the yorick-dev package.
Packages usually come with instructions on how to install them, which for
simpler packages boils down to:
yorick -batch make.i # sometimes a more complicated configure step
make
make install
Under Debian, you can specify the variables DEST_Y_SITE and DEST_Y_HOME (and
DEST_Y_BINDIR if you are building an executable) in this last `make install'
step to install at a custom place. For instance:
# system-wide, recommended place (/usr/local/lib/yorick):
make DEST_Y_SITE=/usr/local/lib/yorick \
DEST_Y_HOME=/usr/local/lib/yorick \
install
# per-user, canonical place (~/.yorick):
make DEST_Y_SITE=~/.yorick \
DEST_Y_HOME=~/.yorick \
install
See /usr/lib/yorick/Makepkg for details.
2.3 adjusting your paths
------------------------
You must make sure Yorick is able to find the files you install. The Debian
default configuration includes a full package tree in /usr/local/lib/yorick,
so if you install packages there, you have nothing special to do (see
/etc/yorick/20usrlocal.i).
On the other hand, if you install in another place (say, ~/.yorick), you must
add the following lines in a startup file (e.g. ~/.yorick/custom.i or any .i
file in ~/.yorick/i-start):
require, "pathfun.i";
add_y_home,"~/.yorick/";
pkg_setup will offer to do it for you.
3) Technical details
--------------------
3.1 What does Debian do with add-on packages?
---------------------------------------------
It is recommended not to mix packages installed through these various means
in the same directory. The following is advisable:
- packages installed using Debian's apt-get are installed in the main Yorick
tree (/usr/lib/yorick/);
- packages installed system-wide using Yorick's pkg_mngr or compiled manually
are installed in a local tree (/usr/local/lib/yorick/);
- additionally, users can install packages in their home directory.
3.2 Why?
--------
Apt is not aware of packages installed through the pkg_mngr. On the other hand,
the pkg_mngr is aware of packages installed through apt, but not that they have
been installed through apt. So you could easily install a package with apt and
remove it with the pkg_mngr, leaving your system in an inconsistent
state.
Another useful example: in the future, it is possible (and, actually, likely)
that the main Yorick package for Debian will change significantly, e.g. that
the main directory will be relocated. Debian packages for add-ons will be
updated accordingly, but packages installed using the pkg_mngr will be left
behind. Even worse, if the main directory is split rather than relocated, then
packages installed using the pkg_mngr will end-up half installed.
In a word, separating the apt space and the pkg_mngr/local space will save the
sysadmins from almost certain future hassle.
3.3 How?
--------
First of all, the local tree must be taken into account into the various paths
of Yorick. This is achieved through the file /etc/yorick/20usrlocal.i .
The second part is to get pkg_mngr to install files under
/usr/local/lib/yorick/. The Debian package provides a file
/etc/yorick/packages/pkg_setup.i which performs the basic configuration of the
pkg_mngr. This file also reads /usr/local/lib/yorick/packages/pkg_setup.i if
it exists. /etc/yorick/packages/pkg_setup.i is pointed to by a link in
Y_HOME/packages, that pkg_mngr.i reads when it is first loaded, unless the
variable PKG_SETUP is set.
There are copies of these two files in /usr/share/doc/yorick/examples/ .
4) Bugs
-------
4.1) ERROR (*main*) autoload variable must be nil initially
-----------------------------------------------------------
This error is due to the autoload() function and happens when the same package
is installed twice, for instance both system-wide and per-user.
More precisely, upon Yorick startup, if a package is installed twice in your
path, you will get an error such as:
ERROR (*main*) autoload variable must be nil initially
WARNING detailed line number information unavailable
now at pc= 1 (of 17), failed at pc= 11
LINE: 1 FILE: ~/.yorick/i-start/mypkg-auto.i
To enter debug mode, type now (then dbexit to get out)
Check all your i-start directories (/usr/lib/yorick/i-start/,
/usr/local/lib/yorick/i-start/, ~/.yorick/i-start/) for files with the same
name (in this case, "mypkg-auto.i"). If you find several of them, ask yourself
whether you need both copies of the package (presumably called "mypkg" in this
example). If not, simply deinstall one of the instances of the package.
If yes, then you can have the error disappear by doing the following:
- write down all the .i files that are referred to by calls such as
autoload, "file.i", var1, var2....;
in this file "mypkg-auto.i";
- for each one of them, write a line like
autoload, "file.i";
without variable specification once near the top of the file
~/.yorick/i-start/mypkg-auto.i .
This issue is being thought in depth by upstream.
-- Thibaut Paumard Sat, 28 Nov 2009 20:44:19 +0100
debian/yorick-mpy-mpich2.links 0000664 0000000 0000000 00000000264 11770117412 013520 0 ustar /usr/lib/yorick/bin/mpy.mpich2 /usr/bin/mpy.mpich2
/usr/share/yorick/Makempy.mpich2 /usr/lib/yorick/Makempy.mpich2
/usr/share/man/man1/mpy.1.gz /usr/share/man/man1/mpy.mpich2.1.gz
debian/yorick-mpy-common.install 0000664 0000000 0000000 00000000525 11770117412 014154 0 ustar mpy/mpy.i /usr/share/yorick/i0/
mpy/custommp.i /etc/yorick/mpy/
debian/custommp.i /usr/share/yorick/i/
mpy/mpy1.i /usr/share/yorick/i/
mpy/mpool.i /usr/share/yorick/i/
mpy/mpy.h /usr/share/yorick/include/
debian/yorick-mpy.packinfo /usr/share/yorick-doc/
debian/yorick-mpy-mpich2.prerm 0000664 0000000 0000000 00000000202 11770117412 013515 0 ustar #!/bin/sh
set -e
#DEBHELPER#
if [ "$1" != "upgrade" ]; then
update-alternatives --remove mpy /usr/bin/mpy.mpich2
fi
exit 0
debian/lintian-overrides.d/ 0000775 0000000 0000000 00000000000 11770117412 013051 5 ustar debian/lintian-overrides.d/yorick-data 0000664 0000000 0000000 00000001161 11770117412 015202 0 ustar yorick-data: extra-license-file usr/share/yorick/LICENSE.md
# This file is read by Yorick's "legal" command
yorick-data: package-contains-empty-directory usr/share/yorick/packages/installed/
yorick-data: package-contains-empty-directory usr/share/yorick/python/
yorick-data: package-contains-empty-directory usr/share/yorick/glade/
yorick-data: package-contains-empty-directory usr/share/yorick/data/
# Those directories are used by some add-on packages. They are linked
# to from /usr/lib/yorick. It is necessary to create the links in the
# yorick package. yorick-data creates the directories to avoid
# dangling links.
debian/lintian-overrides.d/yorick 0000664 0000000 0000000 00000000662 11770117412 014300 0 ustar yorick: menu-command-not-in-package usr/share/menu/yorick:4 rlwrap
# The actual menu command uses rlwrap only if it is installed,
# and works also if it isn't.
# Besides, rlwrap is "recommended" by yorick.
yorick: menu-icon-missing yorick32x32.xpm
yorick: menu-icon-missing yorick16x16.xpm
# The icons are in yorick-data, on which yorick "depends".
yorick: conflicts-with-version yorick-yutils (<= 1.5.0)
# Breaks isn't sufficient.
debian/yorick-data.postrm 0000664 0000000 0000000 00000000766 11770117412 012657 0 ustar #!/bin/sh
set -e
case $1 in
remove)
if [ -e /usr/share/yorick ]; then
rm -Rf /usr/share/yorick
fi
;;
purge)
# remove dangling conffiles from previous version
# if Yorick is purged but they are still around
if [ -e /etc/yorick ] && \
[ "`dpkg-query -s yorick|grep Status`" = "Status: purge ok not-installed" ]; then
rm -Rf /etc/yorick
fi
if [ -e /etc/emacs/site-start.d/50yorick-auto.el ]; then
rm -f /etc/emacs/site-start.d/50yorick-auto.el
fi
;;
esac
#DEBHELPER#
debian/yorick-doc.postinst 0000664 0000000 0000000 00000000317 11770117412 013042 0 ustar #!/bin/sh
set -e
case $1 in
configure|reconfigure)
if [ -e "/usr/share/yorick/i" ]; then
update-yorickdoc --auto-now
fi
;;
triggered)
update-yorickdoc --auto-now
;;
esac
#DEBHELPER#
debian/yorick.desktop 0000664 0000000 0000000 00000000254 11770117412 012065 0 ustar [Desktop Entry]
Type=Application
Encoding=UTF-8
Name=yorick
GenericName=
Comment=
Icon=yicon48.xpm
Exec=rlwrap yorick || yorick
Terminal=true
Categories=X-Debian-Apps-Math
debian/yorick-dev.links 0000664 0000000 0000000 00000000457 11770117412 012315 0 ustar usr/share/yorick/include usr/lib/yorick/include
usr/share/yorick/Make.cfg usr/lib/yorick/Make.cfg
usr/share/yorick/Makedll usr/lib/yorick/Makedll
usr/share/yorick/Makeexe usr/lib/yorick/Makeexe
usr/share/yorick/Makepkg usr/lib/yorick/Makepkg
usr/share/yorick/i/debian/pkginst.i usr/bin/dh_installyorick
debian/yorick-dbg.links 0000664 0000000 0000000 00000000206 11770117412 012263 0 ustar usr/lib/debug/usr/lib/yorick/bin/yorick usr/lib/debug/usr/bin/yorick
usr/lib/debug/usr/lib/yorick/bin/gist usr/lib/debug/usr/bin/gist
debian/yorick-dev.manpages 0000664 0000000 0000000 00000000042 11770117412 012756 0 ustar debian/helpers/dh_installyorick.1
debian/yorick-doc.prerm 0000664 0000000 0000000 00000000142 11770117412 012300 0 ustar #!/bin/sh
set -e
case $1 in
remove)
update-yorickdoc --auto --purge
;;
esac
#DEBHELPER#
debian/yorick-mpy.packinfo 0000664 0000000 0000000 00000000375 11770117412 013015 0 ustar :newsubsection
MPY: Message Passing Yorick
:mpy
base function of mpy (beware: mpy cannot be loaded in yorick, it is a separate executable)
:mpy1
backward compabiiity layer implementing the old mpy1 API
:mpool
dispatch work in a pool-of-tasks fashion
debian/yorick-mpy-openmpi.install 0000664 0000000 0000000 00000000376 11770117412 014337 0 ustar mpy.openmpi/mpy.openmpi /usr/lib/yorick/bin/
mpy.openmpi/libmpy.openmpi.a /usr/lib/yorick/lib/
mpy.openmpi/mpymain.openmpi.o /usr/lib/yorick/lib/
mpy.openmpi/Makempy.openmpi /usr/share/yorick/
debian/zzdebian.i 0000664 0000000 0000000 00000000224 11770117412 011147 0 ustar /*
Any changes to this file will be lost during upgrades.
Please put all local configuration in /etc/yorick .
*/
include_all,"/etc/yorick";
debian/helpers/ 0000775 0000000 0000000 00000000000 11770117412 010633 5 ustar debian/helpers/update-yorickdoc 0000664 0000000 0000000 00000005077 11770117412 014035 0 ustar #!/bin/sh
# $Id: update-yorickdoc,v 1.5 2009/12/02 16:01:03 paumard Exp $
set -e
# First set "builtin" defaults, see conffile for details:
CONFFILE=/etc/yorick-doc
USERFILE=${HOME}/.`basename ${CONFFILE}`
ENABLE_AUTO=1
SRC_DIR=/usr/share/yorick-doc
TEMPLATE=${SRC_DIR}/template.html
FROM=/usr/share/yorick/i:/usr/share/yorick/i0
TO=/usr/share/doc/yorick-doc
XREF_DIR=html_xref
QUIET=1
# source CONFFILE to possibly override these defaults:
if [ -r $CONFFILE ]; then
. $CONFFILE
fi
if [ `id -u` -gt 0 -a -r $USERFILE ]; then
. $USERFILE
fi
usage() {
echo Usage: `basename $0` '[--auto|-a] [--purge|-p] [--verbose|-v|--quiet|-q] \'
echo ' [--src-dir=] [--from=] [--to=] [--template=] [--xref-dir=] [--conf=]'
}
# parse command-line
PURGE=0
for opt; do
case $opt in
--auto|-a)
if [ $ENABLE_AUTO -eq 0 ]; then
echo "ENABLE_AUTO set to zero in $CONFFILE or equivalent"
echo "Not updating Yorick documentation"
exit 0
fi
if type dpkg-trigger >/dev/null 2>&1 ; then
exit 0
fi
;;
--auto-now|-A)
if [ $ENABLE_AUTO -eq 0 ]; then
echo "ENABLE_AUTO set to zero in $CONFFILE or equivalent"
echo "Not updating Yorick documentation"
exit 0
fi
;;
--purge|-p)
PURGE=1
;;
--verbose|-v)
QUIET=0
;;
--quiet|-q)
QUIET=1
;;
--src-dir=*)
SRC_DIR=${opt#--*=}
;;
--from=*)
FROM=${opt#--*=}
;;
--to=*)
TO=${opt#--*=}
;;
--template=*)
TEMPLATE=${opt#--*=}
;;
--xref-dir=*)
XREF_DIR=${opt#--*=}
;;
--conf=*)
CUSTOMRC=${opt#--*=}
if [ -r $CUSTOMRC ]; then
. $CUSTOMRC
else
echo "Warning: $CUSTOMRC not found"
fi
;;
*)
echo Unknown parameter $opt
usage
exit 1
;;
esac
done
if [ $QUIET -eq 1 ]; then
QUIET=--quiet
else
QUIET=
fi
# Do the actual work
echo Updating Yorick documentation in ${TO}/${XREF_DIR}
if [ -e ${TO}/${XREF_DIR} ]; then
rm -Rf ${TO}/${XREF_DIR}
fi
if [ $PURGE -eq 1 ]; then
echo "${TO}/${XREF_DIR} deleted."
exit 0
fi
if [ -x "`which yorick`" ]; then
mkdir -p $TO
PACKINFO=`mktemp`
KEYWORDS=`mktemp`
ALIASES=`mktemp`
cat ${SRC_DIR}/*.packinfo >> $PACKINFO
cat ${SRC_DIR}/*.keywords | sort | uniq >> $KEYWORDS
cat ${SRC_DIR}/*.aliases >> $ALIASES
yorick -batch htmldoc.i --template=$TEMPLATE --packinfo=$PACKINFO \
--keywords=$KEYWORDS --aliases=$ALIASES --from=$FROM --to=$TO \
--xref-dir=$XREF_DIR $QUIET
rm -f $PACKINFO $KEYWORDS $ALIASES
else
echo "Yorick not found; ${TO}/${XREF_DIR} deleted."
fi
exit 0
debian/helpers/README 0000664 0000000 0000000 00000002004 11770117412 011507 0 ustar Yorick Documentation
The files in this Y_SITE/doc directory are:
yorick.tex TeXinfo source for the Yorick manual
refs.tex TeX source for a short reference card
(these two files are precompiled in PDF and HTML formats in the
yorick-doc package)
Alphabetized DOCUMENT comments for Yorick functions in gzipped
text format (the same information is found in cross-referenced
HTML format in the yorick-doc package):
std.doc standard Yorick functions.
graph.doc Yorick graphics functions.
math.doc matrix and FFT functions.
drat.doc sample Drat transport equation solver. This is probably
of interest only as an example of how to write a
complete Yorick application.
hex.doc a 3D transport equation solver.
library.doc an index of the include files shipped with this Yorick
package.
FILE_FORMATS pointers to descriptions of all the binary file formats
recognized or produced by Yorick
debian/helpers/pkginst.i 0000775 0000000 0000000 00000014737 11770117412 012503 0 ustar #!/usr/bin/yorick -batch
/*
$Id: pkginst.i,v 1.7 2009/12/02 16:01:03 paumard Exp $
To be used in Debian packages for Yorick plug-ins
It is considered obsolete to call this script as documented below.
Call dh_installyorick instead, and refer to man dh_installyorick.
yorick -batch debian/pkginst.i $DESTDIR [pkg.info]
For now, will install under DESTDIR/Y_HOME, then move the
architecture-independent directories at the right place under
DESTDIR/usr/share and create the right symlinks in DESTDIR/Y_HOME.
Anything installed in contrib will be moved to i.
If the name of a .info file is provided on the command line, it will be
installed in the relevant directory.
*/
extern VERBOSE, NO_ACT, DESTDIR;
quiet=1; // avoid printing out install directories
#include "debian/instdirs.i"
if (anyof(options=="-v" | options=="--verbose") | get_env("DH_VERBOSE")=="1")
VERBOSE=1;
if (anyof(options=="--no-act") | get_env("DH_NO_ACT")=="1") NO_ACT=1;
func make_link(target, link) {
starget=pathsplit(target,delim="/");
slink=pathsplit(link,delim="/");
shortest=min(numberof(starget),numberof(slink));
fdif=(starget(1:shortest)==slink(1:shortest))(mnx);
target=pathform(starget(fdif:0),delim="/");
if (pathform(starget(1:fdif-1),delim="/")+"/"==DESTDIR) {
target="/"+target;
} else {
for (i=1;i<=numberof(slink)-fdif;i++) target="../"+target;
}
mkdirpv,dirname(link);
syscall,"ln -s "+target+" "+link;
}
func syscall(command) {
if (VERBOSE) write, format="\t%s\n",command;
if (!NO_ACT) {
status=long;
fh=popen(command+" >/dev/null && echo 0",0);
status=rdline(fh);
close,fh;
if (status != "0") error,"\""+command+"\" failed";
}
}
func mkdirpv (dir) {
if (VERBOSE) write, format="\tmkdir -p %s\n", dir;
if (!NO_ACT) mkdirp, dir;
}
func write_snipet (package, stage) {
fname=DEBIAN+package+"."+stage+".debhelper";
if (VERBOSE) write, format="\tupdating %s\n", fname;
if(!NO_ACT) {
f=open(fname,"a");
if (stage=="postinst") action="configure";
else if (stage=="postrm") action="remove";
write, f, format="%s\n",
["# Automatically added by dh_installyorick",
"if [ \"$1\" = \""+action+"\" ] && "+
"[ -x \"`which update-yorickdoc 2>/dev/null`\" ]; then",
" update-yorickdoc --auto",
"fi",
"# End automatically added section"];
close, f;
}
}
// single package special case:
// start with "make DESTDIR=debian/package/ install"
DIRS=["i-start","include","i0","i","g","doc","packages",
"python","glade","data"];
if (noneof(options=="--no-make-install") & numberof(packages)==1) {
syscall,"make DESTDIR="+DESTDIR+" install";
for (d=1;d<=numberof(DIRS);d++) {
from=DEPDIR+DIRS(d);
to=INDEPDIR+DIRS(d);
if (lsdir(DEPDIR+DIRS(d))!=0) {
mkdirpv, INDEPDIR;
syscall,"mv "+from+" "+to;
}
}
if (lsdir(DEPDIR+"contrib")!=0) {
mkdirpv,INDEPDIR+"i";
syscall,"mv "+DEPDIR+"contrib/* "+INDEPDIR+"i/";
syscall,"rmdir "+DEPDIR+"contrib";
}
temp=DEPDIR;
while (is_void(lsdir(temp)) & temp!=DESTDIR+"/") {
if (VERBOSE) write, format="\trmdir%s\n";
if (!NO_ACT) remove,temp;
temp=dirname(temp);
}
if (INFILE) {
dest=INDEPDIR+"packages/installed";
mkdirpv,dest;
syscall,"cp "+INFILE+" "+dest;
}
}
// General case: for each packages,
// 1) install various types of files listed in debian/package.*
// 2) add snipets to postinst.debhelper etc...
debian_files=lsdir(DEBIAN,dirs);
sy_site=pathsplit(Y_SITE,delim="/");
dy_site=numberof(sy_site); // depth of Y_SITE
for (packn=1;packn<=numberof(packages);packn++) {
package=packages(packn);
if (package==MAINPACKAGE) ISMAIN=1; else ISMAIN=0;
if (!ISMAIN & numberof(packages)>=2) {
DESTDIR=DEBIAN+package;
DEPDIR=DESTDIR+Y_HOME;
if (Y_SITE==Y_HOME) INDEPDIR=
DESTDIR+streplace(Y_HOME,strfind("usr/lib/",Y_HOME),"usr/share/");
else INDEPDIR=DESTDIR+Y_SITE;
}
ext="ynstall";
if (ISMAIN & anyof(debian_files==ext)) file=DEBIAN+ext;
else file=DEBIAN+package+"."+ext;
if (open(file,"r",1)) {
line=hdoc_read_file(file);
for (j=1;j<=numberof(line);j++) {
words=strpart(line(j),strword(line(j),,3));
file=words(1);
if (!file) continue;
if (strpart(file,[0,1])=="#") continue;
is_exec=0;
if (words(2)) {
// we've got a destination.
dest=words(2);
sdest=pathsplit(dest,delim="/");
if (numberof(sdest)>=dy_site && sdest(1:dy_site)==sy_site){
sdest=grow(["Y_SITE"],sdest(dy_site+1:));
dest=pathform(sdest,delim="/");
}
if (anyof(sdest(1)==DIRS)) dest=INDEPDIR+dest;
else if (anyof(sdest(1)==["lib","bin"])) dest=DEPDIR+dest;
else {
if (sdest(1)=="Y_HOME") dest=DEPDIR+pathform(sdest(2:),delim="/");
else if (sdest(1)=="Y_SITE") {
dest=pathform(sdest(2:),delim="/");
make_link,INDEPDIR+dest+"/"+basename(file),
DEPDIR+dest+"/"+basename(file);
dest=INDEPDIR+dest;
mkdirpv,dest;
} else dest=DESTDIR+"/"+dest;
}
} else {
// guess destination
ext=pathsplit(file,delim=".")(0);
if (ext=="i") dest=INDEPDIR+"i"; // so i0 and i-sart must be specified
else if (anyof(ext==["gs","gp"])) dest=INDEPDIR+"g";
else if (ext=="info") dest=INDEPDIR+"packages/installed";
else if (ext=="py") dest=INDEPDIR+"python";
else if (ext=="glade") dest=INDEPDIR+"glade";
else if (ext=="so") dest=DEPDIR+"lib";
else if (anyof(ext==["packinfo","keywords","aliases"]))
dest=DESTDIR+"/usr/share/yorick-doc";
}
mkdirpv,dest;
syscall,"cp "+file+" "+dest;
if (words(3)) {
// we've got a link.
link=pathsplit(words(3),delim="/");
if (link(1)=="Y_HOME") link=DEPDIR+pathform(link(2:),delim="/");
else if (link(1)=="Y_SITE") link=INDEPDIR+pathform(link(2:),delim="/");
else if (anyof(link(1)==DIRS)) link=INDEPDIR+words(3);
else if (anyof(link(1)==["lib","bin"])) link=DEPDIR+words(3);
else link=DESTDIR+"/"+words(3);
make_link,dest+"/"+basename(file),link;
if (anyof(basename(dirname(link))==["bin","sbin"])) is_exec=1;
}
if (anyof(basename(dest)==["bin","sbin","python"])) is_exec=1;
if (is_exec) syscall,"chmod a+x "+dest+"/"+basename(file);
}
}
// add maintainer script snipets
if (noneof(options=="-n") & anyof(options=="-m")) {
write_snipet, package, "postinst";
write_snipet, package, "postrm";
}
}
debian/helpers/update-yorickdoc.1 0000664 0000000 0000000 00000014246 11770117412 014172 0 ustar .\" $Id: update-yorickdoc.1,v 1.5 2009/12/02 16:01:03 paumard Exp $
.\"
.IX Title "UPDATE\-YORICKDOC 1"
.TH UPDATE\-YORICKDOC 1 "2008\-05\-18" "" "Yorick"
.SH "NAME"
update\-yorickdoc \- Build HTML documentation for Yorick
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
\&\fBupdate\-yorickdoc\fR [\fB\-\-conf=\fRfile] [\fB\-\-auto\fR] [\fB\-\-auto\-now\fR] [\fB\-\-from=\fRdirectory] [\fB\-\-to=\fRdirectory] [\fB\-\-xref\-dir=\fRdirectory] [\fB\-\-src\-dir=\fRdirectory] [\fB\-\-template=\fRfile]
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
update\-yorickdoc is a wrapper around htmldoc.i, a Yorick script that
extracts DOCUMENT comments from Yorick source files and turns them
into a set of HTML files. update\-yorickdoc merges files from a
"source directory" (default: /usr/share/yorick\-doc, command\-line
option: \-\-src\-dir), deletes the target directory (default:
/usr/share/doc/yorick\-doc/html_xref), and, if Yorick is installed,
calls "yorick \-batch htmldoc.i" to compile HTML documentation for all
currently installed functions (either from the main Yorick package or
from add\-on packages).
.PP
update\-yorickdoc is meant to be called automatically whenever a
Yorick package is installed or removed. It is possible to prevent
automatic updates by setting "ENABLE_AUTO" to 0 in /etc/yorick\-doc. It
is also possible to use update\-yorickdoc manually to create
documentation from custom directories (e.g. a user's own ~/Yorick/
directory) or to a custom place, for instance.
.PP
update\-yorickdoc has a set of default parameters to function
with. These parameters are overwritten in chronological order by the
content /etc/yorick\-doc, $HOME/.yorick\-doc, and the command line.
.PP
A few files are required for this script to function. Default files
are provided in the default source directory, and add\-on packages
should provide additional information in the same place. See
\fBFILES\fR below as well as
/usr/share/doc/yorick-dev/yorick-policy.gz.
.SH "OPTIONS"
.IX Header "OPTIONS"
.IP "\fB\-\-auto\fR | \fB\-a" 4
.IX Item "\-\-auto"
This flag is being deprecated by the advent of triggers in dpkg. On
systems where dpkg supports triggers, \-a turns update\-yorickdoc into
a no-op. On older systems, it behaves like \-A below.
.IP "\fB\-\-auto\-now\fR | \fB\-A" 4
.IX Item "\-\-auto\-now"
This flag is meant to be used only in the postinst script of the
yorick-doc package, which is turn is supposed to be triggered each
time a yorick add-on package is installed, upgraded, or removed. It is
possible to turn update\-yorickdoc into a no\-op when this flag is set
by setting ENABLE_AUTO to 0 in /etc/yorick\-doc.
.IP "\fB\-\-conf=\fRfile" 4
.IX Item "\-\-conf=file"
Read configuration from this file. This file is parsed as the option
is found on the command line, overwriting the options coming before.
.IP "\fB\-\-from=\fRdirectory1:directory2..." 4
.IX Item "\-\-from=directory1:directory2..."
Colon\-separated list of directories to scan for Yorick files. Default:
/usr/share/yorick/i:/usr/share/yorick/i0.
.IP "\fB\-\-purge\fR | \fB\-p" 4
.IX Item "\-\-purge"
Only delete /usr/share/doc/yorick\-doc/html_xref (or the directory set
using \-\-to and \-\-xref\-dir, or the equivalent variables in
/etc/yorick\-doc), do not rebuild the documentation afterwards.
.IP "\fB\-\-quiet\fR | \fB\-q" 4
.IX Item "\-\-quiet"
Be quiet, only telling shortly what update\-yorickdoc does. This is
the built-in default but may have been overridden in a configuration
file.
.IP "\fB\-\-src\-dir=\fRdirectory" 4
.IX Item "\-\-src\-dir=directory"
Directory containing .packinfo, .keywords and .aliases files when
building the documentation. Each of these three types of files will be
concatenated in lexicographical order and fed to htmldoc.i using the
\-\-packinfo, \-\-keywords, and \-\-aliases options (see
htmldoc.i). Default: /usr/share/yorick\-doc.
.IP "\fB\-\-template=\fRfile" 4
.IX Item "\-\-template=file"
Template file for htmldoc.i. The correct format is detailed
htmldoc.i. Default: /usr/share/yorick\-doc/template.html.
.IP "\fB\-\-to=\fRdirectory" 4
.IX Item "\-\-to=directory"
Top\-level directory of the Yorick HTML hierarchy to update. This is
one level above the directory that will be deleted and/or
(re)built. Defaults to /usr/share/doc/yorick\-doc.
.IP "\fB\-\-verbose\fR | \fB\-v" 4
.IX Item "\-\-verbose"
Be verbose, outputting lots of debugging information. The built-in
default is to be quiet, just telling shortly what update\-yorickdoc
does.
.IP "\fB\-\-xref\-dir=\fRword" 4
.IX Item "\-\-xref\-dir=word"
The sub\-directory of the "TO" directory in which to compile the
documentation. Certain hyperlinks in the documentation will use this
value. This should not be set to a directory whose content you value,
since this directory will be first erased. Default: html_xref.
.SH "FILES"
.IX Header "FILES"
.IP "\fB/etc/yorick\-doc\fR" 4
.IX Item "/etc/yorick\-doc"
System\-wide configuration for update\-yorickdoc. This is the right
place to set ENABLE_AUTO=0 in case you don't want Yorick's
documentation each time a package of the Yorick suite is installed,
upgraded, or removed. Another interesting option is FROM, in which you
can add for instance /usr/local/yorick/i if you maintain a secondary
Yorick tree at your site. See the file itself for more details.
.IP "\fB$HOME/.yorick\-doc\fR" 4
.IX Item "$HOME/.yorick\-doc"
User\-level equivalent to the above. It is ignored for the root user.
.IP "\fB/usr/share/yorick\-doc/*.packinfo\fR"
.IX Item "/usr/share/yorick\-doc/*.packinfo"
Source for the package index in the documentation.
.IP "\fB/usr/share/yorick\-doc/*.keywords\fR"
.IX Item "/usr/share/yorick\-doc/*.keywords"
Lists of keywords for the index page of the documentation.
.IP "\fB/usr/share/yorick\-doc/*.aliases\fR"
.IX Item "/usr/share/yorick\-doc/*.aliases"
See htmldoc.i.
.IP "\fB/usr/share/yorick\-doc/template.html\fR"
.IX Item "/usr/share/yorick\-doc/template.html"
Template file for htmldoc.i.
.IP "\fB/usr/share/yorick/i/htmldoc.i\fR"
.IX Item "/usr/share/yorick/i/htmldoc.i"
the Yorick script which does most of the actual work.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\&\fI/usr/share/yorick/i/htmldoc.i\fR,
\&\fI/usr/share/doc/yorick-dev/yorick-policy.gz\fR,
\&\fIdh_installyorick\fR\|(1)
.SH "AUTHORS"
.IX Header "AUTHORS"
Thibaut Paumard
debian/helpers/dh_installyorick.1 0000664 0000000 0000000 00000012671 11770117412 014266 0 ustar .\" $Id: dh_installyorick.1,v 1.4 2009/12/02 16:01:03 paumard Exp $
.\"
.IX Title "DH_INSTALLYORICK 1"
.TH DH_INSTALLYORICK 1 "2008\-05\-15" "" "Debhelper"
.SH "NAME"
dh_installyorick \- install Yorick add\-on packages
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
\&\fBdh_installyorick\fR [\fIdebhelper\ options\fR] [\fB\-m\fR] [\fB\-\-no\-make\-install\fR]
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
dh_installyorick is a debhelper program that installs the files of
your Yorick add\-on at the right place when building a Debian
package. For a simple plug\-in package, this is mostly done by calling
"make DESTDIR=debian/ install" and then moving
arch\-independent files to usr/share. Note that there is no
Y_SITE/contrib directory in the Debian packages, its content is merged
into YSITE/i.
.PP
Calling "make ... install" can be disabled by using the
"\-\-no\-make\-install" flag. This is useful in particular for interpreted
add\-on packages, which do not ship with a standard Yorick Makefile.
.PP
If the "\-m" flag is used (but not the "\-n" one), dh_installyorick
will also add lines to your package's postinst and postrm scripts to
call "update\-yorickdoc \-\-auto" if the yorick\-doc package is
installed. It is necessary to call dh_installdeb after
dh_installyorick for this to work. It is usually not necessary with a
recent dpkg supporting triggers, so this possibility is kept mostly
for easing backports and should be deprecated soon.
.PP
dh_installyorick will look for a file named
debian/.ynstall for additional files to install
(see \fBYNSTALL FILE\fR below). The prefix "." can be
omitted for the main binary package being built (usally the first one
listed in debian/control).
.PP
For the time being, Y_SITE=Y_HOME=/usr/lib/yorick. Requests to install
a file under Y_SITE results in its installation under
/usr/share/yorick. dh_installyorick handles the creation of the
necessary symbolic links from Y_HOME to /usr/share/yorick.
.PP
Files that are installed in a directory ending in "/bin" or "/sbin",
as well as files that are pointed at by symbolic link in such a
directory, are installed with execution permission for everyone.
.SH "OPTIONS"
.IX Header "OPTIONS"
.IP "\fB\-m\fR\fR" 4
.IX Item "\-m"
Modify postinst/postrm scripts to add a call to
update\-yorickdoc. This is needed only if the target dpkg does not
support triggers. If both "\-m" and "\-n" are specified, the scripts
are not modified.
.IP "\fB\-\-no\-make\-install\fR\fR" 4
.IX Item "\-\-no\-make\-install"
Do not call "make DESTDIR=debian/ install".
.IP "\fB\-\-infofile=\fR\fR" 4
.IX Item "\-\-infofile="
An additional pkg_mngr .info file to install.
.PP
Additionally, dh_installyorick abides by the following standard
debhelper options: \-a/\-\-arch, \-i/\-\-indep, \-\-mainpackage, \-n,
\-\-no\-act, \-N/\-\-no\-package, \-p/\-\-package, \-P/\-\-tmpdir,
\-s/\-\-same\-arch, and \-v/\-\-verbose.
.SH "YNSTALL FILE"
.IX Header "YNSTALL FILE"
Blank lines are ignored, several blank character are counted as one,
and line starting with "#" (possibly following one or more blanks) are
ignored. Each non\-comment, non\-blank line should be of the form:
.PP
\&\fIfile\fR [\fIdirectory\fR [\fIlink\fR]]
.PP
Where \fIfile\fR is the file to install, \fIdirectory\fR the directory
it should be installed in, and \fIlink\fR an optional symbolic link
pointing on the installed file.
.IP "\fIfile\fR" 4
.IX Item "file"
the relative path from the top directory of the package source to the
file. If \fIlink\fR is not specified, \fIfile\fR can contain shell
globs and actually denote sevral files. If \fIdirectory\fR is not
specified, it is guessed from the extension of \fIfile\fR: .i files
are installed in Y_SITE/i, .gs and .gp in Y_SITE/g, .info in
Y_SITE/packages/installed, .packinfo, .aliases and .keywords in
/usr/share/yorick\-doc, and .so in Y_HOME/lib.
.IP "\fIdirectory\fR" 4
.IX Item "directory"
the full path (without leading "/") into which the file should be
installed. If the file is to be installed inside Yorick's Y_SITE or
Y_HOME directory (which will almost alway be the case), it is possible
(and advisable) to not specify the full path, but to write "Y_SITE/"
or "Y_HOME" followed by the relative path from there. It is also
possible to omit this "Y_SITE/" or "Y_HOME/" prefix if \fIdirectory\fR
starts whith one of: Y_SITE/i, Y_SITE/i0, Y_SITE/i\-start, Y_SITE/g,
Y_SITE/packages, Y_HOME/bin or Y_HOME/lib.
.IP "\fIlink\fR" 4
.IX Item link
the full path to a symbolic link that should point to the installed
file. The same shortcuts apply as for \fIdirectory\fR.
.SH "EXAMPLES"
.IX Header "EXAMPLES"
The four following lines in debian/ynstall would be equivalent:
.br
somefile.i /usr/share/yorick/i
.br
somefile.i Y_SITE/i
.br
somefile.i i
.br
somefile.i
.PP
Likewise, the following are equivalent:
.br
somefile.i /usr/share/yorick/i0
.br
somefile.i Y_SITE/i0
.br
somefile.i i0
.PP
Example with a symlink. Here, somefile.i is a script that is both useful
#included from within Yorick or from the command line. Its first line
reads "#!/usr/bin/yorick \-batch".
.br
somefile.i i usr/bin/command_name
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\&\fIdebhelper\fR\|(7),
\&\fIupdate\-yorickdoc\fR\|(1),
\&\fIdeb\-triggers\fR\|(5)
.PP
This program is a part of yorick\-dev but is made to work with
debhelper. Note that only compatibility level 5 has been implemented
and tested. This script is not idempotent, dh_clean \-k should be
executed between any two runs.
.SH "AUTHORS"
.IX Header "AUTHORS"
Thibaut Paumard
debian/helpers/instdirs.i 0000775 0000000 0000000 00000006252 11770117412 012654 0 ustar #!/usr/bin/yorick -batch
/*
$Id: instdirs.i,v 1.2 2007/12/11 12:56:54 paumard Exp $
To be used in Debian packages for Yorick add-ons
yorick -batch debian/instdirs.i [$DESTDIR]
Will output the directories for architecture dependent and independent
files.
*/
if (batch()) b=1; else b=0;
batch,0;
#include "htmldoc.i"
batch,b;
if (is_void(argv)) argv=get_argv();
ind=where(strgrep("^-",argv)(2,)==-1);
if (numberof(ind)>=2) {
DESTDIR=argv(ind(2));
MAINPACKAGE=package=basename(DESTDIR);
packages=[package];
DEBIAN=dirname(DESTDIR)+"/";
}
if (is_void(DEBIAN)) DEBIAN="debian/";
if (numberof(ind)>=3) INFILE= argv(ind(3));
ind=where(strgrep("^-",argv)(2,)!=-1);
if (numberof(ind)) options=argv(ind);
options=grow(get_env("DH_OPTIONS"), options);
if (is_void(packages)) {
file=hdoc_read_file("debian/control");
ind=where(strgrep("^Package: ",file)(2,)!=-1);
packages=strpart(file(ind),strlen("Package: ")+1:0);
ind=where(strgrep("^Architecture: ",file)(2,)!=-1);
archs=strpart(file(ind),strlen("Architecture: ")+1:0);
MAINPACKAGE=packages(1);
}
if (anyof(strgrep("^-p",options)(2,)!=-1)) packages=[];
if (anyof(strgrep("^--package=",options)(2,)!=-1)) packages=[];
if (anyof(options=="-i" | options=="--indep"))
packages=packages (where(archs=="all"));
if (anyof(options=="-a" | options=="--arch"))
packages=packages (where(archs!="all"));
if (anyof(options=="-s" | options=="--same-arch")) {
f=popen("dpkg-architecture",0);
line=rdline(f,12);
close,f;
arch=pathsplit(line(where(strmatch(line,"DEB_BUILD_ARCH"))),delim="=")(2);
packages=packages(where(strmatch(archs,arch) | strmatch(archs,"any")));
}
for (i=1;i<=numberof(options);i++) {
option=options(i);
if (strpart(option,1:strlen("--tmpdir="))=="--tmpdir=") {
DESTDIR=strpart(option,strlen("--tmpdir=")+1:0);
continue;
}
if (strpart(option,1:strlen("-P"))=="-P") {
DESTDIR=strpart(option,strlen("-P")+1:0);
continue;
}
if (strpart(option,1:strlen("--infofile="))=="--infofile=") {
INFILE=strpart(option,strlen("--infofile=")+1:0);
continue;
}
if (strpart(option,1:strlen("--mainpackage="))=="--mainpackage=") {
MAINPACKAGE=strpart(option,strlen("--mainpackage=")+1:0);
continue;
}
if (strpart(option,1:strlen("--package="))=="--package=") {
grow,packages,strpart(option,strlen("--package=")+1:0);
continue;
}
if (strpart(option,1:strlen("-p"))=="-p") {
grow,packages,strpart(option,strlen("-p")+1:0);
continue;
}
if (strpart(option,1:strlen("--no-package="))=="--no-package=") {
packages=packages(where(packages!=strpart(option,strlen("--no-package=")+1:0)));
continue;
}
if (strpart(option,1:strlen("-N"))=="-N") {
packages=packages(where(packages!=strpart(option,strlen("-N")+1:0)));
continue;
}
if (option=="-q" | option=="--quiet") {
quiet=1;
continue;
}
}
if (numberof(packages)==1) package=packages(1); else package=MAINPACKAGE;
if (is_void(DESTDIR)) {
DESTDIR="debian/"+package;
}
DEPDIR=DESTDIR+Y_HOME;
if (Y_SITE==Y_HOME) INDEPDIR=DESTDIR+streplace(Y_HOME,strfind("usr/lib/",Y_HOME),"usr/share/"); else INDEPDIR=DESTDIR+Y_SITE;
if (!quiet) {
write,format="%s\n",DEPDIR;
write,format="%s\n",INDEPDIR;
}
debian/yorick-data.dirs 0000664 0000000 0000000 00000000105 11770117412 012257 0 ustar usr/share/yorick/python
usr/share/yorick/glade
usr/share/yorick/data
debian/yorick.examples 0000664 0000000 0000000 00000000106 11770117412 012226 0 ustar debian/etc/yorick/20usrlocal.i
debian/etc/yorick/packages/pkg_setup.i
debian/custommp.i 0000664 0000000 0000000 00000000211 11770117412 011204 0 ustar // FHS: customization should go under /etc/
// include /etc/yorick/mpy/custommp.i if it exists
include, "/etc/yorick/mpy/custommp.i", 3;
debian/yorick-mpy-mpich2.postinst 0000664 0000000 0000000 00000000714 11770117412 014263 0 ustar #!/bin/sh
set -e
update-alternatives --install /usr/bin/mpy mpy /usr/bin/mpy.mpich2 40 \
--slave /usr/lib/yorick/lib/libmpy.a libmpy.a \
/usr/lib/yorick/lib/libmpy.mpich2.a \
--slave /usr/lib/yorick/lib/mpymain.o mpymain.o \
/usr/lib/yorick/lib/mpymain.mpich2.o \
--slave /usr/lib/yorick/Makempy Makempy \
/usr/lib/yorick/Makempy.mpich2
#DEBHELPER#
exit 0
debian/yorick-doc.links 0000664 0000000 0000000 00000000132 11770117412 012272 0 ustar usr/share/doc/yorick-doc usr/share/yorick/doc
usr/share/doc/yorick-doc usr/lib/yorick/doc
debian/etc/ 0000775 0000000 0000000 00000000000 11770117412 007744 5 ustar debian/etc/yorick-doc 0000664 0000000 0000000 00000003140 11770117412 011730 0 ustar # $Id: yorick-doc,v 1.2 2008/03/14 12:42:54 paumard Exp $
# This file configures the behavior of the update-yorickdoc command
# from the yorick-doc package.
# It is sourced by update-yorickdoc, which is a standard shell script.
# Should automatic updates ever happen?
# Yorick add-ons call update-yorickdoc with the --auto flag whenever they
# are installed or uninstalled. This is a no-op if the following is set to 0.
#ENABLE_AUTO=1
# Default directory for update-yorickdoc files (*.packinfo,
# *.keywords, and *.aliases). Also adjust the location of the template
# file if you change that. Note that this option only controls
# where update-yorickdoc looks for these files, Debian packages will always
# drop their files in the default location.
#SRC_DIR=/usr/share/yorick-doc
#TEMPLATE=${SRC_DIR}/template.html
# The following variables are defaults for the command line options.
# FROM: a semicolon-separated list of directories to scan for yorick
# include files.
# TO: the top-level folder of the documentation tree.
# XREF_DIR: the subdirectory of $TO where to put the files we will
# construct. Warning: the content of this directory wll be first
# erased, don't use a directory which contains something you value.
# Default:
#FROM=/usr/share/yorick/i:/usr/share/yorick/i0
#TO=/usr/share/doc/yorick-doc
#XREF_DIR=html_xref
#
# A user would typically use:
#FROM=/usr/share/yorick/i:/usr/share/yorick/i0:$HOME/.yorick
#TO=$HOME
#XREF_DIR=yorick-doc
# By default, yorick-doc only says briefly what it's doing. Set QUIET
# to 0 to get verbose (debugging) information.
#QUIET=1
debian/etc/yorick/ 0000775 0000000 0000000 00000000000 11770117412 011244 5 ustar debian/etc/yorick/packages/ 0000775 0000000 0000000 00000000000 11770117412 013022 5 ustar debian/etc/yorick/packages/pkg_setup.i 0000664 0000000 0000000 00000003016 11770117412 015175 0 ustar /*
/etc/yorick/packages/pkg_setup.i
linked to by /usr/lib/yorick/packages/pkg_setup.i
Debian configuration for the Yorick package manager, pkg_mngr.i
See /usr/share/doc/yorick/README.Debian.packages
Author: Thibaut Paumard
The preferred way to customize the configuration is through pkg_setup
(within Yorick). The customized configuration will be saved in
/usr/local/lib/yorick/packages/pkg_setup.i , which is read from here.
*/
localtree="/usr/local/lib/yorick/";
PKG_OS = "linux-x86";
PKG_FETCH_CMD = "curl -s";
PKG_SERVER = "http://www.maumae.net/yorick/packages/";
PKG_GUNTAR_CMD = "tar zxf";
PKG_TMP_DIR = localtree+"packages/tmp/";
PKG_VERBOSE = 1;
PKG_ASK_CONFIRM = 1;
PKG_RUN_CHECK = 0;
PKG_VAR_STATE = localtree+"packages/";
PKG_Y_HOME = localtree;
PKG_Y_SITE = localtree;
PKG_OTHER_INSTALLED = Y_SITE+"packages/installed/";
// read packages/pkg_setup.i if it exists
PKG_SETUP=localtree+"packages/pkg_setup.i";
if (open(PKG_SETUP,"r",1)) {
require,PKG_SETUP;
sync_done=1;
} else {
sync_done=0;
}
write,format="\n"+
" \n"+
" System-wide configuration for the pkg_mngr loaded.\n"+
" \n"+
" Local Y_HOME tree: %s\n"+
" Local Y_SITE tree: %s\n"+
" \n"+
" See /usr/share/doc/yorick/README.Debian.packages.gz for details.\n"+
" \n",PKG_Y_HOME,PKG_Y_SITE;
f=popen("test -w "+localtree+" ; echo $?",0);
line=rdline(f);
close,f;
if (line=="0" & !sync_done)
write,format="%s\n","Please run pkg_sync.\nIf your architecture is not i386, please run pkg_setup before.\n";
debian/etc/yorick/README 0000664 0000000 0000000 00000002137 11770117412 012127 0 ustar Yorick Configuration Directory
------------------------------
Any .i file in this directory will be sourced upon Yorick startup using
include_all by /usr/lib/yorick/i-start/zzdebian.i (this include_all is not
recursive).
Contains currently 20usrlocal.i : adds a local hierarchy under /usr/local
for all paths:
/usr/local/lib/yorick/{i,contrib,i0} are added to the include path (.i files);
/usr/local/lib/yorick/lib is added to the library path (.so files).
Although /usr/local/lib/yorick/g is added to the GISTPATH variable, the
directory is still not searched for .gs and .gp files. This is a known bug
being worked on. For the time being, use the GISTPATH environment variable to
set the path prior to calling Yorick.
Subdirectories can contain configurations for specific tasks. Currently,
/etc/yorick/packages contains a specific pkg_setup.i that configures
pkg_mngr.i to install non-debianized packages under the /usr/local tree.
/etc/yorick/packages/pkg_setup.i will be taken into account only if the local
system administrator has not removed the link
/usr/lib/yorick/packages/pkg_setup.i pointing to it.
debian/etc/yorick/20usrlocal.i 0000664 0000000 0000000 00000000776 11770117412 013416 0 ustar /*
/etc/yorick/20usrlocal.i
The purpose of this file is to add a local yorick tree under /usr/local for
add-on packages installed using the pkg_mngr and locally maintained
packages. Interpreted and compiled library paths (.i and .so files) are
taken into account. If you additionally require to adjust the Gist palette
and style file path (.gp and .gs files), please set the GISTPATH environment
variable prior to starting yorick.
*/
require, "pathfun.i";
add_y_home,"/usr/local/lib/yorick/";
debian/yorick-mpy-openmpi.README.Debian 0000664 0000000 0000000 00000001265 11770117412 015005 0 ustar Message Passing Yorick package for Debian
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This package is built against the OpenMPICH implementation of the
Message Passing Interface (MPI).
A test script is provided in
/usr/share/doc/yorick-mpy-common/examples/.
To run it, simply copy, unzip and run the script:
cp /usr/share/doc/yorick-mpy-common/examples/testmp.i.gz ./
gunzip testmp.i.gz
orterun -np 4 mpy.openmpi -j testmp.i
Then, at the mpy command prompt:
> testmp
> quit
You can test with other values of the -np parameter above, see man
orterun.
See the yorick and mpy manpages for more details.
-- Thibaut Paumard , Tue, 23 Mar 2010 16:23:19 +0100
debian/yorick-dev.docs 0000664 0000000 0000000 00000000025 11770117412 012114 0 ustar debian/yorick-policy
debian/yorick.info 0000664 0000000 0000000 00000000020 11770117412 011336 0 ustar doc/yorick.info
debian/yorick-dev.install 0000664 0000000 0000000 00000000176 11770117412 012641 0 ustar build/yorick-dev/* usr
debian/helpers/instdirs.i usr/share/yorick/i/debian
debian/helpers/pkginst.i usr/share/yorick/i/debian
debian/control 0000664 0000000 0000000 00000017576 12225444316 010616 0 ustar Source: yorick
Section: science
Priority: extra
Maintainer: Ubuntu Developers
XSBC-Original-Maintainer: Debian Science Maintainers
Uploaders: Thibaut Paumard
Build-Depends: libx11-dev, texinfo, debhelper (>= 7.0.0), quilt (>= 0.40),
imagemagick, po-debconf, texi2html (>= 1.82), libmpich2-dev,
libopenmpi-dev [alpha amd64 armel armhf hurd-i386 i386 ia64 kfreebsd-amd64 kfreebsd-i386 powerpc powerpcspe ppc64 sparc sparc64]
Standards-Version: 3.9.3
DM-Upload-Allowed: yes
Vcs-Git: git://git.debian.org/git/debian-science/packages/yorick.git
Vcs-Browser: http://git.debian.org/?p=debian-science/packages/yorick.git
Homepage: http://yorick.sourceforge.net
Package: yorick
Architecture: any
Depends: yorick-data (= ${source:Version}), ${shlibs:Depends}, ${misc:Depends}, debconf
Replaces: yorick-data (<< 2.1.04+dfsg-1)
Conflicts: yorick-yutils (<= 1.5.0)
Breaks: yorick-imutil (<< 0.5.4-2~), yorick-spydr (<< 0.8.0-2~),
yorick-curses (<< 0.1-4~)
Recommends: rlwrap, yorick-z
Suggests: yorick-full, yorick-dbg, yorick-mpy-openmpi | yorick-mpy-mpich2,
emacsen, curl
Description: interpreted language and scientific graphics
Yorick is an interpreted programming language for:
* scientific simulations or calculations
* postprocessing or steering large simulation codes
* interactive scientific graphics
* reading, writing, and translating large files of numbers
.
The language features a compact syntax for many common array
operations, so it processes large arrays of numbers very quickly and
efficiently. Superficially, yorick code resembles C code, but yorick
variables are never explicitly declared and have a dynamic scoping
similar to many Lisp dialects. The yorick language is designed to be
typed interactively at a keyboard, as well as stored in files for
later use.
.
This package includes an emacs-based development environment, which
you can launch by typing M-x yorick in emacs.
.
Many add-on packages and plug-ins are available for Yorick (the
package names begin with "yorick-"). You may want to install the
yorick-full metapackage which depends on the vast majority of them.
Package: yorick-dbg
Section: debug
Architecture: any
Depends: yorick (= ${binary:Version}), ${misc:Depends}
Description: debugging symbols for Yorick
Yorick is an interpreted programming language for:
* scientific simulations or calculations
* postprocessing or steering large simulation codes
* interactive scientific graphics
* reading, writing, and translating large files of numbers
.
This package contains the debugging symbols for the yorick
executable.
Package: yorick-data
Architecture: all
Depends: ${shlibs:Depends}, ${misc:Depends}
Recommends: yorick (>= ${source:Version})
Description: interpreted library for the Yorick language
Yorick is an interpreted programming language for:
* scientific simulations or calculations
* postprocessing or steering large simulation codes
* interactive scientific graphics
* reading, writing, and translating large files of numbers
.
The yorick-data package contains all the architecture-independent data, which
is mostly the standard interpreted library.
Package: yorick-dev
Architecture: any
Depends: yorick (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
Description: development files for the Yorick interpreted language
Yorick is an interpreted programming language for:
* scientific simulations or calculations
* postprocessing or steering large simulation codes
* interactive scientific graphics
* reading, writing, and translating large files of numbers
.
The yorick-dev package contains the files needed to compile (or package)
plug-ins or custom `yorick' executables.
Package: yorick-mpy-mpich2
Architecture: any
Depends: yorick (= ${binary:Version}), yorick-mpy-common (= ${source:Version}),
mpich2, ${shlibs:Depends}, ${misc:Depends}
Description: Message Passing Yorick (MPICH2 build)
Yorick is an interpreted programming language for:
* scientific simulations or calculations
* postprocessing or steering large simulation codes
* interactive scientific graphics
* reading, writing, and translating large files of numbers
.
The MPY is a parallel version of Yorick based on the Message Passing
Interface (MPI). This package contains a build of MPY linked against
MPICH2.
Package: yorick-mpy-openmpi
Architecture: alpha amd64 armel armhf hurd-i386 i386 ia64 kfreebsd-amd64 kfreebsd-i386 powerpc powerpcspe ppc64 sparc sparc64
Depends: yorick (= ${binary:Version}), yorick-mpy-common (= ${source:Version}),
openmpi-bin, ${shlibs:Depends}, ${misc:Depends}
Description: Message Passing Yorick (OpenMPI build)
Yorick is an interpreted programming language for:
* scientific simulations or calculations
* postprocessing or steering large simulation codes
* interactive scientific graphics
* reading, writing, and translating large files of numbers
.
The MPY is a parallel version of Yorick based on the Message Passing
Interface (MPI). This package contains a build of MPY linked against
OpenMPI.
Package: yorick-mpy-common
Architecture: all
Depends: ${shlibs:Depends}, ${misc:Depends}
Recommends: yorick-mpy-openmpi (>= ${source:Version}) | yorick-mpy-mpich2 (>= ${source:Version})
Description: Message Passing Yorick (common files)
Yorick is an interpreted programming language for:
* scientific simulations or calculations
* postprocessing or steering large simulation codes
* interactive scientific graphics
* reading, writing, and translating large files of numbers
.
The MPY is a parallel version of Yorick based on the Message Passing
Interface (MPI). This package contains the files common to all
builds of MPY.
Package: yorick-doc
Section: doc
Architecture: all
Depends: ${shlibs:Depends}, ${misc:Depends}
Recommends: yorick (>= 2.1.04+dfsg+cvs20071130)
Description: documentation for the Yorick interpreted language
Yorick is an interpreted programming language for:
* scientific simulations or calculations
* postprocessing or steering large simulation codes
* interactive scientific graphics
* reading, writing, and translating large files of numbers
.
The Yorick package ships with little documentation: a manpage, the
Yorick Manual in info format, and its own "help" command. This
package adds the Yorick Manual and Quick Reference in PDF and HTML
format and a utility (update-yorickdoc) to build HTML documentation
for the set of functions (from Yorick and add-on packages) installed
on this machine. By default, these pages are built and updated
automatically whenever necessary.
.
Once this package is installed, simply point your preferred web
browser to file:///usr/share/doc/yorick-doc/README.html .
Package: yorick-full
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends},
yorick, yorick-dev, yorick-doc,
yorick-av [!armhf !ia64 !mips !mipsel !s390 !s390x !sparc],
yorick-cubeview,
yorick-curses,
yorick-gl,
yorick-gyoto,
yorick-hdf5,
yorick-imutil,
yorick-mira,
yorick-ml4,
yorick-mpeg,
yorick-optimpack,
yorick-soy,
yorick-spydr,
yorick-svipc,
yorick-yao,
yorick-yeti,
yorick-yeti-fftw,
yorick-yeti-gsl,
yorick-yeti-regex,
yorick-yeti-tiff,
yorick-yutils,
yorick-z
Suggests: yorick-mpy-openmpi | yorick-mpy-mpich2
Description: full installation of the Yorick interpreter and add-ons
Yorick is an interpreted programming language for:
* scientific simulations or calculations
* postprocessing or steering large simulation codes
* interactive scientific graphics
* reading, writing, and translating large files of numbers
.
The yorick-full metapackage installs Yorick together with the full set
of add-ons packaged for Debian.
.
You may prefer to only install the yorick package and cherry-pick the
yorick-* add-ons you need.
.
If you need MPY, the MPI parallel version of Yorick, please install
either yorick-mpy-openmpi or yorick-mpy-mpich2 in addition.
debian/yorick.links 0000664 0000000 0000000 00000001036 11770117412 011533 0 ustar usr/lib/yorick/bin/yorick usr/bin/yorick
usr/lib/yorick/bin/gist usr/bin/gist
usr/share/yorick/g usr/lib/yorick/g
usr/share/yorick/i usr/lib/yorick/i
usr/share/yorick/i0 usr/lib/yorick/i0
usr/share/yorick/packages usr/lib/yorick/packages
usr/share/yorick/i-start usr/lib/yorick/i-start
usr/share/yorick/python usr/lib/yorick/python
usr/share/yorick/glade usr/lib/yorick/glade
usr/share/yorick/data usr/lib/yorick/data
usr/share/doc/yorick/copyright usr/lib/yorick/LICENSE
etc/yorick/packages/pkg_setup.i usr/share/yorick/packages/pkg_setup.i
debian/yorick.postrm 0000664 0000000 0000000 00000000733 11770117412 011742 0 ustar #!/bin/sh
set -e
case $1 in
purge)
if [ -e /etc/yorick ]; then
rm -Rf /etc/yorick
fi
if [ -e /usr/lib/yorick ]; then
rm -Rf /usr/lib/yorick
fi
;;
remove)
if [ -x "`which update-yorickdoc 2>/dev/null`" ]; then
update-yorickdoc --auto
fi
;;
abort-upgrade)
[ -e /usr/lib/yorick/packages/pkg_setup.i ] ||
ln -s /etc/yorick/packages/pkg_setup.i \\
/usr/lib/yorick/packages/pkg_setup.i
;;
esac
#DEBHELPER#
debian/patches/ 0000775 0000000 0000000 00000000000 11770361713 010625 5 ustar debian/patches/template_html 0000664 0000000 0000000 00000006474 11770117412 013415 0 ustar Author: Thibaut Paumard
Description: Customize HTML documentation
Forwarded: not-needed
--- a/doc/html/template.html
+++ b/doc/html/template.html
@@ -51,7 +51,6 @@
%onlydoc:installwin%
%onlydoc:index%
-%onlydoc:index%
%onlydoc:manual%
%onlydoc:manual%
@@ -77,9 +76,9 @@
- The terminal window where you type
interactive commands is not part of yorick. Neither is the text
-editor you use to compose yorick programs. The
-installation instructions include
-recommendations for terminal emulators and text editors.
+editor you use to compose yorick programs. The two recommended ways
+of starting yorick are either through rlwrap (rlwrap yorick) or within
+the emacs editor (emacs -f yorick).
- Quickly read the first three chapters of the
user manual. The first chapter,
in particular, is a yorick tutorial.
@@ -89,22 +88,22 @@
familiar with it.
- Choose one or more of the demonstration programs and work through it.
-- demo1.i
+- demo1.i
- a 1D hydro code written in yorick interpreted code
-- demo2.i
+- demo2.i
- solving the equations for the motion of a drumhead
-- demo3.i
+- demo3.i
- computing the motion of a chaotic pendulum
-- demo4.i
+- demo4.i
- plotting the flow past a Jakowski airfoil
-- demo5.i
+- demo5.i
- make crude 3D plots (yorick computes the projections)
- Yorick has a help command and a library command.
Learn to use them, and learn to use your text editor to open and read
-the yorick interpreted code in the Y_SITE/i
-and Y_SITE/i0 directories. Often, the program
+the yorick interpreted code in the Y_SITE/i
+and Y_SITE/i0 directories. Often, the program
you want to write will be similar to something in those directories.
- The
yorick homepage has much more information about yorick, including
@@ -121,7 +120,7 @@
Printable Manual
A printable version of the manual is
-yorick.pdf
+yorick.pdf.gz
%content%
debian/patches/refs_index 0000664 0000000 0000000 00000001356 11770117412 012676 0 ustar Author: Thibaut Paumard
Description: Change link to PDF version of refcard.
Forwarded: not-needed
--- yorick-2.1.04+dfsg+cvs20071118.orig/doc/refs-html/index.html 2007-11-21 17:08:56.000000000 +0100
+++ yorick-2.1.04+dfsg+cvs20071118/doc/refs-html/index.html 2007-11-21 17:12:31.000000000 +0100
@@ -37,7 +37,7 @@
Yorick Quick Reference Cards
A set of quick reference cards for yorick fits onto three double
-sided US letter sheets. To print them, use refs.pdf.
+sided US letter sheets. To print them, use refs.pdf.gz.
The original constraint to fit onto six sheets makes the
organization of this Quick Reference somewhat illogical; in
debian/patches/packinfo_txt 0000664 0000000 0000000 00000001152 11770117412 013233 0 ustar Author: Thibaut Paumard
Description: Adapt packages index
Forwarded: not-needed
--- orig/doc/html/packinfo.txt 2007-12-05 09:19:48.000000000 +0100
+++ tp/doc/html/packinfo.txt 2007-12-05 09:21:09.000000000 +0100
@@ -15,10 +15,6 @@
:newsection
Compiled (plugin) Yorick Packages
-:yorz
-read and write png or jpeg grephics files, write mpeg-1 movie files,
- and interface to zlib (gzip) compression library
-
:drat
a 2D transport equation solver for (r,z) meshes
@@ -246,3 +242,6 @@
:sysafe
Replacement for system function (but not $ syntax)
+
+:newsection
+Add-on packages
debian/patches/help_text 0000664 0000000 0000000 00000001655 11770357255 012561 0 ustar Author: Thibaut Paumard
Description: Customize "help" command text for Debian
Change text of the "help" command to take the yorick-doc package
into account.
Forwarded: not-needed
--- a/i0/std.i
+++ b/i0/std.i
@@ -54,8 +54,9 @@
You can find out a great deal more about Yorick by browsing
through these directories. Begin with the site directory,
and pay careful attention to the subdirectories doc/ (which
- contains documentation relating to Yorick), and i/ and
- contrib/ (which contain many examples of Yorick programs).
+ contains documentation relating to Yorick if the yorick-doc
+ package is installed) and i/ (which contain many examples of
+ Yorick programs).
Look for files called README (or something similar) in any
of these directories -- they are intended to assist browsers.
The site directory itself contains std.i and graph.i, which
debian/patches/yorick-auto_el 0000664 0000000 0000000 00000001436 11770117412 013475 0 ustar Author: Thibaut Paumard
Description: Enables yorick-mode even if yorick is not yet loaded
Forwarded: yes (by e-mail, 20091202
diff -urN a/emacs/yorick-auto.el b/emacs/yorick-auto.el
--- a/emacs/yorick-auto.el 2007-08-20 09:13:52.000000000 +0200
+++ b/emacs/yorick-auto.el 2007-08-20 09:15:43.000000000 +0200
@@ -4,6 +4,7 @@
(autoload 'yorick "yorick" "see yorick.el in site-lisp dir" t)
(autoload 'ysh "yorick" "see yorick.el in site-lisp dir" t)
(autoload 'yssh "yorick" "see yorick.el in site-lisp dir" t)
+(autoload 'yorick-mode "yorick" "see yorick.el in site-lisp dir" t)
(autoload 'yutil-setup "yorick" "see yorick.el in site-lisp dir" nil)
(if (assoc "\\.i$" auto-mode-alist)
;; this presumes user doesn't want .i files to be in C mode (default)
debian/patches/series 0000664 0000000 0000000 00000000104 11770357327 012043 0 ustar template_html
help_text
packinfo_txt
refs_index
fix-weird-alignment
debian/patches/fix-weird-alignment 0000664 0000000 0000000 00000002042 11770361700 014414 0 ustar Subject: allow tweeking p_malloc alignment (needed for ia64)
Author: Thibaut Paumard
Bug: http://yorick.sourceforge.net/phpBB3/viewtopic.php?t=374
Bug-Debian:
Forwarded: yes
ia64 requires 16-byte alignment which is not provided by yorick's
p_malloc. This causes e.g. png_read and png_write from yorick-z to
fail with SIGBUS.
Index: yorick-2.2.02+dfsg/play/any/mminit.c
===================================================================
--- yorick-2.2.02+dfsg.orig/play/any/mminit.c 2012-04-15 10:28:11.000000000 +0000
+++ yorick-2.2.02+dfsg/play/any/mminit.c 2012-06-20 13:39:55.000000000 +0000
@@ -18,6 +18,9 @@
typedef union mm_block mm_block;
typedef struct mm_arena mm_arena;
+#ifndef MM_MIN_ALIGNMENT
+# define MM_MIN_ALIGNMENT 1
+#endif
union mm_block {
mm_block *next_free; /* when not in use */
mm_arena *arena; /* when in use */
@@ -25,6 +28,7 @@
long l;
double d; /* long double tickles bug for linux gcc 2.7.2 */
void (*f)(void);
+ char c[MM_MIN_ALIGNMENT];
};
#ifndef P_DEBUG
debian/patches/mpy_manpage 0000664 0000000 0000000 00000030264 11770117412 013045 0 ustar Author: Thibaut Paumard
Description: add a manpage for mpy command
Forwarded: yes
--- /dev/null
+++ b/mpy/mpy.1
@@ -0,0 +1,256 @@
+.TH MPY 1 "2010 MARCH 21"
+.UC 4
+.SH NAME
+mpy \- Message Passing Yorick
+.SH SYNOPSIS
+mpirun \-np mp_size
+.B mpy
+[ \-j
+.I pfile1.i
+[ \-j
+.I pfile2.i
+[ ... ]]]
+[ \-i
+.I file1.i
+[ \-i
+.I file2.i
+[ ... ]]]
+.br
+mpirun \-np mp_size
+.B mpy
+\-batch
+.I file.i
+.br
+.SH DESCRIPTION
+.I Yorick
+is an interpreted language like Basic or Lisp, but far faster. See
+.I yorick
+(1) to learn more about it.
+.br
+.I Mpy
+is a parallel version of
+.I Yorick
+based on the Message Passing Interface (MPI). The exact syntax for launching a parallel job depends on your MPI environment. It may be necessary to launch a special daemon before calling
+.I mirun
+or an equivalent command.
+.SS Explanations
+
+The mpy package interfaces yorick to the MPI parallel programming
+library. MPI stands for Message Passing Interface; the idea is to
+connect multiple instances of yorick that communicate among themselves
+via messages. Mpy can either perform simple, highly parallel tasks as
+pure interpreted programs, or it can start and steer arbitrarily
+complex compiled packages which are free to use the compiled MPI API.
+The interpreted API is not intended to be an MPI wrapper; instead it
+is stripped to the bare minimum.
+
+This is version 2 of mpy (released in 2010); it is incompatible with
+version 1 of mpy (released in the mid 1990s), because version 1 had
+numerous design flaws making it very difficult to write programs free
+of race conditions, and impossible to scale to millions of processors.
+However, you can run most version 1 mpy programs under version 2 by
+doing mp_include,"mpy1.i" before you mp_include any file defining an
+mpy1 parallel task (that is before any file containg a call to
+mp_task.)
+.SS Usage notes
+The MPI environment is not really specified by the standard; existing
+environments are very crude, and strongly favor non-interactive batch
+jobs. The number of processes is fixed before MPI begins; each
+process has a rank, a number from 0 to one less than the number of
+processes. You use the rank as an address to send messages, and the
+process receiving the message can probe to see which ranks have sent
+messages to it, and of course receive those messages.
+
+A major problem in writing a message passing program is handling
+events or messages arriving in an unplanned order. MPI guarantees
+only that a sequence of messages send by rank A to rank B will arrive
+in the order sent. There is no guarantee about the order of arrival
+of those messages relative to messages sent to B from a third rank C.
+In particular, suppose A sends a message to B, then A sends a message
+to C (or even exchanges several messages with C) which results in C
+sending a message to B. The message from C may arrive at B before the
+message from A. An MPI program which does not allow for this
+possibility has a bug called a "race condition". Race conditions may
+be extremely subtle, especially when the number of processes is large.
+
+The basic mpy interpreted interface consists of two variables:
+ mp_size = number of proccesses
+ mp_rank = rank of this process
+and four functions:
+ mp_send, to, msg; // send msg to rank "to"
+ msg = mp_recv(from); // receive msg from rank "from"
+ ranks = mp_probe(block); // query senders of pending messages
+ mp_exec, string; // parse and execute string on every rank
+
+You call mp_exec on rank 0 to start a parallel task. When the main
+program thus created finishes, all ranks other than rank 0 return to
+an idle loop, waiting for the next mp_exec. Rank 0 picks up the next
+input line from stdin (that is, waits for input at its prompt in an
+interactive session), or terminates all processes if no more input is
+available in a batch session.
+
+The mpy package modifies how yorick handles the #include parser
+directive, and the include and require functions. Namely, if a
+parallel task is running (that is, a function started by mp_exec),
+these all become collective operations. That is, rank 0 reads the
+entire file contents, and sends the contents to the other processes as
+an MPI message (like mp_exec of the file contents). Every process
+other than rank 0 is only running during parallel tasks; outside a
+parallel task when only rank 0 is running (and all other ranks are
+waiting for the next mp_exec), the #include directive and the include
+and require functions return to their usual serial operation,
+affecting only rank 0.
+
+When mpy starts, it is in parallel mode, so that all the files yorick
+includes when it starts (the files in Y_SITE/i0) are included as
+collective operations. Without this feature, every yorick process
+would attempt to open and read the startup include files, overloading
+the file system before mpy ever gets started. Passing the contents of
+these files as MPI messages is the only way to ensure there is enough
+bandwidth for every process to read the contents of a single file.
+
+The last file included at startup is either the file specified in the
+\-batch option, or the custom.i file. To avoid problems with code in
+custom.i which may not be safe for parallel execution, mpy does not
+look for custom.i, but for custommp.i instead. The instructions in
+the \-batch file or in custommp.i are executed in serial mode on rank 0
+only. Similarly, mpy overrides the usual process_argv function, so
+that \-i and other command line options are processed only on rank 0 in
+serial mode. The intent in all these cases is to make the \-batch or
+custommp.i or \-i include files execute only on rank 0, as if you had
+typed them there interactively. You are free to call mp_exec from any
+of these files to start parallel tasks, but the file itself is serial.
+
+An additional command line option is added to the usual set:
+ mpy \-j somefile.i
+.br
+includes somefile.i in parallel mode on all ranks (again, \-i other.i
+includes other.i only on rank 0 in serial mode). If there are
+multiple \-j options, the parallel includes happen in command line
+order. If \-j and \-i options are mixed, however, all \-j includes
+happen before any \-i includes.
+
+As a side effect of the complexity of include functions in mpy, the
+autoload feature is disabled; if your code actually triggers an
+include by calling an autoloaded function, mpy will halt with an
+error. You must explicitly load any functions necessary for a
+parallel tasks using require function calls themselves inside a
+parallel task.
+
+The mp_send function can send any numeric yorick array (types char,
+short, int, long, float, double, or complex), or a scalar string
+value. The process of sending the message via MPI preserves only the
+number of elements, so mp_recv produces only a scalar value or a 1D
+array of values, no matter what dimensionality was passed to mp_send.
+
+The mp_recv function requires you to specify the sender of the message
+you mean to receive. It blocks until a message actually arrives from
+that sender, queuing up any messages from other senders that may
+arrive beforehand. The queued messages will be retrieved it the order
+received when you call mp_recv for the matching sender. The queuing
+feature makes it dramatically easier to avoid the simplest types of
+race condition when you are write interpreted parallel programs.
+
+The mp_probe function returns the list of all the senders of queued
+messages (or nil if the queue is empty). Call mp_probe(0) to return
+immediately, even if the queue is empty. Call mp_probe(1) to block if
+the queue is empty, returning only when at least one message is
+available for mp_recv. Call mp_probe(2) to block until a new message
+arrives, even if some messages are currently available.
+
+The mp_exec function uses a logarithmic fanout - rank 0 sends to F
+processes, each of which sends to F more, and so on, until all
+processes have the message. Once a process completes all its send
+operations, it parses and executes the contents of the message. The
+fanout algorithm reaches N processes in log to the base F of N steps.
+The F processes rank 0 sends to are ranks 1, 2, 3, ..., F. In
+general, the process with rank r sends to ranks r*F+1, r*F+2, ...,
+r*F+F (when these are less than N-1 for N processes). This set is
+called the "staff" of rank r. Ranks with r>0 receive the message from
+rank (r\-1)/F, which is called the "boss" of r. The mp_exec call
+interoperates with the mp_recv queue; in other words, messages from
+a rank other than the boss during an mp_exec fanout will be queued for
+later retrieval by mp_recv. (Without this feature, any parallel task
+which used a message pattern other than logarithmic fanout would be
+susceptible to race conditions.)
+
+The logarithmic fanout and its inward equivalent are so useful that
+mpy provides a couple of higher level functions that use the same
+fanout pattern as mp_exec:
+ mp_handout, msg;
+ total = mp_handin(value);
+.br
+To use mp_handout, rank 0 computes a msg, then all ranks call
+mp_handout, which sends msg (an output on all ranks other than 0)
+everywhere by the same fanout as mp_exec. To use mp_handin, every
+process computes value, then calls mp_handin, which returns the sum of
+their own value and all their staff, so that on rank 0 mp_handin
+returns the sum of the values from every process.
+
+You can call mp_handin as a function with no arguments to act as a
+synchronization; when rank 0 continues after such a call, you know
+that every other rank has reached that point. All parallel tasks
+(anything started with mp_exec) must finish with a call to mp_handin,
+or an equivalent guarantee that all processes have returned to an idle
+state when the task finishes on rank 0.
+
+You can retrieve or change the fanout parameter F using the mp_nfan
+function. The default value is 16, which should be reasonable even
+for very large numbers of processes.
+
+One special parallel task is called mp_connect, which you can use to
+feed interpreted command lines to any single non-0 rank, while all
+other ranks sit idle. Rank 0 sits in a loop reading the keyboard and
+sending the lines to the "connected" rank, which executes them, and
+sends an acknowledgment back to rank 0. You run the mp_disconnect
+function to complete the parallel task and drop back to rank 0.
+
+Finally, a note about error recovery. In the event of an error during
+a parallel task, mpy attempts to gracefully exit the mp_exec, so that
+when rank 0 returns, all other ranks are known to be idle, ready for
+the next mp_exec. This procedure will hang forever if any one of the
+processes is in an infinite loop, or otherwise in a state where it
+will never call mp_send, mp_recv, or mp_probe, because MPI provides no
+means to send a signal that interrupts all processes. (This is one of
+the ways in which the MPI environment is "crude".) The rank 0 process
+is left with the rank of the first process that reported a fault, plus
+a count of the number of processes that faulted for a reason other
+than being sent a message that another rank had faulted. The first
+faulting process can enter dbug mode via mp_connect; use mp_disconnect
+or dbexit to drop back to serial mode on rank 0.
+.SS Options
+.TP 20
+.RI \-j \0file.i
+includes the Yorick source file
+.I file.i
+as mpy starts in parallel mode on all ranks. This is equivalent to
+the mp_include function after mpy has started.
+.TP
+.RI \-i \0file.i
+includes the Yorick source file
+.I file.i
+as mpy starts, in serial mode. This is equivalent to the #include
+directive after mpy has started.
+.TP
+.RI \-batch \0file.i
+includes the Yorick source file
+.I file.i
+as mpy starts, in serial mode. Your customization file custommp.i, if any, is
+.I not
+read,
+and mpy is placed in batch mode. Use the help command on the batch
+function (help, batch) to find out more about batch mode. In batch
+mode, all errors are fatal; normally, mpy will halt execution and
+wait for more input after an error.
+.PP
+.SH AUTHOR
+.PP
+David H. Munro, Lawrence Livermore National Laboratory
+.PP
+.SH FILES
+.PP
+Mpy uses the same files as yorick, except that custom.i is replaced by
+custommp.i (located in /etc/yorick/mpy/ on Debian based systems) and
+the Y_SITE/i\-start/ directory is ignored.
+.SH SEE ALSO
+yorick(1)
debian/patches/texi2html80 0000664 0000000 0000000 00000010075 11770117412 012636 0 ustar Author: Thibaut Paumard
Description: Adapt doc build system to texi2html 1.82
Forwarded: http://yorick.sourceforge.net/phpBB2/viewtopic.php?t=251
Bug-Debian: http://bugs.debian.org/552966
# Adapt doc build system to texi2html 1.82 thanks to Lucas Nussbaum
# (Closes: #552966).
--- a/doc/html/Makefile
+++ b/doc/html/Makefile
@@ -5,7 +5,7 @@
# http://www.nongnu.org/texi2html/
YORICK = ../../yorick/yorick
DESTDIR = /usr/local/share/doc/yorick
-TEXI2HTML = texi2html -init_file html/texi2html.init
+TEXI2HTML = texi2html -init_file html/texi2html.init -output yorick
#select mac or win version of ../README.html
PLATFORM=mac
BUILDDIR=compiled-doc/
--- a/doc/html/texi2html.tpl
+++ b/doc/html/texi2html.tpl
@@ -107,18 +107,17 @@
sub my_print_navigation($$$)
{
- my $fh = shift;
+# my $fh = shift;
my $buttons = shift;
my $vertical = shift;
my $spacing = 1;
- print $fh '\n";
+ my $result = '\n";
- print $fh "" unless $vertical;
+ $result .= "
" unless $vertical;
for my $button (@$buttons)
{
- print $fh qq{
\n} if $vertical;
- print $fh qq{};
+ $result .= qq{ |
\n} if $vertical;
+ $result .= qq{};
if (ref($button) eq 'CODE')
{
@@ -126,7 +125,7 @@
}
elsif (ref($button) eq 'SCALAR')
{
- print $fh "$$button" if defined($$button);
+ $result .= "$$button" if defined($$button);
}
elsif (ref($button) eq 'ARRAY')
{
@@ -138,7 +137,7 @@
my $btn_hr = $Texi2HTML::HREF{$button_href};
if ($btn_hr)
{
- print $fh "" .
+ $result .= "" .
&$anchor('',
my_strip_href($btn_hr),
$$text
@@ -147,13 +146,13 @@
}
else
{
- print $fh $$text;
+ $result .= $$text;
}
}
}
elsif ($button eq ' ')
{ # handle space button
- print $fh
+ $result .=
$ICONS && $ACTIVE_ICONS{' '} ?
&$button_icon_img($button, $ACTIVE_ICONS{' '}) :
$NAVIGATION_TEXT{' '};
@@ -166,7 +165,7 @@
'title="' . ucfirst($BUTTONS_GOTO{$button}) . '"' : '';
if ($ICONS && $ACTIVE_ICONS{$button})
{ # use icon
- print $fh '' .
+ $result .= '' .
&$anchor('',
my_strip_href($btn_hr),
&$button_icon_img($button,
@@ -178,7 +177,7 @@
}
else
{ # use text
- print $fh
+ $result .=
'[' .
&$anchor('',
my_strip_href($btn_hr),
@@ -190,7 +189,7 @@
}
else
{ # button is passive
- print $fh
+ $result .=
$ICONS && $PASSIVE_ICONS{$button} ?
&$button_icon_img($button,
$PASSIVE_ICONS{$button},
@@ -199,11 +198,12 @@
"[" . $NAVIGATION_TEXT{$button} . "]";
}
- print $fh " | \n";
- print $fh "
\n" if $vertical;
+ $result .= "\n";
+ $result .= "\n" if $vertical;
}
- print $fh "" unless $vertical;
- print $fh "
\n";
+ $result .= "" unless $vertical;
+ $result .= "
\n";
+ return $result;
}
1; # This must be the last non-comment line
debian/patches/mpy1_breaks_htmldoc 0000664 0000000 0000000 00000003004 11770117412 014467 0 ustar Author: Thibaut Paumard
Description: update-yorickdoc failed on mpy1.i
fix DOCUMENT comment syntax to something supported by htmldoc.i
Forwarded: yes
--- a/mpy/mpy1.i
+++ b/mpy/mpy1.i
@@ -9,7 +9,9 @@
*/
func mp_recv1(..)
-/* DOCUMENT mp_recv1 ***implements obsolete mpy1 mp_recv API*** */
+/* DOCUMENT mp_recv1
+ ***implements obsolete mpy1 mp_recv API***
+ */
{
local dims;
while (more_args()) accum_dimlist, dims, next_arg();
@@ -18,7 +20,9 @@
if (is_void(mp_recv2)) mp_recv2 = mp_recv;
func mp_from(flag)
-/* DOCUMENT mp_from ***obsolete mpy1 function*** (see mp_probe) */
+/* DOCUMENT mp_from
+ ***obsolete mpy1 function*** (see mp_probe)
+ */
{
if (!flag) return mp_probe(-1); /* undocumented mp_probe feature */
f = mp_probe(flag != 1);
@@ -26,7 +30,9 @@
}
func mp_task(task)
-/* DOCUMENT mp_task ***obsolete mpy1 function*** */
+/* DOCUMENT mp_task
+ ***obsolete mpy1 function***
+ */
{
name = nameof(task);
if (!is_func(task)) error, "cannot register non-function: "+name;
@@ -85,11 +91,15 @@
}
local mp_start;
-/* DOCUMENT mp_start ***obsolete mpy1 function*** */
+/* DOCUMENT mp_start
+ ***obsolete mpy1 function***
+ */
mp_start = call; /* work already done by _mpy1_starter */
func mp_bcast(origin, msg, .., nfan=)
-/* DOCUMENT mp_bcast ***obsolete mpy1 function*** (see mp_handout) */
+/* DOCUMENT mp_bcast
+***obsolete mpy1 function*** (see mp_handout)
+*/
{
me = (mp_rank - origin + mp_size)%mp_size;
if (is_void(nfan)) nfan = 2;
debian/patches/info_section 0000664 0000000 0000000 00000001100 11770117412 013212 0 ustar Author: Thibaut Paumard
Description: Change section in yorick.info from Miscellaneous to Math
Forwarded: not-needed
diff -urN orig/doc/yorick.tex tp/doc/yorick.tex
--- orig/doc/yorick.tex 2006-05-05 13:51:17.168930800 +0200
+++ tp/doc/yorick.tex 2006-05-05 13:52:39.001490360 +0200
@@ -2,7 +2,7 @@
@comment %**start of header (This is for running Texinfo on a region.)
@setfilename yorick.info
@settitle Yorick
-@dircategory Miscellaneous
+@dircategory Math
@direntry
* Yorick: (yorick). Yorick interpreted language.
@end direntry
debian/yorick.dirs 0000664 0000000 0000000 00000000406 11770117412 011354 0 ustar usr/local/lib/yorick
usr/local/lib/yorick/i
usr/local/lib/yorick/i0
usr/local/lib/yorick/contrib
usr/local/lib/yorick/i-start
usr/local/lib/yorick/lib
usr/local/lib/yorick/packages
usr/local/lib/yorick/python
usr/local/lib/yorick/glade
usr/local/lib/yorick/data
debian/yorick.menu 0000664 0000000 0000000 00000000417 11770117412 011361 0 ustar ?package(yorick):needs="text" section="Applications/Science/Data Analysis"\
title="Yorick" command="rlwrap yorick 2> /dev/null || yorick"\
icon16x16="yorick16x16.xpm" icon32x32="yorick32x32.xpm"\
longtitle="Shell for numerical computations and scientific graphics"