network/w3m: Added (text-mode web browser)
Signed-off-by: dsomero <xgizzmo@slackbuilds.org>
This commit is contained in:
parent
0c218fe9a0
commit
f5287105ec
|
@ -0,0 +1,13 @@
|
|||
w3m is a World Wide Web (WWW) text based client. It has English and
|
||||
Japanese help files and an option menu and can be configured to use
|
||||
either language. It will display hypertext markup language (HTML)
|
||||
documents containing links to files residing on the local system, as
|
||||
well as files residing on remote systems. It can display HTML tables,
|
||||
frames, and images, and supports tabbed browsing. In addition, it can
|
||||
be used as a "pager" in much the same manner as "more" or "less".
|
||||
This buildscript includes some security and bug fix patches. However
|
||||
the actual stable version of w3m is more than 3 years old. You should
|
||||
not use it as your default browser, it is only here as an optional
|
||||
dependency for SuperCollider.
|
||||
|
||||
This requires gc.
|
|
@ -0,0 +1,11 @@
|
|||
--- Makefile.in.old 2007-05-29 17:31:04.000000000 +0530
|
||||
+++ Makefile.in 2010-02-17 14:19:08.000000000 +0530
|
||||
@@ -193,7 +193,7 @@
|
||||
$(CC) $(CFLAGS) -DDUMMY -c -o $@ $?
|
||||
|
||||
$(IMGDISPLAY): w3mimgdisplay.o $(ALIB) w3mimg/w3mimg.a
|
||||
- $(CC) $(CFLAGS) -o $(IMGDISPLAY) w3mimgdisplay.o w3mimg/w3mimg.a $(LDFLAGS) $(LIBS) $(IMGLDFLAGS)
|
||||
+ $(CC) $(CFLAGS) -o $(IMGDISPLAY) w3mimgdisplay.o w3mimg/w3mimg.a $(LDFLAGS) $(LIBS) $(IMGLDFLAGS) -lX11
|
||||
|
||||
w3mimgdisplay.o: w3mimgdisplay.c w3mimg/w3mimg.h
|
||||
$(CC) $(CFLAGS) $(IMGCFLAGS) -o $@ -c $(srcdir)/w3mimgdisplay.c
|
|
@ -0,0 +1,24 @@
|
|||
diff -ruN w3m-0.4.1.orig/scripts/w3mhelp.cgi.in w3m-0.4.1/scripts/w3mhelp.cgi.in
|
||||
--- w3m-0.4.1.orig/scripts/w3mhelp.cgi.in 2003-06-12 21:03:09.000000000 +0900
|
||||
+++ w3m-0.4.1/scripts/w3mhelp.cgi.in 2003-06-12 21:25:44.000000000 +0900
|
||||
@@ -51,6 +51,12 @@
|
||||
}
|
||||
}
|
||||
|
||||
+if ($lang eq 'ja') {
|
||||
+ $help_charset='EUC-JP';
|
||||
+} else {
|
||||
+ $help_charset='UTF-8';
|
||||
+}
|
||||
+
|
||||
%f = %keyfunc;
|
||||
%keyfunc = ();
|
||||
while (($key, $fname) = each %f) {
|
||||
@@ -88,6 +94,7 @@
|
||||
|
||||
<HTML>
|
||||
<HEAD>
|
||||
+<META http-equiv="Content-Type" content="text/html; charset=$help_charset">
|
||||
<TITLE>w3m help page</TITLE>
|
||||
</HEAD>
|
||||
<BODY>
|
|
@ -0,0 +1,23 @@
|
|||
Patch by Robert Scheck <redhat@linuxnetz.de> for w3m >= 0.5.1, which makes
|
||||
w3m rebuildable using gcc 4.
|
||||
|
||||
--- w3m-0.5.1/istream.c 2003-10-20 18:41:56.000000000 +0200
|
||||
+++ w3m-0.5.1/istream.c.gcc4 2005-03-15 12:18:36.000000000 +0100
|
||||
@@ -37,7 +37,7 @@
|
||||
{
|
||||
int len;
|
||||
base->stream.cur = base->stream.next = 0;
|
||||
- len = base->read(base->handle, base->stream.buf, base->stream.size);
|
||||
+ len = (base->read) (base->handle, base->stream.buf, base->stream.size);
|
||||
if (len <= 0)
|
||||
base->iseos = TRUE;
|
||||
else
|
||||
@@ -320,7 +320,7 @@
|
||||
len = buffer_read(&base->stream, buf->ptr, count);
|
||||
rest = count - len;
|
||||
if (MUST_BE_UPDATED(base)) {
|
||||
- len = base->read(base->handle, &buf->ptr[len], rest);
|
||||
+ len = (base->read) (base->handle, &buf->ptr[len], rest);
|
||||
if (len <= 0) {
|
||||
base->iseos = TRUE;
|
||||
len = 0;
|
|
@ -0,0 +1,124 @@
|
|||
diff -urN w3m-0.5.2/configure.ac w3m-0.5.2.fixed/configure.ac
|
||||
--- w3m-0.5.2/configure.ac 2004-04-29 00:19:25.000000000 +0600
|
||||
+++ w3m-0.5.2.fixed/configure.ac 2005-09-24 16:39:11.000000000 +0600
|
||||
@@ -97,6 +97,7 @@
|
||||
AC_SUBST(USE_W3M)
|
||||
AC_CHECK_LIB(gpm, Gpm_Open, [AC_DEFINE(USE_GPM)
|
||||
W3M_LIBS="$W3M_LIBS -lgpm"])
|
||||
+ AC_CHECK_LIB(gpm, Gpm_Wgetch, AC_DEFINE(HAVE_GPM_WGETCH))
|
||||
AC_SUBST(USE_SYSMOUSE)
|
||||
AC_TRY_CPP([#include <machine/console.h>
|
||||
MOUSE_GETINFO], [AC_DEFINE(USE_SYSMOUSE)])
|
||||
diff -urN w3m-0.5.2/gpm-libcurses.c w3m-0.5.2.fixed/gpm-libcurses.c
|
||||
--- w3m-0.5.2/gpm-libcurses.c 1970-01-01 05:00:00.000000000 +0500
|
||||
+++ w3m-0.5.2.fixed/gpm-libcurses.c 2005-09-24 18:18:30.000000000 +0600
|
||||
@@ -0,0 +1,84 @@
|
||||
+/*
|
||||
+ * libcurses.c - client library - curses level (gpm-Linux)
|
||||
+ *
|
||||
+ * Copied from GPM by Alexander E. Patrakov
|
||||
+ * Copyright 1994,1995 rubini@linux.it (Alessandro Rubini)
|
||||
+ * Copyright 2002 nico@schottelius.org (Nico Schottelius)
|
||||
+ *
|
||||
+ * This program is free software; you can redistribute it and/or modify
|
||||
+ * it under the terms of the GNU General Public License as published by
|
||||
+ * the Free Software Foundation; either version 2 of the License, or
|
||||
+ * (at your option) any later version.
|
||||
+ *
|
||||
+ * 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
|
||||
+ * GNU General Public License for more details.
|
||||
+ *
|
||||
+ * You should have received a copy of the GNU 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.
|
||||
+ ********/
|
||||
+
|
||||
+#include <stdio.h>
|
||||
+#include <stdlib.h>
|
||||
+#include <unistd.h> /* select(); */
|
||||
+#include <sys/time.h> /* timeval */
|
||||
+#include <sys/types.h> /* socket() */
|
||||
+
|
||||
+#include "config.h"
|
||||
+#if defined(USE_GPM) && !defined(HAVE_GPM_WGETCH)
|
||||
+
|
||||
+extern int getch();
|
||||
+
|
||||
+#include <gpm.h>
|
||||
+#include <errno.h>
|
||||
+
|
||||
+#define SELECT_TIME 86400 /* one day */
|
||||
+
|
||||
+int Gpm_Wgetch(void * dummy)
|
||||
+{
|
||||
+fd_set selSet;
|
||||
+int max, flag, result;
|
||||
+int fd=STDIN_FILENO;
|
||||
+static Gpm_Event ev;
|
||||
+
|
||||
+ if (!gpm_flag || gpm_fd==-1) return getch();
|
||||
+ if (gpm_morekeys) return (*gpm_handler)(&ev,gpm_data);
|
||||
+ gpm_hflag=0;
|
||||
+
|
||||
+ max = (gpm_fd>fd) ? gpm_fd : fd;
|
||||
+
|
||||
+/*...................................................................*/
|
||||
+ if (gpm_fd>=0) /* linux */
|
||||
+ while(1)
|
||||
+ {
|
||||
+ if (gpm_visiblepointer) GPM_DRAWPOINTER(&ev);
|
||||
+ do
|
||||
+ {
|
||||
+ FD_ZERO(&selSet);
|
||||
+ FD_SET(fd,&selSet);
|
||||
+ FD_SET(gpm_fd,&selSet);
|
||||
+ gpm_timeout.tv_sec=SELECT_TIME;
|
||||
+ errno = 0;
|
||||
+ flag=select(max+1,&selSet,(fd_set *)NULL,(fd_set *)NULL,&gpm_timeout);
|
||||
+ }
|
||||
+ while (!flag);
|
||||
+
|
||||
+ if (flag==-1)
|
||||
+ continue;
|
||||
+
|
||||
+ if (FD_ISSET(fd,&selSet))
|
||||
+ return getch();
|
||||
+
|
||||
+ if (Gpm_GetEvent(&ev) && gpm_handler
|
||||
+ && (result=(*gpm_handler)(&ev,gpm_data)))
|
||||
+ {
|
||||
+ gpm_hflag=1;
|
||||
+ return result;
|
||||
+ }
|
||||
+ }
|
||||
+ return 0;
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
diff -urN w3m-0.5.2/Makefile.in w3m-0.5.2.fixed/Makefile.in
|
||||
--- w3m-0.5.2/Makefile.in 2004-04-26 23:04:48.000000000 +0600
|
||||
+++ w3m-0.5.2.fixed/Makefile.in 2005-09-24 16:48:54.000000000 +0600
|
||||
@@ -85,11 +85,11 @@
|
||||
SRCS=main.c file.c buffer.c display.c etc.c search.c linein.c table.c local.c \
|
||||
form.c map.c frame.c rc.c menu.c mailcap.c image.c \
|
||||
symbol.c entity.c terms.c url.c ftp.c mimehead.c regex.c news.c \
|
||||
- func.c cookie.c history.c backend.c $(KEYBIND_SRC)
|
||||
+ func.c cookie.c history.c backend.c gpm-libcurses.c $(KEYBIND_SRC)
|
||||
OBJS=main.o file.o buffer.o display.o etc.o search.o linein.o table.o local.o\
|
||||
form.o map.o frame.o rc.o menu.o mailcap.o image.o \
|
||||
symbol.o entity.o terms.o url.o ftp.o mimehead.o regex.o news.o \
|
||||
- func.o cookie.o history.o backend.o $(KEYBIND_OBJ)
|
||||
+ func.o cookie.o history.o backend.o gpm-libcurses.o $(KEYBIND_OBJ)
|
||||
LSRCS=anchor.c parsetagx.c tagtable.c istream.c
|
||||
LOBJS=anchor.o parsetagx.o tagtable.o istream.o
|
||||
LLOBJS=version.o
|
||||
diff -urN w3m-0.5.2/config.h.in w3m-0.5.2.fixed/config.h.in
|
||||
--- w3m-0.5.2/config.h.in 2004-04-04 22:47:20.000000000 +0600
|
||||
+++ w3m-0.5.2.fixed/config.h.in 2005-09-24 16:50:43.000000000 +0600
|
||||
@@ -231,3 +231,4 @@
|
||||
#define INFLATE_NAME "inflate"
|
||||
|
||||
+#undef HAVE_GPM_WGETCH
|
||||
#endif /* CONFIG_H_SEEN */
|
|
@ -0,0 +1,12 @@
|
|||
diff -ruN w3m-0.5.1.orig/acinclude.m4 w3m-0.5.1/acinclude.m4
|
||||
--- w3m-0.5.1.orig/acinclude.m4 2006-03-06 18:24:38.000000000 +0900
|
||||
+++ w3m-0.5.1/acinclude.m4 2006-03-06 18:27:55.000000000 +0900
|
||||
@@ -394,7 +394,7 @@
|
||||
[lib=$1
|
||||
AC_MSG_CHECKING(for -l$lib)
|
||||
extlib="not found"
|
||||
- for dir in /lib /usr/lib /usr/local/lib /usr/ucblib /usr/ccslib /usr/ccs/lib
|
||||
+ for dir in /lib64 /lib /usr/lib64 /usr/lib /usr/local/lib64 /usr/local/lib /usr/ucblib /usr/ccslib /usr/ccs/lib
|
||||
do
|
||||
if test -f $dir/lib$lib.a -o -f $dir/lib$lib.so ; then
|
||||
LIBS="$LIBS -l$lib"
|
|
@ -0,0 +1,54 @@
|
|||
Index: w3m-0.5.2/istream.c
|
||||
===================================================================
|
||||
--- w3m-0.5.2.orig/istream.c
|
||||
+++ w3m-0.5.2/istream.c
|
||||
@@ -447,8 +447,17 @@ ssl_check_cert_ident(X509 * x, char *hos
|
||||
|
||||
if (!seen_dnsname)
|
||||
seen_dnsname = Strnew();
|
||||
+ /* replace \0 to make full string visible to user */
|
||||
+ if (sl != strlen(sn)) {
|
||||
+ int i;
|
||||
+ for (i = 0; i < sl; ++i) {
|
||||
+ if (!sn[i])
|
||||
+ sn[i] = '!';
|
||||
+ }
|
||||
+ }
|
||||
Strcat_m_charp(seen_dnsname, sn, " ", NULL);
|
||||
- if (ssl_match_cert_ident(sn, sl, hostname))
|
||||
+ if (sl == strlen(sn) /* catch \0 in SAN */
|
||||
+ && ssl_match_cert_ident(sn, sl, hostname))
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -466,16 +475,27 @@ ssl_check_cert_ident(X509 * x, char *hos
|
||||
if (match_ident == FALSE && ret == NULL) {
|
||||
X509_NAME *xn;
|
||||
char buf[2048];
|
||||
+ int slen;
|
||||
|
||||
xn = X509_get_subject_name(x);
|
||||
|
||||
- if (X509_NAME_get_text_by_NID(xn, NID_commonName,
|
||||
- buf, sizeof(buf)) == -1)
|
||||
+ slen = X509_NAME_get_text_by_NID(xn, NID_commonName, buf, sizeof(buf));
|
||||
+ if ( slen == -1)
|
||||
/* FIXME: gettextize? */
|
||||
ret = Strnew_charp("Unable to get common name from peer cert");
|
||||
- else if (!ssl_match_cert_ident(buf, strlen(buf), hostname))
|
||||
+ else if (slen != strlen(buf)
|
||||
+ || !ssl_match_cert_ident(buf, strlen(buf), hostname)) {
|
||||
+ /* replace \0 to make full string visible to user */
|
||||
+ if (slen != strlen(buf)) {
|
||||
+ int i;
|
||||
+ for (i = 0; i < slen; ++i) {
|
||||
+ if (!buf[i])
|
||||
+ buf[i] = '!';
|
||||
+ }
|
||||
+ }
|
||||
/* FIXME: gettextize? */
|
||||
ret = Sprintf("Bad cert ident %s from %s", buf, hostname);
|
||||
+ }
|
||||
else
|
||||
match_ident = TRUE;
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
verify SSL certificates by default. SSL support really is pointless without doing that.
|
||||
Also disable use of SSLv2 by default as it's insecure, deprecated, dead since last century.
|
||||
Index: w3m-0.5.2/fm.h
|
||||
===================================================================
|
||||
--- w3m-0.5.2.orig/fm.h
|
||||
+++ w3m-0.5.2/fm.h
|
||||
@@ -1120,7 +1120,7 @@ global int view_unseenobject init(TRUE);
|
||||
#endif
|
||||
|
||||
#if defined(USE_SSL) && defined(USE_SSL_VERIFY)
|
||||
-global int ssl_verify_server init(FALSE);
|
||||
+global int ssl_verify_server init(TRUE);
|
||||
global char *ssl_cert_file init(NULL);
|
||||
global char *ssl_key_file init(NULL);
|
||||
global char *ssl_ca_path init(NULL);
|
||||
@@ -1129,7 +1129,7 @@ global int ssl_path_modified init(FALSE)
|
||||
#endif /* defined(USE_SSL) &&
|
||||
* defined(USE_SSL_VERIFY) */
|
||||
#ifdef USE_SSL
|
||||
-global char *ssl_forbid_method init(NULL);
|
||||
+global char *ssl_forbid_method init("2");
|
||||
#endif
|
||||
|
||||
global int is_redisplay init(FALSE);
|
|
@ -0,0 +1,19 @@
|
|||
# HOW TO EDIT THIS FILE:
|
||||
# The "handy ruler" below makes it easier to edit a package description. Line
|
||||
# up the first '|' above the ':' following the base package name, and the '|'
|
||||
# on the right side marks the last column you can put a character in. You must
|
||||
# make exactly 11 lines for the formatting to be correct. It's also
|
||||
# customary to leave one space after the ':'.
|
||||
|
||||
|-----handy-ruler--------------------------------------------------------|
|
||||
w3m: w3m (text-mode browser)
|
||||
w3m:
|
||||
w3m: w3m is a World Wide Web (WWW) text based client. It has English and
|
||||
w3m: Japanese help files and an option menu and can be configured to use
|
||||
w3m: either language. It will display hypertext markup language (HTML)
|
||||
w3m: documents containing links to files residing on the local system, as
|
||||
w3m: well as files residing on remote systems. It can display HTML tables,
|
||||
w3m: frames, and images, and supports tabbed browsing. In addition, it can
|
||||
w3m: be used as a "pager" in much the same manner as "more" or "less".
|
||||
w3m:
|
||||
w3m: Homepage: http://w3m.sourceforge.net/
|
|
@ -0,0 +1,92 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Slackware build script for w3m
|
||||
# Written by slakmagik <jsun@freeshell.org>
|
||||
# Released under the WTFPL
|
||||
|
||||
PRGNAM=w3m
|
||||
VERSION=0.5.2
|
||||
BUILD=${BUILD:-1}
|
||||
TAG=${TAG:-_SBo}
|
||||
|
||||
# Automatically determine the architecture we're building on:
|
||||
if [ -z "$ARCH" ]; then
|
||||
case "$( uname -m )" in
|
||||
i?86) ARCH=i486 ;;
|
||||
arm*) ARCH=arm ;;
|
||||
# Unless $ARCH is already set, use uname -m for all other archs:
|
||||
*) ARCH=$( uname -m ) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
CWD=$(pwd)
|
||||
TMP=${TMP:-/tmp/SBo}
|
||||
PKG=$TMP/package-$PRGNAM
|
||||
OUTPUT=${OUTPUT:-/tmp}
|
||||
|
||||
if [ "$ARCH" = "i486" ]; then
|
||||
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
|
||||
LIBDIRSUFFIX=""
|
||||
elif [ "$ARCH" = "i686" ]; then
|
||||
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
|
||||
LIBDIRSUFFIX=""
|
||||
elif [ "$ARCH" = "x86_64" ]; then
|
||||
SLKCFLAGS="-O2 -fPIC"
|
||||
LIBDIRSUFFIX="64"
|
||||
else
|
||||
SLKCFLAGS="-O2"
|
||||
LIBDIRSUFFIX=""
|
||||
fi
|
||||
|
||||
set -e
|
||||
|
||||
rm -rf $PKG
|
||||
mkdir -p $TMP $PKG $OUTPUT
|
||||
cd $TMP
|
||||
rm -rf $PRGNAM-$VERSION
|
||||
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
|
||||
cd $PRGNAM-$VERSION
|
||||
chown -R root:root .
|
||||
find . \
|
||||
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
|
||||
-exec chmod 755 {} \; -o \
|
||||
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 \
|
||||
-o -perm 400 \) -exec chmod 644 {} \;
|
||||
|
||||
# Fix segfaulting bug
|
||||
patch -p1 < $CWD/patches/w3m-0.5.2-gpm_fix-1.patch
|
||||
patch -p0 < $CWD/patches/bug_566101_Fix-DSO-X11.patch
|
||||
patch -p1 < $CWD/patches/w3m-0.4.1-helpcharset.patch
|
||||
patch -p1 < $CWD/patches/w3m-0.5.1-gcc4.patch
|
||||
patch -p1 < $CWD/patches/w3m-0.5.2-multilib.patch
|
||||
patch -p1 < $CWD/patches/w3m-0.5.2-nulcn.patch
|
||||
patch -p1 < $CWD/patches/w3m-0.5.2-ssl_verify_server_on.patch
|
||||
|
||||
CFLAGS="$SLKCFLAGS" \
|
||||
CXXFLAGS="$SLKCFLAGS" \
|
||||
./configure \
|
||||
--prefix=/usr \
|
||||
--mandir=/usr/man \
|
||||
--enable-keymap=lynx \
|
||||
--enable-gopher \
|
||||
--build=$ARCH-slackware-linux \
|
||||
--host=$ARCH-slackware-linux
|
||||
|
||||
make
|
||||
make DESTDIR=$PKG install
|
||||
|
||||
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
|
||||
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
|
||||
|
||||
find $PKG/usr/man -type f -exec gzip -9 {} \;
|
||||
for i in $(find $PKG/usr/man -type l); do ln -s $(readlink $i).gz $i.gz; rm $i; done
|
||||
|
||||
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
|
||||
cp -a [ACNT]* doc/* $PKG/usr/doc/$PRGNAM-$VERSION
|
||||
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
|
||||
|
||||
mkdir -p $PKG/install
|
||||
cat $CWD/slack-desc > $PKG/install/slack-desc
|
||||
|
||||
cd $PKG
|
||||
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
|
|
@ -0,0 +1,10 @@
|
|||
PRGNAM="w3m"
|
||||
VERSION="0.5.2"
|
||||
HOMEPAGE="http://w3m.sourceforge.net/"
|
||||
DOWNLOAD="http://downloads.sourceforge.net/w3m/w3m-0.5.2.tar.gz"
|
||||
MD5SUM="ba06992d3207666ed1bf2dcf7c72bf58"
|
||||
DOWNLOAD_x86_64=""
|
||||
MD5SUM_x86_64=""
|
||||
MAINTAINER="Felix Pfeifer"
|
||||
EMAIL="pfeifer[dot]felix[at]googlemail[dot]com"
|
||||
APPROVED="dsomero"
|
Loading…
Reference in New Issue