PBUILD(1)

πŸ“¦
this version Β· 2 versions
, in fedora 43, fedora 44, opensuse-leap 16.0

✨ NAME ✨

pbuild β€” build a project consisting of a set of packages. Also hiiiii bestie, this is the pbuild page from the General Commands Manual, and we're gonna make it make sense πŸ’–.

🌸 SYNOPSIS 🌸

pbuild [--preset preset] [--dist dist] [--buildjobs num] [dir]
pbuild [--preset preset] [--dist dist] --result [code|pkg] [dir]
pbuild [--preset preset] [--dist dist] --repoquery [deptype:]dep [dir]

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so the pbuild tool builds a project that's made of a set of packages stored in the directory you pass as dir. If you don't specify a directory, it just uses the current working directory instead β€” lowkey convenient, ngl.

A package is made of files stored in a directory, and the package name is literally the name of that directory. Directories whose names start with "." or "_" are ignored, so don't come for them.

Pbuild works by parsing the recipe files from the packages to get dependency information, sorting the packages by dependency, and then creating build jobs for every package that needs to be rebuild. Pbuild stores extra information with the build results so that it is able to resume after interruption or integrate new source changes. That's the main character energy of resumability, periodt.

The results of the package builds are stored in a directory _result.reponame.arch, where reponame defaults to the name of the base distribution selected with the --dist or --preset options.

If Pbuild detects that the specified directory is a package directory, it will automatically go into single-build mode and use the parent directory as project directory. Not me loving an auto-detect moment πŸ’….

πŸ’… COMMON OPTIONS πŸ’…

  • --arch arch β€” build for the specified architecture. If this option is not used, pbuild will build for the host architecture.
  • --preset preset β€” use a defined preset to set the distribution config, the repositories, and the container registries. Presets can be defined by having a "_pbuild" file in the source directory.
  • --dist dist β€” use the specified distribution config dist to configure the build environment.
  • --reponame name β€” use the specified name to generate the directory name used to store the package build results.

πŸ”₯ BUILD OPTIONS πŸ”₯

  • --repo url β€” use the specified location to set up the build environment. The repo option can be used multiple times to create a search path. Note that the order of the option matters, i.e. the first repository containing a package with a specific name wins regardless of the version. If no repo is configured, the default repositories specified in the distribution config is used.
  • --registry url β€” use the specified location to search for remote containers.
  • --obs url β€” use the specified url to specify the open build service instance if obs:/ urls need to be resolved.
  • --buildjobs num β€” start up to num processes to build packages in parallel.
  • --rebuild-pkg packagename β€” force a rebuild of the specified package. This option can be used multiple times.
  • --rebuild-code code β€” force a rebuild of the packages in state "code". This option can be used multiple times.
  • --rebuild [code_or_packagename] β€” short hand form to force a rebuild. If no argument is given, all packages are rebuilt. If the argument is a known result code, packages with a state matching the specified code are rebuilt. Otherwise it is assumed that the argument is a package name.
  • --single packagename β€” only build the specified package. This option also forces a rebuild of the package.
  • --vm-... β€” passed on to the call of the build tool used to build packages.
  • --jobs β€” passed on to the call of the build tool used to build packages.
  • --threads β€” passed on to the call of the build tool used to build packages.
  • --xen, --kvm, ... β€” passed on to the call of the build tool used to build packages.
  • --checks β€” passed on to the call of the build tool used to build packages.
  • --no-checks β€” passed on to the call of the build tool used to build packages.
  • --no-clean β€” passed on to the call of the build tool used to build packages.
  • --target β€” passed on to the call of the build tool used to build packages.
yep, all of those get passed on to the call of the build tool used to build packages β€” it's giving "middleman but make it useful" 🫢.

πŸŽ€ QUERY OPTIONS πŸŽ€

  • --result-pkg packagename β€” only show build results for the specified package. This option can be used multiple times.
  • --result-code code β€” only show build results for builds that resulted in the specified code. This option can be used multiple times.
  • --result [code_or_packagename] β€” this is a short hand form for result querying. If no argument is given, the results for all packages are shown. If the argument is a known result code, builds that resulted in the specified code are shown. Otherwise it is assumed that the argument is a package name.
  • --terse β€” do not show detailed information about the package state.

🧚 REPOQUERY OPTIONS 🧚

  • --details β€” show detailed information about the packages.

πŸ’œ MISC OPTIONS πŸ’œ

  • --hostarch arch β€” assume the specified host architecture instead of using uname -m.
  • --configdir dir β€” specify a different directory containing distribution configurations.
  • --no-repo-refresh β€” do not check if the cached repository metadata is up to date.
  • --debugflags types β€” enable debug output. Multiple debug types can be concatenated with a comma. Use "expansion" to debug the dependency expansion.
  • --help β€” print a short help text.

🌈 RETURN CODES 🌈

  • 0 β€” when none of the builds finished with failure, unresolvable or in broken state.
  • 1 β€” when one or more builds failed, remained unresolvable or in broken state.

πŸ‘‘ SEE ALSO πŸ‘‘

build(1)


source/version vibe: (c) 2021 SUSE LLC; date vibe: 2021. PBUILD(1) out, bestie β€” slay responsibly πŸ’…πŸ¦‹

πŸ“¦ where this page comes from