diff --git a/Project.toml b/Project.toml index eddbdead..ecf0f0c8 100644 --- a/Project.toml +++ b/Project.toml @@ -34,7 +34,6 @@ XZ_jll = "ffd25f8a-64ca-5728-b0f7-c24cf3aae800" Zstd_jll = "3161d3a3-bdf6-5164-811a-617609db77b4" p7zip_jll = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" pigz_jll = "1bc43ea1-30af-5bc8-a9d4-c018457e6e3e" -unzip_jll = "88f77b66-78eb-5ed0-bc16-ebba0796830d" [compat] Bzip2_jll = "1.0.8" @@ -67,5 +66,4 @@ XZ_jll = "5.4.4" Zstd_jll = "1.5.5" p7zip_jll = "16.2.1, 17.4.0" pigz_jll = "2.7.0" -unzip_jll = "6.0.2" julia = "1.7" diff --git a/src/Prefix.jl b/src/Prefix.jl index a1c735f3..75499acb 100644 --- a/src/Prefix.jl +++ b/src/Prefix.jl @@ -3,7 +3,7 @@ # environment variables must be updated to, etc... import Base: convert, joinpath, show using SHA, CodecZlib, TOML, LibGit2_jll -import Bzip2_jll, Gzip_jll, Tar_jll, XZ_jll, Zstd_jll, unzip_jll +import Bzip2_jll, Gzip_jll, Tar_jll, XZ_jll, Zstd_jll, p7zip_jll using JLLWrappers: pathsep, LIBPATH_env export Prefix, bindir, libdirs, includedir, logdir, temp_prefix, package @@ -376,8 +376,8 @@ function setup(source::SetupSource{ArchiveSource}, targetdir, verbose; tar_flags if verbose @info "Extracting zipball $(basename(source.path))..." end - if unzip_jll.is_available() - run(`$(unzip_jll.unzip()) -q $(source.path)`) + if p7zip_jll.is_available() + run(pipeline(`$(p7zip_jll.p7zip()) x -tzip -- $(source.path)`, devnull)) end elseif endswith(source.path, ".conda") @debug "Extracting conda package" source.path @@ -389,8 +389,8 @@ function setup(source::SetupSource{ArchiveSource}, targetdir, verbose; tar_flags pkg_name = replace(basename(source.path), r"^[a-z0-9]{64}-" => "pkg-", ".conda" => ".tar.zst") @debug "Conda package name" pkg_name # First unzip the pkg tarball from .conda file - if unzip_jll.is_available() - run(`$(unzip_jll.unzip()) -q $(source.path) $(pkg_name)`) + if p7zip_jll.is_available() + run(pipeline(`$(p7zip_jll.p7zip()) x -tzip -- $(source.path) $(pkg_name)`, devnull)) end # Second untar the pkg tarball pkg_source = SetupSource{ArchiveSource}(joinpath(targetdir, pkg_name), source.hash, source.target)