spectool - A tool for extracting information from pkgbuild(1) spec files
spectool [OPTIONS] command spec...
PKGTOOL(1) General Commands Manual PKGTOOL(1)
NAME
spectool - A tool for extracting information from pkgbuild(1) spec
files
SYNOPSIS
spectool [OPTIONS] command spec...
DESCRIPTION
spectool is a tool that parses a given list of pkgbuild(1) spec files
and can be used for extracting information from them. Its primary pur-
pose is to facilitate scripting and interfacing with pkgbuild(1).
OPTIONS
General
-v or --verbose
Increase verbosity. Use -v to prefix the output lines with the
name of the spec file they belong to.
-q or --quiet
Silent operation (no diagnostic messages).
--rcfile=file
Read default configuration from file. Default: ./.pkgtoolrc,
~/.pkgtoolrc
--norc Ignore the default rc files.
--ips Print IPS package names, even on SVr4 systems, if pkg(7) is
installed.
--svr4 Print SVr4 package names, even on IPS systems.
Directories and search paths:
--specdirs=path or --spec=path
Specify a colon separated list of directories to search for spec
files in --topdir=dir Use dir as the rpm base directory (aka
%topdir, where the SPECS, SOURCES, RPMS, SRPMS, BUILD directo-
ries are found). Default: ~/packages
--logdir=dir or --log=dir
Write build logs to dir.
Options controlling the build:
--nodeps / --deps
Ignore/verify dependencies before building a component.
Default: --deps
--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.
Commands:
eval expr
Evaluate expr in the context of each given spec file
get_packages
List the packages defined in the given spec files
get_sources
List the sources (defined by Source tags) used by each given
spec file. Sources in %use'd spec files are also included.
get_public_sources
Same as get_sources but list only the public sources (omit those
listed in a NoSource tag)
get_block block_name
Print the expanded block (sctiptlet) called block_name from each
given spec file. Example:
spectool get_block prep foo.spec
get_files
Print the files sections of each given spec file
get_meta
Print the Meta tags defined in each spec file
get_package_names [-a]
Print the package names defined in each given spec file. Use
--ips or --svr4 to select the package format, otherwise package
names of the native format are printed. Use -a to include obso-
lete/renamed IPS packages.
match_package_names
Display how %package labels map to SVr4 package names and IPS
package names in each given spec file spec
get_patches
Print the patches (defined by Patch tags) used by each given
spec files. The patches in %use'd spec file are also included.
get_public_patches
Same as get_patches but only prints the public patches (omits
those listed in NoPatch tags)
get_requires package name
Prints the runtime dependencies (Requires tags) belonging to
package label package name and defined in each given spec file.
Example:
spectool get_requires SUNWgtk2-devel SUNWgtk2.spec
get_all_requires
Prints all runtime dependencies (Requires tags) belonging to all
packages defined in the given spec file.
get_prereq package_name
Same as get_requires but for PreReq tags.
get_buildrequires
Prints the build-time dependencies of the given spec files.
get_classes
Print any SVr4 classes (other than "none") in each of the given
spec files.
get_class_script_names
Print any SVr4 class action script names defined in each of the
given spec files.
get_included_files
Print all files included (using the %include directive) in each
given spec file, recursively.
get_used_spec_files [-l]
Print all files referenced using the %use tag in each given spec
file. With the -l option, print the labels assigned to the
%use'd spec files as well.
get_publish_scripts
Print the path to the IPS publishing scripts used for publishing
each IPS package defined by the given spec files.
get_ips_pkgname file|package_name
Print the IPS package name and version that corresponds to the
given package_name (IPS or SVr4) or file. No spec files argu-
ments are needed for this command.
get_error
Print any syntax errors in the given spec files.
verify Parse the given spec files and return 0 if they can be parsed
without errors, or non-0 if any of them have errors.
Spec Files
specs...
List of spec files to process. 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
EXAMPLES
Example 1: Print the value of the Version tag from each spec file in
the current directory, prefixing with the name of the spec file (-v
option):
spectool -v eval '%version' *.spec
Example 2: Print the build scriptlet of the given spec file, using
debug options:
spectool --with-debug get_block build foo.spec
Example 3: Print the IPS package name of the package that contains
usrbinbash:
spectool get_ips_pkgname usrbinbash
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/spectool
executable for pkgtool
configuration file for pkgtool, see the CONFIGURATION section in
pkgtool(1) for details.
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
+--------------------+------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+------------------+
|Availability | package/pkgbuild |
+--------------------+------------------+
|Interface Stability | Volatile |
+--------------------+------------------+
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
+---------------+------------------+
|ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+---------------+------------------+
|Availability | package/pkgbuild |
+---------------+------------------+
|Stability | Uncommitted |
+---------------+------------------+
SEE ALSO
Spec file description in /usr/share/doc/pkgbuild/spec-files.txt
attributes(7), pkgbuild(1), pkgtool(1), pkg(7), pkgmk(1)
NOTES
Written by Laszlo (Laca) Peter, Oracle Corporation, 2012
Source code for open source software components in Oracle Solaris can
be found at https://www.oracle.com/downloads/opensource/solaris-source-
code-downloads.html.
This software was built from source available at
https://github.com/oracle/solaris-userland. The original community
source was downloaded from http://prdownloads.sourceforge.net/pkg-
build/pkgbuild-1.3.105.tar.bz2.
Further information about this software can be found on the open source
community website at http://pkgbuild.sourceforge.net/.
Feb 15, 2012 PKGTOOL(1)