Jens Petersenpetersen@redhat.com
Flock 2025, Prague
https://petersen.fedorapeople.org/flock-2025-tools.html
time allowing:
lsfrom
fedora-repoquery
ostree-pin
rhbzquery
pkgtreediff
(bash-color-prompt)
All packaged for Fedora and under https://github.com/juhp
Also all written in Haskell ;-)
https://github.com/juhp/pagure-cli#readme
Only cli tool in Fedora for querying pagure!!
Defaults to fedora dist-git instance:
⬢ fedora43~$ pagure -h
Pagure client
Usage: pagure [--version] COMMAND
Simple pagure CLI
Available options:
-h,--help Show this help text
--version Show version
Available commands:
list list projects
user list user repos
group list group repos
project show project details
branches list project branches
git-url show project repo's git urls
issues list project issues
issue show project issue
users list users
username fullname of user
userinfo show user details
groups list groups
groupinfo show group details
Also handy for simple package stats:
⬢ fedora43~$ pagure list -c rust-*
3770
⬢ fedora43~$ pagure list -c python-*
3158
⬢ fedora43~$ pagure list -c rubygem-*
434
⬢ fedora43~$ pagure list -c ghc-*
636
⬢ fedora43~$ pagure list -c ocaml-*
172
⬢ fedora43~$ pagure list -c gtk*
44
⬢ fedora43~$ pagure list -c qt*
121
⬢ fedora43~$ pagure groups -c
68
$ pagure group -c rust-sig
3913
https://github.com/juhp/fbrnch#readme
Power packaging tool for consistent workflows
Paricularly useful for packagers dealing with large package sets
Announcing fbrnch-1.7 released in Rawhide
fbrnch --help
$ fbrnch -h
Fedora branch building tool
Usage: fbrnch [--version] COMMAND
A tool to help with updating and building package branches
https://github.com/juhp/fbrnch#readme
Available options:
-h,--help Show this help text
--version Show version
Available commands:
clone Clone packages
switch Switch branch
nvr Print name-version-release
status Status package/branch status
merge Merge from newer branch
unpushed Show unpushed commits
build Build package(s) in Koji
list List packages in pagure distgit
list-local List packages in branch
branches List package branches
parallel Parallel build packages in Koji
sidetags List user's side-tags
override Tag builds into buildroot override in Koji
waitrepo Wait for build to appear in Koji buildroot
scratch Scratch build package in Koji
scratch-aarch64 Koji aarch64 scratch build of package
scratch-x86_64 Koji x86_64 scratch build of package
update-sources Download and update newer sources
sort Sort packages in build dependency order (default
format: chain-build)
prep Prep sources
local Build locally
srpm Build srpm
srpm-spec Show the spec file in an srpm
diff Diff local changes
compare Show commits between branches
src-deps List source package dependencies
mock Local mock build
builddeps Install package build dependencies
install Build locally and install package(s)
not-installed Packages not installed locally
uninstall Remove installed package(s)
bugs List package bugs
bump Bump release for package
commit Git commit packages
pull Git pull packages
fetch Git fetch packages
push Git push packages
owner List package owner(s)
bzusers Search bugzilla users
create-review Create a Package Review request
update-review Update a Package Review
review-package Run fedora-review on a package Review Request bug
reviews List package reviews
request-repos Request dist git repo for new approved packages
import Import new approved created packages from bugzilla
review
request-branches Request branches for approved created packages
find-review Find package review bug
command Run shell command in package dirs ($p)
copr Build package(s) in Fedora Copr
rename-rawhide Rename local 'master' branch to 'rawhide'
count Count number of living packages
graph Output dependency graph
ftbfs Check FTBFS status
autospec Convert package to use rpmautospec
unautospec Unconvert rpmautospec package
move-artifacts Move old rpm artifacts into rpmbuild dirs
tag-build-to-sidetag Tag NVR for current branch to sidetag
Let’s build it for F42!
merge
s from origin--sidetag
prompts to choose sidetagmock --install
optionparallel
offers to retry failuresrequest-branches
also checks access via grouprequest-branches
checks koji listing of packages after
all requestsreview-package
defaults to streamlined interactive
modeuninstall
update-sources
recognizes .crate’slocal --detached-head
request-branches
: now waits for package to be listed
for branch buildtagsidetags --tagged
lists tagged buildsunautospec
koji wait-repo --request
”install
: add --existing-only
,
--skip-existing
, --no-reinstall
options from
select-rpms-0.2 (ported from koji-tool install)request-repo
: now offers to import the new repo
immediatelyscratch-x86_64
,scratch-aarch64
:
--exclude-arch
inversion no longer fast failscopr
: no longer rebuilds nvr’s unless
--force
copr
: does not resubmit existing successful or
in-progress nvr’sinstall
: use select-rpms library refactored from
koji-toolparallel
: support chain-build args with colon
interspersed layersprep
: --allow-head
sort
: default to chain-build outputupdate-sources
: git adds patcheshttps://github.com/juhp/rpmbuild-order/
Orders package source dirs in build dependency order.
Just released 0.3.0 with epel-10.x support
used by: - fbrnch - dl-fedora - fedora-repoquery
used by fbrnch and koji-tool
Give usage examples
used by: fbrnch koji-tool pkgtreediff select-rpms
dnf-repo --help
DNF wrapper repo tool
Usage: dnf-repo [--version] [-n|--dryrun] [-q|--quiet] [-D|--debug] [-l|--list]
[-s|--save] [-4|--dnf4] [(-w|--weak-deps) | (-W|--no-weak-deps)]
[--exact]
[(-d|--disable REPOPAT) | (-e|--enable REPOPAT) |
(-o|--only REPOPAT) | (-x|--expire REPOPAT) |
(-X|--clear-expires) | (-E|--delete-repofile REPOPAT) |
(-z|--time REPOPAT) | (-t|--enable-testing) |
(-T|--disable-testing) | (-m|--enable-modular) |
(-M|--disable-modular) | --enable-debuginfo |
--disable-debuginfo | --enable-source | --disable-source |
(-c|--add-copr [SERVER/]COPR/PROJECT|URL) [--osname OSNAME]
[--releasever RELEASEVER] |
(-k|--add-koji REPO) | (-r|--add-repofile REPOFILEURL)
[--releasever RELEASEVER] |
(-u|--repourl URL)] [DNFARGS]
see https://github.com/juhp/dnf-repo#readme
Available options:
-h,--help Show this help text
--version Show version
-n,--dryrun Dry run
-q,--quiet Suppress necessary output
-D,--debug Debug output
-l,--list List all repos
-s,--save Save the repo enable/disable state
-4,--dnf4 Use dnf4 (if dnf5 available)
-w,--weak-deps Use weak dependencies
-W,--no-weak-deps Disable weak dependencies
--exact Match repo names exactly
-d,--disable REPOPAT Disable repos
-e,--enable REPOPAT Enable repos
-o,--only REPOPAT Only use matching repos
-x,--expire REPOPAT Expire repo cache
-X,--clear-expires Undo cache expirations
-E,--delete-repofile REPOPAT
Remove unwanted .repo file
-z,--time REPOPAT Show repodata timestamps
-t,--enable-testing Enable testing repos
-T,--disable-testing Disable testing repos
-m,--enable-modular Enable modular repos
-M,--disable-modular Disable modular repos
--enable-debuginfo Enable debuginfo repos
--disable-debuginfo Disable debuginfo repos
--enable-source Enable source repos
--disable-source Disable source repos
-c,--add-copr [SERVER/]COPR/PROJECT|URL
Install copr repo file (defaults to fedora server)
--osname OSNAME Specify OS Name to override (eg epel)
--releasever RELEASEVER Specify OS Release Version to override (eg rawhide)
-k,--add-koji REPO Create repo file for a Fedora koji repo (f40-build,
rawhide, epel9-build, etc)
-r,--add-repofile REPOFILEURL
Install repo file
--releasever RELEASEVER Specify OS Release Version to override (eg rawhide)
-u,--repourl URL Use temporary repo from a baseurl
https://github.com/juhp/koji-tool
commands for querying koji builds
and
tasks
progress
and install
also friendly find
command
plan to convert to a library, so fbrnch can use it directly
Download Fedora iso images
.dl-fedora-partial/
subdirectory--all-desktops
--dir
option to override download dirhttps://github.com/juhp/fedora-repoquery
Build new release
https://copr.fedorainfracloud.org/coprs/petersen/fedora-composes
0.6 is now in rawhide!
Lennart requested enabling for more terminals
https://copr.fedorainfracloud.org/coprs/petersen/fhcontainer/