Given the following srcuri in a recipe: SRC_URI = "svn://git@svn.example.com/path/to/repo;module=path/to/module;protocol=svn+ssh" the svn fetcher generates the following command: svn --non-interactive --trust-server-cert log --limit 1 --no-auth-cache --username git svn+ssh://svn.example.com/path/to/repo/path/to/module/ This causes svn to connect as the current user instead of the specified username, causing the command to fail. I would expect that it would generate the following command: svn --non-interactive --trust-server-cert log --limit 1 --no-auth-cache svn+ssh://git@svn.example.com/path/to/repo/path/to/module/ In my mind, the svn fetcher is being too clever for its own good: the former generated command should only be generated if I append "user=git" to the SRC_URI.
Well, this is a really tricky one. Rightly or wrongly, the fetcher defines the username in the url to be the username parameter to pass to svn. Until now its never evidently been needed to have two different usernames, one for the transport and one for svn itself. We have a backwards compatibility problem, I'd suggest we add a parameter to specify the transport username for a case like this.
That would be sufficient for my purposes; the only comment I have is that if the current behavior is kept (foo@ generates --user foo), and my use case was the intended behavior, the reason for the failure isn't intuitive. I'd suggest deprecating user@ behavior entirely.
There is a patch out for review on bitbake-devel. It adds a transportuser parameter to svn urls, the bitbake manual will need updating with this new parameter. A description is: "A parameter to set the username to use for the transport if required, defaulting to empty. This is different to the username used in the main url which is passed to the subversion command."
Here is a doc change for the bug. http://www.yoctoproject.org/docs/1.7/bitbake-user-manual/bitbake-user-manual.html#svn-fetcher Please check it over. Scott
This all seems reasonable to me. Thanks for the quick action folks.
Merged into master: http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=a5531a2b8983318b99c119a87b78a92cf84160b8
Set the doc flag to "Done". Scott