microsoft / winget-cli

WinGet is the Windows Package Manager. This project includes a CLI (Command Line Interface), PowerShell modules, and a COM (Component Object Model) API (Application Programming Interface).
https://learn.microsoft.com/windows/package-manager/
MIT License
23.14k stars 1.44k forks source link

Support installing other archive formats #2899

Open rollingmoai opened 1 year ago

rollingmoai commented 1 year ago

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:

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

ghost commented 1 year ago

I support this. Would like to be able to install mpv using winget or git-versions of gyan's ffmpeg

mloskot commented 1 year ago

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

superusercode commented 1 year ago

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?

superusercode commented 1 year ago

@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 commented 1 year ago

@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.

kbdharun commented 1 year ago

+1 for adding 7z support as it is the blocker for adding beta builds of Dolphin emulator to the manifest under DolphinEmulator.Beta.Dolphin.

rollingmoai commented 1 year ago

@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?

lucasfcnunes commented 10 months ago

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!

denelon commented 8 months ago

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.

masterflitzer commented 8 months ago

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

apsoyka commented 8 months ago

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.

solomoncyj commented 7 months ago

this also allows interractive only installers to be installed if they are just a wrapper exe with the program files / msi underneath