Browse Source

elinks package update

Signed-off-by: basebuilder_pel7ppc64lebuilder0 <basebuilder@powerel.org>
master
basebuilder_pel7ppc64lebuilder0 5 years ago
parent
commit
583d749344
  1. 12
      SOURCES/elinks-0.10.1-utf_8_io-default.patch
  2. 18
      SOURCES/elinks-0.10.1-xterm.patch
  3. 25
      SOURCES/elinks-0.11.0-getaddrinfo.patch
  4. 21
      SOURCES/elinks-0.11.0-ssl-noegd.patch
  5. 20
      SOURCES/elinks-0.11.0-sysname.patch
  6. 16
      SOURCES/elinks-0.11.3-macropen.patch
  7. 51
      SOURCES/elinks-0.12pre5-ddg-search.patch
  8. 2350
      SOURCES/elinks-0.12pre5-js185.patch
  9. 35
      SOURCES/elinks-0.12pre6-autoconf.patch
  10. 69
      SOURCES/elinks-nss-inc.patch
  11. 265
      SOURCES/elinks-nss.patch
  12. 861
      SOURCES/elinks-scroll.patch
  13. 29
      SOURCES/elinks.conf
  14. 574
      SPECS/elinks.spec

12
SOURCES/elinks-0.10.1-utf_8_io-default.patch

@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
diff -urNp elinks-0.12pre3-orig/src/config/options.inc elinks-0.12pre3/src/config/options.inc
--- elinks-0.12pre3-orig/src/config/options.inc
+++ elinks-0.12pre3/src/config/options.inc
@@ -920,7 +920,7 @@ static struct option_info config_options
* not defined, it should not be possible to set UTF-8 as "codepage";
* please report any such possibilities as bugs.) */
INIT_OPT_BOOL("terminal._template_", N_("UTF-8 I/O"),
- "utf_8_io", 0, 0,
+ "utf_8_io", 0, 1,
N_("Enable I/O in UTF-8 for Unicode terminals. "
"Note that currently, only the subset of UTF-8 according to "
"terminal codepage is used. ELinks ignores this option "

18
SOURCES/elinks-0.10.1-xterm.patch

@ -0,0 +1,18 @@ @@ -0,0 +1,18 @@
src/config/options.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/src/config/options.c b/src/config/options.c
index 925e042..ace1a13 100644
--- a/src/config/options.c
+++ b/src/config/options.c
@@ -706,8 +706,9 @@ register_autocreated_options(void)
get_opt_bool("terminal.linux.m11_hack") = 1;
get_opt_int("terminal.vt100.type") = TERM_VT100;
get_opt_int("terminal.vt110.type") = TERM_VT100;
- get_opt_int("terminal.xterm.type") = TERM_VT100;
+ get_opt_int("terminal.xterm.type") = 2;
get_opt_bool("terminal.xterm.underline") = 1;
+ get_opt_int("terminal.xterm.colors") = 1;
get_opt_int("terminal.xterm-color.type") = TERM_VT100;
get_opt_int("terminal.xterm-color.colors") = COLOR_MODE_16;
get_opt_bool("terminal.xterm-color.underline") = 1;

25
SOURCES/elinks-0.11.0-getaddrinfo.patch

@ -0,0 +1,25 @@ @@ -0,0 +1,25 @@
--- elinks-0.11.0/src/network/dns.c.getaddrinfo 2006-01-01 17:39:36.000000000 +0100
+++ elinks-0.11.0/src/network/dns.c 2006-01-10 09:30:56.000000000 +0100
@@ -157,9 +157,21 @@ do_real_lookup(unsigned char *name, struct sockaddr_storage **addrs, int *addrno
* But we duplicate the code terribly here :|. */
/* hostent = getipnodebyname(name, AF_INET6, AI_ALL | AI_ADDRCONFIG, NULL); */
memset(&hint, 0, sizeof(hint));
+ hint.ai_flags = AI_ADDRCONFIG;
hint.ai_family = AF_UNSPEC;
hint.ai_socktype = SOCK_STREAM;
- if (getaddrinfo(name, NULL, &hint, &ai) != 0) return DNS_ERROR;
+ switch (getaddrinfo(name, NULL, &hint, &ai))
+ {
+ case 0:
+ break;
+ case EAI_BADFLAGS:
+ hint.ai_flags = 0;
+ if (getaddrinfo(name, NULL, &hint, &ai) == 0)
+ break;
+ /* fall through */
+ default:
+ return DNS_ERROR;
+ }
#else
/* Seems there are problems on Mac, so we first need to try

21
SOURCES/elinks-0.11.0-ssl-noegd.patch

@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
--- elinks-0.11.0/src/network/ssl/ssl.c.noegd 2006-01-10 09:24:50.000000000 +0100
+++ elinks-0.11.0/src/network/ssl/ssl.c 2006-01-10 09:25:01.000000000 +0100
@@ -44,18 +44,6 @@ SSL_CTX *context = NULL;
static void
init_openssl(struct module *module)
{
- unsigned char f_randfile[PATH_MAX];
-
- /* In a nutshell, on OS's without a /dev/urandom, the OpenSSL library
- * cannot initialize the PRNG and so every attempt to use SSL fails.
- * It's actually an OpenSSL FAQ, and according to them, it's up to the
- * application coders to seed the RNG. -- William Yodlowsky */
- if (RAND_egd(RAND_file_name(f_randfile, sizeof(f_randfile))) < 0) {
- /* Not an EGD, so read and write to it */
- if (RAND_load_file(f_randfile, -1))
- RAND_write_file(f_randfile);
- }
-
SSLeay_add_ssl_algorithms();
context = SSL_CTX_new(SSLv23_client_method());
SSL_CTX_set_options(context, SSL_OP_ALL);

20
SOURCES/elinks-0.11.0-sysname.patch

@ -0,0 +1,20 @@ @@ -0,0 +1,20 @@
--- elinks-0.11.0/src/osdep/sysname.c.sysname 2006-01-01 17:39:36.000000000 +0100
+++ elinks-0.11.0/src/osdep/sysname.c 2006-01-10 09:34:14.000000000 +0100
@@ -26,7 +26,7 @@
FILE *f;
unsigned char *p;
- f = popen("uname -srm", "r");
+ f = popen("uname -s", "r");
if (!f) return 0;
if (fread(system_name, 1, sizeof(system_name) - 1, f) <= 0) {
@@ -58,7 +58,7 @@
if (!uname(&name)) {
snprintf(system_name, sizeof(system_name),
- "%s %s %s", name.sysname, name.release, name.machine);
+ "%s", name.sysname);
return;
}
#endif

16
SOURCES/elinks-0.11.3-macropen.patch

@ -0,0 +1,16 @@ @@ -0,0 +1,16 @@
src/encoding/encoding.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/encoding/encoding.c b/src/encoding/encoding.c
index d019dab..9648da3 100644
--- a/src/encoding/encoding.c
+++ b/src/encoding/encoding.c
@@ -124,7 +124,7 @@ open_encoded(int fd, enum stream_encoding encoding)
if (!stream) return NULL;
stream->encoding = encoding;
- if (decoding_backends[stream->encoding]->open(stream, fd) >= 0)
+ if ((decoding_backends[stream->encoding]->open)(stream, fd) >= 0)
return stream;
mem_free(stream);

51
SOURCES/elinks-0.12pre5-ddg-search.patch

@ -0,0 +1,51 @@ @@ -0,0 +1,51 @@
From a96d8a17e57343ff29736a2f8d0c954f2c4ba02a Mon Sep 17 00:00:00 2001
From: Kamil Dudka <kdudka@redhat.com>
Date: Tue, 18 Sep 2012 15:32:31 +0200
Subject: [PATCH] rewrite: add default "ddg" dumb/smart prefixes for DuckDuckGo

... and mention that URI rewriting rules may leak ELinks' identity
in the documentation of protocol.http.user_agent.

Originally requested at <https://bugzilla.redhat.com/856348>.
---
src/protocol/http/http.c | 3 ++-
src/protocol/rewrite/rewrite.c | 2 ++
2 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/src/protocol/http/http.c b/src/protocol/http/http.c
index ce14031..98053c0 100644
--- a/src/protocol/http/http.c
+++ b/src/protocol/http/http.c
@@ -227,7 +227,8 @@ static union option_info http_options[] = {
"pushing some lite version to them automagically.\n"
"\n"
"Use \" \" if you don't want any User-Agent header to be sent "
- "at all.\n"
+ "at all. URI rewriting rules may still include parameters "
+ "that reveal you are using ELinks.\n"
"\n"
"%v in the string means ELinks version,\n"
"%s in the string means system identification,\n"
diff --git a/src/protocol/rewrite/rewrite.c b/src/protocol/rewrite/rewrite.c
index dd5c7ab..e01da74 100644
--- a/src/protocol/rewrite/rewrite.c
+++ b/src/protocol/rewrite/rewrite.c
@@ -121,6 +121,7 @@ static union option_info uri_rewrite_options[] = {
INIT_OPT_DUMB_PREFIX("cia", "http://cia.navi.cx/"),
INIT_OPT_DUMB_PREFIX("b", "http://babelfish.altavista.com/babelfish/tr"),
INIT_OPT_DUMB_PREFIX("d", "http://www.dict.org"),
+ INIT_OPT_DUMB_PREFIX("ddg", "http://duckduckgo.com/?t=elinks"),
INIT_OPT_DUMB_PREFIX("g", "http://www.google.com/"),
INIT_OPT_DUMB_PREFIX("gg", "http://www.google.com/"),
INIT_OPT_DUMB_PREFIX("go", "http://www.google.com/"),
@@ -158,6 +159,7 @@ static union option_info uri_rewrite_options[] = {
INIT_OPT_SMART_PREFIX("cambridge", "http://dictionary.cambridge.org/results.asp?searchword=%s"),
INIT_OPT_SMART_PREFIX("cliki", "http://www.cliki.net/admin/search?words=%s"),
INIT_OPT_SMART_PREFIX("d", "http://www.dict.org/bin/Dict?Query=%s&Form=Dict1&Strategy=*&Database=*&submit=Submit+query"),
+ INIT_OPT_SMART_PREFIX("ddg", "http://duckduckgo.com/?q=%s&t=elinks"),
INIT_OPT_SMART_PREFIX("dmoz", "http://search.dmoz.org/cgi-bin/search?search=%s"),
INIT_OPT_SMART_PREFIX("foldoc", "http://wombat.doc.ic.ac.uk/foldoc/foldoc.cgi?%s"),
INIT_OPT_SMART_PREFIX("g", "http://www.google.com/search?q=%s&btnG=Google+Search"),
--
1.7.1

2350
SOURCES/elinks-0.12pre5-js185.patch

File diff suppressed because it is too large Load Diff

35
SOURCES/elinks-0.12pre6-autoconf.patch

@ -0,0 +1,35 @@ @@ -0,0 +1,35 @@
From d7380abead73dc753023ef598b87944756c08d40 Mon Sep 17 00:00:00 2001
From: Kamil Dudka <kdudka@redhat.com>
Date: Mon, 25 Feb 2013 15:31:07 +0100
Subject: [PATCH] configure.in: add missing AC_LANG_PROGRAM

... around the first argument of AC_COMPILE_IFELSE
---
configure.in | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/configure.in b/configure.in
index 2629ac3..4290e45 100644
--- a/configure.in
+++ b/configure.in
@@ -220,7 +220,7 @@ AC_STRUCT_TM
AC_C_CONST
AC_C_INLINE
AC_MSG_CHECKING([[for C99-conforming inline]])
-AC_COMPILE_IFELSE([[
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
int add(int change);
static int sum;
@@ -236,7 +236,7 @@ AC_COMPILE_IFELSE([[
sub(int change)
{
return add(-change);
- }]],
+ }]])],
[AC_MSG_RESULT([[yes]])
AC_DEFINE([NONSTATIC_INLINE], [inline],
[Define as inline if the compiler lets you declare a function without inline, then define it with inline, and have that definition refer to identifiers with internal linkage. This is allowed by C99 6.7.4p6 and 6.7.4p3 together. Otherwise define as nothing.])],
--
1.7.1

69
SOURCES/elinks-nss-inc.patch

@ -0,0 +1,69 @@ @@ -0,0 +1,69 @@
src/network/ssl/ssl.c | 33 ++++++++++++++++++++++++++++++++-
1 files changed, 32 insertions(+), 1 deletions(-)

diff --git a/src/network/ssl/ssl.c b/src/network/ssl/ssl.c
index 73446b5..eadff7f 100644
--- a/src/network/ssl/ssl.c
+++ b/src/network/ssl/ssl.c
@@ -48,10 +48,20 @@ SSL_CTX *context = NULL;
static void
init_openssl(struct module *module)
{
+ unsigned char *ca_file;
SSLeay_add_ssl_algorithms();
context = SSL_CTX_new(SSLv23_client_method());
SSL_CTX_set_options(context, SSL_OP_ALL);
+#ifdef CONFIG_NSS_COMPAT_OSSL
+ ca_file = get_opt_str("connection.ssl.trusted_ca_file");
+ if (*ca_file)
+ SSL_CTX_load_verify_locations(context, ca_file, NULL);
+ else
+ SSL_CTX_set_default_verify_paths(context);
+#else
+ (void) ca_file;
SSL_CTX_set_default_verify_paths(context);
+#endif
}
static void
@@ -61,10 +71,30 @@ done_openssl(struct module *module)
}
static union option_info openssl_options[] = {
+#ifdef CONFIG_NSS_COMPAT_OSSL
+ INIT_OPT_BOOL("connection.ssl", N_("Verify certificates"),
+ "cert_verify", 0, 0,
+ N_("Verify the peer's SSL certificate.")),
+
+ INIT_OPT_STRING("connection.ssl", N_("Trusted CA file"),
+ "trusted_ca_file", 0, "/etc/pki/tls/certs/ca-bundle.crt",
+ N_("The location of a file containing certificates of "
+ "trusted certification authorities in PEM format. "
+ "ELinks then trusts certificates issued by these CAs.\n"
+ "\n"
+ "If you set this option to an empty string, default NSS root"
+ "certificates are loaded.\n"
+ "\n"
+ "If you change this option or the file, you must "
+ "restart ELinks for the changes to take effect. "
+ "This option affects GnuTLS and nss_compat_ossl but not "
+ "OpenSSL.")),
+#else
INIT_OPT_BOOL("connection.ssl", N_("Verify certificates"),
"cert_verify", 0, 0,
N_("Verify the peer's SSL certificate. Note that this "
"needs extensive configuration of OpenSSL by the user.")),
+#endif
INIT_OPT_TREE("connection.ssl", N_("Client Certificates"),
"client_cert", OPT_SORT,
@@ -187,7 +217,8 @@ static union option_info gnutls_options[] = {
"\n"
"If you change this option or the file, you must "
"restart ELinks for the changes to take effect. "
- "This option affects GnuTLS but not OpenSSL.")),
+ "This option affects GnuTLS and nss_compat_ossl but not "
+ "OpenSSL.")),
NULL_OPTION_INFO,
};

265
SOURCES/elinks-nss.patch

@ -0,0 +1,265 @@ @@ -0,0 +1,265 @@
configure.in | 34 +++++++++++++++++++++++++++++++++-
src/network/ssl/socket.c | 28 ++++++++++++++++++++++------
src/network/ssl/ssl.c | 32 ++++++++++++++++++++++++++------
src/network/ssl/ssl.h | 2 +-
4 files changed, 82 insertions(+), 14 deletions(-)

diff --git a/configure.in b/configure.in
index 0e534db..972a305 100644
--- a/configure.in
+++ b/configure.in
@@ -970,6 +970,37 @@ AC_ARG_WITH(openssl, [[ --with-openssl[=DIR] enable OpenSSL support (default
*) chosen_ssl_library="OpenSSL" ;;
esac])
+AC_ARG_WITH(nss_compat_ossl, [[ --with-nss_compat_ossl[=DIR]
+ NSS compatibility SSL libraries/include files]])
+
+# nss_compat_ossl
+if test -n "$with_nss_compat_ossl" && test "$with_nss_compat_ossl" != "no"; then
+ EL_SAVE_FLAGS
+ if test "$with_nss_compat_ossl" = yes; then
+ if pkg-config nss; then
+ CFLAGS="$CFLAGS_X `pkg-config --cflags nss`"
+ LIBS="$LIBS_X `pkg-config --libs nss`"
+ else
+ with_nss_compat_ossl=no
+ fi
+ else
+ # Without pkg-config, we'll kludge in some defaults
+ CFLAGS="$CFLAGS_X -I$with_nss_compat_ossl/include -I/usr/include/nss3 -I/usr/include/nspr4"
+ LIBS="$LIBS_X -L$with_nss_compat_ossl/lib -lssl3 -lsmime3 -lnss3 -lplds4 -lplc4 -lnspr4 -lpthread -ldl"
+ fi
+ AC_CHECK_HEADERS(nss_compat_ossl/nss_compat_ossl.h,, [with_nss_compat_ossl=no], [#define NSS_COMPAT_OSSL_H])
+ AC_CHECK_LIB(nss_compat_ossl, X509_free,, [with_nss_compat_ossl=no])
+
+ if test "$with_nss_compat_ossl" = "no"; then
+ EL_RESTORE_FLAGS
+ else
+ LIBS="$LIBS -lnss_compat_ossl"
+ EL_CONFIG(CONFIG_NSS_COMPAT_OSSL, [nss_compat_ossl])
+ disable_openssl="yes"
+ disable_gnutls="yes"
+ fi
+fi
+
# ---- OpenSSL
AC_MSG_CHECKING([for OpenSSL])
@@ -1092,10 +1123,11 @@ fi
# Final SSL setup
-EL_CONFIG_DEPENDS(CONFIG_SSL, [CONFIG_OPENSSL CONFIG_GNUTLS], [SSL])
+EL_CONFIG_DEPENDS(CONFIG_SSL, [CONFIG_OPENSSL CONFIG_GNUTLS CONFIG_NSS_COMPAT_OSSL], [SSL])
AC_SUBST(CONFIG_GNUTLS_OPENSSL_COMPAT)
AC_SUBST(CONFIG_OPENSSL)
AC_SUBST(CONFIG_GNUTLS)
+AC_SUBST(CONFIG_NSS_COMPAT_OSSL)
#endif
diff --git a/src/network/ssl/socket.c b/src/network/ssl/socket.c
index 45b4b4a..3265107 100644
--- a/src/network/ssl/socket.c
+++ b/src/network/ssl/socket.c
@@ -6,6 +6,10 @@
#ifdef CONFIG_OPENSSL
#include <openssl/ssl.h>
+#define USE_OPENSSL
+#elif defined(CONFIG_NSS_COMPAT_OSSL)
+#include <nss_compat_ossl/nss_compat_ossl.h>
+#define USE_OPENSSL
#elif defined(CONFIG_GNUTLS)
#include <gnutls/gnutls.h>
#else
@@ -26,7 +30,7 @@
/* SSL errors */
-#ifdef CONFIG_OPENSSL
+#ifdef USE_OPENSSL
#define SSL_ERROR_WANT_READ2 9999 /* XXX */
#define SSL_ERROR_WANT_WRITE2 SSL_ERROR_WANT_WRITE
#define SSL_ERROR_SYSCALL2 SSL_ERROR_SYSCALL
@@ -40,7 +44,7 @@
#define SSL_ERROR_SYSCALL2 GNUTLS_E_PULL_ERROR
#endif
-#ifdef CONFIG_OPENSSL
+#ifdef USE_OPENSSL
#define ssl_do_connect(socket) SSL_get_error(socket->ssl, SSL_connect(socket->ssl))
#define ssl_do_write(socket, data, len) SSL_write(socket->ssl, data, len)
@@ -126,7 +130,7 @@ ssl_connect(struct socket *socket)
if (socket->no_tls)
ssl_set_no_tls(socket);
-#ifdef CONFIG_OPENSSL
+#ifdef USE_OPENSSL
SSL_set_fd(socket->ssl, socket->fd);
if (get_opt_bool("connection.ssl.cert_verify"))
@@ -137,7 +141,13 @@ ssl_connect(struct socket *socket)
if (get_opt_bool("connection.ssl.client_cert.enable")) {
unsigned char *client_cert;
- client_cert = get_opt_str("connection.ssl.client_cert.file");
+#ifdef CONFIG_NSS_COMPAT_OSSL
+ client_cert = get_opt_str(
+ "connection.ssl.client_cert.nickname");
+#else
+ client_cert = get_opt_str(
+ "connection.ssl.client_cert.file");
+#endif
if (!*client_cert) {
client_cert = getenv("X509_CLIENT_CERT");
if (client_cert && !*client_cert)
@@ -145,11 +155,17 @@ ssl_connect(struct socket *socket)
}
if (client_cert) {
+#ifdef CONFIG_NSS_COMPAT_OSSL
+ SSL_CTX_use_certificate_chain_file(
+ (SSL *) socket->ssl,
+ client_cert);
+#else
SSL_CTX *ctx = ((SSL *) socket->ssl)->ctx;
SSL_CTX_use_certificate_chain_file(ctx, client_cert);
SSL_CTX_use_PrivateKey_file(ctx, client_cert,
SSL_FILETYPE_PEM);
+#endif
}
}
@@ -206,7 +222,7 @@ ssl_write(struct socket *socket, unsigned char *data, int len)
ssize_t wr = ssl_do_write(socket, data, len);
if (wr <= 0) {
-#ifdef CONFIG_OPENSSL
+#ifdef USE_OPENSSL
int err = SSL_get_error(socket->ssl, wr);
#elif defined(CONFIG_GNUTLS)
int err = wr;
@@ -235,7 +251,7 @@ ssl_read(struct socket *socket, unsigned char *data, int len)
ssize_t rd = ssl_do_read(socket, data, len);
if (rd <= 0) {
-#ifdef CONFIG_OPENSSL
+#ifdef USE_OPENSSL
int err = SSL_get_error(socket->ssl, rd);
#elif defined(CONFIG_GNUTLS)
int err = rd;
diff --git a/src/network/ssl/ssl.c b/src/network/ssl/ssl.c
index 685c31e..73446b5 100644
--- a/src/network/ssl/ssl.c
+++ b/src/network/ssl/ssl.c
@@ -7,6 +7,10 @@
#ifdef CONFIG_OPENSSL
#include <openssl/ssl.h>
#include <openssl/rand.h>
+#define USE_OPENSSL
+#elif defined(CONFIG_NSS_COMPAT_OSSL)
+#include <nss_compat_ossl/nss_compat_ossl.h>
+#define USE_OPENSSL
#elif defined(CONFIG_GNUTLS)
#include <gnutls/gnutls.h>
#include <gnutls/x509.h>
@@ -33,7 +37,7 @@
/* FIXME: As you can see, SSL is currently implemented in very, erm,
* decentralized manner. */
-#ifdef CONFIG_OPENSSL
+#ifdef USE_OPENSSL
#ifndef PATH_MAX
#define PATH_MAX 256 /* according to my /usr/include/bits/posix1_lim.h */
@@ -71,12 +75,28 @@ static union option_info openssl_options[] = {
N_("Enable or not the sending of X509 client certificates "
"to servers which request them.")),
+#ifdef CONFIG_NSS_COMPAT_OSSL
+ INIT_OPT_STRING("connection.ssl.client_cert", N_("Certificate nickname"),
+ "nickname", 0, "",
+ N_("The nickname of the client certificate stored in NSS "
+ "database. If this value is unset, the nickname from "
+ "the X509_CLIENT_CERT variable is used instead. If you "
+ "have a PKCS#12 file containing client certificate, you "
+ "can import it into your NSS database with:\n"
+ "\n"
+ "$ pk12util -i mycert.p12 -d /path/to/database\n"
+ "\n"
+ "The NSS database location can be changed by SSL_DIR "
+ "environment variable. The database can be also shared "
+ "with Mozilla browsers.")),
+#else
INIT_OPT_STRING("connection.ssl.client_cert", N_("Certificate File"),
"file", 0, "",
N_("The location of a file containing the client certificate "
"and unencrypted private key in PEM format. If unset, the "
"file pointed to by the X509_CLIENT_CERT variable is used "
"instead.")),
+#endif
NULL_OPTION_INFO,
};
@@ -182,7 +202,7 @@ static struct module gnutls_module = struct_module(
/* done: */ done_gnutls
);
-#endif /* CONFIG_OPENSSL or CONFIG_GNUTLS */
+#endif /* USE_OPENSSL or CONFIG_GNUTLS */
static union option_info ssl_options[] = {
INIT_OPT_TREE("connection", N_("SSL"),
@@ -193,7 +213,7 @@ static union option_info ssl_options[] = {
};
static struct module *ssl_modules[] = {
-#ifdef CONFIG_OPENSSL
+#ifdef USE_OPENSSL
&openssl_module,
#elif defined(CONFIG_GNUTLS)
&gnutls_module,
@@ -214,7 +234,7 @@ struct module ssl_module = struct_module(
int
init_ssl_connection(struct socket *socket)
{
-#ifdef CONFIG_OPENSSL
+#ifdef USE_OPENSSL
socket->ssl = SSL_new(context);
if (!socket->ssl) return S_SSL_ERROR;
#elif defined(CONFIG_GNUTLS)
@@ -271,7 +291,7 @@ done_ssl_connection(struct socket *socket)
ssl_t *ssl = socket->ssl;
if (!ssl) return;
-#ifdef CONFIG_OPENSSL
+#ifdef USE_OPENSSL
SSL_free(ssl);
#elif defined(CONFIG_GNUTLS)
gnutls_deinit(*ssl);
@@ -288,7 +308,7 @@ get_ssl_connection_cipher(struct socket *socket)
if (!init_string(&str)) return NULL;
-#ifdef CONFIG_OPENSSL
+#ifdef USE_OPENSSL
add_format_to_string(&str, "%ld-bit %s %s",
SSL_get_cipher_bits(ssl, NULL),
SSL_get_cipher_version(ssl),
diff --git a/src/network/ssl/ssl.h b/src/network/ssl/ssl.h
index 7c54a7a..21ca142 100644
--- a/src/network/ssl/ssl.h
+++ b/src/network/ssl/ssl.h
@@ -22,7 +22,7 @@ unsigned char *get_ssl_connection_cipher(struct socket *socket);
/* Internal type used in ssl module. */
-#ifdef CONFIG_OPENSSL
+#if defined(CONFIG_OPENSSL) || defined(CONFIG_NSS_COMPAT_OSSL)
#define ssl_t SSL
#elif defined(CONFIG_GNUTLS)
#define ssl_t gnutls_session_t

861
SOURCES/elinks-scroll.patch

@ -0,0 +1,861 @@ @@ -0,0 +1,861 @@
From f513964579f72fc77eea6e0961e49cc8299bf204 Mon Sep 17 00:00:00 2001
From: Witold Filipczyk <witekfl@poczta.onet.pl>
Date: Sun, 31 Aug 2008 14:23:28 +0200
Subject: [PATCH] Use real_box in dialog.c.

Signed-off-by: Kamil Dudka <kdudka@redhat.com>
---
src/bfu/button.c | 32 +++++++++++++-------------
src/bfu/button.h | 3 +-
src/bfu/checkbox.c | 13 +++++-----
src/bfu/checkbox.h | 3 +-
src/bfu/dialog.c | 59 ++++++++++++++++++++++++++++++++++-------------
src/bfu/dialog.h | 2 +
src/bfu/group.c | 18 +++++++-------
src/bfu/group.h | 2 +-
src/bfu/inpfield.c | 10 ++++----
src/bfu/inpfield.h | 2 +-
src/bfu/listbox.c | 3 +-
src/bfu/listbox.h | 2 +-
src/bfu/text.c | 16 +++++++-----
src/bfu/text.h | 5 ++-
src/dialogs/download.c | 12 +++++-----
src/terminal/draw.c | 36 +++++++++++++++++++++++++++++
src/terminal/draw.h | 10 ++++++++
src/terminal/window.c | 15 ++++++++++++
src/terminal/window.h | 2 +
19 files changed, 170 insertions(+), 75 deletions(-)

diff --git a/src/bfu/button.c b/src/bfu/button.c
index 8267c94..8e6ac62 100644
--- a/src/bfu/button.c
+++ b/src/bfu/button.c
@@ -115,7 +115,7 @@ buttons_width(struct widget_data *widget_data, int n,
}
void
-dlg_format_buttons(struct terminal *term,
+dlg_format_buttons(struct terminal *term, struct dialog_data *dlg_data,
struct widget_data *widget_data, int n,
int x, int *y, int w, int *rw, enum format_align align, int format_only)
{
@@ -212,7 +212,7 @@ display_button(struct dialog_data *dlg_data, struct widget_data *widget_data)
}
- draw_text(term, pos->x, pos->y, BUTTON_LEFT, BUTTON_LEFT_LEN, 0, color);
+ draw_text2(term, dlg_data, pos->x, pos->y, BUTTON_LEFT, BUTTON_LEFT_LEN, 0, color);
if (len > 0) {
unsigned char *text = widget_data->widget->text;
int hk_pos = widget_data->widget->info.button.hotkey_pos;
@@ -236,15 +236,15 @@ display_button(struct dialog_data *dlg_data, struct widget_data *widget_data)
NULL);
if (hk_pos)
- draw_text(term, x, pos->y,
+ draw_text2(term, dlg_data, x, pos->y,
text, hk_pos, 0, color);
- draw_text(term, x + cells_to_hk, pos->y,
+ draw_text2(term, dlg_data, x + cells_to_hk, pos->y,
&text[hk_pos + 1], hk_bytes,
attr, shortcut_color);
if (right > 1)
- draw_text(term, x+cells_to_hk+hk_cells,
+ draw_text2(term, dlg_data, x+cells_to_hk+hk_cells,
pos->y,
&text[hk_pos + hk_bytes + 1],
right - 1, 0, color);
@@ -257,11 +257,11 @@ display_button(struct dialog_data *dlg_data, struct widget_data *widget_data)
len - hk_width,
NULL);
- draw_text(term, x, pos->y,
+ draw_text2(term, dlg_data, x, pos->y,
text, hk_len,
attr, shortcut_color);
- draw_text(term, x + hk_width, pos->y,
+ draw_text2(term, dlg_data, x + hk_width, pos->y,
&text[hk_len], len_to_display,
0, color);
}
@@ -271,18 +271,18 @@ display_button(struct dialog_data *dlg_data, struct widget_data *widget_data)
int right = widget_data->widget->info.button.truetextlen - hk_pos - 1;
if (hk_pos) {
- draw_text(term, x, pos->y, text, hk_pos, 0, color);
+ draw_text2(term, dlg_data, x, pos->y, text, hk_pos, 0, color);
}
- draw_text(term, x + hk_pos, pos->y,
+ draw_text2(term, dlg_data, x + hk_pos, pos->y,
&text[hk_pos + 1], 1, attr, shortcut_color);
if (right > 1) {
- draw_text(term, x + hk_pos + 1, pos->y,
+ draw_text2(term, dlg_data, x + hk_pos + 1, pos->y,
&text[hk_pos + 2], right - 1, 0, color);
}
} else {
- draw_text(term, x, pos->y, text, 1, attr, shortcut_color);
- draw_text(term, x + 1, pos->y, &text[1], len - 1, 0, color);
+ draw_text2(term, dlg_data, x, pos->y, text, 1, attr, shortcut_color);
+ draw_text2(term, dlg_data, x + 1, pos->y, &text[1], len - 1, 0, color);
}
}
#ifdef CONFIG_UTF8
@@ -290,15 +290,15 @@ display_button(struct dialog_data *dlg_data, struct widget_data *widget_data)
int text_cells = utf8_ptr2cells(widget_data->widget->text, NULL);
int hk = (widget_data->widget->info.button.hotkey_pos >= 0);
- draw_text(term, x + text_cells - hk, pos->y,
+ draw_text2(term, dlg_data, x + text_cells - hk, pos->y,
BUTTON_RIGHT, BUTTON_RIGHT_LEN, 0, color);
} else
#endif /* CONFIG_UTF8 */
- draw_text(term, x + len, pos->y, BUTTON_RIGHT,
+ draw_text2(term, dlg_data, x + len, pos->y, BUTTON_RIGHT,
BUTTON_RIGHT_LEN, 0, color);
if (sel) {
- set_cursor(term, x, pos->y, 1);
- set_window_ptr(dlg_data->win, pos->x, pos->y);
+ set_cursor2(term, dlg_data, x, pos->y, 1);
+ set_window_ptr2(dlg_data, dlg_data->win, pos->x, pos->y);
}
return EVENT_PROCESSED;
}
diff --git a/src/bfu/button.h b/src/bfu/button.h
index e6e907d..de986c8 100644
--- a/src/bfu/button.h
+++ b/src/bfu/button.h
@@ -5,6 +5,7 @@
#include "util/align.h"
struct dialog;
+struct dialog_data;
struct terminal;
struct widget_data;
@@ -89,6 +90,6 @@ void add_dlg_button_do(struct dialog *dlg, unsigned char *text, int flags, widge
#endif
extern const struct widget_ops button_ops;
-void dlg_format_buttons(struct terminal *, struct widget_data *, int, int, int *, int, int *, enum format_align, int);
+void dlg_format_buttons(struct terminal *, struct dialog_data *, struct widget_data *, int, int, int *, int, int *, enum format_align, int);
#endif
diff --git a/src/bfu/checkbox.c b/src/bfu/checkbox.c
index 7ed97e0..d7c974b 100644
--- a/src/bfu/checkbox.c
+++ b/src/bfu/checkbox.c
@@ -36,7 +36,7 @@ add_dlg_radio_do(struct dialog *dlg, unsigned char *text,
}
void
-dlg_format_checkbox(struct terminal *term,
+dlg_format_checkbox(struct terminal *term, struct dialog_data *dlg_data,
struct widget_data *widget_data,
int x, int *y, int w, int *rw,
enum format_align align, int format_only)
@@ -49,7 +49,7 @@ dlg_format_checkbox(struct terminal *term,
if (text && *text) {
if (rw) *rw -= CHECKBOX_LS;
- dlg_format_text_do(term, text, x + CHECKBOX_LS, y,
+ dlg_format_text_do(term, dlg_data, text, x + CHECKBOX_LS, y,
w - CHECKBOX_LS, rw,
get_bfu_color(term, "dialog.checkbox-label"),
align, format_only);
@@ -78,11 +78,11 @@ display_checkbox(struct dialog_data *dlg_data, struct widget_data *widget_data)
else
text = widget_data->widget->info.checkbox.gid ? "( )" : "[ ]";
- draw_text(term, pos->x, pos->y, text, CHECKBOX_LEN, 0, color);
+ draw_text2(term, dlg_data, pos->x, pos->y, text, CHECKBOX_LEN, 0, color);
if (selected) {
- set_cursor(term, pos->x + 1, pos->y, 1);
- set_window_ptr(dlg_data->win, pos->x, pos->y);
+ set_cursor2(term, dlg_data, pos->x + 1, pos->y, 1);
+ set_window_ptr2(dlg_data, dlg_data->win, pos->x, pos->y);
}
return EVENT_PROCESSED;
@@ -128,7 +128,6 @@ mouse_checkbox(struct dialog_data *dlg_data, struct widget_data *widget_data)
static widget_handler_status_T
select_checkbox(struct dialog_data *dlg_data, struct widget_data *widget_data)
{
-
if (!widget_data->widget->info.checkbox.gid) {
/* Checkbox. */
int *cdata = (int *) widget_data->cdata;
@@ -159,8 +158,8 @@ select_checkbox(struct dialog_data *dlg_data, struct widget_data *widget_data)
}
widget_data->info.checkbox.checked = 1;
}
-
display_widget(dlg_data, widget_data);
+
return EVENT_PROCESSED;
}
diff --git a/src/bfu/checkbox.h b/src/bfu/checkbox.h
index 573f1d2..b4e65ce 100644
--- a/src/bfu/checkbox.h
+++ b/src/bfu/checkbox.h
@@ -2,6 +2,7 @@
#define EL__BFU_CHECKBOX_H
struct dialog;
+struct dialog_data;
struct terminal;
struct widget_data;
@@ -30,7 +31,7 @@ void add_dlg_radio_do(struct dialog *dlg, unsigned char *text, int groupid, int
extern const struct widget_ops checkbox_ops;
void
-dlg_format_checkbox(struct terminal *term,
+dlg_format_checkbox(struct terminal *term, struct dialog_data *dlg_data,
struct widget_data *widget_data,
int x, int *y, int w, int *rw,
enum format_align align, int format_only);
diff --git a/src/bfu/dialog.c b/src/bfu/dialog.c
index b2df9f8..414283f 100644
--- a/src/bfu/dialog.c
+++ b/src/bfu/dialog.c
@@ -82,20 +82,18 @@ redraw_dialog(struct dialog_data *dlg_data, int layout)
}
if (!dlg_data->dlg->layout.only_widgets) {
- struct box box;
-
- set_box(&box,
+ set_box(&dlg_data->real_box,
dlg_data->box.x + (DIALOG_LEFT_BORDER + 1),
dlg_data->box.y + (DIALOG_TOP_BORDER + 1),
dlg_data->box.width - 2 * (DIALOG_LEFT_BORDER + 1),
dlg_data->box.height - 2 * (DIALOG_TOP_BORDER + 1));
- draw_border(term, &box, get_bfu_color(term, "dialog.frame"), DIALOG_FRAME);
+ draw_border(term, &dlg_data->real_box, get_bfu_color(term, "dialog.frame"), DIALOG_FRAME);
assert(dlg_data->dlg->title);
title_color = get_bfu_color(term, "dialog.title");
- if (title_color && box.width > 2) {
+ if (title_color && dlg_data->real_box.width > 2) {
unsigned char *title = dlg_data->dlg->title;
int titlelen = strlen(title);
int titlecells = titlelen;
@@ -107,7 +105,7 @@ redraw_dialog(struct dialog_data *dlg_data, int layout)
&title[titlelen]);
#endif /* CONFIG_UTF8 */
- titlecells = int_min(box.width - 2, titlecells);
+ titlecells = int_min(dlg_data->real_box.width - 2, titlecells);
#ifdef CONFIG_UTF8
if (term->utf8_cp)
@@ -115,13 +113,13 @@ redraw_dialog(struct dialog_data *dlg_data, int layout)
NULL);
#endif /* CONFIG_UTF8 */
- x = (box.width - titlecells) / 2 + box.x;
- y = box.y - 1;
+ x = (dlg_data->real_box.width - titlecells) / 2 + dlg_data->real_box.x;
+ y = dlg_data->real_box.y - 1;
- draw_text(term, x - 1, y, " ", 1, 0, title_color);
- draw_text(term, x, y, title, titlelen, 0, title_color);
- draw_text(term, x + titlecells, y, " ", 1, 0,
+ draw_text2(term, dlg_data, x - 1, y, " ", 1, 0, title_color);
+ draw_text2(term, dlg_data, x, y, title, titlelen, 0, title_color);
+ draw_text2(term, dlg_data, x + titlecells, y, " ", 1, 0,
title_color);
}
}
@@ -181,6 +179,23 @@ init_widget(struct dialog_data *dlg_data, int i)
return widget_data;
}
+static int
+check_range(struct dialog_data *dlg_data, struct widget_data *widget_data)
+{
+ if (!dlg_data->dlg->layout.only_widgets) {
+ struct box *box = &widget_data->box;
+ struct box *dlgbox = &dlg_data->real_box;
+ int y = box->y - dlgbox->y;
+
+ if ((y < dlg_data->y) || (y >= dlg_data->y + dlgbox->height)) {
+ dlg_data->y = y / dlgbox->height * dlgbox->height;
+ redraw_dialog(dlg_data, 0);
+ return 1;
+ }
+ }
+ return 0;
+}
+
void
select_widget(struct dialog_data *dlg_data, struct widget_data *widget_data)
{
@@ -190,6 +205,9 @@ select_widget(struct dialog_data *dlg_data, struct widget_data *widget_data)
dlg_data->selected_widget_id = widget_data - dlg_data->widgets_data;
+ if (check_range(dlg_data, widget_data))
+ return;
+
display_widget(dlg_data, previously_selected_widget);
display_widget(dlg_data, widget_data);
}
@@ -228,6 +246,11 @@ cycle_widget_focus(struct dialog_data *dlg_data, int direction)
} while (!widget_is_focusable(selected_widget(dlg_data))
&& dlg_data->selected_widget_id != prev_selected);
+ if (check_range(dlg_data, selected_widget(dlg_data))) {
+ redraw_from_window(dlg_data->win);
+ return;
+ }
+
display_widget(dlg_data, previously_selected_widget);
display_widget(dlg_data, selected_widget(dlg_data));
redraw_from_window(dlg_data->win);
@@ -238,6 +261,7 @@ dialog_ev_init(struct dialog_data *dlg_data)
{
int i;
+ dlg_data->y = 0;
/* TODO: foreachback_widget() */
for (i = dlg_data->number_of_widgets - 1; i >= 0; i--) {
struct widget_data *widget_data;
@@ -421,6 +445,7 @@ dialog_ev_abort(struct dialog_data *dlg_data)
}
freeml(dlg_data->ml);
+ dlg_data->y = 0;
}
/* TODO: use EVENT_PROCESSED/EVENT_NOT_PROCESSED. */
@@ -554,17 +579,17 @@ format_widgets(struct terminal *term, struct dialog_data *dlg_data,
switch (wdata->widget->type) {
case WIDGET_FIELD_PASS:
case WIDGET_FIELD:
- dlg_format_field(term, wdata, x, y, w, rw, ALIGN_LEFT,
+ dlg_format_field(term, dlg_data, wdata, x, y, w, rw, ALIGN_LEFT,
format_only);
break;
case WIDGET_LISTBOX:
- dlg_format_listbox(term, wdata, x, y, w, h, rw,
+ dlg_format_listbox(term, dlg_data, wdata, x, y, w, h, rw,
ALIGN_LEFT, format_only);
break;
case WIDGET_TEXT:
- dlg_format_text(term, wdata, x, y, w, rw, h,
+ dlg_format_text(term, dlg_data, wdata, x, y, w, rw, h,
format_only);
break;
@@ -583,7 +608,7 @@ format_widgets(struct terminal *term, struct dialog_data *dlg_data,
break;
}
- dlg_format_group(term, wdata, size, x, y, w, rw,
+ dlg_format_group(term, dlg_data, wdata, size, x, y, w, rw,
format_only);
wdata += size - 1;
@@ -591,7 +616,7 @@ format_widgets(struct terminal *term, struct dialog_data *dlg_data,
/* No horizontal space between checkboxes belonging to
* the same group. */
- dlg_format_checkbox(term, wdata, x, y, w, rw,
+ dlg_format_checkbox(term, dlg_data, wdata, x, y, w, rw,
ALIGN_LEFT, format_only);
if (widgets > 1
&& group == widget_has_group(&wdata[1]))
@@ -603,7 +628,7 @@ format_widgets(struct terminal *term, struct dialog_data *dlg_data,
/* We assume that the buttons are all stuffed at the very end
* of the dialog. */
case WIDGET_BUTTON:
- dlg_format_buttons(term, wdata, widgets,
+ dlg_format_buttons(term, dlg_data, wdata, widgets,
x, y, w, rw, ALIGN_CENTER, format_only);
return;
}
diff --git a/src/bfu/dialog.h b/src/bfu/dialog.h
index b0cde3b..bec914c 100644
--- a/src/bfu/dialog.h
+++ b/src/bfu/dialog.h
@@ -100,6 +100,8 @@ struct dialog_data {
struct memory_list *ml;
struct box box;
+ struct box real_box;
+ int y;
int number_of_widgets;
int selected_widget_id;
struct term_event *term_event;
diff --git a/src/bfu/group.c b/src/bfu/group.c
index cc4c6d8..15bd827 100644
--- a/src/bfu/group.c
+++ b/src/bfu/group.c
@@ -20,7 +20,7 @@
#define CHECKBOX_LEN 3 /* "[X]" or "(X)" */
void
-dlg_format_group(struct terminal *term,
+dlg_format_group(struct terminal *term, struct dialog_data *dlg_data,
struct widget_data *widget_data,
int n, int x, int *y, int w, int *rw, int format_only)
{
@@ -87,14 +87,14 @@ dlg_format_group(struct terminal *term,
text,
label_length,
NULL);
- draw_text(term, xpos + width
+ draw_text2(term, dlg_data, xpos + width
+ label_padding,
*y, text, lb, 0,
color);
} else
#endif /* CONFIG_UTF8 */
{
- draw_text(term, xpos + width
+ draw_text2(term, dlg_data, xpos + width
+ label_padding,
*y, text,
label_length, 0,
@@ -113,12 +113,12 @@ dlg_format_group(struct terminal *term,
text,
label_length,
NULL);
- draw_text(term, xpos, *y,
+ draw_text2(term, dlg_data, xpos, *y,
text, lb, 0, color);
} else
#endif /* CONFIG_UTF8 */
{
- draw_text(term, xpos, *y,
+ draw_text2(term, dlg_data, xpos, *y,
text, label_length,
0, color);
}
@@ -155,11 +155,11 @@ group_layouter(struct dialog_data *dlg_data)
#endif /* CONFIG_UTF8 */
rw = int_min(w, strlen(dlg_data->dlg->title));
- dlg_format_group(term, dlg_data->widgets_data, n,
+ dlg_format_group(term, dlg_data, dlg_data->widgets_data, n,
0, &y, w, &rw, 1);
y++;
- dlg_format_buttons(term, dlg_data->widgets_data + n, 2, 0, &y, w,
+ dlg_format_buttons(term, dlg_data, dlg_data->widgets_data + n, 2, 0, &y, w,
&rw, ALIGN_CENTER, 1);
w = rw;
@@ -167,10 +167,10 @@ group_layouter(struct dialog_data *dlg_data)
draw_dialog(dlg_data, w, y);
y = dlg_data->box.y + DIALOG_TB + 1;
- dlg_format_group(term, dlg_data->widgets_data, n,
+ dlg_format_group(term, dlg_data, dlg_data->widgets_data, n,
dlg_data->box.x + DIALOG_LB, &y, w, NULL, 0);
y++;
- dlg_format_buttons(term, dlg_data->widgets_data + n, 2,
+ dlg_format_buttons(term, dlg_data, dlg_data->widgets_data + n, 2,
dlg_data->box.x + DIALOG_LB, &y, w, &rw, ALIGN_CENTER, 0);
}
diff --git a/src/bfu/group.h b/src/bfu/group.h
index 0de645d..9b92c2a 100644
--- a/src/bfu/group.h
+++ b/src/bfu/group.h
@@ -5,7 +5,7 @@ struct dialog_data;
struct terminal;
struct widget_data;
-void dlg_format_group(struct terminal *term,
+void dlg_format_group(struct terminal *term, struct dialog_data *dlg_data,
struct widget_data *widget_data,
int n, int x, int *y, int w, int *rw, int format_only);
diff --git a/src/bfu/inpfield.c b/src/bfu/inpfield.c
index 4c0dcd2..0a9c63e 100644
--- a/src/bfu/inpfield.c
+++ b/src/bfu/inpfield.c
@@ -103,7 +103,7 @@ check_nonempty(struct dialog_data *dlg_data, struct widget_data *widget_data)
}
void
-dlg_format_field(struct terminal *term,
+dlg_format_field(struct terminal *term, struct dialog_data *dlg_data,
struct widget_data *widget_data,
int x, int *y, int w, int *rw, enum format_align align, int format_only)
{
@@ -132,7 +132,7 @@ dlg_format_field(struct terminal *term,
if (label && *label) {
if (!format_only) text_color = get_bfu_color(term, "dialog.text");
- dlg_format_text_do(term, label, x, y, w, rw, text_color, ALIGN_LEFT, format_only);
+ dlg_format_text_do(term, dlg_data, label, x, y, w, rw, text_color, ALIGN_LEFT, format_only);
}
/* XXX: We want the field and label on the same line if the terminal
@@ -140,7 +140,7 @@ dlg_format_field(struct terminal *term,
if (label && *label && float_label) {
if (widget_data->widget->info.field.flags & INPFIELD_FLOAT) {
(*y) -= INPUTFIELD_HEIGHT;
- dlg_format_text_do(term, INPUTFIELD_FLOAT_SEPARATOR,
+ dlg_format_text_do(term, dlg_data, INPUTFIELD_FLOAT_SEPARATOR,
x + label_width, y, w, rw,
text_color, ALIGN_LEFT, format_only);
w -= INPUTFIELD_FLOAT_SEPARATOR_LEN + INPUTFIELD_FLOATLABEL_PADDING;
@@ -312,7 +312,7 @@ display_field_do(struct dialog_data *dlg_data, struct widget_data *widget_data,
if (term->utf8_cp)
w = utf8_cells2bytes(text, w, NULL);
#endif /* CONFIG_UTF8 */
- draw_text(term, widget_data->box.x, widget_data->box.y,
+ draw_text2(term, dlg_data, widget_data->box.x, widget_data->box.y,
text, w, 0, color);
} else {
struct box box;
@@ -763,7 +763,7 @@ input_line_layouter(struct dialog_data *dlg_data)
- ses->status.show_status_bar
- ses->status.show_tabs_bar;
- dlg_format_field(win->term, dlg_data->widgets_data, 0,
+ dlg_format_field(win->term, dlg_data, dlg_data->widgets_data, 0,
&y, win->term->width, NULL, ALIGN_LEFT, 0);
}
diff --git a/src/bfu/inpfield.h b/src/bfu/inpfield.h
index d45a902..fb2270e 100644
--- a/src/bfu/inpfield.h
+++ b/src/bfu/inpfield.h
@@ -62,7 +62,7 @@ extern const struct widget_ops field_pass_ops;
widget_handler_status_T check_number(struct dialog_data *, struct widget_data *);
widget_handler_status_T check_nonempty(struct dialog_data *, struct widget_data *);
-void dlg_format_field(struct terminal *, struct widget_data *, int, int *, int, int *, enum format_align, int format_only);
+void dlg_format_field(struct terminal *, struct dialog_data *, struct widget_data *, int, int *, int, int *, enum format_align, int format_only);
void input_field(struct terminal *, struct memory_list *, int, unsigned char *,
unsigned char *, unsigned char *, unsigned char *, void *,
diff --git a/src/bfu/listbox.c b/src/bfu/listbox.c
index 7ec1b66..e4de12f 100644
--- a/src/bfu/listbox.c
+++ b/src/bfu/listbox.c
@@ -41,7 +41,8 @@ get_listbox_widget_data(struct widget_data *widget_data)
/* Layout for generic boxes */
void
-dlg_format_listbox(struct terminal *term, struct widget_data *widget_data,
+dlg_format_listbox(struct terminal *term, struct dialog_data *dlg_data,
+ struct widget_data *widget_data,
int x, int *y, int w, int max_height, int *rw,
enum format_align align, int format_only)
{
diff --git a/src/bfu/listbox.h b/src/bfu/listbox.h
index c3599e5..63b8be4 100644
--- a/src/bfu/listbox.h
+++ b/src/bfu/listbox.h
@@ -133,7 +133,7 @@ struct listbox_item {
extern const struct widget_ops listbox_ops;
-void dlg_format_listbox(struct terminal *, struct widget_data *, int, int *, int, int, int *, enum format_align, int format_only);
+void dlg_format_listbox(struct terminal *, struct dialog_data *, struct widget_data *, int, int *, int, int, int *, enum format_align, int format_only);
struct listbox_item *traverse_listbox_items_list(struct listbox_item *, struct listbox_data *, int, int, int (*)(struct listbox_item *, void *, int *), void *);
diff --git a/src/bfu/text.c b/src/bfu/text.c
index e8be019..3d2895e 100644
--- a/src/bfu/text.c
+++ b/src/bfu/text.c
@@ -211,7 +211,8 @@ split_lines(struct widget_data *widget_data, int max_width)
/* Format text according to dialog box and alignment. */
void
-dlg_format_text_do(struct terminal *term, unsigned char *text,
+dlg_format_text_do(struct terminal *term, struct dialog_data *dlg_data,
+ unsigned char *text,
int x, int *y, int width, int *real_width,
struct color_pair *color, enum format_align align,
int format_only)
@@ -255,12 +256,13 @@ dlg_format_text_do(struct terminal *term, unsigned char *text,
assert(cells <= width && shift < width);
- draw_text(term, x + shift, *y, text, line_width, 0, color);
+ draw_text2(term, dlg_data, x + shift, *y, text, line_width, 0, color);
}
}
void
-dlg_format_text(struct terminal *term, struct widget_data *widget_data,
+dlg_format_text(struct terminal *term, struct dialog_data *dlg_data,
+ struct widget_data *widget_data,
int x, int *y, int width, int *real_width, int max_height,
int format_only)
{
@@ -335,7 +337,7 @@ dlg_format_text(struct terminal *term, struct widget_data *widget_data,
widget_data->info.text.current = 0;
}
- dlg_format_text_do(term, text,
+ dlg_format_text_do(term, dlg_data, text,
x, y, width, real_width,
get_bfu_color(term, "dialog.text"),
widget_data->widget->info.text.align, format_only);
@@ -395,8 +397,8 @@ display_text(struct dialog_data *dlg_data, struct widget_data *widget_data)
/* Hope this is at least a bit reasonable. Set cursor
* and window pointer to start of the first text line. */
- set_cursor(win->term, widget_data->box.x, widget_data->box.y, 1);
- set_window_ptr(win, widget_data->box.x, widget_data->box.y);
+ set_cursor2(win->term, dlg_data, widget_data->box.x, widget_data->box.y, 1);
+ set_window_ptr2(dlg_data, win, widget_data->box.x, widget_data->box.y);
return EVENT_PROCESSED;
}
@@ -423,7 +425,7 @@ format_and_display_text(struct widget_data *widget_data,
draw_box(term, &widget_data->box, ' ', 0,
get_bfu_color(term, "dialog.generic"));
- dlg_format_text(term, widget_data,
+ dlg_format_text(term, dlg_data, widget_data,
widget_data->box.x, &y, widget_data->box.width, NULL,
height, 0);
diff --git a/src/bfu/text.h b/src/bfu/text.h
index 8dd3365..b181c1a 100644
--- a/src/bfu/text.h
+++ b/src/bfu/text.h
@@ -4,6 +4,7 @@
#include "util/color.h"
struct dialog;
+struct dialog_data;
struct terminal;
struct widget_info_text {
@@ -45,12 +46,12 @@ void add_dlg_text(struct dialog *dlg, unsigned char *text,
enum format_align align, int bottom_pad);
extern const struct widget_ops text_ops;
-void dlg_format_text_do(struct terminal *term,
+void dlg_format_text_do(struct terminal *term, struct dialog_data *dlg_data,
unsigned char *text, int x, int *y, int w, int *rw,
struct color_pair *scolor, enum format_align align, int format_only);
void
-dlg_format_text(struct terminal *term, struct widget_data *widget_data,
+dlg_format_text(struct terminal *term, struct dialog_data *dlg_data, struct widget_data *widget_data,
int x, int *y, int dlg_width, int *real_width, int height, int format_only);
#define text_is_scrollable(widget_data) \
diff --git a/src/dialogs/download.c b/src/dialogs/download.c
index 0116578..b90f047 100644
--- a/src/dialogs/download.c
+++ b/src/dialogs/download.c
@@ -157,7 +157,7 @@ download_dialog_layouter(struct dialog_data *dlg_data)
int_lower_bound(&w, DOWN_DLG_MIN);
}
- dlg_format_text_do(term, url, 0, &y, w, &rw,
+ dlg_format_text_do(term, dlg_data, url, 0, &y, w, &rw,
dialog_text_color, ALIGN_LEFT, 1);
y++;
@@ -166,11 +166,11 @@ download_dialog_layouter(struct dialog_data *dlg_data)
#if CONFIG_BITTORRENT
if (bittorrent) y += 2;
#endif
- dlg_format_text_do(term, msg, 0, &y, w, &rw,
+ dlg_format_text_do(term, dlg_data, msg, 0, &y, w, &rw,
dialog_text_color, ALIGN_LEFT, 1);
y++;
- dlg_format_buttons(term, dlg_data->widgets_data,
+ dlg_format_buttons(term, dlg_data, dlg_data->widgets_data,
dlg_data->number_of_widgets, 0, &y, w,
&rw, ALIGN_CENTER, 1);
@@ -190,7 +190,7 @@ download_dialog_layouter(struct dialog_data *dlg_data)
y = dlg_data->box.y + DIALOG_TB + 1;
x = dlg_data->box.x + DIALOG_LB;
- dlg_format_text_do(term, url, x, &y, w, NULL,
+ dlg_format_text_do(term, dlg_data, url, x, &y, w, NULL,
dialog_text_color, ALIGN_LEFT, 0);
if (show_meter) {
@@ -207,11 +207,11 @@ download_dialog_layouter(struct dialog_data *dlg_data)
}
#endif
y++;
- dlg_format_text_do(term, msg, x, &y, w, NULL,
+ dlg_format_text_do(term, dlg_data, msg, x, &y, w, NULL,
dialog_text_color, ALIGN_LEFT, 0);
y++;
- dlg_format_buttons(term, dlg_data->widgets_data,
+ dlg_format_buttons(term, dlg_data, dlg_data->widgets_data,
dlg_data->number_of_widgets, x, &y, w,
NULL, ALIGN_CENTER, 0);
diff --git a/src/terminal/draw.c b/src/terminal/draw.c
index b3b3706..267d9ac 100644
--- a/src/terminal/draw.c
+++ b/src/terminal/draw.c
@@ -7,6 +7,7 @@
#include "elinks.h"
+#include "bfu/dialog.h"
#include "config/options.h"
#include "intl/charsets.h"
#include "terminal/color.h"
@@ -559,6 +560,23 @@ draw_text(struct terminal *term, int x, int y,
}
void
+draw_text2(struct terminal *term, struct dialog_data *dlg_data, int x, int y,
+ unsigned char *text, int length,
+ enum screen_char_attr attr, struct color_pair *color)
+{
+ struct box *box = &dlg_data->real_box;
+
+ if (box->height) {
+ int y_max = box->y + box->height;
+
+ y -= dlg_data->y;
+ if (y < box->y || y >= y_max) return;
+ }
+ draw_text(term, x, y, text, length, attr, color);
+}
+
+
+void
set_cursor(struct terminal *term, int x, int y, int blockable)
{
assert(term && term->screen);
@@ -580,6 +598,24 @@ set_cursor(struct terminal *term, int x, int y, int blockable)
}
void
+set_cursor2(struct terminal *term, struct dialog_data *dlg_data, int x, int y, int blockable)
+{
+ struct box *box = &dlg_data->real_box;
+
+ assert(term && term->screen);
+ if_assert_failed return;
+
+ if (box->height) {
+ int y_max = box->y + box->height;
+
+ y -= dlg_data->y;
+ if (y < box->y || y >= y_max) return;
+ }
+ set_cursor(term, x, y, blockable);
+}
+
+
+void
clear_terminal(struct terminal *term)
{
struct box box;
diff --git a/src/terminal/draw.h b/src/terminal/draw.h
index 6dcd31a..20fba4e 100644
--- a/src/terminal/draw.h
+++ b/src/terminal/draw.h
@@ -4,6 +4,7 @@
#include "intl/charsets.h" /* unicode_val_T */
struct color_pair;
+struct dialog_data;
struct box;
struct terminal;
@@ -280,6 +281,12 @@ void draw_text(struct terminal *term, int x, int y,
enum screen_char_attr attr,
struct color_pair *color);
+/** Draws text for dialogs. */
+void draw_text2(struct terminal *term, struct dialog_data *dlg_data, int x, int y,
+ unsigned char *text, int length,
+ enum screen_char_attr attr, struct color_pair *color);
+
+
/** Draws @a length chars from @a line on the screen. */
void draw_line(struct terminal *term, int x, int y, int length,
struct screen_char *line);
@@ -289,6 +296,9 @@ void draw_line(struct terminal *term, int x, int y, int length,
* bottom right corner of the screen. */
void set_cursor(struct terminal *term, int x, int y, int blockable);
+/* set cursor for dialogs */
+void set_cursor2(struct terminal *term, struct dialog_data *dlg_data, int x, int y, int blockable);
+
/** Blanks the screen. */
void clear_terminal(struct terminal *);
diff --git a/src/terminal/window.c b/src/terminal/window.c
index 9ac7191..934207d 100644
--- a/src/terminal/window.c
+++ b/src/terminal/window.c
@@ -7,6 +7,7 @@
#include "elinks.h"
+#include "bfu/dialog.h"
#include "bfu/menu.h"
#include "terminal/event.h"
#include "terminal/tab.h"
@@ -227,3 +228,17 @@ would_window_receive_keypresses(const struct window *win)
return 1;
}
#endif /* CONFIG_SCRIPTING_SPIDERMONKEY */
+
+void
+set_window_ptr2(struct dialog_data *dlg_data, struct window *window, int x, int y)
+{
+ struct box *box = &dlg_data->real_box;
+
+ if (box->height) {
+ int y_max = box->y + box->height;
+
+ y -= dlg_data->y;
+ if (y < box->y || y >= y_max) return;
+ }
+ set_window_ptr(window, x, y);
+}
diff --git a/src/terminal/window.h b/src/terminal/window.h
index 8bb329d..c8250ac 100644
--- a/src/terminal/window.h
+++ b/src/terminal/window.h
@@ -3,6 +3,7 @@
#include "util/lists.h"
+struct dialog_data;
struct term_event;
struct terminal;
struct window;
@@ -73,6 +74,7 @@ void add_window(struct terminal *, window_handler_T, void *);
void delete_window(struct window *);
void delete_window_ev(struct window *, struct term_event *ev);
#define set_window_ptr(window, x_, y_) do { (window)->x = (x_); (window)->y = (y_); } while (0)
+void set_window_ptr2(struct dialog_data *dlg_data, struct window *window, int x, int y);
void get_parent_ptr(struct window *, int *, int *);
void add_empty_window(struct terminal *, void (*)(void *), void *);
--
1.7.1

29
SOURCES/elinks.conf

@ -0,0 +1,29 @@ @@ -0,0 +1,29 @@
## ELinks 0.12pre3 configuration file

## This is ELinks global configuration file. You can keep global ELinks
## configuration here. Each user can also save its own ELinks configuration
## to ~/.elinks/elinks.conf. The per user configuration file can be edited
## by ELinks when you save options through UI.

## connection
# Connection options.

## connection.ssl
# SSL options.

## connection.ssl.cert_verify [0|1]
# Verify the peer's SSL certificate.
set connection.ssl.cert_verify = 1

## connection.ssl.trusted_ca_file <str>
# The location of a file containing certificates of trusted certification
# authorities in PEM format. ELinks then trusts certificates issued by
# these CAs.
#
# If you set this option to an empty string, default NSS root certificates
# are loaded.
#
# If you change this option or the file, you must restart ELinks for the
# changes to take effect. This option affects GnuTLS and nss_compat_ossl
# but not OpenSSL.
set connection.ssl.trusted_ca_file = "/etc/pki/tls/certs/ca-bundle.crt"

574
SPECS/elinks.spec

@ -0,0 +1,574 @@ @@ -0,0 +1,574 @@
%global optflags $(echo %{optflags} | sed 's/O3/O2/')
%global __global_ldflags -Wl,-z,now
%global prerel pre6

Name: elinks
Summary: A text-mode Web browser
Version: 0.12
Release: 0.37.%{prerel}%{?dist}
License: GPLv2
URL: http://elinks.or.cz
Group: Applications/Internet
Source: http://elinks.or.cz/download/elinks-%{version}%{prerel}.tar.bz2
Source2: elinks.conf

BuildRequires: automake
BuildRequires: bzip2-devel
BuildRequires: expat-devel
BuildRequires: gpm-devel
BuildRequires: js-devel
BuildRequires: krb5-devel
BuildRequires: libidn-devel
BuildRequires: nss_compat_ossl-devel
BuildRequires: pkgconfig
BuildRequires: zlib-devel
Requires(preun): %{_sbindir}/alternatives
Requires(post): coreutils
Requires(post): %{_sbindir}/alternatives
Requires(postun): coreutils
Requires(postun): %{_sbindir}/alternatives
Provides: webclient
Obsoletes: links < 1:0.97
Provides: links = 1:0.97-1
Provides: text-www-browser

Patch0: elinks-0.11.0-ssl-noegd.patch
Patch1: elinks-0.10.1-utf_8_io-default.patch
Patch3: elinks-0.11.0-getaddrinfo.patch
Patch4: elinks-0.11.0-sysname.patch
Patch5: elinks-0.10.1-xterm.patch
Patch7: elinks-0.11.3-macropen.patch
Patch8: elinks-scroll.patch
Patch9: elinks-nss.patch
Patch10: elinks-nss-inc.patch
Patch11: elinks-0.12pre5-js185.patch
Patch12: elinks-0.12pre5-ddg-search.patch
Patch13: elinks-0.12pre6-autoconf.patch

%description
Elinks is a text-based Web browser. Elinks does not display any images,
but it does support frames, tables and most other HTML tags. Elinks'
advantage over graphical browsers is its speed--Elinks starts and exits
quickly and swiftly displays Web pages.

%prep
%setup -q -n %{name}-%{version}%{prerel}

# Prevent crash when HOME is unset (bug #90663).
%patch0 -p1

# UTF-8 by default
%patch1 -p1

# Make getaddrinfo call use AI_ADDRCONFIG.
%patch3 -p1

# Don't put so much information in the user-agent header string (bug #97273).
%patch4 -p1

# Fix xterm terminal: "Linux" driver seems better than "VT100" (#128105)
%patch5 -p1

# fix for open macro in new glibc
%patch7 -p1

#upstream fix for out of screen dialogs
%patch8 -p1

# Port elinks to use NSS library for cryptography (#346861) - accepted upstream
%patch9 -p1

# Port elinks to use NSS library for cryptography (#346861) - incremental patch
%patch10 -p1

# backported upstream commits f31cf6f, 2844f8b, 218a225, and 12803e4
%patch11 -p1

# add default "ddg" dumb/smart rewrite prefixes for DuckDuckGo (#856348)
%patch12 -p1

# add missing AC_LANG_PROGRAM around the first argument of AC_COMPILE_IFELSE
%patch13 -p1

# remove bogus serial numbers
sed -i 's/^# *serial [AM0-9]*$//' acinclude.m4 config/m4/*.m4

# we need to recreate autotools files because of the NSS patch
aclocal -I config/m4
autoconf
autoheader

%build
export CFLAGS="$RPM_OPT_FLAGS $(getconf LFS_CFLAGS) -D_GNU_SOURCE"
%configure %{?rescue:--without-gpm} --without-x --with-gssapi \
--enable-bittorrent --with-nss_compat_ossl --enable-256-colors \
--without-openssl --without-gnutls

# uncomment to turn off optimizations
#sed -i 's/-O2/-O0/' Makefile.config

MOPTS="V=1"
if tty >/dev/null 2>&1; then
# turn on fancy colorized output only when we have a TTY device
MOPTS=
fi
make %{?_smp_mflags} $MOPTS

%install
make install DESTDIR=$RPM_BUILD_ROOT V=1
rm -f $RPM_BUILD_ROOT%{_datadir}/locale/locale.alias
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}
install -m 644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/elinks.conf
touch $RPM_BUILD_ROOT%{_bindir}/links
true | gzip -c > $RPM_BUILD_ROOT%{_mandir}/man1/links.1.gz
%find_lang elinks

%postun
if [ "$1" -ge "1" ]; then
links=`readlink %{_sysconfdir}/alternatives/links`
if [ "$links" == "%{_bindir}/elinks" ]; then
%{_sbindir}/alternatives --set links %{_bindir}/elinks
fi
fi
exit 0

%post
#Set up alternatives files for links
%{_sbindir}/alternatives --install %{_bindir}/links links %{_bindir}/elinks 90 \
--slave %{_mandir}/man1/links.1.gz links-man %{_mandir}/man1/elinks.1.gz
links=`readlink %{_sysconfdir}/alternatives/links`
if [ "$links" == "%{_bindir}/elinks" ]; then
%{_sbindir}/alternatives --set links %{_bindir}/elinks
fi


%preun
if [ $1 = 0 ]; then
%{_sbindir}/alternatives --remove links %{_bindir}/elinks
fi
exit 0

%files -f elinks.lang
%doc README SITES TODO COPYING
%ghost %verify(not md5 size mtime) %{_bindir}/links
%{_bindir}/elinks
%ghost %verify(not md5 size mtime) %{_mandir}/man1/links.1.gz
%config(noreplace) %{_sysconfdir}/elinks.conf
%{_mandir}/man1/elinks.1*
%{_mandir}/man5/*

%changelog
* Tue Sep 19 2017 Kamil Dudka <kdudka@redhat.com> - 0.12-0.37.pre6
- Rebuilt for js 48-bit VA support (#1439479)

* Fri Jan 24 2014 Daniel Mach <dmach@redhat.com> - 0.12-0.36.pre6
- Mass rebuild 2014-01-24

* Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 0.12-0.35.pre6
- Mass rebuild 2013-12-27

* Mon Feb 25 2013 Kamil Dudka <kdudka@redhat.com> - 0.12-0.34.pre6
- update to latest upstream pre-release
- drop unneeded patches
- fix autoconf warnings
- explicitly disable using OpenSSL and GnuTLS

* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.12-0.33.pre5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild

* Fri Jan 04 2013 Kamil Dudka <kdudka@redhat.com> - 0.12-0.32.pre5
- do not delegate GSSAPI credentials (CVE-2012-4545)

* Mon Oct 08 2012 Kamil Dudka <kdudka@redhat.com> - 0.12-0.31.pre5
- add default "ddg" dumb/smart rewrite prefixes for DuckDuckGo (#856348)

* Tue Aug 28 2012 Kamil Dudka <kdudka@redhat.com> - 0.12-0.30.pre5
- fix specfile issues reported by the fedora-review script

* Wed Jul 18 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.12-0.29.pre5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild

* Fri Mar 09 2012 Kamil Dudka <kdudka@redhat.com> - 0.12-0.28.pre5
- do not crash if add_heartbeat() returned NULL (#798103)

* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.12-0.27.pre5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild

* Fri May 06 2011 Kamil Dudka <kdudka@redhat.com> - 0.12-0.26.pre5
- improve the js-1.8.5 patch (upstream commit 218a225)

* Thu Apr 21 2011 Kamil Dudka <kdudka@redhat.com> - 0.12-0.25.pre5
- port to js-1.8.5 API (upstream commits f31cf6f and 2844f8b)

* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.12-0.24.pre5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild

* Wed Apr 07 2010 Kamil Dudka <kdudka@redhat.com> - 0.12-0.23.pre5
- do not print control characters to build logs
- avoid aclocal warnings

* Thu Jan 07 2010 Kamil Dudka <kdudka@redhat.com> - 0.12-0.22.pre5
- remove patch for configure script to find OpenSSL (we use NSS now)
- remove buildrequires for nss-devel (#550770)

* Sun Dec 27 2009 Kamil Dudka <kdudka@redhat.com> 0.12-0.21.pre5
- add buildrequires for js-devel (#550717) and zlib-devel
- build support for 256 color terminal

* Mon Dec 14 2009 Ondrej Vasik <ovasik@redhat.com> 0.12-0.20.pre5
- Add buildrequires for gpm-devel to enable gpm support(#547064)

* Fri Aug 14 2009 Orion Poplawski <orion@cora.nwra.com> 0.12-0.19.pre5
- Add Requires(post/postun): coreutils for readlink

* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.12-0.18.pre5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild

* Wed Jul 08 2009 Ondrej Vasik <ovasik@redhat.com> 0.12-0.17.pre5
- new upstream bugfix prerelease

* Mon Jun 01 2009 Ondrej Vasik <ovasik@redhat.com> 0.12-0.16.pre4
- new upstream bugfix prerelease
- defuzz patches

* Wed Apr 29 2009 Kamil Dudka <kdudka@redhat.com> 0.12-0.15.pre3
- try to load default NSS root certificates if the configuration option
connection.ssl.trusted_ca_file is set to an empty string (#497788)

* Tue Apr 28 2009 Ondrej Vasik <ovasik@redhat.com> 0.12-0.14.pre3
- enable certificate verification by default via configuration
file(#495532)

* Tue Apr 28 2009 Kamil Dudka <kdudka@redhat.com> 0.12-0.13.pre3
- use appropriate BuildRequires for nss_compat_ossl (#495532)
- support for trusted CA certificates loading from file in PEM format

* Fri Apr 03 2009 Ondrej Vasik <ovasik@redhat.com> 0.12-0.12.pre3
- use word Elinks instead of Links in package description

* Mon Mar 30 2009 Ondrej Vasik <ovasik@redhat.com> 0.12-0.11.pre3
- new upstream bugfix prerelease
- defuzz patches

* Wed Mar 25 2009 Ondrej Vasik <ovasik@redhat.com> 0.12-0.10.pre2
- use better obsoletes/provides for links, use alternatives for
links manpage and binary(#470703)

* Tue Feb 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.12-0.9.pre2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild

* Fri Jan 16 2009 Tomas Mraz <tmraz@redhat.com> 0.12-0.8.pre2
- rebuild with new openssl

* Wed Jan 14 2009 Ondrej Vasik <ovasik@redhat.com> 0.12-0.7.pre2
- versioned obsoletes and provides for links

* Wed Oct 1 2008 Kamil Dudka <kdudka@redhat.com> 0.12-0.6.pre2
- port elinks to use NSS library for cryptography (#346861)

* Mon Sep 29 2008 Ondrej Vasik <ovasik@redhat.com> 0.12-0.5.pre2
- new upstream bugfix prerelease
- Removed already applied patches for tabreload and bittorrent

* Mon Sep 1 2008 Ondrej Vasik <ovasik@redhat.com> 0.12-0.4.pre1
- upstream fix for bittorrent protocol
- upstream fix for out of screen bittorrent dialog texts

* Tue Jul 15 2008 Ondrej Vasik <ovasik@redhat.com> 0.12-0.3.pre1
- get rid off fuzz in patches

* Tue Jul 15 2008 Ondrej Vasik <ovasik@redhat.com> 0.12-0.2.pre1
- fix a crash when opening tab during page reload

* Tue Jul 1 2008 Ondrej Vasik <ovasik@redhat.com> 0.12-0.1.pre1
- unstable elinks-0.12 pre1, solves several long-term issues
unsolvable (or very hard to solve) in 0.11.4 (like #173411),
in general is elinks-0.12pre1 considered better than 0.11.4
- dropped patches negotiate-auth, chunkedgzip - included in 0.12pre1,
modified few others due source code changes

* Sat Jun 21 2008 Ondrej Vasik <ovasik@redhat.com> 0.11.4-1
- new stable upstream release

* Thu Mar 6 2008 Ondrej Vasik <ovasik@redhat.com> 0.11.4-0.4.rc1
- new upstream release candidate marked stable

* Thu Feb 21 2008 Ondrej Vasik <ovasik@redhat.com> 0.11.4-0.3.rc0
- fixed broken output for gzipped chunked pages(#410801)

* Thu Feb 07 2008 Ondrej Vasik <ovasik@redhat.com> 0.11.4-0.2.rc0
- used -D_GNU_SOURCE instead of ugly hack/patch to
have NI_MAXPATH defined

* Wed Feb 06 2008 Ondrej Vasik <ovasik@redhat.com> 0.11.4-0.1.rc0
- new version marked stable by upstream 0.11.4rc0
- enabled experimental bittorent support(#426702)

* Wed Dec 05 2007 Ondrej Vasik <ovasik@redhat.com> 0.11.3-7
- rebuilt because of new OpenSSL

* Thu Oct 11 2007 Ondrej Vasik <ovasik@redhat.com> 0.11.3-6
- generalized text-www-browser requirements(#174566)

* Tue Aug 28 2007 Ondrej Vasik <ovasik@redhat.com> 0.11.3-5
- rebuilt because of expat 2.0

* Wed Aug 22 2007 Ondrej Vasik <ovasik@redhat.com> 0.11.3-4
- rebuilt for F8
- changed license tag to GPLv2

* Thu Aug 9 2007 Ondrej Vasik <ovasik@redhat.com> 0.11.3-3
- fix of open macro(new glibc) by Joe Orton

* Fri Jul 27 2007 Ondrej Vasik <ovasik@redhat.com> 0.11.3-2
- cleanup of duplicates in buildreq, added license file to doc
- (package review by Tyler Owen(#225725))

* Tue Jun 5 2007 Ondrej Vasik <ovasik@redhat.com> 0.11.3-1
- update to new upstream version
- removed patch for #210103 , included in upstream release
- updated patch elinks-0.11.1-negotiate.patch to pass build

* Mon Mar 26 2007 Karel Zak <kzak@redhat.com> 0.11.2-1
- update to new upstream version
- cleanup spec file

* Wed Oct 11 2006 Karel Zak <kzak@redhat.com> 0.11.1-5
- fix #210103 - elinks crashes when given bad HTTP_PROXY

* Wed Jul 12 2006 Jesse Keating <jkeating@redhat.com> - 0.11.1-4.1
- rebuild

* Mon Jun 12 2006 Karel Zak <kzak@redhat.com> 0.11.1-4
- improved negotiate-auth patch (faster now)

* Fri Jun 9 2006 Karel Zak <kzak@redhat.com> 0.11.1-3
- added negotiate-auth (GSSAPI) support -- EXPERIMENTAL!

* Mon May 29 2006 Karel Zak <kzak@redhat.com> 0.11.1-2
- update to new upstream version

* Wed May 17 2006 Karsten Hopp <karsten@redhat.de> 0.11.0-3
- add buildrequires bzip2-devel, expat-devel,libidn-devel

* Fri Feb 10 2006 Jesse Keating <jkeating@redhat.com> - 0.11.0-2.2
- bump again for double-long bug on ppc(64)

* Tue Feb 07 2006 Jesse Keating <jkeating@redhat.com> - 0.11.0-2.1
- rebuilt for new gcc4.1 snapshot and glibc changes

* Tue Jan 10 2006 Karel Zak <kzak@redhat.com> 0.11.0-2
- use upstream version of srcdir.patch

* Tue Jan 10 2006 Karel Zak <kzak@redhat.com> 0.11.0-1
- update to new upstream version
- fix 0.11.0 build system (srcdir.patch)
- regenerate patches:
elinks-0.11.0-getaddrinfo.patch,
elinks-0.11.0-ssl-noegd.patch,
elinks-0.11.0-sysname.patch,
elinks-0.11.0-union.patch

* Fri Dec 09 2005 Jesse Keating <jkeating@redhat.com> 0.10.6-2.1
- rebuilt

* Wed Nov 9 2005 Karel Zak <kzak@redhat.com> 0.10.6-2
- rebuild (against new openssl)

* Thu Sep 29 2005 Karel Zak <kzak@redhat.com> 0.10.6-1
- update to new upstream version

* Tue May 17 2005 Karel Zak <kzak@redhat.com> 0.10.3-3
- fix #157300 - Strange behavior on ppc64 (patch by Miloslav Trmac)

* Tue May 10 2005 Miloslav Trmac <mitr@redhat.com> - 0.10.3-2
- Fix checking for numeric command prefix (#152953, patch by Jonas Fonseca)
- Fix invalid C causing assertion errors on ppc and ia64 (#156647)

* Mon Mar 21 2005 Karel Zak <kzak@redhat.com> 0.10.3-1
- sync with upstream; stable 0.10.3

* Sat Mar 5 2005 Karel Zak <kzak@redhat.com> 0.10.2-2
- rebuilt

* Tue Feb 8 2005 Karel Zak <kzak@redhat.com> 0.10.2-1
- sync with upstream; stable 0.10.2

* Fri Jan 28 2005 Karel Zak <kzak@redhat.com> 0.10.1-1
- sync with upstream; stable 0.10.1

* Thu Oct 14 2004 Karel Zak <kzak@redhat.com> 0.9.2-2
- the "Linux" driver seems better than "VT100" for xterm (#128105)

* Wed Oct 6 2004 Karel Zak <kzak@redhat.com> 0.9.2-1
- upload new upstream tarball with stable 0.9.2 release

* Mon Sep 20 2004 Jindrich Novy <jnovy@redhat.com> 0.9.2-0.rc7.4
- 0.9.2rc7.
- changed summary in spec to get rid of #41732, #61499

* Mon Sep 13 2004 Tim Waugh <twaugh@redhat.com> 0.9.2-0.rc4.3
- Avoid symbol clash (bug #131170).

* Fri Aug 6 2004 Tim Waugh <twaugh@redhat.com> 0.9.2-0.rc4.2
- 0.9.2rc4.

* Mon Jul 12 2004 Tim Waugh <twaugh@redhat.com> 0.9.2-0.rc2.2
- Fix elinks -dump -stdin (bug #127624).

* Thu Jul 1 2004 Tim Waugh <twaugh@redhat.com> 0.9.2-0.rc2.1
- 0.9.2rc2.

* Tue Jun 15 2004 Elliot Lee <sopwith@redhat.com>
- rebuilt

* Wed Jun 2 2004 Tim Waugh <twaugh@redhat.com> 0.9.1-3
- Build with LFS support (bug #125064).

* Fri May 28 2004 Tim Waugh <twaugh@redhat.com> 0.9.1-2
- Use UTF-8 by default (bug #76445).

* Thu Mar 11 2004 Tim Waugh <twaugh@redhat.com> 0.9.1-1
- 0.9.1.
- Use %%find_lang.

* Fri Feb 13 2004 Elliot Lee <sopwith@redhat.com>
- rebuilt

* Mon Dec 8 2003 Tim Waugh <twaugh@redhat.com> 0.4.3-1
- 0.4.3.
- Updated pkgconfig patch.

* Mon Aug 11 2003 Tim Waugh <twaugh@redhat.com> 0.4.2-7.1
- Rebuilt.

* Mon Aug 11 2003 Tim Waugh <twaugh@redhat.com> 0.4.2-7
- Don't require XFree86-libs (bug #102072).

* Tue Jul 22 2003 Nalin Dahyabhai <nalin@redhat.com> 0.4.2-6.2
- rebuild

* Thu Jun 12 2003 Tim Waugh <twaugh@redhat.com> 0.4.2-6.1
- Rebuilt.

* Thu Jun 12 2003 Tim Waugh <twaugh@redhat.com> 0.4.2-6
- Make getaddrinfo call use AI_ADDRCONFIG.
- Don't put so much information in the user-agent header string (bug #97273).

* Wed Jun 04 2003 Elliot Lee <sopwith@redhat.com>
- rebuilt

* Mon Jun 2 2003 Tim Waugh <twaugh@redhat.com> 0.4.2-4.1
- Rebuild again.

* Mon Jun 2 2003 Tim Waugh <twaugh@redhat.com> 0.4.2-4
- Rebuild.

* Mon May 12 2003 Tim Waugh <twaugh@redhat.com> 0.4.2-3
- Prevent crash when HOME is unset (bug #90663).

* Sun May 04 2003 Florian La Roche <Florian.LaRoche@redhat.de> 0.4.2-2
- use relative symlinks to elinks

* Wed Feb 5 2003 Tim Waugh <twaugh@redhat.com> 0.4.2-1
- 0.4.2 (bug #83273).

* Wed Jan 22 2003 Tim Powers <timp@redhat.com> 0.3.2-5
- rebuilt

* Thu Jan 16 2003 Tim Waugh <twaugh@redhat.com>
- Fix URL (bug #81987).

* Tue Jan 7 2003 Nalin Dahyabhai <nalin@redhat.com> 0.3.2-4
- rebuild

* Mon Dec 23 2002 Tim Waugh <twaugh@redhat.com> 0.3.2-3
- Fix bug #62368.

* Thu Dec 12 2002 Nalin Dahyabhai <nalin@redhat.com>
- use openssl's pkg-config data, if available

* Wed Nov 20 2002 Tim Powers <timp@redhat.com> 0.3.2-2
- rebuild on all arches

* Tue Aug 20 2002 Jakub Jelinek <jakub@redhat.com> 0.3.2-1
- update to 0.3.2 to fix the DNS Ctrl-C segfaults
- update URLs, the project moved
- include man page

* Fri Jun 21 2002 Tim Powers <timp@redhat.com>
- automated rebuild

* Thu May 23 2002 Tim Powers <timp@redhat.com>
- automated rebuild

* Thu Jan 24 2002 Tim Powers <timp@redhat.com>
- rebuilt against new openssl

* Wed Jan 09 2002 Tim Powers <timp@redhat.com>
- automated rebuild

* Wed Jan 2 2002 Preston Brown <pbrown@redhat.com> 0.96-4
- cookie fix

* Thu Sep 13 2001 Bernhard Rosenkraenzer <bero@redhat.com> 0.96-3
- Save some more space in rescue mode

* Wed Jul 18 2001 Bernhard Rosenkraenzer <bero@redhat.com> 0.96-2
- Add the links manual from links.sourceforge.net (RFE #49228)

* Tue Jul 3 2001 Bernhard Rosenkraenzer <bero@redhat.com> 0.96-1
- update to 0.96

* Fri Jun 22 2001 Nalin Dahyabhai <nalin@redhat.com>
- actually run make in build phase

* Tue Jun 12 2001 Nalin Dahyabhai <nalin@redhat.com>
- rebuild in new environment

* Fri Mar 2 2001 Nalin Dahyabhai <nalin@redhat.com>
- rebuild in new environment

* Tue Jan 9 2001 Bernhard Rosenkraenzer <bero@redhat.com>
- 0.95

* Mon Jan 1 2001 Bernhard Rosenkraenzer <bero@redhat.com>
- 0.94 final

* Sun Dec 24 2000 Bernhard Rosenkraenzer <bero@redhat.com>
- pre9

* Mon Dec 10 2000 Preston Brown <pbrown@redhat.com>
- Upgraded to pre8.

* Tue Dec 5 2000 Bernhard Rosenkraenzer <bero@redhat.com>
- 0.94pre7
- Minor fixes to the specfile (s/Copyright:/License:/)
- merge rescue stuff

* Fri Nov 24 2000 Bernhard Rosenkraenzer <bero@redhat.com>
- 0.94pre5

* Wed Nov 15 2000 Bernhard Rosenkraenzer <bero@redhat.com>
- 0.94pre4

* Tue Oct 24 2000 Bernhard Rosenkraenzer <bero@redhat.com>
- 0.94pre1

* Wed Aug 2 2000 Bernhard Rosenkraenzer <bero@redhat.com>
- 0.92 (needed - prior versions won't display XHTML properly)

* Thu Jul 20 2000 Nalin Dahyabhai <nalin@redhat.com>
- rebuild in new environment to work around bugs

* Wed Jul 12 2000 Prospector <bugzilla@redhat.com>
- automatic rebuild

* Thu Jun 15 2000 Bernhard Rosenkraenzer <bero@redhat.com>
- 0.84

* Sun Jun 11 2000 Preston Brown <pbrown@redhat.com>
- provides virtual package webclient.

* Thu Jan 6 2000 Bernhard Rosenkraenzer <bero@redhat.com>
- initial RPM
Loading…
Cancel
Save