[PPL-devel] Intend to take this one

Michael Tautschnig mt at debian.org
Mon Jun 9 07:32:27 CEST 2008


> Dear PPL-Developers,
> 
> >
> > this is great news!  The project "packaging PPL for Debian" was frozen because
> > our group does not currently have an expert in Debian packaging.  If you can
> > guide us, we could finally complete the job.
> >
> [...]
> 
> I've packaged and uploaded the 0.9 version with the attached modifications. You
> might want to incorporate some of which in your upstream sources, which mainly
> accounts for the following changes:
[...]

Well, I should have attached something ... - sorry, here comes the patch.

Best,
Michael

-------------- next part --------------
--- ppl-0.9.orig/debian/libppl-doc.dirs
+++ ppl-0.9/debian/libppl-doc.dirs
@@ -0,0 +1 @@
+usr/share/doc-base
--- ppl-0.9.orig/debian/rules
+++ ppl-0.9/debian/rules
@@ -70,7 +70,7 @@
 	rm -f build-arch-stamp build-indep-stamp #CONFIGURE-STAMP#
 
 #	Add here commands to clean up after the build process.
-	-$(MAKE) distclean
+	[ ! -e Makefile ] || $(MAKE) distclean
 ifneq "$(wildcard /usr/share/misc/config.sub)" ""
 	cp -f /usr/share/misc/config.sub config.sub
 endif
@@ -94,9 +94,9 @@
 # 	dh_install -i
 
 # Destination directory for user manual.
-DOC_DIR=debian/libppl-dev/usr/share/doc/libppl
+DOC_DIR=debian/libppl-doc/usr/share/doc/libppl-doc
 # Destination directory for developer reference.
-DEV_DOC_DIR=debian/libppl-dev/usr/share/doc/libppl
+DEV_DOC_DIR=debian/libppl-doc/usr/share/doc/libppl-doc
 #SRC_DOC_DIR=$(CURDIR)/debian/tmp/usr/share/doc/ppl/
 SRC_DOC_DIR=$(CURDIR)/doc
 install-arch:
@@ -122,37 +122,25 @@
 #   directories which have fixed names.
 	mkdir -p $(DOC_DIR)/html || exit 1
 	mkdir -p $(DEV_DOC_DIR)/html || exit 1
-	$(MAKE) -C doc world \
-	&& cp -a $(SRC_DOC_DIR)/ppl-user-$(PPL_VERSION)-html $(DOC_DIR)/html/user-manual/ \
-	&& cp -a $(SRC_DOC_DIR)/ppl-user-$(PPL_VERSION).pdf $(DOC_DIR)/ppl-user-browse.pdf \
-	&& cp -a $(SRC_DOC_DIR)/ppl-user-$(PPL_VERSION).ps.gz $(DOC_DIR)/ppl-user-print.ps.gz \
-	&& cp -a $(SRC_DOC_DIR)/ppl-devref-$(PPL_VERSION)-html $(DEV_DOC_DIR)/html/developer-reference/ \
-	&& cp -a $(SRC_DOC_DIR)/ppl-devref-$(PPL_VERSION).pdf $(DEV_DOC_DIR)/ppl-devref-browse.pdf \
-	&& cp -a $(SRC_DOC_DIR)/ppl-devref-$(PPL_VERSION).ps.gz $(DEV_DOC_DIR)/ppl-devref-print.ps.gz
-
-#	Explicitly install the Debian changelog, for libppl and libppl-pwl.
-	mkdir -p debian/libppl/usr/share/doc/libppl/
-	cp -a debian/changelog debian/libppl/usr/share/doc/libppl/changelog.Debian
-	mkdir -p debian/libppl-pwl/usr/share/doc/libppl-pwl/
-	cp -a debian/changelog debian/libppl-pwl/usr/share/doc/libppl-pwl/changelog.Debian
+	$(MAKE) -C doc world
+	cp -a $(SRC_DOC_DIR)/ppl-user-$(PPL_VERSION)-html $(DOC_DIR)/html/user-manual
+	cp -a $(SRC_DOC_DIR)/ppl-user-$(PPL_VERSION).pdf $(DOC_DIR)/ppl-user-browse.pdf
+	cp -a $(SRC_DOC_DIR)/ppl-user-$(PPL_VERSION).ps.gz $(DOC_DIR)/ppl-user-print.ps.gz
+	cp -a $(SRC_DOC_DIR)/ppl-devref-$(PPL_VERSION)-html $(DEV_DOC_DIR)/html/developer-reference
+	cp -a $(SRC_DOC_DIR)/ppl-devref-$(PPL_VERSION).pdf $(DEV_DOC_DIR)/ppl-devref-browse.pdf
+	cp -a $(SRC_DOC_DIR)/ppl-devref-$(PPL_VERSION).ps.gz $(DEV_DOC_DIR)/ppl-devref-print.ps.gz
 
-	dh_install -s --sourcedir=debian/tmp
 
 # Must not depend on anything. This is to be called by
 # binary-arch/binary-indep
 # in another 'make' thread.
-binary-common:
+binary-arch: install-arch
 	dh_testdir
 	dh_testroot
 
-#   This would install the change logs into every package, so instead
-#   the install-arch rule above copies the logs into place.
-#	dh_installchangelogs -plibppl -plibppl-pwl
-
+	dh_installchangelogs ChangeLog
 	dh_installdocs
-#   These directories will be symlinks instead.  The [^p] is to keep
-#   the directory for libppl-pwl.
-	rmdir debian/libppl-[^p]*/usr/share/doc/libppl-* || exit 1
+	dh_install -s --sourcedir=debian/tmp
 #	dh_installexamples
 #	dh_installmenu
 #	dh_installdebconf
@@ -161,6 +149,12 @@
 #	dh_installcron
 #	dh_installinfo
 #	dh_installman
+#   These directories will be symlinks instead.  The [^p] is to keep
+#   the directory for libppl-pwl.
+	rm debian/libppl-c0/usr/share/doc/libppl-c0/{copyright,changelog.Debian,changelog}
+	rmdir debian/libppl-c0/usr/share/doc/libppl-c0
+	rm debian/libppl-dev/usr/share/doc/libppl-dev/{copyright,changelog.Debian,changelog}
+	rmdir debian/libppl-dev/usr/share/doc/libppl-dev
 	dh_link
 	dh_strip
 	dh_compress
@@ -175,12 +169,21 @@
 	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
+binary-indep: binary-arch
+	dh_testdir
+	dh_testroot
 
-## Build architecture dependant packages using the common target.
-binary-arch: build-arch install-arch
-	$(MAKE) -f debian/rules DH_OPTIONS=-a binary-common
+	dh_installchangelogs ChangeLog
+	dh_installdocs
+	dh_link
+	dh_strip
+	dh_compress
+	dh_fixperms
+	dh_makeshlibs
+	dh_installdeb
+	dh_gencontrol
+	dh_md5sums
+	dh_builddeb
 
 binary: binary-arch binary-indep
 .PHONY: build clean binary-indep binary-arch binary install install-indep install-arch
--- ppl-0.9.orig/debian/libppl6.dirs
+++ ppl-0.9/debian/libppl6.dirs
@@ -0,0 +1,3 @@
+usr/lib
+usr/bin
+usr/share/man/man1
--- ppl-0.9.orig/debian/libppl-doc.install
+++ ppl-0.9/debian/libppl-doc.install
@@ -0,0 +1 @@
+usr/share/doc/libppl-doc/
--- ppl-0.9.orig/debian/libppl-c0.links
+++ ppl-0.9/debian/libppl-c0.links
@@ -0,0 +1 @@
+usr/share/doc/libppl6 usr/share/doc/libppl-c0
--- ppl-0.9.orig/debian/shlibs.local
+++ ppl-0.9/debian/shlibs.local
@@ -0,0 +1 @@
+libppl 6 libppl6
--- ppl-0.9.orig/debian/changelog
+++ ppl-0.9/debian/changelog
@@ -1,11 +1,11 @@
-libppl (0.9) unstable; urgency=low
+ppl (0.9-2) unstable; urgency=low
 
-   * Release 0.9.
+   * Added libppl-doc package
 
- -- Roberto Bagnara <bagnara at cs.unipr.it>  Fri, 10 Mar 2006 18:08:34 +0000
+ -- Michael Tautschnig <mt at debian.org>  Sun, 08 Jun 2008 10:54:03 +0000
 
-libppl (0.8) unstable; urgency=low
+ppl (0.9-1) unstable; urgency=low
 
-   * Initial upstream release.
+   * Initial upload (closes: #409786)
 
- -- Roberto Bagnara <bagnara at cs.unipr.it>  Thu, 19 Jan 2006 23:58:34 +0000
+ -- Michael Tautschnig <mt at debian.org>  Wed, 04 Jun 2008 19:08:00 +0000
--- ppl-0.9.orig/debian/libppl-dev.install
+++ ppl-0.9/debian/libppl-dev.install
@@ -1,5 +1,6 @@
 usr/lib/libppl.la
 usr/lib/libppl.a
+usr/lib/libppl.so
 usr/include/ppl_c.h
 usr/include/ppl.hh
 usr/include/pwl.hh
--- ppl-0.9.orig/debian/libppl6.install
+++ ppl-0.9/debian/libppl6.install
@@ -0,0 +1,7 @@
+usr/lib/libppl.so.*
+usr/bin/ppl-config
+usr/bin/ppl_lcdd
+usr/bin/ppl_lpsol
+usr/share/man/man1/ppl-config.1
+usr/share/man/man1/ppl_lcdd.1
+usr/share/man/man1/ppl_lpsol.1
--- ppl-0.9.orig/debian/libpwl3.docs
+++ ppl-0.9/debian/libpwl3.docs
@@ -0,0 +1,4 @@
+BUGS
+NEWS
+README
+CREDITS
--- ppl-0.9.orig/debian/control
+++ ppl-0.9/debian/control
@@ -1,14 +1,15 @@
-Source: libppl
+Source: ppl
 Section: libs
 Priority: optional
-Maintainer: PPL developers <ppl-devel at cs.unipr.it>
-Standards-Version: 3.6.1
-Build-Depends: debhelper (>= 4), binutils, g++, libgmp3-dev (>= 4.1.3), autoconf, automake1.9, libtool, doxygen, graphviz, glpk, tetex-bin, tetex-extra, xpdf-utils, gs-gpl
+Maintainer: Michael Tautschnig <mt at debian.org>
+Standards-Version: 3.7.3.0
+Build-Depends: debhelper (>= 4), binutils, libgmp3-dev (>= 4.1.3), automake, libtool, doxygen, graphviz, glpk, tetex-bin|texlive-base-bin, tetex-extra|texlive-latex-extra, xpdf-utils, gs-gpl
 Build-Conflicts: automake1.4
+Homepage: http://www.cs.unipr.it/ppl/
 
-Package: libppl
+Package: libppl6
 Architecture: any
-Depends: libgmp3 (>=4.1.3)
+Depends: ${shlibs:Depends}
 Description: Parma Polyhedra Library: base package
  The Parma Polyhedra Library (PPL) is a C++ library for the
  manipulation of (not necessarily closed) convex polyhedra and other
@@ -19,15 +20,13 @@
  mean it), fully dynamic (available virtual memory is the only
  limitation to the dimension of anything), written in standard C++,
  exception-safe, rather efficient and thoroughly documented.
- .
- Homepage: http://www.cs.unipr.it/ppl/
 
 Package: libppl-dev
 Architecture: any
 Section: libdevel
-Depends: libppl, graphviz
+Depends: libppl6 (= ${binary:Version}), graphviz
 Recommends: libgmp3-dev
-Suggests: libgmp3-doc
+Suggests: libppl-doc, libgmp3-doc
 Description: Parma Polyhedra Library: C++ interface
  The Parma Polyhedra Library (PPL) is a C++ library for the
  manipulation of (not necessarily closed) convex polyhedra and other
@@ -41,12 +40,10 @@
  .
  This package provides C++ header files, the static library and
  various formats of the developer documentation.
- .
- Homepage: http://www.cs.unipr.it/ppl/
 
-Package: libppl-c
+Package: libppl-c0
 Architecture: any
-Depends: libppl, libc6
+Depends: libppl6 (= ${binary:Version}), ${shlibs:Depends}
 Description: Parma Polyhedra Library: C interface
  The Parma Polyhedra Library (PPL) is a C++ library for the
  manipulation of (not necessarily closed) convex polyhedra and other
@@ -59,16 +56,29 @@
  exception-safe, rather efficient and thoroughly documented.
  .
  This package provides the C interface.
- .
- Homepage: http://www.cs.unipr.it/ppl/
 
-Package: libppl-pwl
+Package: libpwl3
 Architecture: any
 Section: libs
+Depends: ${shlibs:Depends}
 Description: Parma Watchdog Library: C++ library for watchdog timers
  The Parma Watchdog Library (PWL) provides support for multiple,
  concurrent watchdog timers on systems providing setitimer(2).  The
  PWL is currently distributed with the Parma Polyhedra Library (PPL),
  but is totally independent from it.
+
+Package: libppl-doc
+Architecture: all
+Section: doc
+Description: Parma Polyhedra Library: Documentation
+ The Parma Polyhedra Library (PPL) is a C++ library for the
+ manipulation of (not necessarily closed) convex polyhedra and other
+ numerical abstractions.  The applications of convex polyhedra include
+ program analysis, optimized compilation, integer and combinatorial
+ optimization and statistical data-editing.  The Parma Polyhedra
+ Library is user friendly (you write `x + 2*y + 5*z <= 7' when you
+ mean it), fully dynamic (available virtual memory is the only
+ limitation to the dimension of anything), written in standard C++,
+ exception-safe, rather efficient and thoroughly documented.
  .
- Homepage: http://www.cs.unipr.it/ppl/
+ This package provides the documentation.
--- ppl-0.9.orig/debian/libppl-dev.dirs
+++ ppl-0.9/debian/libppl-dev.dirs
@@ -1,3 +1 @@
 usr/include
-usr/share/doc-base
-usr/share/doc/libppl
--- ppl-0.9.orig/debian/libppl-dev.doc-base.user
+++ ppl-0.9/debian/libppl-dev.doc-base.user
@@ -1,17 +0,0 @@
-Document: libppl
-Title: The Parma Polyhedra Library User Manual
-Author: PPL developers <ppl-devel at cs.unipr.it>
-Abstract: This manual contains a general introduction to the Parma
- Polyhedra Library (PPL) and full documentation of the PPL C++
- interface.
-Section: Apps/Programming
-
-Format: postscript
-Files: /usr/share/doc/libppl/ppl-user-browse.ps.gz
-
-Format: pdf
-Files: /usr/share/doc/libppl/ppl-user-browse.pdf
-
-Format: HTML
-Index: /usr/share/doc/libppl/html/user-manual/index.html
-Files: /usr/share/doc/libppl/html/user-manual/*.html
--- ppl-0.9.orig/debian/libppl-c0.dirs
+++ ppl-0.9/debian/libppl-c0.dirs
@@ -0,0 +1 @@
+usr/lib
--- ppl-0.9.orig/debian/libppl-doc.doc-base
+++ ppl-0.9/debian/libppl-doc.doc-base
@@ -0,0 +1,17 @@
+Document: libppl-dev
+Title: The Parma Polyhedra Library Developer Reference Manual
+Author: PPL developers <ppl-devel at cs.unipr.it>
+Abstract: This manual contains a general introduction to the Parma
+ Polyhedra Library (PPL) and full documentation of the PPL C++
+ interface, including implementation details.
+Section: Programming/C++
+
+Format: postscript
+Files: /usr/share/doc/libppl-doc/ppl-devref-print.ps.gz
+
+Format: pdf
+Files: /usr/share/doc/libppl-doc/ppl-devref-browse.pdf.gz
+
+Format: HTML
+Index: /usr/share/doc/libppl-doc/html/developer-reference/index.html
+Files: /usr/share/doc/libppl-doc/html/developer-reference/*.html
--- ppl-0.9.orig/debian/libppl-dev.doc-base
+++ ppl-0.9/debian/libppl-dev.doc-base
@@ -1,17 +0,0 @@
-Document: libppl-dev
-Title: The Parma Polyhedra Library Developer Reference Manual
-Author: PPL developers <ppl-devel at cs.unipr.it>
-Abstract: This manual contains a general introduction to the Parma
- Polyhedra Library (PPL) and full documentation of the PPL C++
- interface, including implementation details.
-Section: Apps/Programming
-
-Format: postscript
-Files: /usr/share/doc/libppl/ppl-devref-browse.ps.gz
-
-Format: pdf
-Files: /usr/share/doc/libppl/ppl-devref-browse.pdf
-
-Format: HTML
-Index: /usr/share/doc/libppl/html/developer-reference/index.html
-Files: /usr/share/doc/libppl/html/developer-reference/*.html
--- ppl-0.9.orig/debian/libpwl3.install
+++ ppl-0.9/debian/libpwl3.install
@@ -0,0 +1,4 @@
+usr/lib/libpwl.so
+usr/lib/libpwl.so.*
+usr/lib/libpwl.a
+usr/lib/libpwl.la
--- ppl-0.9.orig/debian/libppl-c0.install
+++ ppl-0.9/debian/libppl-c0.install
@@ -0,0 +1 @@
+usr/lib/libppl_c.so.*
--- ppl-0.9.orig/debian/libppl6.docs
+++ ppl-0.9/debian/libppl6.docs
@@ -0,0 +1,4 @@
+BUGS
+NEWS
+README
+CREDITS
--- ppl-0.9.orig/debian/watch
+++ ppl-0.9/debian/watch
@@ -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 minisat2-(.*)\.tar\.gz
+
+# Uncomment to examine a Webserver directory
+http://www.cs.unipr.it/ppl/Download/ftp/releases/LATEST/ppl-(.*)\.tar\.gz
+
+# Uncommment to examine a FTP server
+#ftp://ftp.example.com/pub/minisat2-(.*)\.tar\.gz debian uupdate
+
+# Uncomment to find new files on sourceforge, for debscripts >= 2.9
+# http://sf.net/minisat2/minisat2-(.*)\.tar\.gz
+
+
--- ppl-0.9.orig/debian/README.source
+++ ppl-0.9/debian/README.source
@@ -0,0 +1,35 @@
+Building the Debian packages
+============================
+
+The simplest way to build the Debian packages is to run the following
+command in an up-to-date PPL directory.
+
+	dpkg-buildpackage -rsudo
+
+`dpkg-buildpackage' is available in the dpkg-dev package.  Here the
+`sudo' program (from the sudo package) is also required.  This will
+build the PPL using the standard GMP, C compiler and C++ compiler.
+Note that the configuration of GMP, at least on the Debian stable
+distribution, lacks the -fexceptions preprocessor flag, which is
+required for PPL memory bounds handling.
+
+Alternatively, the `pbuilder' program (from the pbuilder package) can
+be used to build a "clean-room" package.  `pbuilder' sets up a chroot
+of a minimal stable distribution and then builds the package inside
+the chroot.  This is good to verify the build dependencies.  It also
+may be required, to ensure that the PPL is built against the compiler
+and GMP from the stable distributions (if, for example, the build
+machine uses the testing or unstable distributions).
+
+
+References
+----------
+
+ - Debian Library Packaging guide
+	 http://www.netfort.gr.jp/~dancer/column/libpkg-guide/libpkg-guide.html
+
+ - Debian New Maintainers' Guide
+	 http://www.debian.org/doc/maint-guide/
+
+ - Debian Developer's Reference
+	 http://www.debian.org/doc/developers-reference/
--- ppl-0.9.orig/debian/libppl-doc.doc-base.user
+++ ppl-0.9/debian/libppl-doc.doc-base.user
@@ -0,0 +1,17 @@
+Document: libppl
+Title: The Parma Polyhedra Library User Manual
+Author: PPL developers <ppl-devel at cs.unipr.it>
+Abstract: This manual contains a general introduction to the Parma
+ Polyhedra Library (PPL) and full documentation of the PPL C++
+ interface.
+Section: Programming/C++
+
+Format: postscript
+Files: /usr/share/doc/libppl-doc/ppl-user-print.ps.gz
+
+Format: pdf
+Files: /usr/share/doc/libppl-doc/ppl-user-browse.pdf.gz
+
+Format: HTML
+Index: /usr/share/doc/libppl-doc/html/user-manual/index.html
+Files: /usr/share/doc/libppl-doc/html/user-manual/*.html
--- ppl-0.9.orig/debian/libppl-dev.links
+++ ppl-0.9/debian/libppl-dev.links
@@ -1 +1 @@
-usr/share/doc/libppl usr/share/doc/libppl-dev
+usr/share/doc/libppl6 usr/share/doc/libppl-dev
--- ppl-0.9.orig/debian/copyright
+++ ppl-0.9/debian/copyright
@@ -0,0 +1,47 @@
+This is Debian GNU's prepackaged version of the Parma Polyhedra Library (PPL):
+a C++ library for the manipulation of numerical abstractions.
+
+This package has seen its final preparation for Debian by Michael Tautschnig
+<mt at debian.org> using the sources obtained from 
+ftp://ftp.cs.unipr.it/pub/ppl/releases/0.9/ppl-0.9.tar.gz
+
+Program Copyright (C) 2001-2006 Roberto Bagnara <bagnara at cs.unipr.it>
+Modifications for Debian Copyright (C) 2008 Michael Tautschnig.
+
+Authors: see the CREDITS file or http://www.cs.unipr.it/ppl/Credits
+for the complete list of authors.
+
+The PPL is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 2 of the License, or (at your
+option) any later version.
+
+The PPL 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 program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin St, Fifth Floor, Boston, Free Software Foundation, MA 02110-1301,
+USA.
+
+For the most up-to-date information see the Parma Polyhedra Library
+site: http://www.cs.unipr.it/ppl/ .
+
+This is the Debian GNU/Linux prepackaged version of the Parma
+Polyhedra Library (PPL): a C++ library for the manipulation of
+numerical abstractions.
+
+For the most up-to-date information see the Parma Polyhedra Library
+site: http://www.cs.unipr.it/ppl/
+
+On Debian systems, the complete text of the GNU General Public
+License, version 2, can be found in /usr/share/common-licenses/GPL-2.
+
+The documentation of the PPL is licensed under the GNU Free Documentation
+License (v1.2), appended at the end of this file.
+
+On Debian systems, the complete text of the GNU Free Documentation
+License, version 1.2, can be found in /usr/share/common-licenses/GFDL-1.2.
+
--- ppl-0.9.orig/debian/libpwl3.dirs
+++ ppl-0.9/debian/libpwl3.dirs
@@ -0,0 +1 @@
+usr/lib
--- ppl-0.9.orig/utils/timings.cc
+++ ppl-0.9/utils/timings.cc
@@ -29,6 +29,7 @@
 #include <iomanip>
 #include <cstring>
 #include <cerrno>
+#include <cstdlib>
 
 #ifdef HAVE_SYS_TIME_H
 # include <sys/time.h>


More information about the PPL-devel mailing list