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