Opened 4 years ago

Closed 3 years ago

Last modified 3 years ago

#60854 closed defect (fixed)

Wrong subversion dependency when fetch.type is svn with Xcode 11.4 and later

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by: jmroot (Joshua Root)
Priority: Normal Milestone: MacPorts 2.7.0
Component: base Version: 2.6.2
Keywords: haspatch Cc: kencu (Ken)
Port:

Description (last modified by ryandesign (Ryan Carsten Schmidt))

When fetch.type is svn, MacPorts base declares a dependency on bin:svn:subversion. On Catalina with only the command line tools installed, /usr/bin/svn exists but is a stub that doesn't do anything:

:info:fetch svn: error: The subversion command line tools are no longer provided by Xcode.

We already change the dependency to port:subversion on old OS versions whose svn can't connect to secure servers anymore. We should also do this when on a new system with a stub svn.

Change History (6)

comment:1 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)

It appears that Xcode 11.4 and the Xcode 11.4 version of the command line tools no longer have svn. But if you upgraded to the newer command line tools from an older version that had svn, then svn was not deleted during the upgrade. So on our 10.15 buildbot worker which has been upgraded through several versions /Library/Developer/CommandLineTools/usr/bin/svn still exists but on a newly set up machine that started with the 11.5 command line tools it does not.

And this is weird: if svn isn't in the command line tools but is installed with MacPorts, /usr/bin/svn will run it!

So maybe on 10.15 we should change the dependency from bin:svn:subversion to path:/Library/Developer/CommandLineTools/usr/bin/svn:subversion. Users who just have Xcode installed and not the command line tools would be forced to use MacPorts subversion even though Xcode might contain a working svn, but I'm probably willing to live with that. I can't think of a better way. Using a different dependency based on whether svn exists can't really be done because the dependency will go in the portindex which is generated on the server not on the user's machine.

comment:2 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)

Description: modified (diff)
Summary: Wrong subversion dependency when fetch.type is svn on CatalinaWrong subversion dependency when fetch.type is svn with Xcode 11.4 and later

comment:3 Changed 3 years ago by kencu (Ken)

Given that there turn out to be very very few systems where the system svn is worth using at all, and those systems are no longer current, what say we just make everyone's life easier and always require macports subversion for SVN fetching.

The we can just forget about all the tricky business of seeing which (few) os versions have a working svn.

comment:4 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: kencu added
Keywords: haspatch added

comment:5 Changed 3 years ago by jmroot (Joshua Root)

Owner: set to jmroot
Resolution: fixed
Status: newclosed

In 4acfd686dc1e88befaf288c549d7e895e1b13347/macports-base (master):

Always use subversion port for svn fetch

Closes: #60854

comment:6 Changed 3 years ago by jmroot (Joshua Root)

Milestone: MacPorts 2.7.0
Note: See TracTickets for help on using tickets.