Version 1.3.103:

	Bugs fixed:

	- fix a typo in spectool that breaks get_ips_pkgname
	- update %files in pkgbuild.spec.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.  (Rich Lowe's idea)
	- add definition of %configure to the default macros.
	- implement file:// repos

Version 1.3.102:

	Documentation (finally!):

	- Manual pages for pkgbuild(1), pkgtool(1) and spectool(1)
	- Detail description of spec files in doc/spec-files.txt
	  (also installed undef $(datadir)/pkgbuild/)

	Bugs fixed:

	- 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)

	New features:

	- %actions section for adding arbitrary IPS actions to packages.
	  Examples:

		%actions
		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:

	        %files
		%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

Version 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.

	- Use the IPS_package_name tag to set the IPS package name
	  (defaults to %{name}).  Allows long package names.

	- Requires/BuildRequires now supports IPS package names.

	- pkgtool's --rmlog option, removes the existing log file when
          a new build starts instead of appending to it
	  Patch from John Fischer.

Version 1.3.98.4:

	Bug fixed:

	- adjust regexp used for parsing the output of 'pkg authority' so
          that it works with both older and newer versions of IPS

Version 1.3.98.3:

	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 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

Version 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.
	  Example:
	      Meta(info.maintainer): laca@sun.com
	- spectool has a new get_meta mode for querying Meta tags.
	  Example:
	      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.

Version 1.3.4 / 1.3.92:

	Bugs fixed:

        - [ 2149046 ] pkgtool --notify errs when dbus service is disabled,
          patch by Andrew Dudman
        - [ 2148981 ] usage help message inaccurate, patch by Andrew Dudman.
	- fix normalisation of parent directory names when a package with
          basedir == / uses %doc

        New features / enhancements:

	- implement _duplicate_files_terminate_build macro
	  that controls whether file included in multiple packages cause
	  a warning or an error (default: warning only, as before)
	- [ 2149067 ] more colors for summary log based on patch from
          Andrew Dudman
        - [ 2006686 ] RFE: Put html summary in page title patch by
          Damien Carbery.
	- implement get_requires, get_prereq and get_buildrequires in
          spectool

Version 1.3.3 / 1.3.91:

	Bugs fixed:

	- %attr modifiers not processed recursively (broken since 1.3.0)
	- disable dbus notification if notify-send is not in the PATH

Version 1.3.2 / 1.3.90:

	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:
	     	 ~/packages/BUILD/SFEfoo-1.0/
			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
          Source<n> 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 macro.  This allows providing rich
          information in the copyright file, e.g. download location,
	  using %{SOURCEn.url}, see above.

Version 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)

Version 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

	  Summary:

				   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 http://curl.haxx.se/download/curl-7.17....
	  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 http://downloads.sourceforge.net/asciid...
	  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 http://ftp.gnu.org/pub/gnu/findutils/fi...
	  INFO: Running pkgbuild -ba [...] SFEfindutils.spec (SFEfindutils)
	  INFO: SFEfindutils PASSED
	  INFO: Installing SFEfindutils
	  INFO: Finding sources
	  INFO: Downloading source http://cyberelk.net/tim/data/xmlto/stab...
	  INFO: Running pkgbuild -ba [...] SFExmlto.spec (SFExmlto)
	  INFO: SFExmlto PASSED
	  INFO: Installing SFExmlto
	  INFO: Finding sources
	  INFO: Downloading source http://www.kernel.org/pub/software/scm/...
	  INFO: Running pkgbuild -ba [...] SFEgit.spec (SFEgit)
	  INFO: SFEgit PASSED
	  INFO: Installing SFEgit

	  Summary:

				   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

Version 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)
	  Example:

	  %hard %{_bindir}/flac

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

Version 1.1.1:

	Bugs fixed:

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

	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

Version 1.1.0:

	Bugs fixed:

	- 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:

	- 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)
		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
		ftp://ftp.gimp.org/pub/gimp/help/gimp-help-2-0.10.tar.gz
		ftp://ftp.gimp.org/pub/gimp/v2.3/gimp-2.3.9.tar.bz2
		% spectool eval '%version' gimp.spec
		2.3.9

	  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 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:

		%_libdir/pkgbuild-%version/pkgnames

        - 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

Version 1.0.1:

	One minor incompatibility from eariler versions:

	- 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:

	- 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

	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 be the same
	  as in pkgbuild

	- speed up dependency checking in pkgtool (starts building much
	  faster)

	- fix rpm_spec.pm to handle %{!?foo:bar} (same as %{?!foo:bar})

Version 1.0.0:
	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 %foo.build, 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.

Version 0.9.0:
	released on sourceforge.net -- many thanks to them for hosting it
	future releases will be posted on http://pkgbuild.sourceforge.net/
