Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 946078 - net-ftp/lftp-4.9.2-r1: USE=socks5 causes configure error
Summary: net-ftp/lftp-4.9.2-r1: USE=socks5 causes configure error
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: Normal normal
Assignee: Conrad Kostecki
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-12-08 02:38 UTC by OKUMURA N. Shin-ya
Modified: 2024-12-29 18:22 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
build.log (build.log,11.29 KB, text/x-log)
2024-12-08 02:39 UTC, OKUMURA N. Shin-ya
Details
emerge --info (emerge-info.txt,7.81 KB, text/plain)
2024-12-08 02:39 UTC, OKUMURA N. Shin-ya
Details
config.log (config.log,89.05 KB, text/x-log)
2024-12-08 05:33 UTC, OKUMURA N. Shin-ya
Details
fix configuration with dante (lftp-4.9.2-socks.patch,1.13 KB, patch)
2024-12-18 12:21 UTC, Michael Uleysky
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description OKUMURA N. Shin-ya 2024-12-08 02:38:55 UTC
net-ftp/lftp-4.9.2-r1 with USE=socks5 causes configure error, when finding libsocks, because (probably) net-proxy/dante-1.4.3 won't provide /usr/lib64/libsocks.so, but libsocks.so.0.

Reproducible: Always

Steps to Reproduce:
1. USE=socks5 emerge =net-ftp/lftp-4.9.2-r1

Actual Results:  
As follows. I'll provide build.log, later.
--
checking for main in -lsocks... no
configure: error: cannot find -lsocks library

!!! Please attach the following file when seeking support:
!!! /var/tmp/portage/net-ftp/lftp-4.9.2-r1/work/lftp-4.9.2/config.log
 * ERROR: net-ftp/lftp-4.9.2-r1::gentoo failed (configure phase):
 *   econf failed

Expected Results:  
emerge should be finished successfully.

CONTENTS of net-proxy/dante-1.4.2 in my box shows;

# fgrep libsocks /var/db/pkg/net-proxy/dante-1.4.3/CONTENTS 
sym /usr/lib64/libsocks.so.0 -> libsocks.so.0.1.1 1658163911
obj /usr/lib64/libsocks.so.0.1.1 ccf9ba7a82fe0de151ab72a5827debb8 1658163914
obj /usr/lib64/libsocksd.a 158fd5001297dc099f057cacc961599a 1731991845
sym /usr/lib64/libsocksd.so -> libsocksd.so.0.1.1 1731991843
sym /usr/lib64/libsocksd.so.0 -> libsocksd.so.0.1.1 1731991843
obj /usr/lib64/libsocksd.so.0.1.1 ca2f04f2650429e6b3148c0c995e2b5b 1731991845

I don't know whether I should fix lftp or dante.
Neither env-update nor ldconfig didn't resolve the issue.
Comment 1 OKUMURA N. Shin-ya 2024-12-08 02:39:22 UTC
Created attachment 913541 [details]
build.log
Comment 2 OKUMURA N. Shin-ya 2024-12-08 02:39:43 UTC
Created attachment 913542 [details]
emerge --info
Comment 3 Greg Kubaryk 2024-12-08 03:06:26 UTC
thanks for the report; could you please attach:

/var/tmp/portage/net-ftp/lftp-4.9.2-r1/work/lftp-4.9.2/config.log
Comment 4 OKUMURA N. Shin-ya 2024-12-08 05:33:10 UTC
Created attachment 913543 [details]
config.log
Comment 5 Michael Uleysky 2024-12-18 12:21:14 UTC
Created attachment 914336 [details, diff]
fix configuration with dante

The first part of the problem is the code in configure.ac:

if test x$with_socks = xyes; then                                                                                                                                                                                                          
   AC_DEFINE(SOCKS4, 1, [define if you are building with SOCKS support])                                                                                                                                                                   
   AC_CHECK_LIB(socks, main, [SOCKSLIBS=-lsocks],                                                                                                                                                                                          
      [AC_MSG_ERROR([cannot find -lsocks library])])                                                                                                                                                                                       
fi                                                                                                                                                                                                                                         
if test x$with_socks5 = xyes; then                                                                                                                                                                                                         
   AC_DEFINE(SOCKS5, 1, [define if you are building with SOCKSv5 support])                                                                                                                                                                 
   AC_CHECK_LIB(socks5, main, [SOCKSLIBS=-lsocks5],                                                                                                                                                                                        
      [AC_MSG_ERROR([cannot find -lsocks5 library])])                                                                                                                                                                                      
fi                                                                                                                                                                                                                                         
if test x$with_socksdante = xyes; then                                                                                                                                                                                                     
   AC_DEFINE(SOCKS_DANTE, 1, [define if you are building with SOCKS-Dante support])                                                                                                                                                        
   AC_CHECK_LIB(socks, main, [SOCKSLIBS=-lsocks],                                                                                                                                                                                          
      [AC_MSG_ERROR([cannot find -lsocks library])])                                                                                                                                                                                       
fi

AC_CHECK_LIB tries to find the main() function in the socks library, which results in a recursion error.

The second part of the problem is that on my system dante did not install the libsocks.so symlink, only libsocks.so.0, so the linker cannot find libsocks.

The proposed patch solves both problems.
Comment 6 Larry the Git Cow gentoo-dev 2024-12-29 18:22:51 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=46f0106ecdc04ce7201bb08952c0469bba5da9bc

commit 46f0106ecdc04ce7201bb08952c0469bba5da9bc
Author:     Conrad Kostecki <conikost@gentoo.org>
AuthorDate: 2024-12-29 18:19:49 +0000
Commit:     Conrad Kostecki <conikost@gentoo.org>
CommitDate: 2024-12-29 18:22:40 +0000

    net-ftp/lftp: fix build with socket
    
    Closes: https://bugs.gentoo.org/946078
    Signed-off-by: Conrad Kostecki <conikost@gentoo.org>

 net-ftp/lftp/files/lftp-4.9.2-socks.patch | 26 ++++++++++++++++++++++++++
 net-ftp/lftp/lftp-4.9.2-r1.ebuild         |  1 +
 2 files changed, 27 insertions(+)