I wonder if the problem is that "ssh://[email protected]" 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://[email protected]/HSU-ANT/ACME.jl.git")
INFO: Cloning ACME from ssh://[email protected]/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://
>> [email protected]/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://[email protected]:/JuliaLang/METADATA.jl.git")
>>>>
>>>> gave GitError(Code:EINVALIDSPEC, Class:Net, Malformed URL
>>>> 'ssh://[email protected]:/JuliaLang/METADATA.jl.git').
>>>>
>>>> Pkg.init("ssh://[email protected]/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://[email protected]:/
>>>>> 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://[email protected]:/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.
>>>>>>>>>
>>>>>>>>