--- pysparse-1.1.orig/debian/README.source +++ pysparse-1.1/debian/README.source @@ -0,0 +1,3 @@ +Please refer to /usr/share/doc/quilt/README.source for information on how to +manipulate the patches for this package, which are in the debian/patches +directory. --- pysparse-1.1.orig/debian/changelog +++ pysparse-1.1/debian/changelog @@ -0,0 +1,105 @@ +pysparse (1.1-1.2build1) trusty; urgency=medium + + * Rebuild for suitesparse 4.2.1. + + -- Colin Watson Mon, 23 Dec 2013 15:44:48 +0000 + +pysparse (1.1-1.2) unstable; urgency=low + + * Non-maintainer upload. + * suitesparse-4.1.patch: new patch, fixes FTBFS against suitesparse 4.1 + (Closes: #708379) + + -- Sébastien Villemot Mon, 05 Aug 2013 12:04:49 +0000 + +pysparse (1.1-1.1) unstable; urgency=low + + * Non-maintainer upload. + * Covnert to dh_python2 (Closes: #551697, #616986). + + -- Andrea Colangelo Fri, 28 Jun 2013 16:51:51 +0200 + +pysparse (1.1-1) unstable; urgency=low + + * New upstream release. + * Small changes to package description. + * Bounds-checking eliminates many crashes (closes: #535318). + * Added --install-layout=deb to setup.py install (closes: #547839). + * Using quilt for patches, and added README.source describing it. + * Updated Standards-Version. + + -- Adam C. Powell, IV Tue, 29 Sep 2009 19:28:55 -0400 + +pysparse (1.0.1-6) unstable; urgency=low + + * Added python-numpy to python-sparse Depends (closes: #539694). + * Updated watch file (closes: #450374). + * Updated Standards-Version. + + -- Adam C. Powell, IV Tue, 04 Aug 2009 09:51:35 -0400 + +pysparse (1.0.1-5.1) unstable; urgency=low + + * Non-maintainer upload. + * Fix pysparse.superlu module port to superlu 3 based on reading + the docs. Closes: #526527 + + -- Thomas Viehmann Fri, 01 May 2009 20:56:39 +0200 + +pysparse (1.0.1-5) unstable; urgency=low + + * Removed removal of /usr/lib and Build-Depends on python-central >= 0.6 + (closes: #472026). + + -- Adam C. Powell, IV Mon, 24 Mar 2008 16:29:44 -0400 + +pysparse (1.0.1-4) unstable; urgency=low + + * New upload for unstable. + * Removed a few unnecessary library linkages. + + -- Adam C. Powell, IV Fri, 22 Feb 2008 10:39:25 -0500 + +pysparse (1.0.1-3) experimental; urgency=low + + * Rebuild against, and depend on, suitesparse with proper shared libs. + + -- Adam C. Powell, IV Mon, 11 Feb 2008 18:28:48 -0500 + +pysparse (1.0.1-2) experimental; urgency=low + + * Changed build-depends to gfortran and its BLAS and LAPACK libs + (closes: #464973). + * Added build-depends on suitesparse and superlu, and changed build system to + use installed umfpack and superlu instead of included source. + * Doing this required forward-porting to superlu 3.0. + + -- Adam C. Powell, IV Sun, 10 Feb 2008 07:56:54 -0500 + +pysparse (1.0.1-1) unstable; urgency=low + + * New upstream release. + + -- Adam C. Powell, IV Wed, 20 Jun 2007 07:52:22 -0400 + +pysparse (1.0-1) unstable; urgency=low + + * New upstream release (closes: #419549). + * Adds the amd directory. + + -- Adam C. Powell, IV Mon, 23 Apr 2007 18:10:11 -0400 + +pysparse (0.34.032-2) unstable; urgency=low + + * Updated copyright gives authors and licenses for files in superlu and + umfpack directories. + + -- Adam C. Powell, IV Fri, 19 Jan 2007 17:56:30 -0500 + +pysparse (0.34.032-1) unstable; urgency=low + + * Initial release based on Mathias Klose' python-numeric package (closes: + #399505). + * Linking with -lblas-3 and -llapack-3. + + -- Adam C. Powell, IV Fri, 24 Nov 2006 00:15:15 -0500 --- pysparse-1.1.orig/debian/compat +++ pysparse-1.1/debian/compat @@ -0,0 +1 @@ +5 --- pysparse-1.1.orig/debian/control +++ pysparse-1.1/debian/control @@ -0,0 +1,43 @@ +Source: pysparse +Section: python +Priority: optional +Maintainer: Adam C. Powell, IV +Build-Depends: debhelper (>= 5.0.37.2), quilt, + python-all-dev (>= 2.6.6-3~), python-numpy, + gfortran, libblas-dev | libblas-3gf.so, liblapack-dev | liblapack-3gf.so, + libsuitesparse-dev (>= 3.1.0), libsuperlu3-dev +Standards-Version: 3.8.3 +Homepage: http://pysparse.sourceforge.net/ + +Package: python-sparse +Architecture: any +Depends: python-numpy, ${python:Depends}, ${shlibs:Depends} +Suggests: python-sparse-examples +Provides: ${python:Provides} +Description: Sparse linear algebra extension for Python + This provides a set of sparse matrix types for Python, with modules which + implement: + - Iterative methods for solving linear systems of equations + - A set of standard preconditioners + - An interface to a direct solver for sparse linear systems of equations + - The JDSYM eigensolver + . + All of these modules are implemented as C extension modules based on standard + sparse and dense matrix libraries (UMFPACK/AMD, SuperLU, BLAS/LAPACK) for + maximum performance and robustness. + +Package: python-sparse-examples +Architecture: all +Depends: ${python:Depends}, python-sparse (>= ${binary:Version}) +XB-Python-Version: all +Description: Sparse linear algebra extension for Python: documentation + This package provides documents and examples for python-sparse, a set of + sparse matrix types for Python, with modules which implement: + - Iterative methods for solving linear systems of equations + - A set of standard preconditioners + - An interface to a direct solver for sparse linear systems of equations + - The JDSYM eigensolver + . + All of these modules are implemented as C extension modules based on standard + sparse and dense matrix libraries (UMFPACK/AMD, SuperLU, BLAS/LAPACK) for + maximum performance. --- pysparse-1.1.orig/debian/copyright +++ pysparse-1.1/debian/copyright @@ -0,0 +1,169 @@ +This package was debianized by Adam C. Powell, IV on +November 20, 2006. + +It was downloaded from http://sourceforge.net/projects/pysparse/ + +Copyright for the main package: + +Copyright (c) 2001-2003, ETH Zurich and Roman Geus +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * 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. + * Neither the name of the ETH Zurich nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER 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. + +------------------------------------------------------------------ + +This is distributed also with SuperLU and UMFPack source (not used in the +binary packages), which come with the following copyright notices: + +In the superlu directory, the following files have the text below: +dcolumn_bmod.c, dcolumn_dfs.c, dcopy_to_ucol.c, dgstrf.c, dgstrs.c, +dpanel_bmod.c, dpanel_dfs, dpivotL.c, dpruneL.c, dutil.c, relax_snode.c, +superlu/util.c (dgstrf.c adds "Last modified: June 6, 2002") + + * -- SuperLU routine (version 2.0) -- + * Univ. of California Berkeley, Xerox Palo Alto Research Center, + * and Lawrence Berkeley National Lab. + * November 15, 1997 + + Copyright (c) 1994 by Xerox Corporation. All rights reserved. + + THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY + EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK. + + Permission is hereby granted to use or copy this program for any + purpose, provided the above notices are retained on all copies. + Permission to modify the code and to distribute modified code is + granted, provided the above notices are retained, and a notice that + the code was modified is included with the above copyright notice. + +--------- + +superlu/colamd.c and superlu/colamd.h have the following: + + Authors: + + The authors of the code itself are Stefan I. Larimore and Timothy A. + Davis (davis@cise.ufl.edu), University of Florida. The algorithm was + developed in collaboration with John Gilbert, Xerox PARC, and Esmond + Ng, Oak Ridge National Laboratory. + + Date: + + August 3, 1998. Version 1.0. + + Acknowledgements: + + This work was supported by the National Science Foundation, under + grants DMS-9504974 and DMS-9803599. + + Notice: + + Copyright (c) 1998 by the University of Florida. All Rights Reserved. + + THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY + EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK. + + Permission is hereby granted to use or copy this program for any + purpose, provided the above notices are retained on all copies. + User documentation of any code that uses this code must cite the + Authors, the Copyright, and "Used by permission." If this code is + accessible from within Matlab, then typing "help colamd" or "colamd" + (with no arguments) must cite the Authors. Permission to modify the + code and to distribute modified code is granted, provided the above + notices are retained, and a notice that the code was modified is + included with the above copyright notice. You must also retain the + Availability information below, of the original version. + + This software is provided free of charge. + + Availability: + + This file is located at + + http://www.cise.ufl.edu/~davis/colamd/colamd.c + + The colamd.h file is required, located in the same directory. + The colamdmex.c file provides a Matlab interface for colamd. + The symamdmex.c file provides a Matlab interface for symamd, which is + a symmetric ordering based on this code, colamd.c. All codes are + purely ANSI C compliant (they use no Unix-specific routines, include + files, etc.). + +--------- + +The file umfpack/umfpack.h gives the copyright for files in that directory: + +#define UMFPACK_VERSION "UMFPACK V4.1 (Apr. 30, 2003)" + +#define UMFPACK_COPYRIGHT \ +"UMFPACK: Copyright (c) 2003 by Timothy A. Davis. All Rights Reserved.\n" + +#define UMFPACK_LICENSE_PART1 \ +"\nUMFPACK License:\n" \ +"\n" \ +" Your use or distribution of UMFPACK or any modified version of\n" \ +" UMFPACK implies that you agree to this License.\n" \ +"\n" \ +" THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY\n" \ +" EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.\n" +#define UMFPACK_LICENSE_PART2 \ +"\n" \ +" Permission is hereby granted to use or copy this program, provided\n" \ +" that the Copyright, this License, and the Availability of the original\n" \ +" version is retained on all copies. User documentation of any code that\n" \ +" uses UMFPACK or any modified version of UMFPACK code must cite the\n" \ +" Copyright, this License, the Availability note, and \"Used by permission.\"\n" +#define UMFPACK_LICENSE_PART3 \ +" Permission to modify the code and to distribute modified code is granted,\n" \ +" provided the Copyright, this License, and the Availability note are\n" \ +" retained, and a notice that the code was modified is included. This\n" \ +" software was developed with support from the National Science Foundation,\n" \ +" and is provided to you free of charge.\n" \ +"\n" \ +"Availability: http://www.cise.ufl.edu/research/sparse/umfpack\n" \ +"\n" + +--------- + +The directory amd is new to version 1.0. The copyright notice found in amd.h +refers to the LGPL, which is found in /usr/share/common-licenses/LGPL-2.1: + +/* AMD Version 1.0 (Apr. 30, 2003), Copyright (c) 2003 by Timothy A. Davis, */ +/* Patrick R. Amestoy, and Iain S. Duff. See ../README for License. */ +/* email: davis@cise.ufl.edu CISE Department, Univ. of Florida. */ +/* web: http://www.cise.ufl.edu/research/sparse/amd */ + +Unfortunately, ../README is the main pysparse README, not the amd README. But +visiting the "web:" link above reveals: + +Copyright, and License: + + Copyright (c) 2004-2006 by Timothy A. Davis, Patrick R. Amestoy, and Iain S. Duff. All Rights Reserved. Distributed under the GNU LGPL license. + +For details, see: http://www.cise.ufl.edu/research/sparse/amd/AMD/ which +appears to include the README file, including the LGPL licensing language +(Version 2.1 or any later). --- pysparse-1.1.orig/debian/patches/no-g2c.patch +++ pysparse-1.1/debian/patches/no-g2c.patch @@ -0,0 +1,13 @@ +Remove g2c library no longer in Debian from consideration by setup.py. + +--- pysparse-1.1/setup.py~ 2009-07-29 18:06:29.000000000 -0400 ++++ pysparse-1.1/setup.py 2009-09-27 18:17:28.000000000 -0400 +@@ -8,7 +8,7 @@ + + # default settings + library_dirs_list= [] +-libraries_list = ['lapack', 'blas', 'g2c'] ++libraries_list = ['lapack', 'blas'] + superlu_defs = [('USE_VENDOR_BLAS',1)] + if sys.platform == 'win32': + superlu_defs += [('NO_TIMER', 1)] --- pysparse-1.1.orig/debian/patches/quiltrc +++ pysparse-1.1/debian/patches/quiltrc @@ -0,0 +1,2 @@ +QUILT_PATCHES="debian/patches" +QUILT_NO_DIFF_TIMESTAMPS=1 --- pysparse-1.1.orig/debian/patches/series +++ pysparse-1.1/debian/patches/series @@ -0,0 +1,3 @@ +no-g2c.patch +use-debian-libs.patch +suitesparse-4.1.patch --- pysparse-1.1.orig/debian/patches/suitesparse-4.1.patch +++ pysparse-1.1/debian/patches/suitesparse-4.1.patch @@ -0,0 +1,141 @@ +Description: Fix build failure against SuiteSparse 4.1 + In SuiteSparse 4.1, the 2by2 strategy for ordering and pivoting in UMFPACK has + been removed (it was already deprecated in SuiteSparse 3.4). This patch removes + the code and options in the python interface that are related to this strategy. +Author: Sébastien Villemot +Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=708379 +Forwarded: no +Last-Update: 2013-08-05 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/Src/umfpackmodule.c ++++ b/Src/umfpackmodule.c +@@ -491,7 +491,7 @@ + } + + static PyObject * +-newUMFPackObject(LLMatObject *matrix, int strategy, double tol2by2, int scale, ++newUMFPackObject(LLMatObject *matrix, int strategy, int scale, + double tolpivot, double tolsympivot) + { + UMFPackObject *self; +@@ -544,9 +544,6 @@ + if (strategy != -1) + self->Control[UMFPACK_STRATEGY] = strategy; + +- if (tol2by2 != -1) +- self->Control[UMFPACK_2BY2_TOLERANCE] = tol2by2; +- + if (scale != -1) + self->Control[UMFPACK_SCALE] = scale; + +@@ -662,9 +659,6 @@ + \"UMFPACK_STRATEGY_AUTO\"\n\ + \"UMFPACK_STRATEGY_UNSYMMETRIC\"\n\ + \"UMFPACK_STRATEGY_SYMMETRIC\"\n\ +- \"UMFPACK_STRATEGY_2BY2\"\n\ +-\n\ +-tol2by2 tolerance for the 2 by 2 strategy\n\ + \n\ + scale scaling UMFPACK would use\n\ + \"UMFPACK_SCALE_NONE\"\n\ +@@ -683,19 +677,17 @@ + factorize(PyObject *self, PyObject *args, PyObject *keywds) { + LLMatObject *matrix; + char *strategy="UMFPACK_STRATEGY_AUTO"; +- double tol2by2 = 0.1; + char *scale="UMFPACK_SCALE_SUM"; + double tolpivot = 0.1; + double tolsympivot = 0.0; + int res; + int strategyval = UMFPACK_STRATEGY_AUTO, scaleval = UMFPACK_SCALE_SUM; + +- static char *kwlist[] = {"", "strategy", "tol2by2", "scale", "tolpivot", "tolsympivot", NULL}; ++ static char *kwlist[] = {"", "strategy", "scale", "tolpivot", "tolsympivot", NULL}; + +- res = PyArg_ParseTupleAndKeywords(args, keywds, "O!|sdsdd", kwlist, ++ res = PyArg_ParseTupleAndKeywords(args, keywds, "O!|ssdd", kwlist, + &LLMatType, &matrix, + &strategy, +- &tol2by2, + &scale, + &tolpivot, + &tolsympivot); +@@ -708,8 +700,6 @@ + strategyval = UMFPACK_STRATEGY_UNSYMMETRIC; + else if (strcmp("UMFPACK_STRATEGY_SYMMETRIC", strategy) == 0) + strategyval = UMFPACK_STRATEGY_SYMMETRIC; +- else if (strcmp("UMFPACK_STRATEGY_2BY2", strategy) == 0) +- strategyval = UMFPACK_STRATEGY_2BY2; + + if (strcmp("UMFPACK_SCALE_NONE", scale) == 0) + scaleval = UMFPACK_SCALE_NONE; +@@ -718,7 +708,7 @@ + if (strcmp("UMFPACK_SCALE_MAX", scale) == 0) + scaleval = UMFPACK_SCALE_MAX; + +- return newUMFPackObject(matrix, strategyval, tol2by2, scaleval, tolpivot, tolsympivot); ++ return newUMFPackObject(matrix, strategyval, scaleval, tolpivot, tolsympivot); + } + + +--- a/Lib/pysparseUmfpack.py ++++ b/Lib/pysparseUmfpack.py +@@ -57,9 +57,7 @@ + + :strategy: string that specifies what kind of ordering and pivoting + strategy UMFPACK should use. Valid values are 'auto', +- 'unsymmetric', 'symmetric' and '2by2'. Default: 'auto' +- +- :tol2by2: tolerance for the 2 by 2 strategy. Default: 0.1 ++ 'unsymmetric' and 'symmetric'. Default: 'auto' + + :scale: string that specifies the scaling UMFPACK should use. Valid + values are 'none', 'sum', and 'max'. Default: 'sum'. +@@ -130,7 +128,7 @@ + + if 'strategy' in kwargs.keys(): + strategy = upper(kwargs.get('strategy')) +- if strategy not in ['AUTO', 'UNSYMMETRIC', 'SYMMETRIC', '2BY2']: ++ if strategy not in ['AUTO', 'UNSYMMETRIC', 'SYMMETRIC']: + strategy = 'AUTO' + kwargs['strategy'] = 'UMFPACK_STRATEGY_' + strategy + +--- a/Test/testUmfpack.py ++++ b/Test/testUmfpack.py +@@ -52,11 +52,6 @@ + self.LU.solve(self.b) + self.failUnless(self.computeError(self.LU.sol) < self.tol) + +- def test2by2(self): +- self.LU = PysparseUmfpackSolver(self.A, strategy='2by2') +- self.LU.solve(self.b) +- self.failUnless(self.computeError(self.LU.sol) < self.tol) +- + def testNoScaling(self): + self.LU = PysparseUmfpackSolver(self.A, scale='none') + self.LU.solve(self.b) +@@ -114,11 +109,6 @@ + self.LU.solve(self.b) + self.failUnless(self.computeError(self.LU.sol) < self.tol) + +- def testPoisson1d2by2(self): +- self.LU = PysparseUmfpackSolver(self.B, strategy='2by2') +- self.LU.solve(self.b) +- self.failUnless(self.computeError(self.LU.sol) < self.tol) +- + def testPoisson1dNoScaling(self): + self.LU = PysparseUmfpackSolver(self.B, scale='none') + self.LU.solve(self.b) +@@ -180,11 +170,6 @@ + self.LU.solve(self.b) + self.failUnless(self.computeError(self.LU.sol) < self.tol) + +- def testPoisson2d2by2(self): +- self.LU = PysparseUmfpackSolver(self.B, strategy='2by2') +- self.LU.solve(self.b) +- self.failUnless(self.computeError(self.LU.sol) < self.tol) +- + def testPoisson2dNoScaling(self): + self.LU = PysparseUmfpackSolver(self.B, scale='none') + self.LU.solve(self.b) --- pysparse-1.1.orig/debian/patches/use-debian-libs.patch +++ pysparse-1.1/debian/patches/use-debian-libs.patch @@ -0,0 +1,56 @@ +Tell pysparse to use built-in Debian suitesparse and superlu libraries. + +--- pysparse-1.1/setup.py~ 2009-09-29 17:54:21.000000000 -0400 ++++ pysparse-1.1/setup.py 2009-09-29 18:06:15.000000000 -0400 +@@ -18,40 +18,40 @@ + compily=[] + + # Specify whether to link against user's SuperLU library +-use_users_superlu = False #True ++use_users_superlu = True + umfpack_defs = [('DINT', 1), ('NBLAS', 1)] # No BLAS. Ok if using your system's BLAS. + #umfpack_defs = [('DINT', 1), ('CBLAS', 1)] # with atlas c-blas (http://math-atlas.sf.net) + + if use_users_superlu: + # Specify location of include files +- superlu_include_dirs = ['/Users/dpo/local/linalg/SuperLU/SuperLU_3.1/SRC'] ++ superlu_include_dirs = ['/usr/include/superlu'] + # AND specify ONE of the following: + # 1) Location of source files (overrides linking with existing library) +- superlu_src_dir = '/Users/dpo/local/linalg/SuperLU/SuperLU_3.1/SRC' ++ superlu_src_dir = '' + # 2) Location of precompiled library + superlu_lib_dir = [''] +- superlu_libraries = [''] ++ superlu_libraries = ['superlu'] + + # Specify whether to link against user's UMFPACK library +-use_users_umfpack = False #True ++use_users_umfpack = True + if use_users_umfpack: + # Specify location of include files +- umfpack_include_dirs = ['/Users/dpo/local/linalg/UMFPACK/UMFPACK/Include'] ++ umfpack_include_dirs = ['/usr/include/suitesparse'] + # AND specify ONE of the following: + # 1) Location of source files (overrides linking with existing library) +- umfpack_src_dir = '/Users/dpo/local/linalg/UMFPACK/UMFPACK/Source' ++ umfpack_src_dir = '' + # 2) Location of precompiled library + umfpack_lib_dir = [''] +- umfpack_libraries = [''] ++ umfpack_libraries = ['umfpack'] + + # Do the same for AMD +- amd_include_dirs = ['/Users/dpo/local/linalg/UMFPACK/AMD/Include'] ++ amd_include_dirs = ['/usr/include/suitesparse'] + # AND specify ONE of the following: + # 1) Location of source files (overrides linking with existing library) +- amd_src_dir = '/Users/dpo/local/linalg/UMFPACK/AMD/Source' ++ amd_src_dir = '' + # 2) Location of precompiled library + amd_lib_dir = [''] +- amd_libraries = [''] ++ amd_libraries = ['amd'] + + else: + umfpack_libraries = [] --- pysparse-1.1.orig/debian/python-sparse-examples.doc-base +++ pysparse-1.1/debian/python-sparse-examples.doc-base @@ -0,0 +1,12 @@ +Document: python-sparse +Title: PySparse - a sparse linear algebra extension for Python +Author: Roman Geus +Abstract: PySparse provides a set of sparse matrix types for python, with + modules which implement: Iterative methods for solving linear systems of + equations; A set of standard preconditioners; An interface to a direct solver + for sparse linear systems of equations; The JDSYM eigensolver. All of these + modules are implemented as C extension modules for maximum performance. +Section: Apps/Programming + +Format: pdf +Files: /usr/share/doc/python-sparse-examples/spmatrix_manual.pdf --- pysparse-1.1.orig/debian/rules +++ pysparse-1.1/debian/rules @@ -0,0 +1,136 @@ +#!/usr/bin/make -f +# -*- mode: makefile -*- +# Made with the aid of debmake, by Christoph Lameter, +# based on the sample debian/rules file for GNU hello by Ian Jackson. + +export SHELL = /bin/bash + +# all versions +PYVERS := $(filter-out 2.3, $(shell pyversions -vs)) +PYVERS := $(shell pyversions -vs) +PYVER := $(shell python -c 'import sys; print sys.version[:3]') + +PYSITE = usr/lib/python$(PYVER)/site-packages + +p_sps = python-sparse +p_exa = python-sparse-examples + +d_sps = debian/$(p_sps) + +d_exa = debian/$(p_exa) + +QUILT := quilt --quiltrc debian/patches/quiltrc + +DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH) + +build: stamp-patch stamp-build +stamp-build: $(PYVERS:%=stamp-build-%) + touch $@ + +stamp-build-%: + dh_testdir + python$* ./setup.py build + touch $@ + +stamp-patch: + dh_testdir + $(QUILT) push -a || test $$? = 2 + touch $@ + +unpatch: + dh_testdir + if [ -e .pc ]; then \ + $(QUILT) pop -a -R || test $$? = 2; \ + rm -f patch-stamp; \ + fi + +clean: unpatch + dh_testdir + dh_testroot + rm -f stamp-* + -rm -rf `find -name build -type d` + + dh_clean + +install: build pre-install $(PYVERS:%=stamp-install-%) +pre-install: + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + +stamp-install-%: stamp-build-% + python$* setup.py install --prefix=`pwd`/debian/python-sparse/usr --install-layout=deb + + -find debian/python-sparse -name '*.py[co]' | xargs rm -f + + : # Replace all '#!' calls to python with python + : # and make them executable + for i in `find debian/python-sparse -type f`; do \ + sed '1s,#!.*python[^ ]*\(.*\),#! /usr/bin/python\1,' \ + $$i > $$i.temp; \ + if cmp --quiet $$i $$i.temp; then \ + rm -f $$i.temp; \ + else \ + mv -f $$i.temp $$i; \ + chmod 755 $$i; \ + echo "fixed interpreter: $$i"; \ + fi; \ + done + +binary-indep: build install + dh_testdir + dh_testroot + + dh_installdirs -p$(p_exa) $(PYSITE) usr/share/doc/$(p_exa) + + dh_installdocs -p$(p_sps) README + dh_installdocs -i -X$(p_sps) + dh_installchangelogs -i CHANGES + + install -d $(d_exa)/$(PYSITE)/SparsExamples + cp -a Examples/* $(d_exa)/$(PYSITE)/SparsExamples + install -m 644 Doc/spmatrix_manual.pdf $(d_exa)/usr/share/doc/$(p_exa)/ + + : # Replace all '#!' calls to python with python + : # and make them executable + for i in `find $(d_exa) -type f`; do \ + sed '1s,#!.*python[^ ]*\(.*\),#! /usr/bin/python\1,' \ + $$i > $$i.temp; \ + if cmp --quiet $$i $$i.temp; then \ + rm -f $$i.temp; \ + else \ + mv -f $$i.temp $$i; \ + chmod 755 $$i; \ + echo "fixed interpreter: $$i"; \ + fi; \ + done + + dh_compress -i -X.py -X.pik -X.pdf -X.css + dh_python2 -i + dh_fixperms -i + dh_installdeb -i + dh_gencontrol -i + dh_md5sums -i + dh_builddeb -i + +binary-arch: build install + dh_testdir + dh_testroot + + dh_installdocs -p$(p_sps) README + + dh_installchangelogs -a CHANGES + dh_strip -a + dh_compress -a -X.py + dh_python2 -a + dh_fixperms -a + dh_installdeb -a + dh_shlibdeps -a + dh_gencontrol -a + dh_md5sums -a + dh_builddeb -a + +binary: binary-arch binary-indep + +.PHONY: binary binary-arch binary-indep clean --- pysparse-1.1.orig/debian/watch +++ pysparse-1.1/debian/watch @@ -0,0 +1,2 @@ +version=2 +http://sf.net/pysparse/pysparse-(.+)\.tar\.gz