SourceForge.net Logo    pkgbuild

 
About
Manual
Screenshots
License
Download
Bugs
Mailing lists
SFE
Wiki
 
Download pkgbuild
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
    
    	  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
    
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)

    Example:

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

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 rpm_spec.pm 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 %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.
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_ gmail.com 2008-03-16