summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/w3m/fix_gc.patch20
-rw-r--r--var/spack/repos/builtin/packages/w3m/fix_redef.patch58
-rw-r--r--var/spack/repos/builtin/packages/w3m/package.py76
3 files changed, 154 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/w3m/fix_gc.patch b/var/spack/repos/builtin/packages/w3m/fix_gc.patch
new file mode 100644
index 0000000000..b49bc349ce
--- /dev/null
+++ b/var/spack/repos/builtin/packages/w3m/fix_gc.patch
@@ -0,0 +1,20 @@
+--- w3m-0.5.3/main.c.orig 2011-01-04 18:42:19.000000000 +0900
++++ w3m-0.5.3/main.c 2021-02-05 12:59:06.251334053 +0900
+@@ -311,7 +311,7 @@ wrap_GC_warn_proc(char *msg, GC_word arg
+ lock = 0;
+ }
+ }
+- else if (orig_GC_warn_proc)
++ else if (orig_GC_warn_proc = GC_get_warn_proc())
+ orig_GC_warn_proc(msg, arg);
+ else
+ fprintf(stderr, msg, (unsigned long)arg);
+@@ -833,7 +833,7 @@ main(int argc, char **argv, char **envp)
+ mySignal(SIGPIPE, SigPipe);
+ #endif
+
+- orig_GC_warn_proc = GC_set_warn_proc(wrap_GC_warn_proc);
++ GC_set_warn_proc(wrap_GC_warn_proc);
+ err_msg = Strnew();
+ if (load_argc == 0) {
+ /* no URL specified */
diff --git a/var/spack/repos/builtin/packages/w3m/fix_redef.patch b/var/spack/repos/builtin/packages/w3m/fix_redef.patch
new file mode 100644
index 0000000000..19ca721fe2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/w3m/fix_redef.patch
@@ -0,0 +1,58 @@
+--- w3m-0.5.3/istream.c.orig 2021-02-05 13:19:44.023053158 +0900
++++ w3m-0.5.3/istream.c 2021-02-05 13:19:53.380179220 +0900
+@@ -22,8 +22,8 @@
+ static void basic_close(int *handle);
+ static int basic_read(int *handle, char *buf, int len);
+
+-static void file_close(struct file_handle *handle);
+-static int file_read(struct file_handle *handle, char *buf, int len);
++static void file_close(struct w3m_file_handle *handle);
++static int file_read(struct w3m_file_handle *handle, char *buf, int len);
+
+ static int str_read(Str handle, char *buf, int len);
+
+@@ -114,7 +114,7 @@ newFileStream(FILE * f, void (*closep) (
+ stream = New(union input_stream);
+ init_base_stream(&stream->base, STREAM_BUF_SIZE);
+ stream->file.type = IST_FILE;
+- stream->file.handle = New(struct file_handle);
++ stream->file.handle = New(struct w3m_file_handle);
+ stream->file.handle->f = f;
+ if (closep)
+ stream->file.handle->close = closep;
+@@ -658,13 +658,13 @@ basic_read(int *handle, char *buf, int l
+ }
+
+ static void
+-file_close(struct file_handle *handle)
++file_close(struct w3m_file_handle *handle)
+ {
+ handle->close(handle->f);
+ }
+
+ static int
+-file_read(struct file_handle *handle, char *buf, int len)
++file_read(struct w3m_file_handle *handle, char *buf, int len)
+ {
+ return fread(buf, 1, len, handle->f);
+ }
+--- w3m-0.5.3/istream.h.orig 2021-02-05 13:19:44.023053158 +0900
++++ w3m-0.5.3/istream.h 2021-02-05 13:19:53.380179220 +0900
+@@ -20,7 +20,7 @@ struct stream_buffer {
+
+ typedef struct stream_buffer *StreamBuffer;
+
+-struct file_handle {
++struct w3m_file_handle {
+ FILE *f;
+ void (*close) ();
+ };
+@@ -53,7 +53,7 @@ struct base_stream {
+
+ struct file_stream {
+ struct stream_buffer stream;
+- struct file_handle *handle;
++ struct w3m_file_handle *handle;
+ char type;
+ char iseos;
+ int (*read) ();
diff --git a/var/spack/repos/builtin/packages/w3m/package.py b/var/spack/repos/builtin/packages/w3m/package.py
new file mode 100644
index 0000000000..f72d93705d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/w3m/package.py
@@ -0,0 +1,76 @@
+# 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)
+
+from spack import *
+
+
+class W3m(AutotoolsPackage):
+ """
+ w3m is a text-based web browser as well as a pager like `more' or `less'.
+ With w3m you can browse web pages through a terminal emulator window (xterm,
+ rxvt or something like that). Moreover, w3m can be used as a text formatting
+ tool which typesets HTML into plain text.
+ """
+
+ homepage = "http://w3m.sourceforge.net/index.en.html"
+ url = "https://downloads.sourceforge.net/project/w3m/w3m/w3m-0.5.3/w3m-0.5.3.tar.gz"
+
+ maintainers = ['ronin_gw']
+
+ version('0.5.3', sha256='e994d263f2fd2c22febfbe45103526e00145a7674a0fda79c822b97c2770a9e3')
+
+ # mandatory dependency
+ depends_on('bdw-gc')
+
+ # termlib
+ variant('termlib', default='ncurses', description='select termlib',
+ values=('ncurses', 'termcap', 'none'), multi=False)
+ depends_on('termcap', when='termlib=termcap')
+ depends_on('ncurses+termlib', when='termlib=ncurses')
+
+ # https support
+ variant('https', default=True, description='support https protocol')
+ depends_on('openssl@:1.0.2u', when='+https')
+
+ # X11 support
+ variant('image', default=True, description='enable image')
+ depends_on('libx11', when='+image')
+
+ # inline image support
+ variant('imagelib', default='imlib2', description='select imagelib',
+ values=('gdk-pixbuf', 'imlib2'), multi=False)
+ depends_on('gdk-pixbuf@2:+x11', when='imagelib=gdk-pixbuf +image')
+ depends_on('imlib2@1.0.5:', when='imagelib=imlib2 +image')
+
+ # fix for modern libraries
+ patch('fix_redef.patch')
+ patch('fix_gc.patch')
+
+ def _add_arg_for_variant(self, args, variant, choices):
+ for avail_lib in choices:
+ if self.spec.variants[variant].value == avail_lib:
+ args.append('--with-{0}={1}'.format(variant, avail_lib))
+ return
+
+ def configure_args(self):
+ args = []
+
+ self._add_arg_for_variant(args, 'termlib', ('termcap', 'ncurses'))
+ if '+image' in self.spec:
+ args.append('--enable-image')
+ self._add_arg_for_variant(args, 'imagelib', ('gdk-pixbuf', 'imlib2'))
+
+ return args
+
+ def setup_build_environment(self, env):
+ if self.spec.variants['termlib'].value == 'ncurses':
+ env.append_flags('LDFLAGS', '-ltinfo')
+ env.append_flags('LDFLAGS', '-lncurses')
+ if '+image' in self.spec:
+ env.append_flags('LDFLAGS', '-lX11')
+
+ # parallel build causes build failure
+ def build(self, spec, prefix):
+ make(parallel=False)