Compare commits
No commits in common. "c8" and "c9" have entirely different histories.
143
SOURCES/lynx-2.8.9-fix-page-download.patch
Normal file
143
SOURCES/lynx-2.8.9-fix-page-download.patch
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
From 6c764e123c86ccce03d4ffaee11085b9badd6765 Mon Sep 17 00:00:00 2001
|
||||||
|
From: "Thomas E. Dickey" <dickey@invisible-island.net>
|
||||||
|
Date: Thu, 29 Jul 2021 21:15:21 +0000
|
||||||
|
Subject: [PATCH] snapshot of project "lynx", label v2-9-0dev_7b
|
||||||
|
|
||||||
|
Upstream-commit: 6c764e123c86ccce03d4ffaee11085b9badd6765
|
||||||
|
Cherry-picked-by: Lukáš Zaoral <lzaoral@redhat.com>
|
||||||
|
|
||||||
|
---
|
||||||
|
src/LYDownload.c | 6 +++---
|
||||||
|
src/LYLocal.c | 2 +-
|
||||||
|
src/LYMainLoop.c | 2 +-
|
||||||
|
src/LYPrint.c | 16 ++++++++--------
|
||||||
|
src/LYUpload.c | 8 ++++----
|
||||||
|
5 files changed, 17 insertions(+), 17 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/LYDownload.c b/src/LYDownload.c
|
||||||
|
index fcaba027..afd6638e 100644
|
||||||
|
--- a/src/LYDownload.c
|
||||||
|
+++ b/src/LYDownload.c
|
||||||
|
@ -63,7 +63,7 @@ void LYDownload(char *line)
|
||||||
|
/*
|
||||||
|
* Parse out the File, sug_file, and the Method.
|
||||||
|
*/
|
||||||
|
- if ((file = strstr(Line, "/File=")) == NULL)
|
||||||
|
+ if ((file = LYstrstr(Line, "/File=")) == NULL)
|
||||||
|
goto failed;
|
||||||
|
*file = '\0';
|
||||||
|
/*
|
||||||
|
@@ -71,7 +71,7 @@ void LYDownload(char *line)
|
||||||
|
*/
|
||||||
|
file += 6;
|
||||||
|
|
||||||
|
- if ((sug_file = strstr(file + 1, "/SugFile=")) != NULL) {
|
||||||
|
+ if ((sug_file = LYstrstr(file + 1, "/SugFile=")) != NULL) {
|
||||||
|
*sug_file = '\0';
|
||||||
|
/*
|
||||||
|
* Go past "SugFile=".
|
||||||
|
@@ -113,7 +113,7 @@ void LYDownload(char *line)
|
||||||
|
#endif /* _WINDOWS */
|
||||||
|
#endif /* DIRED_SUPPORT */
|
||||||
|
|
||||||
|
- if ((method = strstr(Line, "Method=")) == NULL)
|
||||||
|
+ if ((method = LYstrstr(Line, "Method=")) == NULL)
|
||||||
|
goto failed;
|
||||||
|
/*
|
||||||
|
* Go past "Method=".
|
||||||
|
diff --git a/src/LYLocal.c b/src/LYLocal.c
|
||||||
|
index 2e14a526..bb9ba29f 100644
|
||||||
|
--- a/src/LYLocal.c
|
||||||
|
+++ b/src/LYLocal.c
|
||||||
|
@@ -1700,7 +1700,7 @@ static char *match_op(const char *prefix,
|
||||||
|
size_t len = strlen(prefix);
|
||||||
|
|
||||||
|
if (!StrNCmp("LYNXDIRED://", data, 12)
|
||||||
|
- && !StrNCmp(prefix, data + 12, len)) {
|
||||||
|
+ && !strncasecomp(prefix, data + 12, len)) {
|
||||||
|
len += 12;
|
||||||
|
#if defined(USE_DOS_DRIVES)
|
||||||
|
if (data[len] == '/') { /* this is normal */
|
||||||
|
diff --git a/src/LYMainLoop.c b/src/LYMainLoop.c
|
||||||
|
index 6f96d63c..7a3df1c4 100644
|
||||||
|
--- a/src/LYMainLoop.c
|
||||||
|
+++ b/src/LYMainLoop.c
|
||||||
|
@@ -2207,7 +2207,7 @@ static int handle_LYK_DOWNLOAD(int *cmd,
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if (lynx_edit_mode && !no_dired_support &&
|
||||||
|
- !strstr(links[curdoc.link].lname, "/SugFile=")) {
|
||||||
|
+ !LYstrstr(links[curdoc.link].lname, "/SugFile=")) {
|
||||||
|
/*
|
||||||
|
* Don't bother making a /tmp copy of the local file.
|
||||||
|
*/
|
||||||
|
diff --git a/src/LYPrint.c b/src/LYPrint.c
|
||||||
|
index 6ac1f4b2..58b81a6f 100644
|
||||||
|
--- a/src/LYPrint.c
|
||||||
|
+++ b/src/LYPrint.c
|
||||||
|
@@ -1111,7 +1111,7 @@ int printfile(DocInfo *newdoc)
|
||||||
|
/*
|
||||||
|
* Get the number of lines in the file.
|
||||||
|
*/
|
||||||
|
- if ((cp = strstr(link_info, "lines=")) != NULL) {
|
||||||
|
+ if ((cp = LYstrstr(link_info, "lines=")) != NULL) {
|
||||||
|
/*
|
||||||
|
* Terminate prev string here.
|
||||||
|
*/
|
||||||
|
@@ -1127,24 +1127,24 @@ int printfile(DocInfo *newdoc)
|
||||||
|
/*
|
||||||
|
* Determine the type.
|
||||||
|
*/
|
||||||
|
- if (strstr(link_info, "LOCAL_FILE")) {
|
||||||
|
+ if (LYstrstr(link_info, "LOCAL_FILE")) {
|
||||||
|
type = TO_FILE;
|
||||||
|
- } else if (strstr(link_info, "TO_SCREEN")) {
|
||||||
|
+ } else if (LYstrstr(link_info, "TO_SCREEN")) {
|
||||||
|
type = TO_SCREEN;
|
||||||
|
- } else if (strstr(link_info, "LPANSI")) {
|
||||||
|
+ } else if (LYstrstr(link_info, "LPANSI")) {
|
||||||
|
Lpansi = TRUE;
|
||||||
|
type = TO_SCREEN;
|
||||||
|
- } else if (strstr(link_info, "MAIL_FILE")) {
|
||||||
|
+ } else if (LYstrstr(link_info, "MAIL_FILE")) {
|
||||||
|
type = MAIL;
|
||||||
|
- } else if (strstr(link_info, "PRINTER")) {
|
||||||
|
+ } else if (LYstrstr(link_info, "PRINTER")) {
|
||||||
|
type = PRINTER;
|
||||||
|
|
||||||
|
- if ((cp = strstr(link_info, "number=")) != NULL) {
|
||||||
|
+ if ((cp = LYstrstr(link_info, "number=")) != NULL) {
|
||||||
|
/* number of characters in "number=" */
|
||||||
|
cp += 7;
|
||||||
|
printer_number = atoi(cp);
|
||||||
|
}
|
||||||
|
- if ((cp = strstr(link_info, "pagelen=")) != NULL) {
|
||||||
|
+ if ((cp = LYstrstr(link_info, "pagelen=")) != NULL) {
|
||||||
|
/* number of characters in "pagelen=" */
|
||||||
|
cp += 8;
|
||||||
|
pagelen = atoi(cp);
|
||||||
|
diff --git a/src/LYUpload.c b/src/LYUpload.c
|
||||||
|
index 20cfd5a3..a83a1037 100644
|
||||||
|
--- a/src/LYUpload.c
|
||||||
|
+++ b/src/LYUpload.c
|
||||||
|
@@ -53,16 +53,16 @@ int LYUpload(char *line)
|
||||||
|
/*
|
||||||
|
* Use configured upload commands.
|
||||||
|
*/
|
||||||
|
- if ((directory = strstr(line, "TO=")) == NULL)
|
||||||
|
+ if ((directory = LYstrstr(line, "TO=")) == NULL)
|
||||||
|
goto failed;
|
||||||
|
*(directory - 1) = '\0';
|
||||||
|
- /* go past "Directory=" */
|
||||||
|
+ /* go past "TO=" */
|
||||||
|
directory += 3;
|
||||||
|
|
||||||
|
- if ((method = strstr(line, "UPLOAD=")) == NULL)
|
||||||
|
+ if ((method = LYstrstr(line, "UPLOAD=")) == NULL)
|
||||||
|
goto failed;
|
||||||
|
/*
|
||||||
|
- * Go past "Method=".
|
||||||
|
+ * Go past "UPLOAD=".
|
||||||
|
*/
|
||||||
|
method += 7;
|
||||||
|
method_number = atoi(method);
|
327
SOURCES/lynx-2.8.9-idn2-backport.patch
Normal file
327
SOURCES/lynx-2.8.9-idn2-backport.patch
Normal file
@ -0,0 +1,327 @@
|
|||||||
|
From 3af65474cbec9485534ad00d604c442e42095ee5 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kamil Dudka <kdudka@redhat.com>
|
||||||
|
Date: Mon, 21 Mar 2022 15:57:49 +0100
|
||||||
|
Subject: [PATCH] backport IDN2 support from lynx2.9.0dev.10
|
||||||
|
|
||||||
|
---
|
||||||
|
WWW/Library/Implementation/HTParse.c | 49 +++++++++++++++++++++++++---
|
||||||
|
WWW/Library/Implementation/HTParse.h | 12 +++++++
|
||||||
|
aclocal.m4 | 31 ++++++++++++++----
|
||||||
|
config.hin | 1 +
|
||||||
|
src/LYMain.c | 3 ++
|
||||||
|
src/LYOptions.c | 33 +++++++++++++++++++
|
||||||
|
src/LYrcFile.c | 14 ++++++++
|
||||||
|
src/LYrcFile.h | 1 +
|
||||||
|
8 files changed, 132 insertions(+), 12 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/WWW/Library/Implementation/HTParse.c b/WWW/Library/Implementation/HTParse.c
|
||||||
|
index c5d947f..f1f8208 100644
|
||||||
|
--- a/WWW/Library/Implementation/HTParse.c
|
||||||
|
+++ b/WWW/Library/Implementation/HTParse.c
|
||||||
|
@@ -22,9 +22,14 @@
|
||||||
|
#endif /* __MINGW32__ */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-#ifdef USE_IDNA
|
||||||
|
+#ifdef USE_IDN2
|
||||||
|
+#include <idn2.h>
|
||||||
|
+#define FreeIdna(out) idn2_free(out)
|
||||||
|
+#elif defined(USE_IDNA)
|
||||||
|
#include <idna.h>
|
||||||
|
#include <idn-free.h>
|
||||||
|
+#define FreeIdna(out) idn_free(out)
|
||||||
|
+#define IDN2_OK IDNA_SUCCESS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define HEX_ESCAPE '%'
|
||||||
|
@@ -242,7 +247,7 @@ char *HTParsePort(char *host, int *portp)
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
-#ifdef USE_IDNA
|
||||||
|
+#if defined(USE_IDNA) || defined(USE_IDN2)
|
||||||
|
static int hex_decode(int ch)
|
||||||
|
{
|
||||||
|
int result = -1;
|
||||||
|
@@ -299,8 +304,42 @@ static void convert_to_idna(char *host)
|
||||||
|
}
|
||||||
|
if (code) {
|
||||||
|
*dst = '\0';
|
||||||
|
+#ifdef USE_IDN2
|
||||||
|
+#if (!defined(IDN2_VERSION_NUMBER) || IDN2_VERSION_NUMBER < 0x02000003)
|
||||||
|
+ /*
|
||||||
|
+ * Older libidn2 mishandles STD3, stripping underscores.
|
||||||
|
+ */
|
||||||
|
+ if (strchr(buffer, '_') != NULL) {
|
||||||
|
+ code = -1;
|
||||||
|
+ } else
|
||||||
|
+#endif
|
||||||
|
+ switch (LYidnaMode) {
|
||||||
|
+ case LYidna2003:
|
||||||
|
+ code = idn2_to_ascii_8z(buffer, &output, IDN2_TRANSITIONAL);
|
||||||
|
+ break;
|
||||||
|
+ case LYidna2008:
|
||||||
|
+ /* IDNA2008 rules without the TR46 amendments */
|
||||||
|
+ code = idn2_to_ascii_8z(buffer, &output, 0);
|
||||||
|
+ break;
|
||||||
|
+ case LYidnaTR46:
|
||||||
|
+ code = idn2_to_ascii_8z(buffer, &output, IDN2_NONTRANSITIONAL
|
||||||
|
+ | IDN2_NFC_INPUT);
|
||||||
|
+ break;
|
||||||
|
+ case LYidnaCompat:
|
||||||
|
+ /* IDNA2008 */
|
||||||
|
+ code = idn2_to_ascii_8z(buffer, &output, IDN2_NONTRANSITIONAL
|
||||||
|
+ | IDN2_NFC_INPUT);
|
||||||
|
+ if (code == IDN2_DISALLOWED) {
|
||||||
|
+ /* IDNA2003 - compatible */
|
||||||
|
+ code = idn2_to_ascii_8z(buffer, &output, IDN2_TRANSITIONAL);
|
||||||
|
+ }
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+#else
|
||||||
|
code = idna_to_ascii_8z(buffer, &output, IDNA_USE_STD3_ASCII_RULES);
|
||||||
|
- if (code == IDNA_SUCCESS) {
|
||||||
|
+#endif
|
||||||
|
+ if (code == IDN2_OK) {
|
||||||
|
+ CTRACE((tfp, "convert_to_idna: `%s' -> `%s': OK\n", buffer, output));
|
||||||
|
strcpy(host, output);
|
||||||
|
strcat(host, params);
|
||||||
|
} else {
|
||||||
|
@@ -309,7 +348,7 @@ static void convert_to_idna(char *host)
|
||||||
|
idna_strerror((Idna_rc) code)));
|
||||||
|
}
|
||||||
|
if (output)
|
||||||
|
- idn_free(output);
|
||||||
|
+ FreeIdna(output);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
free(buffer);
|
||||||
|
@@ -539,7 +578,7 @@ char *HTParse(const char *aName,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
-#ifdef USE_IDNA
|
||||||
|
+#if defined(USE_IDNA) || defined(USE_IDN2)
|
||||||
|
/*
|
||||||
|
* Depending on locale-support, we could have a literal UTF-8
|
||||||
|
* string as a host name, or a URL-encoded form of that.
|
||||||
|
diff --git a/WWW/Library/Implementation/HTParse.h b/WWW/Library/Implementation/HTParse.h
|
||||||
|
index ce1bff6..5496d82 100644
|
||||||
|
--- a/WWW/Library/Implementation/HTParse.h
|
||||||
|
+++ b/WWW/Library/Implementation/HTParse.h
|
||||||
|
@@ -49,6 +49,18 @@ extern "C" {
|
||||||
|
#define URL_XALPHAS UCH(1)
|
||||||
|
#define URL_XPALPHAS UCH(2)
|
||||||
|
#define URL_PATH UCH(4)
|
||||||
|
+
|
||||||
|
+#ifdef USE_IDN2
|
||||||
|
+ typedef enum {
|
||||||
|
+ LYidna2003 = 1,
|
||||||
|
+ LYidna2008,
|
||||||
|
+ LYidnaTR46,
|
||||||
|
+ LYidnaCompat
|
||||||
|
+ } HTIdnaModes;
|
||||||
|
+
|
||||||
|
+ extern int LYidnaMode;
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
/* Strip white space off a string. HTStrip()
|
||||||
|
* -------------------------------
|
||||||
|
*
|
||||||
|
diff --git a/aclocal.m4 b/aclocal.m4
|
||||||
|
index 41139f9..4c68aec 100644
|
||||||
|
--- a/aclocal.m4
|
||||||
|
+++ b/aclocal.m4
|
||||||
|
@@ -3341,11 +3341,12 @@ test -d "$oldincludedir" && {
|
||||||
|
$1="[$]$1 $cf_header_path_list"
|
||||||
|
])dnl
|
||||||
|
dnl ---------------------------------------------------------------------------
|
||||||
|
-dnl CF_HELP_MESSAGE version: 3 updated: 1998/01/14 10:56:23
|
||||||
|
+dnl CF_HELP_MESSAGE version: 4 updated: 2019/12/31 08:53:54
|
||||||
|
dnl ---------------
|
||||||
|
dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
|
||||||
|
AC_DEFUN([CF_HELP_MESSAGE],
|
||||||
|
-[AC_DIVERT_HELP([$1])dnl
|
||||||
|
+[CF_ACVERSION_CHECK(2.53,[],[
|
||||||
|
+AC_DIVERT_HELP($1)])dnl
|
||||||
|
])dnl
|
||||||
|
dnl ---------------------------------------------------------------------------
|
||||||
|
dnl CF_INET_ADDR version: 7 updated: 2013/10/08 17:47:05
|
||||||
|
@@ -6600,25 +6601,41 @@ if test "$with_dmalloc" = yes ; then
|
||||||
|
fi
|
||||||
|
])dnl
|
||||||
|
dnl ---------------------------------------------------------------------------
|
||||||
|
-dnl CF_WITH_IDNA version: 10 updated: 2015/04/15 19:08:48
|
||||||
|
+dnl CF_WITH_IDNA version: 11 updated: 2021/07/05 09:09:42
|
||||||
|
dnl ------------
|
||||||
|
-dnl Check for libidn, use it if found.
|
||||||
|
+dnl Check for libidn2, use it if found. Otherwise, check for libidn, use that.
|
||||||
|
dnl
|
||||||
|
dnl $1 = optional path for headers/library
|
||||||
|
AC_DEFUN([CF_WITH_IDNA],[
|
||||||
|
- CF_ADD_OPTIONAL_PATH($1)
|
||||||
|
+CF_ADD_OPTIONAL_PATH($1)
|
||||||
|
|
||||||
|
- CF_FIND_LINKAGE([
|
||||||
|
+CF_FIND_LINKAGE([
|
||||||
|
+#include <stdio.h>
|
||||||
|
+#include <idn2.h>
|
||||||
|
+],[
|
||||||
|
+ char *output = 0;
|
||||||
|
+ int code = idn2_to_ascii_8z("name", &output, IDN2_USE_STD3_ASCII_RULES);
|
||||||
|
+ (void) code;
|
||||||
|
+],idn2,,[CF_VERBOSE([unsuccessful, will try idn (older)])],,[$LIBICONV])
|
||||||
|
+
|
||||||
|
+if test "x$cf_cv_find_linkage_idn2" = xyes ; then
|
||||||
|
+ CF_VERBOSE(found idn2 library)
|
||||||
|
+ AC_DEFINE(USE_IDN2,1,[Define to 1 if we should use IDN2 library])
|
||||||
|
+else
|
||||||
|
+ CF_FIND_LINKAGE([
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <idna.h>
|
||||||
|
],[
|
||||||
|
char *output = 0;
|
||||||
|
- int code = idna_to_ascii_8z("name", &output, IDNA_USE_STD3_ASCII_RULES);
|
||||||
|
+ int code = idna_to_ascii_8z("name", &output, IDNA_USE_STD3_ASCII_RULES);
|
||||||
|
+ (void) code;
|
||||||
|
],idn,,,,[$LIBICONV])
|
||||||
|
|
||||||
|
if test "x$cf_cv_find_linkage_idn" = xyes ; then
|
||||||
|
+ CF_VERBOSE(found idn library)
|
||||||
|
AC_DEFINE(USE_IDNA,1,[Define to 1 if we should use IDNA library])
|
||||||
|
fi
|
||||||
|
+fi
|
||||||
|
])dnl
|
||||||
|
dnl ---------------------------------------------------------------------------
|
||||||
|
dnl CF_WITH_PATH version: 11 updated: 2012/09/29 15:04:19
|
||||||
|
diff --git a/config.hin b/config.hin
|
||||||
|
index fb0e4d3..58051bb 100644
|
||||||
|
--- a/config.hin
|
||||||
|
+++ b/config.hin
|
||||||
|
@@ -271,6 +271,7 @@
|
||||||
|
#undef USE_FILE_UPLOAD /* CF_ARG_DISABLE(file-upload) */
|
||||||
|
#undef USE_GNUTLS_FUNCS /* CF_GNUTLS */
|
||||||
|
#undef USE_GNUTLS_INCL /* CF_GNUTLS */
|
||||||
|
+#undef USE_IDN2 /* CF_ARG_DISABLE(idna) */
|
||||||
|
#undef USE_IDNA /* CF_ARG_DISABLE(idna) */
|
||||||
|
#undef USE_JUSTIFY_ELTS /* CF_ARG_DISABLE(justify-elts) */
|
||||||
|
#undef USE_LOCALE_CHARSET /* CF_ARG_DISABLE(locale-charset) */
|
||||||
|
diff --git a/src/LYMain.c b/src/LYMain.c
|
||||||
|
index d36707e..ecfbe69 100644
|
||||||
|
--- a/src/LYMain.c
|
||||||
|
+++ b/src/LYMain.c
|
||||||
|
@@ -178,6 +178,9 @@ lynx_list_item_type *externals = NULL;
|
||||||
|
|
||||||
|
/* linked list of external options */
|
||||||
|
#endif
|
||||||
|
+#ifdef USE_IDN2
|
||||||
|
+int LYidnaMode = LYidnaTR46;
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
lynx_list_item_type *uploaders = NULL;
|
||||||
|
int LYShowColor = SHOW_COLOR_UNKNOWN; /* to show or not */
|
||||||
|
diff --git a/src/LYOptions.c b/src/LYOptions.c
|
||||||
|
index 6b4b0e0..e0e4732 100644
|
||||||
|
--- a/src/LYOptions.c
|
||||||
|
+++ b/src/LYOptions.c
|
||||||
|
@@ -2356,6 +2356,18 @@ static const char *assume_char_set_string = RC_ASSUME_CHARSET;
|
||||||
|
static const char *display_char_set_string = RC_CHARACTER_SET;
|
||||||
|
static const char *raw_mode_string = RC_RAW_MODE;
|
||||||
|
|
||||||
|
+#ifdef USE_IDN2
|
||||||
|
+static const char *idna_mode_string = RC_IDNA_MODE;
|
||||||
|
+static OptValues idna_values[] =
|
||||||
|
+{
|
||||||
|
+ {LYidna2003, N_("IDNA 2003"), "idna2003"},
|
||||||
|
+ {LYidna2008, N_("IDNA 2008"), "idna2008"},
|
||||||
|
+ {LYidnaTR46, N_("IDNA TR46"), "idnaTR46"},
|
||||||
|
+ {LYidnaCompat, N_("IDNA Compatible"), "idnaCompat"},
|
||||||
|
+ END_OPTIONS
|
||||||
|
+};
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
#ifdef USE_LOCALE_CHARSET
|
||||||
|
static const char *locale_charset_string = RC_LOCALE_CHARSET;
|
||||||
|
#endif
|
||||||
|
@@ -3233,6 +3245,13 @@ int postoptions(DocInfo *newdoc)
|
||||||
|
current_char_set = newval;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+#ifdef USE_IDN2
|
||||||
|
+ /* Internationalized Domain Names: SELECT */
|
||||||
|
+ if (!strcmp(data[i].tag, idna_mode_string)
|
||||||
|
+ && GetOptValues(idna_values, data[i].value, &code)) {
|
||||||
|
+ LYidnaMode = code;
|
||||||
|
+ }
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
/* Raw Mode: ON/OFF */
|
||||||
|
if (!strcmp(data[i].tag, raw_mode_string)
|
||||||
|
@@ -3933,6 +3952,20 @@ static int gen_options(char **newfile)
|
||||||
|
EndSelect(fp0);
|
||||||
|
}
|
||||||
|
|
||||||
|
+#ifdef USE_IDN2
|
||||||
|
+ /* Internationalized Domain Names: SELECT */
|
||||||
|
+ {
|
||||||
|
+ PutLabel(fp0, gettext("Internationalized domain names"), idna_mode_string);
|
||||||
|
+ BeginSelect(fp0, idna_mode_string);
|
||||||
|
+ for (i = 0; idna_values[i].value != 0; i++) {
|
||||||
|
+ PutOption(fp0, idna_values[i].value == LYidnaMode,
|
||||||
|
+ idna_values[i].HtmlName,
|
||||||
|
+ idna_values[i].LongName);
|
||||||
|
+ }
|
||||||
|
+ EndSelect(fp0);
|
||||||
|
+ }
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
/* Raw Mode: ON/OFF */
|
||||||
|
if (LYHaveCJKCharacterSet) {
|
||||||
|
/*
|
||||||
|
diff --git a/src/LYrcFile.c b/src/LYrcFile.c
|
||||||
|
index 1754f12..b98bfc2 100644
|
||||||
|
--- a/src/LYrcFile.c
|
||||||
|
+++ b/src/LYrcFile.c
|
||||||
|
@@ -71,6 +71,16 @@ static Config_Enum tbl_file_sort[] = {
|
||||||
|
{ NULL, -1 },
|
||||||
|
};
|
||||||
|
|
||||||
|
+#ifdef USE_IDN2
|
||||||
|
+static Config_Enum tbl_idna_mode[] = {
|
||||||
|
+ { "IDNA2003", LYidna2003 },
|
||||||
|
+ { "IDNA2008", LYidna2008 },
|
||||||
|
+ { "TR46", LYidnaTR46 },
|
||||||
|
+ { "Compatible", LYidnaCompat },
|
||||||
|
+ { NULL, -1 },
|
||||||
|
+};
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
Config_Enum tbl_keypad_mode[] = {
|
||||||
|
{ "FIELDS_ARE_NUMBERED", FIELDS_ARE_NUMBERED },
|
||||||
|
{ "LINKS_AND_FIELDS_ARE_NUMBERED", LINKS_AND_FIELDS_ARE_NUMBERED },
|
||||||
|
@@ -462,6 +472,10 @@ file lists such as FTP directories. The options are:\n\
|
||||||
|
MAYBE_SET(RC_HTML5_CHARSETS, html5_charsets, MSG_ENABLE_LYNXRC),
|
||||||
|
MAYBE_FUN(RC_HTTP_PROTOCOL, get_http_protocol, put_http_protocol,
|
||||||
|
MSG_ENABLE_LYNXRC),
|
||||||
|
+#ifdef USE_IDN2
|
||||||
|
+ MAYBE_ENU(RC_IDNA_MODE, LYidnaMode, tbl_idna_mode,
|
||||||
|
+ MSG_ENABLE_LYNXRC),
|
||||||
|
+#endif
|
||||||
|
#ifdef EXP_KEYBOARD_LAYOUT
|
||||||
|
PARSE_ARY(RC_KBLAYOUT, current_layout, LYKbLayoutNames, NULL),
|
||||||
|
#endif
|
||||||
|
diff --git a/src/LYrcFile.h b/src/LYrcFile.h
|
||||||
|
index 3cf07c0..cd41a0f 100644
|
||||||
|
--- a/src/LYrcFile.h
|
||||||
|
+++ b/src/LYrcFile.h
|
||||||
|
@@ -110,6 +110,7 @@
|
||||||
|
#define RC_HTTPS_PROXY "https_proxy"
|
||||||
|
#define RC_HTTP_PROTOCOL "http_protocol"
|
||||||
|
#define RC_HTTP_PROXY "http_proxy"
|
||||||
|
+#define RC_IDNA_MODE "idna_mode"
|
||||||
|
#define RC_INCLUDE "include"
|
||||||
|
#define RC_INFLATE_PATH "inflate_path"
|
||||||
|
#define RC_INFOSECS "infosecs"
|
||||||
|
--
|
||||||
|
2.34.1
|
||||||
|
|
@ -3,9 +3,8 @@
|
|||||||
Summary: A text-based Web browser
|
Summary: A text-based Web browser
|
||||||
Name: lynx
|
Name: lynx
|
||||||
Version: 2.8.9
|
Version: 2.8.9
|
||||||
Release: 4%{?dist}
|
Release: 20%{?dist}
|
||||||
License: GPLv2
|
License: GPLv2
|
||||||
Group: Applications/Internet
|
|
||||||
Source: https://invisible-mirror.net/archives/lynx/tarballs/lynx%{version}rel.%{devrel}.tar.bz2
|
Source: https://invisible-mirror.net/archives/lynx/tarballs/lynx%{version}rel.%{devrel}.tar.bz2
|
||||||
URL: http://lynx.browser.org/
|
URL: http://lynx.browser.org/
|
||||||
|
|
||||||
@ -24,27 +23,36 @@ Patch2: lynx-CVE-2008-4690.patch
|
|||||||
# avoid build failure caused by mistakenly excluded <locale.h>
|
# avoid build failure caused by mistakenly excluded <locale.h>
|
||||||
Patch3: lynx-2.8.8-locale.patch
|
Patch3: lynx-2.8.8-locale.patch
|
||||||
|
|
||||||
# fix bugs detected by static analysis (#1602612)
|
# fix bugs detected by static analysis
|
||||||
Patch4: lynx-2.8.9-static-analysis.patch
|
Patch4: lynx-2.8.9-static-analysis.patch
|
||||||
|
|
||||||
# fix disclosure of HTTP auth credentials via SNI data (CVE-2021-38165)
|
# fix disclosure of HTTP auth credentials via SNI data (CVE-2021-38165)
|
||||||
Patch5: lynx-2.8.9-CVE-2021-38165.patch
|
Patch5: lynx-2.8.9-CVE-2021-38165.patch
|
||||||
|
|
||||||
|
# backport IDN2 support from upstream (#2040124)
|
||||||
|
Patch6: lynx-2.8.9-idn2-backport.patch
|
||||||
|
|
||||||
|
# backport fix for page downloading from upstream (RHEL-16809)
|
||||||
|
# upstream commit: https://github.com/ThomasDickey/lynx-snapshots/commit/6c764e123c86ccce03d4ffaee11085b9badd6765
|
||||||
|
Patch7: lynx-2.8.9-fix-page-download.patch
|
||||||
|
|
||||||
Provides: webclient
|
Provides: webclient
|
||||||
Provides: text-www-browser
|
Provides: text-www-browser
|
||||||
|
BuildRequires: autoconf
|
||||||
BuildRequires: dos2unix
|
BuildRequires: dos2unix
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
BuildRequires: gettext
|
BuildRequires: gettext
|
||||||
BuildRequires: openssl-devel
|
BuildRequires: libidn2-devel
|
||||||
|
BuildRequires: make
|
||||||
BuildRequires: ncurses-devel
|
BuildRequires: ncurses-devel
|
||||||
BuildRequires: slang-devel
|
BuildRequires: openssl-devel
|
||||||
BuildRequires: telnet
|
BuildRequires: telnet
|
||||||
BuildRequires: unzip
|
BuildRequires: unzip
|
||||||
BuildRequires: zip
|
BuildRequires: zip
|
||||||
BuildRequires: zlib-devel
|
BuildRequires: zlib-devel
|
||||||
|
|
||||||
# provides /usr/share/doc/HTML/en-US/index.html used as STARTFILE on RHEL
|
# provides /usr/share/doc/HTML/en-US/index.html used as STARTFILE on RHEL
|
||||||
%if 0%{?rhel}
|
%if 0%{?rhel} && !0%{?eln}
|
||||||
Requires: redhat-indexhtml
|
Requires: redhat-indexhtml
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
@ -63,10 +71,14 @@ exits quickly and swiftly displays web pages.
|
|||||||
%patch3 -p1
|
%patch3 -p1
|
||||||
%patch4 -p1
|
%patch4 -p1
|
||||||
%patch5 -p1
|
%patch5 -p1
|
||||||
|
%patch6 -p1
|
||||||
|
%patch7 -p1
|
||||||
|
|
||||||
|
autoconf
|
||||||
|
|
||||||
%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}}
|
%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}}
|
||||||
sed -e "s,^HELPFILE:.*,HELPFILE:file://localhost%{_pkgdocdir}/lynx_help/lynx_help_main.html,g" -i lynx.cfg
|
sed -e "s,^HELPFILE:.*,HELPFILE:file://localhost%{_pkgdocdir}/lynx_help/lynx_help_main.html,g" -i lynx.cfg
|
||||||
%if 0%{?rhel}
|
%if 0%{?rhel} && !0%{?eln}
|
||||||
sed -e 's,^STARTFILE:.*,STARTFILE:file:/usr/share/doc/HTML/en-US/index.html,' -i lynx.cfg
|
sed -e 's,^STARTFILE:.*,STARTFILE:file:/usr/share/doc/HTML/en-US/index.html,' -i lynx.cfg
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
@ -130,6 +142,7 @@ EOF
|
|||||||
%find_lang %{name}
|
%find_lang %{name}
|
||||||
|
|
||||||
%files -f %{name}.lang
|
%files -f %{name}.lang
|
||||||
|
%license COPYING
|
||||||
%doc docs README INSTALLATION samples
|
%doc docs README INSTALLATION samples
|
||||||
%doc test lynx.hlp lynx_help
|
%doc test lynx.hlp lynx_help
|
||||||
%{_bindir}/lynx
|
%{_bindir}/lynx
|
||||||
@ -139,11 +152,55 @@ EOF
|
|||||||
%config(noreplace,missingok) %{_sysconfdir}/lynx-site.cfg
|
%config(noreplace,missingok) %{_sysconfdir}/lynx-site.cfg
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Tue Aug 31 2021 Kamil Dudka <kdudka@redhat.com> - 2.8.9-4
|
* Tue Nov 21 2023 Lukáš Zaoral <lzaoral@redhat.com> - 2.8.9-20
|
||||||
|
- fix page downloading (RHEL-16809)
|
||||||
|
|
||||||
|
* Mon Mar 21 2022 Kamil Dudka <kdudka@redhat.com> - 2.8.9-19
|
||||||
|
- backport IDN2 support from upstream (#2040124)
|
||||||
|
|
||||||
|
* Tue Aug 31 2021 Kamil Dudka <kdudka@redhat.com> - 2.8.9-18
|
||||||
- fix disclosure of HTTP auth credentials via SNI data (CVE-2021-38165)
|
- fix disclosure of HTTP auth credentials via SNI data (CVE-2021-38165)
|
||||||
|
|
||||||
* Thu Nov 08 2018 Kamil Dudka <kdudka@redhat.com> - 2.8.9-2
|
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 2.8.9-14.1
|
||||||
- fix bugs detected by static analysis (#1602612)
|
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
|
||||||
|
Related: rhbz#1991688
|
||||||
|
|
||||||
|
* Wed Jun 16 2021 Mohan Boddu <mboddu@redhat.com> - 2.8.9-13.1
|
||||||
|
- Rebuilt for RHEL 9 BETA for openssl 3.0
|
||||||
|
Related: rhbz#1971065
|
||||||
|
|
||||||
|
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 2.8.9-12.1
|
||||||
|
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
|
||||||
|
|
||||||
|
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.8.9-11
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Dec 30 2020 Kamil Dudka <kdudka@redhat.com> - 2.8.9-10
|
||||||
|
- remove unused build-time dependency on slang-devel (#1910966)
|
||||||
|
|
||||||
|
* Thu Aug 06 2020 Merlin Mathesius <mmathesi@redhat.com> - 2.8.9-9
|
||||||
|
- Skip RHEL-specific Requires and STARTFILE edit when building for ELN
|
||||||
|
|
||||||
|
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.8.9-8
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.8.9-7
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.8.9-6
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Mar 11 2019 Kamil Dudka <kdudka@redhat.com> - 2.8.9-5
|
||||||
|
- include license file in the package (#1686886)
|
||||||
|
|
||||||
|
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.8.9-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Nov 08 2018 Kamil Dudka <kdudka@redhat.com> - 2.8.9-3
|
||||||
|
- fix bugs detected by static analysis
|
||||||
|
|
||||||
|
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.8.9-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||||
|
|
||||||
* Tue Jul 10 2018 Kamil Dudka <kdudka@redhat.com> - 2.8.9-1
|
* Tue Jul 10 2018 Kamil Dudka <kdudka@redhat.com> - 2.8.9-1
|
||||||
- update to the latest upstream release
|
- update to the latest upstream release
|
||||||
|
Loading…
Reference in New Issue
Block a user