From: pkgbuild a. <pkg...@li...> - 2008-03-16 08:34:04
|
Announcing pkgbuild 1.3.0. What is pkgbuild? pkgbuild is a tool for building Solaris SVr4 packages from rpm-like spec files. pkgbuild is also available as part of the JDS CBE: http://opensolaris.org/os/project/jds/contributing/building You can also find some nice instructions and examples there. (Note: at the time of writing this, the JDS CBE includes pkgbuild 1.2.0 but will be soon upgraded to 1.3.0) Looking for spec files? 100s of spec files are available from the following projects: - SFE - spec-files-extra: href=http://pkgbuild.sf.net/spec-files-extra - JDS - GNOME based desktop: http://opensolaris.org/os/project/jds - Xfce desktop at opensolaris.org: http://opensolaris.org/os/project/xfce Changes in this release 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 More information http://pkgbuild.sf.net/ http://sf.net/projects/pkgbuild/ |