changeset 78:535075b4d261

Patch from Joachim Metz for debian packaging, and fix for incorrect length on lz decompression.
author Carl Byington <carl@five-ten-sg.com>
date Tue, 10 Jun 2008 14:28:55 -0700
parents 87216aefc6df
children 56fa05fd5271
files ChangeLog Makefile.am NEWS configure.in debian/changelog debian/changelog.in debian/compat debian/control debian/copyright debian/cron.d.ex debian/emacsen-install.ex debian/emacsen-remove.ex debian/emacsen-startup.ex debian/init.d.ex debian/libpst-default.ex debian/libpst.dirs debian/libpst.doc-base.EX debian/libpst.docs debian/libpst.install debian/manpage.1.ex debian/manpage.sgml.ex debian/manpage.xml.ex debian/menu.ex debian/postinst.ex debian/postrm.ex debian/preinst.ex debian/prerm.ex debian/rules debian/watch.ex libpst.spec.in src/lzfu.c
diffstat 31 files changed, 990 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Sat Jun 07 15:53:08 2008 -0700
+++ b/ChangeLog	Tue Jun 10 14:28:55 2008 -0700
@@ -1,3 +1,8 @@
+LibPST 0.6.12 (2008-06-10)
+===============================
+	* Patch from Joachim Metz for debian packaging, and fix
+	for incorrect length on lz decompression.
+
 LibPST 0.6.11 (2008-06-03)
 ===============================
         * Use ftello/fseeko to properly handle large files.
--- a/Makefile.am	Sat Jun 07 15:53:08 2008 -0700
+++ b/Makefile.am	Tue Jun 10 14:28:55 2008 -0700
@@ -3,3 +3,4 @@
 html_DATA = AUTHORS COPYING ChangeLog NEWS README
 CLEANFILES = xml/libpst xml/Makefile
 EXTRA_DIST = Doxyfile libpst.html.tar.gz libpst.spec $(wildcard xml/M*) $(wildcard xml/h*) $(wildcard xml/lib*)
+
--- a/NEWS	Sat Jun 07 15:53:08 2008 -0700
+++ b/NEWS	Tue Jun 10 14:28:55 2008 -0700
@@ -1,3 +1,4 @@
+0.6.12  2008-06-10 Patch from Joachim Metz for debian packaging, and fix for incorrect length on lz decompression.
 0.6.11  2008-06-03 Use ftello/fseeko to properly handle large files.
 0.6.10  2008-05-29 Patch from Robert Simpson for doubly-linked list and arrays of unicode strings.
 0.6.9   2008-05-16 Patch from Joachim Metz for 64 bit compile.
--- a/configure.in	Sat Jun 07 15:53:08 2008 -0700
+++ b/configure.in	Tue Jun 10 14:28:55 2008 -0700
@@ -76,8 +76,10 @@
       AC_MSG_RESULT([no])
       )
 
+
 AC_OUTPUT(                  \
     Makefile                \
+    debian/changelog        \
     libpst.spec             \
     html/Makefile           \
     info/Makefile           \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/changelog	Tue Jun 10 14:28:55 2008 -0700
@@ -0,0 +1,6 @@
+libpst (0.6.12-1) unstable; urgency=low
+
+  * Initial release
+
+ -- Joachim Metz <forensics@hoffmannbv.nl>  Thu, 29 May 2008 15:37:06 +0200
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/changelog.in	Tue Jun 10 14:28:55 2008 -0700
@@ -0,0 +1,6 @@
+libpst (@VERSION@-1) unstable; urgency=low
+
+  * Initial release
+
+ -- Joachim Metz <forensics@hoffmannbv.nl>  Thu, 29 May 2008 15:37:06 +0200
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/compat	Tue Jun 10 14:28:55 2008 -0700
@@ -0,0 +1,1 @@
+5
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/control	Tue Jun 10 14:28:55 2008 -0700
@@ -0,0 +1,17 @@
+Source: libpst
+Section: utils
+Priority: extra
+Maintainer: Joachim Metz <forensics@hoffmannbv.nl>
+Build-Depends: debhelper (>= 5), autotools-dev, libfreetype6-dev, libgd2-noxpm-dev, zlib1g-dev, libjpeg62-dev
+Standards-Version: 3.7.2
+
+Package: libpst
+Architecture: any
+Depends: ImageMagick, ${shlibs:Depends}, ${misc:Depends}
+Description: Utilities to convert Outlook .pst files to other formats
+ The Libpst utilities include readpst which can convert email messages
+ to both mbox and MH mailbox formats, pst2ldif which can convert the
+ contacts to .ldif format for import into ldap databases, and pst2dii
+ which can convert email messages to the DII load file format used by
+ Summation.
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/copyright	Tue Jun 10 14:28:55 2008 -0700
@@ -0,0 +1,41 @@
+This package was debianized by Joachim Metz <forensics@hoffmannbv.nl> on
+Thu, 29 May 2008 15:37:06 +0200.
+
+It was downloaded from <fill in http/ftp site>
+
+Upstream maintainter: Carl Byington <carl@five-ten-sg.com>
+
+Copyright:
+
+Original version by:
+    Dave Smith <dave.s@earthcorp.com>
+    Dave Smith <davesmith@users.sourceforge.net>
+
+Current maintainer:
+    Carl Byington <carl@five-ten-sg.com>
+
+With contributions by:
+    Joseph Nahmias <jello@costa.debian.org> -- bounces
+    Joseph Nahmias <joe@nahmias.net>
+    Arne Ahrend <aahrend@web.de>
+    Nigel Horne <njh@bandsman.co.uk>
+    Chris Halls <halls@debian.org>
+    Stevens Miller <smiller@novadatalabs.com>
+    Brad Hards <bradh@frogmouth.net>
+    Alexander Grau <alexandergrau@gmx.de>
+    Antonio Palama <palama@inwind.it>
+    Sean Loaring <sloaring@tec-man.com>
+    James Woodcock
+
+License:
+
+
+
+
+The Debian packaging is (C) 2008, Joachim Metz <forensics@hoffmannbv.nl> and
+is licensed under the GPL, see `/usr/share/common-licenses/GPL'.
+
+
+# Please also look if there are files or directories which have a
+# different copyright/license attached and list them here.
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/cron.d.ex	Tue Jun 10 14:28:55 2008 -0700
@@ -0,0 +1,4 @@
+#
+# Regular cron jobs for the libpst package
+#
+0 4	* * *	root	libpst_maintenance
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/emacsen-install.ex	Tue Jun 10 14:28:55 2008 -0700
@@ -0,0 +1,45 @@
+#! /bin/sh -e
+# /usr/lib/emacsen-common/packages/install/libpst
+
+# Written by Jim Van Zandt <jrv@debian.org>, borrowing heavily
+# from the install scripts for gettext by Santiago Vila
+# <sanvila@ctv.es> and octave by Dirk Eddelbuettel <edd@debian.org>.
+
+FLAVOR=$1
+PACKAGE=libpst
+
+if [ ${FLAVOR} = emacs ]; then exit 0; fi
+
+echo install/${PACKAGE}: Handling install for emacsen flavor ${FLAVOR}
+
+#FLAVORTEST=`echo $FLAVOR | cut -c-6`
+#if [ ${FLAVORTEST} = xemacs ] ; then
+#    SITEFLAG="-no-site-file"
+#else
+#    SITEFLAG="--no-site-file"
+#fi
+FLAGS="${SITEFLAG} -q -batch -l path.el -f batch-byte-compile"
+
+ELDIR=/usr/share/emacs/site-lisp/${PACKAGE}
+ELCDIR=/usr/share/${FLAVOR}/site-lisp/${PACKAGE}
+
+# Install-info-altdir does not actually exist. 
+# Maybe somebody will write it.
+if test -x /usr/sbin/install-info-altdir; then
+    echo install/${PACKAGE}: install Info links for ${FLAVOR}
+    install-info-altdir --quiet --section "" "" --dirname=${FLAVOR} /usr/info/${PACKAGE}.info.gz
+fi
+
+install -m 755 -d ${ELCDIR}
+cd ${ELDIR}
+FILES=`echo *.el`
+cp ${FILES} ${ELCDIR}
+cd ${ELCDIR}
+
+cat << EOF > path.el
+(setq load-path (cons "." load-path) byte-compile-warnings nil)
+EOF
+${FLAVOR} ${FLAGS} ${FILES}
+rm -f *.el path.el
+
+exit 0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/emacsen-remove.ex	Tue Jun 10 14:28:55 2008 -0700
@@ -0,0 +1,15 @@
+#!/bin/sh -e
+# /usr/lib/emacsen-common/packages/remove/libpst
+
+FLAVOR=$1
+PACKAGE=libpst
+
+if [ ${FLAVOR} != emacs ]; then
+    if test -x /usr/sbin/install-info-altdir; then
+        echo remove/${PACKAGE}: removing Info links for ${FLAVOR}
+        install-info-altdir --quiet --remove --dirname=${FLAVOR} /usr/info/libpst.info.gz
+    fi
+
+    echo remove/${PACKAGE}: purging byte-compiled files for ${FLAVOR}
+    rm -rf /usr/share/${FLAVOR}/site-lisp/${PACKAGE}
+fi
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/emacsen-startup.ex	Tue Jun 10 14:28:55 2008 -0700
@@ -0,0 +1,25 @@
+;; -*-emacs-lisp-*-
+;;
+;; Emacs startup file, e.g.  /etc/emacs/site-start.d/50libpst.el
+;; for the Debian libpst package
+;;
+;; Originally contributed by Nils Naumann <naumann@unileoben.ac.at>
+;; Modified by Dirk Eddelbuettel <edd@debian.org>
+;; Adapted for dh-make by Jim Van Zandt <jrv@debian.org>
+
+;; The libpst package follows the Debian/GNU Linux 'emacsen' policy and
+;; byte-compiles its elisp files for each 'emacs flavor' (emacs19,
+;; xemacs19, emacs20, xemacs20...).  The compiled code is then
+;; installed in a subdirectory of the respective site-lisp directory.
+;; We have to add this to the load-path:
+(let ((package-dir (concat "/usr/share/"
+                           (symbol-name flavor)
+                           "/site-lisp/libpst")))
+;; If package-dir does not exist, the libpst package must have
+;; removed but not purged, and we should skip the setup.
+  (when (file-directory-p package-dir)
+        (setq load-path (cons package-dir load-path))
+       (autoload 'libpst-mode "libpst-mode"
+         "Major mode for editing libpst files." t)
+       (add-to-list 'auto-mode-alist '("\\.libpst$" . libpst-mode))))
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/init.d.ex	Tue Jun 10 14:28:55 2008 -0700
@@ -0,0 +1,81 @@
+#! /bin/sh
+#
+# skeleton	example file to build /etc/init.d/ scripts.
+#		This file should be used to construct scripts for /etc/init.d.
+#
+#		Written by Miquel van Smoorenburg <miquels@cistron.nl>.
+#		Modified for Debian 
+#		by Ian Murdock <imurdock@gnu.ai.mit.edu>.
+#
+# Version:	@(#)skeleton  1.9  26-Feb-2001  miquels@cistron.nl
+#
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/sbin/libpst
+NAME=libpst
+DESC=libpst
+
+test -x $DAEMON || exit 0
+
+# Include libpst defaults if available
+if [ -f /etc/default/libpst ] ; then
+	. /etc/default/libpst
+fi
+
+set -e
+
+case "$1" in
+  start)
+	echo -n "Starting $DESC: "
+	start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
+		--exec $DAEMON -- $DAEMON_OPTS
+	echo "$NAME."
+	;;
+  stop)
+	echo -n "Stopping $DESC: "
+	start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \
+		--exec $DAEMON
+	echo "$NAME."
+	;;
+  #reload)
+	#
+	#	If the daemon can reload its config files on the fly
+	#	for example by sending it SIGHUP, do it here.
+	#
+	#	If the daemon responds to changes in its config file
+	#	directly anyway, make this a do-nothing entry.
+	#
+	# echo "Reloading $DESC configuration files."
+	# start-stop-daemon --stop --signal 1 --quiet --pidfile \
+	#	/var/run/$NAME.pid --exec $DAEMON
+  #;;
+  force-reload)
+	#
+	#	If the "reload" option is implemented, move the "force-reload"
+	#	option to the "reload" entry above. If not, "force-reload" is
+	#	just the same as "restart" except that it does nothing if the
+	#   daemon isn't already running.
+	# check wether $DAEMON is running. If so, restart
+	start-stop-daemon --stop --test --quiet --pidfile \
+		/var/run/$NAME.pid --exec $DAEMON \
+	&& $0 restart \
+	|| exit 0
+	;;
+  restart)
+    echo -n "Restarting $DESC: "
+	start-stop-daemon --stop --quiet --pidfile \
+		/var/run/$NAME.pid --exec $DAEMON
+	sleep 1
+	start-stop-daemon --start --quiet --pidfile \
+		/var/run/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS
+	echo "$NAME."
+	;;
+  *)
+	N=/etc/init.d/$NAME
+	# echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+	echo "Usage: $N {start|stop|restart|force-reload}" >&2
+	exit 1
+	;;
+esac
+
+exit 0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/libpst-default.ex	Tue Jun 10 14:28:55 2008 -0700
@@ -0,0 +1,10 @@
+# Defaults for libpst initscript
+# sourced by /etc/init.d/libpst
+# installed at /etc/default/libpst by the maintainer scripts
+
+#
+# This is a POSIX shell fragment
+#
+
+# Additional options that are passed to the Daemon.
+DAEMON_OPTS=""
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/libpst.dirs	Tue Jun 10 14:28:55 2008 -0700
@@ -0,0 +1,3 @@
+usr/bin
+usr/share/man/man1
+usr/share/man/man5
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/libpst.doc-base.EX	Tue Jun 10 14:28:55 2008 -0700
@@ -0,0 +1,22 @@
+Document: libpst
+Title: Debian libpst Manual
+Author: <insert document author here>
+Abstract: This manual describes what libpst is
+ and how it can be used to
+ manage online manuals on Debian systems.
+Section: unknown
+
+Format: debiandoc-sgml
+Files: /usr/share/doc/libpst/libpst.sgml.gz
+
+Format: postscript
+Files: /usr/share/doc/libpst/libpst.ps.gz
+
+Format: text
+Files: /usr/share/doc/libpst/libpst.text.gz
+
+Format: HTML
+Index: /usr/share/doc/libpst/html/index.html
+Files: /usr/share/doc/libpst/html/*.html
+
+  
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/libpst.docs	Tue Jun 10 14:28:55 2008 -0700
@@ -0,0 +1,6 @@
+AUTHORS
+COPYING
+INSTALL
+NEWS
+README
+TODO
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/libpst.install	Tue Jun 10 14:28:55 2008 -0700
@@ -0,0 +1,3 @@
+usr/bin/*
+usr/share/man/man1/*
+usr/share/man/man5/*
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/manpage.1.ex	Tue Jun 10 14:28:55 2008 -0700
@@ -0,0 +1,59 @@
+.\"                                      Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH LIBPST SECTION "May 29, 2008"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh        disable hyphenation
+.\" .hy        enable hyphenation
+.\" .ad l      left justify
+.\" .ad b      justify to both left and right margins
+.\" .nf        disable filling
+.\" .fi        enable filling
+.\" .br        insert line break
+.\" .sp <n>    insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.SH NAME
+libpst \- program to do something
+.SH SYNOPSIS
+.B libpst
+.RI [ options ] " files" ...
+.br
+.B bar
+.RI [ options ] " files" ...
+.SH DESCRIPTION
+This manual page documents briefly the
+.B libpst
+and
+.B bar
+commands.
+.PP
+.\" TeX users may be more comfortable with the \fB<whatever>\fP and
+.\" \fI<whatever>\fP escape sequences to invode bold face and italics, 
+.\" respectively.
+\fBlibpst\fP is a program that...
+.SH OPTIONS
+These programs follow the usual GNU command line syntax, with long
+options starting with two dashes (`-').
+A summary of options is included below.
+For a complete description, see the Info files.
+.TP
+.B \-h, \-\-help
+Show summary of options.
+.TP
+.B \-v, \-\-version
+Show version of program.
+.SH SEE ALSO
+.BR bar (1),
+.BR baz (1).
+.br
+The programs are documented fully by
+.IR "The Rise and Fall of a Fooish Bar" ,
+available via the Info system.
+.SH AUTHOR
+libpst was written by <upstream author>.
+.PP
+This manual page was written by Joachim Metz <forensics@hoffmannbv.nl>,
+for the Debian project (but may be used by others).
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/manpage.sgml.ex	Tue Jun 10 14:28:55 2008 -0700
@@ -0,0 +1,156 @@
+<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
+
+<!-- Process this file with docbook-to-man to generate an nroff manual
+     page: `docbook-to-man manpage.sgml > manpage.1'.  You may view
+     the manual page with: `docbook-to-man manpage.sgml | nroff -man |
+     less'.  A typical entry in a Makefile or Makefile.am is:
+
+manpage.1: manpage.sgml
+	docbook-to-man $< > $@
+
+    
+	The docbook-to-man binary is found in the docbook-to-man package.
+	Please remember that if you create the nroff version in one of the
+	debian/rules file targets (such as build), you will need to include
+	docbook-to-man in your Build-Depends control field.
+
+  -->
+
+  <!-- Fill in your name for FIRSTNAME and SURNAME. -->
+  <!ENTITY dhfirstname "<firstname>FIRSTNAME</firstname>">
+  <!ENTITY dhsurname   "<surname>SURNAME</surname>">
+  <!-- Please adjust the date whenever revising the manpage. -->
+  <!ENTITY dhdate      "<date>May 29, 2008</date>">
+  <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
+       allowed: see man(7), man(1). -->
+  <!ENTITY dhsection   "<manvolnum>SECTION</manvolnum>">
+  <!ENTITY dhemail     "<email>forensics@hoffmannbv.nl</email>">
+  <!ENTITY dhusername  "Joachim Metz">
+  <!ENTITY dhucpackage "<refentrytitle>LIBPST</refentrytitle>">
+  <!ENTITY dhpackage   "libpst">
+
+  <!ENTITY debian      "<productname>Debian</productname>">
+  <!ENTITY gnu         "<acronym>GNU</acronym>">
+  <!ENTITY gpl         "&gnu; <acronym>GPL</acronym>">
+]>
+
+<refentry>
+  <refentryinfo>
+    <address>
+      &dhemail;
+    </address>
+    <author>
+      &dhfirstname;
+      &dhsurname;
+    </author>
+    <copyright>
+      <year>2003</year>
+      <holder>&dhusername;</holder>
+    </copyright>
+    &dhdate;
+  </refentryinfo>
+  <refmeta>
+    &dhucpackage;
+
+    &dhsection;
+  </refmeta>
+  <refnamediv>
+    <refname>&dhpackage;</refname>
+
+    <refpurpose>program to do something</refpurpose>
+  </refnamediv>
+  <refsynopsisdiv>
+    <cmdsynopsis>
+      <command>&dhpackage;</command>
+
+      <arg><option>-e <replaceable>this</replaceable></option></arg>
+
+      <arg><option>--example <replaceable>that</replaceable></option></arg>
+    </cmdsynopsis>
+  </refsynopsisdiv>
+  <refsect1>
+    <title>DESCRIPTION</title>
+
+    <para>This manual page documents briefly the
+      <command>&dhpackage;</command> and <command>bar</command>
+      commands.</para>
+
+    <para>This manual page was written for the &debian; distribution
+      because the original program does not have a manual page.
+      Instead, it has documentation in the &gnu;
+      <application>Info</application> format; see below.</para>
+
+    <para><command>&dhpackage;</command> is a program that...</para>
+
+  </refsect1>
+  <refsect1>
+    <title>OPTIONS</title>
+
+    <para>These programs follow the usual &gnu; command line syntax,
+      with long options starting with two dashes (`-').  A summary of
+      options is included below.  For a complete description, see the
+      <application>Info</application> files.</para>
+
+    <variablelist>
+      <varlistentry>
+        <term><option>-h</option>
+          <option>--help</option>
+        </term>
+        <listitem>
+          <para>Show summary of options.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term><option>-v</option>
+          <option>--version</option>
+        </term>
+        <listitem>
+          <para>Show version of program.</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refsect1>
+  <refsect1>
+    <title>SEE ALSO</title>
+
+    <para>bar (1), baz (1).</para>
+
+    <para>The programs are documented fully by <citetitle>The Rise and
+      Fall of a Fooish Bar</citetitle> available via the
+      <application>Info</application> system.</para>
+  </refsect1>
+  <refsect1>
+    <title>AUTHOR</title>
+
+    <para>This manual page was written by &dhusername; &dhemail; for
+      the &debian; system (but may be used by others).  Permission is
+      granted to copy, distribute and/or modify this document under
+      the terms of the &gnu; General Public License, Version 2 any 
+	  later version published by the Free Software Foundation.
+    </para>
+	<para>
+	  On Debian systems, the complete text of the GNU General Public
+	  License can be found in /usr/share/common-licenses/GPL.
+	</para>
+
+  </refsect1>
+</refentry>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:2
+sgml-indent-data:t
+sgml-parent-document:nil
+sgml-default-dtd-file:nil
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+-->
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/manpage.xml.ex	Tue Jun 10 14:28:55 2008 -0700
@@ -0,0 +1,148 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+
+<!--
+
+Process this file with an XSLT processor: `xsltproc \
+-''-nonet /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\
+manpages/docbook.xsl manpage.dbk'.  A manual page
+<package>.<section> will be generated.  You may view the
+manual page with: nroff -man <package>.<section> | less'.  A
+typical entry in a Makefile or Makefile.am is:
+
+DB2MAN=/usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\
+manpages/docbook.xsl
+XP=xsltproc -''-nonet
+
+manpage.1: manpage.dbk
+        $(XP) $(DB2MAN) $<
+    
+The xsltproc binary is found in the xsltproc package.  The
+XSL files are in docbook-xsl.  Please remember that if you
+create the nroff version in one of the debian/rules file
+targets (such as build), you will need to include xsltproc
+and docbook-xsl in your Build-Depends control field.
+
+-->
+
+  <!-- Fill in your name for FIRSTNAME and SURNAME. -->
+  <!ENTITY dhfirstname "<firstname>FIRSTNAME</firstname>">
+  <!ENTITY dhsurname   "<surname>SURNAME</surname>">
+  <!-- Please adjust the date whenever revising the manpage. -->
+  <!ENTITY dhdate      "<date>May 29, 2008</date>">
+  <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
+       allowed: see man(7), man(1). -->
+  <!ENTITY dhsection   "<manvolnum>SECTION</manvolnum>">
+  <!ENTITY dhemail     "<email>forensics@hoffmannbv.nl</email>">
+  <!ENTITY dhusername  "Joachim Metz">
+  <!ENTITY dhucpackage "<refentrytitle>LIBPST</refentrytitle>">
+  <!ENTITY dhpackage   "libpst">
+
+  <!ENTITY debian      "<productname>Debian</productname>">
+  <!ENTITY gnu         "<acronym>GNU</acronym>">
+  <!ENTITY gpl         "&gnu; <acronym>GPL</acronym>">
+]>
+
+<refentry>
+  <refentryinfo>
+    <address>
+      &dhemail;
+    </address>
+    <author>
+      &dhfirstname;
+      &dhsurname;
+    </author>
+    <copyright>
+      <year>2003</year>
+      <holder>&dhusername;</holder>
+    </copyright>
+    &dhdate;
+  </refentryinfo>
+  <refmeta>
+    &dhucpackage;
+
+    &dhsection;
+  </refmeta>
+  <refnamediv>
+    <refname>&dhpackage;</refname>
+
+    <refpurpose>program to do something</refpurpose>
+  </refnamediv>
+  <refsynopsisdiv>
+    <cmdsynopsis>
+      <command>&dhpackage;</command>
+
+      <arg><option>-e <replaceable>this</replaceable></option></arg>
+
+      <arg><option>--example <replaceable>that</replaceable></option></arg>
+    </cmdsynopsis>
+  </refsynopsisdiv>
+  <refsect1>
+    <title>DESCRIPTION</title>
+
+    <para>This manual page documents briefly the
+      <command>&dhpackage;</command> and <command>bar</command>
+      commands.</para>
+
+    <para>This manual page was written for the &debian; distribution
+      because the original program does not have a manual page.
+      Instead, it has documentation in the &gnu;
+      <application>Info</application> format; see below.</para>
+
+    <para><command>&dhpackage;</command> is a program that...</para>
+
+  </refsect1>
+  <refsect1>
+    <title>OPTIONS</title>
+
+    <para>These programs follow the usual &gnu; command line syntax,
+      with long options starting with two dashes (`-').  A summary of
+      options is included below.  For a complete description, see the
+      <application>Info</application> files.</para>
+
+    <variablelist>
+      <varlistentry>
+        <term><option>-h</option>
+          <option>--help</option>
+        </term>
+        <listitem>
+          <para>Show summary of options.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term><option>-v</option>
+          <option>--version</option>
+        </term>
+        <listitem>
+          <para>Show version of program.</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refsect1>
+  <refsect1>
+    <title>SEE ALSO</title>
+
+    <para>bar (1), baz (1).</para>
+
+    <para>The programs are documented fully by <citetitle>The Rise and
+      Fall of a Fooish Bar</citetitle> available via the
+      <application>Info</application> system.</para>
+  </refsect1>
+  <refsect1>
+    <title>AUTHOR</title>
+
+    <para>This manual page was written by &dhusername; &dhemail; for
+      the &debian; system (but may be used by others).  Permission is
+      granted to copy, distribute and/or modify this document under
+      the terms of the &gnu; General Public License, Version 2 any 
+	  later version published by the Free Software Foundation.
+    </para>
+	<para>
+	  On Debian systems, the complete text of the GNU General Public
+	  License can be found in /usr/share/common-licenses/GPL.
+	</para>
+
+  </refsect1>
+</refentry>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/menu.ex	Tue Jun 10 14:28:55 2008 -0700
@@ -0,0 +1,2 @@
+?package(libpst):needs="X11|text|vc|wm" section="Apps/see-menu-manual"\
+  title="libpst" command="/usr/bin/libpst"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/postinst.ex	Tue Jun 10 14:28:55 2008 -0700
@@ -0,0 +1,41 @@
+#!/bin/sh
+# postinst script for libpst
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <postinst> `configure' <most-recently-configured-version>
+#        * <old-postinst> `abort-upgrade' <new version>
+#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+#          <new-version>
+#        * <postinst> `abort-remove'
+#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+#          <failed-install-package> <version> `removing'
+#          <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+    configure)
+    ;;
+
+    abort-upgrade|abort-remove|abort-deconfigure)
+    ;;
+
+    *)
+        echo "postinst called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/postrm.ex	Tue Jun 10 14:28:55 2008 -0700
@@ -0,0 +1,39 @@
+#!/bin/sh
+# postrm script for libpst
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <postrm> `remove'
+#        * <postrm> `purge'
+#        * <old-postrm> `upgrade' <new-version>
+#        * <new-postrm> `failed-upgrade' <old-version>
+#        * <new-postrm> `abort-install'
+#        * <new-postrm> `abort-install' <old-version>
+#        * <new-postrm> `abort-upgrade' <old-version>
+#        * <disappearer's-postrm> `disappear' <overwriter>
+#          <overwriter-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+    purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
+    ;;
+
+    *)
+        echo "postrm called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/preinst.ex	Tue Jun 10 14:28:55 2008 -0700
@@ -0,0 +1,37 @@
+#!/bin/sh
+# preinst script for libpst
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <new-preinst> `install'
+#        * <new-preinst> `install' <old-version>
+#        * <new-preinst> `upgrade' <old-version>
+#        * <old-preinst> `abort-upgrade' <new-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+    install|upgrade)
+    ;;
+
+    abort-upgrade)
+    ;;
+
+    *)
+        echo "preinst called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/prerm.ex	Tue Jun 10 14:28:55 2008 -0700
@@ -0,0 +1,40 @@
+#!/bin/sh
+# prerm script for libpst
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <prerm> `remove'
+#        * <old-prerm> `upgrade' <new-version>
+#        * <new-prerm> `failed-upgrade' <old-version>
+#        * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
+#        * <deconfigured's-prerm> `deconfigure' `in-favour'
+#          <package-being-installed> <version> `removing'
+#          <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+    remove|upgrade|deconfigure)
+    ;;
+
+    failed-upgrade)
+    ;;
+
+    *)
+        echo "prerm called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/rules	Tue Jun 10 14:28:55 2008 -0700
@@ -0,0 +1,137 @@
+#!/usr/bin/make -f
+# -*- makefile -*-
+# Sample debian/rules that uses debhelper.
+#
+# This file was originally written by Joey Hess and Craig Small.
+# As a special exception, when this file is copied by dh-make into a
+# dh-make output file, you may use that output file without restriction.
+# This special exception was added by Craig Small in version 0.37 of dh-make.
+#
+# Modified to make a template file for a multi-binary package with separated
+# build-arch and build-indep targets  by Bill Allombert 2001
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+# This has to be exported to make some magic below work.
+export DH_OPTIONS
+
+# These are used for cross-compiling and for saving the configure script
+# from having to guess our platform (since we know it already)
+DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
+DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+
+
+CFLAGS = -Wall -g
+
+ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+	CFLAGS += -O0
+else
+	CFLAGS += -O2
+endif
+
+config.status: configure
+	dh_testdir
+	# Add here commands to configure the package.
+	./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info CFLAGS="$(CFLAGS)" LDFLAGS="-Wl,-z,defs"
+
+
+#Architecture 
+build: build-arch build-indep
+
+build-arch: build-arch-stamp
+build-arch-stamp:  config.status
+
+	# Add here commands to compile the arch part of the package.
+	#$(MAKE) 
+	touch $@
+
+build-indep: build-indep-stamp
+build-indep-stamp:  config.status
+
+	# Add here commands to compile the indep part of the package.
+	#$(MAKE) doc
+	touch $@
+
+clean:
+	dh_testdir
+	dh_testroot
+	rm -f build-arch-stamp build-indep-stamp #CONFIGURE-STAMP#
+
+	# Add here commands to clean up after the build process.
+	-$(MAKE) distclean
+ifneq "$(wildcard /usr/share/misc/config.sub)" ""
+	cp -f /usr/share/misc/config.sub config.sub
+endif
+ifneq "$(wildcard /usr/share/misc/config.guess)" ""
+	cp -f /usr/share/misc/config.guess config.guess
+endif
+
+
+	dh_clean 
+
+install: install-indep install-arch
+install-indep:
+	dh_testdir
+	dh_testroot
+	dh_clean -k -i 
+	dh_installdirs -i
+
+	# Add here commands to install the indep part of the package into
+	# debian/<package>-doc.
+	#INSTALLDOC#
+
+	dh_install -i
+
+install-arch:
+	dh_testdir
+	dh_testroot
+	dh_clean -k -s 
+	dh_installdirs -s
+
+	# Add here commands to install the arch part of the package into 
+	# debian/tmp.
+	$(MAKE) DESTDIR=$(CURDIR)/debian/tmp install
+
+	dh_install -s --list-missing --sourcedir=$(CURDIR)/debian/tmp
+# Must not depend on anything. This is to be called by
+# binary-arch/binary-indep
+# in another 'make' thread.
+binary-common:
+	dh_testdir
+	dh_testroot
+	dh_installchangelogs ChangeLog
+	dh_installdocs
+	dh_installexamples
+#	dh_installmenu
+#	dh_installdebconf	
+#	dh_installlogrotate	
+#	dh_installemacsen
+#	dh_installpam
+#	dh_installmime
+#	dh_python
+#	dh_installinit
+#	dh_installcron
+	dh_installinfo
+	dh_installman
+	dh_link
+	dh_strip
+	dh_compress 
+	dh_fixperms
+#	dh_perl
+	dh_makeshlibs -V
+	dh_installdeb
+	dh_shlibdeps -L libpst -l debian/tmp/usr/lib
+	dh_gencontrol
+	dh_md5sums
+	dh_builddeb
+# Build architecture independant packages using the common target.
+binary-indep: build-indep install-indep
+	$(MAKE) -f debian/rules DH_OPTIONS=-i binary-common
+
+# Build architecture dependant packages using the common target.
+binary-arch: build-arch install-arch
+	$(MAKE) -f debian/rules DH_OPTIONS=-s binary-common
+
+binary: binary-arch binary-indep
+.PHONY: build clean binary-indep binary-arch binary install install-indep install-arch 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/watch.ex	Tue Jun 10 14:28:55 2008 -0700
@@ -0,0 +1,22 @@
+# Example watch control file for uscan
+# Rename this file to "watch" and then you can run the "uscan" command
+# to check for upstream updates and more.
+# See uscan(1) for format
+
+# Compulsory line, this is a version 3 file
+version=3
+
+# Uncomment to examine a Webpage 
+# <Webpage URL> <string match>
+#http://www.example.com/downloads.php libpst-(.*)\.tar\.gz
+
+# Uncomment to examine a Webserver directory
+#http://www.example.com/pub/libpst-(.*)\.tar\.gz
+
+# Uncommment to examine a FTP server
+#ftp://ftp.example.com/pub/libpst-(.*)\.tar\.gz debian uupdate
+
+# Uncomment to find new files on sourceforge, for debscripts >= 2.9
+# http://sf.net/libpst/libpst-(.*)\.tar\.gz
+
+
--- a/libpst.spec.in	Sat Jun 07 15:53:08 2008 -0700
+++ b/libpst.spec.in	Tue Jun 10 14:28:55 2008 -0700
@@ -47,6 +47,10 @@
 
 
 %changelog
+* Tue Jun 10 2008 Carl Byington <carl@five-ten-sg.com> - 0.6.12-1
+- Patch from Joachim Metz for debian packaging and
+- fix for incorrect length on lz decompression
+
 * Tue Jun 03 2008 Carl Byington <carl@five-ten-sg.com> - 0.6.11-1
 - Use ftello/fseeko to properly handle large files.
 - Document and properly use datasize field in b5 blocks.
--- a/src/lzfu.c	Sat Jun 07 15:53:08 2008 -0700
+++ b/src/lzfu.c	Tue Jun 10 14:28:55 2008 -0700
@@ -70,10 +70,12 @@
 	//printf("compressed: %s\n", (lzfuhdr.dwMagic == LZFU_COMPRESSED ? "yes" : "no"));
 	//printf("CRC       : %#x\n", lzfuhdr.dwCRC);
 	//printf("\n");
-	out_size = lzfuhdr.cbRawSize + 3;	// two braces and a null terminator
+	out_size = lzfuhdr.cbRawSize;
 	out_buf  = (char*)xmalloc(out_size);
 	in_ptr	 = sizeof(lzfuhdr);
-	in_size  = (lzfuhdr.cbSize < compsize) ? lzfuhdr.cbSize : compsize;
+	// Make sure to correct lzfuhdr.cbSize with 4 bytes before comparing
+	// to compsize
+	in_size  = (lzfuhdr.cbSize + 4 < compsize) ? lzfuhdr.cbSize + 4 : compsize;
 	while (in_ptr < in_size) {
 		flags = (unsigned char)(rtfcomp[in_ptr++]);
 		flag_mask = 1;
@@ -100,6 +102,9 @@
 						dict[dict_length]=c1;
 						dict_length = (dict_length+1) % 4096;
 						if (out_ptr < out_size) out_buf[out_ptr++] = (char)c1;
+						// required for dictionary wrap around
+						// otherwise 0 byte values are referenced incorrectly
+						dict[dict_length] = 0;
 					}
 				}
 			} else {
@@ -110,16 +115,14 @@
 					dict[dict_length] = c1;
 					dict_length = (dict_length+1)%4096;
 					if (out_ptr < out_size) out_buf[out_ptr++] = (char)c1;
+					// required for dictionary wrap around
+					// otherwise 0 byte values are referenced incorrect
+					dict[dict_length] = 0;
 				}
 			}
 			flag_mask <<= 1;
 		}
 	}
-	// the compressed version doesn't appear to drop the closing
-	// braces onto the doc, so we do that here.
-	if (out_ptr < out_size) out_buf[out_ptr++] = '}';
-	if (out_ptr < out_size) out_buf[out_ptr++] = '}';
-	*size = out_ptr;
-	if (out_ptr < out_size) out_buf[out_ptr++] = '\0';
+	// the RTF data is terminated with }}\0\0
 	return out_buf;
 }