[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