README.md

Fedora KDE Update scripts

These scripts are used by the KDE SIG to mass-update KDE packages in Fedora.

clone_packages.py

Clones all KDE Frameworks 5, Plasma or Gear (sub groups like pim in progress) packages from Fedora distgit into current directory. The script will get a list of all relevant upstream modules from RELEASE_TOOLS_REPO and PROJECTS_API and clone their respective Fedora packages. Some upstream modules are blacklisted in the script as they are not packaged in Fedora right now.

In case of KDE Frameworks the script also checks their YAML files and will automatically skip Frameworks that are not released yet.

See clone_packages.py --help for details.

update.py

Designed to perform updates on rpms packages in a folder. In a typical situation, this script will be executed after triggering a clone_packages.py (refer to its docs for more information)

See update.py --help for details.

Examples

Typical execution:

~/fedora-scm/kde-update-scripts/update.py -v '5.26.90'
~/fedora-scm/kde-update-scripts/update.py -v '5.26.90' --upload

build.py

Smart script for generating chainbuilds. It analyzes dependencies in the SPEC files (by parsing BuildRequires) and creates the most optimal chainbuild groups for Koji or Copr.

See build.py --help for details.

find_missing_deps.py

Parses koji's logs and tries to find missing optional dependencies.

Examples

Typical execution:

find_missing_deps.py  --dist fc39

Package.py

A module that interacts with fedpkg and parse and write RPM SPEC files. It's used by the scripts above to get current SPEC file, parse it, and then write it again with the changes applied (like new version number, changelog entry etc.). It can also create commits and push to distgit.

DependencyScanner.py

A module that can parse dependencies from CMake files and SPEC files, compare them and make sure that the SPEC file has up-to-date dependencies matching those described in the CMake file.