summaryrefslogtreecommitdiff
path: root/network/w3m
diff options
context:
space:
mode:
Diffstat (limited to 'network/w3m')
-rw-r--r--network/w3m/README3
-rw-r--r--network/w3m/slack-desc2
-rw-r--r--network/w3m/w3m-0.5.2-gpm_fix-1.patch124
-rw-r--r--network/w3m/w3m.SlackBuild11
-rw-r--r--network/w3m/w3m.info2
5 files changed, 135 insertions, 7 deletions
diff --git a/network/w3m/README b/network/w3m/README
index 06f23fef66..cddcf4fefd 100644
--- a/network/w3m/README
+++ b/network/w3m/README
@@ -10,6 +10,3 @@ Linux, FreeBSD, and EWS4800) and on Microsoft Windows 9x/NT.
You will need the gc package (which is available from SlackBuilds.org),
to compile this.
-
-NOTE: Don't bother trying to run w3m inside a screen session;
- it will segfault.
diff --git a/network/w3m/slack-desc b/network/w3m/slack-desc
index d56a6104ea..db508bd975 100644
--- a/network/w3m/slack-desc
+++ b/network/w3m/slack-desc
@@ -5,7 +5,7 @@
# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':'.
- |-----handy-ruler------------------------------------------------------|
+ |-----handy-ruler--------------------------------------------------------|
w3m: w3m (text-mode browser)
w3m:
w3m: w3m is a World Wide Web (WWW) text based client. It has English and
diff --git a/network/w3m/w3m-0.5.2-gpm_fix-1.patch b/network/w3m/w3m-0.5.2-gpm_fix-1.patch
new file mode 100644
index 0000000000..74c645d348
--- /dev/null
+++ b/network/w3m/w3m-0.5.2-gpm_fix-1.patch
@@ -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 */
diff --git a/network/w3m/w3m.SlackBuild b/network/w3m/w3m.SlackBuild
index 645e275a53..89ba3934a9 100644
--- a/network/w3m/w3m.SlackBuild
+++ b/network/w3m/w3m.SlackBuild
@@ -7,7 +7,7 @@
PRGNAM=w3m
VERSION=0.5.2
ARCH=${ARCH:-i486}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
CWD=$(pwd)
@@ -19,6 +19,8 @@ if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
fi
set -e
@@ -36,13 +38,18 @@ find . \
\( -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/w3m-0.5.2-gpm_fix-1.patch
+
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--mandir=/usr/man \
--enable-keymap=lynx \
- --enable-gopher
+ --enable-gopher \
+ --build=$ARCH-slackware-linux \
+ --host=$ARCH-slackware-linux
make
make DESTDIR=$PKG install
diff --git a/network/w3m/w3m.info b/network/w3m/w3m.info
index 4b084daaac..670ecc1d83 100644
--- a/network/w3m/w3m.info
+++ b/network/w3m/w3m.info
@@ -5,4 +5,4 @@ DOWNLOAD="http://downloads.sourceforge.net/w3m/w3m-0.5.2.tar.gz"
MD5SUM="ba06992d3207666ed1bf2dcf7c72bf58"
MAINTAINER="slakmagik"
EMAIL="jsun@freeshell.org"
-APPROVED="David Somero"
+APPROVED="rworkman"