centpkg(1)

πŸ“¦
version 0.11.0 Β· 5 versions
, in fedora 43, fedora 44

✨ NAME ✨

okay so bestie, we're reading the centpkg(1) page from the rpm-packager manual πŸ’– and the star of the show is:

centpkg β€” the RPM Packaging utility. that's it, that's the whole name. short, sweet, iconic πŸ‘‘


🌸 SYNOPSIS 🌸

centpkg [ global_options ] command [ command_options ] [ command_arguments ]
centpkg help
centpkg command --help

πŸ’« DESCRIPTION πŸ’«

centpkg is a script to interact with the RPM Packaging system. literally that's the summary and it's giving main character energy, no cap πŸ’…

πŸŽ€ Global Options πŸŽ€

these bad boys work no matter which command you're running, so let's get into it:

  • --config, -C CONFIG β€” tells it which config file to use, like handing it a lil note that says "use this one bestie" πŸ“
  • --dry-run β€” do a dry run. rehearsal mode, nothing actually goes down 🎭
  • --release RELEASE β€” overrides the release it discovered from the current branch, and that release is what decides the build target and the value of the dist macro. generally speaking, release = the name of a branch made in your package repository. heads up: --release is an alias of --dist, which is why --release is the one you should be using 🫢
  • --name NAME β€” override the repository name. use --namespace if you wanna change the namespace instead. if you don't specify it, the name gets discovered in this exact order: from the Git push URL, or from the Git URL (that's the last part of the path with the .git extension removed), or from the Name macro in the spec file 🌈
  • --namespace NAMESPACE β€” the package repository namespace. if you skip it, it defaults to rpms when namespace is enabled 🌸
  • --user USER β€” override the discovered user name
  • --password PASSWORD β€” password for Koji login πŸ”
  • --runas RUNAS β€” run Koji commands as a different user, identity crisis but make it useful
  • --path PATH β€” define the directory to work in (defaults to cwd)
  • --verbose, -v β€” run with verbose debug output, for when you want the tea β˜•
  • --debug, -d β€” run with debug output
  • -q β€” run quietly, only displaying errors 🀫
  • --user-config USER_CONFIG β€” specify a user config file to use

πŸ›οΈ COMMAND OVERVIEW πŸ›οΈ

here's the full lineup bestie, every single one, no skips πŸŽ€

  • centpkg build β€” Request build πŸ”₯
centpkg build [-h] [--arches [ARCHES ...]] [--md5] [--nowait] [--target TARGET] [--background] [--fail-fast] [--skip-remote-rules-validation] [--skip-nvr-check] [--custom-user-metadata CUSTOM_USER_METADATA] [--skip-tag] [--scratch | --draft] [--srpm [SRPM]] [--srpm-mock] [--root CONFIG] [--rhel-target {exception,zstream,latest,none}]
  • centpkg chain-build β€” Build current package in order with other packages ⛓️
centpkg chain-build [-h] [--arches [ARCHES ...]] [--md5] [--nowait] [--target TARGET] [--background] [--fail-fast] [--skip-remote-rules-validation] [--skip-nvr-check] [--custom-user-metadata CUSTOM_USER_METADATA] package [package ...]
  • centpkg ci β€” Alias for commit ✨
centpkg ci [-h] [-m MESSAGE] [--with-changelog] [-c] [--raw] [-t] [-F FILE] [-p] [-s] [files ...]
  • centpkg clean β€” Remove untracked files 🧹
centpkg clean [-h] [--dry-run] [-x]
  • centpkg clog β€” Make a clog file containing top changelog entry
centpkg clog [-h] [--raw]
  • centpkg clone β€” Clone and checkout a repository 🧬
centpkg clone [-h] [--branches] [--branch BRANCH] [--anonymous] [--depth DEPTH] repo [clone_target] ...
  • centpkg co β€” Alias for clone ✨
centpkg co [-h] [--branches] [--branch BRANCH] [--anonymous] [--depth DEPTH] repo [clone_target] ...
  • centpkg commit β€” Commit changes πŸ’Ύ
centpkg commit [-h] [-m MESSAGE] [--with-changelog] [-c] [--raw] [-t] [-F FILE] [-p] [-s] [files ...]
  • centpkg compile β€” Local test rpmbuild compile πŸ”¨
centpkg compile [-h] [--builddir BUILDDIR] [--buildrootdir BUILDROOTDIR] [--arch ARCH] [--define DEFINE] [--short-circuit] [--nocheck] ...
  • centpkg container-build β€” Build a container πŸ“¦
centpkg container-build [-h] [--target TARGET] [--nowait] [--background] [--build-release BUILD_RELEASE] [--isolated] [--koji-parent-build KOJI_PARENT_BUILD] [--scratch] [--arches [ARCHES ...]] [--repo-url URL [URL ...]] [--signing-intent SIGNING_INTENT] [--skip-remote-rules-validation] [--skip-build] [--compose-id COMPOSE_ID [COMPOSE_ID ...]] [--replace-dependency PKG_MANAGER:NAME:VERSION[:NEW_NAME] [PKG_MANAGER:NAME:VERSION[:NEW_NAME] ...]]
  • centpkg container-build-setup β€” set options for container-build βš™οΈ
centpkg container-build-setup [-h] (--get-autorebuild | --set-autorebuild {true,false})
  • centpkg copr-build β€” Build package in Copr πŸ—οΈ
centpkg copr-build [-h] [--config CONFIG] [--nowait] project ...
  • centpkg current-state β€” Show the phase and state of current dist-git branch - Internal Only 🚧
centpkg current-state [-h]
  • centpkg diff β€” Show changes between commits, commit and working tree, etc πŸ‘€
centpkg diff [-h] [--cached] [files ...]
  • centpkg flatpak-build β€” Build a Flatpak πŸ¦‹
centpkg flatpak-build [-h] [--target TARGET] [--nowait] [--background] [--build-release BUILD_RELEASE] [--isolated] [--koji-parent-build KOJI_PARENT_BUILD] [--scratch] [--arches [ARCHES ...]] [--repo-url URL [URL ...]] [--signing-intent SIGNING_INTENT] [--skip-remote-rules-validation] [--skip-build]
  • centpkg fork β€” Create a new fork of the current repository 🍴
centpkg fork [-h]
  • centpkg gimmespec β€” Print the spec file name πŸ“„
centpkg gimmespec [-h]
  • centpkg gitbuildhash β€” Print the git hash used to build the provided n-v-r
centpkg gitbuildhash [-h] build
  • centpkg giturl β€” Print the git url for building πŸ”—
centpkg giturl [-h]
  • centpkg help β€” Show usage πŸ™‹
centpkg help [-h]
  • centpkg import β€” Import srpm content into a module πŸ“₯
centpkg import [-h] [--skip-diffs] [--offline] [--do-not-check-specfile-name] srpm
  • centpkg install β€” Local test rpmbuild install πŸ”§
centpkg install [-h] [--builddir BUILDDIR] [--buildrootdir BUILDROOTDIR] [--arch ARCH] [--define DEFINE] [--short-circuit] [--nocheck] [--with BCOND_WITH] [--without BCOND_WITHOUT] ...
  • centpkg lint β€” Run rpmlint against local spec and build output if present. 🧼
centpkg lint [-h] [--info] [--rpmlintconf RPMLINTCONF]
  • centpkg list-side-tags β€” List existing side-tags 🏷️
centpkg list-side-tags [-h] [--mine | --user TAG_OWNER | --base-tag BASE_TAG]
  • centpkg local β€” Local test rpmbuild binary πŸ§ͺ
centpkg local [-h] [--builddir BUILDDIR] [--buildrootdir BUILDROOTDIR] [--arch ARCH] [--define DEFINE] [--md5] [--with BCOND_WITH] [--without BCOND_WITHOUT] ...
  • centpkg mock-config β€” Generate a mock config πŸ› οΈ
centpkg mock-config [-h] [--target TARGET] [--arch ARCH]
  • centpkg mockbuild β€” Local test build using mock 🧱
centpkg mockbuild [-h] [--root CONFIG] [--md5] [--no-clean] [--no-cleanup-after] [--no-clean-all] [--with BCOND_WITH] [--without BCOND_WITHOUT] [--shell] [--enablerepo ENABLEREPO] [--disablerepo DISABLEREPO] [--enable-network] [--srpm-mock] [--use-koji-mock-config | --use-local-mock-config] [--default-mock-resultdir] [--extra-pkgs [EXTRA_PKGS ...]] ...
  • centpkg module-build β€” Build a module using MBS 🧩
centpkg module-build [-h] [--watch] [--buildrequires name:stream] [--requires name:stream] [--optional key=value] [--file [FILE_PATH]] [--srpm SRPMS] [--scratch] [scm_url] [branch]
  • centpkg module-build-cancel β€” Cancel an MBS module build πŸ›‘
centpkg module-build-cancel [-h] build_id
  • centpkg module-build-info β€” Show information of an MBS module build ℹ️
centpkg module-build-info [-h] build_id
  • centpkg module-build-local β€” Build a module locally using the mbs-manager command 🏠
centpkg module-build-local [-h] [--file [FILE_PATH]] [--srpm SRPMS] [--stream [STREAM]] [--skip-tests] [--add-local-build N:S:V] [-s N:S] [--offline] [-r PATH]
  • centpkg module-build-watch β€” Watch an MBS build πŸ‘οΈ
centpkg module-build-watch [-h] build_id [build_id ...]
  • centpkg module-overview β€” Shows an overview of MBS builds πŸ—ΊοΈ
centpkg module-overview [-h] [--unfinished] [--limit LIMIT] [--owner FAS_ID | --mine]
  • centpkg module-scratch-build β€” Build a scratch module using MBS ✨
centpkg module-scratch-build [-h] [--watch] [--buildrequires name:stream] [--requires name:stream] [--optional key=value] [--file [FILE_PATH]] [--srpm SRPMS] [scm_url] [branch]
  • centpkg new β€” Diff against last tag πŸ†•
centpkg new [-h]
  • centpkg new-sources β€” Upload source files ⬆️
centpkg new-sources [-h] [--offline] files [files ...]
  • centpkg patch β€” Create and add a gendiff patch file 🩹
centpkg patch [-h] [--rediff] suffix
  • centpkg pre-push-check β€” Check whether the eventual "git push" command could proceed 🚦
centpkg pre-push-check [-h] [ref]
  • centpkg prep β€” Local test rpmbuild prep πŸ“‹
centpkg prep [-h] [--builddir BUILDDIR] [--buildrootdir BUILDROOTDIR] [--arch ARCH] [--define DEFINE] [--check-deps] ...
  • centpkg pull β€” Pull changes from the remote repository and update the working copy. ⬇️
centpkg pull [-h] [--rebase] [--no-rebase]
  • centpkg push β€” Push changes to remote repository πŸš€
centpkg push [-h] [--force] [--no-verify]
  • centpkg remote β€” Operations with tracked repositories ('remotes'). This is an experimental interface. πŸ§ͺ
centpkg remote [-h] {add} ...
  • centpkg remove-side-tag β€” Remove a side tag (without merging packages) πŸ—‘οΈ
centpkg remove-side-tag [-h] TAG
  • centpkg request-gated-side-tag β€” Create a new dynamic gated side tag πŸšͺ
centpkg request-gated-side-tag [-h] [--base-tag BASE_TAG]
  • centpkg request-side-tag β€” Create a new side tag 🏷️
centpkg request-side-tag [-h] [--base-tag BASE_TAG] [--suffix SUFFIX]
  • centpkg retire β€” Retire a package/module 🫑
centpkg retire [-h] reason
  • centpkg scratch-build β€” Request scratch build ✨
centpkg scratch-build [-h] [--arches [ARCHES ...]] [--md5] [--nowait] [--target TARGET] [--background] [--fail-fast] [--skip-remote-rules-validation] [--skip-nvr-check] [--custom-user-metadata CUSTOM_USER_METADATA] [--srpm [SRPM]] [--srpm-mock] [--root CONFIG]
  • centpkg sources β€” Download source files πŸ“¦
centpkg sources [-h] [--outdir OUTDIR] [--force] [--offline]
  • centpkg srpm β€” Create a source rpm πŸ₯š
centpkg srpm [-h] [--builddir BUILDDIR] [--buildrootdir BUILDROOTDIR] [--arch ARCH] [--define DEFINE] [--md5] [--srpm-mock] [--no-clean] [--no-cleanup-after] [--no-clean-all] [--offline] [--root CONFIG] ...
  • centpkg switch-branch β€” Work with branches 🌿
centpkg switch-branch [-h] [-l] [--fetch] [branch]
  • centpkg tag β€” Management of git tags 🏷️
centpkg tag [-h] [-f] [-m MESSAGE] [-c] [--raw] [-F FILE] [-l] [-d] [tag]
  • centpkg unused-patches β€” Print list of patches not referenced by name in the specfile πŸ”
centpkg unused-patches [-h]
  • centpkg upload β€” Upload source files ⬆️
centpkg upload [-h] [--offline] files [files ...]
  • centpkg verify-files β€” Locally verify %%files section βœ…
centpkg verify-files [-h] [--builddir BUILDDIR] [--buildrootdir BUILDROOTDIR] [--arch ARCH] [--define DEFINE] ...
  • centpkg verrel β€” Print the name-version-release. πŸ”’
centpkg verrel [-h]

πŸ‘‘ COMMAND REFERENCE πŸ‘‘

now we get into the juicy part, one command at a time, and bestie we are only at the beginning 😭

πŸ’… centpkg build

usage: centpkg build [-h] [--arches [ARCHES ...]] [--md5] [--nowait] [--target TARGET] [--background] [--fail-fast] [--skip-remote-rules-validation] [--skip-nvr-check] [--custom-user-metadata CUSTOM_USER_METADATA] [--skip-tag] [--scratch | --draft] [--srpm [SRPM]] [--srpm-mock] [--root CONFIG] [--rhel-target {exception,zstream,latest,none}]

This command requests a build of the package in the build system. by default it discovers the target to build for based on branch data, and it uses the latest commit as the build source. so it's out here doing detective work on your branch and then shipping your newest commit off to get built πŸ”₯


okay so we are nowhere near done, the rest of this command reference is literally still loading β€” do not touch that dial bestie 🌈

centpkg now sets the rhel metadata with --rhel-target. The choices, bestie, are:

  • exception β€” this will build for the current in-development Y-stream release. It's equivalent to passing latest when you're not in the Blocker and Exception Phase.
  • zstream β€” if pre-GA of a y-stream release, this will build for 0day. If post-GA of a Y-stream release, this will build for the Z-stream of that release. ✨
  • latest β€” this will always build for the next Y-stream release.
  • none β€” this will not build in brew. No rhel metadata is set. πŸ’€

And here's the options roster for centpkg build:

  • -h, --help β€” show this help message and exit 🫢
  • --arches [ARCHES ...] β€” Build for specific arches
  • --md5 β€” Use md5 checksums (for older rpm hosts)
  • --nowait β€” Don't wait on build
  • --target TARGET β€” Define build target to build into
  • --background β€” Run the build at a low priority
  • --fail-fast β€” Fail the build immediately if any arch fails
  • --skip-remote-rules-validation β€” Don't check if there's a valid gating.yaml file in the repo, where you can define additional policies for Greenwave gating.
  • --skip-nvr-check β€” Submit build to buildsystem without check if NVR was already built. NVR is constructed locally and may be different from NVR constructed during build on builder.
  • --custom-user-metadata CUSTOM_USER_METADATA β€” Provide a JSON string of custom metadata to be deserialized and stored under the build's extra.custom_user_metadata field
  • --skip-tag β€” Do not attempt to tag package
  • --scratch β€” Perform a scratch build
  • --draft β€” Perform a draft build
  • --srpm [SRPM] β€” Build from an srpm. If no srpm is provided with this option an srpm will be generated from current module content.
  • --srpm-mock β€” Build from an srpm. Source rpm will be generated in 'mock' instead of 'rpmbuild'.
  • --root, --mock-config, -r CONFIG β€” Override mock configuration (like mock -r)
  • --rhel-target {exception,zstream,latest,none} β€” Set the rhel-target metadata

🌈 centpkg chain-build

usage: centpkg chain-build [-h] [--arches [ARCHES ...]] [--md5]
                           [--nowait] [--target TARGET]
                           [--background] [--fail-fast]
                           [--skip-remote-rules-validation]
                           [--skip-nvr-check]
                           [--custom-user-metadata
CUSTOM_USER_METADATA]
                           package [package ...]

Build current package in order with other packages. Chain gang energy, honestly. πŸ‘‘

example: centpkg chain-build libwidget libgizmo

The current package is added to the end of the CHAIN list. Colons (:) can be used in the CHAIN parameter to define groups of packages. Packages in any single group will be built in parallel and all packages in a group must build successfully and populate the repository before the next group will begin building.

For example:

centpkg chain-build libwidget libaselib : libgizmo :

will cause libwidget and libaselib to be built in parallel, followed by libgizmo and then the current directory package. If no groups are defined, packages will be built sequentially. No cap. πŸ’…

positional arguments:

  • package β€” List the packages and order you want to build in

options:

  • -h, --help β€” show this help message and exit
  • --arches [ARCHES ...] β€” Build for specific arches
  • --md5 β€” Use md5 checksums (for older rpm hosts)
  • --nowait β€” Don't wait on build
  • --target TARGET β€” Define build target to build into
  • --background β€” Run the build at a low priority
  • --fail-fast β€” Fail the build immediately if any arch fails
  • --skip-remote-rules-validation β€” Don't check if there's a valid gating.yaml file in the repo, where you can define additional policies for Greenwave gating.
  • --skip-nvr-check β€” Submit build to buildsystem without check if NVR was already built. NVR is constructed locally and may be different from NVR constructed during build on builder.
  • --custom-user-metadata CUSTOM_USER_METADATA β€” Provide a JSON string of custom metadata to be deserialized and stored under the build's extra.custom_user_metadata field

✨ centpkg ci

usage: centpkg ci [-h] [-m MESSAGE] [--with-changelog] [-c] [--raw]
                  [-t] [-F FILE] [-p] [-s]
                  [files ...]

Alias for commit. That's it, that's the whole vibe. πŸŽ€

positional arguments:

  • files β€” Optional list of specific files to commit

options:

  • -h, --help β€” show this help message and exit
  • -m, --message MESSAGE β€” Use the given <msg> as the commit message summary
  • --with-changelog β€” Get the last changelog from SPEC as commit message content. This option must be used with -m together.
  • -c, --clog β€” Generate the commit message from the Changelog section
  • --raw β€” Make the clog raw
  • -t, --tag β€” Create a tag for this commit
  • -F, --file FILE β€” Take the commit message from the given file
  • -p, --push β€” Commit and push as one action
  • -s, --signoff β€” Include a signed-off-by

🧹 centpkg clean

usage: centpkg clean [-h] [--dry-run] [-x]

This command can be used to clean up your working directory. By default it will follow .gitignore rules. Patterns listed in .git/info/exclude won't be removed either. It's giving spring cleaning but for your repo, fr fr. 🌸

options:

  • -h, --help β€” show this help message and exit
  • --dry-run, -n β€” Perform a dry-run
  • -x β€” Do not follow .gitignore and .git/info/exclude rules

πŸ“ centpkg clog

usage: centpkg clog [-h] [--raw]

This will create a file named "clog" that contains the latest rpm changelog entry. The leading "- " text will be stripped.

options:

  • -h, --help β€” show this help message and exit
  • --raw β€” Generate a more "raw" clog without twiddling the contents

πŸ¦‹ centpkg clone

usage: centpkg clone [-h] [--branches] [--branch BRANCH]
                     [--anonymous] [--depth DEPTH]
                     repo [clone_target] ...

This command will clone the named repository from the configured repository base URL. By default it will also checkout the master branch for your working copy. ✨

positional arguments:

  • repo β€” Name of the repository to clone. It should not be a Git URL. Should be 'namespace/repo-name' in case of namespaced dist-git. Otherwise, just 'repo-name'. Namespace examples are 'rpms', 'container', 'modules', 'flatpaks'. Default namespace 'rpms' can be ignored.
  • clone_target β€” Directory in which to clone the repository
  • extra_args β€” Custom arguments that are passed to the 'git clone'. Use '--' to separate them from other arguments.

options:

  • -h, --help β€” show this help message and exit
  • --branches, -B β€” Do an old style checkout with subdirs for branches
  • --branch, -b BRANCH β€” Check out a specific branch
  • --anonymous, -a β€” Check out a module anonymously
  • --depth DEPTH β€” Create a shallow clone with a history truncated to the specified number of commits

πŸ’œ centpkg co

usage: centpkg co [-h] [--branches] [--branch BRANCH] [--anonymous]
                  [--depth DEPTH]
                  repo [clone_target] ...

Alias for clone. Short king behaviour. πŸ‘‘

positional arguments:

  • repo β€” Name of the repository to clone. It should not be a Git URL. Should be 'namespace/repo-name' in case of namespaced dist-git. Otherwise, just 'repo-name'. Namespace examples are 'rpms', 'container', 'modules', 'flatpaks'. Default namespace 'rpms' can be ignored.
  • clone_target β€” Directory in which to clone the repository
  • extra_args β€” Custom arguments that are passed to the 'git clone'. Use '--' to separate them from other arguments.

options:

  • -h, --help β€” show this help message and exit
  • --branches, -B β€” Do an old style checkout with subdirs for branches
  • --branch, -b BRANCH β€” Check out a specific branch
  • --anonymous, -a β€” Check out a module anonymously
  • --depth DEPTH β€” Create a shallow clone with a history truncated to the specified number of commits

πŸ’– centpkg commit

usage: centpkg commit [-h] [-m MESSAGE] [--with-changelog] [-c]
                      [--raw] [-t] [-F FILE] [-p] [-s]
                      [files ...]

This invokes a git commit. All tracked files with changes will be committed unless a specific file list is provided. $EDITOR will be used to generate a changelog message unless one is given to the command. A push can be done at the same time. Iconic, honestly. 🫢

positional arguments:

  • files β€” Optional list of specific files to commit
  • -h, --help β€” bestie classic πŸ’… pops the help message and dips, that's it.
  • -m, --message MESSAGE β€” drop the given <msg> in as your commit message summary. that's the headline, the vibe, the whole point.
  • --with-changelog β€” yoinks the last changelog entry out of the SPEC and uses it as the commit message content. ⚠️ this one is not a solo act β€” it has to be used with -m together, periodt.
  • -c, --clog β€” generates the commit message straight from the Changelog section. iconic behavior.
  • --raw β€” makes the clog raw. no filter, no styling, just raw.
  • -t, --tag β€” creates a tag for this commit. leave a lil souvenir. πŸŽ€
  • -F, --file FILE β€” takes the commit message from the given file instead. file girlies rise.
  • -p, --push β€” commits and pushes as one action. one move, two jobs, efficiency queen πŸ‘‘
  • -s, --signoff β€” includes a signed-off-by. add your signature, you deserve the credit. ✨

πŸ› οΈ centpkg compile

centpkg compile [-h] [--builddir BUILDDIR]
                       [--buildrootdir BUILDROOTDIR] [--arch ARCH]
                       [--define DEFINE] [--short-circuit]
                       [--nocheck]
                       ...

okay so this one literally calls rpmbuild to compile the source. and by default it's doing the whole prep + configure stages too, unless you hit it with the short-circuit option and skip all that. no cap.

positional arguments:

  • extra_args β€” custom arguments that get passed straight to rpmbuild. use -- to separate them from other arguments. (iykyk, that -- is doing a LOT of heavy lifting)

options:

  • -h, --help β€” show this help message and exit
  • --builddir BUILDDIR β€” define an alternate builddir
  • --buildrootdir BUILDROOTDIR β€” define an alternate buildrootdir
  • --arch ARCH β€” prep for a specific arch
  • --define DEFINE β€” pass custom macros to rpmbuild, and yes you can specify this multiple times 🫢
  • --short-circuit β€” short-circuit compile. skipping straight to it.
  • --nocheck β€” nocheck compile

🐳 centpkg container-build

centpkg container-build [-h] [--target TARGET] [--nowait]
                                       [--background]
                                       [--build-release BUILD_RELEASE]
                                       [--isolated]
                                       [--koji-parent-build KOJI_PARENT_BUILD]
                                       [--scratch] [--arches [ARCHES ...]]
                                       [--repo-url URL [URL ...]]
                                       [--signing-intent SIGNING_INTENT]
                                       [--skip-remote-rules-validation]
                                       [--skip-build]
                                       [--compose-id COMPOSE_ID [COMPOSE_ID
      ...]]
                                       [--replace-dependency
      PKG_MANAGER:NAME:VERSION[:NEW_NAME] [PKG_MANAGER:NAME:VERSION[:NEW_NAME]
      ...]]

build a container. that's the whole pitch, bestie.

options:

  • -h, --help β€” show this help message and exit
  • --target TARGET β€” override the default target
  • --nowait β€” don't wait on build. set it and ghost it πŸ‘»
  • --background β€” run the build at a lower priority
  • --build-release BUILD_RELEASE β€” specify a release value for this build's NVR
  • --isolated β€” do not update floating tags in the registry. ⚠️ you must use the --build-release argument with this one, no exceptions.
  • --koji-parent-build KOJI_PARENT_BUILD β€” specify a Koji NVR for the parent container image. this overrides the "FROM" value in your Dockerfile.
  • --scratch β€” scratch build
  • --arches [ARCHES ...] β€” limit a scratch or a isolated build to an arch. may have multiple arches.
  • --repo-url URL [URL ...] β€” URLs of yum repo files
  • --signing-intent SIGNING_INTENT β€” the signing intent of the ODCS composes. if you specify it, it must be one of the signing intent names configured on the OSBS server. if you don't, the server will use the signing intent of the compose_ids you specify, or the server's default_signing_intent. to view the full list of possible names, see atomic_reactor.config in osbs-build.log.
  • --skip-remote-rules-validation β€” don't check if there's a valid gating.yaml file in the repo. rules? skipped. validation? gone. πŸ™ˆ
  • --skip-build β€” don't create build, but just modify settings for autorebuilds
  • --compose-id COMPOSE_ID [COMPOSE_ID ...] β€” existing ODCS composes to use (specify integers). OSBS will not generate new ODCS composes. ⚠️ cannot be used with --signing-intent.
  • --replace-dependency PKG_MANAGER:NAME:VERSION[:NEW_NAME] [PKG_MANAGER:NAME:VERSION[:NEW_NAME] ...] β€” Cachito dependency replacement

βš™οΈ centpkg container-build-setup

centpkg container-build-setup [-h] (--get-autorebuild |
                                             --set-autorebuild {true,false})

set options for container-build. it's the settings panel, basically.

options:

  • -h, --help β€” show this help message and exit
  • --get-autorebuild β€” get autorebuild value
  • --set-autorebuild {true,false} β€” turn autorebuilds on/off. literally a light switch. πŸ¦‹

πŸ—οΈ centpkg copr-build

centpkg copr-build [-h] [--config CONFIG] [--nowait]
                                   project ...

build package in Copr. 🌈

Note: you need to have set up correct api key. for more information see API KEY section of copr-cli(1) man page.

positional arguments:

  • project β€” name of the project in format USER/PROJECT
  • extra_args β€” custom arguments that are passed to the copr-cli. use -- to separate them from other arguments.

options:

  • -h, --help β€” show this help message and exit
  • --config CONFIG β€” path to an alternative Copr configuration file
  • --nowait β€” don't wait on build

πŸ” centpkg current-state

centpkg current-state [-h]

show the phase and state of current dist-git branch β€” Internal Only. that's the whole thing, she's mysterious like that. πŸ’œ

options:

  • -h, --help β€” show this help message and exit

πŸ”€ centpkg diff

centpkg diff [-h] [--cached] [files ...]

uses git diff to show you the changes that have been made to tracked files. and heads up: by default, cached changes (aka the ones you've already git add-ed) will not be shown. sneaky of them fr.

positional arguments:

  • files β€” optionally diff specific files

options:

  • -h, --help β€” show this help message and exit
  • --cached β€” view staged changes. there they are πŸ‘€

πŸ“¦ centpkg flatpak-build

centpkg flatpak-build [-h] [--target TARGET] [--nowait]
                                      [--background]
                                      [--build-release BUILD_RELEASE]
                                      [--isolated]
                                      [--koji-parent-build KOJI_PARENT_BUILD]
                                      [--scratch] [--arches [ARCHES ...]]
                                      [--repo-url URL [URL ...]]
                                      [--signing-intent SIGNING_INTENT]
                                      [--skip-remote-rules-validation]
                                      [--skip-build]

build a Flatpak. πŸ’…

options:

  • -h, --help β€” show this help message and exit
  • --target TARGET β€” override the default target
  • --nowait β€” don't wait on build
  • --background β€” run the build at a lower priority
  • --build-release BUILD_RELEASE β€” specify a release value for this build's NVR
  • --isolated β€” do not update floating tags in the registry. ⚠️ you must use the --build-release argument here too, same deal.
  • --koji-parent-build KOJI_PARENT_BUILD β€” specify a Koji NVR for the parent container image. this will override the "FROM" value in your Dockerfile.
  • --scratch β€” scratch build
  • --arches [ARCHES ...] β€” limit a scratch or a isolated build to an arch. may have multiple arches.
  • --repo-url URL [URL ...] β€” URLs of yum repo files
  • --signing-intent SIGNING_INTENT β€” signing intent of the ODCS composes. if specified, this must be one of the signing intent names configured on the OSBS server. if unspecified, the server will use the signing intent of the compose_ids you specify, or the server's default_signing_intent. to view the full list of possible names, see atomic_reactor.config in osbs-build.log.
  • --skip-remote-rules-validation β€” don't check if there's a valid gating.yaml file in the repo
  • --skip-build β€” don't create build, but just modify settings for autorebuilds

🍴 centpkg fork

centpkg fork [-h]

create a new fork of the current repository. 🫢

before the operation, you need to generate an API token at https://gitlab.com/-/user_settings/personal_access_tokens, select the "api" scope and save it in your local user configuration located at ~/.config/rpkg/centpkg.conf. for example:

[centpkg.distgit]
token = <api_key_here>

below is a basic example of the command to fork a current repository:

centpkg fork

options:

  • -h, --help β€” show this help message and exit

πŸŽ€ centpkg gimmespec

centpkg gimmespec [-h]

print the spec file name. she said gimme and she meant it. ✨

options:

  • -h, --help β€” show this help message and exit

🧚 centpkg gitbuildhash

centpkg gitbuildhash [-h] build

this will show you the commit hash string used to build the provided build n-v-r. receipts, basically.

positional arguments:

  • build β€” name-version-release of the build to query.

options:

  • -h, --help β€” show this help message and exit

πŸ”— centpkg giturl

centpkg giturl [-h]

this will show you which git URL would be used in a build command. it uses the git hashsum of the HEAD of the current branch (which may not be pushed). ⚠️ yes bestie, that's the unpushed one β€” it's still counting it.

options:

  • -h, --help β€” show this help message and exit

πŸ’– centpkg help

centpkg help [-h]

show usage. short, sweet, helpful. that's the whole vibe. 🌸

  • -h, --help β€” show this help message and exit

…and that's a wrap on the previous command's flags, bestie πŸ’… now let's keep the tour going.


centpkg import πŸ’–

centpkg import [-h] [--skip-diffs] [--offline]
               [--do-not-check-specfile-name]
               srpm

okay so this is the "unbox an srpm and move its whole life into my repo" command ✨ It pulls the sources, the patches, and the spec file out of an srpm and updates your current module to match. By default it imports into whatever branch you're standing on right now. No drama, no extra steps 🌸

Positional arguments:

  • srpm β€” the source rpm you want to import πŸŽ€

Options:

  • -h, --help β€” show this help message and exit
  • --skip-diffs β€” don't show diffs when import srpms (yes, if you're the kind of person who doesn't want the receipts, this is your flag πŸ™ˆ)
  • --offline β€” do not upload files into the lookaside cache 🚫
  • --do-not-check-specfile-name β€” skip the check for whether the specfile inside the SRPM matches the repository name πŸ‘‘

centpkg install πŸ› οΈ

centpkg install [-h] [--builddir BUILDDIR]
                [--buildrootdir BUILDROOTDIR] [--arch ARCH]
                [--define DEFINE] [--short-circuit]
                [--nocheck] [--with BCOND_WITH]
                [--without BCOND_WITHOUT]
                ...

This one calls rpmbuild to run the install section, and it's giving "I want the middle of the build, not the whole thing" energy πŸ”₯ All the leading sections get processed too, unless you use the short-circuit option β€” then it's straight to the good part, no cap.

Positional arguments:

  • extra_args β€” custom arguments that are passed to the rpmbuild. Use -- to separate them from other arguments 🫢

Options:

  • -h, --help β€” show this help message and exit
  • --builddir BUILDDIR β€” define an alternate builddir
  • --buildrootdir BUILDROOTDIR β€” define an alternate buildrootdir
  • --arch ARCH β€” prep for a specific arch
  • --define DEFINE β€” pass custom macros to rpmbuild, may specify multiple times (stack 'em up πŸ’…)
  • --short-circuit β€” short-circuit install
  • --nocheck β€” nocheck install
  • --with BCOND_WITH β€” enable configure option (bcond) for the build
  • --without BCOND_WITHOUT β€” disable configure option (bcond) for the build

centpkg lint πŸ”

centpkg lint [-h] [--info] [--rpmlintconf RPMLINTCONF]

Rpmlint can be configured using the --rpmlintconf/-r option, or by setting a <pkgname>.rpmlintrc file in the working directory πŸŽ€ Both routes are valid, pick your fighter.

Options:

  • -h, --help β€” show this help message and exit
  • --info, -i β€” display explanations for reported messages (so you actually understand the yelling 🫢)
  • --rpmlintconf, -r RPMLINTCONF β€” use a specific configuration file for rpmlint

centpkg list-side-tags 🏷️

centpkg list-side-tags [-h] [--mine | --user TAG_OWNER |
                       --base-tag BASE_TAG]

List existing side-tags. That's it, that's the whole vibe β€” a little inventory check of what's out there ✨

Options:

  • -h, --help β€” show this help message and exit
  • --mine β€” list only my side tags πŸ’–
  • --user TAG_OWNER β€” list side tags created by this user
  • --base-tag BASE_TAG β€” list only tags based on this base
Heads up: those three options are mutually exclusive β€” it's a | situation, so you pick one and commit to it, main character energy only πŸ‘‘

centpkg local 🌈

centpkg local [-h] [--builddir BUILDDIR]
              [--buildrootdir BUILDROOTDIR] [--arch ARCH]
              [--define DEFINE] [--md5] [--with BCOND_WITH]
              [--without BCOND_WITHOUT]
              ...

Locally test run of rpmbuild producing binary RPMs πŸ”₯ The rpmbuild output gets logged into a file named .build-%{version}-%{release}.log β€” so if something goes feral, the receipts are right there in that file, iykyk.

Positional arguments:

  • extra_args β€” custom arguments that are passed to the rpmbuild. Use -- to separate them from other arguments 🫢

Options:

  • -h, --help β€” show this help message and exit
  • --builddir BUILDDIR β€” define an alternate builddir
  • --buildrootdir BUILDROOTDIR β€” define an alternate buildrootdir
  • --arch ARCH β€” prep for a specific arch
  • --define DEFINE β€” pass custom macros to rpmbuild, may specify multiple times
  • --md5 β€” use md5 checksums (for older rpm hosts) πŸ§“
  • --with BCOND_WITH β€” enable configure option (bcond) for the build
  • --without BCOND_WITHOUT β€” disable configure option (bcond) for the build

centpkg mock-config πŸ§ͺ

centpkg mock-config [-h] [--target TARGET] [--arch ARCH]

This will generate a mock config based on the buildsystem target ✨ Basically it manifests the config file you need.

Options:

  • -h, --help β€” show this help message and exit
  • --target TARGET β€” override target used for config
  • --arch ARCH β€” override local arch

centpkg mockbuild πŸ“¦

centpkg mockbuild [-h] [--root CONFIG] [--md5] [--no-clean]
                  [--no-cleanup-after] [--no-clean-all]
                  [--with BCOND_WITH]
                  [--without BCOND_WITHOUT] [--shell]
                  [--enablerepo ENABLEREPO]
                  [--disablerepo DISABLEREPO]
                  [--enable-network] [--srpm-mock]
                  [--use-koji-mock-config |
                  --use-local-mock-config]
                  [--default-mock-resultdir]
                  [--extra-pkgs [EXTRA_PKGS ...]]
                  ...

This will use the mock utility to build the package for the distribution detected from branch information 🌸 You can override that with the global --release option if you want to be extra. Your user must be in the local "mock" group β€” no group, no build, periodt πŸ’€

Positional arguments:

  • extra_args β€” custom arguments that are passed to the mock. Use -- to separate them from other arguments 🫢

Options:

  • -h, --help β€” show this help message and exit
  • --root, --mock-config, -r CONFIG β€” override mock configuration (like mock -r) πŸŽ€
  • --md5 β€” use md5 checksums (for older rpm hosts)
  • --no-clean, -n β€” do not clean chroot before building package
  • --no-cleanup-after β€” do not clean chroot after building (if automatic cleanup is enabled)
  • --no-clean-all, -N β€” alias for both --no-clean and --no-cleanup-after ✨
  • --with BCOND_WITH β€” enable configure option (bcond) for the build
  • --without BCOND_WITHOUT β€” disable configure option (bcond) for the build
  • --shell β€” run commands interactively within chroot. Before going into chroot, mockbuild needs to run with --no-cleanup-after in advanced 🐚
  • --enablerepo ENABLEREPO β€” pass enablerepo option to yum/dnf (may be used more than once)
  • --disablerepo DISABLEREPO β€” pass disablerepo option to yum/dnf (may be used more than once)
  • --enable-network β€” enable networking 🌐
  • --srpm-mock β€” generate source rpm with mock and then run mockbuild using this source rpm
  • --use-koji-mock-config β€” download Mock configuration from Kojihub, instead of using the local Mock configuration in mock-core-configs.rpm πŸ‘‘
  • --use-local-mock-config β€” enforce use of local Mock configuration
  • --default-mock-resultdir β€” don't modify Mock resultdir
  • --extra-pkgs [EXTRA_PKGS ...] β€” install additional packages into chroot
Also, lowkey important: if a config file for mock isn't found in the /etc/mock directory, a temporary config directory for mock is created and populated with a config file created with mock-config 🫢 so it's not just gonna give up on you.

centpkg module-build 🧩

centpkg module-build [-h] [--watch]
                     [--buildrequires name:stream]
                     [--requires name:stream]
                     [--optional key=value]
                     [--file [FILE_PATH]] [--srpm SRPMS]
                     [--scratch]
                     [scm_url] [branch]

Build a module using MBS πŸ’– the big one, the group project, the moment.

Positional arguments:

  • scm_url β€” the module's SCM URL. This defaults to the current repo πŸŽ€
  • branch β€” the module's SCM branch. This defaults to the current checked-out branch

Options:

  • -h, --help β€” show this help message and exit
  • --watch, -w β€” watch the module build πŸ‘€ (yes, staring at it is a supported workflow)
  • --buildrequires name:stream β€” buildrequires to override in the form of "name:stream"
  • --requires name:stream β€” requires to override in the form of "name:stream"
  • --optional key=value β€” MBS optional arguments in the form of "key=value". For example: 'centpkg module-build --optional "reuse_components_from=<NSVC>"'. More description including list of available arguments here: https://pagure.io/fm-orchestrator/ 🌸
  • --file [FILE_PATH] β€” the modulemd yaml file for module scratch build
  • --srpm SRPMS β€” include one or more srpms for module scratch build
  • --scratch β€” perform a scratch build

centpkg module-build-cancel 🚫

centpkg module-build-cancel [-h] build_id

Cancel an MBS module build πŸ’€ sometimes you just gotta call it.

Positional arguments:

  • build_id β€” the ID of the module build to cancel

Options:

  • -h, --help β€” show this help message and exit

centpkg module-build-info πŸ”Ž

centpkg module-build-info [-h] build_id

Show information of an MBS module build ✨ the "so what happened with that build" command.

Positional arguments:

  • build_id β€” the ID of the module build

Options:

  • -h, --help β€” show this help message and exit

centpkg module-build-local 🏠

centpkg module-build-local [-h] [--file [FILE_PATH]]
                           [--srpm SRPMS] [--stream [STREAM]]
                           [--skip-tests]
                           [--add-local-build N:S:V] [-s N:S]
                           [--offline] [-r PATH]

Build a module locally using the mbs-manager command πŸ’…

options πŸ’…

  • -h, --help β€” shows this help message and exits, king behavior ✨
  • --file [FILE_PATH] β€” the module's modulemd yaml file. If you don't give one, it just uses a yaml file with the same basename as the name of the repository πŸ—‚οΈ
  • --srpm SRPMS β€” include one or more srpms for the module build πŸ’–
  • --stream [STREAM] β€” the module's stream/SCM branch. Defaults to the current checked-out branch, no cap 🌿
  • --skip-tests β€” adds a macro for skipping the check section πŸ™ˆ
  • --add-local-build N:S:V β€” import previously finished local module builds into MBS, formatted as name:stream or name:stream:version πŸ“¦
  • -s, --set-default-stream N:S β€” set the default stream for a given module dependency, for when there are multiple streams to choose from πŸ‘‘
  • --offline β€” builds the module offline, without any external infrastructure ✈️
  • -r, --repository PATH β€” full path to the .repo file defining the base module repository to use when --offline is used πŸ”Œ

centpkg module-build-watch πŸ‘€

centpkg module-build-watch [-h] build_id [build_id ...]

Watch an MBS build. Literally just sit there and stare at it, bestie 🍿

positional arguments:

  • build_id β€” the ID of the module build to watch

options:

  • -h, --help β€” show this help message and exit

centpkg module-overview 🌈

centpkg module-overview [-h] [--unfinished] [--limit LIMIT]
                        [--owner FAS_ID | --mine]

Shows an overview of MBS builds. The receipts, basically πŸ’…

options:

  • -h, --help β€” show this help message and exit
  • --unfinished β€” show unfinished module builds ⏳
  • --limit LIMIT β€” the number of most recent module builds to display πŸ”’
  • --owner FAS_ID β€” list only items of that owner 🫢
  • --mine β€” use current Kerberos name or username πŸ™‹β€β™€οΈ

centpkg module-scratch-build πŸ§ͺ

centpkg module-scratch-build [-h] [--watch]
                             [--buildrequires name:stream]
                             [--requires name:stream]
                             [--optional key=value]
                             [--file [FILE_PATH]]
                             [--srpm SRPMS]
                             [scm_url] [branch]

Build a scratch module using MBS ✨

positional arguments:

  • scm_url β€” the module's SCM URL. This defaults to the current repo 🏠
  • branch β€” the module's SCM branch. This defaults to the current checked-out branch 🌿

options:

  • -h, --help β€” show this help message and exit
  • --watch, -w β€” watch the module build 🍿
  • --buildrequires name:stream β€” buildrequires to override, in the form of "name:stream"
  • --requires name:stream β€” requires to override, in the form of "name:stream"
  • --optional key=value β€” MBS optional arguments in the form of "key=value". For example: 'centpkg module-build --optional "reuse_components_from=<NSVC>"'. More description, including a list of available arguments, lives here: https://pagure.io/fm-orchestrator/ πŸ“š
  • --file [FILE_PATH] β€” the modulemd yaml file for module scratch build πŸ—‚οΈ
  • --srpm SRPMS β€” include one or more srpms for module scratch build πŸ“¦

centpkg new πŸ†•

centpkg new [-h]

This will use git to show a diff of all the changes (even uncommitted changes) since the last git tag was applied πŸ”

options:

  • -h, --help β€” show this help message and exit

centpkg new-sources 🌸

centpkg new-sources [-h] [--offline] files [files ...]

This will upload new source file(s) to the lookaside cache, and all file names listed in the sources file will be replaced. .gitignore will be also updated with the new uploaded file(s). Please remember to commit them, fr fr πŸ™

positional arguments:

  • files

options:

  • -h, --help β€” show this help message and exit
  • --offline β€” do all the steps except uploading into the lookaside cache ✈️

centpkg patch 🩹

centpkg patch [-h] [--rediff] suffix

Create and add a gendiff patch file ✨

positional arguments:

  • suffix β€” look for files with this suffix to diff

options:

  • -h, --help β€” show this help message and exit
  • --rediff β€” recreate gendiff file retaining comments. Saves old patch file with a suffix of ~ ♻️
The patch file will be named: package-version-suffix.patch, and the file will be added to the repo index πŸ’Ύ

centpkg pre-push-check 🚦

centpkg pre-push-check [-h] [ref]

Performs a few checks of the repository before pushing changes. The "git push" command itself is not part of this check πŸ™…β€β™€οΈ

Checks include:

  • parse specfile for source files and verifies it is noted also in the 'sources' file πŸ“
  • verifies, that all source files from the 'sources' file were uploaded to the lookaside cache ☁️

Checks can be performed manually by executing the 'pre-push-check' command. But originally, it is designed to be executed automatically right before the 'git push' command is started. Every time the 'git push' command is executed, the 'pre-push' hook script runs first πŸƒβ€β™€οΈ

Path: <repository_directory>/.git/hooks/pre-push πŸ“

This hook script is created after a new repository is cloned. Previously created repositories don't contain this hook script πŸ’€

To disable these checks, remove the hook script βœ‚οΈ

positional arguments:

  • ref β€” reference to the commit that will be checked. Accepts a hash or reference, for example 'refs/heads/f37'

options:

  • -h, --help β€” show this help message and exit

centpkg prep πŸ”§

centpkg prep [-h] [--builddir BUILDDIR]
             [--buildrootdir BUILDROOTDIR] [--arch ARCH]
             [--define DEFINE] [--check-deps]
             ...

Use rpmbuild to "prep" the sources β€” unpack the source archive(s) and apply any patches πŸ“¦βž‘οΈπŸ—ƒοΈ

positional arguments:

  • extra_args β€” custom arguments that are passed to the 'rpmbuild'. Use '--' to separate them from other arguments 🧷

options:

  • -h, --help β€” show this help message and exit
  • --builddir BUILDDIR β€” define an alternate builddir πŸ—οΈ
  • --buildrootdir BUILDROOTDIR β€” define an alternate buildrootdir 🌳
  • --arch ARCH β€” prep for a specific arch πŸ’»
  • --define DEFINE β€” pass custom macros to rpmbuild, may specify multiple times πŸ”
  • --check-deps β€” check dependencies. Not checked by default πŸ‘€

centpkg pull ⬇️

centpkg pull [-h] [--rebase] [--no-rebase]

This command uses git to fetch remote changes and apply them to the current working copy. A rebase option is available, which can be used to avoid merges 🫢

options:

  • -h, --help β€” show this help message and exit
  • --rebase β€” rebase the locally committed changes on top of the remote changes after fetching. This can avoid a merge commit, but it does rewrite local history ⚠️
  • --no-rebase β€” do not rebase, overriding .git settings to the contrary πŸ™…β€β™€οΈ
See git pull --help for more details πŸ“–

centpkg push ⬆️

centpkg push [-h] [--force] [--no-verify]

Push changes to the remote repository πŸš€

options:

  • -h, --help β€” show this help message and exit
  • --force, -f β€” force push πŸ’₯
  • --no-verify β€” bypass the pre-push hook script. No check of the branch will prevent the push πŸ™ˆ

centpkg remote 🌐

centpkg remote [-h] {add} ...

Operations with tracked repositories ('remotes'). This is an experimental interface πŸ§ͺ

options:

  • -h, --help β€” show this help message and exit

subcommands:

Operations with tracked repositories ('remotes'). This is an experimental interface. Please note that some or all current functionality is subject to change πŸ‘€. Without parameters, a list of remotes will be shown.

  • {add}

centpkg remove-side-tag πŸ—‘οΈ

centpkg remove-side-tag [-h] TAG

Remove a side tag (without merging packages) βœ‚οΈ

positional arguments:

  • TAG β€” name of tag to be deleted

options:

  • -h, --help β€” show this help message and exit

centpkg request-gated-side-tag πŸšͺ

centpkg request-gated-side-tag [-h] [--base-tag BASE_TAG]

Create a new dynamic gated side tag ✨

options:

  • -h, --help β€” show this help message and exit
  • --base-tag BASE_TAG β€” name of base tag

centpkg request-side-tag 🏷️

centpkg request-side-tag [-h] [--base-tag BASE_TAG]
                         [--suffix SUFFIX]

Create a new side tag πŸŽ€

options:

  • -h, --help β€” show this help message and exit
  • --base-tag BASE_TAG β€” name of base tag
  • --suffix SUFFIX β€” a suffix to be appended to the side tag name. The suffix must be allowed in Koji configuration βœ…

centpkg retire πŸͺ¦

centpkg retire [-h] reason

This command will remove all files from the repo, leave a dead.package file for rpms or a dead.module file for modules, and push the changes πŸ’€

positional arguments:

  • reason β€” reason for retiring the package/module

options:

  • -h, --help β€” show this help message and exit

centpkg scratch-build πŸ”₯

centpkg scratch-build [-h] [--arches [ARCHES ...]] [--md5]
                      [--nowait] [--target TARGET]
                      [--background] [--fail-fast]
                      [--skip-remote-rules-validation]
                      [--skip-nvr-check]
                      [--custom-user-metadata CUSTOM_USER_METADATA]
                      [--srpm [SRPM]] [--srpm-mock]
                      [--root CONFIG]

This command will request a scratch build of the package. Without providing an srpm, it will attempt to build the latest commit, which must have been pushed. By default all appropriate arches will be built πŸ› οΈ

…and the rest of the options for that one, bestie, no skips no gaps πŸ’–

  • -h, --help β€” show this help message and exit
  • --arches [ARCHES ...] β€” Build for specific arches
  • --md5 β€” Use md5 checksums (for older rpm hosts)
  • --nowait β€” Don't wait on build
  • --target TARGET β€” Define build target to build into
  • --background β€” Run the build at a low priority
  • --fail-fast β€” Fail the build immediately if any arch fails
  • --skip-remote-rules-validation β€” Don't check if there's a valid gating.yaml file in the repo, where you can define additional policies for Greenwave gating.
  • --skip-nvr-check β€” Submit build to buildsystem without check if NVR was already built. NVR is constructed locally and may be different from NVR constructed during build on builder.
  • --custom-user-metadata CUSTOM_USER_METADATA β€” Provide a JSON string of custom metadata to be deserialized and stored under the build's extra.custom_user_metadata field
  • --srpm [SRPM] β€” Build from an srpm. If no srpm is provided with this option an srpm will be generated from the current module content.
  • --srpm-mock β€” Build from an srpm. Source rpm will be generated in 'mock' instead of 'rpmbuild'.
  • --root, --mock-config, -r CONFIG β€” Override mock configuration (like mock -r)

🌸 centpkg sources 🌸

the little source-grabber, she's so real for this πŸ’…

centpkg sources [-h] [--outdir OUTDIR] [--force] [--offline]

Download source files

✨ options ✨

  • -h, --help β€” show this help message and exit
  • --outdir OUTDIR β€” Directory to download files into (defaults to pwd)
  • --force β€” Download all sources, even if unused or otherwise excluded by default.
  • --offline β€” Don't connect to the Koji and try to work offline

πŸŽ€ centpkg srpm πŸŽ€

Create a source rpm

This command wraps "rpmbuild -bs", roughly equivalent to:

rpmbuild -bs mypackage.spec       --define "_topdir ."
   --define "_sourcedir ."       --define "_srcrpmdir ."       --define
   "dist .el8"
ok so, listen: to include files in the SRPM, the files must be in the current working directory (this depends on the package layout used), and you must reference each file with SourceXXXX: or PatchXXXX: directives in your .spec file. no shortcuts, bestie 😭
centpkg srpm [-h] [--builddir BUILDDIR]
             [--buildrootdir BUILDROOTDIR] [--arch ARCH]
             [--define DEFINE] [--md5] [--srpm-mock]
             [--no-clean] [--no-cleanup-after]
             [--no-clean-all] [--offline] [--root CONFIG]
             ...

🌟 positional arguments 🌟

  • extra_args β€” Custom arguments that are passed to the 'rpmbuild'. Use '--' to separate them from other arguments.

✨ options ✨

  • -h, --help β€” show this help message and exit
  • --builddir BUILDDIR β€” Define an alternate builddir
  • --buildrootdir BUILDROOTDIR β€” Define an alternate buildrootdir
  • --arch ARCH β€” Prep for a specific arch
  • --define DEFINE β€” Pass custom macros to rpmbuild, may specify multiple times
  • --md5 β€” Use md5 checksums (for older rpm hosts)
  • --srpm-mock β€” Create source rpm in 'mock' instead of 'rpmbuild'
  • --no-clean, -n β€” Only for --srpm-mock: Do not clean chroot before building package
  • --no-cleanup-after β€” Only for --srpm-mock: Do not clean chroot after building if automatic cleanup is enabled
  • --no-clean-all, -N β€” Only for --srpm-mock: Alias for both --no-clean and --no-cleanup-after
  • --offline β€” Don't connect to the Koji and try to work offline
  • --root, --mock-config, -r CONFIG β€” Override mock configuration (like mock -r)

πŸ¦‹ centpkg switch-branch πŸ¦‹

This command can switch to a local git branch. If provided with a remote branch name that does not have a local match it will create one. It can also be used to list the existing local and remote branches.

centpkg switch-branch [-h] [-l] [--fetch] [branch]

🌟 positional arguments 🌟

  • branch β€” Branch name to switch to

✨ options ✨

  • -h, --help β€” show this help message and exit
  • -l, --list β€” List both remote-tracking branches and local branches
  • --fetch β€” Fetch new data from remote before switch

πŸ’œ centpkg tag πŸ’œ

This command uses git to create, list, or delete tags.

centpkg tag [-h] [-f] [-m MESSAGE] [-c] [--raw] [-F FILE]
            [-l] [-d]
            [tag]

🌟 positional arguments 🌟

  • tag β€” Name of the tag

✨ options ✨

  • -h, --help β€” show this help message and exit
  • -f, --force β€” Force the creation of the tag
  • -m, --message MESSAGE β€” Use the given <msg> as the tag message
  • -c, --clog β€” Generate the tag message from the spec changelog section
  • --raw β€” Make the clog raw
  • -F, --file FILE β€” Take the tag message from the given file
  • -l, --list β€” List all tags with a given pattern, or all if not pattern is given
  • -d, --delete β€” Delete a tag

πŸ“ centpkg unused-patches πŸ“

Print list of patches not referenced by name in the specfile.

centpkg unused-patches [-h]

✨ options ✨

  • -h, --help β€” show this help message and exit

🧚 centpkg upload 🧚

This command will upload new source file(s) to lookaside cache. Source file names are appended to sources file, and .gitignore will be also updated with new uploaded file(s). Please remember to commit them.

centpkg upload [-h] [--offline] files [files ...]

🌟 positional arguments 🌟

  • files

✨ options ✨

  • -h, --help β€” show this help message and exit
  • --offline β€” Do all the steps except uploading into lookaside cache

🌈 centpkg verify-files 🌈

Locally run 'rpmbuild -bl' to verify the spec file's %files sections. This requires a successful run of 'centpkg install' in advance.

centpkg verify-files [-h] [--builddir BUILDDIR]
                     [--buildrootdir BUILDROOTDIR]
                     [--arch ARCH] [--define DEFINE]
                     ...

🌟 positional arguments 🌟

  • extra_args β€” Custom arguments that are passed to the 'rpmbuild'. Use '--' to separate them from other arguments.

✨ options ✨

  • -h, --help β€” show this help message and exit
  • --builddir BUILDDIR β€” Define an alternate builddir
  • --buildrootdir BUILDROOTDIR β€” Define an alternate buildrootdir
  • --arch ARCH β€” Prep for a specific arch
  • --define DEFINE β€” Pass custom macros to rpmbuild, may specify multiple times

⭐ centpkg verrel ⭐

Print the name-version-release.

centpkg verrel [-h]

✨ options ✨

  • -h, --help β€” show this help message and exit

πŸ‘€ SEE ALSO πŸ‘€

Nothing else linked up here bestie, that's the whole page 🫢


and that's a wrap on centpkg πŸ’– this page comes from the centpkg source, with its own version tag and date stamp down at the bottom β€” go check the footer for the exact version and date, they're right there iykyk slay, you read the whole thing, main character energy fr fr πŸ’…βœ¨

πŸ“¦ where this page comes from