add support for GNU Libidn2, patch by Robert Scheck (#1098789)
This commit is contained in:
parent
74a4802083
commit
8636c2c7aa
110
elinks-0.12pre6-libidn2.patch
Normal file
110
elinks-0.12pre6-libidn2.patch
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
From 496afe1f27481eb45ac14df0bfdb287b95eefbdd Mon Sep 17 00:00:00 2001
|
||||||
|
From: Robert Scheck <redhat-bugzilla@linuxnetz.de>
|
||||||
|
Date: Fri, 30 May 2014 15:28:54 +0200
|
||||||
|
Subject: [PATCH] Add support for GNU Libidn2
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Patch by Robert Scheck <robert@fedoraproject.org> for elinks >= 0.12 which replaces current
|
||||||
|
GNU Libidn support (IDNA 2003) by GNU Libidn2 support (IDNA 2008). This is e.g. allowing
|
||||||
|
the 'ß' character in domain names. See also the Red Hat Bugzilla #1098789 for some further
|
||||||
|
information: https://bugzilla.redhat.com/show_bug.cgi?id=1098789
|
||||||
|
|
||||||
|
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
|
||||||
|
---
|
||||||
|
Makefile.config.in | 2 +-
|
||||||
|
configure.in | 4 ++--
|
||||||
|
src/osdep/win32/win32.c | 2 +-
|
||||||
|
src/protocol/uri.c | 18 +++++++-----------
|
||||||
|
4 files changed, 11 insertions(+), 15 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/Makefile.config.in b/Makefile.config.in
|
||||||
|
index fe1a559..829d350 100644
|
||||||
|
--- a/Makefile.config.in
|
||||||
|
+++ b/Makefile.config.in
|
||||||
|
@@ -129,7 +129,7 @@ CONFIG_GOPHER = @CONFIG_GOPHER@
|
||||||
|
CONFIG_GPM = @CONFIG_GPM@
|
||||||
|
CONFIG_GZIP = @CONFIG_GZIP@
|
||||||
|
CONFIG_HTML_HIGHLIGHT = @CONFIG_HTML_HIGHLIGHT@
|
||||||
|
-CONFIG_IDN = @CONFIG_IDN@
|
||||||
|
+CONFIG_IDN2 = @CONFIG_IDN2@
|
||||||
|
CONFIG_INTERLINK = @CONFIG_INTERLINK@
|
||||||
|
CONFIG_IPV6 = @CONFIG_IPV6@
|
||||||
|
CONFIG_JW = @CONFIG_JW@
|
||||||
|
diff --git a/configure.in b/configure.in
|
||||||
|
index 3ef8603..3f74d9c 100644
|
||||||
|
--- a/configure.in
|
||||||
|
+++ b/configure.in
|
||||||
|
@@ -472,8 +472,8 @@ EL_CONFIG_OPTIONAL_LIBRARY(CONFIG_GZIP, zlib, zlib.h, z, gzclearerr,
|
||||||
|
EL_CONFIG_OPTIONAL_LIBRARY(CONFIG_BZIP2, bzlib, bzlib.h, bz2, BZ2_bzReadOpen,
|
||||||
|
[ --without-bzlib disable bzlib support])
|
||||||
|
|
||||||
|
-EL_CONFIG_OPTIONAL_LIBRARY(CONFIG_IDN, idn, idna.h, idn, stringprep_check_version,
|
||||||
|
- [ --without-idn disable international domain names support])
|
||||||
|
+EL_CONFIG_OPTIONAL_LIBRARY(CONFIG_IDN2, idn2, idn2.h, idn2, idn2_lookup_ul,
|
||||||
|
+ [ --without-idn2 disable international domain names support])
|
||||||
|
|
||||||
|
if test "x${with_gc}" != xno; then
|
||||||
|
EL_CONFIG_OPTIONAL_LIBRARY(CONFIG_GC, gc, gc.h, gc, GC_init,
|
||||||
|
diff --git a/src/osdep/win32/win32.c b/src/osdep/win32/win32.c
|
||||||
|
index 66b2128..e870a6e 100644
|
||||||
|
--- a/src/osdep/win32/win32.c
|
||||||
|
+++ b/src/osdep/win32/win32.c
|
||||||
|
@@ -48,7 +48,7 @@ init_osdep(void)
|
||||||
|
#ifdef HAVE_LOCALE_H
|
||||||
|
setlocale(LC_ALL, "");
|
||||||
|
#endif
|
||||||
|
-#ifdef CONFIG_IDN
|
||||||
|
+#ifdef CONFIG_IDN2
|
||||||
|
{
|
||||||
|
char buf[60];
|
||||||
|
UINT cp = GetACP();
|
||||||
|
diff --git a/src/protocol/uri.c b/src/protocol/uri.c
|
||||||
|
index 5e23ea2..8987567 100644
|
||||||
|
--- a/src/protocol/uri.c
|
||||||
|
+++ b/src/protocol/uri.c
|
||||||
|
@@ -6,8 +6,8 @@
|
||||||
|
|
||||||
|
#include <ctype.h>
|
||||||
|
#include <errno.h>
|
||||||
|
-#ifdef HAVE_IDNA_H
|
||||||
|
-#include <idna.h>
|
||||||
|
+#ifdef HAVE_IDN2_H
|
||||||
|
+#include <idn2.h>
|
||||||
|
#endif
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
@@ -531,24 +531,20 @@ add_uri_to_string(struct string *string, const struct uri *uri,
|
||||||
|
* --pasky */
|
||||||
|
if (uri->ipv6 && wants(URI_PORT)) add_char_to_string(string, '[');
|
||||||
|
#endif
|
||||||
|
-#ifdef CONFIG_IDN
|
||||||
|
+#ifdef CONFIG_IDN2
|
||||||
|
/* Support for the GNU International Domain Name library.
|
||||||
|
*
|
||||||
|
- * http://www.gnu.org/software/libidn/manual/html_node/IDNA-Functions.html
|
||||||
|
- *
|
||||||
|
- * Now it is probably not perfect because idna_to_ascii_lz()
|
||||||
|
- * will be using a ``zero terminated input string encoded in
|
||||||
|
- * the current locale's character set''. Anyway I don't know
|
||||||
|
- * how to convert anything to UTF-8 or Unicode. --jonas */
|
||||||
|
+ * http://www.gnu.org/software/libidn/libidn2/manual/libidn2.html
|
||||||
|
+ */
|
||||||
|
if (wants(URI_IDN)) {
|
||||||
|
unsigned char *host = memacpy(uri->host, uri->hostlen);
|
||||||
|
|
||||||
|
if (host) {
|
||||||
|
char *idname;
|
||||||
|
- int code = idna_to_ascii_lz(host, &idname, 0);
|
||||||
|
+ int code = idn2_lookup_ul(host, &idname, 0);
|
||||||
|
|
||||||
|
/* FIXME: Return NULL if it coughed? --jonas */
|
||||||
|
- if (code == IDNA_SUCCESS) {
|
||||||
|
+ if (code == IDN2_OK) {
|
||||||
|
add_to_string(string, idname);
|
||||||
|
free(idname);
|
||||||
|
add_host = 0;
|
||||||
|
--
|
||||||
|
1.9.3
|
||||||
|
|
11
elinks.spec
11
elinks.spec
@ -3,7 +3,7 @@
|
|||||||
Name: elinks
|
Name: elinks
|
||||||
Summary: A text-mode Web browser
|
Summary: A text-mode Web browser
|
||||||
Version: 0.12
|
Version: 0.12
|
||||||
Release: 0.39.%{prerel}%{?dist}
|
Release: 0.40.%{prerel}%{?dist}
|
||||||
License: GPLv2
|
License: GPLv2
|
||||||
URL: http://elinks.or.cz
|
URL: http://elinks.or.cz
|
||||||
Group: Applications/Internet
|
Group: Applications/Internet
|
||||||
@ -16,7 +16,7 @@ BuildRequires: expat-devel
|
|||||||
BuildRequires: gpm-devel
|
BuildRequires: gpm-devel
|
||||||
BuildRequires: js-devel
|
BuildRequires: js-devel
|
||||||
BuildRequires: krb5-devel
|
BuildRequires: krb5-devel
|
||||||
BuildRequires: libidn-devel
|
BuildRequires: libidn2-devel
|
||||||
BuildRequires: lua-devel
|
BuildRequires: lua-devel
|
||||||
BuildRequires: nss_compat_ossl-devel
|
BuildRequires: nss_compat_ossl-devel
|
||||||
BuildRequires: pkgconfig
|
BuildRequires: pkgconfig
|
||||||
@ -45,6 +45,7 @@ Patch13: elinks-0.12pre6-autoconf.patch
|
|||||||
Patch14: elinks-0.12pre6-ssl-hostname.patch
|
Patch14: elinks-0.12pre6-ssl-hostname.patch
|
||||||
Patch15: elinks-0.12pre6-list_is_singleton.patch
|
Patch15: elinks-0.12pre6-list_is_singleton.patch
|
||||||
Patch16: elinks-0.12pre6-lua51.patch
|
Patch16: elinks-0.12pre6-lua51.patch
|
||||||
|
Patch17: elinks-0.12pre6-libidn2.patch
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Elinks is a text-based Web browser. Elinks does not display any images,
|
Elinks is a text-based Web browser. Elinks does not display any images,
|
||||||
@ -100,6 +101,9 @@ quickly and swiftly displays Web pages.
|
|||||||
# use later versions of lua since lua50 is not available (#1098392)
|
# use later versions of lua since lua50 is not available (#1098392)
|
||||||
%patch16 -p1
|
%patch16 -p1
|
||||||
|
|
||||||
|
# add support for GNU Libidn2, patch by Robert Scheck (#1098789)
|
||||||
|
%patch17 -p1
|
||||||
|
|
||||||
# remove bogus serial numbers
|
# remove bogus serial numbers
|
||||||
sed -i 's/^# *serial [AM0-9]*$//' acinclude.m4 config/m4/*.m4
|
sed -i 's/^# *serial [AM0-9]*$//' acinclude.m4 config/m4/*.m4
|
||||||
|
|
||||||
@ -168,6 +172,9 @@ exit 0
|
|||||||
%{_mandir}/man5/*
|
%{_mandir}/man5/*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri May 30 2014 Kamil Dudka <kdudka@redhat.com> - 0.12-0.40.pre6
|
||||||
|
- add support for GNU Libidn2, patch by Robert Scheck (#1098789)
|
||||||
|
|
||||||
* Wed May 21 2014 Kamil Dudka <kdudka@redhat.com> - 0.12-0.39.pre6
|
* Wed May 21 2014 Kamil Dudka <kdudka@redhat.com> - 0.12-0.39.pre6
|
||||||
- use later versions of lua since lua50 is not available (#1098392)
|
- use later versions of lua since lua50 is not available (#1098392)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user