From 4b599ac7b9f85992b1d3b39cb822d1ed426b19d5 Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Tue, 6 Dec 2016 18:25:25 +0000 Subject: [PATCH] build: implement PKG_PATCH_DIRS --- config/path | 1 + scripts/unpack | 37 ++++++++++++++++++++++++++++++------- 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/config/path b/config/path index 8fedc34dcd..6aa978ee15 100644 --- a/config/path +++ b/config/path @@ -78,6 +78,7 @@ SED="sed -i" PKG_SHORTDESC="$1 (autogenerated)" PKG_LONGDESC="" PKG_IS_ADDON="no" + PKG_PATCH_DIRS="" if [ -n "$1" ]; then _PKG_ROOT_NAME=${1%:*} diff --git a/scripts/unpack b/scripts/unpack index 3e3d1855af..76f9584f18 100755 --- a/scripts/unpack +++ b/scripts/unpack @@ -122,29 +122,52 @@ else PATCH_ARCH="$TARGET_ARCH" fi +PATCH_DIRS_PKG="" +PATCH_DIRS_PRJ="" +if [ -n "$PKG_PATCH_DIRS" ]; then + for patch_dir in $PKG_PATCH_DIRS; do + [ -d $PKG_DIR/patches/$patch_dir ] && PATCH_DIRS_PKG="$PATCH_DIRS_PKG $PKG_DIR/patches/$patch_dir/*.patch" + [ -d $PROJECT_DIR/$PROJECT/patches/$PKG_NAME/$patch_dir ] && PATCH_DIRS_PRJ="$PATCH_DIRS_PRJ $PROJECT_DIR/$PROJECT/patches/$PKG_NAME/$patch_dir/*.patch" + done +fi + for i in $PKG_DIR/patches/$PKG_NAME-*.patch \ $PKG_DIR/patches/$PATCH_ARCH/$PKG_NAME-*.patch \ + $PATCH_DIRS_PKG \ $PKG_DIR/patches/$PKG_VERSION/*.patch \ $PKG_DIR/patches/$PKG_VERSION/$PATCH_ARCH/*.patch \ $PROJECT_DIR/$PROJECT/patches/$PKG_NAME/*.patch \ $PROJECT_DIR/$PROJECT/patches/$PKG_NAME/$PATCH_ARCH/*.patch \ + $PATCH_DIRS_PRJ \ $PROJECT_DIR/$PROJECT/patches/$PKG_NAME/$PKG_VERSION/*.patch \ $PROJECT_DIR/$PROJECT/devices/$DEVICE/patches/$PKG_NAME/*.patch; do - if [ $(dirname $i) = "$PKG_DIR/patches" ]; then + thisdir="$(dirname "$i")" + + if [ "$thisdir" = "$PKG_DIR/patches" ]; then PATCH_DESC="(common)" - elif [ $(dirname $i) = "$PKG_DIR/patches/$PATCH_ARCH" ]; then + elif [ "$thisdir" = "$PKG_DIR/patches/$PATCH_ARCH" ]; then PATCH_DESC="(common - $PATCH_ARCH)" - elif [ $(dirname $i) = "$PKG_DIR/patches/$PKG_VERSION/$PATCH_ARCH" ]; then + elif [ "$thisdir" = "$PKG_DIR/patches/$PKG_VERSION" ]; then + PATCH_DESC="(common - $PKG_VERSION)" + elif [ "$thisdir" = "$PKG_DIR/patches/$PKG_VERSION/$PATCH_ARCH" ]; then PATCH_DESC="($PKG_VERSION - $PATCH_ARCH)" - elif [ $(dirname $i) = "$PROJECT_DIR/$PROJECT/patches/$PKG_NAME" ]; then + elif [ "$thisdir" = "$PROJECT_DIR/$PROJECT/patches/$PKG_NAME" ]; then PATCH_DESC="(project)" - elif [ $(dirname $i) = "$PROJECT_DIR/$PROJECT/patches/$PKG_NAME/$PATCH_ARCH" ]; then + elif [ "$thisdir" = "$PROJECT_DIR/$PROJECT/patches/$PKG_NAME/$PATCH_ARCH" ]; then PATCH_DESC="(project - $PATCH_ARCH)" - elif [ $(dirname $i) = "$PROJECT_DIR/$PROJECT/patches/$PKG_NAME/$PKG_VERSION" ]; then + elif [ "$thisdir" = "$PROJECT_DIR/$PROJECT/patches/$PKG_NAME/$PKG_VERSION" ]; then PATCH_DESC="(project - $PKG_VERSION)" - elif [ $(dirname $i) = "$PROJECT_DIR/$PROJECT/devices/$DEVICE/patches/$PKG_NAME" ]; then + elif [ "$thisdir" = "$PROJECT_DIR/$PROJECT/devices/$DEVICE/patches/$PKG_NAME" ]; then PATCH_DESC="(device)" + else + if [[ "$thisdir" =~ ^$PKG_DIR/.* ]]; then + PATCH_DESC="(common - $(basename "$thisdir"))" + elif [[ "$thisdir" =~ ^$PROJECT_DIR/.* ]]; then + PATCH_DESC="(project - $(basename "$thisdir"))" + else + PATCH_DESC="(unknown - $(basename "$thisdir"))" + fi fi if [ -f "$i" ]; then