commit:     7b483874275eb0078fbfe08e5f18e4e5f14f3ede
Author:     Felix Janda <felix.janda <AT> posteo <DOT> de>
AuthorDate: Sun Oct 20 23:45:32 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Oct 26 01:14:48 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7b483874

www-client/elinks: add 0.17.1.1

Closes: https://bugs.gentoo.org/904322
Closes: https://bugs.gentoo.org/906895
Signed-off-by: Felix Janda <felix.janda <AT> posteo.de>
Closes: https://github.com/gentoo/gentoo/pull/38529
Signed-off-by: Sam James <sam <AT> gentoo.org>

 profiles/arch/alpha/package.use.mask               |   4 +
 profiles/arch/hppa/package.use.mask                |   4 +
 profiles/arch/mips/package.use.mask                |   4 +
 profiles/arch/sparc/package.use.mask               |   4 +
 www-client/elinks/Manifest                         |   1 +
 .../{elinks-9999.ebuild => elinks-0.17.1.1.ebuild} |  26 +++-
 www-client/elinks/elinks-9999.ebuild               |  21 ++-
 .../elinks/files/elinks-0.17.1.1-gettext.patch     |  73 ++++++++++
 www-client/elinks/files/elinks-0.17.1.1-sftp.patch | 154 +++++++++++++++++++++
 www-client/elinks/metadata.xml                     |   2 +
 10 files changed, 279 insertions(+), 14 deletions(-)

diff --git a/profiles/arch/alpha/package.use.mask 
b/profiles/arch/alpha/package.use.mask
index 908096404964..457e62f105c4 100644
--- a/profiles/arch/alpha/package.use.mask
+++ b/profiles/arch/alpha/package.use.mask
@@ -1,6 +1,10 @@
 # Copyright 1999-2024 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
+# Felix Janda <[email protected]> (2024-10-20)
+# requires dev-libs/libcss and net-libs/libdom to be keyworded
+www-client/elinks libcss
+
 # David Roman <[email protected]> (2024-10-04)
 # dev-libs/libunibreak is not keyworded
 media-libs/libass libunibreak

diff --git a/profiles/arch/hppa/package.use.mask 
b/profiles/arch/hppa/package.use.mask
index 5c47f81935ea..8893cf67d4fb 100644
--- a/profiles/arch/hppa/package.use.mask
+++ b/profiles/arch/hppa/package.use.mask
@@ -4,6 +4,10 @@
 # NOTE: When masking a USE flag due to missing keywords, please file a keyword
 # request bug for the hppa arch.
 
+# Felix Janda <[email protected]> (2024-10-20)
+# requires dev-libs/libcss and net-libs/libdom to be keyworded
+www-client/elinks libcss
+
 # Yongxiang Liang <[email protected]> (2024-10-10)
 # app-i18n/fcitx:5 is not yet keyworded
 media-libs/libsdl2 fcitx

diff --git a/profiles/arch/mips/package.use.mask 
b/profiles/arch/mips/package.use.mask
index fd0f941043bc..9de29291b047 100644
--- a/profiles/arch/mips/package.use.mask
+++ b/profiles/arch/mips/package.use.mask
@@ -1,6 +1,10 @@
 # Copyright 1999-2024 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
+# Felix Janda <[email protected]> (2024-10-20)
+# requires dev-libs/libcss and net-libs/libdom to be keyworded
+www-client/elinks libcss
+
 # David Roman <[email protected]> (2024-10-04)
 # dev-libs/libunibreak is not keyworded
 media-libs/libass libunibreak

diff --git a/profiles/arch/sparc/package.use.mask 
b/profiles/arch/sparc/package.use.mask
index 4290a51c2eb1..c2ef9274a822 100644
--- a/profiles/arch/sparc/package.use.mask
+++ b/profiles/arch/sparc/package.use.mask
@@ -1,6 +1,10 @@
 # Copyright 1999-2024 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
+# Felix Janda <[email protected]> (2024-10-20)
+# requires dev-libs/libcss and net-libs/libdom to be keyworded
+www-client/elinks libcss
+
 # Sam James <[email protected]> (2024-10-12)
 # Exposes a kernel bug which causes system lockup (bug #899540)
 sys-libs/liburing test

diff --git a/www-client/elinks/Manifest b/www-client/elinks/Manifest
index 2ce6f1c7bd14..5d822b1d34f3 100644
--- a/www-client/elinks/Manifest
+++ b/www-client/elinks/Manifest
@@ -1 +1,2 @@
 DIST elinks-0.16.1.1.tar.xz 2037292 BLAKE2B 
05578eaa7a88f0abe4472b876a1f72645d32119ce807a61962f8d24a5b444240d3b94189bf25142c0e51e2d404d5992ace07ecc23ef1316d5f3942736b265267
 SHA512 
49e03ff4766e29b6fd4324d226e415ca1329a84d4a44fac40ecd72186dd104de88c3e541810a008dc6f1d1ed889a45edbef159cbc6ac3860756ca21261ffec8a
+DIST elinks-0.17.1.1.tar.xz 2001036 BLAKE2B 
2158e7630e64977b5250d544159bff0b90953ef7d51870d5e96ce8e36858596e6341bf774ad1717ed4808859d4be316fe75587552e61a8bbfcb00a0366a85e81
 SHA512 
7ad78f7d6a43341ae252c29f0c338e466cbedf8b40aefa9fa1939dbc62a9c9307b0a423b17181fce3bce1364fe6b6bdb80509ed90719965de174c9258b90902f

diff --git a/www-client/elinks/elinks-9999.ebuild 
b/www-client/elinks/elinks-0.17.1.1.ebuild
similarity index 87%
copy from www-client/elinks/elinks-9999.ebuild
copy to www-client/elinks/elinks-0.17.1.1.ebuild
index d29570aecef2..ba0f3ed2a59c 100644
--- a/www-client/elinks/elinks-9999.ebuild
+++ b/www-client/elinks/elinks-0.17.1.1.ebuild
@@ -5,7 +5,7 @@ EAPI=8
 
 GUILE_REQ_USE="deprecated"
 GUILE_COMPAT=( 2-2 3-0 )
-PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_COMPAT=( python3_{10..13} )
 LUA_COMPAT=( lua5-{1,2,3,4} luajit )
 
 inherit flag-o-matic guile-single meson lua-single python-single-r1
@@ -24,8 +24,8 @@ fi
 
 LICENSE="GPL-2"
 SLOT="0"
-IUSE="bittorrent brotli bzip2 debug finger ftp gopher gpm gnutls guile idn"
-IUSE+=" javascript lua lzma +mouse nls nntp perl python samba ssl test tre 
unicode X xml zlib zstd"
+IUSE="bittorrent brotli bzip2 debug finger ftp gemini gopher gpm gnutls guile 
idn"
+IUSE+=" javascript libcss lua lzma +mouse nls nntp perl python samba ssl test 
tre unicode X xml zlib zstd"
 RESTRICT="!test? ( test )"
 REQUIRED_USE="
        guile? ( ${GUILE_REQUIRED_USE} )
@@ -46,6 +46,10 @@ RDEPEND="
                dev-cpp/libxmlpp:5.0
                dev-lang/mujs:=
        )
+       libcss? (
+               >=dev-libs/libcss-0.9.2
+               >=net-libs/libdom-0.4.2
+       )
        lua? ( ${LUA_DEPS} )
        lzma? ( app-arch/xz-utils )
        perl? ( dev-lang/perl:= )
@@ -70,10 +74,15 @@ BDEPEND="
        virtual/pkgconfig
        nls? ( sys-devel/gettext )
        test? (
-               net-dns/libidn2
+               net-dns/libidn
        )
 "
 
+PATCHES=(
+       "${FILESDIR}"/${P}-gettext.patch
+       "${FILESDIR}"/${P}-sftp.patch
+)
+
 pkg_setup() {
        use guile && guile-single_pkg_setup
        use lua && lua-single_pkg_setup
@@ -111,7 +120,7 @@ src_configure() {
                $(meson_use finger)
                $(meson_use ftp)
                -Dfsp=false
-               -Dgemini=false
+               $(meson_use gemini)
                $(meson_use nls gettext)
                $(meson_use gopher)
                $(meson_use gpm)
@@ -122,12 +131,12 @@ src_configure() {
                $(meson_use javascript mujs)
                -Dipv6=true
                -Dleds=true
+               $(meson_use libcss)
                -Dlibev=false
                -Dlibevent=false
                -Dluapkg=$(usex lua ${ELUA:-0} '')
                $(meson_use lzma)
                $(meson_use mouse)
-               #-Dmujs=false
                $(meson_use nls)
                $(meson_use nntp)
                $(meson_use perl)
@@ -167,7 +176,7 @@ src_install() {
        newins contrib/keybind-full.conf keybind-full.sample
        newins contrib/keybind.conf keybind.conf.sample
 
-       dodoc AUTHORS BUGS ChangeLog INSTALL NEWS README SITES THANKS TODO 
doc/*.*
+       dodoc AUTHORS BUGS ChangeLog INSTALL NEWS README.md SITES THANKS TODO 
doc/*.*
        docinto contrib ; dodoc contrib/{README,colws.diff,elinks[-.]vim*}
        docinto contrib/lua ; dodoc contrib/lua/{*.lua,elinks-remote}
        docinto contrib/conv ; dodoc contrib/conv/*.*
@@ -181,6 +190,9 @@ src_install() {
 }
 
 pkg_postinst() {
+       elog "If upgrading from a version prior to 0.17.0, you will need to 
move"
+       elog "your configuration from ~/.elinks to \${XDG_CONFIG_HOME}/elinks"
+       elog
        elog "You may want to convert your html.cfg and links.cfg of"
        elog "Links or older ELinks versions to the new ELinks elinks.conf"
        elog "using 
${EROOT}/usr/share/doc/${PF}/contrib/conv/conf-links2elinks.pl"

diff --git a/www-client/elinks/elinks-9999.ebuild 
b/www-client/elinks/elinks-9999.ebuild
index d29570aecef2..385322847846 100644
--- a/www-client/elinks/elinks-9999.ebuild
+++ b/www-client/elinks/elinks-9999.ebuild
@@ -5,7 +5,7 @@ EAPI=8
 
 GUILE_REQ_USE="deprecated"
 GUILE_COMPAT=( 2-2 3-0 )
-PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_COMPAT=( python3_{10..13} )
 LUA_COMPAT=( lua5-{1,2,3,4} luajit )
 
 inherit flag-o-matic guile-single meson lua-single python-single-r1
@@ -24,8 +24,8 @@ fi
 
 LICENSE="GPL-2"
 SLOT="0"
-IUSE="bittorrent brotli bzip2 debug finger ftp gopher gpm gnutls guile idn"
-IUSE+=" javascript lua lzma +mouse nls nntp perl python samba ssl test tre 
unicode X xml zlib zstd"
+IUSE="bittorrent brotli bzip2 debug finger ftp gemini gopher gpm gnutls guile 
idn"
+IUSE+=" javascript libcss lua lzma +mouse nls nntp perl python samba ssl test 
tre unicode X xml zlib zstd"
 RESTRICT="!test? ( test )"
 REQUIRED_USE="
        guile? ( ${GUILE_REQUIRED_USE} )
@@ -46,6 +46,10 @@ RDEPEND="
                dev-cpp/libxmlpp:5.0
                dev-lang/mujs:=
        )
+       libcss? (
+               >=dev-libs/libcss-0.9.2
+               >=net-libs/libdom-0.4.2
+       )
        lua? ( ${LUA_DEPS} )
        lzma? ( app-arch/xz-utils )
        perl? ( dev-lang/perl:= )
@@ -70,7 +74,7 @@ BDEPEND="
        virtual/pkgconfig
        nls? ( sys-devel/gettext )
        test? (
-               net-dns/libidn2
+               net-dns/libidn
        )
 "
 
@@ -111,7 +115,7 @@ src_configure() {
                $(meson_use finger)
                $(meson_use ftp)
                -Dfsp=false
-               -Dgemini=false
+               $(meson_use gemini)
                $(meson_use nls gettext)
                $(meson_use gopher)
                $(meson_use gpm)
@@ -122,12 +126,12 @@ src_configure() {
                $(meson_use javascript mujs)
                -Dipv6=true
                -Dleds=true
+               $(meson_use libcss)
                -Dlibev=false
                -Dlibevent=false
                -Dluapkg=$(usex lua ${ELUA:-0} '')
                $(meson_use lzma)
                $(meson_use mouse)
-               #-Dmujs=false
                $(meson_use nls)
                $(meson_use nntp)
                $(meson_use perl)
@@ -167,7 +171,7 @@ src_install() {
        newins contrib/keybind-full.conf keybind-full.sample
        newins contrib/keybind.conf keybind.conf.sample
 
-       dodoc AUTHORS BUGS ChangeLog INSTALL NEWS README SITES THANKS TODO 
doc/*.*
+       dodoc AUTHORS BUGS ChangeLog INSTALL NEWS README.md SITES THANKS TODO 
doc/*.*
        docinto contrib ; dodoc contrib/{README,colws.diff,elinks[-.]vim*}
        docinto contrib/lua ; dodoc contrib/lua/{*.lua,elinks-remote}
        docinto contrib/conv ; dodoc contrib/conv/*.*
@@ -181,6 +185,9 @@ src_install() {
 }
 
 pkg_postinst() {
+       elog "If upgrading from a version prior to 0.17.0, you will need to 
move"
+       elog "your configuration from ~/.elinks to \${XDG_CONFIG_HOME}/elinks"
+       elog
        elog "You may want to convert your html.cfg and links.cfg of"
        elog "Links or older ELinks versions to the new ELinks elinks.conf"
        elog "using 
${EROOT}/usr/share/doc/${PF}/contrib/conv/conf-links2elinks.pl"

diff --git a/www-client/elinks/files/elinks-0.17.1.1-gettext.patch 
b/www-client/elinks/files/elinks-0.17.1.1-gettext.patch
new file mode 100644
index 000000000000..32ab21b64cdb
--- /dev/null
+++ b/www-client/elinks/files/elinks-0.17.1.1-gettext.patch
@@ -0,0 +1,73 @@
+commit 8a7413665f7e9a6ca135c79486f0277f0dde9f7a
+Author: Witold Filipczyk <[email protected]>
+Date:   Wed Sep 11 09:34:16 2024 +0200
+
+    [meson] Detect if gettext has _nl_msg_cat_cntr . Refs #325
+
+diff --git a/config2.h.in b/config2.h.in
+index 41f2552a..1e6e138d 100644
+--- a/config2.h.in
++++ b/config2.h.in
+@@ -616,6 +616,9 @@
+    file. */
+ #mesondefine HAVE_NSS_COMPAT_OSSL_NSS_COMPAT_OSSL_H
+ 
++/* Define to 1 if gettext has _nl_msg_cat_cntr */
++#mesondefine HAVE_NL_MSG_CAT_CNTR
++
+ /* Define if you have off_t */
+ #mesondefine HAVE_OFF_T
+ 
+diff --git a/meson.build b/meson.build
+index e0e4d634..572b5e0e 100644
+--- a/meson.build
++++ b/meson.build
+@@ -987,6 +987,16 @@ if compiler.compiles('int a; typeof(a) b;')
+     conf_data.set('HAVE_TYPEOF', 1)
+ endif
+ 
++if conf_data.get('CONFIG_GETTEXT') and conf_data.get('CONFIG_NLS')
++    code = '''#include <libintl.h>
++    extern int _nl_msg_cat_cntr;
++    void main() { _nl_msg_cat_cntr = 1; }
++    '''
++    if compiler.links(code, name: 'test')
++        conf_data.set('HAVE_NL_MSG_CAT_CNTR', 1)
++    endif
++endif
++
+ conf_data.set('ICONV_CONST', true)
+ 
+ sysconfdir = get_option('prefix') / get_option('sysconfdir')/'elinks'
+diff --git a/src/intl/libintl.c b/src/intl/libintl.c
+index f07c538d..a30d4ab8 100644
+--- a/src/intl/libintl.c
++++ b/src/intl/libintl.c
+@@ -217,8 +217,12 @@ set_language(int language)
+               }
+       }
+       env_set("LANGUAGE", LANGUAGE, -1);
+-
+-      _nl_msg_cat_cntr++;
++      {
++#ifdef HAVE_NL_MSG_CAT_CNTR
++              extern int _nl_msg_cat_cntr;
++              _nl_msg_cat_cntr++;
++#endif
++      }
+ }
+ 
+ static void
+diff --git a/src/intl/libintl.h b/src/intl/libintl.h
+index 324fe79f..c07e6e10 100644
+--- a/src/intl/libintl.h
++++ b/src/intl/libintl.h
+@@ -13,8 +13,6 @@ extern "C" {
+ extern struct module gettext_module;
+ 
+ #ifdef CONFIG_GETTEXT
+-extern int _nl_msg_cat_cntr;
+-
+ #include <libintl.h>
+ 
+ extern int current_charset;

diff --git a/www-client/elinks/files/elinks-0.17.1.1-sftp.patch 
b/www-client/elinks/files/elinks-0.17.1.1-sftp.patch
new file mode 100644
index 000000000000..2607c90b4fbd
--- /dev/null
+++ b/www-client/elinks/files/elinks-0.17.1.1-sftp.patch
@@ -0,0 +1,154 @@
+From 1f0ee66aecbb52f8c423128aa7e0dd35822e989c Mon Sep 17 00:00:00 2001
+From: Witold Filipczyk <[email protected]>
+Date: Mon, 27 May 2024 10:23:46 +0200
+Subject: [PATCH] [protolcols] Do not compile-in SFTP when ftp was disabled.
+ Refs #304
+
+---
+ src/protocol/curl/ftp.c  | 42 +++-------------------------------------
+ src/protocol/curl/http.c | 42 ++++++++++++++++++++++++++++++++++++++++
+ src/protocol/curl/sftp.h |  2 +-
+ src/protocol/protocol.c  |  2 +-
+ 4 files changed, 47 insertions(+), 41 deletions(-)
+
+diff --git a/src/protocol/curl/ftp.c b/src/protocol/curl/ftp.c
+index 5f3d462ac..73120a67d 100644
+--- a/src/protocol/curl/ftp.c
++++ b/src/protocol/curl/ftp.c
+@@ -55,6 +55,8 @@
+ #include "util/memory.h"
+ #include "util/string.h"
+ 
++#ifdef CONFIG_FTP
++
+ static char el_curlversion[256];
+ 
+ static void
+@@ -641,45 +643,6 @@ ftp_curl_handle_error(struct connection *conn, CURLcode 
res)
+       abort_connection(conn, connection_state(S_CURL_ERROR - res));
+ }
+ 
+-/* Check for completed transfers, and remove their easy handles */
+-void
+-check_multi_info(GlobalInfo *g)
+-{
+-      //char *eff_url;
+-      CURLMsg *msg;
+-      int msgs_left;
+-      struct connection *conn;
+-      CURL *easy;
+-      CURLcode res;
+-
+-      //fprintf(stderr, "REMAINING: %d\n", g->still_running);
+-
+-      while ((msg = curl_multi_info_read(g->multi, &msgs_left))) {
+-              if (msg->msg == CURLMSG_DONE) {
+-                      easy = msg->easy_handle;
+-                      res = msg->data.result;
+-                      curl_easy_getinfo(easy, CURLINFO_PRIVATE, &conn);
+-
+-                      if (conn->uri->protocol == PROTOCOL_HTTP || 
conn->uri->protocol == PROTOCOL_HTTPS) {
+-                              http_curl_handle_error(conn, res);
+-                              continue;
+-                      }
+-
+-                      if (conn->uri->protocol == PROTOCOL_FTP || 
conn->uri->protocol == PROTOCOL_FTPES || conn->uri->protocol == PROTOCOL_SFTP) {
+-                              ftp_curl_handle_error(conn, res);
+-                              continue;
+-                      } else {
+-                              abort_connection(conn, connection_state(S_OK));
+-                      }
+-              }
+-      }
+-#if 0
+-      if (g->still_running == 0 && g->stopped) {
+-              event_base_loopbreak(g->evbase);
+-      }
+-#endif
+-}
+-
+ void
+ ftpes_protocol_handler(struct connection *conn)
+ {
+@@ -695,3 +658,4 @@ sftp_protocol_handler(struct connection *conn)
+               do_ftpes(conn);
+       }
+ }
++#endif
+\ No newline at end of file
+diff --git a/src/protocol/curl/http.c b/src/protocol/curl/http.c
+index e2349489a..25d0eb36d 100644
+--- a/src/protocol/curl/http.c
++++ b/src/protocol/curl/http.c
+@@ -505,3 +505,45 @@ http_curl_protocol_handler(struct connection *conn)
+               do_http(conn);
+       }
+ }
++
++/* Check for completed transfers, and remove their easy handles */
++void
++check_multi_info(GlobalInfo *g)
++{
++      //char *eff_url;
++      CURLMsg *msg;
++      int msgs_left;
++      struct connection *conn;
++      CURL *easy;
++      CURLcode res;
++
++      //fprintf(stderr, "REMAINING: %d\n", g->still_running);
++
++      while ((msg = curl_multi_info_read(g->multi, &msgs_left))) {
++              if (msg->msg == CURLMSG_DONE) {
++                      easy = msg->easy_handle;
++                      res = msg->data.result;
++                      curl_easy_getinfo(easy, CURLINFO_PRIVATE, &conn);
++
++                      if (conn->uri->protocol == PROTOCOL_HTTP || 
conn->uri->protocol == PROTOCOL_HTTPS) {
++                              http_curl_handle_error(conn, res);
++                              continue;
++                      }
++
++#ifdef CONFIG_FTP
++                      if (conn->uri->protocol == PROTOCOL_FTP || 
conn->uri->protocol == PROTOCOL_FTPES || conn->uri->protocol == PROTOCOL_SFTP) {
++                              ftp_curl_handle_error(conn, res);
++                              continue;
++                      }
++#endif
++                      else {
++                              abort_connection(conn, connection_state(S_OK));
++                      }
++              }
++      }
++#if 0
++      if (g->still_running == 0 && g->stopped) {
++              event_base_loopbreak(g->evbase);
++      }
++#endif
++}
+diff --git a/src/protocol/curl/sftp.h b/src/protocol/curl/sftp.h
+index f9167c3fa..cdcafd572 100644
+--- a/src/protocol/curl/sftp.h
++++ b/src/protocol/curl/sftp.h
+@@ -10,7 +10,7 @@ extern "C" {
+ 
+ extern struct module sftp_protocol_module;
+ 
+-#if defined(CONFIG_LIBCURL)
++#if defined(CONFIG_FTP) && defined(CONFIG_LIBCURL)
+ extern protocol_handler_T sftp_protocol_handler;
+ #else
+ #define sftp_protocol_handler NULL
+diff --git a/src/protocol/protocol.c b/src/protocol/protocol.c
+index 930a4f86b..d3fae896c 100644
+--- a/src/protocol/protocol.c
++++ b/src/protocol/protocol.c
+@@ -336,7 +336,7 @@ static struct module *protocol_submodules[] = {
+ #ifdef CONFIG_NNTP
+       &nntp_protocol_module,
+ #endif
+-#if defined(CONFIG_LIBCURL)
++#if defined(CONFIG_FTP) && defined(CONFIG_LIBCURL)
+       &sftp_protocol_module,
+ #endif
+ #ifdef CONFIG_SMB

diff --git a/www-client/elinks/metadata.xml b/www-client/elinks/metadata.xml
index 3b56552ae318..2c7701cba575 100644
--- a/www-client/elinks/metadata.xml
+++ b/www-client/elinks/metadata.xml
@@ -12,7 +12,9 @@
        <use>
                <flag name="bittorrent">Enable support for the BitTorrent 
protocol</flag>
                <flag name="finger">Enable support for the finger 
protocol</flag>
+               <flag name="gemini">Enable support for the gemini 
protocol</flag>
                <flag name="gopher">Enable support for the gopher 
protocol</flag>
+               <flag name="libcss">Enable support for cascading style sheets 
via <pkg>dev-libs/libcss</pkg></flag>
                <flag name="mouse">Make elinks to grab all mouse events</flag>
                <flag name="tre">Enable support for regex searches via 
<pkg>dev-libs/tre</pkg></flag>
                <flag name="xml">Enable support for bookmarks via 
<pkg>dev-libs/expat</pkg></flag>

Reply via email to