103 lines
3.5 KiB
Python
103 lines
3.5 KiB
Python
# Copyright 2013-2023 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.package 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")
|