Hi Martin, That means, if you can find out how the packages linked against libcurl-compat or libcurl-gnutls are built from source, you can do the same with the gnunet package.
The packages in the official repositories that explicitly require libcurl-gnutls (and not simply libcurl) are spotify-launcher <https://archlinux.org/packages/community/x86_64/spotify-launcher/> ( PKGBUILD <https://github.com/archlinux/svntogit-community/blob/packages/spotify-launcher/trunk/PKGBUILD> / package source code <https://github.com/kpcyrd/spotify-launcher/archive/refs/tags/v0.3.0.tar.gz>) and steam-native-runtime <https://archlinux.org/packages/multilib/x86_64/steam-native-runtime/> ( PKGBUILD <https://github.com/archlinux/svntogit-community/blob/packages/steam-native-runtime/trunk/PKGBUILD> / no source code here, it's just glue). But it is a mystery to me how they would find out. Ah look here: https://github.com/archlinux/svntogit-packages/blob/packages/curl/trunk/PKGBUILD#L94 The curl-compat package does link libcurl.so against the versioned files. And curl-gnutls does the same: https://github.com/archlinux/svntogit-packages/blob/packages/curl/trunk/PKGBUILD#L94 That libcurl-compat package compiles curl with different build settings, then renames libcurl.so.4.8.0 to libcurl-compat.so.4.8.0, and finally links libcurl.so.3, libcurl.so.4.0.0, libcurl.so.4.1.0, libcurl.so.4.2.0, libcurl.so.4.3.0, libcurl.so.4.4.0, libcurl.so.4.5.0, libcurl.so.4.6.0, libcurl.so.4.7.0 to libcurl-compat.so.4.8.0 (these version are all old versions, and the files libcurl.so, libcurl.so.4 and libcurl.so.4.8.0 remain linked to the binary shipped by the original curl package). That libcurl-gnutls package does exactly the same, but the basename of the symlinks becomes libcurl-gnutls.so.* instead of simply libcurl.so.*. FYI I updated the detection logic again. You may check if that works for you know. If I try to build the last GNUnet commit <https://git.gnunet.org/gnunet.git/tree/?id=6745bed70af20a11aee5e0c8f6e7bd8479031e9e> with libcurl-gnutls from the official Arch repository I still get ... HTTP Client: curl (OpenSSL) ... while if I use my hacked libcurl-gnutls I get ... HTTP Client: curl-gnutls ... I think I found a solution. I will publish a glue package on AUR named libcurl-gnutls.so, which will depend on the official libcurl-gnutls, and on which GNUnet will depend. All this glue package will do is simply creating an unversioned symlink. --madmurphy On Wed, Sep 7, 2022 at 7:33 AM Martin Schanzenbach <mschanzenb...@posteo.de> wrote: > FYI I updated the detection logic again. You may check if that works for > you know. > Know that even if it detected "curl-openssl" for you the last time, it > probably was correctly linked against the "drop-in" libcurl-gnutls. > We just were not able to detect that. > > BR > > Excerpts from Martin Schanzenbach's message of 2022-09-07 06:06:52 +0000: > > Excerpts from madmurphy's message of 2022-09-06 22:17:53 +0100: > > > Okay, about the libcurl-gnutls package, Martin was right. If I add this > > > line to the PKGBUILD of that package, > > > > > > ln -s libcurl-gnutls.so.4.8.0 "${pkgdir}"/usr/lib/libcurl-gnutls.so > > > > > > Everything goes well in GNUnet and the configure script prints > > > > > > ... > > > HTTP Client: curl-gnutls > > > ... > > > > > > Now the question is what to do. In theory I could publish my own > version of > > > libcurl-gnutls on AUR with only that line added, and make GNUnet > depend on > > > it. But I wonder why Arch developers did that. My guess is that for > > > creating the libcurl-gnutls package they copied and hacked the section > of > > > the PKGBUILD that builds libcurl-compat > > > <https://archlinux.org/packages/core/x86_64/libcurl-compat/>, which > is a > > > glue package that also does not ship the unversioned .so file > > > <https://archlinux.org/packages/core/x86_64/libcurl-compat/files/>. > Who > > > knows… > > > > > > > Ah look here: > https://github.com/archlinux/svntogit-packages/blob/packages/curl/trunk/PKGBUILD#L94 > > The curl-compat package does link libcurl.so against the versioned > > files. > > And curl-gnutls does the same: > https://github.com/archlinux/svntogit-packages/blob/packages/curl/trunk/PKGBUILD#L94 > > > > So, this would actually confirm my initial thoughts that those are > > drop-in replacements and that we should not check for libcurl-gnutls at > > all. > > I have no idea how to "detect" the version of curl in this case. > > But, I also do not think it really matters. > > So maybe we should just remove the logic that tries to identify the curl > > version. > > > > > Jacki, what do you suggest? The PKGBUILD of libcurl-gnutls attached to > this > > > email works well for GNUnet. But for publishing on AUR we would need to > > > rename it in some way. > > > > > > --madmurphy > > > > > > On Tue, Sep 6, 2022 at 9:06 PM Martin Schanzenbach < > mschanzenb...@posteo.de> > > > wrote: > > > > > > > Excerpts from Christian Grothoff's message of 2022-09-06 21:34:45 > +0200: > > > > > On 9/6/22 14:43, madmurphy wrote: > > > > > > Just out of curiosity, why do I get > > > > > > > > > > > > gstreamer: no > > > > > > > > > > You need also certain related gstreamer libraries > > > > > (gstreamer-plugins-base or something like that) before gstreamer is > > > > > considered "complete enough" to work for GNUnet. > > > > > > > > > > > > > I have to disagree that this is what configure.ac checks. I invite > you > > > > to investigate as well. I am at a loss as what exactly the logic > > > > currently is. It sais "gstreamer no" for me, too, but conversation is > > > > built with the "gst" "backend". Whatever that means. Anyway. > > > > > > > > > -Christian > > > > >