summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorGeorge Hartzell <hartzell@alerce.com>2017-10-09 14:14:19 -0700
committerTodd Gamblin <tgamblin@llnl.gov>2017-10-09 14:14:19 -0700
commit0d1c36e5596fd880fae3e2e883ac7a0752df36c1 (patch)
tree623b4048652c25d6dff71adeaa0cc276b6bbc236 /var
parent5ccc9c17dcab7a19aac666755511591dbbff3a2b (diff)
downloadspack-0d1c36e5596fd880fae3e2e883ac7a0752df36c1.tar.gz
spack-0d1c36e5596fd880fae3e2e883ac7a0752df36c1.tar.bz2
spack-0d1c36e5596fd880fae3e2e883ac7a0752df36c1.tar.xz
spack-0d1c36e5596fd880fae3e2e883ac7a0752df36c1.zip
Add package for aspell and ass't dictionaries (#3890)
* Add package for aspell and ass't dictionaries Add a package definition for aspell. Add a handful of dictionaries to convince myself that the support for a bunch of dictionaries works. * Flake8 cleanup * Use six's version of urlparse `urlparse` is not python3 friendly. This works around it (stolen from `.../cmd/md5.py`). * Fix incorrect trimming regexp * Clean up dictionary build - more parsimonious use of `which` (`make()` has already been made) - use `sh` instead of `bash` * Use a helper method to generate info for variants I figured out my issues with static methods. I *think* that it this is pythonic. * Convert aspell to an extendable package Convert aspell to be extendable and rework the dictionaries to be extensions. As it stands, there's a great deal of cut and paste in the dictionaries, I'll abstract that out next. The {de,}activate methods copy a great deal of code out of package.py. Perhaps there's a better way.... * Create AspellDictPackage and use it for the dictionaries Reduce the repeated code, pull it into a base class. I'm confused about why 'from spack import *' wasn't more useful in the base class. * Oops, -de & -es should be AspellDictPackages too * Typo: pakcage -> package * Address some commentary * Update copyright dates, 2016->2017
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/aspell/package.py73
-rw-r--r--var/spack/repos/builtin/packages/aspell6-de/package.py34
-rw-r--r--var/spack/repos/builtin/packages/aspell6-en/package.py34
-rw-r--r--var/spack/repos/builtin/packages/aspell6-es/package.py34
4 files changed, 175 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/aspell/package.py b/var/spack/repos/builtin/packages/aspell/package.py
new file mode 100644
index 0000000000..042246bbca
--- /dev/null
+++ b/var/spack/repos/builtin/packages/aspell/package.py
@@ -0,0 +1,73 @@
+##############################################################################
+# 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 LICENSE file 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 *
+from llnl.util.link_tree import LinkTree
+import spack.store
+from spack.package import ExtensionConflictError
+
+
+# See also: AspellDictPackage
+class Aspell(AutotoolsPackage):
+ """GNU Aspell is a Free and Open Source spell checker designed to
+ eventually replace Ispell."""
+
+ homepage = "http://aspell.net/"
+ url = "https://ftpmirror.gnu.org/aspell/aspell-0.60.6.1.tar.gz"
+
+ extendable = True # support activating dictionaries
+
+ version('0.60.6.1', 'e66a9c9af6a60dc46134fdacf6ce97d7')
+
+ # The dictionaries install all their bits into their prefix.lib dir,
+ # we want to link them into aspell's dict-dir.
+ # These are identical to what's in spack/package.py except
+ # for using:
+ # - extension.prefix.lib instead of extension.prefix in LinkTree()
+ # - dest_dir instead of self.prefix in tree.(find_conflict|merge)()
+ def activate(self, extension, **kwargs):
+ aspell = which(self.prefix.bin.aspell)
+ dest_dir = aspell('dump', 'config', 'dict-dir', output=str).strip()
+ tree = LinkTree(extension.prefix.lib)
+
+ def ignore(filename):
+ return (filename in spack.store.layout.hidden_file_paths or
+ kwargs.get('ignore', lambda f: False)(filename))
+
+ conflict = tree.find_conflict(dest_dir, ignore=ignore)
+ if conflict:
+ raise ExtensionConflictError(conflict)
+
+ tree.merge(dest_dir, ignore=ignore)
+
+ def deactivate(self, extension, **kwargs):
+ aspell = which(self.prefix.bin.aspell)
+ dest_dir = aspell('dump', 'config', 'dict-dir', output=str).strip()
+
+ def ignore(filename):
+ return (filename in spack.store.layout.hidden_file_paths or
+ kwargs.get('ignore', lambda f: False)(filename))
+
+ tree = LinkTree(extension.prefix.lib)
+ tree.unmerge(dest_dir, ignore=ignore)
diff --git a/var/spack/repos/builtin/packages/aspell6-de/package.py b/var/spack/repos/builtin/packages/aspell6-de/package.py
new file mode 100644
index 0000000000..39ee56356b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/aspell6-de/package.py
@@ -0,0 +1,34 @@
+##############################################################################
+# 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 *
+
+
+class Aspell6De(AspellDictPackage):
+ """German (de) dictionary for aspell."""
+
+ homepage = "http://aspell.net/"
+ url = "ftp://ftp.gnu.org/gnu/aspell/dict/de/aspell6-de-20030222-1.tar.bz2"
+
+ version('6-de-20030222-1', '5950c5c8a36fc93d4d7616591bace6a6')
diff --git a/var/spack/repos/builtin/packages/aspell6-en/package.py b/var/spack/repos/builtin/packages/aspell6-en/package.py
new file mode 100644
index 0000000000..c2498314d9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/aspell6-en/package.py
@@ -0,0 +1,34 @@
+##############################################################################
+# 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 *
+
+
+class Aspell6En(AspellDictPackage):
+ """English (en) dictionary for aspell."""
+
+ homepage = "http://aspell.net/"
+ url = "ftp://ftp.gnu.org/gnu/aspell/dict/en/aspell6-en-2017.01.22-0.tar.bz2"
+
+ version('2017.01.22-0', 'a6e002076574de9dc4915967032a1dab')
diff --git a/var/spack/repos/builtin/packages/aspell6-es/package.py b/var/spack/repos/builtin/packages/aspell6-es/package.py
new file mode 100644
index 0000000000..5793462218
--- /dev/null
+++ b/var/spack/repos/builtin/packages/aspell6-es/package.py
@@ -0,0 +1,34 @@
+##############################################################################
+# 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 *
+
+
+class Aspell6Es(AspellDictPackage):
+ """Spanish (es) dictionary for aspell."""
+
+ homepage = "http://aspell.net/"
+ url = "ftp://ftp.gnu.org/gnu/aspell/dict/es/aspell6-es-1.11-2.tar.bz2"
+
+ version('1.11-2', '8406336a89c64e47e96f4153d0af70c4')