summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllan McRae <allan@archlinux.org>2013-11-01 12:34:34 +0100
committerAllan McRae <allan@archlinux.org>2014-03-27 06:24:22 +0100
commitee72c016ab316aaca3781d2c45bf0de77fefcf3c (patch)
tree970d0871fd4326d08865ee0bd2d487f649ab6fdf
parentd8f0c3e5b983910dcaef3091ea622ebc3be0f5a0 (diff)
downloadpacman-ee72c016ab316aaca3781d2c45bf0de77fefcf3c.tar.gz
pacman-ee72c016ab316aaca3781d2c45bf0de77fefcf3c.tar.xz
Always supply base name and version info in .PKGFILE if needed
Provide pkgbase information for non-split packages with pkgbase set. Also record the version of the "base" package. This is useful for matching package files to source packages. Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r--lib/libalpm/be_package.c2
-rw-r--r--scripts/makepkg.sh.in24
2 files changed, 18 insertions, 8 deletions
diff --git a/lib/libalpm/be_package.c b/lib/libalpm/be_package.c
index dc2e0720..22751293 100644
--- a/lib/libalpm/be_package.c
+++ b/lib/libalpm/be_package.c
@@ -196,6 +196,8 @@ static int parse_descfile(alpm_handle_t *handle, struct archive *a, alpm_pkg_t *
/* not used atm */
} else if(strcmp(key, "pkgver") == 0) {
STRDUP(newpkg->version, ptr, return -1);
+ } else if(strcmp(key, "basever") == 0) {
+ /* not used atm */
} else if(strcmp(key, "pkgdesc") == 0) {
STRDUP(newpkg->desc, ptr, return -1);
} else if(strcmp(key, "group") == 0) {
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index d9a14e29..78941d4f 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -1829,9 +1829,18 @@ write_pkginfo() {
printf "# Generated by makepkg %s\n" "$makepkg_version"
printf "# using %s\n" "$(fakeroot -v)"
printf "# %s\n" "$(LC_ALL=C date -u)"
+
printf "pkgname = %s\n" "$pkgname"
- (( SPLITPKG )) && printf "pkgbase = %s\n" "$pkgbase"
- printf "pkgver = %s\n" "$(get_full_version)"
+ if (( SPLITPKG )) || [[ "$pkgbase" != "$pkgname" ]]; then
+ printf "pkgbase = %s\n" "$pkgbase"
+ fi
+
+ local fullver=$(get_full_version)
+ printf "pkgver = %s\n" "$fullver"
+ if [[ "$fullver" != "$basever" ]]; then
+ printf "basever = %s\n" "$basever"
+ fi
+
printf "pkgdesc = %s\n" "${pkgdesc//+([[:space:]])/ }"
printf "url = %s\n" "$url"
printf "builddate = %s\n" "$builddate"
@@ -1880,7 +1889,6 @@ create_package() {
msg "$(gettext "Creating package \"%s\"...")" "$pkgname"
pkgarch=$(get_pkg_arch)
-
write_pkginfo > .PKGINFO
local comp_files=('.PKGINFO')
@@ -2827,6 +2835,7 @@ fi
# set defaults if they weren't specified in buildfile
pkgbase=${pkgbase:-${pkgname[0]}}
epoch=${epoch:-0}
+basever=$(get_full_version)
if [[ $BUILDDIR = "$startdir" ]]; then
srcdir="$BUILDDIR/src"
@@ -2933,12 +2942,11 @@ if (( INFAKEROOT )); then
exit 0 # $E_OK
fi
-fullver=$(get_full_version)
-msg "$(gettext "Making package: %s")" "$pkgbase $fullver ($(date))"
+msg "$(gettext "Making package: %s")" "$pkgbase $basever ($(date))"
# if we are creating a source-only package, go no further
if (( SOURCEONLY )); then
- if [[ -f $SRCPKGDEST/${pkgbase}-${fullver}${SRCEXT} ]] \
+ if [[ -f $SRCPKGDEST/${pkgbase}-${basever}${SRCEXT} ]] \
&& (( ! FORCE )); then
error "$(gettext "A source package has already been built. (use %s to overwrite)")" "-f"
exit 1
@@ -3018,6 +3026,7 @@ elif (( !REPKG )); then
extract_sources
if (( PKGVERFUNC )); then
update_pkgver
+ basever=$(get_full_version)
check_build_status
fi
if (( PREPAREFUNC )); then
@@ -3053,8 +3062,7 @@ if (( NOARCHIVE )); then
exit 0
fi
-fullver=$(get_full_version)
-msg "$(gettext "Finished making: %s")" "$pkgbase $fullver ($(date))"
+msg "$(gettext "Finished making: %s")" "$pkgbase $basever ($(date))"
install_package