replace ipkg-make-index with a shell script that works on bsd
replace ipkg-make-index with a shell script that works on bsd

git-svn-id: svn://svn.openwrt.org/openwrt/branches/buildroot-ng/openwrt@5046 3c298f89-4303-0410-b956-a3cf2f4a3e73

--- a/package/Makefile
+++ b/package/Makefile
@@ -9,6 +9,7 @@
 include $(TOPDIR)/rules.mk
 include $(TOPDIR)/.config
 include $(TOPDIR)/.pkgdeps
+include $(TOPDIR)/host.mk
 
 PREREQ_PACKAGES:=$(patsubst %,%-prereq,$(package-prereq))
 DOWNLOAD_PACKAGES:=$(patsubst %,%-download,$(package-y) $(package-m))
@@ -58,7 +59,7 @@
 index: $(PACKAGE_DIR)/Packages
 
 $(PACKAGE_DIR)/Packages: $(PACKAGE_DIR)/*.ipk
-	(cd $(PACKAGE_DIR); $(STAGING_DIR)/usr/bin/ipkg-make-index . > Packages)
+	(cd $(PACKAGE_DIR); $(SCRIPT_DIR)/ipkg-make-index.sh . > Packages)
 
 
 ifeq ($(MAKECMDGOALS),compile-targets)

--- /dev/null
+++ b/scripts/ipkg-make-index.sh
@@ -1,1 +1,25 @@
+#!/bin/sh
+set -e
 
+pkg_dir=$1
+
+if [ -z $pkg_dir ] || [ ! -d $pkg_dir ]; then
+	echo "Usage: ipkg-make-index <package_directory>"
+	exit 1
+fi
+
+which md5sum 2>&1 >/dev/null || alias md5sum=md5
+
+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}')
+	# Take pains to make variable value sed-safe
+	sed_safe_pkg=`echo $pkg | sed -e 's/\\//\\\\\\//g'`
+	tar -xzOf $pkg ./control.tar.gz | tar xzOf - ./control | sed -e "s/^Description:/Filename: $sed_safe_pkg\\
+Size: $file_size\\
+MD5Sum: $md5sum\\
+Description:/"
+	echo ""
+done
+

comments