build(1)build(1)NAMEbuild - build SuSE Linux RPMs in a chroot environment
SYNOPSISbuild [--clean|--no-init] [--rpms path1:path2:...] [--arch
arch1:arch2:...] [--root buildroot] [specfile|srcrpm]
build--help
build--verify
DESCRIPTIONbuild 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 suffi‐
cient 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 imme‐
diately.
--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 sys‐
tem repository. 'zypp://' selects all enabled system reposito‐
ries. 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 configura‐
tion to use.
.spec FILE OPTIONS
The build command interprets some special control comments in the spec‐
file:
# 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 # needsroot‐
forbuild 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 sys‐
tem. "/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 ALSOrpm(8),
Maximum RPM:
http://www.rpm.org/max-rpm/
cross distribution packaging:
http://en.opensuse.org/openSUSE:Build_Service_cross_distribu‐
tion_howto
openSUSE packaging standards and guidelines:
http://en.opensuse.org/Portal:Packaging
(c) 1997-2008 SuSE Linux AG Nuernberg, Germany build(1)