[tachyon] 04/04: Imported Debain patch 0.99~b6+dsx-1
Jerome Benoit
calculus-guest at moszumanska.debian.org
Fri Nov 14 14:59:57 UTC 2014
This is an automated email from the git hooks/post-receive script.
calculus-guest pushed a commit to branch master
in repository tachyon.
commit f2015778fbe96a2a0e0f29e6e07139028fe18f42
Author: Jerome Benoit <calculus at rezozer.net>
Date: Fri Nov 14 15:34:24 2014 +0100
Imported Debain patch 0.99~b6+dsx-1
---
debian/README.Debian | 34 +-
debian/README.source | 26 +-
debian/adhoc/demosrc/Makefile | 28 +
debian/adhoc/scenes/action.sh.in | 76 ++
debian/changelog | 53 +-
debian/clean | 14 +
debian/compat | 2 +-
debian/control | 472 +++++++++++--
debian/copyright | 594 +++-------------
debian/libtachyon-0.99.install | 1 -
debian/libtachyon-dev-common.install | 1 +
debian/libtachyon-dev.install | 3 -
debian/patches/architecture.patch | 23 -
debian/patches/debianization-documentation.patch | 327 +++++++++
debian/patches/debianization.patch | 119 ++++
debian/patches/enable-png.patch | 21 -
debian/patches/kfreebsd_error_timezone.patch | 12 -
debian/patches/series | 15 +-
debian/patches/shared-library.patch | 190 -----
debian/patches/upstream-C2help2man.patch | 267 +++++++
debian/patches/upstream-demosrc-samples.patch | 455 ++++++++++++
debian/patches/upstream-opengl.patch | 44 ++
debian/patches/upstream-parse-tpoly.patch | 41 ++
debian/patches/upstream-pthreads.patch | 17 +
.../upstream-rationalization-autotools.patch | 417 +++++++++++
.../patches/upstream-rationalization-cleanup.patch | 42 ++
.../upstream-rationalization-one_header.patch | 777 +++++++++++++++++++++
.../upstream-rationalization-version_script.patch | 146 ++++
debian/repack | 135 ++++
debian/rules | 167 ++++-
debian/source/lintian-overrides | 1 +
debian/source/options | 2 +
debian/tachyon-doc.doc-base | 16 +
debian/tachyon-doc.docs | 4 +-
debian/tachyon-doc.examples | 2 +
debian/tachyon-doc.links | 5 +
debian/tachyon.1 | 291 --------
debian/tachyon.docs | 2 -
debian/tachyon.install | 1 -
debian/tachyon.manpages | 1 -
debian/templates/control-description-mainpart.rin | 11 +
debian/templates/control.in | 271 +++++++
.../libtachyon-LIBFLAVOUR-casetableof_priority.rin | 9 +
.../templates/libtachyon-LIBFLAVOUR-dev.install.in | 1 +
.../libtachyon-LIBFLAVOUR-dev.postinst.in | 27 +
.../templates/libtachyon-LIBFLAVOUR-dev.prerm.in | 30 +
debian/templates/libtachyon-LIBFLAVOUR.install.in | 1 +
.../libtachyon-LIBFLAVOUR.lintian-overrides.in | 1 +
debian/templates/libtachyon-LIBFLAVOUR.postinst.in | 24 +
debian/templates/libtachyon-LIBFLAVOUR.prerm.in | 18 +
debian/templates/libtachyon-LIBFLAVOUR.symbols.in | 1 +
.../templates/libtachyon-LIBVARIANT-dev.install.in | 1 +
debian/templates/libtachyon-LIBVARIANT.install.in | 3 +
debian/templates/libtachyon-LIBVARIANT.symbols.in | 126 ++++
debian/templates/tachyon-bin-VARIANT.install.in | 1 +
debian/templates/tachyon-bin-VARIANT.manpages.in | 1 +
debian/templates/tachyon-bin-VARIANT.postinst.in | 18 +
debian/templates/tachyon-bin-VARIANT.prerm.in | 15 +
debian/watch | 4 +
59 files changed, 4285 insertions(+), 1122 deletions(-)
diff --git a/debian/README.Debian b/debian/README.Debian
index 9120d2e..b85b4fa 100644
--- a/debian/README.Debian
+++ b/debian/README.Debian
@@ -1,12 +1,30 @@
-When you have an idea about it, the separation of the independent build
-from the binary has not worked out. These dependencies now happen to
-be required for every platform, but should just be required for the
-arch-independent builds:
+Debian specific setup
+=====================
- Build-Depends-Indep: texlive-latex-base, texlive-latex-recommended, texlive-science, texlive-latex-extra, texlive-humanities
+Both the `Tachyon ray tracing library' and `Tachyon standalone ray tracer' come
+in different variants that can coexist.
-Many thanks for any suggestion
+The `Tachyon ray tracing library' variants are gathered in flavours, each flavour
+being distributed within a distinct Debian package. At the time of writing, there
+are 4 flavours: the zeroth flavour is the serial version of the library, it is only
+meant for test; the first flavour only deals with Multi-Threading (MT); the second
+and the third correspond to two different implementation of the Message Passing
+Interface (MPI), OpenMPI and MPICH, respectively. The `mt' flavour uses as MT
+implementation either the POSIX Threads approach or the OpenMP one. The two parallel
+flavours are or not mixed with these two Multi-Threading approaches. The variant
+suffix appended to the tachyon library name is meant to be self-explanatory.
-The fix for #620999 is not right. I had disabled the threading on the kfreebsd platforms to work around the compilation problem with threading.
+The `Tachyon standalone ray tracer' has a variant that has no X support. At the
+time of writing, it has a second variant that is built with OpenGL support. The
+variant suffix appended to the tachyon program name is meant to be self-explanatory.
-Steffen
+update-alternatives(8) is used to select the default variant.
+The alternative name for the tachyon library is `libtachyon.so.0',
+and `tachyon' for the program itself. Libraries and programs might
+be linked against `libtachyon.so'.
+
+The document file `README.unix' distributed within the Debian package `tachyon-doc'
+may help to determine which library variant to choose as default; the scene samples
+furnished by this package provide material for benchmaking.
+
+ -- Jerome Benoit <calculus at rezozer.net> Fri, 14 Nov 2014 01:11:47 +0000
diff --git a/debian/README.source b/debian/README.source
index c99a67b..50835b8 100644
--- a/debian/README.source
+++ b/debian/README.source
@@ -1,11 +1,17 @@
-Tachyon
-=======
-
- * Removed CVS directories
- * Removed doc/*.sty except for doc/pdfdraftcopy.sty
- * find . -name ".#*" | xargs -r rm
-
-Left in the msvc folder, which seems find copyright-wise.
-
- * src/util.c gets sys/time.h included, which helps compilation on kfreebsd
+The source material for the Tachyon Debian package was originally designed with
+multi source tarballs in mind [1,2]. Unfortunately, at the time of packaging,
+this feature is not supported by git-buildpacckage (#561071), therefore an ad hoc
+has to be figured out:
+1] the upstream source tarball was downloaded and then repacked throught a standard
+ uscan/watch machinery to obtain `tachyon-0.99~b6+ds.orig.tar.zx' (for details,
+ see `debian/{rules, watch,repack});
+2] the second source tarball that contains missing sample material grabbed from the
+ internet by hand (see `debian/copyright' for furhter information) was created
+ wrt the multi source scheme and named `tachyon_0.99~b6+ds.orig-pkgextra.tar.xz';
+3] the second source tarball `tachyon_0.99~b6+ds.orig-pkgextra.tar.xz' was added by
+ hand to the repacked source tarball `tachyon-0.99~b6+ds.orig.tar.zx' to get
+ the standalone source tarball `tachyon-0.99~b6+dsx.orig.tar.zx', the missing
+ sample material being gathered into the folder `pkgextra'.
+[1] http://raphaelhertzog.com/2010/09/07/how-to-use-multiple-upstream-tarballs-in-debian-source-packages/
+[2] https://packages.debian.org/source/sid/spamassassin
diff --git a/debian/adhoc/demosrc/Makefile b/debian/adhoc/demosrc/Makefile
new file mode 100644
index 0000000..16d8d43
--- /dev/null
+++ b/debian/adhoc/demosrc/Makefile
@@ -0,0 +1,28 @@
+##
+## Written for Debian on behalf of the Debian Science Team
+## by Jerome Benoit <calculus at rezozer.net>, 2014-11-07.
+##
+
+CFLAGS += -Wall
+LDLIBS = -ltachyon
+
+listof_progam = animskull animspheres animspheres-ogl animspheres2 fire hypertex mainanim tgatoyuv
+
+default: build
+
+build: $(listof_progam)
+
+demo-nox:
+ ./fire
+
+demo-ogl: animspheres-ogl
+ ./animspheres-ogl -nosave -opengl -res 1024 512
+
+animspheres: animspheres.c glwin.c
+
+animspheres-ogl: animspheres.c glwin.c
+ $(CC) $(CPPFLAGS) -DUSEOPENGL $(CFLAGS) $^ $(LDLIBS) -lGL -lX11 -o $@
+
+clean:
+ rm -f $(listof_progam)
+ rm -f *.tga
diff --git a/debian/adhoc/scenes/action.sh.in b/debian/adhoc/scenes/action.sh.in
new file mode 100755
index 0000000..3a51608
--- /dev/null
+++ b/debian/adhoc/scenes/action.sh.in
@@ -0,0 +1,76 @@
+#!/bin/sh
+##
+## Written for Debian on behalf of the Debian Science Team
+## by Jerome Benoit <calculus at rezozer.net>, 2014-11-13.
+##
+INVOCATIONNAME=${0##*/}
+
+case ${INVOCATIONNAME} in
+ action.sh) VARIANT=ogl ;;
+ action-*.sh)
+ VARIANT=${INVOCATIONNAME%.sh}
+ VARIANT=${VARIANT#action-}
+ case ${VARIANT} in
+ @DEB_VIRT_TACHYON_LISTOF_VARIANT@) ;;
+ *) echo >&2 "ERROR: unknown variant \`${VARIANT}'"; exit 1 ;;
+ esac
+ ;;
+ clean.sh)
+ rm -f *.tga
+ exit 0
+ ;;
+ *) echo >&2 "ERROR: unexpected script name \`${0}'"; exit 1 ;;
+esac
+
+TACHYON=/usr/bin/tachyon-$VARIANT
+
+TACHYON_OPTS=
+TACHYON_OPTS="-numthreads 3"
+
+if [ ! -x $TACHYON ]; then
+ echo >&2 "ERROR: cannot find executable \`$TACHYON'"
+ echo >&2 "ERROR: You may want to install the Debian package \`tachyon-bin-$VARIANT'"
+ exit 1
+fi
+
+lauch_cmd () {
+ local cmd="$@"
+ echo
+ echo "=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+"
+ echo "$cmd"
+ echo "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-"
+ sh -c "$cmd"
+ return 0
+ }
+
+listof_acfile=$(find . -type f -a -name '*.ac')
+listof_datfile=$(find . -type f -a -name '*.dat')
+listof_camfile=$(find . -type f -a -name '*.cam')
+
+if true; then
+for acfile in $listof_acfile; do
+ outfile=${acfile%.ac}-$VARIANT.tga
+ rm -f $outfile
+ lauch_cmd "$TACHYON ${TACHYON_OPTS} -o $outfile -format TARGA $acfile"
+done
+fi
+
+if true; then
+for datfile in $listof_datfile; do
+ outfile=${datfile%.dat}-$VARIANT.tga
+ rm -f $outfile
+ lauch_cmd "$TACHYON ${TACHYON_OPTS} -o $outfile -format TARGA $datfile"
+done
+fi
+
+if true; then
+for camfile in $listof_camfile; do
+ datfile=${camfile%.cam}.dat
+ if [ -r $datfile ]; then
+ lauch_cmd "$TACHYON ${TACHYON_OPTS} -nosave -camfile $camfile $datfile"
+ fi
+done
+fi
+
+exit 0
+## eos
diff --git a/debian/changelog b/debian/changelog
index 2ab6987..51a31b2 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,15 +1,62 @@
+tachyon (0.99~b6+dsx-1) unstable; urgency=medium
+
+ * New upstrean release.
+ * New maintainer (Closes: #764433).
+ * Debianization:
+ - debian/copyright:
+ - in DEP-5 format, bump;
+ - refresh;
+ - debian/control:
+ - debhelper build-dep to >= 9, bump;
+ - Standards Version 3.9.6, bump;
+ - Build-Depends field, refresh (Closes: #650601);
+ - Vcs-* headers, provide (Closes: #697317);
+ - debian/source/, format 3.0 (quilt), bump;
+ - debian/watch, refresh;
+ - debian/repack, repack script to clean up and gain weight;
+ - debian/rules:
+ - full, multi-flavour and multi-variant dh integration through
+ a templates machinery;
+ - get-orig-source uscan based target which downloads the currently
+ packaged upstream tarball and repacks it;
+ - default target which basically queries package status with uscan
+ -- output in DEHS format;
+ - debian/patches/:
+ - patches in DEP-3 format;
+ - harden pthreads support in GNU environment, thanks to
+ Samuel Thibault <sthibault at debian.org> (Closes: #729182);
+ - harden separate build either with or without OpenGL support;
+ - format help display in view to employ help2man to generate manpages;
+ - clean demo simple samples;
+ - pre-rationalization cleanup;
+ - merge the installed header into one header;
+ - script-version, create by hand wrt `tachyon.h';
+ - autotools build machinery, write from scratch to ease maintenance;
+ - library versionning, introduce;
+ - manual page generated via help2man;
+ - debian/README.{source,Debian}, refresh;
+ - build-arch/build-indep scheme, introduce;
+ - gpg-signature check support, neutralize;
+ - missing sample material gathered into a separated source tarball;
+ - management of tools and library variants with update-alaternatives.
+ * Provide an ad hoc script to shoot (and clean) the upstream scene samples,
+ and an ad hoc Makefile to build (and clean) the upstream source examples.
+ * Minor, enhancement, cosmetic patches submitted to the upstream maintainer.
+
+ -- Jerome Benoit <calculus at rezozer.net> Fri, 14 Nov 2014 13:53:47 +0000
+
tachyon (0.99~b2+dfsg-0.4) unstable; urgency=low
* Non-maintainer upload.
- * Add libtachyon-0.99 as a dependency of libtachyon-dev. Thanks to Ana Guerrero
- for finding this bug! (Closes: #675714)
+ * Add libtachyon-0.99 as a dependency of libtachyon-dev. Thanks to Ana Guerrero
+ for finding this bug! (Closes: #675714)
-- Mònica Ramírez Arceda <monica at debian.org> Sun, 03 Jun 2012 00:27:58 +0200
tachyon (0.99~b2+dfsg-0.3) unstable; urgency=low
* Non-maintainer upload.
- * Fixed build failures on kfreebsd
+ * Fixed build failures on kfreebsd
- disabling threading (Closes: 620999)
- including sys/time.h in src/util.c
diff --git a/debian/clean b/debian/clean
new file mode 100644
index 0000000..203791f
--- /dev/null
+++ b/debian/clean
@@ -0,0 +1,14 @@
+docs/tachyon.dvi
+docs/tachyon.ps
+docs/tachyon/WARNINGS
+docs/tachyon/tachyon.css
+docs/tachyon/tachyon.html
+docs/tachyon/index.html
+docs/tachyon/node*.html
+docs/tachyon/images.*
+docs/tachyon/*.png
+docs/tachyon/internals.pl
+docs/tachyon/labels.pl
+scenes/*.jpg
+scenes/*.png
+scenes/*.tga
diff --git a/debian/compat b/debian/compat
index 7ed6ff8..ec63514 100644
--- a/debian/compat
+++ b/debian/compat
@@ -1 +1 @@
-5
+9
diff --git a/debian/control b/debian/control
index 3efa937..070021c 100644
--- a/debian/control
+++ b/debian/control
@@ -1,83 +1,451 @@
Source: tachyon
Section: math
Priority: optional
-Maintainer: Tim Abbott <tabbott at mit.edu>
-Build-Depends: debhelper (>= 5), cdbs (>= 0.4.27), libpng12-dev,
- texlive-latex-base, texlive-latex-recommended, texlive-science, texlive-latex-extra, texlive-humanities
-Standards-Version: 3.9.1
-Vcs-Git: git://git.debian.org/debian-science/packages/tachyon.git
-Vcs-Browser: http://git.debian.org/?p=debian-science/packages/tachyon.git;a=summary
+Maintainer: Debian Science Maintainers <debian-science-maintainers at lists.alioth.debian.org>
+Uploaders: Jerome Benoit <calculus at rezozer.net>
+Build-Depends:
+ debhelper (>= 9),
+ autotools-dev, autoconf-archive, autoconf-gl-macros, dh-autoreconf, libtool, pkg-config, help2man,
+ mpi-default-dev,
+ libmpich-dev,
+ libjpeg-dev (>=1:1.3.1-10),
+ libpng-dev,
+ libgl1-mesa-dev | libgl-dev
+Build-Conflicts:
+ glx-diversions
+Build-Depends-Indep:
+ texlive-latex-base, texlive-latex-recommended, texlive-latex-extra,
+ texlive-science, texlive-humanities,
+ latex2html,
+ rdfind, symlinks
+Standards-Version: 3.9.6
+Homepage: http://jedi.ks.uiuc.edu/~johns/raytracer/
+Vcs-Git: git://anonscm.debian.org/debian-science/packages/tachyon.git
+Vcs-Browser: http://anonscm.debian.org/gitweb/?p=debian-science/packages/tachyon.git
-Package: tachyon
+Package: libtachyon-serial-0
+Provides: libtachyon
+Section: libs
+Priority: extra
Architecture: any
+Pre-Depends: ${misc:Pre-Depends}
Depends: ${shlibs:Depends}, ${misc:Depends}
-Description: Parallel/Multiprocessor Ray Tracing Software
+Suggests: tachyon-doc
+Multi-Arch: same
+Description: Parallel/Multiprocessor Ray Tracing Library - runtime - serial flavour
Tachyon is a portable, high performance parallel ray tracing system
- supporting MPI and multithreaded implementations. Tachyon is built
- as a C callable library, which can be used with the included demo
- programs or within your own application. The distribution also
- includes a simple scene file parser front-end which reads a few
- different formats.
+ supporting MPI and multithreaded implementations. Tachyon is built as
+ a C callable library, which can be used within applications.
.
Tachyon implements all of the basic geometric primitives such as
- triangles, planes, spheres, cylinders, etc. Some of the goals in
+ triangles, planes, spheres, cylinders, etc. Some of the goals in
developing Tachyon were to make it fast and for it to parallelize
- well. These are what set it apart from more full-featured programs
- like POV-Ray, Rayshade, and others. Tachyon supports enough features
+ well. These are what set it apart from more full-featured programs
+ like POV-Ray, Rayshade, and others. Tachyon supports enough features
to be an excellent alternative to slower programs for demanding
- animation and scientific visualization tasks. As time goes on,
- Tachyon will indeed incorporate more features, but with a continued
- emphasis on rendering performance.
+ animation and scientific visualization tasks.
+ .
+ This package provides the shared library required to run third party
+ program compiled against the tachyon C library built against OpenMPI.
+ To compile your own programs you also need to install the concomitant
+ libtachyon-serial-0-dev package.
-Package: tachyon-doc
-Architecture: all
-Section: doc
+Package: libtachyon-serial-0-dev
+Provides: libtachyon-dev
+Section: libdevel
+Priority: extra
+Architecture: any
+Depends: libtachyon-dev-common (= ${source:Version}), libtachyon-serial-0 (= ${binary:Version}), ${misc:Depends}
+Multi-Arch: same
+Description: Parallel/Multiprocessor Ray Tracing Library - development - serial flavour
+ Tachyon is a portable, high performance parallel ray tracing system
+ supporting MPI and multithreaded implementations. Tachyon is built as
+ a C callable library, which can be used within applications.
+ .
+ Tachyon implements all of the basic geometric primitives such as
+ triangles, planes, spheres, cylinders, etc. Some of the goals in
+ developing Tachyon were to make it fast and for it to parallelize
+ well. These are what set it apart from more full-featured programs
+ like POV-Ray, Rayshade, and others. Tachyon supports enough features
+ to be an excellent alternative to slower programs for demanding
+ animation and scientific visualization tasks.
+ .
+ This package contains the static libraries and symbolic links that
+ third party developers using the tachyon C library built for serial
+ platforms.
+
+Package: libtachyon-serial-0-dbg
+Provides: libtachyon-dbg
+Section: debug
+Priority: extra
+Architecture: alpha amd64 armel armhf arm64 i386 ia64 powerpc powerpcspe ppc64 ppc64el sparc sparc64 kfreebsd-i386 kfreebsd-amd64 hurd-i386 mips64 mips64el mips mipsel
+Depends: libtachyon-serial-0 (= ${binary:Version}), ${misc:Depends}
+Multi-Arch: same
+Description: Parallel/Multiprocessor Ray Tracing Library - debug package - serial flavour
+ Tachyon is a portable, high performance parallel ray tracing system
+ supporting MPI and multithreaded implementations. Tachyon is built as
+ a C callable library, which can be used within applications.
+ .
+ Tachyon implements all of the basic geometric primitives such as
+ triangles, planes, spheres, cylinders, etc. Some of the goals in
+ developing Tachyon were to make it fast and for it to parallelize
+ well. These are what set it apart from more full-featured programs
+ like POV-Ray, Rayshade, and others. Tachyon supports enough features
+ to be an excellent alternative to slower programs for demanding
+ animation and scientific visualization tasks.
+ .
+ This package provides the debugging symbols for the libraries from
+ the libtachyon-serial-0-dev package.
+
+Package: libtachyon-mt-0
+Provides: libtachyon
+Replaces: libtachyon-0.99
+Section: libs
+Architecture: any
+Pre-Depends: ${misc:Pre-Depends}
Depends: ${shlibs:Depends}, ${misc:Depends}
-Description: documentation for Tachyon ray tracer
- The compilation of the LaTeX documentation demands the
- installation of most components of texlive.
+Suggests: tachyon-doc
+Multi-Arch: same
+Description: Parallel/Multiprocessor Ray Tracing Library - runtime - MT flavour
+ Tachyon is a portable, high performance parallel ray tracing system
+ supporting MPI and multithreaded implementations. Tachyon is built as
+ a C callable library, which can be used within applications.
+ .
+ Tachyon implements all of the basic geometric primitives such as
+ triangles, planes, spheres, cylinders, etc. Some of the goals in
+ developing Tachyon were to make it fast and for it to parallelize
+ well. These are what set it apart from more full-featured programs
+ like POV-Ray, Rayshade, and others. Tachyon supports enough features
+ to be an excellent alternative to slower programs for demanding
+ animation and scientific visualization tasks.
+ .
+ This package provides the shared library required to run third party
+ program compiled against the tachyon C library built with multithreading.
+ To compile your own programs you also need to install the concomitant
+ libtachyon-mt-0-dev package.
+
+Package: libtachyon-mt-0-dev
+Provides: libtachyon-dev
+Section: libdevel
+Architecture: any
+Depends: libtachyon-dev-common (= ${source:Version}), libtachyon-mt-0 (= ${binary:Version}), ${misc:Depends}
+Multi-Arch: same
+Description: Parallel/Multiprocessor Ray Tracing Library - development - MT flavour
+ Tachyon is a portable, high performance parallel ray tracing system
+ supporting MPI and multithreaded implementations. Tachyon is built as
+ a C callable library, which can be used within applications.
+ .
+ Tachyon implements all of the basic geometric primitives such as
+ triangles, planes, spheres, cylinders, etc. Some of the goals in
+ developing Tachyon were to make it fast and for it to parallelize
+ well. These are what set it apart from more full-featured programs
+ like POV-Ray, Rayshade, and others. Tachyon supports enough features
+ to be an excellent alternative to slower programs for demanding
+ animation and scientific visualization tasks.
+ .
+ This package contains the static libraries and symbolic links that
+ third party developers using the tachyon C library built with
+ multithreading will need.
+
+Package: libtachyon-mt-0-dbg
+Provides: libtachyon-dbg
+Section: debug
+Priority: extra
+Architecture: any
+Depends: libtachyon-mt-0 (= ${binary:Version}), ${misc:Depends}
+Multi-Arch: same
+Description: Parallel/Multiprocessor Ray Tracing Library - debug package - MT flavour
+ Tachyon is a portable, high performance parallel ray tracing system
+ supporting MPI and multithreaded implementations. Tachyon is built as
+ a C callable library, which can be used within applications.
+ .
+ Tachyon implements all of the basic geometric primitives such as
+ triangles, planes, spheres, cylinders, etc. Some of the goals in
+ developing Tachyon were to make it fast and for it to parallelize
+ well. These are what set it apart from more full-featured programs
+ like POV-Ray, Rayshade, and others. Tachyon supports enough features
+ to be an excellent alternative to slower programs for demanding
+ animation and scientific visualization tasks.
+ .
+ This package provides the debugging symbols for the libraries from
+ the libtachyon-mt-0-dev package.
+
+Package: libtachyon-openmpi-0
+Provides: libtachyon
+Section: libs
+Priority: extra
+Architecture: alpha amd64 armel armhf arm64 i386 ia64 powerpc powerpcspe ppc64 ppc64el sparc sparc64 kfreebsd-i386 kfreebsd-amd64 hurd-i386 mips64 mips64el mips mipsel
+Pre-Depends: ${misc:Pre-Depends}
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Suggests: tachyon-doc
+Multi-Arch: same
+Description: Parallel/Multiprocessor Ray Tracing Library - runtime - OpenMPI flavour
+ Tachyon is a portable, high performance parallel ray tracing system
+ supporting MPI and multithreaded implementations. Tachyon is built as
+ a C callable library, which can be used within applications.
+ .
+ Tachyon implements all of the basic geometric primitives such as
+ triangles, planes, spheres, cylinders, etc. Some of the goals in
+ developing Tachyon were to make it fast and for it to parallelize
+ well. These are what set it apart from more full-featured programs
+ like POV-Ray, Rayshade, and others. Tachyon supports enough features
+ to be an excellent alternative to slower programs for demanding
+ animation and scientific visualization tasks.
+ .
+ This package provides the shared library required to run third party
+ program compiled against the tachyon C library built against OpenMPI.
+ To compile your own programs you also need to install the concomitant
+ libtachyon-openmpi-0-dev package.
+
+Package: libtachyon-openmpi-0-dev
+Provides: libtachyon-dev
+Section: libdevel
+Priority: extra
+Architecture: alpha amd64 armel armhf arm64 i386 ia64 powerpc powerpcspe ppc64 ppc64el sparc sparc64 kfreebsd-i386 kfreebsd-amd64 hurd-i386 mips64 mips64el mips mipsel
+Depends: libtachyon-dev-common (= ${source:Version}), libtachyon-openmpi-0 (= ${binary:Version}), ${misc:Depends}
+Multi-Arch: same
+Description: Parallel/Multiprocessor Ray Tracing Library - development - OpenMPI flavour
+ Tachyon is a portable, high performance parallel ray tracing system
+ supporting MPI and multithreaded implementations. Tachyon is built as
+ a C callable library, which can be used within applications.
+ .
+ Tachyon implements all of the basic geometric primitives such as
+ triangles, planes, spheres, cylinders, etc. Some of the goals in
+ developing Tachyon were to make it fast and for it to parallelize
+ well. These are what set it apart from more full-featured programs
+ like POV-Ray, Rayshade, and others. Tachyon supports enough features
+ to be an excellent alternative to slower programs for demanding
+ animation and scientific visualization tasks.
+ .
+ This package contains the static libraries and symbolic links that
+ third party developers using the tachyon C library built against
+ OpenMPI will need.
+
+Package: libtachyon-openmpi-0-dbg
+Provides: libtachyon-dbg
+Section: debug
+Priority: extra
+Architecture: alpha amd64 armel armhf arm64 i386 ia64 powerpc powerpcspe ppc64 ppc64el sparc sparc64 kfreebsd-i386 kfreebsd-amd64 hurd-i386 mips64 mips64el mips mipsel
+Depends: libtachyon-openmpi-0 (= ${binary:Version}), ${misc:Depends}
+Multi-Arch: same
+Description: Parallel/Multiprocessor Ray Tracing Library - debug package - OpenMPI flavour
+ Tachyon is a portable, high performance parallel ray tracing system
+ supporting MPI and multithreaded implementations. Tachyon is built as
+ a C callable library, which can be used within applications.
+ .
+ Tachyon implements all of the basic geometric primitives such as
+ triangles, planes, spheres, cylinders, etc. Some of the goals in
+ developing Tachyon were to make it fast and for it to parallelize
+ well. These are what set it apart from more full-featured programs
+ like POV-Ray, Rayshade, and others. Tachyon supports enough features
+ to be an excellent alternative to slower programs for demanding
+ animation and scientific visualization tasks.
+ .
+ This package provides the debugging symbols for the libraries from
+ the libtachyon-openmpi-0-dev package.
-Package: libtachyon-0.99
+Package: libtachyon-mpich-0
+Provides: libtachyon
Section: libs
+Priority: extra
Architecture: any
+Pre-Depends: ${misc:Pre-Depends}
Depends: ${shlibs:Depends}, ${misc:Depends}
-Description: Parallel/Multiprocessor Ray Tracing Software, shared library
+Suggests: tachyon-doc
+Multi-Arch: same
+Description: Parallel/Multiprocessor Ray Tracing Library - runtime - MPICH flavour
+ Tachyon is a portable, high performance parallel ray tracing system
+ supporting MPI and multithreaded implementations. Tachyon is built as
+ a C callable library, which can be used within applications.
+ .
+ Tachyon implements all of the basic geometric primitives such as
+ triangles, planes, spheres, cylinders, etc. Some of the goals in
+ developing Tachyon were to make it fast and for it to parallelize
+ well. These are what set it apart from more full-featured programs
+ like POV-Ray, Rayshade, and others. Tachyon supports enough features
+ to be an excellent alternative to slower programs for demanding
+ animation and scientific visualization tasks.
+ .
+ This package provides the shared library required to run third party
+ program compiled against the tachyon C library built against MPICH.
+ To compile your own programs you also need to install the concomitant
+ libtachyon-mpich-0-dev package.
+
+Package: libtachyon-mpich-0-dev
+Provides: libtachyon-dev
+Section: libdevel
+Priority: extra
+Architecture: any
+Depends: libtachyon-dev-common (= ${source:Version}), libtachyon-mpich-0 (= ${binary:Version}), ${misc:Depends}
+Multi-Arch: same
+Description: Parallel/Multiprocessor Ray Tracing Library - development - MPICH flavour
+ Tachyon is a portable, high performance parallel ray tracing system
+ supporting MPI and multithreaded implementations. Tachyon is built as
+ a C callable library, which can be used within applications.
+ .
+ Tachyon implements all of the basic geometric primitives such as
+ triangles, planes, spheres, cylinders, etc. Some of the goals in
+ developing Tachyon were to make it fast and for it to parallelize
+ well. These are what set it apart from more full-featured programs
+ like POV-Ray, Rayshade, and others. Tachyon supports enough features
+ to be an excellent alternative to slower programs for demanding
+ animation and scientific visualization tasks.
+ .
+ This package contains the static libraries and symbolic links that
+ third party developers using the tachyon C library built against
+ MPICH will need.
+
+Package: libtachyon-mpich-0-dbg
+Provides: libtachyon-dbg
+Section: debug
+Priority: extra
+Architecture: any
+Depends: libtachyon-mpich-0 (= ${binary:Version}), ${misc:Depends}
+Multi-Arch: same
+Description: Parallel/Multiprocessor Ray Tracing Library - debug package - MPICH flavour
Tachyon is a portable, high performance parallel ray tracing system
- supporting MPI and multithreaded implementations. Tachyon is built
- as a C callable library, which can be used with the included demo
- programs or within your own application. The distribution also
- includes a simple scene file parser front-end which reads a few
- different formats.
+ supporting MPI and multithreaded implementations. Tachyon is built as
+ a C callable library, which can be used within applications.
.
Tachyon implements all of the basic geometric primitives such as
- triangles, planes, spheres, cylinders, etc. Some of the goals in
+ triangles, planes, spheres, cylinders, etc. Some of the goals in
developing Tachyon were to make it fast and for it to parallelize
- well. These are what set it apart from more full-featured programs
- like POV-Ray, Rayshade, and others. Tachyon supports enough features
+ well. These are what set it apart from more full-featured programs
+ like POV-Ray, Rayshade, and others. Tachyon supports enough features
to be an excellent alternative to slower programs for demanding
- animation and scientific visualization tasks. As time goes on,
- Tachyon will indeed incorporate more features, but with a continued
- emphasis on rendering performance.
+ animation and scientific visualization tasks.
+ .
+ This package provides the debugging symbols for the libraries from
+ the libtachyon-mpich-0-dev package.
-Package: libtachyon-dev
+Package: libtachyon-dev-common
Section: libdevel
+Architecture: all
+Depends: ${misc:Depends}
+Suggests: libtachyon-dev
+Multi-Arch: foreign
+Description: Parallel/Multiprocessor Ray Tracing Library - development - common material
+ Tachyon is a portable, high performance parallel ray tracing system
+ supporting MPI and multithreaded implementations. Tachyon is built as
+ a C callable library, which can be used within applications.
+ .
+ Tachyon implements all of the basic geometric primitives such as
+ triangles, planes, spheres, cylinders, etc. Some of the goals in
+ developing Tachyon were to make it fast and for it to parallelize
+ well. These are what set it apart from more full-featured programs
+ like POV-Ray, Rayshade, and others. Tachyon supports enough features
+ to be an excellent alternative to slower programs for demanding
+ animation and scientific visualization tasks.
+ .
+ This package contains the header files that third party developers
+ using the tachyon C library will need.
+
+Package: libtachyon-mpi-dev
+Provides: libtachyon-dev
+Section: libdevel
+Priority: extra
Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, libtachyon-0.99 (= ${binary:Version})
-Description: Parallel/Multiprocessor Ray Tracing Software, development files
+Depends: ${default:libtachyon-mpi-dev}, mpi-default-dev, ${misc:Depends}
+Description: Parallel/Multiprocessor Ray Tracing Library - development - default MPI flavour
Tachyon is a portable, high performance parallel ray tracing system
- supporting MPI and multithreaded implementations. Tachyon is built
- as a C callable library, which can be used with the included demo
- programs or within your own application. The distribution also
- includes a simple scene file parser front-end which reads a few
- different formats.
+ supporting MPI and multithreaded implementations. Tachyon is built as
+ a C callable library, which can be used within applications.
.
Tachyon implements all of the basic geometric primitives such as
- triangles, planes, spheres, cylinders, etc. Some of the goals in
+ triangles, planes, spheres, cylinders, etc. Some of the goals in
developing Tachyon were to make it fast and for it to parallelize
- well. These are what set it apart from more full-featured programs
- like POV-Ray, Rayshade, and others. Tachyon supports enough features
+ well. These are what set it apart from more full-featured programs
+ like POV-Ray, Rayshade, and others. Tachyon supports enough features
to be an excellent alternative to slower programs for demanding
- animation and scientific visualization tasks. As time goes on,
- Tachyon will indeed incorporate more features, but with a continued
- emphasis on rendering performance.
+ animation and scientific visualization tasks.
+ .
+ This metapackage depends on the default MPI version of the tachyon
+ C library development package for each architecture.
+Package: tachyon
+Architecture: all
+Depends: tachyon-bin-nox | tachyon-bin, ${misc:Depends}
+Multi-Arch: foreign
+Description: Parallel/Multiprocessor Standalone Ray Tracer - metapackage
+ Tachyon is a portable, high performance parallel ray tracing system
+ supporting MPI and multithreaded implementations. Tachyon is built as
+ a C callable library, which can be used within applications.
+ .
+ Tachyon implements all of the basic geometric primitives such as
+ triangles, planes, spheres, cylinders, etc. Some of the goals in
+ developing Tachyon were to make it fast and for it to parallelize
+ well. These are what set it apart from more full-featured programs
+ like POV-Ray, Rayshade, and others. Tachyon supports enough features
+ to be an excellent alternative to slower programs for demanding
+ animation and scientific visualization tasks.
+ .
+ This metapackage allows multi-variant support for tools built upon tachyon.
+
+Package: tachyon-bin-nox
+Provides: tachyon-bin
+Breaks: tachyon (<< 0.99~b6)
+Architecture: any
+Depends: libtachyon-mt-0 (= ${binary:Version}) | libtachyon, ${shlibs:Depends}, ${misc:Depends}
+Multi-Arch: foreign
+Description: Parallel/Multiprocessor Standalone Ray Tracer - with no X support
+ Tachyon is a portable, high performance parallel ray tracing system
+ supporting MPI and multithreaded implementations. Tachyon is built as
+ a C callable library, which can be used within applications.
+ .
+ Tachyon implements all of the basic geometric primitives such as
+ triangles, planes, spheres, cylinders, etc. Some of the goals in
+ developing Tachyon were to make it fast and for it to parallelize
+ well. These are what set it apart from more full-featured programs
+ like POV-Ray, Rayshade, and others. Tachyon supports enough features
+ to be an excellent alternative to slower programs for demanding
+ animation and scientific visualization tasks.
+ .
+ This package provides a simple scene file parser front-end built upon
+ tachyon but without X support.
+
+
+Package: tachyon-bin-ogl
+Provides: tachyon-bin
+Breaks: tachyon (<< 0.99~b6)
+Architecture: any
+Depends: libtachyon-mt-0 (= ${binary:Version}) | libtachyon, ${shlibs:Depends}, ${misc:Depends}
+Multi-Arch: foreign
+Description: Parallel/Multiprocessor Standalone Ray Tracer - with OpenGL display
+ Tachyon is a portable, high performance parallel ray tracing system
+ supporting MPI and multithreaded implementations. Tachyon is built as
+ a C callable library, which can be used within applications.
+ .
+ Tachyon implements all of the basic geometric primitives such as
+ triangles, planes, spheres, cylinders, etc. Some of the goals in
+ developing Tachyon were to make it fast and for it to parallelize
+ well. These are what set it apart from more full-featured programs
+ like POV-Ray, Rayshade, and others. Tachyon supports enough features
+ to be an excellent alternative to slower programs for demanding
+ animation and scientific visualization tasks.
+ .
+ This package provides a simple scene file parser front-end built upon
+ tachyon and with OpenGL display.
+
+Package: tachyon-doc
+Section: doc
+Architecture: all
+Depends: ${misc:Depends}
+Suggests: libtachyon-dev, tachyon-bin
+Multi-Arch: foreign
+Description: Parallel/Multiprocessor Ray Tracing System - reference manual
+ Tachyon is a portable, high performance parallel ray tracing system
+ supporting MPI and multithreaded implementations. Tachyon is built as
+ a C callable library, which can be used within applications.
+ .
+ Tachyon implements all of the basic geometric primitives such as
+ triangles, planes, spheres, cylinders, etc. Some of the goals in
+ developing Tachyon were to make it fast and for it to parallelize
+ well. These are what set it apart from more full-featured programs
+ like POV-Ray, Rayshade, and others. Tachyon supports enough features
+ to be an excellent alternative to slower programs for demanding
+ animation and scientific visualization tasks.
+ .
+ This package provides the reference manual for the tachyon C library.
+ It also contains simple demo sources to build against the tachyon C library
+ and scene material to parse with the simple tachyon scene parser front-end
+ built upon the tachyon C library.
diff --git a/debian/copyright b/debian/copyright
index 58fbf9f..86d9491 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -1,493 +1,115 @@
-This package was debianized by Tim Abbott <tabbott at mit.edu> in 2008.
-
-It was downloaded from http://jedi.ks.uiuc.edu/~johns/raytracer/
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0
+Upstream-Name: tachyon
+Upstream-Contact: John E. Stone <johns at ks.uiuc.edu>
+Source: http://jedi.ks.uiuc.edu/~johns/raytracer/
Files: *
-
-Upstream Authors: John E. Stone - johns at megapixel.com (preferred email address)
- j.stone at acm.org (preferred email address)
- johns at ks.uiuc.edu (work email address)
Copyright:
+ 1994-2014 John E. Stone <johns at ks.uiuc.edu>
+License: BSD-3-clause
- Copyright (C) 1994-2008 John E. Stone
-
-License:
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted under the terms of the BSD License.
-
- THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 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.
-
- and from the Copyright file
-
- /*
- * Copyright (c) 1994-2011 John E. Stone
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $Id: Copyright,v 1.10 2011/02/05 18:56:09 johns Exp $
- *
- */
-
-
-The docs/tachyon directory and docs/tachyon.html.tar.gz have been
-removed because they were generated using the non-free latex2html.
-
- Files: doc/pdfdraftcopy.sty
- License:
- This package may be distributed under the terms of the LaTeX Project
- Public License, as described in lppl.txt in the base LaTeX distribution.
- Either version 1.0 or, at your option, any later version.
-
- The LaTeX Project Public License
- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-
- LPPL Version 1.3c 2006-05-20
-
- Copyright 1999 2002-2006 LaTeX3 Project
- Everyone is allowed to distribute verbatim copies of this
- license document, but modification of it is not allowed.
-
-
- PREAMBLE
- ========
+Files: docs/pdfdraftcopy.sty
+Copyright:
+ 2003 C. V. Radhakrishnan <cvr at river-valley.com>
+ C. V. Rajagopal
+License: LPPL-1.0+
- The LaTeX Project Public License (LPPL) is the primary license under
- which the the LaTeX kernel and the base LaTeX packages are distributed.
-
- You may use this license for any work of which you hold the copyright
- and which you wish to distribute. This license may be particularly
- suitable if your work is TeX-related (such as a LaTeX package), but
- it is written in such a way that you can use it even if your work is
- unrelated to TeX.
+Files: pkgextra/virtual-reality/*
+Copyright:
+ 1994 Avalon
+License: public-domain
+ These files are public domain and come with NO WARRANTY of any kind.
+Comment:
+ These data files belong to the Avalon 3D Graphics Collection, a collection of public
+ domain 3D models distributed by Avalon; Avalon was bought by Viewpoint. They appeared
+ to be available at now down web site http://avalon.viewpoint.com/. They were grabbed
+ as-is by hand from ftp://ftp6.de.freebsd.org/pub/sci/virtual-reality/.
+
+Files: pkgextra/volpack/*
+Copyright:
+ 1994 Phil Lacrout <volpack at graphics.stanford.edu>
+License: public-domain
+ These files are public domain and come with NO WARRANTY of any kind.
+Comment:
+ These data files are part of the official VolPack rendering library distribution,
+ which was available from the Stanford Computer Graphics Laboratory ftp site
+ graphics.stanford.edu in pub/volpack/. They were fetched as-is by hand from
+ ftp://ftp.u-aizu.ac.jp/pub/graphics/CG/raytracers/graphics.stanford.edu/volpack/.
+
+Files: pkgextra/volpack/data/brain/*.den.Z
+Copyright:
+ 1994 Phil Lacrout <volpack at graphics.stanford.edu>
+License: public-domain
+ These data files constains volume data derived from an MR scan of a human head;
+ the data are in .den format and has been been compressed.
+ .
+ The original MR scan is from the Chapel Hill Volume Rendering Test Dataset,
+ Volume I, formally available from <ftp://omicron.cs.unc.edu/pub/softlab/CHVRTD/volI/>.
+ The data was taken on the Siemens Magnetom and provided courtesy of Siemens Medical
+ Systems, Inc., Iselin, NJ. They may be redistributed provided that the above
+ information about the source of the data is included.
+ .
+ The original data and the complete updated text of the Announcing of Chapel Hill
+ Volume Rendering Test Data Set, are available at the time of writing from
+ <http://graphics.stanford.edu/data/voldata/>.
- The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE',
- below, gives instructions, examples, and recommendations for authors
- who are considering distributing their works under this license.
-
- This license gives conditions under which a work may be distributed
- and modified, as well as conditions under which modified versions of
- that work may be distributed.
-
- We, the LaTeX3 Project, believe that the conditions below give you
- the freedom to make and distribute modified versions of your work
- that conform with whatever technical specifications you wish while
- maintaining the availability, integrity, and reliability of
- that work. If you do not see how to achieve your goal while
- meeting these conditions, then read the document `cfgguide.tex'
- and `modguide.tex' in the base LaTeX distribution for suggestions.
-
-
- DEFINITIONS
- ===========
-
- In this license document the following terms are used:
-
- `Work'
- Any work being distributed under this License.
-
- `Derived Work'
- Any work that under any applicable law is derived from the Work.
-
- `Modification'
- Any procedure that produces a Derived Work under any applicable
- law -- for example, the production of a file containing an
- original file associated with the Work or a significant portion of
- such a file, either verbatim or with modifications and/or
- translated into another language.
-
- `Modify'
- To apply any procedure that produces a Derived Work under any
- applicable law.
-
- `Distribution'
- Making copies of the Work available from one person to another, in
- whole or in part. Distribution includes (but is not limited to)
- making any electronic components of the Work accessible by
- file transfer protocols such as FTP or HTTP or by shared file
- systems such as Sun's Network File System (NFS).
-
- `Compiled Work'
- A version of the Work that has been processed into a form where it
- is directly usable on a computer system. This processing may
- include using installation facilities provided by the Work,
- transformations of the Work, copying of components of the Work, or
- other activities. Note that modification of any installation
- facilities provided by the Work constitutes modification of the Work.
-
- `Current Maintainer'
- A person or persons nominated as such within the Work. If there is
- no such explicit nomination then it is the `Copyright Holder' under
- any applicable law.
-
- `Base Interpreter'
- A program or process that is normally needed for running or
- interpreting a part or the whole of the Work.
-
- A Base Interpreter may depend on external components but these
- are not considered part of the Base Interpreter provided that each
- external component clearly identifies itself whenever it is used
- interactively. Unless explicitly specified when applying the
- license to the Work, the only applicable Base Interpreter is a
- `LaTeX-Format' or in the case of files belonging to the
- `LaTeX-format' a program implementing the `TeX language'.
-
-
-
- CONDITIONS ON DISTRIBUTION AND MODIFICATION
- ===========================================
-
- 1. Activities other than distribution and/or modification of the Work
- are not covered by this license; they are outside its scope. In
- particular, the act of running the Work is not restricted and no
- requirements are made concerning any offers of support for the Work.
-
- 2. You may distribute a complete, unmodified copy of the Work as you
- received it. Distribution of only part of the Work is considered
- modification of the Work, and no right to distribute such a Derived
- Work may be assumed under the terms of this clause.
-
- 3. You may distribute a Compiled Work that has been generated from a
- complete, unmodified copy of the Work as distributed under Clause 2
- above, as long as that Compiled Work is distributed in such a way that
- the recipients may install the Compiled Work on their system exactly
- as it would have been installed if they generated a Compiled Work
- directly from the Work.
-
- 4. If you are the Current Maintainer of the Work, you may, without
- restriction, modify the Work, thus creating a Derived Work. You may
- also distribute the Derived Work without restriction, including
- Compiled Works generated from the Derived Work. Derived Works
- distributed in this manner by the Current Maintainer are considered to
- be updated versions of the Work.
-
- 5. If you are not the Current Maintainer of the Work, you may modify
- your copy of the Work, thus creating a Derived Work based on the Work,
- and compile this Derived Work, thus creating a Compiled Work based on
- the Derived Work.
-
- 6. If you are not the Current Maintainer of the Work, you may
- distribute a Derived Work provided the following conditions are met
- for every component of the Work unless that component clearly states
- in the copyright notice that it is exempt from that condition. Only
- the Current Maintainer is allowed to add such statements of exemption
- to a component of the Work.
-
- a. If a component of this Derived Work can be a direct replacement
- for a component of the Work when that component is used with the
- Base Interpreter, then, wherever this component of the Work
- identifies itself to the user when used interactively with that
- Base Interpreter, the replacement component of this Derived Work
- clearly and unambiguously identifies itself as a modified version
- of this component to the user when used interactively with that
- Base Interpreter.
-
- b. Every component of the Derived Work contains prominent notices
- detailing the nature of the changes to that component, or a
- prominent reference to another file that is distributed as part
- of the Derived Work and that contains a complete and accurate log
- of the changes.
-
- c. No information in the Derived Work implies that any persons,
- including (but not limited to) the authors of the original version
- of the Work, provide any support, including (but not limited to)
- the reporting and handling of errors, to recipients of the
- Derived Work unless those persons have stated explicitly that
- they do provide such support for the Derived Work.
-
- d. You distribute at least one of the following with the Derived Work:
-
- 1. A complete, unmodified copy of the Work;
- if your distribution of a modified component is made by
- offering access to copy the modified component from a
- designated place, then offering equivalent access to copy
- the Work from the same or some similar place meets this
- condition, even though third parties are not compelled to
- copy the Work along with the modified component;
-
- 2. Information that is sufficient to obtain a complete,
- unmodified copy of the Work.
-
- 7. If you are not the Current Maintainer of the Work, you may
- distribute a Compiled Work generated from a Derived Work, as long as
- the Derived Work is distributed to all recipients of the Compiled
- Work, and as long as the conditions of Clause 6, above, are met with
- regard to the Derived Work.
-
- 8. The conditions above are not intended to prohibit, and hence do not
- apply to, the modification, by any method, of any component so that it
- becomes identical to an updated version of that component of the Work as
- it is distributed by the Current Maintainer under Clause 4, above.
-
- 9. Distribution of the Work or any Derived Work in an alternative
- format, where the Work or that Derived Work (in whole or in part) is
- then produced by applying some process to that format, does not relax or
- nullify any sections of this license as they pertain to the results of
- applying that process.
-
- 10. a. A Derived Work may be distributed under a different license
- provided that license itself honors the conditions listed in
- Clause 6 above, in regard to the Work, though it does not have
- to honor the rest of the conditions in this license.
-
- b. If a Derived Work is distributed under a different license, that
- Derived Work must provide sufficient documentation as part of
- itself to allow each recipient of that Derived Work to honor the
- restrictions in Clause 6 above, concerning changes from the Work.
-
- 11. This license places no restrictions on works that are unrelated to
- the Work, nor does this license place any restrictions on aggregating
- such works with the Work by any means.
-
- 12. Nothing in this license is intended to, or may be used to, prevent
- complete compliance by all parties with all applicable laws.
-
-
- NO WARRANTY
- ===========
-
- There is no warranty for the Work. Except when otherwise stated in
- writing, the Copyright Holder provides the Work `as is', without
- warranty of any kind, either expressed or implied, including, but not
- limited to, the implied warranties of merchantability and fitness for a
- particular purpose. The entire risk as to the quality and performance
- of the Work is with you. Should the Work prove defective, you assume
- the cost of all necessary servicing, repair, or correction.
-
- In no event unless required by applicable law or agreed to in writing
- will The Copyright Holder, or any author named in the components of the
- Work, or any other party who may distribute and/or modify the Work as
- permitted above, be liable to you for damages, including any general,
- special, incidental or consequential damages arising out of any use of
- the Work or out of inability to use the Work (including, but not limited
- to, loss of data, data being rendered inaccurate, or losses sustained by
- anyone as a result of any failure of the Work to operate with any other
- programs), even if the Copyright Holder or said author or said other
- party has been advised of the possibility of such damages.
-
-
- MAINTENANCE OF THE WORK
- =======================
-
- The Work has the status `author-maintained' if the Copyright Holder
- explicitly and prominently states near the primary copyright notice in
- the Work that the Work can only be maintained by the Copyright Holder
- or simply that it is `author-maintained'.
-
- The Work has the status `maintained' if there is a Current Maintainer
- who has indicated in the Work that they are willing to receive error
- reports for the Work (for example, by supplying a valid e-mail
- address). It is not required for the Current Maintainer to acknowledge
- or act upon these error reports.
-
- The Work changes from status `maintained' to `unmaintained' if there
- is no Current Maintainer, or the person stated to be Current
- Maintainer of the work cannot be reached through the indicated means
- of communication for a period of six months, and there are no other
- significant signs of active maintenance.
-
- You can become the Current Maintainer of the Work by agreement with
- any existing Current Maintainer to take over this role.
-
- If the Work is unmaintained, you can become the Current Maintainer of
- the Work through the following steps:
-
- 1. Make a reasonable attempt to trace the Current Maintainer (and
- the Copyright Holder, if the two differ) through the means of
- an Internet or similar search.
-
- 2. If this search is successful, then enquire whether the Work
- is still maintained.
-
- a. If it is being maintained, then ask the Current Maintainer
- to update their communication data within one month.
-
- b. If the search is unsuccessful or no action to resume active
- maintenance is taken by the Current Maintainer, then announce
- within the pertinent community your intention to take over
- maintenance. (If the Work is a LaTeX work, this could be
- done, for example, by posting to comp.text.tex.)
-
- 3a. If the Current Maintainer is reachable and agrees to pass
- maintenance of the Work to you, then this takes effect
- immediately upon announcement.
-
- b. If the Current Maintainer is not reachable and the Copyright
- Holder agrees that maintenance of the Work be passed to you,
- then this takes effect immediately upon announcement.
-
- 4. If you make an `intention announcement' as described in 2b. above
- and after three months your intention is challenged neither by
- the Current Maintainer nor by the Copyright Holder nor by other
- people, then you may arrange for the Work to be changed so as
- to name you as the (new) Current Maintainer.
-
- 5. If the previously unreachable Current Maintainer becomes
- reachable once more within three months of a change completed
- under the terms of 3b) or 4), then that Current Maintainer must
- become or remain the Current Maintainer upon request provided
- they then update their communication data within one month.
-
- A change in the Current Maintainer does not, of itself, alter the fact
- that the Work is distributed under the LPPL license.
-
- If you become the Current Maintainer of the Work, you should
- immediately provide, within the Work, a prominent and unambiguous
- statement of your status as Current Maintainer. You should also
- announce your new status to the same pertinent community as
- in 2b) above.
-
-
- WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE
- ======================================================
-
- This section contains important instructions, examples, and
- recommendations for authors who are considering distributing their
- works under this license. These authors are addressed as `you' in
- this section.
-
- Choosing This License or Another License
- ----------------------------------------
-
- If for any part of your work you want or need to use *distribution*
- conditions that differ significantly from those in this license, then
- do not refer to this license anywhere in your work but, instead,
- distribute your work under a different license. You may use the text
- of this license as a model for your own license, but your license
- should not refer to the LPPL or otherwise give the impression that
- your work is distributed under the LPPL.
-
- The document `modguide.tex' in the base LaTeX distribution explains
- the motivation behind the conditions of this license. It explains,
- for example, why distributing LaTeX under the GNU General Public
- License (GPL) was considered inappropriate. Even if your work is
- unrelated to LaTeX, the discussion in `modguide.tex' may still be
- relevant, and authors intending to distribute their works under any
- license are encouraged to read it.
-
- A Recommendation on Modification Without Distribution
- -----------------------------------------------------
-
- It is wise never to modify a component of the Work, even for your own
- personal use, without also meeting the above conditions for
- distributing the modified component. While you might intend that such
- modifications will never be distributed, often this will happen by
- accident -- you may forget that you have modified that component; or
- it may not occur to you when allowing others to access the modified
- version that you are thus distributing it and violating the conditions
- of this license in ways that could have legal implications and, worse,
- cause problems for the community. It is therefore usually in your
- best interest to keep your copy of the Work identical with the public
- one. Many works provide ways to control the behavior of that work
- without altering any of its licensed components.
-
- How to Use This License
- -----------------------
-
- To use this license, place in each of the components of your work both
- an explicit copyright notice including your name and the year the work
- was authored and/or last substantially modified. Include also a
- statement that the distribution and/or modification of that
- component is constrained by the conditions in this license.
-
- Here is an example of such a notice and statement:
-
- %% pig.dtx
- %% Copyright 2005 M. Y. Name
- %
- % This work may be distributed and/or modified under the
- % conditions of the LaTeX Project Public License, either version 1.3
- % of this license or (at your option) any later version.
- % The latest version of this license is in
- % http://www.latex-project.org/lppl.txt
- % and version 1.3 or later is part of all distributions of LaTeX
- % version 2005/12/01 or later.
- %
- % This work has the LPPL maintenance status `maintained'.
- %
- % The Current Maintainer of this work is M. Y. Name.
- %
- % This work consists of the files pig.dtx and pig.ins
- % and the derived file pig.sty.
-
- Given such a notice and statement in a file, the conditions
- given in this license document would apply, with the `Work' referring
- to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being
- generated from `pig.dtx' using `pig.ins'), the `Base Interpreter'
- referring to any `LaTeX-Format', and both `Copyright Holder' and
- `Current Maintainer' referring to the person `M. Y. Name'.
-
- If you do not want the Maintenance section of LPPL to apply to your
- Work, change `maintained' above into `author-maintained'.
- However, we recommend that you use `maintained', as the Maintenance
- section was added in order to ensure that your Work remains useful to
- the community even when you can no longer maintain and support it
- yourself.
-
- Derived Works That Are Not Replacements
- ---------------------------------------
-
- Several clauses of the LPPL specify means to provide reliability and
- stability for the user community. They therefore concern themselves
- with the case that a Derived Work is intended to be used as a
- (compatible or incompatible) replacement of the original Work. If
- this is not the case (e.g., if a few lines of code are reused for a
- completely different task), then clauses 6b and 6d shall not apply.
-
-
- Important Recommendations
- -------------------------
-
- Defining What Constitutes the Work
-
- The LPPL requires that distributions of the Work contain all the
- files of the Work. It is therefore important that you provide a
- way for the licensee to determine which files constitute the Work.
- This could, for example, be achieved by explicitly listing all the
- files of the Work near the copyright notice of each file or by
- using a line such as:
-
- % This work consists of all files listed in manifest.txt.
-
- in that place. In the absence of an unequivocal list it might be
- impossible for the licensee to determine what is considered by you
- to comprise the Work and, in such a case, the licensee would be
- entitled to make reasonable conjectures as to which files comprise
- the Work.
-
Files: debian/*
-
-The Debian packaging is (C) 2008, Tim Abbott <tabbott at mit.edu> and
-is licensed under the GPL, see `/usr/share/common-licenses/GPL'.
+Copyright:
+ 2014 Jerome Benoit <calculus at rezozer.net>
+ 2008 Tim Abbott <tabbott at mit.edu>
+License: GPL-3+
+Comment:
+ This package was originally debianized by Tim Abbott <tabbott at mit.edu>.
+
+License: BSD-3-clause
+ All rights reserved.
+ .
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ 3. The name of the author may not be used to endorse or promote products
+ derived from this software without specific prior written permission.
+ .
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+
+License: LPPL-1.0+
+ This program can redistributed and/or modified under the terms
+ of the LaTeX Project Public License Distributed from CTAN
+ archives in directory macros/latex/base/lppl.txt; either
+ version 1 of the License, or (at your option) any later version.
+ .
+ You should have received a copy of the LaTeX Project Public License
+ along with this package. If not, see
+ <http://www.latex-project.org/lppl/lppl-1-0.txt>.
+
+License: GPL-3+
+ This package 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 3 of the License, or
+ (at your option) any later version.
+ .
+ This package 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, see <http://www.gnu.org/licenses/>.
+ .
+ On Debian systems, the complete text of the GNU General Public License
+ version 3 can be found in "/usr/share/common-licenses/GPL-3".
diff --git a/debian/libtachyon-0.99.install b/debian/libtachyon-0.99.install
deleted file mode 100644
index 96acadb..0000000
--- a/debian/libtachyon-0.99.install
+++ /dev/null
@@ -1 +0,0 @@
-compile/*/libtachyon-*.so usr/lib
diff --git a/debian/libtachyon-dev-common.install b/debian/libtachyon-dev-common.install
new file mode 100644
index 0000000..345e110
--- /dev/null
+++ b/debian/libtachyon-dev-common.install
@@ -0,0 +1 @@
+usr/include/tachyon.h
diff --git a/debian/libtachyon-dev.install b/debian/libtachyon-dev.install
deleted file mode 100644
index 0cf7f3f..0000000
--- a/debian/libtachyon-dev.install
+++ /dev/null
@@ -1,3 +0,0 @@
-compile/*/libtachyon.a usr/lib
-src/*.h usr/include/tachyon
-compile/*/libtachyon.so usr/lib
diff --git a/debian/patches/architecture.patch b/debian/patches/architecture.patch
deleted file mode 100644
index 3d09866..0000000
--- a/debian/patches/architecture.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Index: tachyon-0.98~beta.dfsg/unix/Make-arch
-===================================================================
---- tachyon-0.98~beta.dfsg.orig/unix/Make-arch 2008-06-20 11:17:43.000000000 -0400
-+++ tachyon-0.98~beta.dfsg/unix/Make-arch 2008-06-20 11:18:25.000000000 -0400
-@@ -1135,6 +1135,18 @@
- "RANLIB = ranlib" \
- "LIBS = -L. -ltachyon $(MISCLIB) -lm -lpthread"
-
-+# Linux using gcc, with threads
-+linux-base-thr:
-+ $(MAKE) all \
-+ "ARCH = linux-base-thr" \
-+ "CC = gcc" \
-+ "CFLAGS = -Wall -O6 -fomit-frame-pointer -ffast-math -DLinux -DTHR -D_REENTRANT $(MISCFLAGS)" \
-+ "AR = ar" \
-+ "ARFLAGS = r" \
-+ "STRIP = strip" \
-+ "RANLIB = ranlib" \
-+ "LIBS = -L. -ltachyon $(MISCLIB) -lm -lpthread"
-+
- # Linux x86 using gcc, threads, and OpenGL
- linux-thr-ogl:
- $(MAKE) all \
diff --git a/debian/patches/debianization-documentation.patch b/debian/patches/debianization-documentation.patch
new file mode 100644
index 0000000..2d64836
--- /dev/null
+++ b/debian/patches/debianization-documentation.patch
@@ -0,0 +1,327 @@
+Description: debianization -- documentation
+ Address Debian Policy requirements for documentation;
+ and silence the composition machinery.
+ This is a Debian centric patch.
+Origin: debian
+Author: Jerome Benoit <calculus at rezozer.net>
+Last-Update: 2014-11-06
+
+--- a/docs/Makefile
++++ b/docs/Makefile
+@@ -4,32 +4,39 @@
+
+ TOPSRCDIR?=..
+ PKGDOCDIR?=/usr/share/doc/tachyon
++PKGEXAMPLESDIR?=$(PKGDOCDIR)/examples
+
+-LATEX=latex
+-DVIPS=dvips
+ LATEX2HTML=latex2html
+-PDFLATEX=pdflatex
+-MAKEINDEX=makeindex
++PDFLATEX=pdflatex -no-shell-escape -interaction=batchmode
++MAKEINDEX=makeindex -q
+
+ default:
+ @echo "Select documentation to build:"
+ @echo "------------------------------"
+ @echo " all - All supported file formats"
+ @echo "html - HTML"
+- @echo " ps - Adobe PostScript"
+ @echo " pdf - Adobe PDF "
+
+-all: html ps pdf
+-
+-ps: tachyon.ps
++all: html pdf
+
+ pdf: tachyon.pdf
+
+ html: tachyon/tachyon.html
+
+-tachyon/tachyon.html :
++listof_demo_SOURCES = \
++ glwin.h glwin.c \
++ mainanim.c \
++ animspheres.c \
++ animspheres2.c \
++ hypertex.c \
++ fire.c \
++ animskull.c \
++ tgatoyuv.c
++
++tachyon/tachyon.html : tachyon.pdf
+ rm -rf tachyon
+ $(LATEX2HTML) \
++ -verbosity 2 \
+ -local_icons \
+ -split 5 \
+ -toc_depth 4 \
+@@ -38,19 +45,8 @@
+ -address "john.stone at gmail.com" \
+ -up_url "http://www.photonlimited.com/" \
+ -up_title "photonlimited.com, home of Tachyon" \
+- tachyon
+-
+-tachyon.ps : tachyon.dvi
+- $(DVIPS) tachyon.dvi -o tachyon.ps
+-
+-tachyon.dvi :
+- $(LATEX) tachyon
+- $(MAKEINDEX) tachyon
+- $(LATEX) tachyon
+- $(MAKEINDEX) tachyon
+- $(LATEX) tachyon
+- $(MAKEINDEX) tachyon
+- $(LATEX) tachyon
++ -info 0 \
++ tachyon 1> tachyon.html.log 2>&1
+
+ tachyon.pdf :
+ $(PDFLATEX) tachyon
+@@ -62,11 +58,10 @@
+ $(PDFLATEX) tachyon
+
+ clean :
+- -rm -f *.aux *.dvi *.idx *.lof *.log *.lot *.pdf *.ps *.toc *.ilg *.ind
++ -rm -f *.aux *.idx *.lof *.log *.lot *.pdf *.toc *.ilg *.ind
++ -rm tachyon.html.log
+
+ distclean: clean
+- -rm tachyon.dvi
+- -rm tachyon.ps
+ -rm tachyon.pdf
+ -rm -rf tachyon
+
+@@ -75,5 +70,17 @@
+ install: all
+ mkdir -p $(DESTDIR)$(PKGDOCDIR)
+ mkdir -p $(DESTDIR)$(PKGDOCDIR)/html
+- cp -t $(DESTDIR)$(PKGDOCDIR) tachyon.dvi tachyon.ps tachyon.pdf
+- cp -t $(DESTDIR)$(PKGDOCDIR)/html tachyon/tachyon.css tachyon/*.html tachyon/*.png
++ mkdir -p $(DESTDIR)$(PKGEXAMPLESDIR)
++ mkdir -p $(DESTDIR)$(PKGEXAMPLESDIR)/scenes
++ mkdir -p $(DESTDIR)$(PKGEXAMPLESDIR)/demosrc
++ cp -p $(TOPSRCDIR)/unix/README $(DESTDIR)$(PKGDOCDIR)/README.unix
++ cp -p -t $(DESTDIR)$(PKGDOCDIR) tachyon.pdf
++ cp -p -t $(DESTDIR)$(PKGDOCDIR)/html tachyon/tachyon.css tachyon/*.html tachyon/*.png
++ cp -pr -t $(DESTDIR)$(PKGEXAMPLESDIR)/scenes $(TOPSRCDIR)/scenes/*
++ cp -p -t $(DESTDIR)$(PKGEXAMPLESDIR)/demosrc $(addprefix $(TOPSRCDIR)/demosrc/, $(listof_demo_SOURCES))
++ cp -p -t $(DESTDIR)$(PKGEXAMPLESDIR)/scenes $(TOPSRCDIR)/debian/adhoc/scenes/action.sh
++ cp -p -t $(DESTDIR)$(PKGEXAMPLESDIR)/demosrc $(TOPSRCDIR)/debian/adhoc/demosrc/Makefile
++ rdfind -outputname /dev/null -removeidentinode false -makesymlinks true $(DESTDIR)$(PKGDOCDIR)/html
++ symlinks -r -c -s -v $(DESTDIR)$(PKGDOCDIR)/html
++ rdfind -outputname /dev/null -removeidentinode false -makesymlinks true $(DESTDIR)$(PKGEXAMPLESDIR)/scenes
++ symlinks -r -c -s -v $(DESTDIR)$(PKGEXAMPLESDIR)/scenes
+--- /dev/null
++++ b/pkgextra/volpack/data/Makefile
+@@ -0,0 +1,35 @@
++TOPSRCDIR?=../../..
++PKGDOCDIR?=/usr/share/doc/tachyon
++PKGEXAMPLESDIR?=$(PKGDOCDIR)/examples
++
++CFLAGS += -Wall -Wno-unused-result
++
++listof_DATA = \
++ engine/engine.den \
++ brain/brain.den
++
++default:
++
++den2raw: den2raw.c denfile.c
++ $(CC) $(CPPFLAGS) $(CFLAGS) -o $@ $^
++
++clean:
++
++distclean: clean
++ rm -f den2raw
++ rm -f $(listof_DATA)
++
++check:
++
++install: den2raw $(listof_DATA)
++ mkdir -p $(DESTDIR)$(PKGDOCDIR)
++ mkdir -p $(DESTDIR)$(PKGEXAMPLESDIR)
++ mkdir -p $(DESTDIR)$(PKGEXAMPLESDIR)/scenes
++ mkdir -p $(DESTDIR)$(PKGEXAMPLESDIR)/scenes/vol
++ for d in $(listof_DATA); do \
++ r=$${d##*/} ; r=$${r%.den}.XXX ; \
++ ./den2raw $$d $(DESTDIR)$(PKGEXAMPLESDIR)/scenes/vol/$$r ; \
++ done
++
++% : %.Z
++ gzip --decompress --to-stdout $< > $@
+--- a/pkgextra/volpack/data/denfile.c
++++ b/pkgextra/volpack/data/denfile.c
+@@ -5,6 +5,9 @@
+ * See the file dencopy.c for sample usage.
+ */
+
++#include <stdlib.h>
++#include <fcntl.h>
++#include <unistd.h>
+ #include <stdio.h>
+
+ #ifndef MIN
+@@ -17,6 +20,11 @@
+
+ #define MAX_READ_SIZE 8192 /* maximum # of bytes per read(2) call */
+
++int read_bytes();
++int read_shorts();
++int read_words();
++int write_bytes();
++
+ /*
+ * read_den
+ *
+@@ -200,6 +208,40 @@
+ }
+
+ /*
++ * write_raw
++ *
++ * Write an array of volume data to a .raw file. Return 1 on success,
++ * 0 on failure.
++ */
++
++int
++write_raw(filename, data, xlen, ylen, zlen)
++char *filename; /* name of file to create */
++unsigned char *data; /* volume data */
++int xlen, ylen, zlen; /* volume dimensions */
++{
++ int fd; /* file descriptor */
++ int map_length; /* Total number of densities in map */
++ /* (= product of lens) */
++
++ /* open file */
++ if ((fd = creat(filename, 0644)) < 0) {
++ fprintf(stderr, "cannot open file %s\n", filename);
++ return(0);
++ }
++
++ /* write the header */
++ map_length = xlen * ylen * zlen;
++ if (!write_bytes(fd, (char *)data, map_length)) {
++ close(fd);
++ fprintf(stderr, "cannot write to file %s\n", filename);
++ return(0);
++ }
++ close(fd);
++ return(1);
++}
++
++/*
+ * read_bytes
+ *
+ * Read data from a file. The data is assumed to be a sequence of bytes,
+@@ -210,6 +252,7 @@
+ * error or the full number of bytes could not be read.
+ */
+
++int
+ read_bytes(fd, buf, bytecount)
+ int fd; /* file descriptor to read from */
+ char *buf; /* memory in which to store data */
+@@ -238,6 +281,7 @@
+ * error or the full number of shorts could not be read.
+ */
+
++int
+ read_shorts(fd, sbuf, shortcount, swap)
+ int fd; /* file descriptor to read from */
+ short *sbuf; /* memory in which to store data */
+@@ -286,6 +330,7 @@
+ * error or the full number of words could not be read.
+ */
+
++int
+ read_words(fd, wbuf, wordcount, swap)
+ int fd; /* file descriptor to read from */
+ int *wbuf; /* memory in which to store data */
+@@ -334,6 +379,7 @@
+ * Return value is 1 if the write was succesful or 0 if there was an error.
+ */
+
++int
+ write_bytes(fd, buf, bytecount)
+ int fd; /* file descriptor to write to */
+ char *buf; /* memory containing data */
+--- /dev/null
++++ b/pkgextra/volpack/data/den2raw.c
+@@ -0,0 +1,43 @@
++/*
++ * den2raw.c
++ *
++ * Convert a density file to a raw file. The destination file is in the native byte ordering,
++ * even if the source file is not.
++ *
++ * Usage: den2raw src.den dst.raw
++ * Compilation: cc -o den2raw den2raw.c denfile.c
++ */
++
++#define _GNU_SOURCE
++#include <stdlib.h>
++#include <stdio.h>
++#include <string.h>
++
++int main(int argc, char *argv[]) {
++ unsigned char *data, *read_den(), write_raw();
++ int xlen, ylen, zlen;
++ char *rawfilename;
++ size_t rawfilenamelen;
++
++ if (argc != 3) {
++ fprintf(stderr, "Usage: dencopy src.den dst.raw\n");
++ exit(1);
++ }
++ if ((data = read_den(argv[1], &xlen, &ylen, &zlen)) == NULL) {
++ fprintf(stderr, "den2raw: read failed\n");
++ exit(1);
++ }
++ rawfilenamelen=strlen(argv[2]);
++ if ((3 < rawfilenamelen) && !(strcasecmp(argv[2]+rawfilenamelen-4, ".XXX"))) {
++ asprintf(&rawfilename,"%sXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXX", argv[2]);
++ sprintf(rawfilename+rawfilenamelen-3, "%dx%dx%d", xlen, ylen, zlen);
++ }
++ else {
++ asprintf(&rawfilename,"%s", argv[2]);
++ }
++ if (!write_raw(rawfilename, data, xlen, ylen, zlen)) {
++ fprintf(stderr, "den2raw: write failed\n");
++ exit(1);
++ }
++ free(rawfilename);
++ return(0); }
+--- /dev/null
++++ b/pkgextra/virtual-reality/graphics/Makefile
+@@ -0,0 +1,28 @@
++TOPSRCDIR?=../../..
++PKGDOCDIR?=/usr/share/doc/tachyon
++PKGEXAMPLESDIR?=$(PKGDOCDIR)/examples
++
++listof_DATA_Z = \
++ $(wildcard objects/tpoly/*.tpoly.Z)
++
++listof_DATA = \
++ $(patsubst %.Z,%, $(listof_DATA_Z))
++
++default:
++
++clean:
++
++distclean: clean
++ rm -f $(listof_DATA)
++
++check:
++
++install: $(listof_DATA)
++ mkdir -p $(DESTDIR)$(PKGDOCDIR)
++ mkdir -p $(DESTDIR)$(PKGEXAMPLESDIR)
++ mkdir -p $(DESTDIR)$(PKGEXAMPLESDIR)/scenes
++ mkdir -p $(DESTDIR)$(PKGEXAMPLESDIR)/scenes/tpoly
++ cp -p -t $(DESTDIR)$(PKGEXAMPLESDIR)/scenes/tpoly $(listof_DATA)
++
++% : %.Z
++ gzip --decompress --to-stdout $< > $@
diff --git a/debian/patches/debianization.patch b/debian/patches/debianization.patch
new file mode 100644
index 0000000..9e69117
--- /dev/null
+++ b/debian/patches/debianization.patch
@@ -0,0 +1,119 @@
+Description: debianization
+ Meant to maintain a minimal debian/rules, to fix warnings,
+ to address Debian specific stuff in general.
+ This is a Debian centric patch.
+Origin: debian
+Author: Jerome Benoit <calculus at rezozer.net>
+Last-Update: 2014-10-20
+
+--- a/demosrc/Makefile.am
++++ b/demosrc/Makefile.am
+@@ -6,7 +6,7 @@
+ endif
+
+
+-AM_CFLAGS =
++AM_CFLAGS = -Wno-unused-result
+
+ tachyon_SOURCES = \
+ main.c \
+@@ -27,6 +27,7 @@
+
+ AM_H2MFLAGS = \
+ --manual='Tachyon Manual' \
++ --source='Tachyon (Debian $(DEB_PKG_VERSION))' \
+ --help-option='-help' \
+ --version-option='-version' \
+ --no-info \
+@@ -36,7 +37,7 @@
+ $(HELP2MAN) \
+ -s 1 \
+ $(AM_H2MFLAGS) \
+- -I $(top_srcdir)/demosrc/man/$*.h2m \
++ -I $(top_srcdir)/debian/man/$*.h2m \
+ -n $(if $($(subst -,_,$*)_DESCRIPTION), $($(subst -,_,$*)_DESCRIPTION), "manual page for $*") \
+ -o $@ \
+ $(top_builddir)/demosrc/$<
+--- a/docs/Makefile
++++ b/docs/Makefile
+@@ -2,6 +2,9 @@
+ # Makefile for Tachyon documentation
+ #
+
++TOPSRCDIR?=..
++PKGDOCDIR?=/usr/share/doc/tachyon
++
+ LATEX=latex
+ DVIPS=dvips
+ LATEX2HTML=latex2html
+@@ -16,15 +19,15 @@
+ @echo " ps - Adobe PostScript"
+ @echo " pdf - Adobe PDF "
+
+-all: tachyon.html tachyon.ps tachyon.pdf
++all: html ps pdf
+
+ ps: tachyon.ps
+
+ pdf: tachyon.pdf
+
+-html: tachyon.html
++html: tachyon/tachyon.html
+
+-tachyon.html :
++tachyon/tachyon.html :
+ rm -rf tachyon
+ $(LATEX2HTML) \
+ -local_icons \
+@@ -59,7 +62,18 @@
+ $(PDFLATEX) tachyon
+
+ clean :
+- rm -f *.aux *.dvi *.idx *.lof *.log *.lot *.pdf *.ps *.toc *.ilg *.ind
+-
+-
++ -rm -f *.aux *.dvi *.idx *.lof *.log *.lot *.pdf *.ps *.toc *.ilg *.ind
+
++distclean: clean
++ -rm tachyon.dvi
++ -rm tachyon.ps
++ -rm tachyon.pdf
++ -rm -rf tachyon
++
++check:
++
++install: all
++ mkdir -p $(DESTDIR)$(PKGDOCDIR)
++ mkdir -p $(DESTDIR)$(PKGDOCDIR)/html
++ cp -t $(DESTDIR)$(PKGDOCDIR) tachyon.dvi tachyon.ps tachyon.pdf
++ cp -t $(DESTDIR)$(PKGDOCDIR)/html tachyon/tachyon.css tachyon/*.html tachyon/*.png
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -7,6 +7,10 @@
+
+ AM_CFLAGS = -g -Wall
+
+-SUBDIRS = src demosrc docs
++SUBDIRS = src
++
++if LIBFLAVOUR_IS_SERIAL
++SUBDIRS += demosrc
++endif
+
+ EXTRA_DIST =
+--- a/configure.ac
++++ b/configure.ac
+@@ -54,10 +54,11 @@
+ ## PNG library
+ PKG_CHECK_MODULES([LIBPNG],[libpng],[CPPFLAGS="$CPPFLAGS -DUSEPNG"],[AC_MSG_ERROR([unable to find libpng])])
+ ## OpenGL
+-AC_PATH_X
+-AC_PATH_XTRA
++####AC_PATH_X
++####AC_PATH_XTRA
+ AX_CHECK_GL
+ AS_IF([test "x$no_gl" != "xyes"],[],[AC_MSG_ERROR([unable to find an OpenGL implementation])])
++X_LIBS="-lX11"
+
+ dnl Checks for header files.
+ AC_CHECK_HEADERS([fcntl.h stdlib.h string.h sys/time.h unistd.h])
diff --git a/debian/patches/enable-png.patch b/debian/patches/enable-png.patch
deleted file mode 100644
index 42bb0e5..0000000
--- a/debian/patches/enable-png.patch
+++ /dev/null
@@ -1,21 +0,0 @@
---- tachyon/unix/Make-config 2007-01-24 03:35:44.000000000 -0500
-+++ tachyon-0.98~beta/unix/Make-config 2007-05-06 00:55:52.000000000 -0400
-@@ -127,15 +127,9 @@
- # LibPNG can be downlaoded from:
- # http://www.libpng.org/
- ##########################################################################
--# Uncomment the following lines to disable PNG support
--USEPNG=
--PNGINC=
--PNGLIB=
--
--# Uncomment the following lines to enable PNG support
--#USEPNG= -DUSEPNG
--#PNGINC= -I/usr/local/include
--#PNGLIB= -L/usr/local/lib -lpng -lz
-+USEPNG= -DUSEPNG
-+PNGINC= -I$(SAGE_LOCAL)/include
-+PNGLIB= -L$(SAGE_LOCAL)/lib -lpng -lz
-
-
- ##########################################################################
diff --git a/debian/patches/kfreebsd_error_timezone.patch b/debian/patches/kfreebsd_error_timezone.patch
deleted file mode 100644
index d48f300..0000000
--- a/debian/patches/kfreebsd_error_timezone.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-Index: tachyon-0.99~b2/src/util.c
-===================================================================
---- tachyon-0.99~b2.orig/src/util.c 2011-04-21 23:42:47.137582297 +0200
-+++ tachyon-0.99~b2/src/util.c 2011-04-21 23:43:11.201701618 +0200
-@@ -11,6 +11,7 @@
-
- #include <sys/types.h>
- #include <sys/stat.h>
-+#include <sys/time.h> /* for struct timezone on kfreebsd */
- #include <fcntl.h>
-
- #define TACHYON_INTERNAL 1
diff --git a/debian/patches/series b/debian/patches/series
index 091b122..3930c31 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,4 +1,11 @@
-kfreebsd_error_timezone.patch
-shared-library.patch
-enable-png.patch
-architecture.patch
+upstream-pthreads.patch
+upstream-parse-tpoly.patch
+upstream-opengl.patch
+upstream-C2help2man.patch
+upstream-demosrc-samples.patch
+upstream-rationalization-cleanup.patch
+upstream-rationalization-one_header.patch
+upstream-rationalization-version_script.patch
+upstream-rationalization-autotools.patch
+debianization.patch
+debianization-documentation.patch
diff --git a/debian/patches/shared-library.patch b/debian/patches/shared-library.patch
deleted file mode 100644
index a2f1092..0000000
--- a/debian/patches/shared-library.patch
+++ /dev/null
@@ -1,190 +0,0 @@
-Index: src/unix/Makefile
-===================================================================
---- src.orig/unix/Makefile 2008-05-25 17:58:01.000000000 -0400
-+++ src/unix/Makefile 2008-05-25 17:59:05.000000000 -0400
-@@ -23,6 +23,7 @@
- # Name of raytracing library file to create
- #
- RAYLIB=${ARCHDIR}/libtachyon.a
-+RAYSHLIB=${ARCHDIR}/libtachyon.so
- RAYLIBDIR=${ARCHDIR}
-
- #
-@@ -71,7 +72,7 @@
- # No test programs included..
- #
- BINARIES = ${COMPILEDIR} ${ARCHDIR} ${OBJDIR} ${PARSEDIRS} \
-- ${RAYLIB} ${PARSELIB} ${ARCHDIR}/tachyon
-+ ${RAYLIB} ${PARSELIB} ${ARCHDIR}/tachyon ${RAYSHLIB}
-
-
- #----------------------------------------------------------------------
-@@ -259,119 +260,130 @@
- ${AR} ${ARFLAGS} ${RAYLIB} ${RAYOBJS}
- ${RANLIB} ${RAYLIB}
-
-+shobj : ${RAYOBJS}
-+shobj : FPICFLAG = -fPIC
-+
-+${RAYSHLIB} : VERSION=$(shell grep TACHYON_VERSION_STRING ../src/tachyon.h | cut -d\" -f 2)
-+${RAYSHLIB} : DIRNAME=tachyon-${VERSION}
-+${RAYSHLIB} :
-+ -rm -f ${RAYOBJS}
-+ make shobj
-+ ${CC} -fPIC -shared -Wl,-soname,lib${DIRNAME}.so -o ${RAYLIBDIR}/lib${DIRNAME}.so ${CFLAGS} -lpng -lm -lpthread ${RAYOBJS}
-+ ln -s lib${DIRNAME}.so $@
-+
- ${OBJDIR}/vol.o : ${SRCDIR}/vol.c ${OBJDEPS}
-- ${CC} ${CFLAGS} -c ${SRCDIR}/vol.c -o ${OBJDIR}/vol.o
-+ ${CC} ${CFLAGS} ${FPICFLAG} -c ${SRCDIR}/vol.c -o ${OBJDIR}/vol.o
-
- ${OBJDIR}/extvol.o : ${SRCDIR}/extvol.c ${OBJDEPS}
-- ${CC} ${CFLAGS} -c ${SRCDIR}/extvol.c -o ${OBJDIR}/extvol.o
-+ ${CC} ${CFLAGS} ${FPICFLAG} -c ${SRCDIR}/extvol.c -o ${OBJDIR}/extvol.o
-
- ${OBJDIR}/winbmp.o : ${SRCDIR}/winbmp.c ${OBJDEPS}
-- ${CC} ${CFLAGS} -c ${SRCDIR}/winbmp.c -o ${OBJDIR}/winbmp.o
-+ ${CC} ${CFLAGS} ${FPICFLAG} -c ${SRCDIR}/winbmp.c -o ${OBJDIR}/winbmp.o
-
- ${OBJDIR}/vector.o : ${SRCDIR}/vector.c ${OBJDEPS}
-- ${CC} ${CFLAGS} -c ${SRCDIR}/vector.c -o ${OBJDIR}/vector.o
-+ ${CC} ${CFLAGS} ${FPICFLAG} -c ${SRCDIR}/vector.c -o ${OBJDIR}/vector.o
-
- ${OBJDIR}/triangle.o : ${SRCDIR}/triangle.c ${OBJDEPS} ${SRCDIR}/triangle.h
-- ${CC} ${CFLAGS} -c ${SRCDIR}/triangle.c -o ${OBJDIR}/triangle.o
-+ ${CC} ${CFLAGS} ${FPICFLAG} -c ${SRCDIR}/triangle.c -o ${OBJDIR}/triangle.o
-
- ${OBJDIR}/trace.o : ${SRCDIR}/trace.c ${OBJDEPS}
-- ${CC} ${CFLAGS} -c ${SRCDIR}/trace.c -o ${OBJDIR}/trace.o
-+ ${CC} ${CFLAGS} ${FPICFLAG} -c ${SRCDIR}/trace.c -o ${OBJDIR}/trace.o
-
- ${OBJDIR}/threads.o : ${SRCDIR}/threads.c ${OBJDEPS}
-- ${CC} ${CFLAGS} -c ${SRCDIR}/threads.c -o ${OBJDIR}/threads.o
-+ ${CC} ${CFLAGS} ${FPICFLAG} -c ${SRCDIR}/threads.c -o ${OBJDIR}/threads.o
-
- ${OBJDIR}/tgafile.o : ${SRCDIR}/tgafile.c ${OBJDEPS}
-- ${CC} ${CFLAGS} -c ${SRCDIR}/tgafile.c -o ${OBJDIR}/tgafile.o
-+ ${CC} ${CFLAGS} ${FPICFLAG} -c ${SRCDIR}/tgafile.c -o ${OBJDIR}/tgafile.o
-
- ${OBJDIR}/util.o : ${SRCDIR}/util.c ${OBJDEPS}
-- ${CC} ${CFLAGS} -c ${SRCDIR}/util.c -o ${OBJDIR}/util.o
-+ ${CC} ${CFLAGS} ${FPICFLAG} -c ${SRCDIR}/util.c -o ${OBJDIR}/util.o
-
- ${OBJDIR}/ui.o : ${SRCDIR}/ui.c ${OBJDEPS}
-- ${CC} ${CFLAGS} -c ${SRCDIR}/ui.c -o ${OBJDIR}/ui.o
-+ ${CC} ${CFLAGS} ${FPICFLAG} -c ${SRCDIR}/ui.c -o ${OBJDIR}/ui.o
-
- ${OBJDIR}/texture.o : ${SRCDIR}/texture.c ${OBJDEPS}
-- ${CC} ${CFLAGS} -c ${SRCDIR}/texture.c -o ${OBJDIR}/texture.o
-+ ${CC} ${CFLAGS} ${FPICFLAG} -c ${SRCDIR}/texture.c -o ${OBJDIR}/texture.o
-
- ${OBJDIR}/sphere.o : ${SRCDIR}/sphere.c ${OBJDEPS} ${SRCDIR}/sphere.h
-- ${CC} ${CFLAGS} -c ${SRCDIR}/sphere.c -o ${OBJDIR}/sphere.o
-+ ${CC} ${CFLAGS} ${FPICFLAG} -c ${SRCDIR}/sphere.c -o ${OBJDIR}/sphere.o
-
- ${OBJDIR}/sgirgb.o : ${SRCDIR}/sgirgb.c ${OBJDEPS}
-- ${CC} ${CFLAGS} -c ${SRCDIR}/sgirgb.c -o ${OBJDIR}/sgirgb.o
-+ ${CC} ${CFLAGS} ${FPICFLAG} -c ${SRCDIR}/sgirgb.c -o ${OBJDIR}/sgirgb.o
-
- ${OBJDIR}/shade.o : ${SRCDIR}/shade.c ${OBJDEPS}
-- ${CC} ${CFLAGS} -c ${SRCDIR}/shade.c -o ${OBJDIR}/shade.o
-+ ${CC} ${CFLAGS} ${FPICFLAG} -c ${SRCDIR}/shade.c -o ${OBJDIR}/shade.o
-
- ${OBJDIR}/ring.o : ${SRCDIR}/ring.c ${OBJDEPS}
-- ${CC} ${CFLAGS} -c ${SRCDIR}/ring.c -o ${OBJDIR}/ring.o
-+ ${CC} ${CFLAGS} ${FPICFLAG} -c ${SRCDIR}/ring.c -o ${OBJDIR}/ring.o
-
- ${OBJDIR}/render.o : ${SRCDIR}/render.c ${OBJDEPS}
-- ${CC} ${CFLAGS} -c ${SRCDIR}/render.c -o ${OBJDIR}/render.o
-+ ${CC} ${CFLAGS} ${FPICFLAG} -c ${SRCDIR}/render.c -o ${OBJDIR}/render.o
-
- ${OBJDIR}/quadric.o : ${SRCDIR}/quadric.c ${OBJDEPS}
-- ${CC} ${CFLAGS} -c ${SRCDIR}/quadric.c -o ${OBJDIR}/quadric.o
-+ ${CC} ${CFLAGS} ${FPICFLAG} -c ${SRCDIR}/quadric.c -o ${OBJDIR}/quadric.o
-
- ${OBJDIR}/jpeg.o : ${SRCDIR}/jpeg.c ${OBJDEPS}
-- ${CC} ${CFLAGS} -c ${SRCDIR}/jpeg.c -o ${OBJDIR}/jpeg.o
-+ ${CC} ${CFLAGS} ${FPICFLAG} -c ${SRCDIR}/jpeg.c -o ${OBJDIR}/jpeg.o
-
- ${OBJDIR}/pngfile.o : ${SRCDIR}/pngfile.c ${OBJDEPS}
-- ${CC} ${CFLAGS} -c ${SRCDIR}/pngfile.c -o ${OBJDIR}/pngfile.o
-+ ${CC} ${CFLAGS} ${FPICFLAG} -c ${SRCDIR}/pngfile.c -o ${OBJDIR}/pngfile.o
-
- ${OBJDIR}/ppm.o : ${SRCDIR}/ppm.c ${OBJDEPS}
-- ${CC} ${CFLAGS} -c ${SRCDIR}/ppm.c -o ${OBJDIR}/ppm.o
-+ ${CC} ${CFLAGS} ${FPICFLAG} -c ${SRCDIR}/ppm.c -o ${OBJDIR}/ppm.o
-
- ${OBJDIR}/psd.o : ${SRCDIR}/psd.c ${OBJDEPS}
-- ${CC} ${CFLAGS} -c ${SRCDIR}/psd.c -o ${OBJDIR}/psd.o
-+ ${CC} ${CFLAGS} ${FPICFLAG} -c ${SRCDIR}/psd.c -o ${OBJDIR}/psd.o
-
- ${OBJDIR}/plane.o : ${SRCDIR}/plane.c ${OBJDEPS} ${SRCDIR}/plane.h
-- ${CC} ${CFLAGS} -c ${SRCDIR}/plane.c -o ${OBJDIR}/plane.o
-+ ${CC} ${CFLAGS} ${FPICFLAG} -c ${SRCDIR}/plane.c -o ${OBJDIR}/plane.o
-
- ${OBJDIR}/parallel.o : ${SRCDIR}/parallel.c ${OBJDEPS}
-- ${CC} ${CFLAGS} -c ${SRCDIR}/parallel.c -o ${OBJDIR}/parallel.o
-+ ${CC} ${CFLAGS} ${FPICFLAG} -c ${SRCDIR}/parallel.c -o ${OBJDIR}/parallel.o
-
- ${OBJDIR}/objbound.o : ${SRCDIR}/objbound.c ${OBJDEPS}
-- ${CC} ${CFLAGS} -c ${SRCDIR}/objbound.c -o ${OBJDIR}/objbound.o
-+ ${CC} ${CFLAGS} ${FPICFLAG} -c ${SRCDIR}/objbound.c -o ${OBJDIR}/objbound.o
-
- ${OBJDIR}/light.o : ${SRCDIR}/light.c ${OBJDEPS}
-- ${CC} ${CFLAGS} -c ${SRCDIR}/light.c -o ${OBJDIR}/light.o
-+ ${CC} ${CFLAGS} ${FPICFLAG} -c ${SRCDIR}/light.c -o ${OBJDIR}/light.o
-
- ${OBJDIR}/intersect.o : ${SRCDIR}/intersect.c ${OBJDEPS}
-- ${CC} ${CFLAGS} -c ${SRCDIR}/intersect.c -o ${OBJDIR}/intersect.o
-+ ${CC} ${CFLAGS} ${FPICFLAG} -c ${SRCDIR}/intersect.c -o ${OBJDIR}/intersect.o
-
- ${OBJDIR}/imageio.o : ${SRCDIR}/imageio.c ${OBJDEPS}
-- ${CC} ${CFLAGS} -c ${SRCDIR}/imageio.c -o ${OBJDIR}/imageio.o
-+ ${CC} ${CFLAGS} ${FPICFLAG} -c ${SRCDIR}/imageio.c -o ${OBJDIR}/imageio.o
-
- ${OBJDIR}/imap.o : ${SRCDIR}/imap.c ${OBJDEPS}
-- ${CC} ${CFLAGS} -c ${SRCDIR}/imap.c -o ${OBJDIR}/imap.o
-+ ${CC} ${CFLAGS} ${FPICFLAG} -c ${SRCDIR}/imap.c -o ${OBJDIR}/imap.o
-
- ${OBJDIR}/grid.o : ${SRCDIR}/grid.c ${SRCDIR}/grid.h ${OBJDEPS}
-- ${CC} ${CFLAGS} -c ${SRCDIR}/grid.c -o ${OBJDIR}/grid.o
-+ ${CC} ${CFLAGS} ${FPICFLAG} -c ${SRCDIR}/grid.c -o ${OBJDIR}/grid.o
-
- ${OBJDIR}/global.o : ${SRCDIR}/global.c ${OBJDEPS}
-- ${CC} ${CFLAGS} -c ${SRCDIR}/global.c -o ${OBJDIR}/global.o
-+ ${CC} ${CFLAGS} ${FPICFLAG} -c ${SRCDIR}/global.c -o ${OBJDIR}/global.o
-
- ${OBJDIR}/hash.o : ${SRCDIR}/hash.c ${OBJDEPS}
-- ${CC} ${CFLAGS} -c ${SRCDIR}/hash.c -o ${OBJDIR}/hash.o
-+ ${CC} ${CFLAGS} ${FPICFLAG} -c ${SRCDIR}/hash.c -o ${OBJDIR}/hash.o
-
- ${OBJDIR}/cylinder.o : ${SRCDIR}/cylinder.c ${OBJDEPS} ${SRCDIR}/cylinder.h
-- ${CC} ${CFLAGS} -c ${SRCDIR}/cylinder.c -o ${OBJDIR}/cylinder.o
-+ ${CC} ${CFLAGS} ${FPICFLAG} -c ${SRCDIR}/cylinder.c -o ${OBJDIR}/cylinder.o
-
- ${OBJDIR}/coordsys.o : ${SRCDIR}/coordsys.c ${OBJDEPS}
-- ${CC} ${CFLAGS} -c ${SRCDIR}/coordsys.c -o ${OBJDIR}/coordsys.o
-+ ${CC} ${CFLAGS} ${FPICFLAG} -c ${SRCDIR}/coordsys.c -o ${OBJDIR}/coordsys.o
-
- ${OBJDIR}/camera.o : ${SRCDIR}/camera.c ${OBJDEPS}
-- ${CC} ${CFLAGS} -c ${SRCDIR}/camera.c -o ${OBJDIR}/camera.o
-+ ${CC} ${CFLAGS} ${FPICFLAG} -c ${SRCDIR}/camera.c -o ${OBJDIR}/camera.o
-
- ${OBJDIR}/box.o : ${SRCDIR}/box.c ${OBJDEPS}
-- ${CC} ${CFLAGS} -c ${SRCDIR}/box.c -o ${OBJDIR}/box.o
-+ ${CC} ${CFLAGS} ${FPICFLAG} -c ${SRCDIR}/box.c -o ${OBJDIR}/box.o
-
- ${OBJDIR}/bndbox.o : ${SRCDIR}/bndbox.c ${OBJDEPS}
-- ${CC} ${CFLAGS} -c ${SRCDIR}/bndbox.c -o ${OBJDIR}/bndbox.o
-+ ${CC} ${CFLAGS} ${FPICFLAG} -c ${SRCDIR}/bndbox.c -o ${OBJDIR}/bndbox.o
-
- ${OBJDIR}/apigeom.o : ${SRCDIR}/apigeom.c ${OBJDEPS}
-- ${CC} ${CFLAGS} -c ${SRCDIR}/apigeom.c -o ${OBJDIR}/apigeom.o
-+ ${CC} ${CFLAGS} ${FPICFLAG} -c ${SRCDIR}/apigeom.c -o ${OBJDIR}/apigeom.o
-
- ${OBJDIR}/api.o : ${SRCDIR}/api.c ${OBJDEPS} ${SRCDIR}/sphere.h ${SRCDIR}/plane.h ${SRCDIR}/triangle.h ${SRCDIR}/cylinder.h
-- ${CC} ${CFLAGS} -c ${SRCDIR}/api.c -o ${OBJDIR}/api.o
-+ ${CC} ${CFLAGS} ${FPICFLAG} -c ${SRCDIR}/api.c -o ${OBJDIR}/api.o
-
- clean :
- @echo "Cleaning object files, binaries etc."
diff --git a/debian/patches/upstream-C2help2man.patch b/debian/patches/upstream-C2help2man.patch
new file mode 100644
index 0000000..6e06bac
--- /dev/null
+++ b/debian/patches/upstream-C2help2man.patch
@@ -0,0 +1,267 @@
+Description: format usages and helps
+ Attempt to format and harmonize helps of the demonstration programs
+ wrt UN*X customs in view to employ help2man to generate manpages.
+Origin: debian
+Author: Jerome Benoit <calculus at rezozer.net>
+Last-Update: 2014-10-21
+
+--- a/demosrc/getargs.c
++++ b/demosrc/getargs.c
+@@ -6,6 +6,7 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
++#include <libgen.h>
+ #include "tachyon.h"
+ #include "getargs.h"
+ #include "ctype.h"
+@@ -29,34 +30,36 @@
+ }
+
+ static void printusage(char **argv) {
+- printf("Usage: \n");
+- printf(" %s modelfile [options] \n", argv[0]);
++ char *argv0=strdup(argv[0]);
++ char *progname=basename(argv0);
++ printf("Usage: %s modelfile [options] \n", progname);
++ printf("\n");
++ printf("Valid options and accepted formats are as follows (** denotes default behaviour).\n");
+ printf("\n");
+ printf("Model file formats supported:\n");
+- printf(" filename.dat -- The model files originated with this package.\n");
+- printf(" filaname.ac -- AC3D model files.\n");
++ printf(" filename.dat the model files originated with this package\n");
++ printf(" filaname.ac AC3D model files\n");
+ #ifdef USELIBMGF
+- printf(" filaname.mgf -- MGF model files.\n");
++ printf(" filaname.mgf MGF model files.\n");
+ #endif
+- printf(" filename.nff -- The NFF scene format used by Eric Haines' SPD.\n");
++ printf(" filename.nff the NFF scene format used by Eric Haines' SPD\n");
++ printf("\n");
+ printf("\n");
+- printf("Valid options: (** denotes default behaviour)\n");
+- printf("----------------------------------------------\n");
+ printf("Message Options:\n");
+- printf(" +V verbose messages on \n");
+- printf(" -V verbose messages off **\n");
++ printf(" +V verbose messages on \n");
++ printf(" -V verbose messages off **\n");
+ printf("\n");
+ printf("Speed Tuning Options:\n");
+- printf(" -raydepth xxx (maximum ray recursion depth\n");
+- printf(" -numthreads xxx (** default is auto-determined)\n");
++ printf(" -raydepth xxx maximum ray recursion depth\n");
++ printf(" -numthreads xxx (** default is auto-determined)\n");
+ printf(" -nobounding\n");
+- printf(" -boundthresh xxx (** default threshold is 16)\n");
++ printf(" -boundthresh xxx (** default threshold is 16)\n");
+ printf("\n");
+ printf("Shading Options:\n");
+- printf(" -fullshade best quality rendering (and slowest) **\n");
+- printf(" -mediumshade good quality rendering, but no shadows\n");
+- printf(" -lowshade low quality rendering, preview (and fast)\n");
+- printf(" -lowestshade worst quality rendering, preview (and fastest)\n");
++ printf(" -fullshade best quality rendering (and slowest) **\n");
++ printf(" -mediumshade good quality rendering, but no shadows\n");
++ printf(" -lowshade low quality rendering, preview (and fast)\n");
++ printf(" -lowestshade worst quality rendering, preview (and fastest)\n");
+ printf("\n");
+ printf("Lighting Options:\n");
+ printf(" -rescale_lights xxx rescale light intensity values by\n");
+@@ -64,73 +67,79 @@
+ printf(" lighting overrides take effect)\n");
+ printf(" -auto_skylight xxx force use of ambient occlusion lighting,\n");
+ printf(" auto-rescaling direct light sources to \n");
+- printf(" compensate for ambient occlusion factor.\n");
++ printf(" compensate for ambient occlusion factor\n");
+ printf(" (use value 0.7 as a good starting point)\n");
+ printf(" -add_skylight xxx force use of ambient occlusion lighting,\n");
+ printf(" manually-rescaling direct light sources to\n");
+- printf(" compensate for ambient occlusion factor.\n");
+- printf(" -skylight_samples xxx number of sample rays to shoot.\n");
++ printf(" compensate for ambient occlusion factor\n");
++ printf(" -skylight_samples xxx number of sample rays to shoot\n");
+ printf("\n");
+ printf("Specular Highlight Shading Options:\n");
+- printf(" -shade_phong Phong specular highlights\n");
+- printf(" -shade_blinn Blinn's specular highlights**\n");
+- printf(" -shade_blinn_fast fast approximation to Blinn's highlights\n");
+- printf(" -shade_nullphong disable specular highlights\n");
++ printf(" -shade_phong Phong specular highlights\n");
++ printf(" -shade_blinn Blinn's specular highlights **\n");
++ printf(" -shade_blinn_fast fast approximation to Blinn's highlights\n");
++ printf(" -shade_nullphong disable specular highlights\n");
+ printf("\n");
+ printf("Transparency Shading Options:\n");
+- printf(" -trans_max_surfaces xxx Limit the number of transparent\n");
++ printf(" -trans_max_surfaces xxx limit the number of transparent\n");
+ printf(" surfaces shown to the number specified\n");
+- printf(" -trans_orig Original implementation**\n");
+- printf(" -trans_raster3d Raster3D angle-based opacity modulation\n");
+- printf(" -trans_vmd Opacity post-multiply used by VMD\n");
++ printf(" -trans_orig original implementation **\n");
++ printf(" -trans_raster3d Raster3D angle-based opacity modulation\n");
++ printf(" -trans_vmd opacity post-multiply used by VMD\n");
+ printf("\n");
+ printf("Transparent Surface Shadowing Options:\n");
+- printf(" -shadow_filter_on Transparent objects cast shadows**\n");
+- printf(" -shadow_filter_off Transparent objects do not cast shadows\n");
++ printf(" -shadow_filter_on transparent objects cast shadows **\n");
++ printf(" -shadow_filter_off transparent objects do not cast shadows\n");
+ printf("\n");
+ printf("Fog Shading Options:\n");
+- printf(" -fog_radial Radial fog implementation**\n");
+- printf(" -fog_vmd Planar OpenGL-like fog used by VMD\n");
++ printf(" -fog_radial radial fog implementation **\n");
++ printf(" -fog_vmd planar OpenGL-like fog used by VMD\n");
+ printf("\n");
+ printf("Surface Normal/Winding Order Fixup Mode:\n");
+- printf(" -normalfixup [off | flip | guess] (**off is default)\n");
++ printf(" -normalfixup [off|flip|guess] (** off is default)\n");
+ printf("\n");
+ printf("Antialiasing Options:\n");
+- printf(" -aasamples xxx (maximum supersamples taken per pixel)\n");
+- printf(" (** default is 0, or scene file determined)\n");
++ printf(" -aasamples xxx maximum supersamples taken per pixel\n");
++ printf(" (** default is 0, or scene file determined)\n");
+ printf("\n");
+ printf("Output Options:\n");
+- printf(" -res Xres Yres override scene-defined output image size\n");
+- printf(" -o outfile.tga set output file name\n");
+- printf(" -clamp clamp pixel values to [0 to 1) (** default)\n");
+- printf(" -normalize normalize pixel values to [0 to 1)\n");
+- printf(" -gamma val normalize apply gamma correction\n");
+- printf(" -format BMP 24-bit Windows BMP (uncompressed)\n");
++ printf(" -res Xres Yres override scene-defined output image size\n");
++ printf(" -o outfile.tga set output file name\n");
++ printf(" -clamp clamp pixel values to [0 to 1) **\n");
++ printf(" -normalize normalize pixel values to [0 to 1)\n");
++ printf(" -gamma val normalize apply gamma correction\n");
++ printf(" -format BMP 24-bit Windows BMP (uncompressed)\n");
+ #if defined(USEJPEG)
+- printf(" -format JPEG 24-bit JPEG (compressed, but lossy)\n");
++ printf(" -format JPEG 24-bit JPEG (compressed, but lossy)\n");
+ #else
+- printf(" -format JPEG XXX Not compiled into this binary XXX\n");
++ printf(" -format JPEG XXX Not compiled into this binary XXX\n");
+ #endif
+ #if defined(USEPNG)
+- printf(" -format PNG 24-bit PNG (compressed, lossless)\n");
++ printf(" -format PNG 24-bit PNG (compressed, lossless)\n");
+ #else
+- printf(" -format PNG XXX Not compiled into this binary XXX\n");
++ printf(" -format PNG XXX Not compiled into this binary XXX\n");
+ #endif
+- printf(" -format PPM 24-bit PPM (uncompressed)\n");
+- printf(" -format PPM48 48-bit PPM (uncompressed)\n");
+- printf(" -format PSD48 48-bit PSD (uncompressed)\n");
+- printf(" -format RGB 24-bit SGI RGB (uncompressed)\n");
+- printf(" -format TARGA 24-bit Targa (uncompressed) **\n");
++ printf(" -format PPM 24-bit PPM (uncompressed)\n");
++ printf(" -format PPM48 48-bit PPM (uncompressed)\n");
++ printf(" -format PSD48 48-bit PSD (uncompressed)\n");
++ printf(" -format RGB 24-bit SGI RGB (uncompressed)\n");
++ printf(" -format TARGA 24-bit Targa (uncompressed) **\n");
+ printf("\n");
+ printf("Animation Related Options:\n");
+- printf(" -camfile filename.cam Animate using file of camera positions.\n");
+- printf(" -nosave Disable writing of output frames to disk\n");
+- printf(" (only used for doing real-time rendering)\n");
++ printf(" -camfile filename.cam animate using file of camera positions\n");
++ printf(" -nosave disable writing of output frames to disk\n");
++ printf(" (only used for doing real-time rendering)\n");
+ printf("\n");
+ printf("Interactive Spaceball/SpaceNavigator Control:\n");
+- printf(" -spaceball Enable Spaceball/SpaceNavigator camera flight\n");
++ printf(" -spaceball enable Spaceball/SpaceNavigator camera flight\n");
+ printf(" -spaceballport serialportdevicename (only for serial devices)\n");
+ printf("\n");
++ printf("Getting Help:\n");
++ printf(" -help display help message and exit\n");
++ printf(" -version display version string and exit\n");
++ printf(" -banner display banner and exit\n");
++ printf("\n");
++ free(argv0);
+ }
+
+ static void initoptions(argoptions * opt) {
+@@ -564,6 +573,17 @@
+ return 2;
+ }
+
++ /* getting help */
++ if (!strcmp(argv[num], "-help")) {
++ return -2;
++ }
++ if (!strcmp(argv[num], "-version")) {
++ return -3;
++ }
++ if (!strcmp(argv[num], "-banner")) {
++ return -4;
++ }
++
+ /* unknown parameter setting */
+ if (node == 0)
+ printf("Unrecognized parameter/option flag: %s\n", argv[num]);
+@@ -590,11 +610,23 @@
+ while (i < argc) {
+ if (argv[i][0] == '-' || argv[i][0] == '+') {
+ rc = getparm(argc, argv, i, opt, node);
+- if (rc != -1) {
++ if (0 < rc) {
+ i += rc;
+ } else {
+- if (node == 0)
+- printusage(argv);
++ if (node == 0) {
++ if (rc == -2)
++ printusage(argv);
++ else if (rc == -3)
++ printf(TACHYON_VERSION_STRING"\n");
++ else if (rc == -4)
++ printf(
++ "Tachyon Parallel/Multiprocessor Ray Tracer Version "TACHYON_VERSION_STRING"\n"
++ "Copyright 1994-2013, John E. Stone <john.stone at gmail.com>\n"
++ "------------------------------------------------------------\n"
++ );
++ else
++ printusage(argv);
++ }
+
+ return -1;
+ }
+--- a/demosrc/main.c
++++ b/demosrc/main.c
+@@ -602,6 +602,15 @@
+ rt_set_ui_message(my_ui_message);
+ rt_set_ui_progress(my_ui_progress);
+
++ if ((rc = getargs(argc, argv, &opt, node)) != 0) {
++ rt_finalize();
++#if defined(ANDROID)
++ return rc;
++#else
++ exit(rc);
++#endif
++ }
++
+ if (node == 0) {
+ char strbuf[1024];
+ sprintf(strbuf, "Tachyon Parallel/Multiprocessor Ray Tracer Version %s ",
+@@ -613,15 +622,6 @@
+ my_ui_message(0, strbuf);
+ }
+
+- if ((rc = getargs(argc, argv, &opt, node)) != 0) {
+- rt_finalize();
+-#if defined(ANDROID)
+- return rc;
+-#else
+- exit(rc);
+-#endif
+- }
+-
+ if (opt.numfiles > 1) {
+ if (node == 0)
+ printf("Rendering %d scene files.\n", opt.numfiles);
diff --git a/debian/patches/upstream-demosrc-samples.patch b/debian/patches/upstream-demosrc-samples.patch
new file mode 100644
index 0000000..fcecf4d
--- /dev/null
+++ b/debian/patches/upstream-demosrc-samples.patch
@@ -0,0 +1,455 @@
+Description: demosrc samples refreshment
+ Render buildable the demonstration C source samples;
+ plus minor comestic changes.
+Origin: debian
+Author: Jerome Benoit <calculus at rezozer.net>
+Last-Update: 2014-11-06
+
+--- a/demosrc/animskull.c
++++ b/demosrc/animskull.c
+@@ -9,9 +9,9 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <math.h>
+-#include "tachyon.h"
++#include <tachyon.h>
+
+-int rt_mynode(void); /* proto */
++/* int rt_mynode(void); */ /* proto */
+
+ typedef struct { /* Scalar Volume Visualization Data */
+ int loaded; /* Volume data memory residence flag */
+@@ -27,11 +27,11 @@
+ #define RAD 6.28
+
+ #ifdef cube
+-#define RFILE "/cfs/johns/anim/frame"
++#define RFILE "animskull-cube"
+ #endif
+
+-#ifndef cube
+-#define RFILE "outfile"
++#ifndef cube
++#define RFILE "animskull"
+ #endif
+
+ int main(int argc, char **argv) {
+@@ -75,12 +75,12 @@
+ vol.loaded=0;
+
+ for (i=0; i<MAXFRAMES; i++) {
+- sprintf(fname,".%4.4d.tga",i);
++ sprintf(fname,"-%4.4d.tga",i);
+ strcpy(fname2,RFILE);
+ strcat(fname2, fname);
+
+ rt_initialize(&argc, &argv);
+- if (rt_mynode()==0) printf("Rendering: %s \n",fname2);
++ /* if (rt_mynode()==0) */ printf("Rendering: %s \n",fname2);
+
+ xc=cos(6.28 * i / (1.0 * MAXFRAMES));
+ yc=sin(6.28 * i / (1.0 * MAXFRAMES));
+@@ -99,7 +99,7 @@
+ rt_light(scene, rt_texture(scene, &tex1), ctr1, 1.0);
+
+ rt_scalarvol(scene, rt_texture(scene, &tex2), min3, max3, 256, 256, 100,
+- "/disk7/cube/vol/head.256x256x109", &vol);
++ "vol/head.256x256x109", &vol);
+
+ rt_renderscene(scene);
+ }
+--- a/demosrc/animspheres.c
++++ b/demosrc/animspheres.c
+@@ -8,14 +8,14 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+-#include "tachyon.h"
++#include <tachyon.h>
+ #include "glwin.h"
+
+ #if defined(USEOPENGL)
+ #include <GL/gl.h>
+ #endif
+
+-int rt_mynode(void); /* proto */
++/* int rt_mynode(void); */ /* proto */
+
+ /* Number of frames to render */
+ #define MAXFRAMES 400
+@@ -195,7 +195,7 @@
+ i++;
+ sscanf(argv[i], "%d", &xres);
+ i++;
+- sscanf(argv[i], "%d", &xres);
++ sscanf(argv[i], "%d", &yres);
+ }
+ continue;
+ }
+@@ -247,8 +247,8 @@
+
+
+ if (!nosave) {
+- sprintf(fname,"outfile.%4.4d.tga",i);
+- if (rt_mynode()==0) printf("Rendering: %s\n", fname);
++ sprintf(fname,"animspheres-%4.4d.tga",i);
++ /* if (rt_mynode()==0) */ printf("Rendering: %s\n", fname);
+ rt_outputfile(scene, fname);
+ } else {
+ printf("\rRendering %d... ", i);
+--- a/demosrc/animspheres2.c
++++ b/demosrc/animspheres2.c
+@@ -9,7 +9,7 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <math.h>
+-#include "tachyon.h"
++#include <tachyon.h>
+
+ #define XRES 352
+ #define YRES 240
+@@ -18,7 +18,7 @@
+ #define MYPI 3.1415926
+ #define MYTPI 6.282
+
+-int rt_mynode(void);
++/* int rt_mynode(void); */
+
+ #define MAXFRAMES 400
+ #define MAXX 1.0
+@@ -34,11 +34,11 @@
+ #define RAD 6.28
+
+ #ifdef cube
+-#define RFILE "/cfs/johns/anim/frame"
++#define RFILE "animspheres2-cube"
+ #endif
+
+ #ifndef cube
+-#define RFILE "outfile"
++#define RFILE "animsphere2"
+ #endif
+
+
+@@ -186,12 +186,12 @@
+ initspheres();
+
+ for (i=0; i<MAXFRAMES; i++) {
+- sprintf(fname,".%4.4d.tga",i);
++ sprintf(fname,"-%4.4d.tga",i);
+ strcpy(fname2,RFILE);
+ strcat(fname2, fname);
+
+ rt_initialize(&argc, &argv);
+- if (rt_mynode()==0) printf("Rendering: %s \n",fname2);
++ /* if (rt_mynode()==0) */ printf("Rendering: %s \n",fname2);
+
+ rt_outputfile(scene, fname2);
+ rt_resolution(scene, xres, yres);
+--- a/demosrc/fire.c
++++ b/demosrc/fire.c
+@@ -9,7 +9,7 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <math.h>
+-#include "tachyon.h"
++#include <tachyon.h>
+
+ #if defined(USEOMF)
+ #include "omfwrite.h"
+@@ -48,14 +48,18 @@
+ } flm;
+
+ #ifdef cube
+-#define RFILE "/cfs/johns/anim/frame"
++#define RFILE "fire-cube"
+ #endif
+
+-#ifndef cube
+-#define RFILE "frame"
++#ifndef cube
++#define RFILE "fire"
+ #endif
+
+-int rt_mynode(void); /* proto */
++/* int rt_mynode(void); */ /* proto */
++
++#define ADHOC_RMOD(A) ((A)%(XS*YS*ZS))
++#define ADHOC_NMOD(A) (A)
++#define ADHOC_LMOD(A) ((XS*YS*ZS+A)%(XS*YS*ZS))
+
+ unsigned char fire[2][XS*YS*ZS + 10000];
+ flm flames[NUMFLAMES + 10];
+@@ -78,91 +82,91 @@
+ flames[i].y = (YS - 3);
+
+ addr = (XS*flames[i].y) + flames[i].x;
+- fire[0][addr - 1 ] = MXV;
+- fire[0][addr ] = MXV;
+- fire[0][addr + 1 ] = MXV;
+- fire[0][addr - 1 - XS] = MXV;
+- fire[0][addr - XS] = MXV;
+- fire[0][addr + 1 - XS] = MXV;
+- fire[0][addr - 1 + XS] = MXV;
+- fire[0][addr + XS] = MXV;
+- fire[0][addr + 1 + XS] = MXV;
++ fire[0][ADHOC_LMOD(addr - 1 )] = MXV;
++ fire[0][ADHOC_NMOD(addr )] = MXV;
++ fire[0][ADHOC_RMOD(addr + 1 )] = MXV;
++ fire[0][ADHOC_LMOD(addr - 1 - XS)] = MXV;
++ fire[0][ADHOC_LMOD(addr - XS)] = MXV;
++ fire[0][ADHOC_LMOD(addr + 1 - XS)] = MXV;
++ fire[0][ADHOC_LMOD(addr - 1 + XS)] = MXV;
++ fire[0][ADHOC_RMOD(addr + XS)] = MXV;
++ fire[0][ADHOC_RMOD(addr + 1 + XS)] = MXV;
+
+ addr = addr + XS*YS;
+- fire[0][addr - 1 ] = MXV;
+- fire[0][addr ] = MXV;
+- fire[0][addr + 1 ] = MXV;
+- fire[0][addr - 1 - XS] = MXV;
+- fire[0][addr - XS] = MXV;
+- fire[0][addr + 1 - XS] = MXV;
+- fire[0][addr - 1 + XS] = MXV;
+- fire[0][addr + XS] = MXV;
+- fire[0][addr + 1 + XS] = MXV;
++ fire[0][ADHOC_LMOD(addr - 1 )] = MXV;
++ fire[0][ADHOC_NMOD(addr )] = MXV;
++ fire[0][ADHOC_RMOD(addr + 1 )] = MXV;
++ fire[0][ADHOC_LMOD(addr - 1 - XS)] = MXV;
++ fire[0][ADHOC_LMOD(addr - XS)] = MXV;
++ fire[0][ADHOC_LMOD(addr + 1 - XS)] = MXV;
++ fire[0][ADHOC_LMOD(addr - 1 + XS)] = MXV;
++ fire[0][ADHOC_RMOD(addr + XS)] = MXV;
++ fire[0][ADHOC_RMOD(addr + 1 + XS)] = MXV;
+
+ addr = addr + XS*YS;
+- fire[0][addr - 1 ] = MXV;
+- fire[0][addr ] = MXV;
+- fire[0][addr + 1 ] = MXV;
+- fire[0][addr + XS] = MXV;
+- fire[0][addr - XS] = MXV;
++ fire[0][ADHOC_LMOD(addr - 1 )] = MXV;
++ fire[0][ADHOC_RMOD(addr )] = MXV;
++ fire[0][ADHOC_RMOD(addr + 1 )] = MXV;
++ fire[0][ADHOC_RMOD(addr + XS)] = MXV;
++ fire[0][ADHOC_LMOD(addr - XS)] = MXV;
+ }
+
+ for (z=0; z<(ZS - 1); z++) {
+ addr3 = z*XS*YS;
+ for (y=1; y<(YS - 1); y++) {
+ addr2 = y*XS + addr3;
+- for (x=1; x<(XS - 1); x++) {
++ for (x=1; x<(XS - 1); x++) {
+ addr = x + addr2;
+
+ /* NOTE: This address code takes the 26 points in the box surrounding
+ the original point, and averages them with together, to generate
+- the new point. If you desire speed, comment out everything
+- after the "first 6 points"
++ the new point. If you desire speed, comment out everything
++ after the "first 6 points"
+ Remember to change the divisor on the line "xx = xx / 26"
+ */
+
+- xx = fire[0][addr + 1 ] + /* first 6 adjacent neighbors */
+- fire[0][addr - 1 ] +
+- fire[0][addr + XS ] +
+- fire[0][addr - XS ] +
+- fire[0][addr + XS*YS] +
+- fire[0][addr - XS*YS] +
+-
+- fire[0][addr - 1 + XS] + /* middle 4 points */
+- fire[0][addr + 1 + XS] +
+- fire[0][addr - 1 - XS] +
+- fire[0][addr + 1 - XS];
++ xx = fire[0][ADHOC_RMOD(addr + 1 )] + /* first 6 adjacent neighbors */
++ fire[0][ADHOC_LMOD(addr - 1 )] +
++ fire[0][ADHOC_RMOD(addr + XS )] +
++ fire[0][ADHOC_LMOD(addr - XS )] +
++ fire[0][ADHOC_RMOD(addr + XS*YS)] +
++ fire[0][ADHOC_LMOD(addr - XS*YS)] +
++
++ fire[0][ADHOC_LMOD(addr - 1 + XS)] + /* middle 4 points */
++ fire[0][ADHOC_RMOD(addr + 1 + XS)] +
++ fire[0][ADHOC_LMOD(addr - 1 - XS)] +
++ fire[0][ADHOC_LMOD(addr + 1 - XS)];
+
+ addr4=addr - XS*YS; /* bottom 8 points */
+- xx += fire[0][addr4 - 1] +
+- fire[0][addr4 + 1];
+- addr4=addr + XS - XS*YS;
+- xx += fire[0][addr4 - 1] +
+- fire[0][addr4 ] +
+- fire[0][addr4 + 1];
++ xx += fire[0][ADHOC_LMOD(addr4 - 1)] +
++ fire[0][ADHOC_LMOD(addr4 + 1)];
++ addr4=addr + XS - XS*YS;
++ xx += fire[0][ADHOC_LMOD(addr4 - 1)] +
++ fire[0][ADHOC_LMOD(addr4 )] +
++ fire[0][ADHOC_LMOD(addr4 + 1)];
+ addr4=addr - XS - XS*YS;
+- xx += fire[0][addr4 - 1] +
+- fire[0][addr4 ] +
+- fire[0][addr4 + 1];
++ xx += fire[0][ADHOC_LMOD(addr4 - 1)] +
++ fire[0][ADHOC_LMOD(addr4 )] +
++ fire[0][ADHOC_LMOD(addr4 + 1)];
+
+ addr4=addr + XS*YS; /* top 8 points */
+- xx += fire[0][addr4 - 1] +
+- fire[0][addr4 + 1];
+- addr4=addr + XS + XS*YS;
+- xx += fire[0][addr4 - 1] +
+- fire[0][addr4 ] +
+- fire[0][addr4 + 1];
++ xx += fire[0][ADHOC_LMOD(addr4 - 1)] +
++ fire[0][ADHOC_RMOD(addr4 + 1)];
++ addr4=addr + XS + XS*YS;
++ xx += fire[0][ADHOC_LMOD(addr4 - 1)] +
++ fire[0][ADHOC_NMOD(addr4 )] +
++ fire[0][ADHOC_RMOD(addr4 + 1)];
+ addr4=addr - XS + XS*YS;
+- xx += fire[0][addr4 - 1] +
+- fire[0][addr4 ] +
+- fire[0][addr4 + 1];
++ xx += fire[0][ADHOC_LMOD(addr4 - 1)] +
++ fire[0][ADHOC_NMOD(addr4 )] +
++ fire[0][ADHOC_RMOD(addr4 + 1)];
+
+ xx = xx / 26;
+
+- if (xx > 1)
++ if (xx > 1)
+ fire[1][addr + XS*YS] = (unsigned char) xx - 1;
+ else
+- fire[1][addr + XS*YS] = 0;
++ fire[1][addr + XS*YS] = 0;
+
+ }
+ }
+@@ -240,7 +244,7 @@
+ p1.uaxs = rt_vector(1.0, 0.0, 0.0);
+ p1.vaxs = rt_vector(0.0, 1.0, 0.0);
+
+- strcpy((char *) &p1.imap, "/disk7/cube/imaps/leafy261.ppm");
++ strcpy((char *) &p1.imap, "imaps/leafy.ppm");
+
+ t1=rt_texture(scene, &p1);
+
+@@ -264,7 +268,7 @@
+ rt_sphere(scene, t2, rt_vector(0.0, 0.0, 1.8), 0.8);
+
+ for (i=0; i<MAXFRAMES; i++) {
+- sprintf(fname,".%4.4d.tga",i);
++ sprintf(fname,"-%4.4d.tga",i);
+ strcpy(fname2,RFILE);
+ strcat(fname2, fname);
+
+@@ -275,7 +279,7 @@
+ rt_outputfile(scene, fname2);
+ #endif
+
+- if (rt_mynode()==0) printf("Rendering: %s \n",fname2);
++ /* if (rt_mynode()==0) */ printf("Rendering: %s \n",fname2);
+
+ xc=cos(6.28 * i / (1.0 * MAXFRAMES));
+ yc=sin(6.28 * i / (1.0 * MAXFRAMES));
+--- a/demosrc/hypertex.c
++++ b/demosrc/hypertex.c
+@@ -9,9 +9,9 @@
+ #include <stdlib.h>
+ #include <math.h>
+ #include <string.h>
+-#include "tachyon.h"
++#include <tachyon.h>
+
+-int rt_mynode(void); /* proto */
++/* int rt_mynode(void); */ /* proto */
+
+ #define XRES 352
+ #define YRES 240
+@@ -53,10 +53,10 @@
+ } flm;
+
+ #ifdef cube
+-#define RFILE "/cfs/johns/anim/frame"
++#define RFILE "hypertex-cube"
+ #endif
+ #ifndef cube
+-#define RFILE "frame"
++#define RFILE "hypertex"
+ #endif
+
+ /* global frame number */
+@@ -150,10 +150,10 @@
+ p1.uaxs.x=1.0; p1.uaxs.y=0.0; p1.uaxs.z=0.0;
+ p1.vaxs.x=0.0; p1.vaxs.y=1.0; p1.vaxs.z=0.0;
+ #ifdef cube
+- strcpy((char *) &p1.imap, "/cfs/johns/imaps/leafy261.ppm");
++ strcpy((char *) &p1.imap, "imaps/leafy-cube.ppm");
+ #endif
+ #ifndef cube
+- strcpy((char *) &p1.imap, "/disk7/cube/imaps/leafy261.ppm");
++ strcpy((char *) &p1.imap, "imaps/leafy.ppm");
+ #endif
+
+ t1=rt_texture(scene, &p1);
+@@ -161,13 +161,13 @@
+ for (i=0; i<MAXFRAMES; i++) {
+ rt_initialize(&argc, &argv);
+
+- sprintf(fname,".%4.4d.tga",i);
++ sprintf(fname,"-%4.4d.tga",i);
+ strcpy(fname2,RFILE);
+ strcat(fname2, fname);
+
+ framenumber++;
+
+- if (rt_mynode()==0) printf("Rendering: %s \n",fname2);
++ /* if (rt_mynode()==0) */ printf("Rendering: %s \n",fname2);
+
+ xc=cos(6.28 * (i + 200) / (1.0 * MAXFRAMES));
+ yc=sin(6.28 * (i + 200) / (1.0 * MAXFRAMES));
+--- a/demosrc/mainanim.c
++++ b/demosrc/mainanim.c
+@@ -8,7 +8,7 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <math.h>
+-#include "tachyon.h"
++#include <tachyon.h>
+
+ int rt_mynode(void); /* proto */
+
+@@ -18,9 +18,9 @@
+ #define RAD 6.28
+
+ #ifdef cube
+-#define RFILE "/cfs/johns/anim/frame"
++#define RFILE "mainanim-cube"
+ #else
+-#define RFILE "outfile"
++#define RFILE "mainanim"
+ #endif
+
+ int main(int argc, char **argv) {
+@@ -32,7 +32,7 @@
+ char fname[200];
+ char fname2[200];
+
+- rt_initialize(&argc, &argv);
++ rt_initialize(&argc, &argv);
+
+ tex1.col.r=1.0;
+ tex1.col.g=1.0;
+@@ -140,7 +140,7 @@
+ rt_plane(scene, txarray[6], ctr, vect2);
+
+
+- sprintf(fname,".%4.4d.tga",i);
++ sprintf(fname,"-%4.4d.tga",i);
+ strcpy(fname2, RFILE);
+ strcat(fname2, fname);
+
diff --git a/debian/patches/upstream-opengl.patch b/debian/patches/upstream-opengl.patch
new file mode 100644
index 0000000..048eaa5
--- /dev/null
+++ b/debian/patches/upstream-opengl.patch
@@ -0,0 +1,44 @@
+Description: opengl
+ Harden separate build either with or without OpenGL support.
+Origin: debian
+Author: Jerome Benoit <calculus at rezozer.net>
+Last-Update: 2014-10-26
+
+--- a/demosrc/main.c
++++ b/demosrc/main.c
+@@ -24,11 +24,13 @@
+ #else
+ #include <X11/Xlib.h>
+ #endif
++
+ #include <GL/gl.h>
+-#endif
+
+ #include "spaceball.h" /* Spaceball fly-through code */
+
++#endif /* USEOPENGL */
++
+ typedef struct {
+ float x;
+ float y;
+@@ -376,7 +378,9 @@
+ rt_timerhandle fpstimer;
+ rt_timerhandle animationtimer;
+ char outfilename[1];
++#if defined(USEOPENGL)
+ sbHandle * bh = NULL;
++#endif
+
+ if (node == 0)
+ dh = tachyon_display_create(scene);
+@@ -426,8 +430,10 @@
+ fflush(stdout);
+ }
+
++#if defined(USEOPENGL)
+ if (bh != NULL)
+ done = tachyon_spaceball_update(bh, scene);
++#endif
+
+ rt_renderscene(scene);
+
diff --git a/debian/patches/upstream-parse-tpoly.patch b/debian/patches/upstream-parse-tpoly.patch
new file mode 100644
index 0000000..daa11b6
--- /dev/null
+++ b/debian/patches/upstream-parse-tpoly.patch
@@ -0,0 +1,41 @@
+Description: parse -- tpoly
+ Correct the tachyon parser for tpoly data files.
+Origin: debian
+Author: Jerome Benoit <calculus at rezozer.net>
+Last-Update: 2014-10-26
+
+--- a/demosrc/parse.c
++++ b/demosrc/parse.c
+@@ -617,6 +617,19 @@
+ return PARSENOERR;
+ }
+
++static errcode FILEGetVector(FILE * ifp, apivector * v1) {
++ float a, b, c;
++
++ if (fscanf(ifp, "%f %f %f", &a, &b, &c) != 3)
++ return PARSEBADSYNTAX;
++
++ v1->x=a;
++ v1->y=b;
++ v1->z=c;
++
++ return PARSENOERR;
++}
++
+ static errcode GetVector(parsehandle * ph, apivector * v1) {
+ float a, b, c;
+
+@@ -1848,9 +1861,9 @@
+ totalpolys++;
+ v=0;
+
+- rc |= GetVector(ph, &v0);
+- rc |= GetVector(ph, &v1);
+- rc |= GetVector(ph, &v2);
++ rc |= FILEGetVector(ifp, &v0);
++ rc |= FILEGetVector(ifp, &v1);
++ rc |= FILEGetVector(ifp, &v2);
+
+ Scale3d(&scale, &v0);
+ Scale3d(&scale, &v1);
diff --git a/debian/patches/upstream-pthreads.patch b/debian/patches/upstream-pthreads.patch
new file mode 100644
index 0000000..79cc34b
--- /dev/null
+++ b/debian/patches/upstream-pthreads.patch
@@ -0,0 +1,17 @@
+Description: POSIX Threads
+ Harden POSIX Threads support in GNU environment (Closes: #729182).
+Origin: debian
+Author: Samuel Thibault <sthibault at debian.org>
+Last-Update: 2014-10-26
+
+--- a/src/threads.h
++++ b/src/threads.h
+@@ -17,7 +17,7 @@
+ #endif
+
+ /* POSIX Threads */
+-#if defined(_AIX) || defined(__APPLE__) || defined(_CRAY) || defined(__hpux) || defined(__irix) || defined(__linux) || defined(__osf__) || defined(__PARAGON__)
++#if defined(_AIX) || defined(__APPLE__) || defined(_CRAY) || defined(__hpux) || defined(__irix) || defined(__linux) || defined(__GNU__) || defined(__osf__) || defined(__PARAGON__)
+ #if !defined(USEUITHREADS) && !defined(USEPOSIXTHREADS)
+ #define USEPOSIXTHREADS
+ #endif
diff --git a/debian/patches/upstream-rationalization-autotools.patch b/debian/patches/upstream-rationalization-autotools.patch
new file mode 100644
index 0000000..8308412
--- /dev/null
+++ b/debian/patches/upstream-rationalization-autotools.patch
@@ -0,0 +1,417 @@
+Description: rationalization -- autotools machinery
+ Attempt to autotoolize the upstream package in view to ease
+ future maintenance on both side.
+ This patch is meant to be submitted to the upstream maintainer.
+Origin: debian
+Author: Jerome Benoit <calculus at rezozer.net>
+Last-Update: 2014-10-20
+
+--- /dev/null
++++ b/configure.ac
+@@ -0,0 +1,84 @@
++dnl -*- Autoconf -*-
++dnl Process this file with autoconf to produce a configure script.
++
++AC_PREREQ([2.69])
++AC_INIT([tachyon], [0.99b9], [johns at ks.uiuc.edu])
++AC_CONFIG_SRCDIR([src/tachyon.h])
++AC_CONFIG_AUX_DIR([build-aux])
++AC_CONFIG_MACRO_DIR([m4])
++AC_CONFIG_HEADERS([config_tachyon.h])
++AM_INIT_AUTOMAKE([foreign])
++AM_SILENT_RULES([no])
++AM_MAINTAINER_MODE
++
++dnl Select library variant scheme.
++AC_ARG_WITH([libflavour],
++[AS_HELP_STRING([--with-libflavour=LIBFLAVOUR],[select as library flavour scheme LIBFLAVOUR [mt]])],
++[],[with_libflavour="mt"])
++case $with_libflavour in
++ serial|mt|openmpi|mpich) ;;
++ *) AC_MSG_ERROR([unknown library flavour scheme $with_libflavour])
++esac
++AM_CONDITIONAL([LIBFLAVOUR_IS_SERIAL], [test "X$with_libflavour" = "Xserial"])
++AM_CONDITIONAL([LIBFLAVOUR_IS_MT], [test "X$with_libflavour" = "Xmt"])
++AM_CONDITIONAL([LIBFLAVOUR_IS_OPENMPI], [test "X$with_libflavour" = "Xopenmpi"])
++AM_CONDITIONAL([LIBFLAVOUR_IS_MPICH], [test "X$with_libflavour" = "Xmpich"])
++
++dnl Checks for system features.
++AC_CANONICAL_HOST
++AS_IF([test "x$host_os" != "xlinux-gnu"],[],[CPPFLAGS="$CPPFLAGS -DLinux"])
++
++dnl libtool:
++LT_INIT
++
++dnl Check linker script support.
++gl_LD_VERSION_SCRIPT
++
++dnl Checks for programs.
++AC_PATH_PROG([HELP2MAN],[help2man])
++AC_PROG_CC
++AC_PROG_CC_C99
++PKG_PROG_PKG_CONFIG
++
++dnl Checks for generic compiler characteristics.
++AM_COND_IF([LIBFLAVOUR_IS_SERIAL],[],[AC_OPENMP])
++
++dnl Checks for POSIX threads
++AM_COND_IF([LIBFLAVOUR_IS_SERIAL],[],[ACX_PTHREAD([],[AC_MSG_ERROR([unable to figure out how to build C programs using POSIX threads])])])
++
++dnl Checks for libraries.
++## math library
++LT_LIB_M
++## JPEG library
++PKG_CHECK_MODULES([LIBJPEG],[libjpeg],[CPPFLAGS="$CPPFLAGS -DUSEJPEG"],[AC_MSG_ERROR([unable to find libjpeg])])
++## PNG library
++PKG_CHECK_MODULES([LIBPNG],[libpng],[CPPFLAGS="$CPPFLAGS -DUSEPNG"],[AC_MSG_ERROR([unable to find libpng])])
++## OpenGL
++AC_PATH_X
++AC_PATH_XTRA
++AX_CHECK_GL
++AS_IF([test "x$no_gl" != "xyes"],[],[AC_MSG_ERROR([unable to find an OpenGL implementation])])
++
++dnl Checks for header files.
++AC_CHECK_HEADERS([fcntl.h stdlib.h string.h sys/time.h unistd.h])
++
++dnl Checks for typedefs, structures, and compiler characteristics.
++AC_TYPE_SIZE_T
++
++dnl Append compliler options
++AX_APPEND_COMPILE_FLAGS(-D_REENTRANT)
++AX_APPEND_COMPILE_FLAGS(-ffast-math)
++AX_APPEND_COMPILE_FLAGS(-fomit-frame-pointer)
++
++dnl Checks for library functions.
++AC_FUNC_MALLOC
++AC_FUNC_REALLOC
++AC_CHECK_FUNCS([clock_gettime gethostname gettimeofday isascii memset pow sqrt strcspn strstr])
++
++AC_CONFIG_FILES([
++ Makefile
++ src/Makefile
++ demosrc/Makefile
++ ])
++AC_OUTPUT
++dnl
+--- /dev/null
++++ b/Makefile.am
+@@ -0,0 +1,12 @@
++ACLOCAL_AMFLAGS = -I m4
++
++AUTOMAKE_OPTIONS = \
++ dist-xz \
++ dist-bzip2 \
++ dist-zip
++
++AM_CFLAGS = -g -Wall
++
++SUBDIRS = src demosrc docs
++
++EXTRA_DIST =
+--- /dev/null
++++ b/src/Makefile.am
+@@ -0,0 +1,160 @@
++AM_CFLAGS = -g -Wall
++
++## Library versioning (C:R:A == current:revision:age)
++LIBTACHYON_LT_VERSION = 0:0:0
++
++include_HEADERS = tachyon.h
++
++lib_LTLIBRARIES =
++if LIBFLAVOUR_IS_SERIAL
++lib_LTLIBRARIES += \
++ libtachyon.la \
++ libtachyon-serial.la
++endif
++if LIBFLAVOUR_IS_MT
++lib_LTLIBRARIES += \
++ libtachyon-mt-thr.la \
++ libtachyon-mt-openmp.la
++endif
++if LIBFLAVOUR_IS_OPENMPI
++lib_LTLIBRARIES += \
++ libtachyon-openmpi.la \
++ libtachyon-openmpi-thr.la \
++ libtachyon-openmpi-openmp.la
++endif
++if LIBFLAVOUR_IS_MPICH
++lib_LTLIBRARIES += \
++ libtachyon-mpich.la \
++ libtachyon-mpich-thr.la \
++ libtachyon-mpich-openmp.la
++endif
++
++libtachyon_la_LD_VERSION_SCRIPT=
++if HAVE_LD_VERSION_SCRIPT
++libtachyon_la_LD_VERSION_SCRIPT+= -Wl,--version-script=$(top_srcdir)/src/tachyon.map
++endif
++
++noinst_HEADERS = \
++ macros.h \
++ render.h \
++ quadric.h \
++ texture.h \
++ light.h
++
++libtachyon_la_SOURCES = \
++ api.c \
++ apigeom.c \
++ box.c \
++ global.c \
++ hash.c \
++ parallel.c \
++ threads.c \
++ camera.c \
++ render.c \
++ trace.c \
++ grid.c \
++ intersect.c \
++ sphere.c \
++ plane.c \
++ ring.c \
++ triangle.c \
++ cylinder.c \
++ quadric.c \
++ extvol.c \
++ vol.c \
++ ui.c \
++ util.c \
++ vector.c \
++ shade.c \
++ texture.c \
++ coordsys.c \
++ imap.c \
++ light.c \
++ imageio.c \
++ jpeg.c \
++ pngfile.c \
++ ppm.c \
++ psd.c \
++ sgirgb.c \
++ tgafile.c \
++ winbmp.c
++
++AM_PTHREAD_CPPFLAGS = \
++ -DTHR \
++ -DUSEGCCATOMICS \
++ -DUSEPOSIXTHREADS
++
++libtachyon_la_CPPFLAGS =
++
++libtachyon_la_CFLAGS = \
++ $(LIBPNG_CFLAGS) \
++ $(LIBJPEG_CFLAGS)
++
++libtachyon_la_LDFLAGS = \
++ -version-info $(LIBTACHYON_LT_VERSION) \
++ $(libtachyon_la_LD_VERSION_SCRIPT)
++
++libtachyon_la_LIBADD = \
++ $(LIBPNG_LIBS) \
++ $(LIBJPEG_LIBS) \
++ $(LIBM)
++
++
++libtachyon_serial_la_SOURCES = $(libtachyon_la_SOURCES)
++libtachyon_serial_la_CPPFLAGS = $(libtachyon_la_CPPFLAGS)
++libtachyon_serial_la_CFLAGS = $(libtachyon_la_CFLAGS)
++libtachyon_serial_la_LDFLAGS = $(libtachyon_la_LDFLAGS)
++libtachyon_serial_la_LIBADD = $(libtachyon_la_LIBADD)
++
++
++libtachyon_mt_openmp_la_SOURCES = $(libtachyon_la_SOURCES)
++libtachyon_mt_openmp_la_CPPFLAGS = $(libtachyon_la_CPPFLAGS)
++libtachyon_mt_openmp_la_CFLAGS = $(libtachyon_la_CFLAGS) $(OPENMP_CFLAGS)
++libtachyon_mt_openmp_la_LDFLAGS = $(libtachyon_la_LDFLAGS) $(OPENMP_CFLAGS)
++libtachyon_mt_openmp_la_LIBADD = $(libtachyon_la_LIBADD)
++
++libtachyon_mt_thr_la_SOURCES = $(libtachyon_la_SOURCES)
++libtachyon_mt_thr_la_CPPFLAGS = $(libtachyon_la_CPPFLAGS) $(AM_PTHREAD_CPPFLAGS)
++libtachyon_mt_thr_la_CFLAGS = $(libtachyon_la_CFLAGS) $(PTHREAD_CFLAGS)
++libtachyon_mt_thr_la_LDFLAGS = $(libtachyon_la_LDFLAGS)
++libtachyon_mt_thr_la_LIBADD = $(libtachyon_la_LIBADD) $(PTHREAD_LIBS)
++
++
++libtachyon_openmpi_la_SOURCES = $(libtachyon_la_SOURCES)
++libtachyon_openmpi_la_CPPFLAGS = $(libtachyon_la_CPPFLAGS) -DMPI -DMPI_TUNE=0
++libtachyon_openmpi_la_CFLAGS = $(libtachyon_la_CFLAGS)
++libtachyon_openmpi_la_LDFLAGS = $(libtachyon_la_LDFLAGS)
++libtachyon_openmpi_la_LIBADD = $(libtachyon_la_LIBADD)
++
++libtachyon_openmpi_thr_la_SOURCES = $(libtachyon_la_SOURCES)
++libtachyon_openmpi_thr_la_CPPFLAGS = $(libtachyon_openmpi_la_CPPFLAGS) $(AM_PTHREAD_CPPFLAGS)
++libtachyon_openmpi_thr_la_CFLAGS = $(libtachyon_la_CFLAGS) $(PTHREAD_CFLAGS)
++libtachyon_openmpi_thr_la_LDFLAGS = $(libtachyon_la_LDFLAGS)
++libtachyon_openmpi_thr_la_LIBADD = $(libtachyon_la_LIBADD) $(PTHREAD_LIBS)
++
++libtachyon_openmpi_openmp_la_SOURCES = $(libtachyon_la_SOURCES)
++libtachyon_openmpi_openmp_la_CPPFLAGS = $(libtachyon_openmpi_la_CPPFLAGS)
++libtachyon_openmpi_openmp_la_CFLAGS = $(libtachyon_la_CFLAGS) $(OPENMP_CFLAGS)
++libtachyon_openmpi_openmp_la_LDFLAGS = $(libtachyon_la_LDFLAGS) $(OPENMP_CFLAGS)
++libtachyon_openmpi_openmp_la_LIBADD = $(libtachyon_la_LIBADD)
++
++
++libtachyon_mpich_la_SOURCES = $(libtachyon_la_SOURCES)
++libtachyon_mpich_la_CPPFLAGS = $(libtachyon_la_CPPFLAGS) -DMPI -DMPI_TUNE=0 -DUSE_MPI_IN_PLACE
++libtachyon_mpich_la_CFLAGS = $(libtachyon_la_CFLAGS)
++libtachyon_mpich_la_LDFLAGS = $(libtachyon_la_LDFLAGS)
++libtachyon_mpich_la_LIBADD = $(libtachyon_la_LIBADD)
++
++libtachyon_mpich_thr_la_SOURCES = $(libtachyon_la_SOURCES)
++libtachyon_mpich_thr_la_CPPFLAGS = $(libtachyon_mpich_la_CPPFLAGS) $(AM_PTHREAD_CPPFLAGS)
++libtachyon_mpich_thr_la_CFLAGS = $(libtachyon_la_CFLAGS) $(PTHREAD_CFLAGS)
++libtachyon_mpich_thr_la_LDFLAGS = $(libtachyon_la_LDFLAGS)
++libtachyon_mpich_thr_la_LIBADD = $(libtachyon_la_LIBADD) $(PTHREAD_LIBS)
++
++libtachyon_mpich_openmp_la_SOURCES = $(libtachyon_la_SOURCES)
++libtachyon_mpich_openmp_la_CPPFLAGS = $(libtachyon_mpich_la_CPPFLAGS)
++libtachyon_mpich_openmp_la_CFLAGS = $(libtachyon_la_CFLAGS) $(OPENMP_CFLAGS)
++libtachyon_mpich_openmp_la_LDFLAGS = $(libtachyon_la_LDFLAGS) $(OPENMP_CFLAGS)
++libtachyon_mpich_openmp_la_LIBADD = $(libtachyon_la_LIBADD)
++
++EXTRA_DIST =
+--- /dev/null
++++ b/m4/ld-version-script.m4
+@@ -0,0 +1,53 @@
++# ld-version-script.m4 serial 3
++dnl Copyright (C) 2008-2014 Free Software Foundation, Inc.
++dnl This file is free software; the Free Software Foundation
++dnl gives unlimited permission to copy and/or distribute it,
++dnl with or without modifications, as long as this notice is preserved.
++
++dnl From Simon Josefsson
++
++# FIXME: The test below returns a false positive for mingw
++# cross-compiles, 'local:' statements does not reduce number of
++# exported symbols in a DLL. Use --disable-ld-version-script to work
++# around the problem.
++
++# gl_LD_VERSION_SCRIPT
++# --------------------
++# Check if LD supports linker scripts, and define automake conditional
++# HAVE_LD_VERSION_SCRIPT if so.
++AC_DEFUN([gl_LD_VERSION_SCRIPT],
++[
++ AC_ARG_ENABLE([ld-version-script],
++ AS_HELP_STRING([--enable-ld-version-script],
++ [enable linker version script (default is enabled when possible)]),
++ [have_ld_version_script=$enableval], [])
++ if test -z "$have_ld_version_script"; then
++ AC_MSG_CHECKING([if LD -Wl,--version-script works])
++ save_LDFLAGS="$LDFLAGS"
++ LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map"
++ cat > conftest.map <<EOF
++foo
++EOF
++ AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
++ [accepts_syntax_errors=yes], [accepts_syntax_errors=no])
++ if test "$accepts_syntax_errors" = no; then
++ cat > conftest.map <<EOF
++VERS_1 {
++ global: sym;
++};
++
++VERS_2 {
++ global: sym;
++} VERS_1;
++EOF
++ AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
++ [have_ld_version_script=yes], [have_ld_version_script=no])
++ else
++ have_ld_version_script=no
++ fi
++ rm -f conftest.map
++ LDFLAGS="$save_LDFLAGS"
++ AC_MSG_RESULT($have_ld_version_script)
++ fi
++ AM_CONDITIONAL(HAVE_LD_VERSION_SCRIPT, test "$have_ld_version_script" = "yes")
++])
+--- /dev/null
++++ b/demosrc/Makefile.am
+@@ -0,0 +1,85 @@
++bin_PROGRAMS =
++man_MANS =
++if LIBFLAVOUR_IS_SERIAL
++bin_PROGRAMS += tachyon-nox tachyon-ogl
++man_MANS += tachyon-nox.1 tachyon-ogl.1
++endif
++
++
++AM_CFLAGS =
++
++tachyon_SOURCES = \
++ main.c \
++ getargs.c \
++ parse.c \
++ nffparse.c \
++ mgfparse.c \
++ ac3dparse.c
++
++tachyon_nox_SOURCES = \
++ $(tachyon_SOURCES)
++
++tachyon_ogl_SOURCES = \
++ $(tachyon_SOURCES) \
++ glwin.c \
++ spaceball.c \
++ trackball.c
++
++AM_H2MFLAGS = \
++ --manual='Tachyon Manual' \
++ --help-option='-help' \
++ --version-option='-version' \
++ --no-info \
++ --libtool
++
++%.1: %
++ $(HELP2MAN) \
++ -s 1 \
++ $(AM_H2MFLAGS) \
++ -I $(top_srcdir)/demosrc/man/$*.h2m \
++ -n $(if $($(subst -,_,$*)_DESCRIPTION), $($(subst -,_,$*)_DESCRIPTION), "manual page for $*") \
++ -o $@ \
++ $(top_builddir)/demosrc/$<
++
++## short descriptions inspired from the Tachyon User's Guide or/and program banners
++tachyon_DESCRIPTION = "parallel/multiprocessor ray tracer"
++tachyon_nox_DESCRIPTION = "$(shell printf "%s %s" $(tachyon_DESCRIPTION) "with no X support")"
++tachyon_ogl_DESCRIPTION = "$(shell printf "%s %s" $(tachyon_DESCRIPTION) "with OpenGL display")"
++
++tachyon_CPPFLAGS = \
++ -I $(top_srcdir)/src
++
++tachyon_nox_CPPFLAGS = \
++ $(tachyon_CPPFLAGS)
++
++tachyon_ogl_CPPFLAGS = \
++ -DUSEOPENGL \
++ $(tachyon_CPPFLAGS)
++
++tachyon_CFLAGS = \
++ $(AM_CFLAGS)
++
++tachyon_nox_CFLAGS = \
++ $(tachyon_CFLAGS)
++
++tachyon_ogl_CFLAGS = \
++ $(tachyon_CFLAGS) \
++ $(GL_CFLAGS)
++
++tachyon_LDADD = \
++ $(top_builddir)/src/libtachyon.la \
++ $(LIBM)
++
++tachyon_nox_LDADD = \
++ $(tachyon_LDADD)
++
++tachyon_ogl_LDADD = \
++ $(tachyon_LDADD) \
++ $(GL_LIBS) \
++ $(X_LIBS)
++
++CLEANFILES = \
++ $(man_MANS)
++
++EXTRA_DIST =
++
diff --git a/debian/patches/upstream-rationalization-cleanup.patch b/debian/patches/upstream-rationalization-cleanup.patch
new file mode 100644
index 0000000..d24c91d
--- /dev/null
+++ b/debian/patches/upstream-rationalization-cleanup.patch
@@ -0,0 +1,42 @@
+Description: rationalization -- clean up
+ Straightforward clean up.
+ This patch is meant to be submitted to the upstream maintainer.
+Origin: debian
+Author: Jerome Benoit <calculus at rezozer.net>
+Last-Update: 2014-10-20
+
+--- a/docs/Makefile
++++ b/docs/Makefile
+@@ -6,7 +6,6 @@
+ DVIPS=dvips
+ LATEX2HTML=latex2html
+ PDFLATEX=pdflatex
+-DISTILLER=distiller
+ MAKEINDEX=makeindex
+
+ default:
+@@ -25,8 +24,8 @@
+
+ html: tachyon.html
+
+-tachyon.html :
+- rm -rf ./tachyon
++tachyon.html :
++ rm -rf tachyon
+ $(LATEX2HTML) \
+ -local_icons \
+ -split 5 \
+@@ -38,12 +37,8 @@
+ -up_title "photonlimited.com, home of Tachyon" \
+ tachyon
+
+-# tar -cvf - tachyon | gzip > tachyon.html.tar.gz
+-# rm -rf ./tachyon
+-
+-
+ tachyon.ps : tachyon.dvi
+- $(DVIPS) tachyon.dvi -o tachyon.ps
++ $(DVIPS) tachyon.dvi -o tachyon.ps
+
+ tachyon.dvi :
+ $(LATEX) tachyon
diff --git a/debian/patches/upstream-rationalization-one_header.patch b/debian/patches/upstream-rationalization-one_header.patch
new file mode 100644
index 0000000..4177f85
--- /dev/null
+++ b/debian/patches/upstream-rationalization-one_header.patch
@@ -0,0 +1,777 @@
+Description: rationalization -- one development header file
+ The tachyon library C header `tachyon.h' file declares the
+ functions that are meant to be exported. Unfortunately, it
+ includes three other C sub-headers, two of them having a
+ generic name; what is not appropriate for a system wide setup.
+ This patch icorporates this sub-headers into the master header
+ `tachyon.h'. Afterwards, only one header, which is named according
+ to the package, has to be set up; what is very wise for a system
+ wide set up.
+ This patch is transparent for the final developer, and it is also
+ meant to be submitted to the upstream maintainer.
+Origin: debian
+Author: Jerome Benoit <calculus at rezozer.net>
+Last-Update: 2014-10-20
+
+--- a/src/tachyon.h
++++ b/src/tachyon.h
+@@ -1,8 +1,8 @@
+ /*
+- * tachyon.h - The declarations and prototypes needed so that 3rd party
+- * driver code can run the raytracer. Third party driver code should
+- * only use the functions in this header file to interface with the
+- * rendering engine.
++ * tachyon.h - The declarations and prototypes needed so that 3rd party
++ * driver code can run the raytracer. Third party driver code should
++ * only use the functions in this header file to interface with the
++ * rendering engine.
+ *
+ * $Id: tachyon.h,v 1.121 2013/04/09 16:44:41 johns Exp $
+ *
+@@ -11,24 +11,168 @@
+ #if !defined(TACHYON_H)
+ #define TACHYON_H 1
+
++/*
++ * Tachyon version strings for feature detection and compatibility testing.
++ */
++#define TACHYON_VERSION_STRING "0.99" /**< string version info */
++#define TACHYON_MAJOR_VERSION 0 /**< major version number */
++#define TACHYON_MINOR_VERSION 99 /**< minor version number */
++#define TACHYON_PATCH_VERSION 0 /**< patch version number */
++
++
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+-#include "util.h" /* rt_timer_xxx() and rt_rand() */
+-#include "hash.h" /* rt_hash_xxx() */
++/*#include "util.h"*/ /* rt_timer_xxx() and rt_rand() */
++/*
++ * util.h - This file contains defines for the timer functions...
++ *
++ * $Id: util.h,v 1.23 2012/10/17 04:25:57 johns Exp $
++ */
++
++#if !defined(RT_UTIL_H)
++#define RT_UTIL_H 1
++
++#if !defined(USESINGLEFLT)
++#define ACOS(x) acos(x)
++#define COS(x) cos(x)
++#define EXP(x) exp(x)
++#define FABS(x) fabs(x)
++#define POW(x, y) pow(x, y)
++#define SIN(x) sin(x)
++#define SQRT(x) sqrt(x)
++#else
++#define ACOS(x) acosf(x)
++#define COS(x) cosf(x)
++#define EXP(x) expf(x)
++#define FABS(x) fabsf(x)
++#define POW(x, y) powf(x, y)
++#define SIN(x) sinf(x)
++#define SQRT(x) sqrtf(x)
++#endif
++
++typedef void * rt_timerhandle; /* a timer handle */
++rt_timerhandle rt_timer_create(void); /* create a timer (clears timer) */
++void rt_timer_destroy(rt_timerhandle); /* create a timer (clears timer) */
++void rt_timer_start(rt_timerhandle); /* start a timer (clears timer) */
++void rt_timer_stop(rt_timerhandle); /* stop a timer */
++double rt_timer_time(rt_timerhandle); /* report elapsed time in seconds */
++double rt_timer_timenow(rt_timerhandle); /* report elapsed time in seconds */
++
++#define RT_RAND_MAX 4294967296.0 /* Max random value from rt_rand */
++unsigned int rt_rand(unsigned int *); /* thread-safe 32-bit RNG */
+
+-/******************************************************************/
+-/* Constants and types defined for use with the Tachyon API calls */
+-/******************************************************************/
++/* select the RNG to use as the basis for all of the floating point work */
++#define RT_RNG_USE_KISS93 1
++
++#if defined(RT_RNG_USE_QUICK_AND_DIRTY)
++
++/* Quick and Dirty RNG */
++typedef struct {
++ unsigned int randval;
++} rng_urand_handle;
++#define RT_RNG_MAX 4294967296.0 /* max urand value: 2^32 */
++
++#elif defined(RT_RNG_USE_MERSENNE_TWISTER)
++
++/* Mersenne Twister */
++typedef struct {
++ int mti; /* mti==N+1 means mt[N] is not initialized */
++ unsigned int mt[624]; /* N: the array for the state vector */
++ unsigned int mag01[2];
++} rng_urand_handle;
++#define RT_RNG_MAX 4294967296.0 /* max urand value: 2^32 */
++
++#elif defined(RT_RNG_USE_KISS93)
++
++/* KISS93 */
++typedef struct {
++ unsigned int x;
++ unsigned int y;
++ unsigned int z;
++ unsigned int w;
++ unsigned int c;
++ unsigned int k;
++ unsigned int m;
++} rng_urand_handle;
++#define RT_RNG_MAX 4294967296.0 /* max urand value: 2^32 */
++
++#else
++
++/* KISS99 */
++typedef struct {
++ unsigned int x;
++ unsigned int y;
++ unsigned int z;
++ unsigned int c;
++} rng_urand_handle;
++#define RT_RNG_MAX 4294967296.0 /* max urand value: 2^32 */
++
++#endif
++
++void rng_urand_init(rng_urand_handle *rngh);
++void rng_urand_seed(rng_urand_handle *rngh, unsigned int seed);
++unsigned int rng_urand(rng_urand_handle *rngh);
++
++typedef rng_urand_handle rng_frand_handle;
++typedef rng_urand_handle rng_drand_handle;
++
++void rng_frand_init(rng_frand_handle *rngh);
++/* generates a random number on [0,1)-real-interval */
++float rng_frand(rng_frand_handle *rngh);
++void rng_frand_seed(rng_frand_handle *rngh, unsigned int seed);
++
++void rng_drand_init(rng_drand_handle *rngh);
++/* generates a random number on [0,1)-real-interval */
++double rng_drand(rng_frand_handle *rngh);
++void rng_drand_seed(rng_frand_handle *rngh, unsigned int seed);
+
++/* routine to help create seeds for parallel runs */
++unsigned int rng_seed_from_tid_nodeid(int tid, int node);
++
++void jitter_offset2f(unsigned int *pval, float *xy);
++void jitter_disc2f(unsigned int *pval, float *xy);
++void jitter_sphere3f(rng_frand_handle *rngh, float *dir);
++
++#endif /* RT_UTIL_H */
++
++/*#include "hash.h"*/ /* rt_hash_xxx() */
+ /*
+- * Tachyon version strings for feature detection and compatibility testing.
++ * hash.h - This file contains prototypes for hash table code etc.
++ *
++ * $Id: hash.h,v 1.4 2011/02/05 08:10:11 johns Exp $
+ */
+-#define TACHYON_VERSION_STRING "0.99" /**< string version info */
+-#define TACHYON_MAJOR_VERSION 0 /**< major version number */
+-#define TACHYON_MINOR_VERSION 99 /**< minor version number */
+-#define TACHYON_PATCH_VERSION 0 /**< patch version number */
++
++#ifndef HASH_H
++#define HASH_H
++
++typedef struct rt_hash_t {
++ struct hash_node_t **bucket; /**< array of hash nodes */
++ int size; /**< size of the array */
++ int entries; /**< number of entries in table */
++ int downshift; /**< shift cound, used in hash function */
++ int mask; /**< used to select bits for hashing */
++} rt_hash_t;
++
++/**
++ * Return code when a hash key is not find, or there's no collision
++ * upon insertion.
++ */
++#define HASH_FAIL -1
++
++void rt_hash_init(rt_hash_t *, int);
++int rt_hash_lookup (rt_hash_t *, const char *);
++int rt_hash_insert (rt_hash_t *, const char *, int);
++int rt_hash_delete (rt_hash_t *, const char *);
++void rt_hash_destroy(rt_hash_t *);
++char *rt_hash_stats (rt_hash_t *);
++
++#endif /* HASH_H */
++
++/******************************************************************/
++/* Constants and types defined for use with the Tachyon API calls */
++/******************************************************************/
+
+ /*
+ * Build Tachyon and its interfaces using either double- or single-precision
+@@ -738,8 +882,49 @@
+ * Include now-deprecated Tachyon APIs, unless the user has told us not to
+ */
+ #if !defined(TACHYON_NO_DEPRECATED)
+-#include "tachyon_dep.h"
+-#endif
++/*#include "tachyon_dep.h"*/
++/*
++ * tachyon_dep.h - Deprecated Tachyon APIs that have been replaced by
++ * newer APIs or improved functionality.
++ * Existing applications should be updated to avoid using
++ * these APIs as they will be removed in a future version.
++ *
++ * $Id: tachyon_dep.h,v 1.2 2011/02/15 20:27:58 johns Exp $
++ *
++ */
++
++#if !defined(TACHYON_DEP_H)
++#define TACHYON_DEP_H 1
++
++/**
++ * Define a camera for a perspective projection, given the specified
++ * zoom factor, aspect ratio, antialiasing sample count,
++ * maximum ray recursion depth, and
++ * camera center, view direction, and up direction, in a left-handed
++ * coordinate system.
++ */
++void rt_camera_setup(SceneHandle, flt zoom, flt aspect,
++ int alias, int maxdepth,
++ apivector ctr, apivector viewdir, apivector updir);
++
++/**
++ * Defines a named 1-D, 2-D, or 3-D texture image with a
++ * 24-bit RGB image buffer, without any file references.
++ * This allows an application to send Tachyon images for texture mapping
++ * without having to touch the filesystem.
++ */
++void rt_define_image(const char *name, int xsize, int ysize, int zsize,
++ unsigned char *rgb24data);
++
++/** Set parameters for sky sphere background texturing. */
++void rt_background_sky_sphere(SceneHandle, apivector up,
++ flt topval, flt botval,
++ apicolor topcolor, apicolor botcolor);
++
++
++#endif /* TACHYON_DEP_H */
++
++#endif /* ! TACHYON_NO_DEPRECATED */
+
+
+ /*
+--- a/src/hash.h
++++ /dev/null
+@@ -1,40 +0,0 @@
+-/*
+- * hash.h - This file contains prototypes for hash table code etc.
+- *
+- * $Id: hash.h,v 1.4 2011/02/05 08:10:11 johns Exp $
+- */
+-
+-#ifndef HASH_H
+-#define HASH_H
+-
+-
+-#ifdef __cplusplus
+-extern "C" {
+-#endif
+-
+-typedef struct rt_hash_t {
+- struct hash_node_t **bucket; /**< array of hash nodes */
+- int size; /**< size of the array */
+- int entries; /**< number of entries in table */
+- int downshift; /**< shift cound, used in hash function */
+- int mask; /**< used to select bits for hashing */
+-} rt_hash_t;
+-
+-/**
+- * Return code when a hash key is not find, or there's no collision
+- * upon insertion.
+- */
+-#define HASH_FAIL -1
+-
+-void rt_hash_init(rt_hash_t *, int);
+-int rt_hash_lookup (rt_hash_t *, const char *);
+-int rt_hash_insert (rt_hash_t *, const char *, int);
+-int rt_hash_delete (rt_hash_t *, const char *);
+-void rt_hash_destroy(rt_hash_t *);
+-char *rt_hash_stats (rt_hash_t *);
+-
+-#ifdef __cplusplus
+-}
+-#endif
+-
+-#endif
+--- a/src/util.h
++++ /dev/null
+@@ -1,111 +0,0 @@
+-/*
+- * util.h - This file contains defines for the timer functions...
+- *
+- * $Id: util.h,v 1.23 2012/10/17 04:25:57 johns Exp $
+- */
+-
+-#if !defined(RT_UTIL_H)
+-#define RT_UTIL_H 1
+-
+-#if !defined(USESINGLEFLT)
+-#define ACOS(x) acos(x)
+-#define COS(x) cos(x)
+-#define EXP(x) exp(x)
+-#define FABS(x) fabs(x)
+-#define POW(x, y) pow(x, y)
+-#define SIN(x) sin(x)
+-#define SQRT(x) sqrt(x)
+-#else
+-#define ACOS(x) acosf(x)
+-#define COS(x) cosf(x)
+-#define EXP(x) expf(x)
+-#define FABS(x) fabsf(x)
+-#define POW(x, y) powf(x, y)
+-#define SIN(x) sinf(x)
+-#define SQRT(x) sqrtf(x)
+-#endif
+-
+-typedef void * rt_timerhandle; /* a timer handle */
+-rt_timerhandle rt_timer_create(void); /* create a timer (clears timer) */
+-void rt_timer_destroy(rt_timerhandle); /* create a timer (clears timer) */
+-void rt_timer_start(rt_timerhandle); /* start a timer (clears timer) */
+-void rt_timer_stop(rt_timerhandle); /* stop a timer */
+-double rt_timer_time(rt_timerhandle); /* report elapsed time in seconds */
+-double rt_timer_timenow(rt_timerhandle); /* report elapsed time in seconds */
+-
+-#define RT_RAND_MAX 4294967296.0 /* Max random value from rt_rand */
+-unsigned int rt_rand(unsigned int *); /* thread-safe 32-bit RNG */
+-
+-/* select the RNG to use as the basis for all of the floating point work */
+-#define RT_RNG_USE_KISS93 1
+-
+-#if defined(RT_RNG_USE_QUICK_AND_DIRTY)
+-
+-/* Quick and Dirty RNG */
+-typedef struct {
+- unsigned int randval;
+-} rng_urand_handle;
+-#define RT_RNG_MAX 4294967296.0 /* max urand value: 2^32 */
+-
+-#elif defined(RT_RNG_USE_MERSENNE_TWISTER)
+-
+-/* Mersenne Twister */
+-typedef struct {
+- int mti; /* mti==N+1 means mt[N] is not initialized */
+- unsigned int mt[624]; /* N: the array for the state vector */
+- unsigned int mag01[2];
+-} rng_urand_handle;
+-#define RT_RNG_MAX 4294967296.0 /* max urand value: 2^32 */
+-
+-#elif defined(RT_RNG_USE_KISS93)
+-
+-/* KISS93 */
+-typedef struct {
+- unsigned int x;
+- unsigned int y;
+- unsigned int z;
+- unsigned int w;
+- unsigned int c;
+- unsigned int k;
+- unsigned int m;
+-} rng_urand_handle;
+-#define RT_RNG_MAX 4294967296.0 /* max urand value: 2^32 */
+-
+-#else
+-
+-/* KISS99 */
+-typedef struct {
+- unsigned int x;
+- unsigned int y;
+- unsigned int z;
+- unsigned int c;
+-} rng_urand_handle;
+-#define RT_RNG_MAX 4294967296.0 /* max urand value: 2^32 */
+-
+-#endif
+-
+-void rng_urand_init(rng_urand_handle *rngh);
+-void rng_urand_seed(rng_urand_handle *rngh, unsigned int seed);
+-unsigned int rng_urand(rng_urand_handle *rngh);
+-
+-typedef rng_urand_handle rng_frand_handle;
+-typedef rng_urand_handle rng_drand_handle;
+-
+-void rng_frand_init(rng_frand_handle *rngh);
+-/* generates a random number on [0,1)-real-interval */
+-float rng_frand(rng_frand_handle *rngh);
+-void rng_frand_seed(rng_frand_handle *rngh, unsigned int seed);
+-
+-void rng_drand_init(rng_drand_handle *rngh);
+-/* generates a random number on [0,1)-real-interval */
+-double rng_drand(rng_frand_handle *rngh);
+-void rng_drand_seed(rng_frand_handle *rngh, unsigned int seed);
+-
+-/* routine to help create seeds for parallel runs */
+-unsigned int rng_seed_from_tid_nodeid(int tid, int node);
+-
+-void jitter_offset2f(unsigned int *pval, float *xy);
+-void jitter_disc2f(unsigned int *pval, float *xy);
+-void jitter_sphere3f(rng_frand_handle *rngh, float *dir);
+-
+-#endif
+--- a/src/tachyon_dep.h
++++ /dev/null
+@@ -1,55 +0,0 @@
+-/*
+- * tachyon_dep.h - Deprecated Tachyon APIs that have been replaced by
+- * newer APIs or improved functionality.
+- * Existing applications should be updated to avoid using
+- * these APIs as they will be removed in a future version.
+- *
+- * $Id: tachyon_dep.h,v 1.2 2011/02/15 20:27:58 johns Exp $
+- *
+- */
+-
+-
+-#if !defined(TACHYON_NO_DEPRECATED)
+-
+-#if !defined(TACHYON_DEP_H)
+-#define TACHYON_DEP_H 1
+-
+-#ifdef __cplusplus
+-extern "C" {
+-#endif
+-
+-
+-
+-/**
+- * Define a camera for a perspective projection, given the specified
+- * zoom factor, aspect ratio, antialiasing sample count,
+- * maximum ray recursion depth, and
+- * camera center, view direction, and up direction, in a left-handed
+- * coordinate system.
+- */
+-void rt_camera_setup(SceneHandle, flt zoom, flt aspect,
+- int alias, int maxdepth,
+- apivector ctr, apivector viewdir, apivector updir);
+-
+-/**
+- * Defines a named 1-D, 2-D, or 3-D texture image with a
+- * 24-bit RGB image buffer, without any file references.
+- * This allows an application to send Tachyon images for texture mapping
+- * without having to touch the filesystem.
+- */
+-void rt_define_image(const char *name, int xsize, int ysize, int zsize,
+- unsigned char *rgb24data);
+-
+-/** Set parameters for sky sphere background texturing. */
+-void rt_background_sky_sphere(SceneHandle, apivector up,
+- flt topval, flt botval,
+- apicolor topcolor, apicolor botcolor);
+-
+-
+-#ifdef __cplusplus
+-}
+-#endif
+-#endif
+-
+-#endif
+-
+--- a/src/hash.c
++++ b/src/hash.c
+@@ -8,7 +8,7 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+-#include "hash.h"
++#include "tachyon.h"
+
+ #define HASH_LIMIT 0.5
+
+--- a/src/api.c
++++ b/src/api.c
+@@ -35,7 +35,6 @@
+ #include "vector.h"
+ #include "intersect.h"
+ #include "shade.h"
+-#include "util.h"
+ #include "imap.h"
+ #include "global.h"
+ #include "ui.h"
+--- a/src/box.c
++++ b/src/box.c
+@@ -15,7 +15,6 @@
+ #include "box.h"
+ #include "vector.h"
+ #include "intersect.h"
+-#include "util.h"
+
+ int box_bbox(void * obj, vector * min, vector * max) {
+ box * b = (box *) obj;
+--- a/src/winbmp.c
++++ b/src/winbmp.c
+@@ -12,7 +12,6 @@
+
+ #define TACHYON_INTERNAL 1
+ #include "tachyon.h"
+-#include "util.h"
+ #include "imageio.h" /* error codes etc */
+ #include "winbmp.h" /* the protos for this file */
+
+--- a/src/vol.c
++++ b/src/vol.c
+@@ -14,7 +14,6 @@
+ #include "tachyon.h"
+ #include "macros.h"
+ #include "vector.h"
+-#include "util.h"
+ #include "parallel.h"
+ #include "threads.h"
+ #include "vol.h"
+--- a/src/util.c
++++ b/src/util.c
+@@ -16,7 +16,6 @@
+ #define TACHYON_INTERNAL 1
+ #include "tachyon.h"
+ #include "macros.h"
+-#include "util.h"
+ #include "parallel.h"
+ #include "ui.h"
+
+--- a/src/ui.c
++++ b/src/ui.c
+@@ -12,7 +12,6 @@
+ #define TACHYON_INTERNAL 1
+ #include "tachyon.h"
+ #include "macros.h"
+-#include "util.h"
+ #include "ui.h"
+
+ static void (* rt_static_ui_message) (int, char *) = NULL;
+--- a/src/triangle.c
++++ b/src/triangle.c
+@@ -14,7 +14,6 @@
+ #include "vector.h"
+ #include "macros.h"
+ #include "intersect.h"
+-#include "util.h"
+
+ #define TRIANGLE_PRIVATE
+ #include "triangle.h"
+--- a/src/trace.c
++++ b/src/trace.c
+@@ -16,7 +16,6 @@
+ #include "vector.h"
+ #include "shade.h"
+ #include "camera.h"
+-#include "util.h"
+ #include "threads.h"
+ #include "parallel.h"
+ #include "intersect.h"
+--- a/src/tgafile.c
++++ b/src/tgafile.c
+@@ -11,7 +11,6 @@
+
+ #define TACHYON_INTERNAL 1
+ #include "tachyon.h"
+-#include "util.h"
+ #include "ui.h"
+ #include "imageio.h"
+ #include "tgafile.h"
+--- a/src/texture.c
++++ b/src/texture.c
+@@ -17,7 +17,6 @@
+ #include "imap.h"
+ #include "vector.h"
+ #include "box.h"
+-#include "util.h"
+
+ static texture_methods normal_methods = {
+ free
+--- a/src/sphere.c
++++ b/src/sphere.c
+@@ -14,7 +14,6 @@
+ #include "macros.h"
+ #include "vector.h"
+ #include "intersect.h"
+-#include "util.h"
+
+ #define SPHERE_PRIVATE
+ #include "sphere.h"
+--- a/src/sgirgb.c
++++ b/src/sgirgb.c
+@@ -11,7 +11,6 @@
+
+ #define TACHYON_INTERNAL 1
+ #include "tachyon.h"
+-#include "util.h"
+ #include "imageio.h" /* error codes etc */
+ #include "sgirgb.h"
+
+--- a/src/ring.c
++++ b/src/ring.c
+@@ -14,7 +14,6 @@
+ #include "macros.h"
+ #include "vector.h"
+ #include "intersect.h"
+-#include "util.h"
+
+ #define RING_PRIVATE
+ #include "ring.h"
+--- a/src/render.c
++++ b/src/render.c
+@@ -17,7 +17,6 @@
+ #include "imageio.h"
+ #include "trace.h"
+ #include "render.h"
+-#include "util.h"
+ #include "shade.h"
+ #include "ui.h"
+ #include "grid.h"
+--- a/src/quadric.c
++++ b/src/quadric.c
+@@ -15,7 +15,6 @@
+ #include "quadric.h"
+ #include "vector.h"
+ #include "intersect.h"
+-#include "util.h"
+
+ int quadric_bbox(void * obj, vector * min, vector * max) {
+ return 0;
+--- a/src/psd.c
++++ b/src/psd.c
+@@ -11,7 +11,6 @@
+
+ #define TACHYON_INTERNAL 1
+ #include "tachyon.h"
+-#include "util.h"
+ #include "imageio.h" /* error codes etc */
+ #include "psd.h"
+
+--- a/src/ppm.c
++++ b/src/ppm.c
+@@ -14,7 +14,6 @@
+
+ #define TACHYON_INTERNAL 1
+ #include "tachyon.h"
+-#include "util.h"
+ #include "imageio.h" /* error codes etc */
+ #include "ppm.h"
+
+--- a/src/pngfile.c
++++ b/src/pngfile.c
+@@ -17,7 +17,6 @@
+
+ #define TACHYON_INTERNAL 1
+ #include "tachyon.h"
+-#include "util.h"
+ #include "imageio.h" /* error codes etc */
+ #include "pngfile.h" /* the protos for this file */
+
+--- a/src/plane.c
++++ b/src/plane.c
+@@ -14,7 +14,6 @@
+ #include "macros.h"
+ #include "vector.h"
+ #include "intersect.h"
+-#include "util.h"
+
+ #define PLANE_PRIVATE
+ #include "plane.h"
+--- a/src/parvol.c
++++ b/src/parvol.c
+@@ -13,7 +13,6 @@
+ #include "tachyon.h"
+ #include "macros.h"
+ #include "vector.h"
+-#include "util.h"
+ #include "parallel.h"
+ #include "box.h"
+ #include "parvol.h"
+--- a/src/parallel.c
++++ b/src/parallel.c
+@@ -16,7 +16,6 @@
+ #include "macros.h"
+ #include "parallel.h"
+ #include "tgafile.h"
+-#include "util.h"
+ #include "threads.h"
+
+ #if !defined(_MSC_VER)
+--- a/src/light.c
++++ b/src/light.c
+@@ -14,7 +14,6 @@
+ #include "macros.h"
+ #include "vector.h"
+ #include "intersect.h"
+-#include "util.h"
+
+ #define LIGHT_PRIVATE
+ #include "light.h"
+--- a/src/jpeg.c
++++ b/src/jpeg.c
+@@ -16,7 +16,6 @@
+
+ #define TACHYON_INTERNAL 1
+ #include "tachyon.h"
+-#include "util.h"
+ #include "imageio.h" /* error codes etc */
+ #include "jpeg.h" /* the protos for this file */
+
+--- a/src/imap.c
++++ b/src/imap.c
+@@ -12,7 +12,6 @@
+ #define TACHYON_INTERNAL 1
+ #include "tachyon.h"
+ #include "imap.h"
+-#include "util.h"
+ #include "parallel.h"
+ #include "imageio.h"
+ #include "ui.h"
+--- a/src/imageio.c
++++ b/src/imageio.c
+@@ -16,7 +16,6 @@
+ #define TACHYON_INTERNAL 1
+ #include "tachyon.h"
+ #include "parallel.h"
+-#include "util.h"
+ #include "imageio.h"
+ #include "ppm.h" /* 24-bit and 48-bit PPM files */
+ #include "psd.h" /* 24-bit and 48-bit Photoshop files */
+--- a/src/grid.c
++++ b/src/grid.c
+@@ -15,7 +15,6 @@
+ #include "macros.h"
+ #include "vector.h"
+ #include "intersect.h"
+-#include "util.h"
+ #include "ui.h"
+ #include "parallel.h"
+
+--- a/src/extvol.c
++++ b/src/extvol.c
+@@ -13,7 +13,6 @@
+ #include "tachyon.h"
+ #include "macros.h"
+ #include "vector.h"
+-#include "util.h"
+ #include "parallel.h"
+ #include "threads.h"
+ #include "box.h"
+--- a/src/cylinder.c
++++ b/src/cylinder.c
+@@ -14,7 +14,6 @@
+ #include "macros.h"
+ #include "vector.h"
+ #include "intersect.h"
+-#include "util.h"
+
+ #define CYLINDER_PRIVATE
+ #include "cylinder.h"
+--- a/src/camera.c
++++ b/src/camera.c
+@@ -14,7 +14,6 @@
+ #include "macros.h"
+ #include "vector.h"
+ #include "camera.h"
+-#include "util.h"
+ #include "intersect.h"
+
+ /*
diff --git a/debian/patches/upstream-rationalization-version_script.patch b/debian/patches/upstream-rationalization-version_script.patch
new file mode 100644
index 0000000..494aa74
--- /dev/null
+++ b/debian/patches/upstream-rationalization-version_script.patch
@@ -0,0 +1,146 @@
+Description: rationalization -- version_script
+ Provides a version script [1] for the shipped library.
+ The map was basically generated from the unique header `tachyon.h' with
+ the help of cproto as follows:
+ $ cproto -X 1 -f 0 tachyon.h | sed -e '/^\/\*/d' | tr -d '*()' | rev | cut -d ' ' -f1 | rev ;
+ The version script, along the script to generate it, has been submitted to
+ the upstream maintainer.
+ This patch is transparent for the final developer, and it is also
+ meant to be submitted to the upstream maintainer.
+ [1] https://www.gnu.org/software/gnulib/manual/html_node/LD-Version-Scripts.html
+Origin: debian
+Author: Jerome Benoit <calculus at rezozer.net>
+Last-Update: 2014-10-20
+
+--- /dev/null
++++ b/src/tachyon.map
+@@ -0,0 +1,129 @@
++LIBTACHYON_0.9.9 {
++global:
++rt_timer_create;
++rt_timer_destroy;
++rt_timer_start;
++rt_timer_stop;
++rt_timer_time;
++rt_timer_timenow;
++rt_rand;
++rng_urand_init;
++rng_urand_seed;
++rng_urand;
++rng_frand_init;
++rng_frand;
++rng_frand_seed;
++rng_drand_init;
++rng_drand;
++rng_drand_seed;
++rng_seed_from_tid_nodeid;
++jitter_offset2f;
++jitter_disc2f;
++jitter_sphere3f;
++rt_hash_init;
++rt_hash_lookup;
++rt_hash_insert;
++rt_hash_delete;
++rt_hash_destroy;
++rt_hash_stats;
++rt_vector;
++rt_color;
++rt_set_ui_message;
++rt_set_ui_progress;
++rt_initialize;
++rt_finalize;
++rt_newscene;
++rt_deletescene;
++rt_renderscene;
++rt_outputfile;
++rt_outputformat;
++rt_resolution;
++rt_get_resolution;
++rt_aspectratio;
++rt_get_aspectratio;
++rt_crop_output;
++rt_crop_disable;
++rt_aa_maxsamples;
++rt_verbose;
++rt_normal_fixup_mode;
++rt_image_clamp;
++rt_image_normalize;
++rt_image_gamma;
++rt_rawimage_rgb24;
++rt_rawimage_rgb96f;
++rt_set_numthreads;
++rt_background;
++rt_background_gradient;
++rt_background_mode;
++rt_fog_rendering_mode;
++rt_fog_mode;
++rt_fog_parms;
++rt_trans_max_surfaces;
++rt_trans_mode;
++rt_shadow_filtering;
++rt_boundmode;
++rt_boundthresh;
++rt_camera_projection;
++rt_camera_position;
++rt_camera_position3fv;
++rt_get_camera_position;
++rt_get_camera_position3fv;
++rt_camera_raydepth;
++rt_camera_zoom;
++rt_get_camera_zoom;
++rt_camera_vfov;
++rt_get_camera_vfov;
++rt_camera_frustum;
++rt_camera_dof;
++rt_texture;
++rt_define_teximage_rgb24;
++rt_texture_copy_standard;
++rt_texture_copy_vcstri;
++rt_shadermode;
++rt_phong_shader;
++rt_tex_phong;
++rt_tex_transmode;
++rt_tex_outline;
++rt_rescale_lights;
++rt_light;
++rt_light3fv;
++rt_directional_light;
++rt_directional_light3fv;
++rt_spotlight;
++rt_spotlight3fv;
++rt_light_attenuation;
++rt_ambient_occlusion;
++rt_clip_fv;
++rt_clip_dv;
++rt_clip_off;
++rt_cylinder;
++rt_cylinder3fv;
++rt_fcylinder;
++rt_fcylinder3fv;
++rt_polycylinder;
++rt_polycylinder3fv;
++rt_sphere;
++rt_sphere3fv;
++rt_plane;
++rt_plane3fv;
++rt_ring;
++rt_ring3fv;
++rt_tri;
++rt_tri3fv;
++rt_stri;
++rt_stri3fv;
++rt_vcstri;
++rt_vcstri3fv;
++rt_tristripscnv3fv;
++rt_extvol;
++rt_scalarvol;
++rt_heightfield;
++rt_landscape;
++rt_box;
++rt_quadsphere;
++rt_camera_setup;
++rt_define_image;
++rt_background_sky_sphere;
++
++local: *;
++};
diff --git a/debian/repack b/debian/repack
new file mode 100755
index 0000000..bc1694d
--- /dev/null
+++ b/debian/repack
@@ -0,0 +1,135 @@
+#!/bin/bash
+
+PACKAGE_NAME=tachyon
+
+set -e
+set -u
+
+usage() {
+ echo "Usage: repack --upstream-version <ver> <downloaded file>"
+ exit 1
+ }
+
+if [ "$#" != "3" ]; then
+ usage
+fi
+if [ "$1" != "--upstream-version" ]; then
+ usage
+fi
+if [ ! -f "$3" ]; then
+ if [ -n "$3" ]; then
+ echo "$3 doesn't exist"
+ fi
+ usage
+fi
+UPSTREAM_VERSION="$2"
+UPSTREAM_TARBALLZZ="$3"
+
+DEBIAN_SUFFIX="+ds"
+####DEBIAN_ENCAPSULATEDFOLDERNAME="${PACKAGE_NAME}-usrc"
+
+DEBIAN_UVERSION=${UPSTREAM_VERSION}${DEBIAN_SUFFIX}
+DEBIAN_ROOTFOLDERNAME="${PACKAGE_NAME}-${DEBIAN_UVERSION}.orig"
+DEBIAN_TARBALLXZ="$(dirname $UPSTREAM_TARBALLZZ)/${PACKAGE_NAME}_${DEBIAN_UVERSION}.orig.tar.xz"
+
+REPACK_TMPDIR=`mktemp -d ./repackXXXXXX`
+REPACK_TMPDIR=$(readlink -f "$REPACK_TMPDIR")
+trap "/bin/rm -rf \"$REPACK_TMPDIR\"" QUIT INT EXIT
+
+message() {
+ echo
+ echo "-- -- $1"
+ echo
+ }
+
+message "Repackaging $UPSTREAM_TARBALLZZ"
+
+UPSTREAM_ROOTFOLDER="${REPACK_TMPDIR}/unpacked"
+mkdir "${UPSTREAM_ROOTFOLDER}"
+tar -C "${UPSTREAM_ROOTFOLDER}" -xf "${UPSTREAM_TARBALLZZ}" || unzip -d "${UPSTREAM_ROOTFOLDER}" "${UPSTREAM_TARBALLZZ}"
+if [ `ls -1 "${UPSTREAM_ROOTFOLDER}" | wc -l` -eq 1 ]; then
+ UPSTREAM_ROOTFOLDER="${UPSTREAM_ROOTFOLDER}/`ls -1 "${UPSTREAM_ROOTFOLDER}"`"
+fi
+
+DEBIAN_ROOTFOLDER="${REPACK_TMPDIR}/${DEBIAN_ROOTFOLDERNAME}"
+## repack
+####set -f
+REPACK_WORKING_FOLDER=$(pwd)
+cd "${UPSTREAM_ROOTFOLDER}"
+
+####. "${REPACK_WORKING_FOLDER}/debian/repack.local"
+## wipe out
+find . -name '.#*' | xargs --no-run-if-empty rm --verbose --force
+rm --verbose --force --recursive -- msvc
+rm --verbose --force -- unix/Makefile.msvc
+rm --verbose --force --recursive -- unix/CVS
+rm --verbose --force --recursive -- scenes/CVS
+rm --verbose --force --recursive -- msvc/tachyon/tachyon_ogl/CVS
+rm --verbose --force --recursive -- msvc/tachyon/tachyon/CVS
+rm --verbose --force --recursive -- msvc/tachyon/libtachyon/CVS
+rm --verbose --force --recursive -- msvc/tachyon/CVS
+rm --verbose --force --recursive -- msvc/CVS
+rm --verbose --force --recursive -- demosrc/CVS
+rm --verbose --force --recursive -- src/CVS
+rm --verbose --force --recursive -- docs/CVS
+rm --verbose --force -- docs/fc-english.def
+rm --verbose --force -- docs/algorithmic.sty
+rm --verbose --force -- docs/algorithm.sty
+rm --verbose --force -- docs/datetime.sty
+rm --verbose --force -- docs/fmtcount.sty
+rm --verbose --force -- docs/lstmisc.sty
+rm --verbose --force -- docs/lstlang3.sty
+rm --verbose --force -- docs/lstlang2.sty
+rm --verbose --force -- docs/lstlang1.sty
+rm --verbose --force -- docs/lstdoc.sty
+rm --verbose --force -- docs/listings.sty
+rm --verbose --force -- docs/lineno.sty
+rmdir --verbose --ignore-fail-on-non-empty -- compile
+## clean up
+rm --verbose --force --recursive -- docs/tachyon
+rm --verbose --force -- docs/tachyon.{aux,ind,toc,idx,log,ilg}
+rm --verbose --force -- docs/tachyon.{dvi,ps,pdf}
+rm --verbose --force -- docs/tachyon.html.tar.gz
+## remove executable bit for source files
+chmod --changes a-x src/hash.c
+chmod --changes a-x src/hash.h
+chmod --changes a-x src/pngfile.h
+chmod --changes a-x demosrc/spaceball.c
+chmod --changes a-x demosrc/trackball.c
+chmod --changes a-x demosrc/trackball.h
+chmod --changes a-x scenes/imaps/*.ppm
+chmod --changes a-x scenes/imaps/*.tga
+chmod --changes a-x docs/pdfdraftcopy.sty
+#:
+
+cd ${REPACK_WORKING_FOLDER}
+set +f
+## end
+####if [ -n "${DEBIAN_ENCAPSULATEDFOLDERNAME}" ]; then
+#### mkdir "${DEBIAN_ROOTFOLDER}"
+#### mv "${UPSTREAM_ROOTFOLDER}" "${DEBIAN_ROOTFOLDER}/${DEBIAN_ENCAPSULATEDFOLDERNAME}"
+####else
+ mv "${UPSTREAM_ROOTFOLDER}" "${DEBIAN_ROOTFOLDER}"
+####fi
+
+REPACK_TARBALL="${REPACK_TMPDIR}/repacked.tar"
+REPACK_TARBALLXZ="${REPACK_TARBALL}.xz"
+( cd "${REPACK_TMPDIR}" && \
+ find -L "${DEBIAN_ROOTFOLDERNAME}" -xdev -type f -print | sort | \
+ tar -T- --owner=root --group=root --mode=a+rX --create --file "${REPACK_TARBALL}" \
+ )
+xz -9e < "${REPACK_TARBALL}" > "${REPACK_TARBALLXZ}"
+mv "${REPACK_TARBALLXZ}" "${DEBIAN_TARBALLXZ}"
+
+message "Testing ${DEBIAN_TARBALLXZ}"
+
+xz --verbose --test "${DEBIAN_TARBALLXZ}"
+
+message "Printing information about ${DEBIAN_TARBALLXZ}"
+
+xz --verbose --list "${DEBIAN_TARBALLXZ}"
+
+message "Quitting"
+
+##
+## eos
diff --git a/debian/rules b/debian/rules
index 0c1ca08..fbb1e11 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,21 +1,164 @@
#!/usr/bin/make -f
-include /usr/share/cdbs/1/rules/debhelper.mk
-include /usr/share/cdbs/1/class/makefile.mk
+DEB_PKG_DIR = $(abspath $(dir $(filter %rules, $(MAKEFILE_LIST))))
+export DEB_PKG_VERSION = $(shell dpkg-parsechangelog -l$(DEB_PKG_DIR)/changelog | sed -n -e '/^Version:/s/Version: //p')
-DEB_MAKE_INVOKE += -C unix
+DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
-DEB_MAKE_BUILD_TARGET=linux-base-thr
-DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH)
+ifneq (,$(wildcard src/Makefile.am))
+DEB_PKG_LT_VERSION = $(shell sed -n -e '/^LIBTACHYON_LT_VERSION/s/LIBTACHYON_LT_VERSION[\t ]*=[\t ]*\([0-9]*:[0-9]*:[0-9]*\)[\t ]*$$/\1/p' src/Makefile.am)
+else
+DEB_PKG_LT_VERSION = 0
+endif
+
+DEB_VIRT_LIBTACHYON_LISTOF_VARIANT = serial mt-openmp mt-thr openmpi-openmp openmpi-thr openmpi mpich-openmp mpich-thr mpich
+DEB_VIRT_LIBTACHYON_VARIANT_LISTOF_DHFILE = .symbols .install -dev.install
+DEB_VIRT_LIBTACHYON_FLAVOUR_LISTOF_DHFILE = \
+ $(DEB_VIRT_LIBTACHYON_VARIANT_LISTOF_DHFILE) .lintian-overrides .postinst .prerm -dev.postinst -dev.prerm
+DEB_VIRT_TACHYON_LISTOF_VARIANT = nox ogl
+DEB_VIRT_TACHYON_LISTOF_DHFILE = .install .manpages .postinst .prerm
+
+# deduced variables
+DEB_PKG_LT_CURRENT := $(word 1, $(subst :, $(EMPTY), $(DEB_PKG_LT_VERSION)))
+DEB_PKG_LT_REVISION := $(word 2, $(subst :, $(EMPTY), $(DEB_PKG_LT_VERSION)))
+DEB_PKG_LT_AGE := $(word 3, $(subst :, $(EMPTY), $(DEB_PKG_LT_VERSION)))
+DEB_VIRT_LIBTACHYON_LISTOF_FLAVOUR = \
+ $(sort $(foreach var, $(DEB_VIRT_LIBTACHYON_LISTOF_VARIANT), $(firstword $(subst -, $(EMPTY), $(var)))))
+#
+DEB_ARCH_REVLISTOF_OPENMPI ?= \
+ alpha amd64 armel armhf arm64 i386 ia64 powerpc powerpcspe \
+ ppc64 ppc64el sparc sparc64 kfreebsd-i386 kfreebsd-amd64 \
+ hurd-i386 mips64 mips64el mips mipsel
+DEB_ARCH_REVLISTOF_MPICH ?= any
-# did not get past compile error for src/thread.h
-ifeq ($(DEB_BUILD_ARCH), kfreebsd-i386)
- DEB_MAKE_BUILD_TARGET = linux
+ifneq (,$(wildcard /usr/share/mpi-default-dev/debian_defaults))
+include /usr/share/mpi-default-dev/debian_defaults
+DEB_ARCH_DEFAULT_MPI_IMPL = $(ARCH_DEFAULT_MPI_IMPL)
+else
+DEB_ARCH_DEFAULT_MPI_IMPL = mpich
endif
-ifeq ($(DEB_BUILD_ARCH), kfreebsd-amd64)
- DEB_MAKE_BUILD_TARGET = linux-64
+
+ifeq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+ CFLAGS += -O3
endif
-build-indep:
- $(MAKE) -C docs pdf
+CC_mt = gcc
+CC_openmpi = mpicc.openmpi
+CC_mpich = mpicc.mpich
+
+default:
+ @uscan --no-conf --dehs --report || true
+
+%:
+ dh $@ --with autoreconf --parallel
+
+override_dh_auto_configure:
+ $(foreach lf, $(DEB_VIRT_LIBTACHYON_LISTOF_FLAVOUR), \
+ dh_auto_configure -B _build/$(lf) -- --srcdir=../.. --with-libflavour=$(lf) CFLAGS="$(CFLAGS)" CC=$(CC_$(lf)) ;\
+ )
+
+override_dh_auto_build-indep:
+ $(MAKE) -C docs all
+
+override_dh_auto_build-arch:
+ $(foreach lf, $(DEB_VIRT_LIBTACHYON_LISTOF_FLAVOUR), dh_auto_build -a -B _build/$(lf) ;)
+
+override_dh_auto_test-indep:
+
+DEB_ADHOC_SCENES_ACTION_SH := debian/adhoc/scenes/action.sh
+override_dh_prep-arch:
+ $(foreach lf, $(DEB_VIRT_LIBTACHYON_LISTOF_FLAVOUR), \
+ $(foreach dhf, $(DEB_VIRT_LIBTACHYON_FLAVOUR_LISTOF_DHFILE), \
+ sed \
+ -e "s|@MULTIARCH@|$(DEB_HOST_MULTIARCH)|g" \
+ -e "s|@LT_CURRENT@|$(DEB_PKG_LT_CURRENT)|g;s|@LT_REVISION@|$(DEB_PKG_LT_REVISION)|g;s|@LT_AGE@|$(DEB_PKG_LT_AGE)|g" \
+ -e "s|@LIBFLAVOUR@|$(lf)|g" \
+ -e "s|@LISTOF_LIBVARIANT@|$(filter $(lf)%, $(DEB_VIRT_LIBTACHYON_LISTOF_VARIANT))|g" \
+ -e "s|@LISTOF_LIBVARIANTSONAME@|$(addsuffix $(DEB_PKG_LT_CURRENT), $(addprefix libtachyon-, $(filter $(lf)%, $(DEB_VIRT_LIBTACHYON_LISTOF_VARIANT))))|g" \
+ -e "/##CaseTableOfLibraryPriorities##/r debian/templates/libtachyon-LIBFLAVOUR-casetableof_priority.rin" \
+ -e "/##CaseTableOfLibraryPriorities##/d" \
+ debian/templates/libtachyon-LIBFLAVOUR$(dhf).in > debian/libtachyon-$(lf)-$(DEB_PKG_LT_CURRENT)$(dhf) ;\
+ ) \
+ )
+ $(foreach lf, $(DEB_VIRT_LIBTACHYON_LISTOF_FLAVOUR), \
+ $(foreach lv, $(filter $(lf)%, $(DEB_VIRT_LIBTACHYON_LISTOF_VARIANT)), \
+ $(foreach dhf, $(DEB_VIRT_LIBTACHYON_VARIANT_LISTOF_DHFILE), \
+ sed \
+ -e "s|@MULTIARCH@|$(DEB_HOST_MULTIARCH)|g" \
+ -e "s|@LT_CURRENT@|$(DEB_PKG_LT_CURRENT)|g;s|@LT_REVISION@|$(DEB_PKG_LT_REVISION)|g;s|@LT_AGE@|$(DEB_PKG_LT_AGE)|g" \
+ -e "s|@LIBFLAVOUR@|$(lf)|g" \
+ -e "s|@LIBVARIANT@|$(lv)|g" \
+ debian/templates/libtachyon-LIBVARIANT$(dhf).in >> debian/libtachyon-$(lf)-$(DEB_PKG_LT_CURRENT)$(dhf) ;\
+ ) \
+ ) \
+ )
+ $(foreach vt, $(DEB_VIRT_TACHYON_LISTOF_VARIANT), \
+ $(foreach dhf, $(DEB_VIRT_TACHYON_LISTOF_DHFILE), \
+ sed -e "s|@VARIANT@|$(vt)|g" \
+ debian/templates/tachyon-bin-VARIANT$(dhf).in > debian/tachyon-bin-$(vt)$(dhf) ;\
+ ) \
+ )
+ sed -e "s+ at DEB_VIRT_TACHYON_LISTOF_VARIANT@+$(subst $(EMPTY),\|,$(strip $(DEB_VIRT_TACHYON_LISTOF_VARIANT)))+" \
+ $(DEB_ADHOC_SCENES_ACTION_SH).in > $(DEB_ADHOC_SCENES_ACTION_SH)
+ chmod --reference $(DEB_ADHOC_SCENES_ACTION_SH).in $(DEB_ADHOC_SCENES_ACTION_SH)
+ dh_prep -a
+
+override_dh_auto_install-arch:
+ $(foreach lf, $(DEB_VIRT_LIBTACHYON_LISTOF_FLAVOUR), dh_auto_install -a -B _build/$(lf) ;)
+
+DEB_AUTO_INSTALL_MAKEFLAGS = TOPSRCDIR=$(CURDIR) DESTDIR=$(CURDIR)/debian/tmp
+override_dh_auto_install-indep:
+ $(MAKE) -C docs install $(DEB_AUTO_INSTALL_MAKEFLAGS)
+ $(MAKE) -C pkgextra/volpack/data install $(DEB_AUTO_INSTALL_MAKEFLAGS)
+ $(MAKE) -C pkgextra/virtual-reality/graphics install $(DEB_AUTO_INSTALL_MAKEFLAGS)
+
+override_dh_compress-indep:
+ dh_compress -X.pdf -Xexamples
+
+override_dh_shlibdeps-arch:
+ dh_shlibdeps -a -l$(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH) -- --ignore-missing-info
+
+DEB_VARNAME_LIBTACHYON_MPI_DEFAULT_DEV := default:libtachyon-mpi-dev
+override_dh_gencontrol:
+ dh_gencontrol -- -V$(DEB_VARNAME_LIBTACHYON_MPI_DEFAULT_DEV)=libtachyon-$(DEB_ARCH_DEFAULT_MPI_IMPL)-$(DEB_PKG_LT_CURRENT)-dev
+
+override_dh_auto_clean-arch:
+ dh_auto_clean -a
+ rm -rf _build
+ rm -f config_tachyon.h.in
+ rm -f $(DEB_ADHOC_SCENES_ACTION_SH)
+ rm -f $(foreach vt, $(DEB_VIRT_TACHYON_LISTOF_VARIANT), $(foreach dhf, $(DEB_VIRT_TACHYON_LISTOF_DHFILE), debian/tachyon-bin-$(vt)$(dhf) ))
+ rm -f $(foreach lf, $(DEB_VIRT_LIBTACHYON_LISTOF_FLAVOUR), $(foreach dhf, $(DEB_VIRT_LIBTACHYON_FLAVOUR_LISTOF_DHFILE), debian/libtachyon-$(lf)-$(DEB_PKG_LT_CURRENT)$(dhf) ))
+
+override_dh_auto_clean-indep:
+ dh_auto_clean -i
+ $(MAKE) -C docs clean
+ $(MAKE) -C docs distclean || true
+ $(MAKE) -C pkgextra/volpack/data distclean || true
+ $(MAKE) -C pkgextra/virtual-reality/graphics distclean || true
+
+override_dh_strip-arch:
+ $(foreach vt, $(DEB_VIRT_TACHYON_LISTOF_VARIANT), dh_strip --package=tachyon-bin-$(vt) ;)
+ $(foreach lf, $(DEB_VIRT_LIBTACHYON_LISTOF_FLAVOUR), \
+ dh_strip --package=libtachyon-$(lf)-$(DEB_PKG_LT_CURRENT) --dbg-package=libtachyon-$(lf)-$(DEB_PKG_LT_CURRENT)-dbg ;\
+ )
+
+get-orig-source:
+ uscan --no-conf --download-current-version --verbose
+
+update-debian-control: debian/templates/control.in debian/rules debian/templates/control-description-mainpart.rin
+ sed \
+ -e "s|@LT_CURRENT@|$(DEB_PKG_LT_CURRENT)|g" \
+ -e "s|@LIBTACHYON_MPI_DEFAULT_DEV@|$(DEB_VARNAME_LIBTACHYON_MPI_DEFAULT_DEV)|g" \
+ -e "s|@ARCH_REVLISTOF_OPENMPI@|$(DEB_ARCH_REVLISTOF_OPENMPI)|g" \
+ -e "s|@ARCH_REVLISTOF_MPICH@|$(DEB_ARCH_REVLISTOF_MPICH)|g" \
+ -e "s|@SYNOPSIS_LIBRARY@|Parallel/Multiprocessor Ray Tracing Library|g" \
+ -e "s|@SYNOPSIS_TOOLS@|Parallel/Multiprocessor Standalone Ray Tracer|g" \
+ -e "s|@SYNOPSIS_MANUAL@|Parallel/Multiprocessor Ray Tracing System|g" \
+ -e "/##DescriptionMainPart##/r $(lastword $^)" \
+ -e "/##DescriptionMainPart##/d" \
+ $< > debian/control
+
+EMPTY :=
+EMPTY +=
diff --git a/debian/source/lintian-overrides b/debian/source/lintian-overrides
new file mode 100644
index 0000000..8b06cb1
--- /dev/null
+++ b/debian/source/lintian-overrides
@@ -0,0 +1 @@
+debian-watch-may-check-gpg-signature
diff --git a/debian/source/options b/debian/source/options
new file mode 100644
index 0000000..22a4de9
--- /dev/null
+++ b/debian/source/options
@@ -0,0 +1,2 @@
+compression = xz
+compression-level = 9
diff --git a/debian/tachyon-doc.doc-base b/debian/tachyon-doc.doc-base
new file mode 100644
index 0000000..4aec7a1
--- /dev/null
+++ b/debian/tachyon-doc.doc-base
@@ -0,0 +1,16 @@
+Document: tachyon
+Title: Tachyon User's Guide (Under Development)
+Author: John E. Stone
+Abstract:
+ This document contains information on using Tachyon to create ray
+ traced images, and animations. Information on the parallel raytracing
+ engine and its use as an external rendering library is contained in
+ other documents.
+Section: Science/Mathematics
+
+Format: HTML
+Index: /usr/share/doc/tachyon-doc/html/index.html
+Files: /usr/share/doc/tachyon-doc/html/*.html
+
+Format: PDF
+Files: /usr/share/doc/tachyon-doc/tachyon.pdf
diff --git a/debian/tachyon-doc.docs b/debian/tachyon-doc.docs
index 5b94ae8..63ab0f2 100644
--- a/debian/tachyon-doc.docs
+++ b/debian/tachyon-doc.docs
@@ -1 +1,3 @@
-docs/tachyon.pdf
+debian/tmp/usr/share/doc/tachyon/README.unix
+debian/tmp/usr/share/doc/tachyon/tachyon.pdf
+debian/tmp/usr/share/doc/tachyon/html/
diff --git a/debian/tachyon-doc.examples b/debian/tachyon-doc.examples
new file mode 100644
index 0000000..5c8d321
--- /dev/null
+++ b/debian/tachyon-doc.examples
@@ -0,0 +1,2 @@
+debian/tmp/usr/share/doc/tachyon/examples/scenes/
+debian/tmp/usr/share/doc/tachyon/examples/demosrc/
diff --git a/debian/tachyon-doc.links b/debian/tachyon-doc.links
new file mode 100644
index 0000000..78ab472
--- /dev/null
+++ b/debian/tachyon-doc.links
@@ -0,0 +1,5 @@
+usr/share/doc/tachyon-doc/examples/scenes/imaps usr/share/doc/tachyon-doc/examples/demosrc/imaps
+usr/share/doc/tachyon-doc/examples/scenes/tpoly usr/share/doc/tachyon-doc/examples/demosrc/tpoly
+usr/share/doc/tachyon-doc/examples/scenes/vol usr/share/doc/tachyon-doc/examples/demosrc/vol
+usr/share/doc/tachyon-doc/examples/scenes/action.sh usr/share/doc/tachyon-doc/examples/scenes/clean.sh
+usr/share/doc/tachyon-doc/examples/scenes/vol/brain.256x256x109 usr/share/doc/tachyon-doc/examples/scenes/vol/head.256x256x109
diff --git a/debian/tachyon.1 b/debian/tachyon.1
deleted file mode 100644
index 07d0773..0000000
--- a/debian/tachyon.1
+++ /dev/null
@@ -1,291 +0,0 @@
-.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.36.
-.TH TACHYON "1" "May 2008" "Tachyon Parallel/Multiprocessor Ray Tracer Version 0.98" "User Commands"
-.SH NAME
-Tachyon \- parallel ray-tracer
-.SH DESCRIPTION
-Tachyon Parallel/Multiprocessor Ray Tracer Version 0.98
-Copyright 1994\-2007, John E. Stone <johns at megapixel.com>
-\fB\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\fR
-Unrecognized parameter/option flag: \fB\-\-help\fR
-Usage:
-.IP
-tachyon/usr/bin/tachyon modelfile [options]
-.SS "Model file formats supported:"
-.IP
-filename.dat \fB\-\-\fR The model files originated with this package.
-filaname.ac \fB\-\-\fR AC3D model files.
-filename.nff \fB\-\-\fR The NFF scene format used by Eric Haines' SPD.
-.PP
-Valid options: (** denotes default behaviour)
-\fB\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\fR
-Message Options:
-.HP
-+V verbose messages on
-.HP
-\fB\-V\fR verbose messages off **
-.SS "Speed Tuning Options:"
-.TP
-\fB\-numthreads\fR xxx
-(** default is auto\-determined)
-.HP
-\fB\-nobounding\fR
-.TP
-\fB\-boundthresh\fR xxx
-(** default threshold is 16)
-.SS "Shading Options:"
-.TP
-\fB\-fullshade\fR
-best quality rendering (and slowest) **
-.TP
-\fB\-mediumshade\fR
-good quality rendering, but no shadows
-.TP
-\fB\-lowshade\fR
-low quality rendering, preview (and fast)
-.TP
-\fB\-lowestshade\fR
-worst quality rendering, preview (and fastest)
-.SS "Lighting Options:"
-.TP
-\fB\-rescale_lights\fR xxx rescale light intensity values by
-specified factor (performed before other
-lighting overrides take effect)
-.TP
-\fB\-auto_skylight\fR xxx
-force use of ambient occlusion lighting,
-auto\-rescaling direct light sources to
-compensate for ambient occlusion factor.
-(use value 0.7 as a good starting point)
-.TP
-\fB\-add_skylight\fR xxx
-force use of ambient occlusion lighting,
-manually\-rescaling direct light sources to
-compensate for ambient occlusion factor.
-.HP
-\fB\-skylight_samples\fR xxx number of sample rays to shoot.
-.SS "Specular Highlight Shading Options:"
-.TP
-\fB\-shade_phong\fR
-Phong specular highlights
-.TP
-\fB\-shade_blinn\fR
-Blinn's specular highlights**
-.TP
-\fB\-shade_blinn_fast\fR
-fast approximation to Blinn's highlights
-.TP
-\fB\-shade_nullphong\fR
-disable specular highlights
-.SS "Transparency Shading Options:"
-.TP
-\fB\-trans_orig\fR
-Original implementation**
-.TP
-\fB\-trans_vmd\fR
-Opacity post\-multiply used by VMD
-.SS "Surface Normal/Winding Order Fixup Mode:"
-.TP
-\fB\-normalfixup\fR [off | flip | guess]
-(**off is default)
-.SS "Antialiasing Options:"
-.TP
-\fB\-aasamples\fR xxx
-(maximum supersamples taken per pixel)
-(** default is 0, or scene file determined)
-.SS "Output Options:"
-.TP
-\fB\-res\fR Xres Yres
-override scene\-defined output image size
-.TP
-\fB\-o\fR outfile.tga
-set output file name
-.TP
-\fB\-clamp\fR
-clamp pixel values to [0 to 1) (** default)
-.TP
-\fB\-normalize\fR
-normalize pixel values to [0 to 1)
-.TP
-\fB\-gamma\fR val
-normalize apply gamma correction
-.TP
-\fB\-format\fR BMP
-24\-bit Windows BMP (uncompressed)
-.TP
-\fB\-format\fR JPEG
-XXX Not compiled into this binary XXX
-.TP
-\fB\-format\fR PNG
-24\-bit PNG (compressed, lossless)
-.TP
-\fB\-format\fR PPM
-24\-bit PPM (uncompressed)
-.TP
-\fB\-format\fR PPM48
-48\-bit PPM (uncompressed)
-.TP
-\fB\-format\fR PSD48
-48\-bit PSD (uncompressed)
-.TP
-\fB\-format\fR RGB
-24\-bit SGI RGB (uncompressed)
-.TP
-\fB\-format\fR TARGA
-24\-bit Targa (uncompressed) **
-.SS "Animation Related Options:"
-.TP
-\fB\-camfile\fR filename.cam
-Animate using file of camera positions.
-.TP
-\fB\-nosave\fR
-Disable writing of output frames to disk
-(only used for doing real\-time rendering)
-.PP
-Copyright 1994\-2007, John E. Stone <johns at megapixel.com>
-\fB\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\fR
-Unrecognized parameter/option flag: \fB\-\-version\fR
-Usage:
-.IP
-tachyon/usr/bin/tachyon modelfile [options]
-.SS "Model file formats supported:"
-.IP
-filename.dat \fB\-\-\fR The model files originated with this package.
-filaname.ac \fB\-\-\fR AC3D model files.
-filename.nff \fB\-\-\fR The NFF scene format used by Eric Haines' SPD.
-.PP
-Valid options: (** denotes default behaviour)
-\fB\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\fR
-Message Options:
-.HP
-+V verbose messages on
-.HP
-\fB\-V\fR verbose messages off **
-.SS "Speed Tuning Options:"
-.TP
-\fB\-numthreads\fR xxx
-(** default is auto\-determined)
-.HP
-\fB\-nobounding\fR
-.TP
-\fB\-boundthresh\fR xxx
-(** default threshold is 16)
-.SS "Shading Options:"
-.TP
-\fB\-fullshade\fR
-best quality rendering (and slowest) **
-.TP
-\fB\-mediumshade\fR
-good quality rendering, but no shadows
-.TP
-\fB\-lowshade\fR
-low quality rendering, preview (and fast)
-.TP
-\fB\-lowestshade\fR
-worst quality rendering, preview (and fastest)
-.SS "Lighting Options:"
-.TP
-\fB\-rescale_lights\fR xxx rescale light intensity values by
-specified factor (performed before other
-lighting overrides take effect)
-.TP
-\fB\-auto_skylight\fR xxx
-force use of ambient occlusion lighting,
-auto\-rescaling direct light sources to
-compensate for ambient occlusion factor.
-(use value 0.7 as a good starting point)
-.TP
-\fB\-add_skylight\fR xxx
-force use of ambient occlusion lighting,
-manually\-rescaling direct light sources to
-compensate for ambient occlusion factor.
-.HP
-\fB\-skylight_samples\fR xxx number of sample rays to shoot.
-.SS "Specular Highlight Shading Options:"
-.TP
-\fB\-shade_phong\fR
-Phong specular highlights
-.TP
-\fB\-shade_blinn\fR
-Blinn's specular highlights**
-.TP
-\fB\-shade_blinn_fast\fR
-fast approximation to Blinn's highlights
-.TP
-\fB\-shade_nullphong\fR
-disable specular highlights
-.SS "Transparency Shading Options:"
-.TP
-\fB\-trans_orig\fR
-Original implementation**
-.TP
-\fB\-trans_vmd\fR
-Opacity post\-multiply used by VMD
-.SS "Surface Normal/Winding Order Fixup Mode:"
-.TP
-\fB\-normalfixup\fR [off | flip | guess]
-(**off is default)
-.SS "Antialiasing Options:"
-.TP
-\fB\-aasamples\fR xxx
-(maximum supersamples taken per pixel)
-(** default is 0, or scene file determined)
-.SS "Output Options:"
-.TP
-\fB\-res\fR Xres Yres
-override scene\-defined output image size
-.TP
-\fB\-o\fR outfile.tga
-set output file name
-.TP
-\fB\-clamp\fR
-clamp pixel values to [0 to 1) (** default)
-.TP
-\fB\-normalize\fR
-normalize pixel values to [0 to 1)
-.TP
-\fB\-gamma\fR val
-normalize apply gamma correction
-.TP
-\fB\-format\fR BMP
-24\-bit Windows BMP (uncompressed)
-.TP
-\fB\-format\fR JPEG
-XXX Not compiled into this binary XXX
-.TP
-\fB\-format\fR PNG
-24\-bit PNG (compressed, lossless)
-.TP
-\fB\-format\fR PPM
-24\-bit PPM (uncompressed)
-.TP
-\fB\-format\fR PPM48
-48\-bit PPM (uncompressed)
-.TP
-\fB\-format\fR PSD48
-48\-bit PSD (uncompressed)
-.TP
-\fB\-format\fR RGB
-24\-bit SGI RGB (uncompressed)
-.TP
-\fB\-format\fR TARGA
-24\-bit Targa (uncompressed) **
-.SS "Animation Related Options:"
-.TP
-\fB\-camfile\fR filename.cam
-Animate using file of camera positions.
-.TP
-\fB\-nosave\fR
-Disable writing of output frames to disk
-(only used for doing real\-time rendering)
-.SH "SEE ALSO"
-The full documentation for
-.B Tachyon
-is maintained as a Texinfo manual. If the
-.B info
-and
-.B Tachyon
-programs are properly installed at your site, the command
-.IP
-.B info Tachyon
-.PP
-should give you access to the complete manual.
diff --git a/debian/tachyon.docs b/debian/tachyon.docs
deleted file mode 100644
index 8230d18..0000000
--- a/debian/tachyon.docs
+++ /dev/null
@@ -1,2 +0,0 @@
-README
-Changes
diff --git a/debian/tachyon.install b/debian/tachyon.install
deleted file mode 100644
index 807d85e..0000000
--- a/debian/tachyon.install
+++ /dev/null
@@ -1 +0,0 @@
-compile/*/tachyon usr/bin
diff --git a/debian/tachyon.manpages b/debian/tachyon.manpages
deleted file mode 100644
index 263368b..0000000
--- a/debian/tachyon.manpages
+++ /dev/null
@@ -1 +0,0 @@
-debian/tachyon.1
diff --git a/debian/templates/control-description-mainpart.rin b/debian/templates/control-description-mainpart.rin
new file mode 100644
index 0000000..35ee23c
--- /dev/null
+++ b/debian/templates/control-description-mainpart.rin
@@ -0,0 +1,11 @@
+ Tachyon is a portable, high performance parallel ray tracing system
+ supporting MPI and multithreaded implementations. Tachyon is built as
+ a C callable library, which can be used within applications.
+ .
+ Tachyon implements all of the basic geometric primitives such as
+ triangles, planes, spheres, cylinders, etc. Some of the goals in
+ developing Tachyon were to make it fast and for it to parallelize
+ well. These are what set it apart from more full-featured programs
+ like POV-Ray, Rayshade, and others. Tachyon supports enough features
+ to be an excellent alternative to slower programs for demanding
+ animation and scientific visualization tasks.
diff --git a/debian/templates/control.in b/debian/templates/control.in
new file mode 100644
index 0000000..5c9227f
--- /dev/null
+++ b/debian/templates/control.in
@@ -0,0 +1,271 @@
+Source: tachyon
+Section: math
+Priority: optional
+Maintainer: Debian Science Maintainers <debian-science-maintainers at lists.alioth.debian.org>
+Uploaders: Jerome Benoit <calculus at rezozer.net>
+Build-Depends:
+ debhelper (>= 9),
+ autotools-dev, autoconf-archive, autoconf-gl-macros, dh-autoreconf, libtool, pkg-config, help2man,
+ mpi-default-dev,
+ libmpich-dev,
+ libjpeg-dev (>=1:1.3.1-10),
+ libpng-dev,
+ libgl1-mesa-dev | libgl-dev
+Build-Conflicts:
+ glx-diversions
+Build-Depends-Indep:
+ texlive-latex-base, texlive-latex-recommended, texlive-latex-extra,
+ texlive-science, texlive-humanities,
+ latex2html,
+ rdfind, symlinks
+Standards-Version: 3.9.6
+Homepage: http://jedi.ks.uiuc.edu/~johns/raytracer/
+Vcs-Git: git://anonscm.debian.org/debian-science/packages/tachyon.git
+Vcs-Browser: http://anonscm.debian.org/gitweb/?p=debian-science/packages/tachyon.git
+
+Package: libtachyon-serial- at LT_CURRENT@
+Provides: libtachyon
+Section: libs
+Priority: extra
+Architecture: any
+Pre-Depends: ${misc:Pre-Depends}
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Suggests: tachyon-doc
+Multi-Arch: same
+Description: @SYNOPSIS_LIBRARY@ - runtime - serial flavour
+ ##DescriptionMainPart##
+ .
+ This package provides the shared library required to run third party
+ program compiled against the tachyon C library built against OpenMPI.
+ To compile your own programs you also need to install the concomitant
+ libtachyon-serial- at LT_CURRENT@-dev package.
+
+Package: libtachyon-serial- at LT_CURRENT@-dev
+Provides: libtachyon-dev
+Section: libdevel
+Priority: extra
+Architecture: any
+Depends: libtachyon-dev-common (= ${source:Version}), libtachyon-serial- at LT_CURRENT@ (= ${binary:Version}), ${misc:Depends}
+Multi-Arch: same
+Description: @SYNOPSIS_LIBRARY@ - development - serial flavour
+ ##DescriptionMainPart##
+ .
+ This package contains the static libraries and symbolic links that
+ third party developers using the tachyon C library built for serial
+ platforms.
+
+Package: libtachyon-serial- at LT_CURRENT@-dbg
+Provides: libtachyon-dbg
+Section: debug
+Priority: extra
+Architecture: @ARCH_REVLISTOF_OPENMPI@
+Depends: libtachyon-serial- at LT_CURRENT@ (= ${binary:Version}), ${misc:Depends}
+Multi-Arch: same
+Description: @SYNOPSIS_LIBRARY@ - debug package - serial flavour
+ ##DescriptionMainPart##
+ .
+ This package provides the debugging symbols for the libraries from
+ the libtachyon-serial- at LT_CURRENT@-dev package.
+
+Package: libtachyon-mt- at LT_CURRENT@
+Provides: libtachyon
+Replaces: libtachyon-0.99
+Section: libs
+Architecture: any
+Pre-Depends: ${misc:Pre-Depends}
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Suggests: tachyon-doc
+Multi-Arch: same
+Description: @SYNOPSIS_LIBRARY@ - runtime - MT flavour
+ ##DescriptionMainPart##
+ .
+ This package provides the shared library required to run third party
+ program compiled against the tachyon C library built with multithreading.
+ To compile your own programs you also need to install the concomitant
+ libtachyon-mt- at LT_CURRENT@-dev package.
+
+Package: libtachyon-mt- at LT_CURRENT@-dev
+Provides: libtachyon-dev
+Section: libdevel
+Architecture: any
+Depends: libtachyon-dev-common (= ${source:Version}), libtachyon-mt- at LT_CURRENT@ (= ${binary:Version}), ${misc:Depends}
+Multi-Arch: same
+Description: @SYNOPSIS_LIBRARY@ - development - MT flavour
+ ##DescriptionMainPart##
+ .
+ This package contains the static libraries and symbolic links that
+ third party developers using the tachyon C library built with
+ multithreading will need.
+
+Package: libtachyon-mt- at LT_CURRENT@-dbg
+Provides: libtachyon-dbg
+Section: debug
+Priority: extra
+Architecture: any
+Depends: libtachyon-mt- at LT_CURRENT@ (= ${binary:Version}), ${misc:Depends}
+Multi-Arch: same
+Description: @SYNOPSIS_LIBRARY@ - debug package - MT flavour
+ ##DescriptionMainPart##
+ .
+ This package provides the debugging symbols for the libraries from
+ the libtachyon-mt- at LT_CURRENT@-dev package.
+
+Package: libtachyon-openmpi- at LT_CURRENT@
+Provides: libtachyon
+Section: libs
+Priority: extra
+Architecture: @ARCH_REVLISTOF_OPENMPI@
+Pre-Depends: ${misc:Pre-Depends}
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Suggests: tachyon-doc
+Multi-Arch: same
+Description: @SYNOPSIS_LIBRARY@ - runtime - OpenMPI flavour
+ ##DescriptionMainPart##
+ .
+ This package provides the shared library required to run third party
+ program compiled against the tachyon C library built against OpenMPI.
+ To compile your own programs you also need to install the concomitant
+ libtachyon-openmpi- at LT_CURRENT@-dev package.
+
+Package: libtachyon-openmpi- at LT_CURRENT@-dev
+Provides: libtachyon-dev
+Section: libdevel
+Priority: extra
+Architecture: @ARCH_REVLISTOF_OPENMPI@
+Depends: libtachyon-dev-common (= ${source:Version}), libtachyon-openmpi- at LT_CURRENT@ (= ${binary:Version}), ${misc:Depends}
+Multi-Arch: same
+Description: @SYNOPSIS_LIBRARY@ - development - OpenMPI flavour
+ ##DescriptionMainPart##
+ .
+ This package contains the static libraries and symbolic links that
+ third party developers using the tachyon C library built against
+ OpenMPI will need.
+
+Package: libtachyon-openmpi- at LT_CURRENT@-dbg
+Provides: libtachyon-dbg
+Section: debug
+Priority: extra
+Architecture: @ARCH_REVLISTOF_OPENMPI@
+Depends: libtachyon-openmpi- at LT_CURRENT@ (= ${binary:Version}), ${misc:Depends}
+Multi-Arch: same
+Description: @SYNOPSIS_LIBRARY@ - debug package - OpenMPI flavour
+ ##DescriptionMainPart##
+ .
+ This package provides the debugging symbols for the libraries from
+ the libtachyon-openmpi- at LT_CURRENT@-dev package.
+
+Package: libtachyon-mpich- at LT_CURRENT@
+Provides: libtachyon
+Section: libs
+Priority: extra
+Architecture: @ARCH_REVLISTOF_MPICH@
+Pre-Depends: ${misc:Pre-Depends}
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Suggests: tachyon-doc
+Multi-Arch: same
+Description: @SYNOPSIS_LIBRARY@ - runtime - MPICH flavour
+ ##DescriptionMainPart##
+ .
+ This package provides the shared library required to run third party
+ program compiled against the tachyon C library built against MPICH.
+ To compile your own programs you also need to install the concomitant
+ libtachyon-mpich- at LT_CURRENT@-dev package.
+
+Package: libtachyon-mpich- at LT_CURRENT@-dev
+Provides: libtachyon-dev
+Section: libdevel
+Priority: extra
+Architecture: @ARCH_REVLISTOF_MPICH@
+Depends: libtachyon-dev-common (= ${source:Version}), libtachyon-mpich- at LT_CURRENT@ (= ${binary:Version}), ${misc:Depends}
+Multi-Arch: same
+Description: @SYNOPSIS_LIBRARY@ - development - MPICH flavour
+ ##DescriptionMainPart##
+ .
+ This package contains the static libraries and symbolic links that
+ third party developers using the tachyon C library built against
+ MPICH will need.
+
+Package: libtachyon-mpich- at LT_CURRENT@-dbg
+Provides: libtachyon-dbg
+Section: debug
+Priority: extra
+Architecture: @ARCH_REVLISTOF_MPICH@
+Depends: libtachyon-mpich- at LT_CURRENT@ (= ${binary:Version}), ${misc:Depends}
+Multi-Arch: same
+Description: @SYNOPSIS_LIBRARY@ - debug package - MPICH flavour
+ ##DescriptionMainPart##
+ .
+ This package provides the debugging symbols for the libraries from
+ the libtachyon-mpich- at LT_CURRENT@-dev package.
+
+Package: libtachyon-dev-common
+Section: libdevel
+Architecture: all
+Depends: ${misc:Depends}
+Suggests: libtachyon-dev
+Multi-Arch: foreign
+Description: @SYNOPSIS_LIBRARY@ - development - common material
+ ##DescriptionMainPart##
+ .
+ This package contains the header files that third party developers
+ using the tachyon C library will need.
+
+Package: libtachyon-mpi-dev
+Provides: libtachyon-dev
+Section: libdevel
+Priority: extra
+Architecture: any
+Depends: ${@LIBTACHYON_MPI_DEFAULT_DEV@}, mpi-default-dev, ${misc:Depends}
+Description: @SYNOPSIS_LIBRARY@ - development - default MPI flavour
+ ##DescriptionMainPart##
+ .
+ This metapackage depends on the default MPI version of the tachyon
+ C library development package for each architecture.
+
+Package: tachyon
+Architecture: all
+Depends: tachyon-bin-nox | tachyon-bin, ${misc:Depends}
+Multi-Arch: foreign
+Description: @SYNOPSIS_TOOLS@ - metapackage
+ ##DescriptionMainPart##
+ .
+ This metapackage allows multi-variant support for tools built upon tachyon.
+
+Package: tachyon-bin-nox
+Provides: tachyon-bin
+Breaks: tachyon (<< 0.99~b6)
+Architecture: any
+Depends: libtachyon-mt- at LT_CURRENT@ (= ${binary:Version}) | libtachyon, ${shlibs:Depends}, ${misc:Depends}
+Multi-Arch: foreign
+Description: @SYNOPSIS_TOOLS@ - with no X support
+ ##DescriptionMainPart##
+ .
+ This package provides a simple scene file parser front-end built upon
+ tachyon but without X support.
+
+
+Package: tachyon-bin-ogl
+Provides: tachyon-bin
+Breaks: tachyon (<< 0.99~b6)
+Architecture: any
+Depends: libtachyon-mt- at LT_CURRENT@ (= ${binary:Version}) | libtachyon, ${shlibs:Depends}, ${misc:Depends}
+Multi-Arch: foreign
+Description: @SYNOPSIS_TOOLS@ - with OpenGL display
+ ##DescriptionMainPart##
+ .
+ This package provides a simple scene file parser front-end built upon
+ tachyon and with OpenGL display.
+
+Package: tachyon-doc
+Section: doc
+Architecture: all
+Depends: ${misc:Depends}
+Suggests: libtachyon-dev, tachyon-bin
+Multi-Arch: foreign
+Description: @SYNOPSIS_MANUAL@ - reference manual
+ ##DescriptionMainPart##
+ .
+ This package provides the reference manual for the tachyon C library.
+ It also contains simple demo sources to build against the tachyon C library
+ and scene material to parse with the simple tachyon scene parser front-end
+ built upon the tachyon C library.
diff --git a/debian/templates/libtachyon-LIBFLAVOUR-casetableof_priority.rin b/debian/templates/libtachyon-LIBFLAVOUR-casetableof_priority.rin
new file mode 100644
index 0000000..3301c93
--- /dev/null
+++ b/debian/templates/libtachyon-LIBFLAVOUR-casetableof_priority.rin
@@ -0,0 +1,9 @@
+ serial) LIBPRIORITY=10 ;;
+ mt-openmp) LIBPRIORITY=110 ;;
+ mt-thr) LIBPRIORITY=150 ;;
+ mpich-openmp) LIBPRIORITY=210 ;;
+ mpich-thr) LIBPRIORITY=250 ;;
+ mpich) LIBPRIORITY=290 ;;
+ openmpi-openmp) LIBPRIORITY=310 ;;
+ openmpi-thr) LIBPRIORITY=350 ;;
+ openmpi) LIBPRIORITY=390 ;;
diff --git a/debian/templates/libtachyon-LIBFLAVOUR-dev.install.in b/debian/templates/libtachyon-LIBFLAVOUR-dev.install.in
new file mode 100644
index 0000000..e25ebbc
--- /dev/null
+++ b/debian/templates/libtachyon-LIBFLAVOUR-dev.install.in
@@ -0,0 +1 @@
+## @LIBFLAVOUR@: @LISTOF_LIBVARIANTSONAME@
diff --git a/debian/templates/libtachyon-LIBFLAVOUR-dev.postinst.in b/debian/templates/libtachyon-LIBFLAVOUR-dev.postinst.in
new file mode 100644
index 0000000..f1b8188
--- /dev/null
+++ b/debian/templates/libtachyon-LIBFLAVOUR-dev.postinst.in
@@ -0,0 +1,27 @@
+#!/bin/sh
+set -e
+add_libvariant_dev_alternative () {
+ local libvariant=$1
+ local libpriority=$2
+ update-alternatives --quiet \
+ --install \
+ /usr/lib/@MULTIARCH@/libtachyon.so. at LT_CURRENT@ \
+ libtachyon.so. at LT_CURRENT@ \
+ /usr/lib/@MULTIARCH@/libtachyon-${libvariant}.so. at LT_CURRENT@ $libpriority \
+ --slave /usr/lib/@MULTIARCH@/libtachyon.so \
+ libtachyon.so \
+ /usr/lib/@MULTIARCH@/libtachyon-${libvariant}.so \
+ --slave /usr/lib/@MULTIARCH@/libtachyon.so. at LT_CURRENT@. at LT_REVISION@. at LT_AGE@ \
+ libtachyon.so. at LT_CURRENT@. at LT_REVISION@. at LT_AGE@ \
+ /usr/lib/@MULTIARCH@/libtachyon-${libvariant}.so. at LT_CURRENT@. at LT_REVISION@. at LT_AGE@
+ return 0
+ }
+for LIBVARIANT in @LISTOF_LIBVARIANT@; do
+ case $LIBVARIANT in
+ ##CaseTableOfLibraryPriorities##
+ *) echo "unknown library variant \'${LIBVARIANT}': skip" >&2 ;;
+ esac
+ add_libvariant_dev_alternative $LIBVARIANT $LIBPRIORITY
+done
+#DEBHELPER#
+exit 0
diff --git a/debian/templates/libtachyon-LIBFLAVOUR-dev.prerm.in b/debian/templates/libtachyon-LIBFLAVOUR-dev.prerm.in
new file mode 100644
index 0000000..0bcce5e
--- /dev/null
+++ b/debian/templates/libtachyon-LIBFLAVOUR-dev.prerm.in
@@ -0,0 +1,30 @@
+#!/bin/sh
+set -e
+refresh_libvariant_alternative () {
+ local libvariant=$1
+ local libpriority=$2
+ update-alternatives --quiet \
+ --install \
+ /usr/lib/@MULTIARCH@/libtachyon.so. at LT_CURRENT@ \
+ libtachyon.so. at LT_CURRENT@ \
+ /usr/lib/@MULTIARCH@/libtachyon-${libvariant}.so. at LT_CURRENT@ $libpriority \
+ --slave /usr/lib/@MULTIARCH@/libtachyon.so. at LT_CURRENT@. at LT_REVISION@. at LT_AGE@ \
+ libtachyon.so. at LT_CURRENT@. at LT_REVISION@. at LT_AGE@ \
+ /usr/lib/@MULTIARCH@/libtachyon-${libvariant}.so. at LT_CURRENT@. at LT_REVISION@. at LT_AGE@
+ return 0
+ }
+case $1 in
+ remove|deconfigure)
+ for LIBVARIANT in @LISTOF_LIBVARIANT@; do
+ case $LIBVARIANT in
+ ##CaseTableOfLibraryPriorities##
+ *) echo "unknown library variant \'${LIBVARIANT}': skip" >&2 ;;
+ esac
+ refresh_libvariant_alternative $LIBVARIANT $LIBPRIORITY
+ done
+ ;;
+ upgrade|failed-upgrade) ;;
+ *) echo "prerm called with unknown argument \`$1'" >&2 ; exit 0 ;;
+esac
+#DEBHELPER#
+exit 0
diff --git a/debian/templates/libtachyon-LIBFLAVOUR.install.in b/debian/templates/libtachyon-LIBFLAVOUR.install.in
new file mode 100644
index 0000000..e25ebbc
--- /dev/null
+++ b/debian/templates/libtachyon-LIBFLAVOUR.install.in
@@ -0,0 +1 @@
+## @LIBFLAVOUR@: @LISTOF_LIBVARIANTSONAME@
diff --git a/debian/templates/libtachyon-LIBFLAVOUR.lintian-overrides.in b/debian/templates/libtachyon-LIBFLAVOUR.lintian-overrides.in
new file mode 100644
index 0000000..12b9916
--- /dev/null
+++ b/debian/templates/libtachyon-LIBFLAVOUR.lintian-overrides.in
@@ -0,0 +1 @@
+libtachyon- at LIBFLAVOUR@- at LT_CURRENT@: package-name-doesnt-match-sonames @LISTOF_LIBVARIANTSONAME@
diff --git a/debian/templates/libtachyon-LIBFLAVOUR.postinst.in b/debian/templates/libtachyon-LIBFLAVOUR.postinst.in
new file mode 100644
index 0000000..606db52
--- /dev/null
+++ b/debian/templates/libtachyon-LIBFLAVOUR.postinst.in
@@ -0,0 +1,24 @@
+#!/bin/sh
+set -e
+add_libvariant_alternative () {
+ local libvariant=$1
+ local libpriority=$2
+ update-alternatives \
+ --install \
+ /usr/lib/@MULTIARCH@/libtachyon.so. at LT_CURRENT@ \
+ libtachyon.so. at LT_CURRENT@ \
+ /usr/lib/@MULTIARCH@/libtachyon-${libvariant}.so. at LT_CURRENT@ $libpriority \
+ --slave /usr/lib/@MULTIARCH@/libtachyon.so. at LT_CURRENT@. at LT_REVISION@. at LT_AGE@ \
+ libtachyon.so. at LT_CURRENT@. at LT_REVISION@. at LT_AGE@ \
+ /usr/lib/@MULTIARCH@/libtachyon-${libvariant}.so. at LT_CURRENT@. at LT_REVISION@. at LT_AGE@
+ return 0
+ }
+for LIBVARIANT in @LISTOF_LIBVARIANT@; do
+ case $LIBVARIANT in
+ ##CaseTableOfLibraryPriorities##
+ *) echo "unknown library variant \'${LIBVARIANT}': skip" >&2 ;;
+ esac
+ add_libvariant_alternative $LIBVARIANT $LIBPRIORITY
+done
+#DEBHELPER#
+exit 0
diff --git a/debian/templates/libtachyon-LIBFLAVOUR.prerm.in b/debian/templates/libtachyon-LIBFLAVOUR.prerm.in
new file mode 100644
index 0000000..1c135b9
--- /dev/null
+++ b/debian/templates/libtachyon-LIBFLAVOUR.prerm.in
@@ -0,0 +1,18 @@
+#!/bin/sh
+set -e
+remove_libvariant_alternative () {
+ local libvariant=$1
+ update-alternatives --remove libtachyon.so. at LT_CURRENT@ /usr/lib/@MULTIARCH@/libtachyon-${libvariant}.so. at LT_CURRENT@
+ return 0
+ }
+case $1 in
+ remove|deconfigure)
+ for LIBVARIANT in @LISTOF_LIBVARIANT@; do
+ remove_libvariant_alternative $LIBVARIANT
+ done
+ ;;
+ upgrade|failed-upgrade) ;;
+ *) echo "prerm called with unknown argument \`$1'" >&2 ; exit 0 ;;
+esac
+#DEBHELPER#
+exit 0
diff --git a/debian/templates/libtachyon-LIBFLAVOUR.symbols.in b/debian/templates/libtachyon-LIBFLAVOUR.symbols.in
new file mode 100644
index 0000000..e25ebbc
--- /dev/null
+++ b/debian/templates/libtachyon-LIBFLAVOUR.symbols.in
@@ -0,0 +1 @@
+## @LIBFLAVOUR@: @LISTOF_LIBVARIANTSONAME@
diff --git a/debian/templates/libtachyon-LIBVARIANT-dev.install.in b/debian/templates/libtachyon-LIBVARIANT-dev.install.in
new file mode 100644
index 0000000..1da50dd
--- /dev/null
+++ b/debian/templates/libtachyon-LIBVARIANT-dev.install.in
@@ -0,0 +1 @@
+usr/lib/@MULTIARCH@/libtachyon- at LIBVARIANT@.so
diff --git a/debian/templates/libtachyon-LIBVARIANT.install.in b/debian/templates/libtachyon-LIBVARIANT.install.in
new file mode 100644
index 0000000..67c1b34
--- /dev/null
+++ b/debian/templates/libtachyon-LIBVARIANT.install.in
@@ -0,0 +1,3 @@
+##usr/lib/*/libtachyon- at LIBVARIANT@.so.*
+usr/lib/@MULTIARCH@/libtachyon- at LIBVARIANT@.so. at LT_CURRENT@
+usr/lib/@MULTIARCH@/libtachyon- at LIBVARIANT@.so. at LT_CURRENT@. at LT_REVISION@. at LT_AGE@
diff --git a/debian/templates/libtachyon-LIBVARIANT.symbols.in b/debian/templates/libtachyon-LIBVARIANT.symbols.in
new file mode 100644
index 0000000..d969b20
--- /dev/null
+++ b/debian/templates/libtachyon-LIBVARIANT.symbols.in
@@ -0,0 +1,126 @@
+libtachyon- at LIBVARIANT@.so. at LT_CURRENT@ libtachyon- at LIBFLAVOUR@- at LT_CURRENT@ #MINVER#
+ LIBTACHYON_0.9.9 at LIBTACHYON_0.9.9 0.99~b6
+ jitter_disc2f at LIBTACHYON_0.9.9 0.99~b6
+ jitter_offset2f at LIBTACHYON_0.9.9 0.99~b6
+ jitter_sphere3f at LIBTACHYON_0.9.9 0.99~b6
+ rng_drand at LIBTACHYON_0.9.9 0.99~b6
+ rng_drand_init at LIBTACHYON_0.9.9 0.99~b6
+ rng_drand_seed at LIBTACHYON_0.9.9 0.99~b6
+ rng_frand at LIBTACHYON_0.9.9 0.99~b6
+ rng_frand_init at LIBTACHYON_0.9.9 0.99~b6
+ rng_frand_seed at LIBTACHYON_0.9.9 0.99~b6
+ rng_seed_from_tid_nodeid at LIBTACHYON_0.9.9 0.99~b6
+ rng_urand at LIBTACHYON_0.9.9 0.99~b6
+ rng_urand_init at LIBTACHYON_0.9.9 0.99~b6
+ rng_urand_seed at LIBTACHYON_0.9.9 0.99~b6
+ rt_aa_maxsamples at LIBTACHYON_0.9.9 0.99~b6
+ rt_ambient_occlusion at LIBTACHYON_0.9.9 0.99~b6
+ rt_aspectratio at LIBTACHYON_0.9.9 0.99~b6
+ rt_background at LIBTACHYON_0.9.9 0.99~b6
+ rt_background_gradient at LIBTACHYON_0.9.9 0.99~b6
+ rt_background_mode at LIBTACHYON_0.9.9 0.99~b6
+ rt_background_sky_sphere at LIBTACHYON_0.9.9 0.99~b6
+ rt_boundmode at LIBTACHYON_0.9.9 0.99~b6
+ rt_boundthresh at LIBTACHYON_0.9.9 0.99~b6
+ rt_box at LIBTACHYON_0.9.9 0.99~b6
+ rt_camera_dof at LIBTACHYON_0.9.9 0.99~b6
+ rt_camera_frustum at LIBTACHYON_0.9.9 0.99~b6
+ rt_camera_position3fv at LIBTACHYON_0.9.9 0.99~b6
+ rt_camera_position at LIBTACHYON_0.9.9 0.99~b6
+ rt_camera_projection at LIBTACHYON_0.9.9 0.99~b6
+ rt_camera_raydepth at LIBTACHYON_0.9.9 0.99~b6
+ rt_camera_setup at LIBTACHYON_0.9.9 0.99~b6
+ rt_camera_vfov at LIBTACHYON_0.9.9 0.99~b6
+ rt_camera_zoom at LIBTACHYON_0.9.9 0.99~b6
+ rt_clip_dv at LIBTACHYON_0.9.9 0.99~b6
+ rt_clip_fv at LIBTACHYON_0.9.9 0.99~b6
+ rt_clip_off at LIBTACHYON_0.9.9 0.99~b6
+ rt_color at LIBTACHYON_0.9.9 0.99~b6
+ rt_crop_disable at LIBTACHYON_0.9.9 0.99~b6
+ rt_crop_output at LIBTACHYON_0.9.9 0.99~b6
+ rt_cylinder3fv at LIBTACHYON_0.9.9 0.99~b6
+ rt_cylinder at LIBTACHYON_0.9.9 0.99~b6
+ rt_define_image at LIBTACHYON_0.9.9 0.99~b6
+ rt_define_teximage_rgb24 at LIBTACHYON_0.9.9 0.99~b6
+ rt_deletescene at LIBTACHYON_0.9.9 0.99~b6
+ rt_directional_light3fv at LIBTACHYON_0.9.9 0.99~b6
+ rt_directional_light at LIBTACHYON_0.9.9 0.99~b6
+ rt_extvol at LIBTACHYON_0.9.9 0.99~b6
+ rt_fcylinder3fv at LIBTACHYON_0.9.9 0.99~b6
+ rt_fcylinder at LIBTACHYON_0.9.9 0.99~b6
+ rt_finalize at LIBTACHYON_0.9.9 0.99~b6
+ rt_fog_mode at LIBTACHYON_0.9.9 0.99~b6
+ rt_fog_parms at LIBTACHYON_0.9.9 0.99~b6
+ rt_fog_rendering_mode at LIBTACHYON_0.9.9 0.99~b6
+ rt_get_aspectratio at LIBTACHYON_0.9.9 0.99~b6
+ rt_get_camera_position3fv at LIBTACHYON_0.9.9 0.99~b6
+ rt_get_camera_position at LIBTACHYON_0.9.9 0.99~b6
+ rt_get_camera_vfov at LIBTACHYON_0.9.9 0.99~b6
+ rt_get_camera_zoom at LIBTACHYON_0.9.9 0.99~b6
+ rt_get_resolution at LIBTACHYON_0.9.9 0.99~b6
+ rt_hash_delete at LIBTACHYON_0.9.9 0.99~b6
+ rt_hash_destroy at LIBTACHYON_0.9.9 0.99~b6
+ rt_hash_init at LIBTACHYON_0.9.9 0.99~b6
+ rt_hash_insert at LIBTACHYON_0.9.9 0.99~b6
+ rt_hash_lookup at LIBTACHYON_0.9.9 0.99~b6
+ rt_hash_stats at LIBTACHYON_0.9.9 0.99~b6
+ rt_heightfield at LIBTACHYON_0.9.9 0.99~b6
+ rt_image_clamp at LIBTACHYON_0.9.9 0.99~b6
+ rt_image_gamma at LIBTACHYON_0.9.9 0.99~b6
+ rt_image_normalize at LIBTACHYON_0.9.9 0.99~b6
+ rt_initialize at LIBTACHYON_0.9.9 0.99~b6
+ rt_landscape at LIBTACHYON_0.9.9 0.99~b6
+ rt_light3fv at LIBTACHYON_0.9.9 0.99~b6
+ rt_light at LIBTACHYON_0.9.9 0.99~b6
+ rt_light_attenuation at LIBTACHYON_0.9.9 0.99~b6
+ rt_newscene at LIBTACHYON_0.9.9 0.99~b6
+ rt_normal_fixup_mode at LIBTACHYON_0.9.9 0.99~b6
+ rt_outputfile at LIBTACHYON_0.9.9 0.99~b6
+ rt_outputformat at LIBTACHYON_0.9.9 0.99~b6
+ rt_phong_shader at LIBTACHYON_0.9.9 0.99~b6
+ rt_plane3fv at LIBTACHYON_0.9.9 0.99~b6
+ rt_plane at LIBTACHYON_0.9.9 0.99~b6
+ rt_polycylinder3fv at LIBTACHYON_0.9.9 0.99~b6
+ rt_polycylinder at LIBTACHYON_0.9.9 0.99~b6
+ rt_quadsphere at LIBTACHYON_0.9.9 0.99~b6
+ rt_rand at LIBTACHYON_0.9.9 0.99~b6
+ rt_rawimage_rgb24 at LIBTACHYON_0.9.9 0.99~b6
+ rt_rawimage_rgb96f at LIBTACHYON_0.9.9 0.99~b6
+ rt_renderscene at LIBTACHYON_0.9.9 0.99~b6
+ rt_rescale_lights at LIBTACHYON_0.9.9 0.99~b6
+ rt_resolution at LIBTACHYON_0.9.9 0.99~b6
+ rt_ring3fv at LIBTACHYON_0.9.9 0.99~b6
+ rt_ring at LIBTACHYON_0.9.9 0.99~b6
+ rt_scalarvol at LIBTACHYON_0.9.9 0.99~b6
+ rt_set_numthreads at LIBTACHYON_0.9.9 0.99~b6
+ rt_set_ui_message at LIBTACHYON_0.9.9 0.99~b6
+ rt_set_ui_progress at LIBTACHYON_0.9.9 0.99~b6
+ rt_shadermode at LIBTACHYON_0.9.9 0.99~b6
+ rt_shadow_filtering at LIBTACHYON_0.9.9 0.99~b6
+ rt_sphere3fv at LIBTACHYON_0.9.9 0.99~b6
+ rt_sphere at LIBTACHYON_0.9.9 0.99~b6
+ rt_spotlight3fv at LIBTACHYON_0.9.9 0.99~b6
+ rt_spotlight at LIBTACHYON_0.9.9 0.99~b6
+ rt_stri3fv at LIBTACHYON_0.9.9 0.99~b6
+ rt_stri at LIBTACHYON_0.9.9 0.99~b6
+ rt_tex_outline at LIBTACHYON_0.9.9 0.99~b6
+ rt_tex_phong at LIBTACHYON_0.9.9 0.99~b6
+ rt_tex_transmode at LIBTACHYON_0.9.9 0.99~b6
+ rt_texture at LIBTACHYON_0.9.9 0.99~b6
+ rt_texture_copy_standard at LIBTACHYON_0.9.9 0.99~b6
+ rt_texture_copy_vcstri at LIBTACHYON_0.9.9 0.99~b6
+ rt_timer_create at LIBTACHYON_0.9.9 0.99~b6
+ rt_timer_destroy at LIBTACHYON_0.9.9 0.99~b6
+ rt_timer_start at LIBTACHYON_0.9.9 0.99~b6
+ rt_timer_stop at LIBTACHYON_0.9.9 0.99~b6
+ rt_timer_time at LIBTACHYON_0.9.9 0.99~b6
+ rt_timer_timenow at LIBTACHYON_0.9.9 0.99~b6
+ rt_trans_max_surfaces at LIBTACHYON_0.9.9 0.99~b6
+ rt_trans_mode at LIBTACHYON_0.9.9 0.99~b6
+ rt_tri3fv at LIBTACHYON_0.9.9 0.99~b6
+ rt_tri at LIBTACHYON_0.9.9 0.99~b6
+ rt_tristripscnv3fv at LIBTACHYON_0.9.9 0.99~b6
+ rt_vcstri3fv at LIBTACHYON_0.9.9 0.99~b6
+ rt_vcstri at LIBTACHYON_0.9.9 0.99~b6
+ rt_vector at LIBTACHYON_0.9.9 0.99~b6
+ rt_verbose at LIBTACHYON_0.9.9 0.99~b6
diff --git a/debian/templates/tachyon-bin-VARIANT.install.in b/debian/templates/tachyon-bin-VARIANT.install.in
new file mode 100644
index 0000000..cda06bc
--- /dev/null
+++ b/debian/templates/tachyon-bin-VARIANT.install.in
@@ -0,0 +1 @@
+usr/bin/tachyon- at VARIANT@
diff --git a/debian/templates/tachyon-bin-VARIANT.manpages.in b/debian/templates/tachyon-bin-VARIANT.manpages.in
new file mode 100644
index 0000000..314df00
--- /dev/null
+++ b/debian/templates/tachyon-bin-VARIANT.manpages.in
@@ -0,0 +1 @@
+debian/tmp/usr/share/man/man1/tachyon- at VARIANT@.1
diff --git a/debian/templates/tachyon-bin-VARIANT.postinst.in b/debian/templates/tachyon-bin-VARIANT.postinst.in
new file mode 100644
index 0000000..07e4ef6
--- /dev/null
+++ b/debian/templates/tachyon-bin-VARIANT.postinst.in
@@ -0,0 +1,18 @@
+#!/bin/sh
+set -e
+VARIANT=@VARIANT@
+add_variant_alternative () {
+ local variant=$1
+ local priority=$2
+ update-alternatives \
+ --install /usr/bin/tachyon tachyon /usr/bin/tachyon-${variant} $priority \
+ --slave /usr/share/man/man1/tachyon.1.gz tachyon.1.gz /usr/share/man/man1/tachyon-${variant}.1.gz
+ return 0
+ }
+case $VARIANT in
+ nox) add_variant_alternative nox 10 ;;
+ ogl) add_variant_alternative ogl 100 ;;
+ *) echo "unknown variant \'${VARIANT}': skip" >&2 ;;
+esac
+#DEBHELPER#
+exit 0
diff --git a/debian/templates/tachyon-bin-VARIANT.prerm.in b/debian/templates/tachyon-bin-VARIANT.prerm.in
new file mode 100644
index 0000000..15dc45f
--- /dev/null
+++ b/debian/templates/tachyon-bin-VARIANT.prerm.in
@@ -0,0 +1,15 @@
+#!/bin/sh
+set -e
+VARIANT=@VARIANT@
+remove_variant_alternative () {
+ local variant=$1
+ update-alternatives --remove tachyon /usr/bin/tachyon-${variant}
+ return 0
+ }
+case $1 in
+ remove|deconfigure) remove_variant_alternative $VARIANT ;;
+ upgrade|failed-upgrade) ;;
+ *) echo "prerm called with unknown argument \`$1'" >&2 ; exit 0 ;;
+esac
+#DEBHELPER#
+exit 0
diff --git a/debian/watch b/debian/watch
new file mode 100644
index 0000000..e8f8669
--- /dev/null
+++ b/debian/watch
@@ -0,0 +1,4 @@
+version=3
+opts=dversionmangle=s/\+dsx?//,uversionmangle=s/b/~b/ \
+http://jedi.ks.uiuc.edu/~johns/raytracer/files/(\d+\.\d+|\d+\.\d+b\d+)/tachyon-(\d+\.\d+|\d+\.\d+b\d+)\.tar\.gz \
+debian bash debian/repack
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/tachyon.git
More information about the debian-science-commits
mailing list