NAME¶
build - build SuSE Linux RPMs in a chroot environment
SYNOPSIS¶
build [
--clean|
--no-init] [
--rpms
path1:
path2:
...] [
--arch
arch1:
arch2:
...] [
--root buildroot]
[
specfile|
srcrpm]
build --help
build --verify
DESCRIPTION¶
build is a tool to build SuSE Linux RPMs in a safe and clean way.
build will install a minimal SuSE Linux as build system into some
directory and will chroot to this system to compile the package. This way you
don't risk to corrupt your working system (due to a broken spec file for
example), even if the package does not use BuildRoot.
build searches the spec file for a
BuildRequires: line; if such a
line is found, all the specified rpms are installed. Otherwise a selection of
default packages are used. Note that
build doesn't automatically
resolve missing dependencies, so the specified rpms have to be sufficient for
the build.
If a spec file is specified on the command line,
build will use this file
and all other files in the directory for building the package. If a srcrpm is
specified,
build automatically unpacks it for the build. If neither is
given,
build will use all the specfiles in the current directory.
OPTIONS¶
- --clean
- remove the build system and reinitialize it from scratch.
- --no-init
- skip the build system initialization and start with build
immediately.
- --list-state
- list rpms that would be used to create a fresh build root. Does not create
the build root or perform a build.
- --rpms path1:path2:path3...
- Where build can find the SuSE Linux RPMs needed to create the build
system. This option overrides the BUILD_RPMS environment variable.
- --arch arch1:arch2:arch3...
- What architectures to select from the RPMs. build automatically
sets this to a sensible value for your host if you don't specify this
option.
- --repo url_or_dir
- Also use the specified repository to create the build system. The
repositories may be either of type rpmmd, yast2 (susetags), or a simple
directory. Multiple --repo options may be given. As a special form,
'zypp://reponame' can be used to specify a system repository. 'zypp://'
selects all enabled system repositories. This is also the default if
BUILD_RPMS is not set and no --rpms or --repo option is used.
- --root buildroot
- Specifies where the build system is set up. Overrides the BUILD_ROOT
enviroment variable.
- --useusedforbuild
- Tell build not to do dependency expansion, but to extract the list of
packages to install from "# usedforbuild" lines or, if none are
found, from all "BuildRequires" lines. This option is useful if
you want to re-build a package from a srcrpm with exactly the same
packages used for the srcrpm build.
- --norootforbuild
-
- --help
- Print a short help text.
- --verify
- verify the files in an existing build system.
- ---dist distribution
- Set the distribution. If this option is not given, build tries to
calculate the distribution by looking at the rpm package used in the
build. The specified distribution can either be a string like
"11.2" or "sles9", or the pathname of the build
configuration to use.
.spec FILE OPTIONS¶
The
build command interprets some special control comments in the
specfile:
- # norootforbuild
-
- # needsrootforbuild
- build uses either user root or user abuild in the
build system to do the build. For non-SUSE distros as well as since SUSE
10.2, the default build user is abuild. For 10.2 and before, the
default build user is root. These two flags in the spec file allow
to deviate from the defaults and force-set the build user to abuild
and root (for # norootforbuild and
# needsrootforbuild respectively.
- # needsbinariesforbuild
- provide the binary rpms that have been used to set up the build root in
/.build.binaries within the build root.
ENVIRONMENT¶
- BUILD_ROOT
- The directory where build should install the chrooted build system.
"/var/tmp/build-root" is used by default.
- BUILD_RPMS
- Where build can find the SuSE Linux RPMs. build needs them to create the
build system.
- BUILD_RPM_BUILD_STAGE
- The rpm build stage (-ba, -bb, ...). This is just passed through to rpm,
check the rpm manpage for a complete list and descriptions.
"-ba" is the default. You can use this to add more options to
RPM.
SEE ALSO¶
rpm(8),
- Maximum RPM:
- http://www.rpm.org/max-rpm/
- cross distribution packaging:
- http://en.opensuse.org/openSUSE:Build_Service_cross_distribution_howto
- openSUSE packaging standards and guidelines:
- http://en.opensuse.org/Portal:Packaging