How to use `curl` in old OSX? - macos

I have an old Mac mini 2006 with the following characteristics:
System Version: Mac OS X 10.5.8 (9L31a)
Kernel Version: Darwin 9.8.0
Boot Volume: Macintosh HD
on which I need to install some tools.
First of all note that I cannot use the browser because out of date and there are no software updates available from the Menu.
I need to install an old version of openCV and NodeJS tools such as nvm npm nodeExpress and few others.
However wget is not recognized as command and curl returns an error suggesting to use curl --insecure.
The command curl --insecure returns the error
curl: (35) error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version
While for openCV I could download the source code in another computer and then copy it there, I cannot think of any workaround for installing the other tools (directly or with brew since the installation is done with curl).
So my question is: how to make curl work on this OSX version or at least how to update it?
EDIT1: Trying to install homebrew I first downloaded the command, copied the file in the minimac and try to execute it. The error is:
We (and Apple) do not provide support for this old version.
This installation may not succeed.
After installation, you will encounter build failures and other breakages.
Please create pull-requests instead of asking for help on Homebrew's
GitHub, Discourse, Twitter or IRC. As you are running this old version,
you are responsible for resolving any issues you experience.
==> This script will install:
/usr/local/bin/brew
/usr/local/share/doc/homebrew
/usr/local/share/man/man1/brew.1
/usr/local/share/zsh/site-functions/_brew
/usr/local/etc/bash_completion.d/brew
/usr/local/Homebrew
Press RETURN to continue or any other key to abort
==> Downloading and installing Homebrew...
curl: (35) error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version
gzip: stdin: unexpected end of file
/usr/bin/tar: Child returned status 1
/usr/bin/tar: Error exit delayed from previous errors
Failed during: /bin/bash -o pipefail -c '/usr/bin/curl -fsSLk https://github.com/Homebrew/brew/tarball/master | /usr/bin/tar xz -m --strip 1'

I haven't tested this, but you might be able to run a web proxy that'd accept old-version TLS (https) connections (like v10.5's curl knows how to do) and then make newer-version TLS connections out to the web server. See the question Can I use Squid to upgrade client TLS connections? for info on how to configure squid's settings to do this. Squidman is downloadable with plain http, and includes a prebuilt copy of squid (along with a GUI setup/wrapper application). Squidman v3.1 was the last to support OS X v10.5, and I don't know what versions of TLS that'll support.
In OS X, there are sort of two different ways to configure client software to use a proxy. For GUI apps (browsers, etc), you make the relevant settings in System Preferences -> Network pane -> select the relevant service/interface -> Advanced button -> Proxy tab. For CLI tools like curl, you can generally either pass explicit options to them (probably won't work here), or set environment variables e.g. export HTTPS_PROXY=https://127.0.0.1:8080.
If you can upgrade OS X to v10.6, the builtin version of curl is still pretty limited, but you'll be able to run newer version of Squidman (though not necessarily the latest -- it supports v10.6, but only 64-bit Intel CPUs). Apple apparently still sells OS X v10.6 on DVD through their online store. Note that they also list newer versions, but all they get you is a download code to use in the App Store... which wasn't added until v10.6.6.

Related

Installing serf with scons as a prerequisite for SVN 1.8.9 -> no serf binary

I am running SVN 1.8.9 on Mac OSX 10.8.5. Currently the command "svn log" fails in a given repo with the error message:
svn: E170000: Unrecognized URL scheme for 'https://...'
My research showed that this is due to SVN having been compiled from source without the flag "--with-serf".
So, I downloaded and built serf (with its dependencies APU and APR) using the scons build tool as per the instructions. All went fine, but after installation, there is no serf binary command available. When I type 'serf' in the shell, I get the command not found error. Searching for a serf binary on my machine also doesn't give any results.
What might have gone wrong during the intallation?
Where should binary be and why isn't there?
Are there any workarounds to install SVN with serf?
(I tried 'brew install --build-from-source svn', but this doesn't seem to include the serf dependency either)
Thanks a lot in advance.
Cheers,
Martin
Here is what I did:
Download latest SVN
Download the latest SCONS.
cd ~/Downloads/
tar -zxvf "latest SCONS".tar.gz
tar -zxvf "latest SVN".tar.gz
cd "latest SCONS"
python setup.py install
cd ~/Downloads/"latest SVN"
sh get-deps.sh serf
cd serf
scons install
cd ..
./configure --with-serf
make install
I got the same error here and solved by following this post:
https://ahmadawais.com/installing-svn-subversion-on-yosemite-after-removing-the-old-version/
I had to remove some old references to subversion inside:
/usr/local/include/subversion-1/
/usr/local/include/serf-1/
Building Subversion is a pain due to the dozens of dependency issues. Usually Apache httpd has to be rebuilt with Subversion too, and then there's the APR library.
The easiest solution is to download a package that has everything you need. CollabNet doesn't have a Macintosh server package, but Wandisco does. (Look for Yosemite down the Macintosh list). This will include Apache, Subversion, and the Subversion client all in one package.
I haven't used Wandisco's package before. However, I can tell you that CollabNet installs everything under /opt/collabnet including a new and complete Apache server. This also sets up /etc/init.d to start this Apache server and disables the original. I assume a similar thing happens with Wandisco (although Mac OS X doesn't use /etc/init.d, but Launch Services).
This is probably way easier than attempting to configure your Mac with everything you need for Subversion.

Tor + Homebrew & Mavericks OpenSSL

I'm trying to install the command-line version of Tor. I have actually already done so using Homebrew, but it gives me the following notice:
[notice] Your OpenSSL version seems to be 0.9.8y. We recommend 1.0.0 or later.
So I updated OpenSSL. openssl version now yields in 1.0.1f.
When I run which openssl in Terminal, it returns with /usr/local/bin/openssl.
When I run which tor in Terminal, it returns with /usr/local/bin/tor.
So why isn't Tor seeing the updated version of OpenSSL?
So why isn't Tor seeing the updated version of OpenSSL?
Mac OS X will do as much as it can to load 0.9.8 in /usr/lib:
$ find /usr/ -iname libssl*
/usr//lib/libssl.0.9.7.dylib
/usr//lib/libssl.0.9.8.dylib
/usr//lib/libssl.dylib
LD_PRELOAD is not honored on Mac OS X (IIRC). Try using DYLD_LIBRARY_PATH. But be sure your Tor linked against 1.0.1, and not 0.9.8. Otherwise, you'll catch obscure errors that make no sense.
When I run which tor in Terminal, it returns with /usr/local/bin/tor
Did you build Tor yourself? If you built it yourself, then here's a few notes from the field with respect to Apple's linkers. (1) they silently ignore rpath's. (2) they silently ignore requests like -Bstatic. (3) more generally, they always link to the shared object if available (even on iOS where the only thing you are suppose to use is an archive). (4) LD_PRELOAD is not honored.
You have to be persistent to link to the OpenSSL in /usr/local/ssl/. The best way I have found is to remove -L, remove -lssl and remove -lcrypto from the makefiles; and add the full path names of the static archive at /usr/local/ssl/lib/libssl.a and /usr/local/ssl/lib/libcrypto.a.
I uninstalled Tor via Homebrew and installed it again via Homebrew. I needed to have my $PATH set BEFORE I installed Tor. Doing this fixed my problem.

Incorrect check of SIP version during PyQt installation

I have been trying to install PyQt on my mac (OSX 10.6.8), but I still having this problem:
When I try to install PyQt-mac-gpl-4.9.6, I get this
Error: This version of PyQt requires SIP v4.14.2 or later.
The weird thing is that when I want to check for sip version on the console and write
sip -V
,I get the correct version: 4.14.2
I have checked my PATH but non of the online tips that I have found have helped me. How do I fix this?
I would recommend checking to see if you have sip installed in different locations, with the newer version being in a path that is not at the head of your PATH.
mdfind -name sip | grep '/bin/'
This should tell you all of the sip binaries on your computer. Check the version of all of them, and then make sure that path is at the front of PATH
What it could actually be, regardless of it seeming like you only have one sip, is a leftover .pyc file that is getting picked up before your intended sip. Try this to confirm:
$ python
>>> import sipconfig
>>> print sipconfig
This will tell you where it is finding sipconfig. If it looks like the wrong spot, or if you check it and all that is left is the pyc file, remove it. Then your newer sip should be found properly.
I had a similar issue after installing sip 4.14.2 over a previous version of 4.13.1 on Mac OSX 10.7.4 and Python 2.7. Strangely, the version of sip from the command line was different from the version from the Python sipconfig module.
$ sip -V
4.14.2
$ python -c "import sipconfig; print sipconfig.version_to_string(sipconfig.Configuration().sip_version)"
4.13.1
I ran through the install again, this time with running the install step as 'sudo make install' and the two versions matched at 4.14.2 and the PyQt instal was successful.
$ cd ~/Downloads/sip-4.14.2/
$ python configure.py
$ make
$ sudo make install

Unable to get MacPort functionality after installing Xcode 4.3

I am having trouble getting MacPorts to function properly. I just installed OSX Lion 10.7.3 I downloaded and installed MacPorts first, and then after reading the requirements, I downloaded Xcode4.3 from the App Store, and then installed it. I launched Xcode and it looks to be operational and functional. However when I attempted to port with MacPorts, it gave me this error message(excerpt):
Warning: xcodebuild exists but failed to execute
Warning: Xcode does not appear to be installed; most ports will likely fail to build.
I followed the advice from:
How do i install additional packages for Xcode on OSX Lion to allow MacPorts to work
and installed command_line_tools_for_xcode from the Preferences within Xcode. I closed Xcode, and again got the errors:
$ sudo port install libsocketsPassword:
Warning: xcodebuild exists but failed to execute
Warning: Xcode does not appear to be installed; most ports will likely fail to build.
---> Computing dependencies for libsockets
---> Dependencies to be installed: openssl zlib
---> Extracting zlib
Error: Couldn't determine your Xcode version (from '/usr/bin/xcodebuild -version').
Error:
Error: If you have not installed Xcode, install it now; see:
Error: http://guide.macports.org/chunked/installing.xcode.html
Error:
Error: Target org.macports.extract returned: unable to find Xcode
Error: Failed to install zlib
Log for zlib is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_archivers_zlib/zlib/main.log
Error: The following dependencies were not installed: openssl zlib
Error: Status 1 encountered during processing.
I am uncertain where to go next with this. How do i trouble shoot my Xcode and MacPort interface?
In theory this should work if you have Xcode4.3 installed (in /Applications):
$ sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer/
(And you've installed the optional command line tools)
Everything will start working fine after installation of "Command Line Tools for Xcode" package.
You can get it from here: https://developer.apple.com/downloads/index.action#
Please see the MacPorts migration instructions for Xcode 4.3.
The instructions are pretty involved. You need to run xcode-select to set a new tools path, update developer_dir in macports.conf (as described by Henk Poley), re-install MacPorts (ouch), and finally uninstall and re-install all of your ports (double ouch).
Edit: libpvx still wouldn't install after the above. Two extra steps were required:
sudo ln -s /Developer /
sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs /SDKs
YMMV if you have different ports installed!
Also in /opt/local/etc/macports/macports.conf change the line with developer_dir to point to / instead of /Developer.
After
sudo xcode-select -switch /Applications/Xcode.app
I also had to run
sudo xcodebuild -license
and accept the licence
Here is a solution that has worked for me:
Install Command Line Tools for Xcode
Xcode -> Preferences -> Downloads
Help MacPorts find the right Xcode folder
sudo /usr/bin/xcode-select -switch /Applications/Xcode.app
Create symbolic links for clang compilers as they now live elsewhere
sudo ln -s `which clang` /Applications/Xcode.app/Contents/Developer/usr/bin/
sudo ln -s `which clang++` /Applications/Xcode.app/Contents/Developer/usr/bin/
Try using trunk, there's no release supporting Xcode 4.3 yet.
Setting the developer path in /opt/local/etc/macports.conf works for me,
developer_dir /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain
since most of the compilers are stored there now instead of /usr/bin under Developer.
None of this works for me. Wait for macports to release a new version that officially supports XCode 4.3+
sudo mv /usr/bin/xcodebuild /usr/bin/xcodebuild.old
sudo ln -s /Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild /usr/bin/xcodebuild
Starting with Xcode 4.3, the command-line build tools are not installed by default. Launch Xcode, open the Preferences, and go to the Downloads tab. From there you should have an option to install the command-line tools.
You can also download them from the web here: https://developer.apple.com/downloads/index.action
Disclaimer: I haven't installed Xcode 4.3 yet. I have only read about it on the web.
As of 27/2/2012, the official suggestion from MacPorts seems to be to not use XCode 4.3 and instead use 4.1 through 4.2.1, which can be downloaded from Apple.
There is a bug ticket which might be useful to follow the evolution of this.
Incidentally, and as reported in my comment #11 in that bug report, I am able to build ports without warnings by using the 2 most sane-looking suggestions found in this question: sudo /usr/bin/xcode-select -switch /Applications/Xcode.app/Contents/Developer and changing developer_dir in /opt/local/etc/macports/macports.conf to /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain
I have macports installed without admin/root privileges, so I was unable to test the xcode-select answers. However, I observed that Pall Melsted's answer worked, but not initially. What I found out was that I had not accepted the Xcode 4.5 license agreement!
If you have just installed Xcode for the purposes of macports, and you haven't accepted the Xcode license yet, you might get the error presented by the original post. When I checked my Xcode version using /usr/bin/xcodebuild -version, I was given the prompt to read and accept the license. After doing so, and after having made the changes suggested by Pall to the macports.conf developer_dir, it all works now.
As alternative: you can make downgrade of Xcode to 4.2.1 version. DMG of Xcode 4.2.1 placed here: https://developer.apple.com/downloads/index.action
After this MacPorts became works fine for me.
This is fixed in MacPorts 2.0.4.
To upgrade:
Download MacPorts 2.0.4 from the install site or run sudo port selfupdate.
Run the MacPorts migration described here to reinstall all ports. This is painful but required to get back to a working state.
You should definitely run sudo xcode-select -switch /Applications/Xcode.app like everyone here says, that'll fix many problems, but certainly not all.
Afaik, all the remaining problems exist within the configuration information for various packages. You might simply reinstall MacPorts as described in the migration instructions, but I found another solution.
You should begin finding all effected port files using commands like grep /Developer/ ..., after executing sudo bash and cd /opt/local naturally.
You should identify all effected ports by using port provides ..., which I piped through sed and sort | uniq. You could simply reinstall all these ports using either port -n upgrade --force ... or separate port uninstall ... and port install ... commands.
I recommend using one large port -n upgrade --force ... command to avoid duplicate rebuilds of dependencies, using the separate uninstall and install commands afterwards.
There are of course various ports for which /Developer exists only inside text config files, meaning you can fix them manually with sed -i -e 's/\/Developer//g' ..., but you cannot do so with binaries obviously.
I'm afraid you must at minimum rebuild all your Python and Perl installations, making this upgrade an ideal time to clean out packages that depend upon older versions, ala python26 and perl5.8.
There are several technically effected ports I decided against rebuilding like fuse4x-kext, who contained /Developer inside Library/Extensions/fuse4x.kext/Contents/MacOS/fuse4x but hasn't prevented sshfs from working correctly.
I had initially installed xcode 3.2.2, after which I installed 4.3. When I ran the xcode-select, I still got the same error about no xcode project in /Applications. I then dug into the /usr/bin/xcodebuild script and found out that this was working correctly, and another instance of xcodebuild (the one installed with xcode 4.3, not the one in /usr/bin) was being run and returning the error:
xcodebuild: error: The directory /Applications does not contain an Xcode project.
It seems the /usr/bin/xcode-select does not work for xcode 4.3, (it's compiled so you can't really see why it's not working). Strings doesn't give any clues. Good thing osx has strace.. oh wait.
Anyways, the best I could do was modify /opt/local/etc/macports.conf
and uncomment the line containing the path to the xcode installation. That seems to fix my problem for the most part.

curl "no start line" LibreSSL errors after update to OSX High Sierra

I am trying to connect to a server using curl; this server requires a .p12 certificate file and a passphrase. This has not been a problem in the few weeks I have been running my program. However, after my update to High Sierra, I now get LibreSSL errors. My colleagues running Windows 7 and 10 don't have this issue, either:
In Terminal:
$ curl -k https://server_metadata_link --cert certificate.p12 --pass “password”
curl: (58) could not load PEM client certificate, LibreSSL error error:0906D06C:PEM routines:PEM_read_bio:no start line, (no key found, wrong pass phrase, or wrong file format?)
In R:
> set_config(config(ssl_verifyhost = 0L, ssl_verifypeer = 0L))
> set_config(config(sslcert = certificate.p12, keypasswd = password))
> GET("https://server_metadata_link")
Error in curl::curl_fetch_memory(url, handle = handle) : could not load PEM client certificate, LibreSSL error error:0906D06C:PEM routines:PEM_read_bio:no start line, (no key found, wrong pass phrase, or wrong file format?)
I would prefer not to backtrack to Sierra, as I have a colleague with a new Mac who is stuck in High Sierra. I don't think there is an error with the certificates, as like I said, this worked fine before the upgrade to High Sierra. After researching this issue, I think it may have something to do with Mac's move from OpenSSL to LibreSSL in High Sierra. I don't know what effect that might have on the back end, but it could explain why only my colleague and I have the error, while another colleague with Sierra does not.
Another issue may be that my version of curl is 7.54.0 (as is my colleague's with High Sierra), while the latest is 7.58.0. I don't know if this could also be causing a problem, but as a separate issue I'm not sure how to force my Mac to use the most recent version of curl; since it's included in the Mac, Homebrew won't let me install the latest version.
The only other note I have is that if I change the R config from "sslcert = certificate.p12" to "sslkey = certificate.p12" or the Terminal command from "--cert certificate.p12" to "--key certificate.p12" I get a normal 403 error saying I couldn't connect to the server.
Any help would be appreciated, and please let me know if there is any other information I should provide. Thanks in advance.
Homebrew will let you install the latest version of homebrew, but it is keg-only since OSX provides an older version of curl:
$ brew install curl
==> Downloading https://homebrew.bintray.com/bottles/curl-7.58.0.high_sierra.bottle.tar.gz
Already downloaded: /Users/kyle.varga/Library/Caches/Homebrew/curl-7.58.0.high_sierra.bottle.tar.gz
==> Pouring curl-7.58.0.high_sierra.bottle.tar.gz
==> Caveats
This formula is keg-only, which means it was not symlinked into /usr/local,
because macOS already provides this software and installing another version in
parallel can cause all kinds of trouble.
If you need to have this software first in your PATH run:
echo 'export PATH="/usr/local/opt/curl/bin:$PATH"' >> ~/.zshrc
You need to run the export command for it to run. After updating $PATH, you should get
$ which -a curl
/usr/local/opt/curl/bin/curl
/usr/bin/curl
After doing this, when running curl with a p12 file, it asks for me to unlock OSX keychain and resolves the could not load PEM client certificate error.

Resources