summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorEthan Sommer <e5ten.arch@gmail.com>2019-11-06 02:29:11 +0100
committerAllan McRae <allan@archlinux.org>2019-11-06 03:03:38 +0100
commit3a814ee6bca9ee24a868c0dc032b321048a53e08 (patch)
tree5d1722228354306d2820b0bc169e15c950f19a32 /scripts
parent424129e8d1e91987a9799a49391f1271b069c5cf (diff)
downloadpacman-3a814ee6bca9ee24a868c0dc032b321048a53e08.tar.gz
pacman-3a814ee6bca9ee24a868c0dc032b321048a53e08.tar.xz
makepkg: replaces sed in-place with built in substitution
Reads PKGBUILD into an array and replaces the pkgver and pkgrel with bash parameter substitution, then uses shell redirection to write to to the file. Because shell redirection follows symlinks, this accomplishes the same thing as the previous default of using the GNU-specific --follow-symlinks sed flag. Removes SEDPATH and SEDINPLACEFLAGS from the build systems as they are not used elsewhere. Signed-off-by: Ethan Sommer <e5ten.arch@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
Diffstat (limited to 'scripts')
-rw-r--r--scripts/Makefile.am2
-rw-r--r--scripts/makepkg.sh.in8
2 files changed, 5 insertions, 5 deletions
diff --git a/scripts/Makefile.am b/scripts/Makefile.am
index 63d09767..3cb6c133 100644
--- a/scripts/Makefile.am
+++ b/scripts/Makefile.am
@@ -186,8 +186,6 @@ edit = sed \
-e 's|@DEBUGSUFFIX[@]|$(DEBUGSUFFIX)|g' \
-e "s|@INODECMD[@]|$(INODECMD)|g" \
-e "s|@FILECMD[@]|$(FILECMD)|g" \
- -e 's|@SEDINPLACEFLAGS[@]|$(SEDINPLACEFLAGS)|g' \
- -e 's|@SEDPATH[@]|$(SEDPATH)|g' \
-e 's|@SCRIPTNAME[@]|$@|g' \
-e 's|@configure_input[@]|Generated from $<; do not edit by hand.|g'
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index c49ac57a..22df1b9f 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -199,13 +199,15 @@ update_pkgver() {
fi
if [[ -n $newpkgver && $newpkgver != "$pkgver" ]]; then
- if [[ -f $BUILDFILE && -w $BUILDFILE ]]; then
- if ! @SEDPATH@ @SEDINPLACEFLAGS@ "s:^pkgver=[^ ]*:pkgver=$newpkgver:" "$BUILDFILE"; then
+ if [[ -w $BUILDFILE ]]; then
+ mapfile -t buildfile < "$BUILDFILE"
+ buildfile=("${buildfile[@]/#pkgver=*([^ ])/pkgver=$newpkgver}")
+ buildfile=("${buildfile[@]/#pkgrel=*([^ ])/pkgrel=1}")
+ if ! printf '%s\n' "${buildfile[@]}" > "$BUILDFILE"; then
error "$(gettext "Failed to update %s from %s to %s")" \
"pkgver" "$pkgver" "$newpkgver"
exit $E_PKGBUILD_ERROR
fi
- @SEDPATH@ @SEDINPLACEFLAGS@ "s:^pkgrel=[^ ]*:pkgrel=1:" "$BUILDFILE"
source_safe "$BUILDFILE"
local fullver=$(get_full_version)
msg "$(gettext "Updated version: %s")" "$pkgbase $fullver"