summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS20
-rw-r--r--doc/PKGBUILD.5.txt27
-rw-r--r--doc/makepkg.8.txt6
-rw-r--r--scripts/makepkg.sh.in18
4 files changed, 53 insertions, 18 deletions
diff --git a/NEWS b/NEWS
index f0a88fd8..c2eb8afc 100644
--- a/NEWS
+++ b/NEWS
@@ -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)
diff --git a/doc/PKGBUILD.5.txt b/doc/PKGBUILD.5.txt
index e1ea632b..41c468ee 100644
--- a/doc/PKGBUILD.5.txt
+++ b/doc/PKGBUILD.5.txt
@@ -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
diff --git a/doc/makepkg.8.txt b/doc/makepkg.8.txt
index fb2e8054..e480d8e3 100644
--- a/doc/makepkg.8.txt
+++ b/doc/makepkg.8.txt
@@ -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
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index d978107f..f94f925e 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -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"