Logo    pkgbuild

Mailing lists
Wiki (restored)
Download pkgbuild
2013-05-16 pkgbuild-1.3.105.tar.bz2
Changes in pkgbuild 1.3.105


  • implement the %timestamp(time) and %timestamp modifiers, see docs/spec-files.txt
  • use pkgsend publish instead of old pkgsend open / include / close 3-step method
  • xz decompression (patch from Brian Cameron)
Bugs fixed:

  • correct org.opensolaris.smf.fmri attribute name
  • ips-dependency-generator fixed to work on Solaris 11 update 1
  • ips-dependency-generator and pkgbuild fixed to differentiate between failed dependency detection and no dependencies.
  • fix configure script to work for newer versions of GNU sed (patch from Jan Lana)
  • fix publishing IPS source packages
  • fix defining the default branch version based on the running Solaris build
2012-02-15 pkgbuild-1.3.104.tar.bz2
Changes in pkgbuild 1.3.104


  • [1887920] (6984515) implement boolean expressions after %if
  • (7000538) allow string comparison after %if
  • (6983865, 6989324, 6991973) define a number of new macros commonly available in rpm
  • (6983891) implement the %exclude modifier in %files
  • implement %{with foo} macro to be used in %if conditionals
  • automatically generate package (runtime) dependencies on IPS systems - this feature can be disabled using the %_use_internal_dependency_generator macro. Enabled by default.
  • (pkgbuild-specific) relocate_from option of SUNW_BaseDir can be used to alter the base directory of a package without actually moving the files in %buildroot
  • (pkgbuild and IPS-specific) Requires: foo = * generates a dependency without a version specification
  • implement >= version spec in Requires
  • --nosourcepkg option disables creating source packages (and corresponding attributes in IPS packages)
  • spectool get_all_requires prints all dependencies of all packages defined in a spec
  • spectool get_package_names has a new -a option to include obsolete/renamed packages
  • (IPS and pkgbuild-specific) new tag renamed_to allows adding dependencies to renamed/obsolete pkgs that need not be installed for building the spec
  • (IPS and pkgbuild-specific) %mogrify section in spec files can be used to specify pkgmogrify(1) transformations applied to the generated manifest. Also, a file with default transformations may be specified by defining the __pkgbuild_default_mogrify_rules macro.
  • implement the __spec_install_post macro. When this macro explands to an executable script, it is called after the %install section with $RPM_BUILD_ROOT as its sole argument.
  • (pkgbuild-specific) new tag: PkgBuild_Make_Empty_Package when set to true or 1, pkgbuild creates a package even if it has no contents (e.g. renamed/obsolete)
  • (pkgbuild and IPS-specific) new tag: IPS_legacy: when set to false, no legacy action is added to the package

Bugs fixed:

  • fix installation when entire is not installed
  • include pkg.description and variant.arch attributes in manifests
  • {17052} treat comma-separated values in Meta tag as multiple values, unless quoted: "foo, bar" or the comma is escaped: foo\, bar.
  • (6983879, 6990528) fix parser problems with nested %() expressions and quotes
  • (6985298) fix globs in %doc lines
  • (7003394) fix infinite loop in certain conditional definitions and detect real infinite loops in macro definitions
  • (7002852) allow both comma-separated and space-separated lists of dependency specs in BuildRequires
  • (7010145) fix the definition of host_cpu in so it's not hardcoded to i686
  • (6983885) fix runtime errors with regexps when the package name or path name contains + chars
  • (6983872) fix the definition of cxx_optflags so it's not optflags
  • [2904560] show the generated package name
  • [2991209] Wrapper Scripts are overly complex and don't support symlink
    patch by Peter Bray
  • [3040813] publisher URL parsing problems
    patch by Chris Ridd
  • [3078143] %doc should be relative to source dir, not build root
  • [3152163] wget_source() fails if $topdir/SOURCES does not exist
  • {16464} pkgbuild exists with the undefinied value in the
    patch by Michał Pryć
  • fix the attributes of /usr in IPS package, if it is the basedir (and therefore not included in %files)
  • fix autotag rules so that directories are not tagged
  • reduce the number of recursive calls in the parser so it works with very long spec files
  • omit empty packages in spectool's get_package_names and get_publish_scripts, but allow creating packages that only contain dependencies (no files or actions)
  • fix all kinds of ARCH variables that were incorrect when the --target option was used
  • fix publishing to file:/// repos
  • use the version of the release/name package to determine the default branch version.
  • change attribute names to conform to Solaris 11 standards, e.g. -'s changed to _'s.
2010-07-19 pkgbuild-1.3.103.tar.bz2
Changes in pkgbuild 1.3.103

Bugs fixed:

  • fix a typo in spectool that breaks get_ips_pkgname
  • update %files in for the new docs
  • fix typo in SMF service FMRI for gconf-cache (reported by Rich Lowe)
  • fix and undefined variable warning (reported by Michal Pryc)
  • IPS pkg.summary and description should default to the package name rather than an empty action. (reported by Michal Pryc)
  • escape "'s in values of IPS actions
New Features:

  • download testing: use
    pkgtool download --dry-run foo.spec
    to verify the Source URLs in foo.spec without actually downloading the sources.
  • add definition of %configure to the default macros.
  • implement file:// repos
2010-06-06 pkgbuild-1.3.102.tar.bz2
Changes in pkgbuild 1.3.102

Documentation (finally!)

New Features:

  • Did I mention documentation?
  • %actions section for adding arbitrary IPS actions to packages.
    		group groupname="testpkg"
    		user username="testuser" group="testpkg"
    		%actions -n foo-driver
    		driver name=foo perms="dump 0660 root sys"

    Based on patches by Emanuele Pucciarelli and Andras Barna
  • %ips_tag(tag) modifier for elements of the %files lists:
    		%ips_tag(restart_fmri=svc:/some/svc:default) %{_datadir}/foo/bar
  • "autotag" adds tags and package dependencies for well known file locations. For example, /usr/share/applications/*.desktop files are automatically tagged with restart_fmri=svc:/application/desktop-cache/desktop-mime-cache:default and a dependency on SUNWdesktop-cache is added, if it's not already there. Other autotagged file types:
    • GConf schemas and entries
    • desktop icons (/usr/share/icons/*)
    • gtk input method modules
    • gtk pixbuf loader modules
    • mime types definitions (/usr/share/mime/packages/*)
    • X11 fonts
    • SMF service manifests

    To disable autotag, redefine the _use_ips_autotag macro to 0:
    	    %define _use_ips_autotag 0

    or on the command line:
    	    pkgbuild --define '_use_ips_autotag 0' ...
    	    pkgtool --define '_use_ips_autotag 0' ...
  • when pkgtool builds a different version of a package that is included in an incorporation, it automatically publishes an updated version of the incorporation (making it possible to install the package)
  • [ 2904561 ] support '--target' command line
    Patch by Paolo Abeni
  • [ 2904564 ] use buildarch tag for svr4 packages
    Patch by Paolo Abeni
  • new spectool subcommand: "get_ips_pkgname foo" translates a dependency specification "foo" (Requires: foo) to an IPS package name.
  • new spectool subcommand: "get_publish_scripts" prints the path to the scripts used for [re-]publishing the IPS packages belonging to the given spec files
  • new spectool subcommand: "match_package_names" prints a : separated list of names associated with the packages defined in the given spec files. The order is: label:svr4_name:ips_name where label is the "label" of the %package, e.g. if Name is foo and there is a %package devel, then the label is foo-devel; svr4_name is the SVr4 package name of the package and ips_name is the IPS package name. The output lines are prefixed with the spec file names if the -l option is used.
  • print a warning and some hints when the local IPS server is read-only

Bugs fixed:

  • pkgbuild should have documentation ;)
  • don't require whitespaces around version specifications in Requires/BuildRequires tags
  • %packages that define IPS_package_name should be separate packages, not merged in the main package and tagged
  • [ 2744961 ] warning message printed during build
  • a spec file with a dependency on a package without a branch creates an incorrect fmri in the manifest
    (patch by Vitezslav Batrla)
  • fix the code that translates dependency specifications to IPS package names to work with both older and newer versions of IPS and speed up the translation
  • evaluate macros in package name arguments to %package and %files
    (reported by Norm Jacobs)
2009-09-01 pkgbuild-1.3.101.tar.bz2
Changes in pkgbuild 1.3.101

Bugs fixed:

  • fix NoSource and NoPatch to work for patch and source numbers >9
  • do not attempt to rewrite SOURCES/..pkgbuild for each package

New features:

  • IPS source packages are created on $PKGBUILD_SRC_IPS_SERVER (if defined) or $PKGBUILD_IPS_SERVER or on the local IPS server. Use the IPS_sourcepackage tag to define the IPS source package name. The default is <IPS package name>/src.
2009-04-22 pkgbuild-
Changes in pkgbuild

Bug fixed:

  • adjust regexp used for parsing the output of 'pkg authority' so that it works with both older and newer versions of IPS
2009-04-17 pkgbuild-
Changes in pkgbuild

Bugs fixed:

  • SUNW_Pkg ignored by pkgtool when looking for dependent packages. Patch from Jan Hnatek.
  • fix the local IPS server URL to include a trailing / Bug reported by Jan Hnatek
  • rewrite much of ips_utils to parse the output of 'pkg authority' instead of parsing /var/pkg/cfg_cache
  • ignore version specs in Requires/BuildRequires statements (for now...)
  • use a single "info.source_url" IPS attribute for all sources, rather than one for each, which is apparently illegal
  • use a single "info.classification" IPS attribute if multiple classifications are specified (one using Meta, one using the Group tag)
  • do not try to create IPS packages on non-IPS systems
  • other minor fixes
2009-02-22 pkgbuild-1.3.98.tar.bz2
Changes in pkgbuild 1.3.98

Bugs fixed:

  • legacy actions are now added to IPS manifests, so pkginfo recognises that the packages are installed.
  • handle errors running pkg(1)
  • fix detecting whether the user has permission to install packages
  • Requires: /path/to/file now works for IPS packages as well, detects if the file was installed with IPS or pkgadd and adds the matching dependency
  • use wget option to disable checking ssl certs so that automatic download of https works (--sslcheckcert=0 or --no-check-certificate depending on the wget version), reported by Ghee Teo

New features:

  • IPS packages are automatically published in the local repository, if svc:/application/pkg/server:default is online (no need to use the --ips option)
  • the PKGBUILD_IPS_SERVER environment variable can be used to select a different repository
  • IPS dependencies are determined from the SVr4 package names by translating the legacy actions to IPS FMRIs. This means that spec files can continue to use SVr4 package names in the Requires/BuildRequires lines and pkgbuild will convert them to IPS dependencies on the fly when publishing to IPS.
  • add metadata to IPS manifests according to the latest guidelines
  • the new Meta tag can be used to define additional IPS meta data.


  • spectool has a new get_meta mode for querying Meta tags.


    	      spectool get_meta foo.spec
  • new options for spectool get_used_spec_files: -l prints the labels of the sub-spec files, e.g.

    	      spectool get_used_spec_files -l SUNWgnome-base-libs.spec
    	      pango = /path/to/pango.spec
  • Packages not defined with %package -n are considered subpackages and are merged in the main IPS package and tagged with the suffix. Packages defined with %package -n become separate IPS packages. Example:

    	      Name: foo
    	      SUNW_Pkg: SFEfoo
    	      Version ...
    	      %package devel
    	      %package -n bar
    	      SUNW_Pkg: SFEbar

    This creates 3 SVr4 packages: SFEfoo, SFEfoo-devel and SFEbar and 2 IPS packages: foo and bar. (devel files in foo are tagged with devel=true)

  • IPS packages are automatically installed in build mode
  • IPS package versioning now conforms to pkg(5), new tags have been added for controlling elements of the version string:

    • IPS_component_version (defaults to %version)
    • IPS_build_version (defaults to `uname -r`)
    • IPS_vendor_version (defaults to "0." + Solaris build number)
  • new --update option of pkgtool (and corresponding update_if_newer .pkgtoolrc setting) makes pkgtool rebuild and update packages if the version in the spec file is newer than the installed version (the Version tag is compared with the pkginfo (legacy) version)
  • new mode: publish-pkgs publishes the previously built package to an IPS repository. Obviously, only works in ips mode.
2008-09-18 pkgbuild-1.3.3.tar.bz2
Changes in pkgbuild 1.3.3

Bugs fixed:

  • %attr modifiers not processed recursively (broken since 1.3.0)
  • disable dbus notification if notify-send is not in the PATH
2008-08-18 pkgbuild-1.3.91.tar.bz2 (development release)
This a development release with experimental support for the Image Packaging System (IPS). Otherwise matches the features of 1.3.3.

Read more about pkgbuild and IPS

2008-09-08 pkgbuild-1.3.2.tar.bz2
Changes in pkgbuild 1.3.2

Bugs fixed:

  • [ 2019102 ] Compressed patches are recognised but can't be found (patch by Boyd Adamson)

New features:

  • %doc files and %docdir implemented.

    Differences from rpmbuild:

    • pkgbuild supports %doc(compress|gzip|bzip2) tag, this causes the files to be compressed with the chosen compression utility
    • files in subdirectories of the source dir can be tagged with %doc, e.g.

      %doc po/ChangeLog

      The file will be placed in a subdirectory of the same name under %{_pkg_docdir}

    • the %{_pkg_docdir} macro can be used to refer to or change the doc directory of a package.
    • %doc -d subdir changes the directory to subdir before looking for documentation file. As a result, subdir will not be created in %{_pkg_docdir}. This is useful for example in the this situation:

      			i386/foo-1.0/AUTHORS, etc...
      			amd64/foo-1.0/AUTHORS, etc...

      in the package, we want the AUTHORS, etc. files to be under /usr/share/doc/SFEfoo/AUTHORS, etc... and not under /usr/share/doc/SFEfoo/i386/foo-1.0/AUTHORS, etc... So in %files, use this:

      	         %doc -d %{base_arch}/foo-%{version} AUTHORS etc...
    • pkgtool's new --notify/--nonotify options use notify-send to tell the user when a spec file is done
    • %{SOURCEn.url} and %{PATCHn.url} macros return the value of Sourcen with any macros expanded. Also %{spec_label.SOURCEn.url} returns the URL of the nth source in %use'd spec file spec_label.
    • macros are now expanded in the copyright file defined by the SUNW_Copyright tag. This allows providing rich information in the copyright file, e.g. download location, using %{SOURCEn.url}, see above.
2008-08-08 pkgbuild-1.3.90.tar.bz2 (development release)
This a development release with experimental support for the Image Packaging System (IPS). Otherwise matches the features of 1.3.2.

Read more about pkgbuild and IPS

2008-06-23 pkgbuild-1.3.1.tar.bz2
Changes in pkgbuild 1.3.1

Bugs fixed:

  • [ 1953614 ] write to single datastream
  • [ 1953613 ] print filename of file stream written to
  • allow installation if the user has either the Software Installation or the Primary Administrator profile. Also verify that they are not masked by Basic Solaris User.
  • stop using c99 features in pkgdbgrep.c
  • kill perl warnings for undefined variables in --dumprc (reported by Andras Barna)
  • create the download directory before first use if it doesn't exist. (reported by Michal Bielicki)
2008-03-12 pkgbuild-1.3.0.tar.bz2
Changes in pkgbuild 1.3.0

Bugs fixed:

  • fix detecting GNU tar for versions >= 1.15.1. Patch from Mike Bristow.
  • expand macros in the argument of %files -f. Patch from Mike Bristow.
  • do not send build failure emails for DEP_FAILED specs
  • [ 1786439 ] Regex characters need quoting
  • [ 1812491 ] pkgtool with a unresponsive server takes too long to timeout. Bug report and fix from Ananth Shrinivas S.
  • [ 1767423 ] pkgtool error when download_to dir has corrupted file Reported by Shiv.
  • handle tar.Z tarballs. Patch from Thomas Wagner.
  • [ 1705877 ] defattr takes an optional 4th arg in rpmbuild Patch from Mike Bristow
  • { } characters get deleted from %files entries. Reported by Dave Lin.
  • macros not expanded in the arguments of %files. Reported by Dave Lin.
  • generate xhtml reports, patch from Damien Carbery.

New features:

  • pkgtool --autodeps

    The new --autodeps option allows pkgtool to pick up spec files from the directories specified by the specdirs configuration setting to satisfy dependencies. Consider this example:

    	  $ cd SFE
    	  $ pkgtool build --download SFEgit.spec
    	  INFO: Copying %use'd or %include'd spec files to SPECS directory
    	  INFO: Processing spec files
    	  WARNING: skipping package SFEgit: required package SFEcurl not i...
    	  WARNING: and no spec file specified on the command line provides it
    	  WARNING: skipping package SFEgit: required package SFEasciidoc n...
    	  WARNING: and no spec file specified on the command line provides it
    	  WARNING: skipping package SFEgit: required package SFExmlto not ...
    	  WARNING: and no spec file specified on the command line provides it
    	  WARNING: skipping package SFEgit: required package SFEcurl-devel...
    	  WARNING: and no spec file specified on the command line provides it
    				   package |      status | details
    				    SFEgit |  DEP_FAILED | Dependency chec...
    This tries to build SFEgit, but SFEgit requires SFEasciidoc SFExmlto and SFEcurl-devel. So you need to build these first. With the --autodeps option, pkgtool adds them to the build automatically:
    	  $ pkgtool build --download --autodeps SFEgit.spec
    	  INFO: Copying %use'd or %include'd spec files to SPECS directory
    	  INFO: Processing spec files
    	  WARNING: Added /export/work/SFE/SFEcurl.spec to the build to sat...
    	  INFO: Finding sources
    	  INFO: Downloading source
    	  INFO: Running pkgbuild -ba [...] SFEcurl.spec (SFEcurl)
    	  INFO: SFEcurl PASSED
    	  INFO: Installing SFEcurl
    	  INFO: Installing SFEcurl-devel
    	  WARNING: Added /export/work/SFE/SFEasciidoc.spec to the build to...
    	  INFO: Finding sources
    	  INFO: Downloading source
    	  INFO: Running pkgbuild -ba [...] SFEasciidoc.spec (SFEasciidoc)
    	  INFO: SFEasciidoc PASSED
    	  INFO: Installing SFEasciidoc
    	  INFO: Installing SFEasciidoc-root
    	  WARNING: Added /export/work/SFE/SFExmlto.spec to the build to sa...
    	  WARNING: Added /export/work/SFE/SFEfindutils.spec to the build t...
    	  INFO: Finding sources
    	  INFO: Downloading source
    	  INFO: Running pkgbuild -ba [...] SFEfindutils.spec (SFEfindutils)
    	  INFO: SFEfindutils PASSED
    	  INFO: Installing SFEfindutils
    	  INFO: Finding sources
    	  INFO: Downloading source
    	  INFO: Running pkgbuild -ba [...] SFExmlto.spec (SFExmlto)
    	  INFO: SFExmlto PASSED
    	  INFO: Installing SFExmlto
    	  INFO: Finding sources
    	  INFO: Downloading source
    	  INFO: Running pkgbuild -ba [...] SFEgit.spec (SFEgit)
    	  INFO: SFEgit PASSED
    	  INFO: Installing SFEgit
    				   package |      status | details
    				    SFEgit |      PASSED | 
    				   SFEcurl |      PASSED | 
    			       SFEasciidoc |      PASSED | 
    				  SFExmlto |      PASSED | 
    			      SFEfindutils |      PASSED | 
              you can set specdirs in ./.pkgtoolrc or ~/.pkgtoolrc
  • Requires: /path/to/file

    (also BuildRequires: /path/to/file and BuildConflicts: /path/to/file)

    This is based on patches provided by Mike Bristow. [ 1707525 ]

    When using Requires: /path/to/file, pkgbuild tries to find the file in the Solaris package contents file and adds the package to the depend file. If more than one package owns the file (which can be a directory too), it prints a warning and picks one.

  • %error and %warning macros:
    	      %error foo
    prints ERROR: foo in logs and build reports, aborts the build.
    	      %warning foo
    prints WARNING: foo but the build continues
  • implement the %check scriptlet. It gets run after %install for sanity testing the build. A typical command in the %check section is make check whenever the build system of the module supports it.
  • pkgtool looks for spec files with a .spec suffix if not found without the suffix.
    	  $ pkgtool build SFEclutter
    	  INFO: Copying %use'd or %include'd spec files to SPECS directory
    	  INFO: Processing spec files
    	  INFO: Finding sources
    	  INFO: Running pkgbuild -ba [...] SFEclutter.spec (SFEclutter)
    	  INFO: SFEclutter PASSED
    	  INFO: Installing SFEclutter
    	  INFO: Installing SFEclutter-devel
2007-04-01 pkgbuild-1.2.0.tar.bz2
Changes in pkgbuild 1.2.0

Bugs fixed:

  • fix the bug where pkgbuild build-only did not include those packages in the depend file that were not installed (reported by Eric Boutilier)
  • make pkgtool build-only look for BuildRequires dependencies only (and not Requires dependencies) (reported by Paul Cunningham)
  • count DEP_FAILED packages as failed in the exit status of pkgtool (reported by Paul Cunningham)
  • ignore duplicates if a spec file is listed multiple times on the command line (reported by Damien Carbery)
  • fix 1661513 Uninitialized value warning in find_package_by_name function (fix from Damien Carbery)
  • make pkgtool use the configured perl ($PERL) instead of perl. (reported by Paul Cunningham)
  • datastream packaging fixes (build report links, pkgadd, etc)

New features:

  • hard link support: use the %hard modifier in the %files list to turn symlinks into hard links ('l' type in the pkgmap)


    	  %hard %{_bindir}/flac
  • new configuration setting for .pkgtoolrc:

    source_mirrors: a comma-separated list of urls where pkgtool should look for source tarballs if the primary download site fails.

2006-10-01 pkgbuild-1.1.1.tar.bz2
Note: pkgbuild 1.1.0 was never released to the public.

Bugs fixed:

  • fix bug introduced in 1.1.0 where %{_topdir} is not expanded in configuration settings like download_to

  • in 1.0.1 source packages did not include the %use'd spec files

  • prep mode no longer checks the dependencies (Dermot McCluskey)

  • in download mode, wget times out after 60 sec

  • directives like %package are now case insensitive following rpm's behaviour

  • text wrapping implemented for --dumprc (Damien Carbery)

  • fixed bug where nested %if and %ifnarch or %ifnos conditionals confused the parser at the %endif line
  • do not include a copy of the class action script when using system (/usr/sadm/install/scripts) CASs.

New features/improvements:

  • the %patch macro uses the %_patch_options macro (when defined) to specify additional options; use the %_patch_options macro to define patch policies like --fuzz=0 or --context

  • basic support for macros; no parametrised macro support yet, but simple macros can be defined in $HOME/.pkgbuildmacros. An example for using this is redefining %_topdir. To do so, create a .pkgbuildmacros file that contains the following line:
    		%_topdir /path/to/topdir
    The default macro definitions for %_prefix, %_bindir, etc are now in %_libdir/pkgbuild-<version>/macros

  • building as root is no longer supported, instead each user can have their own %_topdir. This defaults to $HOME/packages but can be redefined with one of:
    • .pkgbuildmacros: %_topdir /path/to/topdir, see above
    • pkgtool --topdir /path/to/topdir
    • pkgbuild --define '_topdir /path/to/topdir'

    The --with-topdir configure option has been removed, also the --enable-sticky-dirs option.

    Users need the Software Installation profile to be able to install/uninstall packages. Lacking that, they will still be able to use modes like build-only, prep, download, which do not involve installing/uninstalling packages.

  • %{_tmppath} now defaults to /var/tmp/pkgbuild-$USER so that multiple users on the same machine can build at the same time.

  • spectool is a new script that is useful for extracting information from spec file, for example:
    		% spectool get_sources gimp.spec
    		% spectool eval '%version' gimp.spec
    Useful for scripting. Use spectool --help for more details about usage. Will write a man page at some stage...

  • .pkgtoolrc has been enhanced to allow appending to existing settings. Example:
    		tarballdirs: ${tarballdirs}:/path/to/my/tarballs
  • install-pkgs mode of pkgtool is now implemented

  • when creating the depend file, pkgbuild uses the list of Solaris package names for packages that are not installed on the system. The list is a simple text file:
  • added support for pkginfo tags required for supporting Zones: SUNW_pkg_allzones, SUNW_pkg_hollow, SUNW_pkg_thiszone

  • report a warning if %files contains absolute symlinks and report and error if an absolute symlink points to $RPM_BUILD_ROOT

2005-12-09 pkgbuild-1.0.1.tar.bz2
Minor incompatible change from 1.0.0:

  • The current date is no longer appended to SUNW_Rev.

    If you have a spec file with

    SUNW_Rev: 10.2.4

    change it to

    SUNW_Rev: 10.2.4.%(date +%Y.%m.%d.%H.%M)

    to get the same behaviour as in earlier versions.

Other changes in this release:

  • SUNW_PkgType tag defined. Overrides the default (root or usr) PKGTYPE values.
  • _invalid_patches_terminate_build macro added: if set to 0 (default is 1), patches that don't apply are ignored and a warning is printed. (Useful when building CVS snapshots.)

Bugs fixed:

  • fix bug in pkgtool where it did not copy the class action scripts to SOURCES.
  • fix --with-foo and --without-foo options in pkgtool to behave the same as in pkgbuild
  • speed up dependency checking in pkgtool (starts building much faster)
  • fix to handle %{!?foo:bar} (same as %{?!foo:bar})
2005-10-04 pkgbuild-1.0.0.tar.bz2
Incompatible changes since 0.9.x:

  • Unpackaged file now break the build (just like in rpm4). To disable this behaviour, set the _unpackaged_files_terminate_build macro to 0. (just like in rpm4)

  • In scriptlet references like %foo.prep and, the effect of the -d subdir option was fixed. In the 0.9.x versions these macros did not cd back to the original directory, but stayed in subdir. That was not the expected behaviour but a bug that is now fixed but it breaks spec files that depend on the old behaviour.

  • slight change in the way %class files work: non-%config files that belong to a %class are type 'f' in the prototype; %class(...) %config files are type 'e'

More changes in this release:

  • The pkgtool script was added. This is a higher level build script that takes care of downloading sources, copying to SOURCES, copying spec files to SPECS, building multiple modules based on the dependency info in the spec files and much much more... It's based on the jds build script used internally within Sun. Use pkgtool --help for more info.

  • New pkgbuild option: --pkgformat {datastream|ds|filesystem|fs}

  • implement %ghost files:

    In pkgbuild's implementation:

    • %ghost files are volatile ('v' file type in the prototype)
    • an empty file is added to the prototype if the %ghost file does not exist in $RPM_BUILD_ROOT

  • pkgbuild now requires GNU tar and GNU patch (/usr/sfw/bin/gtar and /usr/bin/gpatch on Solaris or SUNWgtar and SUNWgpch)
  • pkgtool has an optional dependency on wget (SUNWwgetr, SUNWwgetu) for downloading sources
  • the pkgtool tarball now builds out of the box on Linux using rpmbuild -ta tarball_name; Why would anyone build it on Linux? You can use the pkgtool script to control a linux build and it will run rpmbuild/rpm instead of pkgbuild.
2005-06-29 pkgbuild-0.9.1.tar.bz2
Implements %if and includes a few minor bug fixes.
2005-01-13 pkgbuild-0.9.0.tar.bz2
    Last Updated: laszlo.peter _at_ 2015-05-16