UniGetUI
UniGetUI copied to clipboard
[FEATURE REQUEST] Integration of MSYS2 package management with Pacman
Please confirm these before moving forward.
- [x] I have searched for my feature proposal and have not found a work-in-progress/duplicate/resolved/discarded issue.
- [X] This proposal is a completely new feature. If you want to suggest an improvement or an enhancement, please use this template.
Describe the new feature
Description:
MSYS2 is a popular Unix-like environment for Windows that uses the Pacman package manager to manage software and development tools. The integration of Pacman from MSYS2 into UniGetUI would enable users to manage Unix-like packages directly within the WingetUI interface. MSYS2 supports multiple environments such as mingw32
, mingw64
, clang32
, clang64
, and the now recommended default environment ucrt64
.
Users should have the flexibility to select one or more environments in which to install packages. Additionally, there should be an option to configure UniGetUI to allow package management across multiple environments simultaneously. This would streamline the process for developers and users who rely on different toolchains provided by MSYS2.
Key implementation points:
-
MSYS2 installation detection:
UniGetUI should be able to detect a standard MSYS2 installation on the system. This could be achieved by scanning the system for the MSYS2 installation path (typically found in default directories) or reading system environment variables that indicate the presence of MSYS2. -
Environment selection (Mingw, Clang, UCRT):
- Users should have the ability to choose which MSYS2 environments they wish to use when installing packages (e.g.,
mingw64
,ucrt64
,clang64
, etc.). - UniGetUI should offer the option to install and manage packages across multiple environments simultaneously.
- There should be an interface to easily select, configure, and switch between these environments for package installation.
- Users should have the ability to choose which MSYS2 environments they wish to use when installing packages (e.g.,
-
Repository and package management:
- UniGetUI should allow access to the official MSYS2 Pacman repositories. Users should be able to update the package lists and manage software packages from these repositories, similar to how Pacman operates within the MSYS2 shell.
- Package lists should be updatable through UniGetUI, either via a refresh button or scheduled checks for repository updates.
-
Package installation and updates:
- The package installation and update process should mirror the functionality of Pacman, allowing users to install, update, and remove packages using the same options as available in the MSYS2 Pacman environment.
- Support for handling dependencies and conflicts, as Pacman does natively, should be integrated into WingetUI.
-
Compatibility with existing package managers:
- Pacman from MSYS2 should be seamlessly integrated alongside existing package managers in WingetUI (like winget, scoop, and chocolatey), ensuring that the user experience remains consistent and conflict-free.
- Users should be able to manage MSYS2 Pacman packages separately from other package managers without interference or confusion.
Conclusion:
Describe how this new feature could help users
The integration of MSYS2 Pacman into UniGetUI would significantly enhance its capability to manage Unix-like development tools and libraries on Windows. This addition would be valuable for developers and advanced users who frequently work with different MSYS2 environments and toolchains.