1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
# 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.
"""
# The main w3m project is not active anymore, but distributions still keep
# and maintain it:
# https://sourceforge.net/p/w3m/support-requests/17/
# What source should distro packagers use for their w3m packages?
# Feel free to use Debian's branch as you need.
# Currently, Arch and Ubuntu (and Debian derivatives) use Debian's branch.
# Also, Gentoo, Fedora and openSUSE switched to Debian's branch.
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 patch(self):
# w3m is not developed since 2012, everybody is doing this:
# https://www.google.com/search?q=USE_EGD+w3m
filter_file('#define USE_EGD', '#undef USE_EGD', 'config.h.in')
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 = ['ac_cv_search_gettext=no', '--enable-unicode']
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
parallel = False
def build(self, spec, prefix):
make('NLSTARGET=scripts/w3mman')
def install(self, spec, prefix):
make('NLSTARGET=scripts/w3mman', 'install')
|