I wonder if the problem is that "ssh://g...@github.com" is needed for ssh 
remotes rather than just "ssh://github.com". The former works with 
Pkg.clone, but the latter does not. For example,

julia> Pkg.clone("ssh://github.com/HSU-ANT/ACME.jl.git")
INFO: Cloning ACME from ssh://github.com/HSU-ANT/ACME.jl.git
WARNING: The explicitly provided credentials were incompatible with the 
server's supported authentication methods
ERROR: GitError(Code:EAUTH, Class:None, No errors)
 in macro expansion at ./libgit2/error.jl:98 [inlined]
 in clone(::String, ::SubString{String}, ::Base.LibGit2.CloneOptions) at 
./libgit2/repository.jl:191
 in #clone#107(::String, ::Bool, ::Ptr{Void}, 
::Nullable{Base.LibGit2.AbstractPayload}, ::Function, ::String, 
::SubString{String}) at ./libgit2/libgit2.jl:308
 in clone(::String, ::SubString{String}) at ./pkg/entry.jl:195
 in clone(::String) at ./pkg/entry.jl:221
 in 
(::Base.Pkg.Dir.##2#3{Array{Any,1},Base.Pkg.Entry.#clone,Tuple{String}})() 
at ./pkg/dir.jl:31
 in 
cd(::Base.Pkg.Dir.##2#3{Array{Any,1},Base.Pkg.Entry.#clone,Tuple{String}}, 
::String) at ./file.jl:59
 in #cd#1(::Array{Any,1}, ::Function, ::Function, ::String, 
::Vararg{Any,N}) at ./pkg/dir.jl:31
 in clone(::String) at ./pkg/pkg.jl:151

produces the same warning as Pkg.add("ACME"), but

julia> Pkg.clone("ssh://g...@github.com/HSU-ANT/ACME.jl.git")
INFO: Cloning ACME from ssh://g...@github.com/HSU-ANT/ACME.jl.git
INFO: Computing changes...
INFO: Installing Compat v0.8.6
INFO: Installing ProgressMeter v0.3.2
INFO: Package database updated

succeeds.

On Tuesday, August 2, 2016 at 6:32:13 PM UTC-6, Tony Kelman wrote:
>
> This sounds like the issue people have been reporting at 
> https://github.com/JuliaLang/PkgDev.jl/issues/48, though it's more likely 
> a problem with base Julia.
>
> On Tuesday, August 2, 2016 at 9:21:43 AM UTC-7, Daniel O'Malley wrote:
>>
>> OK, I tried again with the latest nightlies. Now Pkg.init("ssh://
>> g...@github.com/JuliaLang/METADATA.jl.git") succeeds. However, I'm still 
>> not able to add packages. Pkg.setprotocol!("ssh") does seem to work with 
>> Pkg.add though:
>>
>> julia> Pkg.setprotocol!("ssh"); Pkg.add("ACME")
>> INFO: Cloning cache of ACME from ssh://github.com/HSU-ANT/ACME.jl.git
>> WARNING: The explicitly provided credentials were incompatible with the 
>> server's supported authentication methods
>> ERROR: Cannot clone ACME from ssh://github.com/HSU-ANT/ACME.jl.git. No 
>> errors
>>  in prefetch(::String, ::String, ::Array{String,1}) at ./pkg/cache.jl:56
>>  in resolve(::Dict{String,Base.Pkg.Types.VersionSet}, 
>> ::Dict{String,Dict{VersionNumber,Base.Pkg.Types.Available}}, 
>> ::Dict{String,Tuple{VersionNumber,Bool}}, 
>> ::Dict{String,Base.Pkg.Types.Fixed}, ::Dict{String,VersionNumber}, 
>> ::Set{String}) at ./pkg/entry.jl:512
>>  in resolve(::Dict{String,Base.Pkg.Types.VersionSet}, 
>> ::Dict{String,Dict{VersionNumber,Base.Pkg.Types.Available}}, 
>> ::Dict{String,Tuple{VersionNumber,Bool}}, 
>> ::Dict{String,Base.Pkg.Types.Fixed}) at ./pkg/entry.jl:476
>>  in edit(::Function, ::String, ::Base.Pkg.Types.VersionSet, 
>> ::Vararg{Base.Pkg.Types.VersionSet,N}) at ./pkg/entry.jl:30
>>  in (::Base.Pkg.Entry.##2#5{String,Base.Pkg.Types.VersionSet})() at 
>> ./task.jl:309
>>  in sync_end() at ./task.jl:275
>>  in macro expansion at ./task.jl:284 [inlined]
>>  in add(::String, ::Base.Pkg.Types.VersionSet) at ./pkg/entry.jl:51
>>  in 
>> (::Base.Pkg.Dir.##2#3{Array{Any,1},Base.Pkg.Entry.#add,Tuple{String}})() at 
>> ./pkg/dir.jl:31
>>  in 
>> cd(::Base.Pkg.Dir.##2#3{Array{Any,1},Base.Pkg.Entry.#add,Tuple{String}}, 
>> ::String) at ./file.jl:59
>>  in #cd#1(::Array{Any,1}, ::Function, ::Function, ::String, 
>> ::Vararg{Any,N}) at ./pkg/dir.jl:31
>>  in add(::String) at ./pkg/pkg.jl:100
>>
>> On Monday, August 1, 2016 at 11:24:51 AM UTC-6, Tony Kelman wrote:
>>>
>>> I think Pkg.add should obey setprotocol!, it's likely a bug that 
>>> Pkg.init doesn't. The extra colon after .com probably is malformed so isn't 
>>> the first error correct? The second issue might be fixed by some 
>>> authentication changes that Keno just merged a few minutes ago, there 
>>> should be binaries that include that fix built in a few hours.
>>>
>>>
>>> On Monday, August 1, 2016 at 8:31:44 AM UTC-7, Daniel O'Malley wrote:
>>>>
>>>> I tried the Pkg.init("ssh://...") a couple different ways, but neither 
>>>> worked.
>>>>
>>>> Pkg.init("ssh://g...@github.com:/JuliaLang/METADATA.jl.git")
>>>>
>>>> gave GitError(Code:EINVALIDSPEC, Class:Net, Malformed URL 
>>>> 'ssh://g...@github.com:/JuliaLang/METADATA.jl.git').
>>>>
>>>> Pkg.init("ssh://g...@github.com/JuliaLang/METADATA.jl.git")
>>>>
>>>> asked me about my ssh keys then resulted in an authentication 
>>>> failure. If I were to get Pkg.init() working in this way, Pkg.add and 
>>>> other 
>>>> Pkg functions would still have problems though, right?
>>>>
>>>> On Monday, August 1, 2016 at 9:09:22 AM UTC-6, Tony Kelman wrote:
>>>>>
>>>>> That could be considered a bug, Pkg.init should probably respect the 
>>>>> Pkg.setprotocol! setting, at least when using the DEFAULT_META value. You 
>>>>> should also be able to do Pkg.init("ssh://g...@github.com:/
>>>>> JuliaLang/METADATA.jl.git") as a workaround to avoid having to go 
>>>>> through command-line git.
>>>>>
>>>>>
>>>>> On Monday, August 1, 2016 at 7:01:51 AM UTC-7, Daniel O'Malley wrote:
>>>>>>
>>>>>> Oh, sorry for the mixup. Doing a
>>>>>>
>>>>>> git clone ssh://g...@github.com:/JuliaLang/METADATA.jl.git
>>>>>>
>>>>>> from a shell succeeds. I haven't had success trying to change the 
>>>>>> protocol with Pkg.setprotocol! though. Whether I do 
>>>>>> Pkg.setprotocol!("ssh"), Pkg.setprotocol!("git"), or 
>>>>>> Pkg.setprotocol!("notaprotocol"), Pkg.init() seems to always try to 
>>>>>> clone 
>>>>>> via https.
>>>>>>
>>>>>> On Sunday, July 31, 2016 at 10:31:38 PM UTC-6, Tony Kelman wrote:
>>>>>>>
>>>>>>> No, I meant ssh:// or git:// url's for packages.
>>>>>>>
>>>>>>>
>>>>>>> On Sunday, July 31, 2016 at 7:02:15 PM UTC-7, Daniel O'Malley wrote:
>>>>>>>>
>>>>>>>> Tony, thanks for the quick response and all the work you put into 
>>>>>>>> julia. It would be great to have the package system working for 
>>>>>>>> Mac/Linux 
>>>>>>>> from behind a proxy without needing to rebuild anything. If you need 
>>>>>>>> someone to help test from behind a proxy, please let me know. I'd be 
>>>>>>>> happy 
>>>>>>>> to do it.
>>>>>>>>
>>>>>>>> When you say "ssh remotes", do you mean something like 
>>>>>>>> addprocs(["machine1", "machine2"])? That does work for me, but I 
>>>>>>>> haven't 
>>>>>>>> tried addprocs'ing to a machine outside our network.
>>>>>>>>
>>>>>>>> On Sunday, July 31, 2016 at 6:12:12 PM UTC-6, Tony Kelman wrote:
>>>>>>>>>
>>>>>>>>> I believe you need to build libgit2 against libcurl in order for 
>>>>>>>>> proxies to work on linux and mac. We do not currently have it set up 
>>>>>>>>> in our 
>>>>>>>>> build system to do that in a self contained distributable way for 
>>>>>>>>> binaries, 
>>>>>>>>> but it might not be too hard to write the necessary makefile to make 
>>>>>>>>> it 
>>>>>>>>> work.
>>>>>>>>>
>>>>>>>>> We were prioritizing getting ssh remotes to work again for the 
>>>>>>>>> first rc. Do ssh remotes work over proxies by any chance? I don't 
>>>>>>>>> currently 
>>>>>>>>> have immediate access to an environment behind a proxy to test this, 
>>>>>>>>> but we 
>>>>>>>>> had looked into setting one up that we could revisit.
>>>>>>>>>
>>>>>>>>

Reply via email to