Merge commit 'allan/working'

This commit is contained in:
Dan McGee 2009-05-18 22:51:25 -05:00
commit 4a582fac2a
4 changed files with 53 additions and 18 deletions

20
NEWS
View File

@ -1,5 +1,25 @@
VERSION DESCRIPTION
-----------------------------------------------------------------------------
3.3.0 - makepkg:
- package splitting support! - see PKGBUILD-split.proto
- limit fakeroot usage with addition of package() function
- info pages are handled like man pages and not other documentation
- configuration option for man/info page directories
- added ability to automatically remove files from package
- configuration option for default LDFLAGS
- specify alternative configuration file with --config flag
- check all integrity checksums provided in PKGBUILD
- fix pkgver/pkgrel updating in SCM packages
- BUILDSCRIPT option removed from makepkg.conf. Now specified
during configure
- enforce no ">" or "<" in provides array
- package compression autodetection
- check PKGBUILD for CRLF line endings
- fix reading PKGBUILD from pipe
- various fixes to increase compatibility with BSDs & Mac OSX
- contrib
- pacscripts - print install scripts for a package
3.2.2 - log pacsave warnings to pacman.log (FS#12531)
- separate local DB creation and writing (FS#12263)
- pacman-optimize: rewrite and refresh (FS#11767)

View File

@ -238,19 +238,14 @@ use during the build and install process. These three variables are as follows:
*startdir*::
This contains the absolute path to the directory where the PKGBUILD was
located, which is usually the output of `$(pwd)` when makepkg is started.
`$startdir` was most often used in combination with `/src` or `/pkg`
postfixes, but use of the `$srcdir` and `$pkgdir` variables is preferred.
*srcdir*::
This points to the directory where makepkg extracts or copies all source
files. Although it currently is an alias for `$startdir/src`, this
assumption should not be assumed true for all future revisions of makepkg.
files.
*pkgdir*::
This points to the directory where makepkg bundles the installed package
(this directory will become the root directory of your built package).
Although it currently is an alias for `$startdir/pkg`, this assumption
should not be assumed true for all future revisions of makepkg.
If you create any variables of your own in the build function, it is
recommended to use the bash `local` keyword to scope the variable to inside
@ -264,6 +259,26 @@ combination with the fakeroot BUILDENV option in linkman:makepkg.conf[5], fakero
usage will be limited to running the packaging stage. The build() function will be
run as the user calling makepkg.
Package Splitting
-----------------
makepkg supports building multiple packages from a single PKGBUILD. This is achieved
by assigning an array of package names to the `pkgname` directive. Each split package
uses a corresponding packaging function with name `package_foo()`, where `foo` is the
name of the split package.
All options and directives for the split packages default to the global values given
within the PKGBUILD. However, some of these can be overridden within each split
package's packaging function. The following variables can be overridden: `pkgdesc`,
`license`, `groups`, `depends`, `optdepends`, `provides`, `conflicts`, `replaces`,
`backup`, `options` and `install`.
An optional global directive is available when building a split package:
*pkgbase*::
The name used to refer to the group of packages in the output of makepkg
and in the naming of source-only tarballs. If not specified, the first
element in the `pkgname` array is used.
Install/Upgrade/Remove Scripting
--------------------------------
Pacman has the ability to store and execute a package-specific script when it

View File

@ -122,9 +122,9 @@ Options
during dependency auto-resolution and installation when using `-s`.
*-R, \--repackage*::
Repackage contents of pkg/ without rebuilding the package. This is
useful if you forgot a depend or install file in your PKGBUILD and the
build itself will not change.
Repackage contents of the package without rebuilding the package. This
is useful if you forgot a depend or install file in your PKGBUILD and
the build itself will not change.
*-s, \--syncdeps*::
Install missing dependencies using pacman. When build-time or run-time

View File

@ -1100,14 +1100,13 @@ install_package() {
devel_check() {
newpkgver=""
# Only update pkgver if --holdver is not set
if [ "$HOLDVER" -eq 1 ]; then
return
fi
# Cannot update pkgver/pkgrel if reading PKGBUILD from pipe
if [ ! -f "./$BUILDSCRIPT" ]; then
# Do not update pkgver if --holdver is set, when building a source package,
# or when reading PKGBUILD from pipe
if [ "$HOLDVER" -eq 1 -o "$SOURCEONLY" -ne 0 -o ! -f "./$BUILDSCRIPT" ]; then
return
fi
if [ -z "$FORCE_VER" ]; then
# Check if this is a svn/cvs/etc PKGBUILD; set $newpkgver if so.
# This will only be used on the first call to makepkg; subsequent
@ -1309,7 +1308,7 @@ usage() {
printf "$(gettext " -p <buildscript> Use an alternate build script (instead of '%s')")\n" "$BUILDSCRIPT"
echo "$(gettext " -r, --rmdeps Remove installed dependencies after a successful build")"
# fix flyspray feature request #2978
echo "$(gettext " -R, --repackage Repackage contents of pkg/ without building")"
echo "$(gettext " -R, --repackage Repackage contents of the package without rebuilding")"
echo "$(gettext " -s, --syncdeps Install missing dependencies with pacman")"
echo "$(gettext " --allsource Generate a source-only tarball including downloaded sources")"
echo "$(gettext " --asroot Allow makepkg to run as root user")"
@ -1528,6 +1527,7 @@ if [ ! -f "$BUILDSCRIPT" ]; then
else
# PKGBUILD passed through a pipe
BUILDSCRIPT=/dev/stdin
source "$BUILDSCRIPT"
fi
else
crlftest=$(file $BUILDSCRIPT | grep -F 'CRLF' || true)
@ -1535,9 +1535,9 @@ else
error "$(gettext "%s contains CRLF characters and cannot be sourced.")" "$BUILDSCRIPT"
exit 1
fi
fi
source "$BUILDSCRIPT"
source ./"$BUILDSCRIPT"
fi
if [ "$GENINTEG" -eq 1 ]; then
mkdir -p "$srcdir"