public inbox for development@lists.ipfire.org
 help / color / mirror / Atom feed
From: Michael Tremer <michael.tremer@ipfire.org>
To: development@lists.ipfire.org
Subject: Re: [PATCH] elinks: Update to version 0.15.1
Date: Sun, 27 Nov 2022 11:56:21 +0000	[thread overview]
Message-ID: <ECCCCD7B-D403-4F08-B52D-B7EACEB3D0B7@ipfire.org> (raw)
In-Reply-To: <20221125173730.3342457-1-adolf.belka@ipfire.org>

[-- Attachment #1: Type: text/plain, Size: 17030 bytes --]

Reviewed-by: Michael Tremer <michael.tremer(a)ipfire.org>

> On 25 Nov 2022, at 17:37, Adolf Belka <adolf.belka(a)ipfire.org> wrote:
> 
> - Update from version 0.12pre6 (2012) to 0.15.1 (July 2022)
> - Update of rootfile
> - Original elinks was last updated in 2012. In Jan 2020 a fork was made of the package
>   and has been maintained since then on an ongoing basis. This new fork is used by Arch
>   Linux
> - elinks has not been an addon since CU141 but the lfs file was still in the addon format
>   This has been adjusted to make it in line with a core program
> - The previous patches related to ssl have been removed as the fixes are now part of the
>   source tarball.
> - Changelog
>    ELinks 0.15.1 Released on 2022-07-31
> * about:config
> * option --always-load-config #137
> * compilation fixes on Windows #140
> * added ui.background_char #142
> * sample build scripts and docker files
> * experimental DGI support
> * DOS port based on links code
> * configurable Accept-Header #143
> * minor compilation fixes
>    ELinks 0.15.0 Released on 2021-12-24
> * Serbian translation update
>    ELinks 0.15.0rc2 Released on 2021-12-19
> * Serbian translation update
> * HOME_ETC
>    ELinks 0.15.0rc1 Released on 2021-12-04
> * removed -Wno-pointer-sign from CFLAGS
> * close stdin before calling a background program (sgerwk)
>  and options related to it #108, #109, #110, #113
> * gemini protocol and text/gemini mime type
> * changed rendering of blockquote element
> * avoid tmpfile in lua (sgerwk) #115, #118
> * console.log in js (mtatton) #93
> * localstorage (mtatton) #98
> * options document.browse.search.beginning_only
>  document.browse.search.ignore_history
>  ui.double_esc
> * ui.temperature.* to show temperature of CPU
> * document.plain.fixup_tables
> * enhanced ecmascript code. Added QuickJS
> * Notes on ECMAScript:
>  requires C++ compiler, sqlite3, libxml++5 >= 5.0.1.GIT
>  and either mozjs78-dev or QuickJS-2021-03-27
>  Most sites don't work, some crash. Some workarounds were implemented:
>  a) ECMAScript is disabled by default
>  b) ~/.elinks/allow.txt and ~/.elinks/disallow.txt with url prefixes
>  c) Added toggle-ecmascript action. You can bind it to some key
> * other small fixes
>    ELinks 0.14.3 Released on 2021-09-26
> * Fix issue with negative value of cells #126
>    ELinks 0.14.2 Released on 2021-08-29
> * crash in nttp #114
> * XSS in gopher #125
>    ELinks 0.14.1 Released on 2021-05-30
> * Disable spidermonkey by default #85
> * Show error message about libgcrypt-config. #86
> * off by two. #88
> * Check NULL. #99
> * fix error message when no previous search was performed #100
> * alert when moving to the next match of a failed search #101
> * include unistd.h and errno.h to define safe_read() #107
>    ELinks 0.14.0 Released on 2020-12-27
> No changes since 0.14.0rc2.
>    ELinks 0.14.0rc2 Released on 2020-12-13
> * ~/.elinks/allow.txt - list of allowed url prefixes for js
>    ELinks 0.14.0rc1 Released on 2020-12-06
> * dblatex for pdf. PR #64
> * fixes CTRL-Z. #65
> * changes in mime handlers. PR #66
> * fixes in data protocol. #67, #68, #71, #72, #73
> * allow to wrap text in PRE. #69
> * pass #fragment to external command. #75
> * introduced "document.browse.search.reset". #76
> * added meson as alternative build system
> * in #77 I'm going to attach static binaries for released versions
> * mozjs dependency updated to 52.*
> Note that, to compile with javascript support you must compile by g++ with -fpermissive option.
> There is a lot of warnings. Unfortunately JS often crashes. Without help from someone familiar
> with SpiderMonkey, we won't go far.
> As you might notice, I renamed repo to elinks.
> Thanks to all involved in this release.
>    ELinks 0.13.5 Released on 2020-08-30
> * added clipboard selection using keyboard. #59
> * fixed drawing menus over emoji characters. #60
> * encoding to utf-8 and decoding back in python's pre_format_html_hook
> This is likely the last release of 0.13.x series.
>    ELinks 0.13.4: Released on 2020-07-31.
> * fixed segfault with gnutls. introduced in 0.13.3
> * updated smart and dumb prefixes to https. Thanks Guido Cella. PR #54
> * added the st terminal to config options. PR #55
> * doc updates PR #57
> * also pass the uri as %u to external handler. Thanks sgerwk. PR #58
> * added the ui.clipboard_file config option
>    ELinks 0.13.3: Released on 2020-06-29.
> * configure option --with-luapkg=name
>  You can choose lua version at compilation time. For example: --with-luapkg=luajit
> * config option connection.ssl.https_by_default (Thanks Guido Cella)
>  not enabled by default
> * docs updates (Guido Cella)
> * fixes related to ui.mouse_disable and xterm-like terminals (Thanks sgerwk)
> * show an alert when the search string is not found (sgerwk)
>    ELinks 0.13.2: Released on 2020-05-31.
> * command line option -remote search(...) (thanks sgerwk)
> * command line option -bind-address
> * config option ui.mouse_disable (sgerwk)
> * config option ui.tostop
> * config option ui.sessions.fork_on_start
> * compatibility (compilability) with lua-5.2 and 5.3
> * modified cookies code (not well tested)
>    ELinks 0.13.1: Released on 2020-01-31.
> * Fixed issue with uploading files to local cgi.
> * Python scripts in contrib converted to python3.
>    ELinks 0.13.0: Released on 2019-12-27.
> Incompatibilities:
> * The protocol.fsp.sort option has been removed.  ELinks always sorts.
> * bug 1024: Verify the host name or IP address in the server certificate
>  if connection.ssl.cert_verify is not 0.
> Miscellaneous:
> * The configure script is no longer part of tarball, you must generate it.
>  For example running ./autogen.sh
> * major bug 181: Slave ELinks processes can now run an external editor.
>  This used to work in the master process only.
> * major bug 722: Filter CSS according to media types.  New option
>  document.css.media.
> * bug 638: Propagate the existence of $DISPLAY from slave terminals to
>  mailcap test commands.
> * bugs 762, 1082: Small memory leak in goto_current_link/goto_imgmap
> * bug 963: New option document.css.ignore_display_none.
> * bug 977: Fixed crash when opening in new tab a non link with onclick
>  attribute.
> * bug 1008: File upload fields in HTML forms now stream the files to
>  the server, instead of reading them to memory in advance.  This lets
>  you upload larger files.  The downsides are that ELinks may use a
>  cached response even if you have modified a file between requests,
>  and that ELinks can send inconsistent data if you modify a file
>  while it is being uploaded.
> * bug 1054: Don't abort downloads when closing the terminal from which
>  they were started.  When such a download ends, display the message
>  in the most recently used terminal.  If the user chooses
>  ``Background and Notify'' via the download manager in some terminal,
>  reassociate the download with that terminal.  These changes do not
>  apply to downloads to external handlers.
> * Really retry forever when connection.retries = 0.
> * enhancement: Session-specific options.  Any options changed with
>  toggle-* actions no longer affect other tabs or other terminals.
> * Do not crash when document.browse.minimum_refresh_time = 0 and
>  a document has a meta refresh with a delay of 0.
> * Properly update link highlighting and status bar information when the
>  repeat prefix is changed.
> * Handle SSL rehandshakes
> * Fix compatibility with Ruby >= 1.9
> * enhancement 15: Domain-specific options.  Use set_domain in
>  elinks.conf to e.g. disable cookies for google.com.  The option
>  manager window does not yet support this.
> * enhancement 867: Use bracketed paste mode on xterm.  This requires
>  xterm patch #228 or later configured with --enable-readline-mouse.
> * enhancement 824: Experimental support for combining characters.
>  See features.conf for details.
> * enhancement: Add a new entry Link Info under Link main menu.
> * enhancement: Indicate backgrounded downloads using an unused led.
> * enhancement: Display the number of ECMAScript interpreters that have
>  been allocated for documents in the Resources dialog.
> * Fedora enhancement 346861: Add support for nss_compat_ossl library
>  (OpenSSL replacement).
> * enhancement: ``elinks --dump'' uses box-drawing characters if supported
>  by the charset.
> * enhancement 1070: Support 256 colors on fbterm-1.4.
> * enhancement 1075: Scrolling the entire contents of dialog boxes.
>  Especially useful for multi-file BitTorrent downloads.
> * Report if the Lua function edit_bookmark_dialog receives the wrong
>  number or types of arguments instead of silently failing.
> * enhancement: Add ``Invalidate'' button to the cache manager.
> * enhancement: Add ``Search contents'' button to the cache manager with
>  which one can search through the cache items' data rather than their
>  metadata.
> * enhancement: Add rudimentary support for the HTML5 media elements,
>  <video> and <audio>.
> * enhancement: Add move-half-page-up and move-half-page-down actions.
> * enhancement: Add option to change overlap for vertical scrolling.
> * enhancement: HTML meta refresh allows semicolons in URLs, and the
>  syntax is more like in Firefox.
> * link against lua51 not lua50
> * SpiderMonkey must be mozjs-17.0. This version is latest with C API.
>  Find it with pkg-config.
> * using iconv for some multibyte charsets. It works if the terminal codepage
>  is UTF-8. More charsets will be added on demand.
> * enhancement: support SSL client certificate
> * python scripting is Python3 only
> * brotli and zstd encodings
> * possibility to make use of libevent instead of select for event loop
> * terminfo queries for output (not input) as compilation option
> 
> Signed-off-by: Adolf Belka <adolf.belka(a)ipfire.org>
> ---
> config/rootfiles/common/elinks              |  3 +
> lfs/elinks                                  | 19 ++----
> src/patches/elinks-0.11.0-ssl-noegd.patch   | 21 ------
> src/patches/elinks-0.12pre6-openssl11.patch | 73 ---------------------
> 4 files changed, 7 insertions(+), 109 deletions(-)
> delete mode 100644 src/patches/elinks-0.11.0-ssl-noegd.patch
> delete mode 100644 src/patches/elinks-0.12pre6-openssl11.patch
> 
> diff --git a/config/rootfiles/common/elinks b/config/rootfiles/common/elinks
> index a29fe8e33..be30d1cde 100644
> --- a/config/rootfiles/common/elinks
> +++ b/config/rootfiles/common/elinks
> @@ -59,6 +59,9 @@ usr/local/share/locale/de/LC_MESSAGES/elinks.mo
> #usr/local/share/locale/it
> #usr/local/share/locale/it/LC_MESSAGES
> #usr/local/share/locale/it/LC_MESSAGES/elinks.mo
> +#usr/local/share/locale/ja
> +#usr/local/share/locale/ja/LC_MESSAGES
> +#usr/local/share/locale/ja/LC_MESSAGES/elinks.mo
> #usr/local/share/locale/locale.alias
> #usr/local/share/locale/lt
> #usr/local/share/locale/lt/LC_MESSAGES
> diff --git a/lfs/elinks b/lfs/elinks
> index 24ade5625..d2867c1c6 100644
> --- a/lfs/elinks
> +++ b/lfs/elinks
> @@ -26,19 +26,13 @@ include Config
> 
> SUMMARY    = An advanced and well-established feature-rich text mode web browser
> 
> -VER        = 0.12pre6
> +VER        = 0.15.1
> 
> THISAPP    = elinks-$(VER)
> -DL_FILE    = $(THISAPP).tar.bz2
> +DL_FILE    = $(THISAPP).tar.xz
> DL_FROM    = $(URL_IPFIRE)
> DIR_APP    = $(DIR_SRC)/$(THISAPP)
> TARGET     = $(DIR_INFO)/$(THISAPP)
> -PROG       = elinks
> -PAK_VER    = 2
> -
> -DEPS       =
> -
> -SERVICES   =
> 
> ###############################################################################
> # Top-level Rules
> @@ -48,7 +42,7 @@ objects = $(DL_FILE)
> 
> $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
> 
> -$(DL_FILE)_BLAKE2 = 3d91c2a4b03cf77a2a86131cfb5339a40c6e89c8aaab7293d5b7f6861f0b7647b1951f2bc15814e342c926a154707162a7814981cdc729329dfb04627133f3bf
> +$(DL_FILE)_BLAKE2 = dcec7054d417842e709f26bab53ddb1bf43556de4c69d116ad1e049664bc7c5a5513f02cee500d591252b439a66f354079e2e3eff5692202102cb900e06340c2
> 
> install : $(TARGET)
> 
> @@ -71,18 +65,13 @@ $(patsubst %,$(DIR_DL)/%,$(objects)) :
> $(subst %,%_BLAKE2,$(objects)) :
> @$(B2SUM)
> 
> -dist:
> - @$(PAK)
> -
> ###############################################################################
> # Installation Details
> ###############################################################################
> 
> $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
> @$(PREBUILD)
> - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
> - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/elinks-0.12pre6-openssl11.patch
> - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/elinks-0.11.0-ssl-noegd.patch
> + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
> $(UPDATE_AUTOMAKE)
> cd $(DIR_APP) && ./configure
> cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
> diff --git a/src/patches/elinks-0.11.0-ssl-noegd.patch b/src/patches/elinks-0.11.0-ssl-noegd.patch
> deleted file mode 100644
> index 581873461..000000000
> --- a/src/patches/elinks-0.11.0-ssl-noegd.patch
> +++ /dev/null
> @@ -1,21 +0,0 @@
> ---- 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);
> diff --git a/src/patches/elinks-0.12pre6-openssl11.patch b/src/patches/elinks-0.12pre6-openssl11.patch
> deleted file mode 100644
> index 210af635e..000000000
> --- a/src/patches/elinks-0.12pre6-openssl11.patch
> +++ /dev/null
> @@ -1,73 +0,0 @@
> -From d83c0edf4c6ae42359ff856d7a879ecba5769595 Mon Sep 17 00:00:00 2001
> -From: Kamil Dudka <kdudka(a)redhat.com>
> -Date: Fri, 17 Feb 2017 16:51:41 +0100
> -Subject: [PATCH 1/2] fix compatibility with OpenSSL 1.1
> -
> ----
> - src/network/ssl/socket.c | 4 ++--
> - 1 file changed, 2 insertions(+), 2 deletions(-)
> -
> -diff --git a/src/network/ssl/socket.c b/src/network/ssl/socket.c
> -index c9e2be4..467fc48 100644
> ---- a/src/network/ssl/socket.c
> -+++ b/src/network/ssl/socket.c
> -@@ -83,7 +83,7 @@ static void
> - ssl_set_no_tls(struct socket *socket)
> - {
> - #ifdef CONFIG_OPENSSL
> -- ((ssl_t *) socket->ssl)->options |= SSL_OP_NO_TLSv1;
> -+ SSL_set_options((ssl_t *) socket->ssl, SSL_OP_NO_TLSv1);
> - #elif defined(CONFIG_GNUTLS)
> - {
> - /* GnuTLS does not support SSLv2 because it is "insecure".
> -@@ -419,7 +419,7 @@ ssl_connect(struct socket *socket)
> - }
> - 
> - if (client_cert) {
> -- SSL_CTX *ctx = ((SSL *) socket->ssl)->ctx;
> -+ SSL_CTX *ctx = SSL_get_SSL_CTX((SSL *) socket->ssl);
> - 
> - SSL_CTX_use_certificate_chain_file(ctx, client_cert);
> - SSL_CTX_use_PrivateKey_file(ctx, client_cert,
> --- 
> -2.7.4
> -
> -
> -From ec952cc5b79973bee73fcfc813159d40c22b7228 Mon Sep 17 00:00:00 2001
> -From: Tomas Mraz <tmraz(a)fedoraproject.org>
> -Date: Fri, 17 Feb 2017 16:44:11 +0100
> -Subject: [PATCH 2/2] drop disablement of TLS1.0 on second attempt to connect
> -
> -It would not work correctly anyway and the code does not build
> -with OpenSSL-1.1.0.
> ----
> - src/network/ssl/socket.c | 6 ++++++
> - 1 file changed, 6 insertions(+)
> -
> -diff --git a/src/network/ssl/socket.c b/src/network/ssl/socket.c
> -index 467fc48..b981c1e 100644
> ---- a/src/network/ssl/socket.c
> -+++ b/src/network/ssl/socket.c
> -@@ -82,6 +82,11 @@
> - static void
> - ssl_set_no_tls(struct socket *socket)
> - {
> -+#if 0
> -+/* This implements the insecure renegotiation, which should not be used.
> -+ * The code also would not work on current Fedora (>= Fedora 23) anyway,
> -+ * because it would just switch off TLS 1.0 keeping TLS 1.1 and 1.2 enabled.
> -+ */
> - #ifdef CONFIG_OPENSSL
> - SSL_set_options((ssl_t *) socket->ssl, SSL_OP_NO_TLSv1);
> - #elif defined(CONFIG_GNUTLS)
> -@@ -96,6 +101,7 @@ ssl_set_no_tls(struct socket *socket)
> - gnutls_protocol_set_priority(*(ssl_t *) socket->ssl, protocol_priority);
> - }
> - #endif
> -+#endif
> - }
> - 
> - #ifdef USE_OPENSSL
> --- 
> -2.7.4
> -
> -- 
> 2.38.1
> 


      reply	other threads:[~2022-11-27 11:56 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-25 17:37 Adolf Belka
2022-11-27 11:56 ` Michael Tremer [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ECCCCD7B-D403-4F08-B52D-B7EACEB3D0B7@ipfire.org \
    --to=michael.tremer@ipfire.org \
    --cc=development@lists.ipfire.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox