trouble installing curl using configure;make;make install
SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I second the recommendation to start from the official Slackware build script. If you must do it yourself, though:
Code:
./configure --prefix=/usr
make
make install DESTDIR=/tmp/package-curl-7.34.0
cd /tmp/package-curl-7.34.0
makepkg -l y -c n /tmp/curl-7.34.0-x86-1.tgz
installpkg /tmp/curl-7.34.0-x86-1.tgz
If you do that, you'll want to make sure that the documentation is in /usr/doc (not /usr/share/doc) and the manpages are in /usr/man (not /usr/share/man).
I think the issue is they originally let configure run without options so it installed to /usr/local/, then, without running make uninstall, they ran the configure again specifying /usr/
If that is the case, you could likely just run configure && make && make install to rebuild the one that would go to /usr/local/, then run make uninstall. The make install should overwrite all the old files, then they can be removed with make uninstall.
After that, I would either follow dugan's instructions above, which is basically a stripped down SlackBuild, or grab the source I linked to earlier and run that SlackBuild. However, if you're having issues with xz, you could also just grab the SlackBuild and slack-desc from here and then just change the version at the top of the SlackBuild to the version 7.34.0 and then run the SlackBuild (as root run [b]sh curl.SlackBuild[/url] and then you should be able to install the resulting package in /tmp/ using upgradepkg --install-new /tmp/curl*.tgz
I see Slackware source for curl and there is a cacert.pem.bz2 file bundled with the package
file created with: lftpget http://curl.haxx.se/ca/cacert.pem && rm cacert.pem.bz2 && bzip2 -9 cacert.pem
SlackBuild script uses --with-ca-bundle=/usr/share/curl/ca-bundle.crt as ./configure option
OK, I was able to do multiple makes and uninstalls and got it seemingly corrected. New problem: My cURL command still says "unsupported version". This whole problem started when UPS just stopped allowing TLS 1.0 connections last week. TLS >=1.1 is currently acceptable on their end.
This would require upgrading your openssl version to at least 1.0.1 as that is when support for TLSV1.1 was added. However, I'm not sure if upgrading it that far would work without having substantial repercussions (like breaking other packages that rely on the old version). Tread carefully and make backups!
Hmmm, according to the Release Notes, 1.0.1 was when support for TLS 1.2 started. I upgraded to that anyway. Seemed to install OK. I then reinstalled cURL and got this error:
# ./configure --prefix=/usr --with-ssl=/usr/local/ssl --disable-ldap && make && make install
configure: pkg-config: SSL_LIBS: "-lssl -lcrypto "
configure: pkg-config: SSL_LDFLAGS: "-L/usr/local/lib "
configure: pkg-config: SSL_CPPFLAGS: "-I/usr/local/include "
checking for CRYPTO_lock in -lcrypto... yes
checking for SSL_connect in -lssl... no
checking for ssl with RSAglue/rsaref libs in use... checking for SSL_connect in -lssl... (cached) no
no
configure: error: OpenSSL libs and/or directories were not found where specified!
Any ideas?
Last edited by caseyo2112; 01-22-2018 at 02:35 PM.
I'm not sure off the top of my head. Have you looked at the configure.log file and see what it's specifically checking for? Did you install openssl with the --prefix=/usr command as you did here, or is it in /usr/local/?
Quote:
Hmmm, according to the Release Notes, 1.0.1 was when support for TLS 1.2 started.
In the changelog I linked to for v1.0.1, it stated the following, which is what I searched for:
Code:
*) Initial TLSv1.1 support. Since TLSv1.1 is very similar to TLS v1.0 only
a few changes are required:
Add SSL_OP_NO_TLSv1_1 flag.
Add TLSv1_1 methods.
Update version checking logic to handle version 1.1.
Add explicit IV handling (ported from DTLS code).
Add command line options to s_client/s_server.
[Steve Henson]
However, after you mentioned that, I looked further up the same changelog entry and they do mention the following, so it seems they added both 1.1 and 1.2 in the same release.
Code:
*) Initial TLS v1.2 support. Add new SHA256 digest to ssl code, switch
to SHA256 for PRF when using TLS v1.2 and later. Add new SHA256 based
ciphersuites. At present only RSA key exchange ciphersuites work with
TLS v1.2. Add new option for TLS v1.2 replacing the old and obsolete
SSL_OP_PKCS1_CHECK flags with SSL_OP_NO_TLSv1_2. New TLSv1.2 methods
and version checking.
[Steve Henson]
I see several errors in config.log, the first being related to gcc. Not sure which are most critical. I'm about to start building them a server but we are a couple months out from ever going live. So, I need to fix this issue ASAP for the customer, but don't want to get too far down a rabbit hole on this particular install.
Looks like this issue is already reported on curl's bug tracker, but at the bottom they said it isn't really a bug. Based on my limited understanding, I'm wondering if it is because you didn't build openssl with shared libraries. Maybe it would be worth using 14.1's SlackBuild for openssl as that builds 1.0.1e, and is set to use shared libraries. However, if you do this, you need to run make uninstall in your previous openssl compilation directory to remove the existing version so the new one doesn't conflict with it.
Code:
su -
lftp -c "open https://mirror.slackbuilds.org/slackware/slackware-14.1/source/n/; mirror -c -e openssl"
cd openssl
sh openssl.SlackBuild
upgradepkg --install-new /tmp/openssl-1.0.1e-i486-1.txz
Since you're compiling source, it should work the same as manually building the package. You just don't want to install pre-compiled binaries that were compiled for a different version.
lftp isn't recognized, and I had previous issues getting upgradepkg to work with txz files. Alternate way to accomplish this? Again, not a Slackware user.
And I forgot about your txz issues, but that's simple to change by changing the extension in the makepkg lines from txz to tgz, but using sed makes it even easier.
Code:
sed -i 's/txz/tgz/g' openssl.SlackBuild
And I forgot that this SlackBuild will create two packages, an openssl and openssl-solibs. You'll want to install both once they're done compiling.
Sorry for the delays in replying... I'm re-tiling my laundry room.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.