diff --git a/javapackages-2.0.1-fix-bashisms.patch b/javapackages-2.0.1-fix-bashisms.patch
new file mode 100644
index 0000000..503718b
--- /dev/null
+++ b/javapackages-2.0.1-fix-bashisms.patch
@@ -0,0 +1,389 @@
+diff -Ndur javapackages-2.0.1/bin/check-binary-files javapackages-2.0.1-fix-bashisms/bin/check-binary-files
+--- javapackages-2.0.1/bin/check-binary-files 2013-07-26 10:25:31.000000000 +0300
++++ javapackages-2.0.1-fix-bashisms/bin/check-binary-files 2014-10-13 02:46:47.702606713 +0300
+@@ -108,8 +108,7 @@
+
+ while read line; do
+
+- echo $line | grep ^% >& /dev/null
+- if [ $? -eq 0 ] || [ "$line" = "" ]; then
++ if [ -z "$line" -o "${line#%}" != "$line" ]; then
+ continue
+ fi
+
+@@ -145,7 +144,7 @@
+ if [ ! -z $_ARCHIVE_FILE ]; then
+ rm -rf $_ARCHIVE_EXTRACTION_DIR
+ mkdir -p $_ARCHIVE_EXTRACTION_DIR
+- pushd $_ARCHIVE_EXTRACTION_DIR >& /dev/null
++ cd $_ARCHIVE_EXTRACTION_DIR
+ tar xf $_WORKING_DIR/`basename $_ARCHIVE_FILE`
+ fi
+
+@@ -159,18 +158,18 @@
+
+ _compression_flag=""
+
+- echo $_ARCHIVE_FILE | grep gz$ >& /dev/null
++ echo $_ARCHIVE_FILE | grep -q gz$
+ if [ $? -eq 0 ]; then
+ _compression_flag=z
+ fi
+
+- echo $_ARCHIVE_FILE | grep bz2$ >& /dev/null
++ echo $_ARCHIVE_FILE | grep -q bz2$
+ if [ $? -eq 0 ]; then
+ _compression_flag=f
+ fi
+
+ tar cf$_compression_flag $_WORKING_DIR/$_arch_name-clean.$_arch_ext *
+
+- popd >& /dev/null
++ cd - > /dev/null
+ rm -rf $_ARCHIVE_EXTRACTION_DIR
+ fi
+diff -Ndur javapackages-2.0.1/bin/clean-binary-files javapackages-2.0.1-fix-bashisms/bin/clean-binary-files
+--- javapackages-2.0.1/bin/clean-binary-files 2013-07-26 10:25:31.000000000 +0300
++++ javapackages-2.0.1-fix-bashisms/bin/clean-binary-files 2014-10-13 02:46:32.588605896 +0300
+@@ -104,7 +104,7 @@
+ _old_ifs=$IFS
+ IFS='|'
+
+- echo $1 | grep -E "\\.jar$" >& /dev/null
++ echo $1 | grep -q -E "\\.jar$"
+ if [ $? -eq 0 ]; then
+
+ # Check if the item is in the exclusion list
+@@ -162,7 +162,7 @@
+ IFS='|'
+
+ for filename in $_KEEP_LIST; do
+- grep ^$filename $_ON_DISK_FILELIST >& /dev/null
++ grep -q ^$filename $_ON_DISK_FILELIST
+ if [ $? -gt 0 ]; then
+ echo "Cannot find file $filename from exclusions list. Aborting."
+
+@@ -174,7 +174,7 @@
+ done
+
+ for filename in $_REMOVE_LIST; do
+- grep ^$filename $_ON_DISK_FILELIST >& /dev/null
++ grep -q ^$filename $_ON_DISK_FILELIST
+ if [ $? -gt 0 ]; then
+ echo "Cannot find file $filename from exclusions list. Aborting."
+
+@@ -257,7 +257,7 @@
+ return 0;
+ fi
+
+- echo $1 | grep -E "\\.jar$" >& /dev/null
++ echo $1 | grep -q -E "\\.jar$"
+ if [ ! $? -eq 0 ]; then
+ return 0
+ fi
+@@ -342,8 +342,7 @@
+
+ while read line; do
+
+- echo $line | grep ^% >& /dev/null
+- if [ $? -eq 0 ] || [ "$line" = "" ]; then
++ if [ -z "$line" -o "${line#%}" != "$line" ]; then
+ continue
+ fi
+
+@@ -386,7 +385,7 @@
+ ;;
+ -f) # Instruction file (DELETE MODE)
+
+- if [ $2 == "-" ]; then
++ if [ "$2" = "-" ]; then
+
+ while read command; do
+
+@@ -407,8 +406,7 @@
+
+ while read line; do
+
+- echo $line | grep ^% >& /dev/null
+- if [ $? -eq 0 ] || [ "$line" = "" ]; then
++ if [ -z "$line" -o "${line#%}" != "$line" ]; then
+ continue
+ fi
+
+@@ -484,7 +482,7 @@
+ if [ ! -z $_ARCHIVE_FILE ]; then
+ rm -rf $_ARCHIVE_EXTRACTION_DIR
+ mkdir -p $_ARCHIVE_EXTRACTION_DIR
+- pushd $_ARCHIVE_EXTRACTION_DIR >& /dev/null
++ cd $_ARCHIVE_EXTRACTION_DIR
+ tar xf $_WORKING_DIR/`basename $_ARCHIVE_FILE`
+ fi
+
+@@ -576,19 +574,19 @@
+
+ _compression_flag=""
+
+- echo $_ARCHIVE_FILE | grep gz$ >& /dev/null
++ echo $_ARCHIVE_FILE | grep -q gz$
+ if [ $? -eq 0 ]; then
+ _compression_flag=z
+ fi
+
+- echo $_ARCHIVE_FILE | grep bz2$ >& /dev/null
++ echo $_ARCHIVE_FILE | grep -q bz2$
+ if [ $? -eq 0 ]; then
+ _compression_flag=f
+ fi
+
+ tar cf$_compression_flag $_WORKING_DIR/$_arch_name-clean.$_arch_ext *
+
+- popd >& /dev/null
++ cd - > /dev/null
+
+ rm -rf $_ARCHIVE_EXTRACTION_DIR
+ fi
+diff -Ndur javapackages-2.0.1/bin/create-jar-links javapackages-2.0.1-fix-bashisms/bin/create-jar-links
+--- javapackages-2.0.1/bin/create-jar-links 2013-07-26 10:25:31.000000000 +0300
++++ javapackages-2.0.1-fix-bashisms/bin/create-jar-links 2014-10-13 02:45:39.860603045 +0300
+@@ -57,7 +57,7 @@
+
+ for file in $_REMOVE_LIST; do
+
+- echo $file | grep -E "\\.jar$" >& /dev/null
++ echo $file | grep -q -E "\\.jar$"
+ if [ ! $? -eq 0 ]; then
+ continue
+ fi
+@@ -125,8 +125,7 @@
+
+ while read line; do
+
+- echo $line | grep ^% >& /dev/null
+- if [ $? -eq 0 ] || [ "$line" = "" ]; then
++ if [ -z "$line" -o "${line#%}" != "$line" ]; then
+ continue
+ fi
+
+@@ -176,7 +175,7 @@
+ if [ ! -z $_ARCHIVE_FILE ]; then
+ rm -rf $_ARCHIVE_EXTRACTION_DIR
+ mkdir -p $_ARCHIVE_EXTRACTION_DIR
+- pushd $_ARCHIVE_EXTRACTION_DIR >& /dev/null
++ cd $_ARCHIVE_EXTRACTION_DIR
+ tar xf $_WORKING_DIR/`basename $_ARCHIVE_FILE`
+ fi
+
+@@ -190,18 +189,18 @@
+
+ _compression_flag=""
+
+- echo $_ARCHIVE_FILE | grep gz$ >& /dev/null
++ echo $_ARCHIVE_FILE | grep -q gz$
+ if [ $? -eq 0 ]; then
+ _compression_flag=z
+ fi
+
+- echo $_ARCHIVE_FILE | grep bz2$ >& /dev/null
++ echo $_ARCHIVE_FILE | grep -q bz2$
+ if [ $? -eq 0 ]; then
+ _compression_flag=f
+ fi
+
+ tar cf$_compression_flag $_WORKING_DIR/$_arch_name-clean.$_arch_ext *
+
+- popd >& /dev/null
++ cd - > /dev/null
+ rm -rf $_ARCHIVE_EXTRACTION_DIR
+ fi
+diff -Ndur javapackages-2.0.1/bin/find-jar javapackages-2.0.1-fix-bashisms/bin/find-jar
+--- javapackages-2.0.1/bin/find-jar 2013-07-26 10:25:31.000000000 +0300
++++ javapackages-2.0.1-fix-bashisms/bin/find-jar 2014-10-13 00:58:10.702254350 +0300
+@@ -30,7 +30,7 @@
+ find_jar $1
+
+ if [ $? != 0 ]; then
+- echo $"Could not find the requested jar or jar directory." >&2
+- echo $"Please check the correct JAVA_HOME is set." >&2
++ echo "Could not find the requested jar or jar directory." >&2
++ echo "Please check the correct JAVA_HOME is set." >&2
+ exit 6
+ fi
+diff -Ndur javapackages-2.0.1/bin/mvn-alias javapackages-2.0.1-fix-bashisms/bin/mvn-alias
+--- javapackages-2.0.1/bin/mvn-alias 2013-07-26 10:25:31.000000000 +0300
++++ javapackages-2.0.1-fix-bashisms/bin/mvn-alias 2014-10-13 02:20:45.576522251 +0300
+@@ -35,25 +35,29 @@
+ exit 1
+ fi
+
+-IFS=: read -a pattern <<<"$1"
++pattern="$1"
+ shift
+
+ aliases=
+ while [ $# -gt 0 ]; do
++ g="${1%%:*}"
++ a="${1#*:}"
++ a="${a%%:*}"
++
+ IFS=: read -a alias <<<"$1"
+ shift
+ aliases="$aliases
+
+- ${alias[0]}
+- ${alias[1]}
+- ${alias[2]}
++ $(echo "$1" | cut -d: -f1)
++ $(echo "$1" | cut -d: -f2)
++ $(echo "$1" | cut -d: -f3)
+ "
+ done
+
+ xml="
+- ${pattern[0]}
+- ${pattern[1]}
+- ${pattern[2]}
++ $(echo "$pattern" | cut -d: -f1)
++ $(echo "$pattern" | cut -d: -f2)
++ $(echo "$pattern" | cut -d: -f3)
+
+ $aliases
+ "
+diff -Ndur javapackages-2.0.1/bin/mvn-config javapackages-2.0.1-fix-bashisms/bin/mvn-config
+--- javapackages-2.0.1/bin/mvn-config 2013-07-26 10:25:31.000000000 +0300
++++ javapackages-2.0.1-fix-bashisms/bin/mvn-config 2014-10-13 01:04:24.235274546 +0300
+@@ -37,7 +37,7 @@
+
+ open=
+ close=
+-for node in $(sed "s|/| |g" <<<"${1}"); do
++for node in $(echo "$1" | sed "s|/| |g"); do
+ open="${open}<${node}>"
+ close="${node}>${close}"
+ done
+diff -Ndur javapackages-2.0.1/bin/mvn-file javapackages-2.0.1-fix-bashisms/bin/mvn-file
+--- javapackages-2.0.1/bin/mvn-file 2013-07-26 10:25:31.000000000 +0300
++++ javapackages-2.0.1-fix-bashisms/bin/mvn-file 2014-10-13 02:22:28.238527802 +0300
+@@ -35,20 +35,17 @@
+ exit 1
+ fi
+
+-IFS=: read -a pattern <<<"$1"
+-shift
+-
+ files=
+ while [ $# -gt 0 ]; do
+ files="$files
+- $1"
++ $2"
+ shift
+ done
+
+ xml="
+- ${pattern[0]}
+- ${pattern[1]}
+- ${pattern[2]}
++ $(echo "$1" | cut -d: -f1)
++ $(echo "$1" | cut -d: -f2)
++ $(echo "$1" | cut -d: -f3)
+
+ $files
+ "
+diff -Ndur javapackages-2.0.1/bin/mvn-local javapackages-2.0.1-fix-bashisms/bin/mvn-local
+--- javapackages-2.0.1/bin/mvn-local 2013-07-26 10:25:31.000000000 +0300
++++ javapackages-2.0.1-fix-bashisms/bin/mvn-local 2014-10-13 02:32:44.546561125 +0300
+@@ -39,9 +39,12 @@
+ # resolution from effective POM repository.
+ XMVN_COMPAT=19-rpmbuild
+ for arg in "$@"; do
+- if egrep -q '^-Dmaven\.local\.effective\.pom=false' <<<"$arg"; then
++ case "$arg" in
++ '-Dmaven.local.effective.pom=false'*)
+ XMVN_COMPAT=19-rpmbuild-raw
+- fi
++ break
++ ;;
++ esac
+ done
+ export XMVN_COMPAT
+
+diff -Ndur javapackages-2.0.1/bin/mvn-package javapackages-2.0.1-fix-bashisms/bin/mvn-package
+--- javapackages-2.0.1/bin/mvn-package 2013-07-26 10:25:31.000000000 +0300
++++ javapackages-2.0.1-fix-bashisms/bin/mvn-package 2014-10-13 02:23:15.401530352 +0300
+@@ -35,12 +35,10 @@
+ exit 1
+ fi
+
+-IFS=: read -a pattern <<<"$1"
+-
+ xml="
+- ${pattern[0]}
+- ${pattern[1]}
+- ${pattern[2]}
++ $(echo "$1" | cut -d: -f1)
++ $(echo "$1" | cut -d: -f2)
++ $(echo "$1" | cut -d: -f3)
+
+ $2"
+
+diff -Ndur javapackages-2.0.1/bin/mvn-rpmbuild javapackages-2.0.1-fix-bashisms/bin/mvn-rpmbuild
+--- javapackages-2.0.1/bin/mvn-rpmbuild 2013-07-26 10:25:31.000000000 +0300
++++ javapackages-2.0.1-fix-bashisms/bin/mvn-rpmbuild 2014-10-13 02:35:13.131569158 +0300
+@@ -38,24 +38,28 @@
+ # Support local depmaps
+ depmap=
+ for arg in "$@"; do
+- if egrep -q '^-Dmaven\.local\.depmap\.file=' <<<"$arg"; then
+- depmap=$(sed 's/[^=]*=//' <<<"$arg")
++ case "$arg" in
++ '-Dmaven.local.depmap.file='*)
++ depmap=$(echo "$arg" | sed 's/[^=]*=//')
+ depmap="
+
+
+ $depmap
+ "
+- fi
++ ;;
++ esac
+ done
+
+ # Local repository
+ repo=".m2"
+ repo_arg="-Dmaven.repo.local=$PWD/.m2/"
+ for arg in "$@"; do
+- if egrep -q '^-Dmaven\.repo\.local=' <<<"$arg"; then
++ case "$arg" in
++ '-Dmaven.repo.local='*)
+ repo_arg=
+- repo=$(sed 's/[^=]*=//' <<<"$arg")
+- fi
++ repo=$(echo "$arg" | sed 's/[^=]*=//')
++ ;;
++ esac
+ done
+
+ export MAVEN_OPTS="$MAVEN_OPTS $repo_arg"
+@@ -77,9 +81,12 @@
+ # resolution from effective POM repository.
+ XMVN_COMPAT=19-rpmbuild
+ for arg in "$@"; do
+- if egrep -q '^-Dmaven\.local\.effective\.pom=false' <<<"$arg"; then
++ case "$arg" in
++ '-Dmaven.local.effective.pom=false'*)
+ XMVN_COMPAT=19-rpmbuild-raw
+- fi
++ break
++ ;;
++ esac
+ done
+ export XMVN_COMPAT
+
+@@ -88,7 +95,7 @@
+ # used without giving groupId prefix.
+ for groupId in org/apache/maven/plugins org/codehaus/mojo; do
+ mkdir -p "$repo"/${groupId}
+- ln -sf /etc/maven/metadata-${groupId////-}.xml \
++ ln -sf /etc/maven/metadata-$(echo "$groupId" | tr / -).xml \
+ "$repo"/${groupId}/maven-metadata-central.xml
+ done
+
diff --git a/javapackages-tools.changes b/javapackages-tools.changes
index e022285..355b40e 100644
--- a/javapackages-tools.changes
+++ b/javapackages-tools.changes
@@ -1,3 +1,10 @@
+-------------------------------------------------------------------
+Thu Oct 16 11:12:00 UTC 2014 - Led
+
+- fix bashisms
+- Added patches:
+ * javapackages-2.0.1-fix-bashisms.patch
+
-------------------------------------------------------------------
Mon Mar 10 13:52:26 UTC 2014 - darin@darins.net
diff --git a/javapackages-tools.spec b/javapackages-tools.spec
index 7255f20..9944a23 100644
--- a/javapackages-tools.spec
+++ b/javapackages-tools.spec
@@ -36,6 +36,7 @@ Patch0: suse-use-libdir.patch
Patch1: depgen.patch
# PATCH-FIX-SLE maven_depmap-no-attribute-exit.patch - fix ZipFile instance has no attribute '__exit__'
Patch2: maven_depmap-no-attribute-exit.patch
+Patch3: javapackages-2.0.1-fix-bashisms.patch
#BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -108,6 +109,7 @@ This package provides macros and scripts to support packaging Maven artifacts.
%if 0%{?suse_version} == 1110
%patch2 -p1
%endif
+%patch3 -p1
%build
%{configure}