On line 2627 of bin/emerge the following regular expression is used to get the hostname and port from syncuri: hostname, port=re.split("rsync://([^:/]*)(:[0-9]+)?", syncuri)[1:3]; If you look at `man rsync`, rsync URIs can contain a username. rsync://tcort@rsync.somehost.com/gentoo-portage is a valid URI that rsync understands. Someone might have a username in SYNC if he or she has a private password protected rsync server. The regular expression above puts both the username and hostname into the hostname variable. The incorrect regular expression causes an exception in the block of code near line 2646 when the SYNC contains the username. The `emerge --sync` continues to work without a problem because the exception handler sets dosyncuri=syncuri.
Created attachment 93482 [details, diff] Fix for emerge to accept usernames This fixes the regular expression and puts the username back in after getting the ip of the host
Thanks, this is in svn r4179.
This has been released in 2.1.1_pre4-r4.