Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[solved]NSGClient libcurl.so.4 (CURL_OPENSSL_3) => not found
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Unsupported Software
View previous topic :: View next topic  
Author Message
oneone
n00b
n00b


Joined: 20 Sep 2017
Posts: 72

PostPosted: Sun Jul 26, 2020 8:31 pm    Post subject: NSGClient libcurl.so.4 (CURL_OPENSSL_3) => not found Reply with quote

Hi!

My university requires me to connect to their VPN with Citrix Netscaler Gateway (https://www.citrix.com/downloads/citrix-gateway/). It is proprietary software and they only provide binary .deb- and .rpm-packages. There is an ebuild for net-misc/icaclient, which is for Citrix Presentation Servers, but it is not, what I need.

So, what I did was looking for all the dependencies and dependencies of dependencies of the most recent debian package (for Citrix Gateway 13.0). If there were ebuilds available, I built them - if not, I got the corresponding .deb-packages as well. After compiling all the dependencies, which I could find through portage, I installed the .deb-packages with these commands:

Code:
%sudo dpkg -i --ignore-depends=libc6,libgmp10,libgnutls30,libhogweed6,libnettle8,zlib1g librtmp1_2.4+20151223.gitfa8646d.1-2+b2_amd64.deb
%sudo dpkg -i --ignore-depends=libbrotli1,libc6,libgnutls30,libgssapi-krb5-2,libidn2-0,libldap-2.4-2,libnettle8,libnghttp2-14,libpsl5,libssh2-1,zlib1g libcurl3-gnutls_7.68.0-1+b1_amd64.deb
%sudo dpkg -i --ignore-depends=libc6,libgcc-s1,libjavascriptcoregtk-4.0-18,libproxy1v5,libstdc++6 libproxy1-plugin-webkit_0.4.15-13_amd64.deb
%sudo dpkg -i --ignore-depends=libnl-3-200,libnl-genl-3-200,libnl-nf-3-200,libnl-route-3-200,libc6 libnl-cli-3-200_3.2.27-2_amd64.deb


And then the Netscaler packages:
Code:
%sudo dpkg -i --ignore-depends=libnotify4,libcurl3-gnutls,libnm-glib4,libnm-util2,libglib2.0-0,libnl-route-3-200,libnl-3-200,libnl-genl-3-200 nsepa.deb
%sudo dpkg -i --ignore-depends=libnotify4,libnm-glib4,libnm-util2,libglib2.0-0,libnl-route-3-200,libnl-3-200,libnl-genl-3-200 nsgclient64.deb


When trying to start the nsgclient, I get the following error:
Code:
% /opt/Citrix/NSGClient/bin/NSGClient
/opt/Citrix/NSGClient/bin/NSGClient: /usr/lib64/libcurl.so.4: no version information available (required by /opt/Citrix/NSGClient/bin/NSGClient)


Investigating the matter with ldd gives:

Code:
% ldd -v /opt/Citrix/NSGClient/bin/NSGClient | grep "not found"
                libcurl.so.4 (CURL_OPENSSL_3) => not found


net-misc/curl and dev-libs/openssl are built with the following flags:

Code:
net-misc/curl-7.71.0::gentoo  USE="ftp imap ipv6 ldap pop3 progress-meter smtp ssl static-libs tftp -adns -alt-svc -brotli -gopher -http2 -idn -kerberos -metalink (-nghttp3) (-quiche) -rtmp -samba -ssh -telnet -test -threads" ABI_X86="(64) -32 (-x32)" CURL_SSL="openssl -gnutls -libressl -mbedtls -nss (-winssl)"

dev-libs/openssl-1.1.1g:0/1.1::gentoo  USE="asm static-libs zlib -bindist -rfc3779 -sctp -sslv3 -test -tls-heartbeat -vanilla" ABI_X86="32 (64) (-x32)" CPU_FLAGS_X86="(sse2)"


In the forums I found someone having a similar issue with libcurl.so.4 (CURL_GNUTLS_3) (https://forums.gentoo.org/viewtopic-p-8351660.html) and according to this (https://github.com/curl/curl/issues/2433) issue on GitHub CURL_OPENSSL_3 is a Debian specific version and in either case only downgrading fixed the problem.
For me, downgrading is not an option, since the current version of curl is required by some other packages and that ancient version is not available in the gentoo repos anyway.

If I would get an old version of that library though, would it be possible to place it somewhere (e.g. in /usr/local/lib64/) such that the nsgclient finds it and I don't break things? Or would it be possible to have the two versions installed at the same time using a somewhat modified ebuild?
If these two options are impossible, any other suggestions would be highly appreciated as well :)

P.S.: I placed this post in the Portage Forum and not in the Networking Forum, as I'm currently trying to sort out these dependency and version issues. If someone knows this software and knows how to use openvpn instead to avoid using this proprietary software, it would be even better - but I doubt that it is possible.


Last edited by oneone on Thu Jul 30, 2020 7:40 am; edited 1 time in total
Back to top
View user's profile Send private message
Hu
Moderator
Moderator


Joined: 06 Mar 2007
Posts: 17914

PostPosted: Sun Jul 26, 2020 8:51 pm    Post subject: Reply with quote

Moved from P&P to Unsupported Software, since the primary target is a proprietary package and it requires extensive non-Gentoo Debian packages.

As for the question of whether you can use the old curl: yes. Set $LD_LIBRARY_PATH when running the target program to give the dynamic linker a list of extra directories to search. You can store your old curl in a directory on that list and it should be found only by processes with the modified $LD_LIBRARY_PATH. This applies regardless of whether you install the old version using a modified ebuild or by hand.
Back to top
View user's profile Send private message
oneone
n00b
n00b


Joined: 20 Sep 2017
Posts: 72

PostPosted: Mon Jul 27, 2020 5:47 am    Post subject: Reply with quote

Thanks for the quick reply! I will test that approach later that day, when I have time again, and will let you know, whether it worked :D
Back to top
View user's profile Send private message
oneone
n00b
n00b


Joined: 20 Sep 2017
Posts: 72

PostPosted: Tue Jul 28, 2020 4:47 am    Post subject: Reply with quote

Ok, so I've finally found the time to try your suggested solution and nsgclient indeed stops complaining about those missing libraries:

Code:
% LD_LIBRARY_PATH="/usr/lib/x86_64-linux-gnu/"  /opt/Citrix/NSGClient/bin/NSGClient


It also does not quit immediately, but it does basically nothing. Probably I am missing some kernel modules. Is there a way of determining, which modules the program is trying to access?
Back to top
View user's profile Send private message
Hu
Moderator
Moderator


Joined: 06 Mar 2007
Posts: 17914

PostPosted: Wed Jul 29, 2020 2:32 am    Post subject: Reply with quote

You could use dev-util/strace to get an extremely detailed log of what it is trying. The only other option I see is to check the upstream documentation for information on what kernel features it needs.
Back to top
View user's profile Send private message
oneone
n00b
n00b


Joined: 20 Sep 2017
Posts: 72

PostPosted: Wed Jul 29, 2020 4:50 am    Post subject: Reply with quote

strace looks like exactly the tool I am looking for, thanks! I found out that nsgclient was hiding in the system tray and waiting to establish a connection (I didn't have a system tray, so I didn't see that). Now it can for some reason not verify the SSL certificate. I will investigate this further.
Back to top
View user's profile Send private message
oneone
n00b
n00b


Joined: 20 Sep 2017
Posts: 72

PostPosted: Wed Jul 29, 2020 6:57 pm    Post subject: Reply with quote

Ok, so I investigated this topic a bit further. Copying some more librarys into /usr/lib/x86_64-linux-gnu/ let it stop complaining about not being able to verify the SSL certificate. Also I found out that I (maybe) have to start another service (/opt/Citrix/NSGClient/service/nsgverctl). Basically I am now at the same point, where even the Ubuntu users (for whom the package is meant to work) are struggling, because it seems to be very unstable anyway (https://discussions.citrix.com/topic/407860-nsgclient-over-ubuntu-exits-before-login/)

Since my initial problem is answered, I regard this question as solved and try to get further assistance at the Citrix Forums.

One last question I have however: Will the path specified in $LD_LIBRARY_PATH be searched in addition to the standard path or will this path be the only one, which will be searched for the required libraries? If the latter is the case, I might just have to create some symlinks from /usr/lib/x86_64-linux-gnu/ to /usr/lib64/ to let nsgclient find the respective librarys.

P.S.: This whole thing is such a mess. I kept track of all the changes that I did to the system, but the list becomes longer and longer. It just doesn't feel right to do this :?
Back to top
View user's profile Send private message
Hu
Moderator
Moderator


Joined: 06 Mar 2007
Posts: 17914

PostPosted: Thu Jul 30, 2020 1:31 am    Post subject: Reply with quote

According to man ld.so, the variable is purely additive.
Back to top
View user's profile Send private message
oneone
n00b
n00b


Joined: 20 Sep 2017
Posts: 72

PostPosted: Thu Jul 30, 2020 7:40 am    Post subject: Reply with quote

Ok, great. Thank you very much for your help. :) :)
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Unsupported Software All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum