Skip to content

tar in import_docker_image fails on Windows #520

@visr

Description

@visr

Running BinaryBuilder master on Julia 1.3 RC5, I get a Failed to open '\\.\tape0 in import_docker_image.

julia> using BinaryBuilder; BinaryBuilder.runshell(Linux(:x86_64, libc=:glibc), verbose=true)
[ Info: Precompiling BinaryBuilder [12aac903-9f7c-5d81-afc2-d9565ea332ae]
[ Info: Checking to see if c:\Users\visser_mn\.julia\dev\BinaryBuilder\ is encrypted...
[ Info: Couldn't open /proc/mounts, returning...
[ Info: Checking to see if c:\Users\visser_mn\.julia\dev\BinaryBuilder\deps\ is encrypted...
[ Info: Couldn't open /proc/mounts, returning...
[ Info: Importing docker base image from C:\Users\visser_mn\.julia\artifacts\0f1867e8dbf4dfeaa77bb52ad707b86f74f0c80e to julia_binarybuilder_rootfs:v2019.11.22-f0c80e
tar: Failed to open '\\.\tape0'
ERROR: failed process: Process(`tar -c -C 'C:\Users\visser_mn\.julia\artifacts\0f1867e8dbf4dfeaa77bb52ad707b86f74f0c80e' .`, ProcessExited(1)) [1]

Stacktrace:
 [1] pipeline_error(::Base.ProcessChain) at .\process.jl:538
 [2] #run#563(::Bool, ::typeof(run), ::Base.CmdRedirect) at .\process.jl:440
 [3] run at .\process.jl:438 [inlined]
 [4] #import_docker_image#274(::Bool, ::typeof(BinaryBuilder.import_docker_image), ::BinaryBuilder.CompilerShard, ::String) at c:\Users\visser_mn\.julia\dev\BinaryBuilder\src\DockerRunner.jl:55
 [5] #import_docker_image at .\array.jl:0 [inlined]
 [6] #DockerRunner#275(::String, ::Linux, ::Array{Any,1}, ::Dict{String,String}, ::Bool, ::String, ::String, ::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::Type{BinaryBuilder.DockerRunner}, ::String) at c:\Users\visser_mn\.julia\dev\BinaryBuilder\src\DockerRunner.jl:104
 [7] Type at .\none:0 [inlined]
 [8] #runshell#212(::Bool, ::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::typeof(BinaryBuilder.runshell), ::Type{BinaryBuilder.DockerRunner}, ::Linux) at c:\Users\visser_mn\.julia\dev\BinaryBuilder\src\Runner.jl:617
 [9] (::BinaryBuilder.var"#kw##runshell")(::NamedTuple{(:verbose,),Tuple{Bool}}, ::typeof(BinaryBuilder.runshell), ::Type{BinaryBuilder.DockerRunner}, ::Linux) at .\none:0
 [10] #runshell#210(::Base.Iterators.Pairs{Symbol,Bool,Tuple{Symbol},NamedTuple{(:verbose,),Tuple{Bool}}}, ::typeof(BinaryBuilder.runshell), ::Linux) at c:\Users\visser_mn\.julia\dev\BinaryBuilder\src\Runner.jl:609
 [11] (::BinaryBuilder.var"#kw##runshell")(::NamedTuple{(:verbose,),Tuple{Bool}}, ::typeof(BinaryBuilder.runshell), ::Linux) at .\none:0
 [12] top-level scope at REPL[6]:1

Earlier I tried to work around this by using wsl tar or Tar.jl instead, but then I bumped into these issues: #441 (comment).

I guess this is using this tar now:

shell> where tar
C:\Windows\System32\tar.exe
C:\bin\git\usr\bin\tar.exe

Should we use the bundled 7zip here instead?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions