Skip to main content

A tool to download MSYS packages and extract files from MSYS2

Project description

msys2dl

PyPI - Version PyPI - Python Version

This tool is designed for downloading, extracting MSYS2 packages and converting them to Debian packages for use in cross-compiling. While you won't be able to run executable files, you'll have access to includes and libraries to link against.

How to install

Option 1 (recommended): pipx creates a virtual environment for the installed application, ensuring that the application and its dependencies do not conflict with system Python packages.

pipx install msys2dl

Option 2:

pip install --user msys2dl

How to use

Conversion to Debian packages.

Note: Dependencies are processed by default. Use the --no-deps flag to opt-out.

$ msys2dl make-deb --output /tmp/deb --env mingw64 wxwidgets3.2-msw
Downloading packages...
Downloaded mingw-w64-x86_64-mpdecimal-4.0.0-1
Downloaded mingw-w64-x86_64-wxwidgets3.2-msw-3.2.4-1
...
Generated wxwidgets3.2-msw-libs-msys2-mingw64_3.2.4.1_all.deb
Generated wxwidgets3.2-msw-msys2-mingw64_3.2.4.1_all.deb
...
Done!
$ ls /tmp/deb
 bzip2-msys2-mingw64_1.0.8-3_all.deb
 expat-msys2-mingw64_2.6.2-1_all.deb
 gcc-libs-msys2-mingw64_13.2.0-5_all.deb
...
 wxwidgets3.2-msw-msys2-mingw64_3.2.4-1_all.deb
...
$ sudo dpkg -i /tmp/deb/*
...
Setting up wxwidgets3.2-msw-msys2-mingw64 (3.2.4-1) ...
...
$ ls -1 /mingw64/lib/
...
libwx_mswu_gl-3.2.a
libwx_mswu_gl-3.2.dll.a
...

Extracting.

Note: Dependencies are processed by default. Use the --no-deps flag to opt-out.

$ msys2dl extract --output /tmp/sysroot --env mingw64 curl
Alternatives: selecting mingw-w64-x86_64-libssh2 from providers for mingw-w64-x86_64-libssh2 (mingw-w64-x86_64-libssh2, mingw-w64-x86_64-libssh2-wincng)
Downloaded mingw-w64-x86_64-openssl-3.2.1-1
Downloaded mingw-w64-x86_64-curl-8.6.0-1
...
Extracted mingw-w64-x86_64-curl-8.6.0-1
...
$ tree -L 2 /tmp/sysroot
/tmp/sysroot
└── mingw64
    ├── bin
    ├── etc
    ├── include
    ├── lib
    ├── libexec
    └── share

Options

Basic

Option Description
--env ENV Optional. Specifies the MSYS2 environment to search for packages. Choose from clangarm64, clang32, clang64, mingw32, mingw64, ucrt64. This option enables the use of short package names like curl instead of mingw-w64-x86_64-curl.
--no-deps Download only the specified packages without their dependencies.
--ignore-conflicts By default, msys2dl stops if conflicting packages are in the set. Use this flag to opt-out.
--output PATH Optional. Debian packages generated or extracted files will be located in this directory. By default, the current directory will be used.
--exclude PACKAGE [PACKAGE ...] Optional. Ignores these packages. When resolving dependencies, excluded packages' dependencies are excluded as well. Useful if you want to bypass libraries installed from other sources.
--download-threads N Optional. Download packages in parallel. Default is 5.

To combine --exclude with the list of included packages, use the following syntax:

$ msys2dl extract --exclude zlib -- curl 

Advanced

Option Description
--base-url URL Specifies the URL to download packages from. The default is https://mirror.msys2.org.
--keys-url URL Specifies the URL to download public keys used to verify downloaded packages. The default is https://raw.githubusercontent.com/msys2/MSYS2-keyring/master/msys2.gpg.

Environment variables

Name Description
MSYS2DL_HOME Location where msys2dl stores the database and the packages. Default is ~/.local/share/msys2dl.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

msys2dl-2.1.1.tar.gz (16.5 kB view details)

Uploaded Source

Built Distribution

msys2dl-2.1.1-py3-none-any.whl (22.1 kB view details)

Uploaded Python 3

File details

Details for the file msys2dl-2.1.1.tar.gz.

File metadata

  • Download URL: msys2dl-2.1.1.tar.gz
  • Upload date:
  • Size: 16.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for msys2dl-2.1.1.tar.gz
Algorithm Hash digest
SHA256 ecfdadf0da24c924ea0e729f3f9179a6e05723ce91a5257fa7946b1c79b290b1
MD5 eddf0b0c6d213ff17e207f8e34a3e7a0
BLAKE2b-256 eefce4f8887fa03370f4a40f870a0ffefc41074b482e1e7c4314c84c180e5cdf

See more details on using hashes here.

File details

Details for the file msys2dl-2.1.1-py3-none-any.whl.

File metadata

  • Download URL: msys2dl-2.1.1-py3-none-any.whl
  • Upload date:
  • Size: 22.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for msys2dl-2.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fb174692e46c6ee57905addbfa856ce45cc98ec84dc2bf119ef6568da48e5565
MD5 2e62576dae50afa4024d534500118de6
BLAKE2b-256 c0b372ae7930a67185c8b9d36751673799f911978e19cfb761c8b6bc47719062

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page