[PATCH] gnu: dante: Enable preloading support.

  • Done
  • quality assurance status badge
Details
2 participants
  • Ludovic Courtès
  • Nguy?n Gia Phong
Owner
unassigned
Submitted by
Nguy?n Gia Phong
Severity
normal
N
N
Nguy?n Gia Phong wrote on 7 Dec 2023 04:28
(address . guix-patches@gnu.org)(name . Nguy?n Gia Phong)(address . mcsinyx@disroot.org)
ae9944df740d9aa49322f04eb1259b15b8ac1a3a.1701919708.git.mcsinyx@disroot.org
Dante uses dlopen which doesn't work with libc.so but libc.so.6.
This fixes socksify, which is patched to skip invoking uname needlessly.

* gnu/packages/networking.scm (dante): Enable preloading support.
* gnu/packages/patches/dante-non-darwin.patch: New file.

Change-Id: I03a5b6b6e11cf6a0453a4968ff00c6dd627249a8
---
gnu/packages/networking.scm | 9 +++------
gnu/packages/patches/dante-non-darwin.patch | 15 +++++++++++++++
2 files changed, 18 insertions(+), 6 deletions(-)
create mode 100644 gnu/packages/patches/dante-non-darwin.patch

Toggle diff (46 lines)
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 6b415076e89f..13ac08aa253d 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -3640,13 +3640,10 @@ (define-public dante
(uri (string-append "https://www.inet.no/dante/files/dante-"
version ".tar.gz"))
(sha256
- (base32 "0pbahkj43rx7rmv2x40mf5p3g3x9d6i2sz7pzglarf54w5ghd2j1"))))
+ (base32 "0pbahkj43rx7rmv2x40mf5p3g3x9d6i2sz7pzglarf54w5ghd2j1"))
+ (patches (search-patches "dante-non-darwin.patch"))))
(build-system gnu-build-system)
- (arguments
- ;; XXX: The dynamic socks library doesn't work with 'libc.so' (GNU ld
- ;; script). When preloading is enabled, 'sockd' failed with:
- ;; … Failed to open library "libc.so": …: invalid ELF header
- '(#:configure-flags '("--disable-preload")))
+ (arguments '(#:configure-flags '("--with-libc=libc.so.6")))
(home-page "https://www.inet.no/dante/")
(synopsis "SOCKS server and client")
(description "Dante is a SOCKS client and server implementation. It can
diff --git a/gnu/packages/patches/dante-non-darwin.patch b/gnu/packages/patches/dante-non-darwin.patch
new file mode 100644
index 000000000000..0ecb705c78b7
--- /dev/null
+++ b/gnu/packages/patches/dante-non-darwin.patch
@@ -0,0 +1,15 @@
+Disable runtime check for Darwin so we don't have to substitute uname.
+--- a/bin/socksify.in
++++ b/bin/socksify.in
+@@ -65,11 +65,6 @@
+ unset FULLPATH
+ fi
+
+-#use "FLAT_NAMESPACE" on Darwin in attempt to match LD_PRELOAD behavior
+-if test x`uname` = xDarwin; then
+- export DYLD_FORCE_FLAT_NAMESPACE=t
+-fi
+-
+ #dlib/Makefile.am libtool flags should produce a predictable library name
+ #(ending in SOLIB_POSTFIX).
+ LIBRARY="${SOCKS_LIBRARY:-${FULLPATH}libdsocks.@SOLIB_POSTFIX@}"

base-commit: 4e7cb241188cf9f213d5fbabbabce07d35ca0991
--
2.41.0
L
L
Ludovic Courtès wrote on 22 Dec 2023 17:44
(name . Nguy?n Gia Phong)(address . mcsinyx@disroot.org)(address . 67675-done@debbugs.gnu.org)
8734vu9oh3.fsf@gnu.org
Hi,

Nguy?n Gia Phong <mcsinyx@disroot.org> skribis:

Toggle quote (10 lines)
> Dante uses dlopen which doesn't work with libc.so but libc.so.6.
> This fixes socksify, which is patched to skip invoking uname needlessly.
>
> * gnu/packages/networking.scm (dante): Enable preloading support.
> * gnu/packages/patches/dante-non-darwin.patch: New file.
>
> References: https://github.com/NixOS/nixpkgs/pull/68418#discussion_r343625853
> Fixes: https://issues.guix.gnu.org/63250
> Change-Id: I03a5b6b6e11cf6a0453a4968ff00c6dd627249a8

I added the patch to ‘gnu/local.mk’ and committed.

Thanks!

Ludo’.
Closed
N
N
Nguy?n Gia Phong wrote on 22 Dec 2023 18:22
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 67675@debbugs.gnu.org)
CXV1BR968940.1J1N2WOG2UMME@disroot.org
On 2023-12-22 at 17:44+01:00, Ludovic Courtès wrote:
Toggle quote (9 lines)
> Nguy?n Gia Phong <mcsinyx@disroot.org> skribis:
> > Dante uses dlopen which doesn't work with libc.so but libc.so.6.
> > This fixes socksify, which is patched to skip invoking uname needlessly.
> >
> > * gnu/packages/networking.scm (dante): Enable preloading support.
> > * gnu/packages/patches/dante-non-darwin.patch: New file.
>
> I added the patch to ‘gnu/local.mk’ and committed.

Thanks, I didn't know about that.
Have a merry christmas or other holiday of your choice!
-----BEGIN PGP SIGNATURE-----

iQHIBAABCAAyFiEE6Q4RuASTNDthMuOUJxSLLAaiIksFAmWFxfMUHG1jc2lueXhA
ZGlzcm9vdC5vcmcACgkQJxSLLAaiIkt1PgwAvtUONAqdWdVQSA4XHMr717D3ktcd
4beHMYxh6UUdd2tMUjetNTzyMMiu0YkhiJ316EnGGTUujY1IWU+CrF+qR9oouYOf
M9vvBGZ7lpqiK46nbYFaBfjuCWAcPcllXD+A+lpvZSlVD+6qDLlUbP6sm8FMsFZ5
nX53RoTDUcagZSb6+uOWXyVNhOqXmsrAQc+J7shu2Wxp+3rnmwlFhYdLOpD+hiMd
AhlYzNZUO6g4BG5nPins4ucpeGDwHdJL4p9rJ6txiiGzYFTweEVRG9m4t+X1zoNF
wcTZO2O3flt4PZ4+1bJOP57y/S3SbIejuv3oLZ67p1sz7rJ+CX6OGUOwiQl9VLZ7
ZZtKvUw2uUz18faeAP1Jq4LNdIjNB92cSsWtaFXfWepXPk3EDdQXH5+wSRn/5WK6
KevwjYcQFYBcsaLd/uOAyyFmtWLuG5Yn0s+UDCSvnO60AIRFl1G4PWvKgvku3H8O
TsAGTu53NtC9iMxXbkpmeAyZsqWkoi8Dyht6
=eD92
-----END PGP SIGNATURE-----


?