build: generate_package_index: use 'sha256sum' in favor of 'openssl sha256'

openssl is not available on all systems (or maybe not the implementation
of sha256), but maybe sha256sum.  use openssl if 'sha256sum' is not installed.

Signed-off-by: Bastian Bittorf <bitt...@bluebottle.com>
---
 scripts/ipkg-make-index.sh |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)

diff --git a/scripts/ipkg-make-index.sh b/scripts/ipkg-make-index.sh
index a2f3dea..07c97f0 100755
--- a/scripts/ipkg-make-index.sh
+++ b/scripts/ipkg-make-index.sh
@@ -10,6 +10,18 @@ fi
 
 which md5sum >/dev/null 2>&1 || alias md5sum=md5
 
+if which sha256sum >/dev/null; then
+       get_hash_sha256()
+       {
+               sha256sum "$1" | cut -d' ' -f1
+       }
+else
+       get_hash_sha256()
+       {
+               openssl sha256 "$1" | cut -d' ' -f2
+       }
+fi
+
 for pkg in `find $pkg_dir -name '*.ipk' | sort`; do
        name="${pkg##*/}"
        name="${name%%_*}"
@@ -18,7 +30,7 @@ for pkg in `find $pkg_dir -name '*.ipk' | sort`; do
        echo "Generating index for package $pkg" >&2
        file_size=$(ls -l $pkg | awk '{print $5}')
        md5sum=$(md5sum $pkg | awk '{print $1}')
-       sha256sum=$(openssl sha256 $pkg | awk '{print $2}')
+       sha256sum=$(get_hash_sha256 $pkg)
        # Take pains to make variable value sed-safe
        sed_safe_pkg=`echo $pkg | sed -e 's/^\.\///g' -e 's/\\//\\\\\\//g'`
        tar -xzOf $pkg ./control.tar.gz | tar xzOf - ./control | sed -e 
"s/^Description:/Filename: $sed_safe_pkg\\
-- 
1.7.2.5
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to