Skip to main content

Windows RPM Package Metadata Calculator Tool

Project description

winDNF Icon winDNF

A DNF-like RPM simulator for Windows and other non-Linux systems.

winDNF allows you to download RPM packages and their dependencies from standard repositories without requiring a Linux environment. It is still a work in progress, and many things are not working as they should (see TODO. It is stable for basic usage though. It works by syncing multiple RPM repositories metadata and querying a single, local DB file in order to resolve packages metadata.

All configuration files and the internal database are stored in your home directory at ~/.config/windnf/ by default:

  • Config file: ~/.config/windnf/windnf.conf
  • Database: ~/.config/windnf/windnf.sqlite

These paths are editable in the configuration file. winDNF automatically creates this folder and the default config file on first run.

It also timidly tries to be NEVRA compliant, although with limited success (for now).


Installation

winDNF is distributed as a pip package:

pip install windnf

Simple as. No further configuration required.


Usage

windnf <command> [options] [arguments]

Run windnf <command> --help for command-specific help.


Common Commands

Repositories

  • repoadd (ra) — Add or update a repository.
  • repolink (rlk) — Link a source repository to a binary repository.
  • repolist (rl) — List configured repositories.
  • reposync (rs) — Download and refresh repository metadata.
  • repodel (rd) — Remove one or more repositories.

Packages

  • search (s) — Search for packages by name or pattern.
  • info (i) — Show detailed package information (NEVRA).
  • resolve (rv) — Resolve dependencies for one or more packages.
  • download (dl) — Download packages or source RPMs.

Options (Overview)

Many commands support these common options:

  • -r, --repo, --repoid — Limit the operation to specific repositories
  • -R, --recursive [DEPTH] — Perform recursive dependency resolution
    • Used without a value, resolves the full dependency tree
    • When a number is provided, limits recursion depth (e.g. --recursive 1 for direct dependencies only)
  • --arch <arch> — Target a specific architecture (not yet supported)

Use --help with any command to see all available options.


Configuration

By default, winDNF stores all configuration and the database in:

~/.config/windnf/

Contents include:

  • windnf.conf — main configuration file
  • windnf.sqlite — internal package/repo database

Configurable options in windnf.conf:

  • downloader — method used to download packages (default: powershell)
  • skip_ssl_verify — skip SSL verification when downloading (default: true)
  • db_path — path to the internal database (default: ~/.config/windnf/windnf.sqlite)
  • download_path — default directory for downloaded packages (default: .)

You can edit these paths in the config file. winDNF creates missing folders and files automatically.


Environment

WINDNF_DEBUG=1

Enable verbose debug output and full tracebacks.


Notes

  • winDNF does not modify your system.
  • It reads repository metadata, resolves dependencies, and downloads RPMs only.
  • Designed primarily for Windows or non-Linux systems where traditional package managers are not available.

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

windnf-1.1.2.tar.gz (40.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

windnf-1.1.2-py3-none-any.whl (26.8 kB view details)

Uploaded Python 3

File details

Details for the file windnf-1.1.2.tar.gz.

File metadata

  • Download URL: windnf-1.1.2.tar.gz
  • Upload date:
  • Size: 40.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for windnf-1.1.2.tar.gz
Algorithm Hash digest
SHA256 cedc64133d3015c366db438b60424c26e87ce2664a25df4410bddb1ced510ba0
MD5 7e3a63d3c156f79ba8a0f4835d823c3b
BLAKE2b-256 d504cf935981a7aa82582f3694b2c5ffba3c72ebf720cdc2579f0b9bcfb7f2ef

See more details on using hashes here.

Provenance

The following attestation bundles were made for windnf-1.1.2.tar.gz:

Publisher: release.yml on maulusck/windnf

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file windnf-1.1.2-py3-none-any.whl.

File metadata

  • Download URL: windnf-1.1.2-py3-none-any.whl
  • Upload date:
  • Size: 26.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for windnf-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 9c5475164f7b211a82c20b5d104826d769b1ba7d8127640766d2fa3440fad34f
MD5 2968f18d9255ac03bf60191554ed31c1
BLAKE2b-256 56d4c8c26078b87efe532e5a38ddeec4009b8f13e8210e03e16fc7d4e8b86d25

See more details on using hashes here.

Provenance

The following attestation bundles were made for windnf-1.1.2-py3-none-any.whl:

Publisher: release.yml on maulusck/windnf

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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