Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/4] package/gensio: bump version to 3.0.4
@ 2026-08-16 19:56 Mattia Narducci
  2026-08-16 19:56 ` [Buildroot] [PATCH 2/4] package/gensio: add udev optional dependency Mattia Narducci
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Mattia Narducci @ 2026-08-16 19:56 UTC (permalink / raw)
  To: buildroot; +Cc: James Hilliard

Changelog: https://sourceforge.net/p/ser2net/news

Static builds are no longer supported starting with version 2.6.0 [1]
even when compiling all modules (gensios) in the library.

Updated licenses hashes due to upstream commit:
https://github.com/cminyard/gensio/commit/859e4465cf5788cb99da1002a4c38cd8841c1bb7

Removed patch 0001 which is now upstream.

[1] https://github.com/cminyard/gensio/commit/7b3786f5fb733cd593e631a7b75d4b47f5a4b95f

Signed-off-by: Mattia Narducci <mattianarducci1@gmail.com>
---
 .checkpackageignore                           |   1 -
 ...PKEY_ED25519-build-error-on-libressl.patch | 105 ------------------
 package/gensio/Config.in                      |   1 +
 package/gensio/gensio.hash                    |  10 +-
 package/gensio/gensio.mk                      |   3 +-
 5 files changed, 8 insertions(+), 112 deletions(-)
 delete mode 100644 package/gensio/0001-Fix-missing-EVP_PKEY_ED25519-build-error-on-libressl.patch

diff --git a/.checkpackageignore b/.checkpackageignore
index c3ec943075..2b61ff3bab 100644
--- a/.checkpackageignore
+++ b/.checkpackageignore
@@ -380,7 +380,6 @@ package/gdb/17.1/0007-fix-musl-build-on-riscv.patch lib_patch.Upstream
 package/gdb/17.1/0008-gdbserver-Makefile.in-fix-NLS-build.patch lib_patch.Upstream
 package/gdb/17.1/0009-gdb-Fix-native-build-on-xtensa.patch lib_patch.Upstream
 package/genpart/0001-fix-return-code.patch lib_patch.Upstream
-package/gensio/0001-Fix-missing-EVP_PKEY_ED25519-build-error-on-libressl.patch lib_patch.Upstream
 package/gerbera/S99gerbera lib_sysv.Indent
 package/git-crypt/0001-fix-build-with-libressl-3.5.0.patch lib_patch.Upstream
 package/glorytun/0001-Add-support-for-Apple-silicon.patch lib_patch.Upstream
diff --git a/package/gensio/0001-Fix-missing-EVP_PKEY_ED25519-build-error-on-libressl.patch b/package/gensio/0001-Fix-missing-EVP_PKEY_ED25519-build-error-on-libressl.patch
deleted file mode 100644
index e9087aa3e5..0000000000
--- a/package/gensio/0001-Fix-missing-EVP_PKEY_ED25519-build-error-on-libressl.patch
+++ /dev/null
@@ -1,105 +0,0 @@
-From 1e7071684329f23ee3447310d203d193c283979e Mon Sep 17 00:00:00 2001
-From: James Hilliard <james.hilliard1@gmail.com>
-Date: Wed, 5 Oct 2022 15:30:32 -0600
-Subject: [PATCH] Fix missing EVP_PKEY_ED25519 build error on libressl
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Fixes:
-gensio_filter_certauth.c: In function ‘v3_certauth_add_challenge_rsp’:
-gensio_filter_certauth.c:838:44: error: ‘EVP_PKEY_ED25519’ undeclared (first use in this function); did you mean ‘EVP_PKEY_DSA1’?
-  838 |     if (EVP_PKEY_base_id(sfilter->pkey) == EVP_PKEY_ED25519) {
-      |                                            ^~~~~~~~~~~~~~~~
-      |                                            EVP_PKEY_DSA1
-gensio_filter_certauth.c:838:44: note: each undeclared identifier is reported only once for each function it appears in
-gensio_filter_certauth.c: In function ‘certauth_add_challenge_rsp’:
-gensio_filter_certauth.c:901:44: error: ‘EVP_PKEY_ED25519’ undeclared (first use in this function); did you mean ‘EVP_PKEY_DSA1’?
-  901 |     if (EVP_PKEY_base_id(sfilter->pkey) == EVP_PKEY_ED25519)
-      |                                            ^~~~~~~~~~~~~~~~
-      |                                            EVP_PKEY_DSA1
-gensio_filter_certauth.c: In function ‘certauth_check_challenge’:
-gensio_filter_certauth.c:1048:35: error: ‘EVP_PKEY_ED25519’ undeclared (first use in this function); did you mean ‘EVP_PKEY_DSA1’?
- 1048 |     if (EVP_PKEY_base_id(pkey) == EVP_PKEY_ED25519)
-      |                                   ^~~~~~~~~~~~~~~~
-      |                                   EVP_PKEY_DSA1
-
-Signed-off-by: Corey Minyard <cminyard@mvista.com>
-[Retrieved from:
-https://github.com/cminyard/gensio/commit/1e7071684329f23ee3447310d203d193c283979e]
-Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
----
- lib/gensio_filter_certauth.c |  6 ++++++
- tools/gtlssh-keygen.c        | 11 ++++++++++-
- 2 files changed, 16 insertions(+), 1 deletion(-)
-
-diff --git a/lib/gensio_filter_certauth.c b/lib/gensio_filter_certauth.c
-index 642379b6..c4552e79 100644
---- a/lib/gensio_filter_certauth.c
-+++ b/lib/gensio_filter_certauth.c
-@@ -835,11 +835,13 @@ v3_certauth_add_challenge_rsp(struct certauth_filter *sfilter)
-     unsigned int lenpos, len;
-     int rv = 0;
- 
-+#ifdef EVP_PKEY_ED25519
-     if (EVP_PKEY_base_id(sfilter->pkey) == EVP_PKEY_ED25519) {
- 	gca_log_err(sfilter,
- 		    "Remote end or SSL too old to support ed25519 key");
- 	return GE_KEYINVALID;
-     }
-+#endif
- 
-     certauth_write_byte(sfilter, CERTAUTH_CHALLENGE_RSP);
-     lenpos = sfilter->write_buf_len;
-@@ -898,8 +900,10 @@ certauth_add_challenge_rsp(struct certauth_filter *sfilter)
-     if (sfilter->version < 4 || sfilter->my_version < 4)
- 	return v3_certauth_add_challenge_rsp(sfilter);
- 
-+#ifdef EVP_PKEY_ED25519
-     if (EVP_PKEY_base_id(sfilter->pkey) == EVP_PKEY_ED25519)
- 	digest = NULL;
-+#endif
- 
-     certauth_write_byte(sfilter, CERTAUTH_CHALLENGE_RSP);
-     lenpos = sfilter->write_buf_len;
-@@ -1045,8 +1049,10 @@ certauth_check_challenge(struct certauth_filter *sfilter)
- 	goto out_nomem;
-     }
- 
-+#ifdef EVP_PKEY_ED25519
-     if (EVP_PKEY_base_id(pkey) == EVP_PKEY_ED25519)
- 	digest = NULL;
-+#endif
- 
-     if (!EVP_DigestVerifyInit(sign_ctx, NULL, digest, NULL, pkey)) {
- 	gca_logs_err(sfilter, "Digest verify init failed");
-diff --git a/tools/gtlssh-keygen.c b/tools/gtlssh-keygen.c
-index c8c28937..0779dd78 100644
---- a/tools/gtlssh-keygen.c
-+++ b/tools/gtlssh-keygen.c
-@@ -108,7 +108,12 @@ help(const char *progname)
-     P("        The default is your username for normal certificates and\n");
-     P("        the fully qualified domain name for server certificates.\n");
-     P("  --algorithm <algname> - Set the algorithm to use for the key,\n");
--    P("        either ed25519, rsa or ec.  The default is ed25519.\n");
-+    P("        either ed25519, rsa or ec.  ");
-+#ifdef EVP_PKEY_ED25519
-+    P("The default is ed25519.\n");
-+#else
-+    P("The default is ec.\n");
-+#endif
-     P("  --force, -f - Don't ask questions, just do the operation.  This\n");
-     P("        may overwrite data without asking.\n");
-     P("  --version - Print the version number and exit.\n");
-@@ -831,7 +836,11 @@ genpkey_ed25519(const char *key)
-     return rc != 0;
- }
- 
-+#ifdef EVP_PKEY_ED25519
- static int (*genpkey)(const char *key) = genpkey_ed25519;
-+#else
-+static int (*genpkey)(const char *key) = genpkey_ec;
-+#endif
- 
- /*
-  * Create a single key.  If name is NULL, it's a server key, otherwise
diff --git a/package/gensio/Config.in b/package/gensio/Config.in
index fd0e476970..d51ea99109 100644
--- a/package/gensio/Config.in
+++ b/package/gensio/Config.in
@@ -1,6 +1,7 @@
 config BR2_PACKAGE_GENSIO
 	bool "gensio"
 	depends on BR2_USE_MMU # fork()
+	depends on !BR2_STATIC_LIBS # dlfcn.h
 	depends on BR2_TOOLCHAIN_HAS_ATOMIC
 	help
 	  A library to abstract stream I/O like serial port, TCP,
diff --git a/package/gensio/gensio.hash b/package/gensio/gensio.hash
index 84af3fdab1..7cbc4fb9ac 100644
--- a/package/gensio/gensio.hash
+++ b/package/gensio/gensio.hash
@@ -1,7 +1,7 @@
 # From https://sourceforge.net/projects/ser2net/files/ser2net/
-md5  c8d65e1809ed5cd1138fa309e3ab0e94  gensio-2.5.5.tar.gz
-sha1  076fc8324dedb658972a88c738131a409968e2ba  gensio-2.5.5.tar.gz
+md5  43a826835c044dada38a7fba6ae2afbe  gensio-3.0.4.tar.gz
+sha1  76cb782125140db9d9f3c0bfd810c7b94d084a50  gensio-3.0.4.tar.gz
+sha256  e28c24fc5d9f3cb90005bc008fec8bb8eedce503753024ab650bed0ac250cbe3  gensio-3.0.4.tar.gz
 # Locally computed:
-sha256  63c5fff536efd080fb7bc7fa084331c19fc64abd42b7f2bec86bd77b4fd10840  gensio-2.5.5.tar.gz
-sha256  501f3108e6c03e5a0a5585ebaaa369171aead5319cd0a7a4dc1f66211c1f09f1  COPYING
-sha256  dcac7d447dd81ab96d28dce00a07a6486e623f7ded94e2a2a8e83312405cdf89  COPYING.LIB
+sha256  8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643  COPYING
+sha256  dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551  COPYING.LIB
diff --git a/package/gensio/gensio.mk b/package/gensio/gensio.mk
index 2ba1b950d7..8fc21fab01 100644
--- a/package/gensio/gensio.mk
+++ b/package/gensio/gensio.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-GENSIO_VERSION = 2.5.5
+GENSIO_VERSION = 3.0.4
 GENSIO_SITE = http://downloads.sourceforge.net/project/ser2net/ser2net
 GENSIO_LICENSE = LGPL-2.1+ (library), GPL-2.0+ (tools)
 GENSIO_LICENSE_FILES = COPYING.LIB COPYING
@@ -12,6 +12,7 @@ GENSIO_INSTALL_STAGING = YES
 GENSIO_CONF_OPTS = \
 	--without-swig \
 	--without-python
+GENSIO_AUTORECONF = YES
 
 ifeq ($(BR2_INSTALL_LIBSTDCPP),y)
 GENSIO_CONF_OPTS += --with-cplusplus
-- 
2.55.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [Buildroot] [PATCH 2/4] package/gensio: add udev optional dependency
  2026-08-16 19:56 [Buildroot] [PATCH 1/4] package/gensio: bump version to 3.0.4 Mattia Narducci
@ 2026-08-16 19:56 ` Mattia Narducci
  2026-08-16 19:56 ` [Buildroot] [PATCH 3/4] package/gensio: add portaudio " Mattia Narducci
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 6+ messages in thread
From: Mattia Narducci @ 2026-08-16 19:56 UTC (permalink / raw)
  To: buildroot; +Cc: James Hilliard

Udev is an optional dependency used to directly control cm108 sound
device gpios. It is enabled by default since version 2.6.3:
https://github.com/cminyard/gensio/commit/c1b5c0a214b85026f1d8c97bd79aae038fef733b

Signed-off-by: Mattia Narducci <mattianarducci1@gmail.com>
---
 package/gensio/gensio.mk | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/package/gensio/gensio.mk b/package/gensio/gensio.mk
index 8fc21fab01..0c3ca5e03b 100644
--- a/package/gensio/gensio.mk
+++ b/package/gensio/gensio.mk
@@ -34,6 +34,13 @@ else
 GENSIO_CONF_OPTS += --without-mdns
 endif
 
+ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
+GENSIO_DEPENDENCIES += udev
+GENSIO_CONF_OPTS += --with-udev
+else
+GENSIO_CONF_OPTS += --without-udev
+endif
+
 ifeq ($(BR2_PACKAGE_LIBGLIB2),y)
 GENSIO_DEPENDENCIES += host-pkgconf libglib2
 GENSIO_CONF_OPTS += --with-glib
-- 
2.55.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [Buildroot] [PATCH 3/4] package/gensio: add portaudio optional dependency
  2026-08-16 19:56 [Buildroot] [PATCH 1/4] package/gensio: bump version to 3.0.4 Mattia Narducci
  2026-08-16 19:56 ` [Buildroot] [PATCH 2/4] package/gensio: add udev optional dependency Mattia Narducci
@ 2026-08-16 19:56 ` Mattia Narducci
  2026-08-16 19:56 ` [Buildroot] [PATCH 4/4] package/ser2net: bump version to 4.6.8 Mattia Narducci
  2026-08-29 22:24 ` [Buildroot] [PATCH 1/4] package/gensio: bump version to 3.0.4 Thomas Petazzoni via buildroot
  3 siblings, 0 replies; 6+ messages in thread
From: Mattia Narducci @ 2026-08-16 19:56 UTC (permalink / raw)
  To: buildroot; +Cc: James Hilliard

Portaudio is an optional dependency which is enabled by default since
version 2.7.3 when alsa-lib is not available:
https://github.com/cminyard/gensio/commit/71eef5e3cef2232eed85c5cb604bdf5fe3ebf580

Signed-off-by: Mattia Narducci <mattianarducci1@gmail.com>
---
 package/gensio/gensio.mk | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/package/gensio/gensio.mk b/package/gensio/gensio.mk
index 0c3ca5e03b..40cb0df514 100644
--- a/package/gensio/gensio.mk
+++ b/package/gensio/gensio.mk
@@ -62,6 +62,13 @@ else
 GENSIO_CONF_OPTS += --without-openssl
 endif
 
+ifeq ($(BR2_PACKAGE_PORTAUDIO),y)
+GENSIO_DEPENDENCIES += portaudio
+GENSIO_CONF_OPTS += --with-portaudio
+else
+GENSIO_CONF_OPTS += --without-portaudio
+endif
+
 ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
 GENSIO_CONF_ENV += LIBS=-latomic
 endif
-- 
2.55.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [Buildroot] [PATCH 4/4] package/ser2net: bump version to 4.6.8
  2026-08-16 19:56 [Buildroot] [PATCH 1/4] package/gensio: bump version to 3.0.4 Mattia Narducci
  2026-08-16 19:56 ` [Buildroot] [PATCH 2/4] package/gensio: add udev optional dependency Mattia Narducci
  2026-08-16 19:56 ` [Buildroot] [PATCH 3/4] package/gensio: add portaudio " Mattia Narducci
@ 2026-08-16 19:56 ` Mattia Narducci
  2026-08-29 22:24 ` [Buildroot] [PATCH 1/4] package/gensio: bump version to 3.0.4 Thomas Petazzoni via buildroot
  3 siblings, 0 replies; 6+ messages in thread
From: Mattia Narducci @ 2026-08-16 19:56 UTC (permalink / raw)
  To: buildroot; +Cc: Francisco Gonzalez

Changelog: https://sourceforge.net/p/ser2net/news

Static builds are no longer supported after bumping gensio to 3.0.4.

Updated licenses hashes due to upstream commit:
https://github.com/cminyard/ser2net/commit/2bc83f09548dec25b0bec48e11a3ee1942fb3c3e

Drop patch 0001 that was a backport of a upstream security fix.

Add a upstream patch to fix build against uClibc.

Signed-off-by: Mattia Narducci <mattianarducci1@gmail.com>
---
 ...-crypt-when-crypt_r-is-not-available.patch | 140 ++++++++++++++++++
 ...0001-Fix-authorization-path-handling.patch |  89 -----------
 package/ser2net/Config.in                     |   2 +
 package/ser2net/ser2net.hash                  |   8 +-
 package/ser2net/ser2net.mk                    |   8 +-
 5 files changed, 153 insertions(+), 94 deletions(-)
 create mode 100644 package/ser2net/0001-Fallback-to-crypt-when-crypt_r-is-not-available.patch
 delete mode 100644 package/ser2net/0001-Fix-authorization-path-handling.patch

diff --git a/package/ser2net/0001-Fallback-to-crypt-when-crypt_r-is-not-available.patch b/package/ser2net/0001-Fallback-to-crypt-when-crypt_r-is-not-available.patch
new file mode 100644
index 0000000000..a90095fd89
--- /dev/null
+++ b/package/ser2net/0001-Fallback-to-crypt-when-crypt_r-is-not-available.patch
@@ -0,0 +1,140 @@
+From 6af8ca88193b66b0309d9ca355d6c551e0fc1fbe Mon Sep 17 00:00:00 2001
+From: Mattia Narducci <mattianarducci1@gmail.com>
+Date: Fri, 14 Aug 2026 21:55:11 +0200
+Subject: [PATCH] Fallback to crypt() when crypt_r() is not available
+
+Use crypt(3) for hashed passwords on systems where libcrypt does not
+provide the reentrant crypt_r(3), eg. uClibc. Calls to crypt() are
+guarded by a global lock.
+
+Signed-off-by: Mattia Narducci <mattianarducci1@gmail.com>
+Signed-off-by: Corey Minyard <corey@minyard.net>
+
+Upstream: https://github.com/cminyard/ser2net/commit/6af8ca88193b66b0309d9ca355d6c551e0fc1fbe
+
+Signed-off-by: Mattia Narducci <mattianarducci1@gmail.com>
+---
+ auth.c       | 12 ++++++++++++
+ configure.ac | 11 ++++++-----
+ ser2net.c    | 14 ++++++++++++++
+ ser2net.h    |  4 ++++
+ 4 files changed, 36 insertions(+), 5 deletions(-)
+
+diff --git a/auth.c b/auth.c
+index 7e53069..1af057b 100644
+--- a/auth.c
++++ b/auth.c
+@@ -33,6 +33,10 @@
+ #include <gensio/gensio_list.h>
+ #include "ser2net.h"
+ 
++#ifndef HAVE_CRYPT_R
++#include <gensio/gensio_os_funcs_public.h>
++#endif
++
+ #if defined(USE_PAM)
+ #include <pwd.h>
+ #include <security/pam_appl.h>
+@@ -288,7 +292,9 @@ handle_password(struct gensio *net, const char *authdir, const char *password)
+     char readpw[256], *s;
+     int err;
+     bool hashed = true;
++#ifdef HAVE_CRYPT_R
+     struct crypt_data cdata;
++#endif
+     char *newhash;
+ 
+     len = sizeof(username);
+@@ -341,7 +347,13 @@ handle_password(struct gensio *net, const char *authdir, const char *password)
+ 	return GE_NOTSUP;
+     }
+ 
++#ifdef HAVE_CRYPT_R
+     newhash = crypt_r(password, readpw, &cdata);
++#else
++    gensio_os_funcs_lock(so, crypt_lock);
++    newhash = crypt(password, readpw);
++    gensio_os_funcs_unlock(so, crypt_lock);
++#endif
+     if (!newhash)
+ 	return GE_NOTSUP;
+ 
+diff --git a/configure.ac b/configure.ac
+index 1ac44f2..1814286 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -39,11 +39,12 @@ if test "x$use_pam" != "xno"; then
+     AC_DEFINE([USE_PAM], [], [Enable PAM support])
+ fi
+ 
+-have_crypt_r=no
+-AC_CHECK_LIB(crypt, crypt_r, [have_crypt_r=yes], [])
+-if test $have_crypt_r != "yes"; then
+-  AC_MSG_ERROR([No libcrypt with crypt_r()])
+-fi
++AC_CHECK_LIB(crypt, crypt_r,
++  [AC_DEFINE([HAVE_CRYPT_R], [1], [Define if you have crypt_r() in libcrypt])],
++  [AC_CHECK_LIB(crypt, crypt, [],
++    [AC_MSG_ERROR([No libcrypt with crypt_r() or crypt()])]
++  )]
++)
+ LIBS="$LIBS -lcrypt"
+ 
+ AC_ARG_WITH(sysfs-led-support,
+diff --git a/ser2net.c b/ser2net.c
+index 04cbb00..17e0c23 100644
+--- a/ser2net.c
++++ b/ser2net.c
+@@ -604,6 +604,9 @@ do_detach(void)
+ 
+ static struct gensio_lock *config_lock;
+ static struct gensio_lock *maint_lock;
++#ifndef HAVE_CRYPT_R
++struct gensio_lock *crypt_lock;
++#endif
+ 
+ static int in_config_read = 0;
+ 
+@@ -1011,6 +1014,14 @@ main(int argc, char *argv[])
+ 	return 1;
+     }
+ 
++#ifndef HAVE_CRYPT_R
++    crypt_lock = gensio_os_funcs_alloc_lock(so);
++    if (!crypt_lock) {
++	fprintf(stderr, "Could not alloc ser2net crypt lock\n");
++	return 1;
++    }
++#endif
++
+     err = init_dataxfer();
+     if (err) {
+ 	fprintf(stderr,
+@@ -1098,6 +1109,9 @@ main(int argc, char *argv[])
+     if (config_lines)
+ 	free(config_lines);
+ 
++#ifndef HAVE_CRYPT_R
++    gensio_os_funcs_free_lock(so, crypt_lock);
++#endif
+     gensio_os_funcs_free_lock(so, maint_lock);
+     gensio_os_funcs_free_lock(so, config_lock);
+     gensio_os_funcs_free(so);
+diff --git a/ser2net.h b/ser2net.h
+index 8bc9227..d9e361b 100644
+--- a/ser2net.h
++++ b/ser2net.h
+@@ -66,6 +66,10 @@ int sub_time(gensio_time *left, gensio_time *right);
+    integer was invalid.  Spaces are not handled. */
+ int scan_int(const char *str);
+ 
++#ifndef HAVE_CRYPT_R
++/* Used to avoid races in crypt() when crypt_r() is not available */
++extern struct gensio_lock *crypt_lock;
++#endif
+ /*
+  * Handle authorization events from accepters.
+  */
+-- 
+2.55.0
+
diff --git a/package/ser2net/0001-Fix-authorization-path-handling.patch b/package/ser2net/0001-Fix-authorization-path-handling.patch
deleted file mode 100644
index a90130844f..0000000000
--- a/package/ser2net/0001-Fix-authorization-path-handling.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-From fa6c2a8840cbc8d7622e46ce12ba15ecc0fb51b7 Mon Sep 17 00:00:00 2001
-From: Corey Minyard <corey@minyard.net>
-Date: Thu, 23 Jul 2026 10:51:25 -0500
-Subject: [PATCH] Fix authorization path handling
-
-The username is received from the remote end and thus untrusted.  Make
-sure it doesn't have any characters that can cause it to escape the
-directory it is supposed to be in when constructing a path.
-
-Reported-by: TristanInSec
-Signed-off-by: Corey Minyard <corey@minyard.net>
-
-Upstream: https://github.com/cminyard/ser2net/commit/fa6c2a8840cbc8d7622e46ce12ba15ecc0fb51b7
-
-Signed-off-by: Mattia Narducci <mattianarducci1@gmail.com>
----
- auth.c | 42 ++++++++++++++++++++++++++++++++++++++----
- 1 file changed, 38 insertions(+), 4 deletions(-)
-
-diff --git a/auth.c b/auth.c
-index 95c80b4..53c3186 100644
---- a/auth.c
-+++ b/auth.c
-@@ -185,6 +185,40 @@ handle_auth_begin(struct gensio *net, const char *authdir, const char *pamauth,
-     return GE_NOTSUP;
- }
- 
-+/*
-+ * Construct a secure authorization path.
-+ *
-+ * filename must be at least MAX_PATH.
-+ *
-+ * "username" is untrusted, the rest of the data is trusted.
-+ */
-+static bool
-+construct_auth_path(char *filename, const char *authdir, const char *username,
-+		    const char *format, ...)
-+{
-+    size_t baselen;
-+    va_list ap;
-+
-+    /*
-+     * '/', '.', and '\' are all parts of things that can modify the base
-+     * path.  Don't allow them in usernames.
-+     */
-+    if (strchr(username, '.') || strchr(username, '/')
-+		|| strchr(username, '\\'))
-+	return false;
-+
-+    /* Get a good base path ending in / */
-+    baselen = snprintf(filename, PATH_MAX, "%s/%s/",
-+		       authdir, username);
-+
-+    /* Now append the rest of the path. */
-+    va_start(ap, format);
-+    vsnprintf(filename + baselen, PATH_MAX - baselen, format, ap);
-+    va_end(ap);
-+
-+    return true;
-+}
-+
- static int
- handle_precert(struct gensio *net, const char *authdir)
- {
-@@ -228,8 +262,8 @@ handle_precert(struct gensio *net, const char *authdir)
- 	}
-     }
- 
--    snprintf(filename, sizeof(filename), "%s/%s/allowed_certs/",
--	     authdir, s);
-+    if (!construct_auth_path(filename, authdir, s, "allowed_certs/"))
-+	return GE_AUTHREJECT;
-     err = gensio_control(net, 0, false, GENSIO_CONTROL_CERT_AUTH,
- 			 filename, &len);
-     if (err && err != GE_CERTNOTFOUND) {
-@@ -258,8 +292,8 @@ handle_password(struct gensio *net, const char *authdir, const char *password)
- 	return GE_AUTHREJECT;
-     }
- 
--    snprintf(filename, sizeof(filename), "%s/%s/password",
--	     authdir, username);
-+    if (!construct_auth_path(filename, authdir, username, "password"))
-+	return GE_AUTHREJECT;
-     pwfile = fopen(filename, "r");
-     if (!pwfile) {
- 	syslog(LOG_ERR, "Can't open password file %s: %s", filename,
--- 
-2.55.0
-
diff --git a/package/ser2net/Config.in b/package/ser2net/Config.in
index 1859d42c8f..fdab226e60 100644
--- a/package/ser2net/Config.in
+++ b/package/ser2net/Config.in
@@ -1,8 +1,10 @@
 config BR2_PACKAGE_SER2NET
 	bool "ser2net"
 	depends on BR2_USE_MMU # fork()
+	depends on !BR2_STATIC_LIBS # gensio
 	depends on BR2_TOOLCHAIN_HAS_ATOMIC # gensio
 	select BR2_PACKAGE_GENSIO
+	select BR2_PACKAGE_LIBXCRYPT if BR2_TOOLCHAIN_USES_GLIBC
 	select BR2_PACKAGE_LIBYAML
 	help
 	  Ser2net provides a way for a user to connect from a network
diff --git a/package/ser2net/ser2net.hash b/package/ser2net/ser2net.hash
index 50a2efdee8..19ced28655 100644
--- a/package/ser2net/ser2net.hash
+++ b/package/ser2net/ser2net.hash
@@ -1,6 +1,6 @@
 # From https://sourceforge.net/projects/ser2net/files/ser2net/
-md5  73b4ccc7e9d89034f1a1a20a780b9da9  ser2net-4.3.8.tar.gz
-sha1  d1597d88d154489cb08bac69bb1772712d30cbcd  ser2net-4.3.8.tar.gz
+md5  91594fb9c1d8e03a99a1739539919eba  ser2net-4.6.8.tar.gz
+sha1  ee8c12ce23ee3ebc54a845c2416bee0b6f4ea18c  ser2net-4.6.8.tar.gz
 # Locally computed:
-sha256  e5620975523059a38709bb53c0567600adbbcb8011066a2d2fe1b4db9efe0ba3  ser2net-4.3.8.tar.gz
-sha256  501f3108e6c03e5a0a5585ebaaa369171aead5319cd0a7a4dc1f66211c1f09f1  COPYING
+sha256  e651adcc4cc0d0ceaa36e5997dab9ea7f8aea732b4c87ba6018d2dcc88fbe8e3  ser2net-4.6.8.tar.gz
+sha256  8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643  COPYING
diff --git a/package/ser2net/ser2net.mk b/package/ser2net/ser2net.mk
index 679aaec29a..bd8f9dc399 100644
--- a/package/ser2net/ser2net.mk
+++ b/package/ser2net/ser2net.mk
@@ -4,11 +4,17 @@
 #
 ################################################################################
 
-SER2NET_VERSION = 4.3.8
+SER2NET_VERSION = 4.6.8
 SER2NET_SITE = https://downloads.sourceforge.net/project/ser2net/ser2net
 SER2NET_LICENSE = GPL-2.0+
 SER2NET_LICENSE_FILES = COPYING
 SER2NET_DEPENDENCIES = gensio libyaml
+# We are patching configure.ac
+SER2NET_AUTORECONF = YES
+
+ifeq ($(BR2_PACKAGE_LIBXCRYPT),y)
+SER2NET_DEPENDENCIES += libxcrypt
+endif
 
 ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
 SER2NET_CONF_OPTS += --with-pthreads
-- 
2.55.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [Buildroot] [PATCH 1/4] package/gensio: bump version to 3.0.4
  2026-08-16 19:56 [Buildroot] [PATCH 1/4] package/gensio: bump version to 3.0.4 Mattia Narducci
                   ` (2 preceding siblings ...)
  2026-08-16 19:56 ` [Buildroot] [PATCH 4/4] package/ser2net: bump version to 4.6.8 Mattia Narducci
@ 2026-08-29 22:24 ` Thomas Petazzoni via buildroot
  2026-09-03 20:25   ` Mattia Narducci
  3 siblings, 1 reply; 6+ messages in thread
From: Thomas Petazzoni via buildroot @ 2026-08-29 22:24 UTC (permalink / raw)
  To: Mattia Narducci; +Cc: buildroot, James Hilliard

Hello Mattia,

On Sun, Aug 16, 2026 at 09:56:06PM +0200, Mattia Narducci wrote:
> Changelog: https://sourceforge.net/p/ser2net/news
> 
> Static builds are no longer supported starting with version 2.6.0 [1]
> even when compiling all modules (gensios) in the library.
> 
> Updated licenses hashes due to upstream commit:
> https://github.com/cminyard/gensio/commit/859e4465cf5788cb99da1002a4c38cd8841c1bb7
> 
> Removed patch 0001 which is now upstream.
> 
> [1] https://github.com/cminyard/gensio/commit/7b3786f5fb733cd593e631a7b75d4b47f5a4b95f
> 
> Signed-off-by: Mattia Narducci <mattianarducci1@gmail.com>

Thanks a lot for your patch series, which I have applied to next. I
had to fix two things:

1. In both package/gensio/Config.in and package/ser2net/Config, add a
   Config.in comment about the dynamic library dependency

2. In PATCH 1/4, propagate the !BR2_STATIC_LIBS dependency to
   ser2net. You had done so in PATCH 4/4, but logically speaking, it
   belongs to PATCH 1/4, otherwise if we partially apply the series,
   or bisect through the commits, the situation between PATCH 1/4 and
   4/4 would be brokien

If you are interested by those two packages, don't hesitate to send a
patch adding yourself as a developer for them in the DEVELOPERS
file. This way you will receive e-mail notifications when there are
build failures, CVEs or new available upstream releases for those 2
packages.

Thanks a lot!

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Buildroot] [PATCH 1/4] package/gensio: bump version to 3.0.4
  2026-08-29 22:24 ` [Buildroot] [PATCH 1/4] package/gensio: bump version to 3.0.4 Thomas Petazzoni via buildroot
@ 2026-09-03 20:25   ` Mattia Narducci
  0 siblings, 0 replies; 6+ messages in thread
From: Mattia Narducci @ 2026-09-03 20:25 UTC (permalink / raw)
  To: Thomas Petazzoni; +Cc: buildroot, James Hilliard

On Sunday, 30 August 2026 00:24:20 CEST Thomas Petazzoni wrote:
> Thanks a lot for your patch series, which I have applied to next. I
> had to fix two things:
> 
> 1. In both package/gensio/Config.in and package/ser2net/Config, add a
>    Config.in comment about the dynamic library dependency
> 
> 2. In PATCH 1/4, propagate the !BR2_STATIC_LIBS dependency to
>    ser2net. You had done so in PATCH 4/4, but logically speaking, it
>    belongs to PATCH 1/4, otherwise if we partially apply the series,
>    or bisect through the commits, the situation between PATCH 1/4 and
>    4/4 would be brokien

Thank you Thomas! I should have considered that.

Best regards,
Mattia


_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2026-09-03 20:25 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-16 19:56 [Buildroot] [PATCH 1/4] package/gensio: bump version to 3.0.4 Mattia Narducci
2026-08-16 19:56 ` [Buildroot] [PATCH 2/4] package/gensio: add udev optional dependency Mattia Narducci
2026-08-16 19:56 ` [Buildroot] [PATCH 3/4] package/gensio: add portaudio " Mattia Narducci
2026-08-16 19:56 ` [Buildroot] [PATCH 4/4] package/ser2net: bump version to 4.6.8 Mattia Narducci
2026-08-29 22:24 ` [Buildroot] [PATCH 1/4] package/gensio: bump version to 3.0.4 Thomas Petazzoni via buildroot
2026-09-03 20:25   ` Mattia Narducci

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox