summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorOlivier Cessenat <cessenat@gmail.com>2021-08-26 02:16:13 +0200
committerGitHub <noreply@github.com>2021-08-25 19:16:13 -0500
commitde3c0e62d0471d83740816d20d48858b6329a741 (patch)
tree3364288ce7cfa05d715e3f31a405b14a6c93f34a /var
parente4e4bf75ca1f640901621e18bfa0d69e4f5474c6 (diff)
downloadspack-de3c0e62d0471d83740816d20d48858b6329a741.tar.gz
spack-de3c0e62d0471d83740816d20d48858b6329a741.tar.bz2
spack-de3c0e62d0471d83740816d20d48858b6329a741.tar.xz
spack-de3c0e62d0471d83740816d20d48858b6329a741.zip
New Package: perl-fth (#21879)
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/perl-fth/fth-shebang.patch10
-rw-r--r--var/spack/repos/builtin/packages/perl-fth/fth-shebang2.patch10
-rw-r--r--var/spack/repos/builtin/packages/perl-fth/package.py120
3 files changed, 140 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/perl-fth/fth-shebang.patch b/var/spack/repos/builtin/packages/perl-fth/fth-shebang.patch
new file mode 100644
index 0000000000..dbb38f7fc5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-fth/fth-shebang.patch
@@ -0,0 +1,10 @@
+diff --git a/bin/fth.pl b/bin/fth.pl
+--- a/bin/fth.pl
++++ b/bin/fth.pl
+@@ -1,6 +1,3 @@
+-#!/bin/ksh
+-eval 'exec perl -x -S $0 ${1+"$@"}'
+- if $running_under_some_shell;
+ #!/usr/bin/perl -w
+ # -*- Mode: cperl -*-
+ #|########################################################################
diff --git a/var/spack/repos/builtin/packages/perl-fth/fth-shebang2.patch b/var/spack/repos/builtin/packages/perl-fth/fth-shebang2.patch
new file mode 100644
index 0000000000..74003eae2a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-fth/fth-shebang2.patch
@@ -0,0 +1,10 @@
+diff --git a/bin/initmak.pl b/bin/initmak.pl
+--- a/bin/initmak.pl
++++ b/bin/initmak.pl
+@@ -1,6 +1,3 @@
+-#!/bin/ksh
+-eval 'exec perl -x -S $0 ${1+"$@"}'
+- if $running_under_some_shell;
+ #!/usr/bin/perl
+ # -*- Mode: cperl -*-
+ ############################################################################
diff --git a/var/spack/repos/builtin/packages/perl-fth/package.py b/var/spack/repos/builtin/packages/perl-fth/package.py
new file mode 100644
index 0000000000..3375944285
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-fth/package.py
@@ -0,0 +1,120 @@
+# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+import os
+
+from spack import *
+
+
+class PerlFth(Package):
+ """Ftagshtml is a Fortran (and simple C) to HTML browsing,
+ resolves static interface overload.
+ It can handle some LaTeX comments inside the source files.
+ It only needs to be put somewhere into your disk since it uses Perl.
+ It also provides javatex2.pl initmak.pl getin.pl tex3ht.pl and view.pl:
+ (1) javatex2 complements latex2html to make nice browsing,
+ (2) initmak makes fortran 90 dependencies, either full deps or partial
+ (when interface is not modified it is silly to recompile everything)
+ (3) getin is an advanced search tool for Fortran variables and calls,
+ (4) view.pl is used for CGI search when source is on http server.
+ """
+
+ homepage = "https://sourceforge.net/projects/ftagshtml/"
+ url = "https://downloads.sourceforge.net/project/ftagshtml/ftagshtml-0.524.tgz"
+
+ maintainers = ['cessenat']
+
+ version('0.525', sha256='378116febeb20f4b0c1e298de90305e8494335949d853c7e390d1b6386c1326a')
+ version('0.524', sha256='2f378e969d1dd267985342f7fb1b3a0b9fd73334627cbc7ab17d61717bcd3c29')
+ version('0.523', sha256='d5d3fbd3caca30eee9de45baa46612841d55b2960db8e11411af6db76cf214ad')
+ version('0.522', sha256='acb73eb2c05b1ed7b75f86fbd9656c00158519b3d11d89a082117004deb0fb9e')
+ version('0.521', sha256='f980c9cc1ce644340a9e9630ef252f92bc89a411ea0a661fcb80cdae07f0731c')
+ version('0.520', sha256='0ac509a7416d67f5ddc4ad9f629cb0443e1ce515cf9eb92f4272eb6b545a4c50')
+ version('0.519', sha256='7a440ca08a18edbc57a4a5da7c90c98551ae1adaa303c9f984e5712e1cd54ffb')
+ version('0.518', sha256='7aed7c831270bb1935d4ccd090ef1360ec9446dd773c10350645985047f8879b')
+ version('0.517', sha256='e24488a7edbfa764060f007693329d5ee3154e1ce49a627ec109c41a9d7abcbe')
+
+ variant('hevea', default=False,
+ description="Use hevea when inputting LaTeX files (fth.pl -hevea)")
+ variant('pdflatex', default=False,
+ description="Use pdflatex to make a LaTeX index file (fth.pl -latexindex)")
+
+ depends_on('perl', type='run')
+ depends_on('perl-cgi', type='run')
+ # Actual dependency was on etags only, but no longer in recent releases:
+ depends_on('emacs', type='run', when='@:0.520')
+ # For fth.pl -hevea option
+ depends_on('hevea', when='+hevea', type='run')
+ # Actual dependency is on pdflatex only for fth.pl -latexindex option
+ depends_on('texlive', when='+pdflatex', type='run')
+ # initmak.pl uses md5sum provided by coreutils
+ depends_on('coreutils', type='run')
+ depends_on('dos2unix', type='build')
+
+ # Patches to remove the ancient ksh shebang for fth.pl and initmak.pl.
+ # git diff a/bin/fth.pl b/bin/fth.pl
+ patch('fth-shebang.patch', when='@0.517:0.522', sha256='3e82d34c8ae1709e5480fac87db387c1c2e219d7b7d596c8a9d62f0da2439ab3')
+ patch('fth-shebang2.patch', when='@0.517:0.522', sha256='839be7c0efad752ae341379c81ee1df4a3a81f608f802998c6b4ebc4bae8e167')
+
+ def _make_executable(self, name):
+ return Executable(join_path(self.prefix.bin, name + '.pl'))
+
+ def setup_dependent_package(self, module, dependent_spec):
+ # https://spack-tutorial.readthedocs.io/en/latest/tutorial_advanced_packaging.html
+ checks = ['fth', 'getin', 'view', 'javatex2', 'tex3ht', 'initmak']
+ for name in checks:
+ setattr(module, name, self._make_executable(name))
+
+ def setup_dependent_build_environment(self, env, dependent_spec):
+ env.set('JAVATEX_DIR', self.prefix)
+ env.set('FTAGSHTML_DIR', self.prefix)
+ env.set('FTAGSHTML_DOC', join_path(self.prefix, 'doc'))
+
+ def setup_run_environment(self, env):
+ # https://github.com/spack/spack/discussions/13926
+ # Let us set the adequate environment when loading perl-fth
+ env.set('JAVATEX_DIR', self.prefix)
+ env.set('FTAGSHTML_DIR', self.prefix)
+ env.set('FTAGSHTML_DOC', join_path(self.prefix, 'doc'))
+
+ def install(self, spec, prefix):
+ # Remove the perl shebang with the local perl
+ # (since ftagshtml has no Makefile.PL to do it).
+ checks = ['fth', 'getin', 'view', 'javatex2', 'tex3ht', 'initmak']
+ # mstr = '#!' + join_path(spec['perl'].prefix.bin, 'perl')
+ mstr = '#!' + spec['perl'].command.path
+ with working_dir('bin'):
+ for exe in checks:
+ fic = exe + '.pl'
+ if os.path.exists(fic):
+ dos2unix = which('dos2unix')
+ dos2unix(fic)
+ fthfile = FileFilter(fic)
+ fthfile.filter('#!/usr/bin/perl', mstr, backup=False)
+ fthfile.filter('#!/usr/bin/env perl', mstr, backup=False)
+
+ # Adds a Makefile with an rsync rule
+ makefile_inc = [
+ 'RSYNC_OPTS = -avuzL',
+ 'RSYNC = rsync',
+ ]
+ makefile_inc.append('install:')
+ makefile_inc.append('\t$(RSYNC) $(RSYNC_OPTS) . %s' % prefix)
+ makefile_inc.append('')
+ with working_dir('.'):
+ with open('Makefile', 'a') as fh:
+ fh.write('\n'.join(makefile_inc))
+
+ # Remove obsolete ftagshtml files, if they exist:
+ with working_dir('bin'):
+ if os.path.exists("ftagshtml"):
+ os.remove("ftagshtml")
+ if os.path.exists("tata.pl"):
+ os.remove("tata.pl")
+ if os.path.exists("truc.pl"):
+ os.remove("truc.pl")
+
+ # Install the full directory structure
+ install_tree('.', prefix)