summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
authorXZS2016-03-23 20:32:17 +0100
committerXZS2016-03-23 20:32:17 +0100
commitaec4b10469a9ee7b0e382ff9a42a0125b11d5237 (patch)
tree45f56bc03f367778dd692b053723894317e44d10 /PKGBUILD
parent2384248e4828342c2a7b0952457006c900e724b6 (diff)
downloadaur-aec4b10469a9ee7b0e382ff9a42a0125b11d5237.tar.gz
end grep trickery, it has been busted
Unbelievably, also traditional tools like grep are regularly updated still today. Version 2.24 forbid the combination of some features with the -z option. This was exactly what was exploited here to make grep ignore newlines so they would not interrupt JSON dissection. More information about the change can be found at the bottom of the respective release notes. [1] Fixing it costs an invocation of tr to remove the bothersome newlines. Because the files are read within "find -exec" where input redirection is not readily possible, cat has to be invoked to start the pipeline. The grep script got only a tiny bit simpler by adhering to the new restriction and leaving newlines to tr. Thanks to AUR users jmauss, Asher256 and vinadoros for pointing to the critical line. [1]: http://savannah.gnu.org/forum/forum.php?forum_id=8477
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD3
1 files changed, 2 insertions, 1 deletions
diff --git a/PKGBUILD b/PKGBUILD
index 64bd90eb9397..265d3bc0fb3d 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -45,7 +45,8 @@ depends[125]=gnome-shell
package_20_version() {
local compatibles=($(\
find -path ./pkg -type d -prune -o \
- -name metadata.json -exec grep -Pzo '(?s)(?<="shell-version": \[)[^\[\]]*(?=\])' '{}' \; | \
+ -name metadata.json -exec cat '{}' \; | \
+ tr -d '\n' | grep -Po '(?<="shell-version": \[)[^\[\]]*(?=\])' | \
tr '\n," ' '\n' | sed 's/3\.//g;/^$/d' | sort -n -t. -k 1,1))
depends+=("gnome-shell>=3.${compatibles[0]}")
local max="${compatibles[-1]}"