distfile downloads failing on https

Ken Cunningham ken.cunningham.webuse at gmail.com
Wed Feb 21 16:11:26 UTC 2018


I should have been more descriptive about the /opt/bootstrap part of the post below. 

Like  you, I didn't like the circular dependency. If you "sudo port uninstall active", you're hooped. So here's what I actually do on all systems 10.4 to 10.7

using Macports from this page <https://www.macports.org/install.php> and more specifically from here <https://github.com/macports/macports-base/releases/download/v2.4.2/MacPorts-2.4.2.tar.bz2> and with reference to the instructions for <https://guide.macports.org/#installing.macports.source.multiple>

1. install a copy of macports from source code into /opt/bootstrap

cd MacPorts-2.4.2
./configure --prefix=/opt/bootstrap --with-applications-dir=/opt/bootstrap/applications
make
sudo make install
cd ..
rm -rf MacPorts-2.4.2

then as per <https://guide.macports.org/#installing.macports.source.multiple>

bbedit /opt/bootstrap/etc/macports/macports.conf
and add 
startupitem_install no

2. once that is finished, I do this

sudo /opt/bootstrap/bin/port sync
sudo /opt/bootstrap/bin/port -v -N install curl

You should now have an independent free-standing macports installation with curl

3. now using a fresh copy of the Macports source

cd MacPorts-2.4.2
./configure --with-curlprefix=/opt/bootstrap
make
sudo make install

and then adjust your PATH to point to /opt/local/bin as usual for MacPorts.

You are done. No more circular dependency. You can use MacPorts as you wish to.

You can pretty much forget about /opt/bootstrap after that if you want to. The curl is 10 years newer, and so will likely last as long as you need. 


You can update /opt/bootstrap if you want to. You just have to keep the PATHs straight, which requires a clear head.

I always disable the PATH pointing to /opt/local/bin before I do this, and then either add the path to /opt/bootstrap/bin, or just:

sudo /opt/bootstrap/bin/port -v sync
sudo /opt/bootstrap/bin/port -v -N upgrade outdated



NOTE:

when Macports updates to a new version, it does not remember the curlprefix, and so it installs against /usr/lib/libcurl again.

For this reason, I always 

sudo port -v sync

to update macpports ports.

I manually install updates to macports using the souce code and the instructions in #3 above.

Sorry if this is long and seems complicated -- I was trying to be as complete as possible.

Ken






On 2018-02-21, at 4:18 AM, Jan Stary wrote:

> On Feb 21 12:43:28, hans at stare.cz wrote:
>> A more general proposed solution was to bunlde a newer curl with MP,
>> in partcular one built against a newer SSL/TLS library:
>> https://trac.macports.org/ticket/51516
> 
> It was also suggested there to recompile MP
> using its own already installed curl port.
> 
> Indeed,
> ./configure --with-curlprefix=/opt/local/
> results in MacPorts that uses its own /opt/local/bin/curl
> to download distfiles, and my immediate problem disappears.
> 
> But the circular dependency on itself doesn't seem right.
> 
> Should the curl port be a fetch dependency (if there is such a thing)
> for the affected ports, and should MP use the port's curl(1)
> to download their distfiles?
> 
> 	Jan
> 



More information about the macports-users mailing list