winget-cli
winget-cli copied to clipboard
Support installing other archive formats
Description of the new feature / enhancement
Continuation of #140. See https://github.com/microsoft/winget-cli/issues/140#issuecomment-706523554:
I agree that supporting other compression methods (zstd, lzma, etc.) and archive formats (7z, tar, etc.) is good and should eventually be added. Zips are the most common, so supporting just them is a good first step and I think it's better to have it ASAP and only after that think about other formats.
Other than .zip
, most other software binaries are only available by either .7z
and .rar
. Examples:
- https://github.com/hashcat/hashcat/releases/download/v6.2.6/hashcat-6.2.6.7z
- https://sourceforge.net/projects/mpv-player-windows/files/release/mpv-0.35.1-x86_64.7z/download
- https://github.com/RussellJerome/UnrealModLoader/releases/download/v2.2.1/UnrealModLoader_V2.2.1.rar
Hopefully .7z
and .rar
gets added first, they're quite common. Other archive formats such as .tar
, .gz
, .zstd
etc. can be added soon.
Proposed technical implementation details
No response
I support this. Would like to be able to install mpv using winget or git-versions of gyan's ffmpeg
The lack of .tar.gz
support is a blocker for packaging Kubernetes kustomize
tool, see https://github.com/microsoft/winget-pkgs/discussions/101705 and https://github.com/microsoft/winget-pkgs/pull/101695
https://blogs.windows.com/windowsdeveloper/2023/05/23/bringing-the-power-of-ai-to-windows-11-unlocking-a-new-era-of-productivity-for-customers-and-developers-with-windows-copilot-and-dev-home/
We have added native support for additional archive formats, including tar, 7-zip, rar, gz and many others using the libarchive open-source project. You now can get improved performance of archive functionality during compression on Windows.
Will winget be able to use this functionality when it releases?
@denelon I know this is really early but would winget be able to use the new archive support in windows 11 when it releases? I'm not sure how it will be implemented but I'd like to think it will be added to the existing APIs.
@superusercode yes, we want to see if it's possible to take advantage of the new features in libarchive to support more formats. As soon as we have time to dig into the new Insider version of Windows and figure out the right way to handle this in earlier versions of Windows (back compatibility is tricky) we want this capability.
+1 for adding 7z
support as it is the blocker for adding beta builds of Dolphin emulator to the manifest under DolphinEmulator.Beta.Dolphin
.
@denelon I know this is really early but would winget be able to use the new archive support in windows 11 when it releases? I'm not sure how it will be implemented but I'd like to think it will be added to the existing APIs.
@denelon Now that this has been released to stable, any chance that you will start looking at this?
Adding .tar.bz2
or .conda
opens up the possibility of using the entire conda-forge
building system, which has more than 20k feedstocks.
e.g. https://anaconda.org/conda-forge/micromamba/files https://anaconda.org/conda-forge/anaconda-project/files https://anaconda.org/conda-forge/postgresql/files https://anaconda.org/conda-forge/rust/files https://anaconda.org/conda-forge/go/files ... and many more!
I've been talking with several folks about support for some of the newer formats Windows 11 natively understands. The challenge here is that unless we pull libraries into WinGet or have WinGet install some other dependencies, users on earlier versions of the OS will not be able to install packages depending on the newly supported compression formats.
what about printing a message that their version of windows doesn't support e.g. tar.gz natively? this wouldn't make the experience of those users worse but it would improve the experience of users that use newer versions of windows
I understand that locking out a substantial portion of the userbase who are using older versions of Windows is a very suboptimal solution.
However, over time, the number of users who are locked out of installing these packages will decrease, as users upgrade to newer versions of Windows.
Furthermore, it's not exactly unheard of for Windows to gate new features behind system updates. I feel like most users would understand this limitation as just another consequence of deferring timely updates.
this also allows interractive only installers to be installed if they are just a wrapper exe with the program files / msi underneath