[MacPorts] #15868: port-1.600: port sync fails with "please get a newer Subversion client"
#15868: port-1.600: port sync fails with "please get a newer Subversion client" ----------------------------------+----------------------------------------- Reporter: kimuraw@macports.org | Owner: macports-tickets@lists.macosforge.org Type: defect | Status: new Priority: Normal | Milestone: Component: base | Version: 1.6.0 Keywords: | ----------------------------------+----------------------------------------- I have some port trees under subversion. Today, I got the following error at "sudo port sync". {{{ % which svn /opt/local/bin/svn % /opt/local/bin/svn --version svn, version 1.5.0 (r31699) : % /usr/bin/svn --version svn, version 1.4.4 (r25188) : % sudo port -v sync Synchronizing local ports tree from file:///opt/dports.dev svn: This client is too old to work with working copy '/opt/dports.dev'; please get a newer Subversion client port sync failed: Synchronization of the local ports tree failed doing an svn update }}} I fixed this problem with changing the value of svn_path to "/opt/local/bin/svn" in /Library/Tcl/macports1.0/macports_autoconf.tcl. I think autoconf_hint is not so needed at in macports1.0/macports.tcl(line 1317) to detect the path of `svn' command. -- Ticket URL: <http://trac.macports.org/ticket/15868> MacPorts <http://www.macports.org/> Ports system for Mac OS
#15868: port-1.600: port sync fails with "please get a newer Subversion client" -----------------------------------+---------------------------------------- Reporter: kimuraw@macports.org | Owner: macports-tickets@lists.macosforge.org Type: defect | Status: new Priority: Normal | Milestone: MacPorts base bugs Component: base | Version: 1.6.0 Resolution: | Keywords: -----------------------------------+---------------------------------------- Changes (by ryandesign@macports.org): * milestone: => MacPorts base bugs -- Ticket URL: <http://trac.macports.org/ticket/15868#comment:1> MacPorts <http://www.macports.org/> Ports system for Mac OS
#15868: port-1.600: port sync fails with "please get a newer Subversion client" -----------------------------------+---------------------------------------- Reporter: kimuraw@macports.org | Owner: macports-tickets@lists.macosforge.org Type: defect | Status: new Priority: Normal | Milestone: MacPorts base bugs Component: base | Version: 1.6.0 Resolution: | Keywords: -----------------------------------+---------------------------------------- Comment (by raimue@macports.org): Working copies of svn 1.4.x and svn 1.5.x are not compatible. Apple provides svn 1.4.x in `/usr/bin/svn`, MacPorts provides svn 1.5.x in `${prefix}/bin/svn`. So once you used `svn up` on your working copy with the client from MacPorts it was automatically upgraded to svn 1.5.x. Maybe we should stop hardcoding the path to `svn` in macports_autoconf.tcl and simply use the first `svn` in PATH, which usually is `${prefix}/bin/svn`. I don't see an advantage of hardcoding paths for `svn` and `rsync`. If `${prefix}/bin/{svn,rsync}` does not work for whatever reason, there is still the possibility to deactivate the regarding port and use the system provided binary. If we remove it, I would also add `--svn-path` and `--rsync-path` options to `port sync`, so it could be overwritten from the command line, like this: {{{ $ port sync --svn-path /usr/bin/svn --rsync-path /usr/bin/rsync }}} Another solution would be to add an option to macports.conf for this, but comment it out by default as there is no common default value for Tiger and Leopard. -- Ticket URL: <http://trac.macports.org/ticket/15868#comment:2> MacPorts <http://www.macports.org/> Ports system for Mac OS
#15868: port-1.600: port sync fails with "please get a newer Subversion client" -----------------------------------+---------------------------------------- Reporter: kimuraw@macports.org | Owner: macports-tickets@lists.macosforge.org Type: defect | Status: new Priority: Normal | Milestone: MacPorts base bugs Component: base | Version: 1.6.0 Resolution: | Keywords: Port: | -----------------------------------+---------------------------------------- Changes (by ryandesign@macports.org): * cc: raimue@macports.org, ryandesign@macports.org (added) Comment: We need to fix this. I would be ok with just using whatever {svn,rsync} is found in PATH. -- Ticket URL: <http://trac.macports.org/ticket/15868#comment:3> MacPorts <http://www.macports.org/> Ports system for Mac OS
#15868: port-1.600: port sync fails with "please get a newer Subversion client" -----------------------------------+---------------------------------------- Reporter: kimuraw@macports.org | Owner: raimue@macports.org Type: defect | Status: assigned Priority: Normal | Milestone: MacPorts 1.7.0 Component: base | Version: 1.6.0 Resolution: | Keywords: Port: | -----------------------------------+---------------------------------------- Changes (by raimue@macports.org): * owner: macports-tickets@lists.macosforge.org => raimue@macports.org * status: new => assigned * milestone: MacPorts base bugs => MacPorts 1.7.0 Comment: I removed the hardcoded svn and rsync paths from macports1.0 in the [attachment:patch-macports-no-svn-rsync-from-autoconf.diff attached patch]. There is still some hardcoded stuff in port1.0/port_autoconf.tcl.in, I think mostly for fetching over cvs/svn/git. Should we do the same there? Considering this ticket for 1.7.0. -- Ticket URL: <http://trac.macports.org/ticket/15868#comment:4> MacPorts <http://www.macports.org/> Ports system for Mac OS
#15868: port-1.600: port sync fails with "please get a newer Subversion client" -----------------------------------+---------------------------------------- Reporter: kimuraw@macports.org | Owner: raimue@macports.org Type: defect | Status: assigned Priority: Normal | Milestone: MacPorts 1.7.0 Component: base | Version: 1.6.0 Resolution: | Keywords: Port: | -----------------------------------+---------------------------------------- Comment(by blb@macports.org): Replying to [comment:4 raimue@…]:
There is still some hardcoded stuff in port1.0/port_autoconf.tcl.in, I think mostly for fetching over cvs/svn/git. Should we do the same there?
I sure can't think of a reason not to, since that makes port act more like when someone is otherwise using the command line. -- Ticket URL: <http://trac.macports.org/ticket/15868#comment:5> MacPorts <http://www.macports.org/> Ports system for Mac OS
#15868: port-1.600: port sync fails with "please get a newer Subversion client" ----------------------------------+----------------------------------------- Reporter: kimuraw@… | Owner: raimue@… Type: defect | Status: assigned Priority: Normal | Milestone: MacPorts 1.7.1 Component: base | Version: 1.6.0 Keywords: | Port: ----------------------------------+----------------------------------------- Changes (by blb@…): * milestone: MacPorts 1.7.0 => MacPorts 1.7.1 -- Ticket URL: <http://trac.macports.org/ticket/15868#comment:6> MacPorts <http://www.macports.org/> Ports system for Mac OS
#15868: port-1.600: port sync fails with "please get a newer Subversion client" ----------------------------------+----------------------------------------- Reporter: kimuraw@… | Owner: raimue@… Type: defect | Status: assigned Priority: Normal | Milestone: MacPorts 1.7.1 Component: base | Version: 1.6.0 Keywords: | Port: ----------------------------------+----------------------------------------- Comment(by blb@…): Is there any reason for both [browser:trunk/base/src/macports1.0/macports_autoconf.tcl.in macports_autoconf.tcl.in] and [browser:trunk/base/src/port1.0/port_autoconf.tcl.in port_autoconf.tcl.in]? Would it be simpler to bring those two together into, say, macports_autoconf as a package itself (like macports_util) and use it instead? Then, remove at least some of the *_path variables in that? -- Ticket URL: <http://trac.macports.org/ticket/15868#comment:7> MacPorts <http://www.macports.org/> Ports system for Mac OS
#15868: port-1.600: port sync fails with "please get a newer Subversion client" ----------------------------------+----------------------------------------- Reporter: kimuraw@… | Owner: raimue@… Type: defect | Status: assigned Priority: Normal | Milestone: MacPorts 1.7.1 Component: base | Version: 1.6.0 Keywords: | Port: ----------------------------------+----------------------------------------- Changes (by blb@…): * cc: blb@… (added) Comment: Anyone see any issues with the attached patch? I've been running it for a few days now with no ill-effect. Note that src/registry1.0/registry_autoconf.tcl.in would actually be removed since it'll have nothing in it afterwards. -- Ticket URL: <http://trac.macports.org/ticket/15868#comment:9> MacPorts <http://www.macports.org/> Ports system for Mac OS
#15868: port-1.600: port sync fails with "please get a newer Subversion client" ----------------------------------+----------------------------------------- Reporter: kimuraw@… | Owner: raimue@… Type: defect | Status: assigned Priority: Normal | Milestone: MacPorts 1.7.1 Component: base | Version: 1.6.0 Keywords: | Port: ----------------------------------+----------------------------------------- Comment(by macsforever2000@…): The patch.diff patch works for me, although i see this: {{{ patching file src/port1.0/portdestroot.tcl Hunk #1 succeeded at 93 with fuzz 1 (offset 1 line). Hunk #2 FAILED at 100. 1 out of 2 hunks FAILED -- saving rejects to file src/port1.0/portdestroot.tcl.rej }}} -- Ticket URL: <http://trac.macports.org/ticket/15868#comment:10> MacPorts <http://www.macports.org/> Ports system for Mac OS
#15868: port-1.600: port sync fails with "please get a newer Subversion client" ----------------------------------+----------------------------------------- Reporter: kimuraw@… | Owner: raimue@… Type: defect | Status: assigned Priority: Normal | Milestone: MacPorts 1.7.1 Component: base | Version: 1.6.0 Keywords: | Port: ----------------------------------+----------------------------------------- Comment(by blb@…): Looks like bitrot already...will update soon. -- Ticket URL: <http://trac.macports.org/ticket/15868#comment:11> MacPorts <http://www.macports.org/> Ports system for Mac OS
#15868: port-1.600: port sync fails with "please get a newer Subversion client" ----------------------------------+----------------------------------------- Reporter: kimuraw@… | Owner: raimue@… Type: defect | Status: assigned Priority: Normal | Milestone: MacPorts 1.7.1 Component: base | Version: 1.6.0 Keywords: | Port: ----------------------------------+----------------------------------------- Comment(by blb@…): Patch updated. -- Ticket URL: <http://trac.macports.org/ticket/15868#comment:12> MacPorts <http://www.macports.org/> Ports system for Mac OS
#15868: port-1.600: port sync fails with "please get a newer Subversion client" ----------------------------------+----------------------------------------- Reporter: kimuraw@… | Owner: raimue@… Type: defect | Status: assigned Priority: Normal | Milestone: MacPorts 1.7.1 Component: base | Version: 1.6.0 Keywords: | Port: ----------------------------------+----------------------------------------- Comment(by jmr@…): I don't like this idea because it allows broken ports to break base, as illustrated by #18149. It seems like we should be using more full paths, not less. Subversion seems to be a special case simply because of the likelihood that people will operate on the working copy manually as well as via port. -- Ticket URL: <http://trac.macports.org/ticket/15868#comment:13> MacPorts <http://www.macports.org/> Ports system for Mac OS
#15868: port-1.600: port sync fails with "please get a newer Subversion client" ----------------------------------+----------------------------------------- Reporter: kimuraw@… | Owner: raimue@… Type: defect | Status: assigned Priority: Normal | Milestone: MacPorts 1.7.1 Component: base | Version: 1.6.0 Keywords: | Port: ----------------------------------+----------------------------------------- Comment(by blb@…): Then we need a list of those programs which must always be from the system and path those, since I think that would be the better direction than trying to list those which shouldn't be pathed. So bzip2, cvs, open, and rsync should be right? What about mtree and xar? -- Ticket URL: <http://trac.macports.org/ticket/15868#comment:14> MacPorts <http://www.macports.org/> Ports system for Mac OS
MacPorts wrote:
#15868: port-1.600: port sync fails with "please get a newer Subversion client" ----------------------------------+----------------------------------------- Reporter: kimuraw@… | Owner: raimue@… Type: defect | Status: assigned Priority: Normal | Milestone: MacPorts 1.7.1 Component: base | Version: 1.6.0 Keywords: | Port: ----------------------------------+-----------------------------------------
Comment(by blb@…):
Then we need a list of those programs which must always be from the system and path those, since I think that would be the better direction than trying to list those which shouldn't be pathed. So bzip2, cvs, open, and rsync should be right? What about mtree and xar?
I am bringing this up on the mailing list, as this is the better place for discussions than Trac. In my opinion binaries which are vital for the operation of MacPorts should be used from an absolute path. As far as I see, this is only bzip2 in registry1.0 as you cannot activate/deactivate ports anymore when bzip2 is broken. 'port deactivate' can most probably fix easily all other issues introduced by broken binaries in PATH. In release_1_7 this is also 'rm' and 'ln' which were replaced on trunk in r45851 [1] (should we merge this?). For syncing I see no problem in using PATH for svn and rsync. Especially it solves the svn issue and users could benefit from rsync 3.x. Also note that there is no svn pre-installed on Tiger, so there has to be at least a fallback to PATH. For fetching there are no issues with svn, as we will always call the same version. git is not pre-installed, but it has a fallback to PATH which should be fine enough. For packaging and archiving currently all tools are used from PATH and I don't think we need to use autoconfed paths. Is there a port providing mtree at all? We should also think about tracemode. The current prefix is automatically in the sandbox, but I don't know if other paths from binpath are considered. Oh, and note that by PATH above I mean what port uses, namely the binpath from macports.conf. It is not the user environment. Rainer [1] https://trac.macports.org/changeset/45851
#15868: port-1.600: port sync fails with "please get a newer Subversion client" -----------------------------------+---------------------------------------- Reporter: kimuraw@… | Owner: raimue@… Type: defect | Status: closed Priority: Normal | Milestone: MacPorts 1.7.1 Component: base | Version: 1.6.0 Resolution: fixed | Keywords: Port: | -----------------------------------+---------------------------------------- Changes (by jmr@…): * cc: jmr@… (added) * status: assigned => closed * resolution: => fixed Comment: Stopped using autoconf for the svn path in sync, r47776 (trunk) and r47777 (1.7 branch). This fixes the specific bug reported here. We can work on the general issue more in future. -- Ticket URL: <http://trac.macports.org/ticket/15868#comment:15> MacPorts <http://www.macports.org/> Ports system for Mac OS
participants (2)
-
MacPorts
-
Rainer Müller