Repository: spack/spack

Issue:
Doesn't arpack-ng superscede parpack
I am pretty sure arpack-ng is the newest packaging of the old arpack/parpack libraries. So, I think it either makes sense to elim parpack package or to make both arpack/parpack and arpack-ng one of those virtual dependencies sort of things. They both implement the same API.
spack find : always prompt 0 installed packages
On a clean `develop` checkout : 

```
$ git clone https://github.com/LLNL/spack.git
Cloning into 'spack'...
remote: Counting objects: 25613, done.
remote: Compressing objects: 100% (42/42), done.
remote: Total 25613 (delta 12), reused 3 (delta 3), pack-reused 25557
Receiving objects: 100% (25613/25613), 6.65 MiB | 6.46 MiB/s, done.
Resolving deltas: 100% (13031/13031), done.
Checking connectivity... done.

$ cd spack
$ . share/spack/setup-env.sh 
$ spack compilers
==> Available compilers
-- gcc ----------------------------------------------------------
gcc@4.8

$ spack install zlib
==> Installing zlib
==> Trying to fetch from file:///home/mculpo/production/spack-mirror/zlib/zlib-1.2.8.tar.gz
######################################################################## 100,0%
==> Staging archive: /home/mculpo/tmp/spack/var/spack/stage/zlib-1.2.8-d6pdl6xvnvap6ihrqcqtgvweghbszmix/zlib-1.2.8.tar.gz
==> Created stage in /home/mculpo/tmp/spack/var/spack/stage/zlib-1.2.8-d6pdl6xvnvap6ihrqcqtgvweghbszmix
==> No patches needed for zlib
==> Building zlib
==> Successfully installed zlib
  Fetch: 0.01s.  Build: 3.69s.  Total: 3.70s.
[+] /home/mculpo/tmp/spack/opt/spack/linux-x86_64/gcc-4.8/zlib-1.2.8-d6pdl6xvnvap6ihrqcqtgvweghbszmix

$ spack find
==> 0 installed packages.

$ spack install szip
==> Installing szip
==> Trying to fetch from file:///home/mculpo/production/spack-mirror/szip/szip-2.1.tar.gz
######################################################################## 100,0%
==> Staging archive: /home/mculpo/tmp/spack/var/spack/stage/szip-2.1-esfmhl54wbdb7nnnip6y6jbxlbmxs2jq/szip-2.1.tar.gz
==> Created stage in /home/mculpo/tmp/spack/var/spack/stage/szip-2.1-esfmhl54wbdb7nnnip6y6jbxlbmxs2jq
==> No patches needed for szip
==> Building szip
==> Successfully installed szip
  Fetch: 0.01s.  Build: 8.09s.  Total: 8.10s.
[+] /home/mculpo/tmp/spack/opt/spack/linux-x86_64/gcc-4.8/szip-2.1-esfmhl54wbdb7nnnip6y6jbxlbmxs2jq

$ spack find 
==> 0 installed packages.
```

The db seems to be written correctly : 

```
database:
  installs:
    d6pdl6xvnvap6ihrqcqtgvweghbszmix:
      explicit: true
      installed: true
      path: /home/mculpo/tmp/spack/opt/spack/linux-x86_64/gcc-4.8/zlib-1.2.8-d6pdl6xvnvap6ihrqcqtgvweghbszmix
      ref_count: 0
      spec:
        zlib:
          arch: linux-x86_64
          compiler:
            name: gcc
            version: '4.8'
          dependencies: {}
          namespace: builtin
          parameters:
            cflags: []
            cppflags: []
            cxxflags: []
            fflags: []
            ldflags: []
            ldlibs: []
          version: 1.2.8
    esfmhl54wbdb7nnnip6y6jbxlbmxs2jq:
      explicit: true
      installed: true
      path: /home/mculpo/tmp/spack/opt/spack/linux-x86_64/gcc-4.8/szip-2.1-esfmhl54wbdb7nnnip6y6jbxlbmxs2jq
      ref_count: 0
      spec:
        szip:
          arch: linux-x86_64
          compiler:
            name: gcc
            version: '4.8'
          dependencies: {}
          namespace: builtin
          parameters:
            cflags: []
            cppflags: []
            cxxflags: []
            fflags: []
            ldflags: []
            ldlibs: []
          version: '2.1'
  version: 0.9.1
```



Discussion:

Resolving patch:
diff --git a/var/spack/repos/builtin/packages/arpack/package.py b/var/spack/repos/builtin/packages/arpack/package.py
deleted file mode 100644
--- a/var/spack/repos/builtin/packages/arpack/package.py
+++ /dev/null
@@ -1,75 +0,0 @@
-##############################################################################
-# Copyright (c) 2013-2017, Lawrence Livermore National Security, LLC.
-# Produced at the Lawrence Livermore National Laboratory.
-#
-# This file is part of Spack.
-# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
-# LLNL-CODE-647188
-#
-# For details, see https://github.com/llnl/spack
-# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License (as
-# published by the Free Software Foundation) version 2.1, February 1999.
-#
-# This program 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 terms and
-# conditions of the GNU Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-##############################################################################
-from spack import *
-import os
-
-
-class Arpack(Package):
-    """A collection of Fortran77 subroutines designed to solve large scale
-    eigenvalue problems."""
-
-    homepage = "http://www.caam.rice.edu/software/ARPACK/"
-    url      = "http://www.caam.rice.edu/software/ARPACK/SRC/arpack96.tar.gz"
-
-    version('96', 'fffaa970198b285676f4156cebc8626e')
-
-    depends_on('blas')
-    depends_on('lapack')
-
-    def patch(self):
-        makefile = FileFilter('ARmake.inc')
-
-        # Section 1: Paths and Libraries
-
-        # Change the build directory
-        makefile.filter('^home.*', 'home = %s' % os.getcwd())
-
-        # Use external BLAS/LAPACK
-        makefile.filter('^BLASdir.*',
-                        'BLASdir = %s'   % self.spec['blas'].prefix)
-        makefile.filter('^LAPACKdir.*',
-                        'LAPACKdir = %s' % self.spec['lapack'].prefix)
-
-        # Do not include the platform in the library name
-        makefile.filter('^PLAT.*', 'PLAT = ')
-        makefile.filter('^ARPACKLIB.*', 'ARPACKLIB = $(home)/libarpack.a')
-
-        # Section 2: Compilers
-
-        # Be sure to use the Spack compiler wrapper
-        makefile.filter('^FC.*', 'FC = {0}'.format(os.environ['F77']))
-        makefile.filter(
-            '^FFLAGS.*', 'FFLAGS = -O2 -g {0}'.format(self.compiler.pic_flag)
-        )
-
-        if not which('ranlib'):
-            makefile.filter('^RANLIB.*', 'RANLIB = touch')
-
-    def install(self, spec, prefix):
-        with working_dir('SRC'):
-            make('all')
-
-        mkdir(prefix.lib)
-        install('libarpack.a', prefix.lib)
diff --git a/var/spack/repos/builtin/packages/fastmath/package.py b/var/spack/repos/builtin/packages/fastmath/package.py
--- a/var/spack/repos/builtin/packages/fastmath/package.py
+++ b/var/spack/repos/builtin/packages/fastmath/package.py
@@ -46,7 +46,7 @@ class Fastmath(Package):
 #    depends_on('nox-trilinos')  # hoping for stripped down install of just nox
     depends_on('moab')
     depends_on('mpi')
-    depends_on('parpack')  # we need parpack ng
+    depends_on('arpack-ng')
     depends_on('petsc')
     depends_on('phasta')
     depends_on('pumi')
diff --git a/var/spack/repos/builtin/packages/parpack/package.py b/var/spack/repos/builtin/packages/parpack/package.py
deleted file mode 100644
--- a/var/spack/repos/builtin/packages/parpack/package.py
+++ /dev/null
@@ -1,68 +0,0 @@
-##############################################################################
-# Copyright (c) 2013-2017, Lawrence Livermore National Security, LLC.
-# Produced at the Lawrence Livermore National Laboratory.
-#
-# This file is part of Spack.
-# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
-# LLNL-CODE-647188
-#
-# For details, see https://github.com/llnl/spack
-# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License (as
-# published by the Free Software Foundation) version 2.1, February 1999.
-#
-# This program 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 terms and
-# conditions of the GNU Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-##############################################################################
-from spack import *
-import os
-import shutil
-
-
-class Parpack(Package):
-    """ARPACK is a collection of Fortran77 subroutines designed to solve large
-       scale eigenvalue problems."""
-
-    homepage = "http://www.caam.rice.edu/software/ARPACK/download.html"
-    url      = "http://www.caam.rice.edu/software/ARPACK/SRC/parpack96.tar.Z"
-
-    version('96', 'a175f70ff71837a33ff7e4b0b6054f43')
-
-    depends_on('mpi')
-    depends_on('blas')
-    depends_on('lapack')
-
-    def patch(self):
-        # Filter the CJ makefile to make a spack one.
-        shutil.move('ARMAKES/ARmake.CJ', 'ARmake.inc')
-        mf = FileFilter('ARmake.inc')
-
-        # Be sure to use Spack F77 wrapper
-        mf.filter('^FC.*',     'FC = f77')
-        mf.filter('^FFLAGS.*', 'FFLAGS = -O2 -g')
-
-        # Set up some variables.
-        mf.filter('^PLAT.*',      'PLAT = ')
-        mf.filter('^home.*',      'home = %s' % os.getcwd())
-        mf.filter('^BLASdir.*',   'BLASdir = %s' % self.spec['blas'].prefix)
-        mf.filter('^LAPACKdir.*', 'LAPACKdir = %s' %
-                  self.spec['lapack'].prefix)
-        mf.filter('^MAKE.*',      'MAKE = make')
-
-        # build the library in our own prefix.
-        mf.filter('^ARPACKLIB.*', 'PARPACKLIB = %s/libparpack.a' % os.getcwd())
-
-    def install(self, spec, prefix):
-        with working_dir('PARPACK/SRC/MPI'):
-            make('all')
-
-        mkdirp(prefix.lib)
-        install('libparpack.a', prefix.lib)


Test patch: