User Commands PKGTOOL(1) NAME pkgtool - Helper Script for pkgbuild(1) SYNOPSIS pkgtool [OPTIONS] command spec... DESCRIPTION pkgtool is a helper script for performing builds from pkgbuild(1) spec files (build recipes). OPTIONS General -v or --verbose Increase verbosity: the more -v's the more diag mes- sages. -q or --quiet Silent operation. --halt-on-errors Halt on the first build error, do not attempt to con- tinue. --rcfile=file Read default configuration from file. Default: ./.pkgtoolrc, ~/.pkgtoolrc --norc Ignore the default rc files. --dumprc Print the current configuration in a format suitable for an rc file, then exit. --download Automatically download sources if not found in the local search paths (requires wget) Specify your proxy servers using the http_proxy and ftp_proxy environment variables. --download-to=dir Save downloaded files in dir. By default, files are downloaded to /storage/pkgs/SOURCES. Implies --down- load. --interactive [EXPERIMENTAL] Interactive mode: pkgbuild(1) output is displayed on the standard output; pkgbuild(1) is executed in interactive mode which makes it start a subshell if the SunOS 5.10 Last change: May 18, 2010 1 User Commands PKGTOOL(1) build fails --ips Install IPS packages by default to local repository http://localhost:80/ --svr4 Install SVr4 packages by default. --rmlog Automatically remove the log file with each build --dry-run (Download mode) test if the Source urls in the spec file(s) point to existing files, but do not download them. Directories and search paths: --specdirs=path or --spec=path Specify a colon separated list of directories to search for spec files in --tarballdirs=path or --tarballs=path or --tar=path Specify a colon separated list of directories to search for tarballs in --sourcedirs=path or --src=path Specify a colon separated list of directories to search for additional source files in --patchdirs=path or --patches=path or --patch=path Specify a colon separated list of directories to search for patches (source diffs) in --topdir=dir Use dir as the rpm base directory (aka %topdir, where the SPECS, SOURCES, RPMS, SRPMS, BUILD directories are found). Default: ~/pack- ages --logdir=dir or --log=dir Write build logs to dir. Options controlling the build: --update Update packages that are already installed. The default bevavior is to skip them. --update-if-newer Update packages that are already installed only if the version in the spec file (Version tag) is newer than the version of the package. The default bevavior is to skip packages that are already installed. --nodeps / --deps Ignore/verify dependencies before building a component. Default: --deps --autodeps SunOS 5.10 Last change: May 18, 2010 2 User Commands PKGTOOL(1) Attempt to find spec files for missing dependencies in spec file search path (see --specdirs) and add them to the build as needed. --with foo or --with-foo / --without foo or --without-foo These options are passed on to pkgbuild(1) as is. They are used for enabling/disabling conditional build options. --target=arch This option is passed on to pkgbuild(1) as is. --pkgformat=format Create packages in the specified format, where format is one of: ips Image Packaging System package format (default on IPS-based systems) filesystem or fs SVr4 filesystem package format (default on SVr4-based systems) datastream or ds SVr4 datastream package format Reporting: --notify / --nonotify Send desktop notifications when the build of a spec file passes or fails. Default: --notify --mail-errors-to=address Send the last few lines of the build log to address if the build fails --report=file Write a build report to file (in HTML format) --prodname=string The name of the product as appears in the build report --full-path Print the full path to the package when running install-order Commands: build-install Build and install the specs listed on the command line. The build order is determined by the dependencies defined in the spec files. SunOS 5.10 Last change: May 18, 2010 3 User Commands PKGTOOL(1) build Same as build-install build-only Build the specs listed on the command line, don't install them. prep run the %prep section of the spec files listed on the command line spkg create source package(s) only (no build done) publish-pkgs publish the previously build packages to an IPS reposi- tory build-order Print the build order of the specs listed on the com- mand line. install-order Print the rpms in the order they should be installed install-pkgs install the packages defined by the spec files listed on the command line from the PKGS directory. No build is done. Useful to install packages previously built using the build-only command, or built manually using pkgbuild. uninstall-pkgs Uninstall all packages defined in the spec files listed on the command line. download Download the source files from the URLs specified in the spec files listed on the command line. Source files found in the local search paths will not be down- loaded. (See --tarballdirs, --sourcedirs, --download-to) Use the --dry-run option to test if the URLs point to existing files but without downloading them. Spec Files specs... List of spec files to build. Either full path names or names of spec files in the spec directory search path. Spec files are build recipes, similar to rpmbuild's spec files on Linux systems. You can find detailed information about spec files in /usr/share/doc/pkgbuild/spec-files.txt SunOS 5.10 Last change: May 18, 2010 4 User Commands PKGTOOL(1) ENVIRONMENT VARIABLES PKGBUILD_IPS_SERVER Set this variable to specify the URL for the IPS server to publish binary packages to. Example: PKGBUILD_IPS_SERVER=http://myserver:9000/; export PKGBUILD_IPS_SERVER PKGBUILD_SRC_IPS_SERVER URL for the IPS server to publish source packages to. Defaults to PKGBUILD_IPS_SERVER. CONFIGURATION All command line options can be configured in the .pkgtoolrc configuration file. pkgtool looks for .pkgtoolrc in the current directory first, then in the user's home directory. A well documented configuration file template can be gen- erated using the --dumprc option: pkgtool --dumprc > ~/.pkgtoolrc Lines starting with # are comments. Configuration settings are colon-separated key-value pairs, for example: tarballdirs: /export/tarballs:/net/otherhost/export/tarballs Use the --dumprc option to obtain a list of configuration options and their documentation. Values can use the ${MYDIR} variable to reference the direc- tory the .pkgtoolrc file is located in. EXAMPLES Example 1: given a directory full of spec files, download all source URLs defined in the spec files: pkgtool download *.spec Example 2: build and install all spec files in the current directory: pkgtool -v build *.spec Example 3: download a sources and build foo.spec with debug options (note: assumes that foo.spec supports --with-debug). The resulting package(s) will not be installed. pkgtool build-only --download --with-debug foo.spec SunOS 5.10 Last change: May 18, 2010 5 User Commands PKGTOOL(1) EXIT STATUS The following exit values are returned: 0 SUCCESS (command passed for all spec files) >0 FAILURE (the number of spec files that failed) FILES /usr/bin/pkgtool executable for pkgtool details configuration file for pkgtool, see the CONFIGURATION section for %macro_name value ATTRIBUTES See attributes(5) for descriptions of the following attri- butes: __________________________________________ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | |_____________________|___________________| | Availability | package/pkgbuild | |_____________________|___________________| | Interface Stability | Volatile | |_____________________|___________________| SEE ALSO Spec file description in /usr/share/doc/pkgbuild/spec-files.txt attributes(5), pkgbuild(1), spectool(1), pkg(5), pkgmk(1) NOTES Written by Laszlo (Laca) Peter, Oracle Corporation, 2010 SunOS 5.10 Last change: May 18, 2010 6