From 014f66a8d7d282fe24e152b4b2ffb1e1337857ca Mon Sep 17 00:00:00 2001 From: Adrian Schmutzler Date: Mon, 8 Apr 2019 15:32:10 +0200 Subject: [PATCH] buildscript/patches: Automatically scan directories for feeds The buildscript knows two different types of patches, which are applied to pulled-in repositories: 1. Feed patches Those are applied as "GIT patches" to the relevant repos, directly after those have been checked out. They reside in subfolders of the build_patches folder, and have to be selected individually and manually in the buildscript.sh. 2. Build patches Those are applied later in the process, just using the system patch tool, and changing the $target directory. All patches in the folder "build_patches/openwrt" are read and applied automatically. This is both inconsistent (two different types of patches in the same dir) and annoying (feed patches have to be specified by hand), especially for unexperienced developers. This patch addresses this by: - separating files into two dirs: build_patches and feed_patches - automatically scanning feed patches and thus having similar experience for the user (I cannot think of a case where we provide a patch, but do not use it) Signed-off-by: Adrian Schmutzler Reviewed-by: Robert Langhammer --- buildscript | 26 +++++++------------ ...tplug.d-iface-instead-of-hotplug.d-n.patch | 0 ...0020-fastd_generate_key_from_urandom.patch | 0 ...atch-to-remove-gw-mode-switch-messag.patch | 0 4 files changed, 9 insertions(+), 17 deletions(-) rename {build_patches => feed_patches}/gluon/0001-simple-tc-Use-hotplug.d-iface-instead-of-hotplug.d-n.patch (100%) rename {build_patches/openwrt/fastd => feed_patches/openwrt}/0020-fastd_generate_key_from_urandom.patch (100%) rename {build_patches => feed_patches}/routing/0002-Add-batman-adv-patch-to-remove-gw-mode-switch-messag.patch (100%) diff --git a/buildscript b/buildscript index 1d527c6..1917130 100755 --- a/buildscript +++ b/buildscript @@ -23,23 +23,20 @@ PACKAGEURL="https://git.openwrt.org/feed/packages.git" #official openwrt packages OPENWRT=(openwrt $PACKAGEURL - $PACKAGEREV - fastd/0020-fastd_generate_key_from_urandom.patch) + $PACKAGEREV) OPENWRT_PKGS="gpioctl-sysfs libugpio fastd haserl" ## Be careful: FFF uses COMPAT_VERSION 15 as default at the moment. ## See http://www.open-mesh.org/projects/batman-adv/wiki/Compatversion GLUON=(gluon https://github.com/freifunk-gluon/packages.git - 8b65619f59c3bdce743c2f2fb2588fdd7079355a - "0001-simple-tc-Use-hotplug.d-iface-instead-of-hotplug.d-n.patch") + 8b65619f59c3bdce743c2f2fb2588fdd7079355a) GLUON_PKGS="kmod-batman-adv-legacy micrond simple-tc uradvd" #official openwrt routing packages ROUTING=(routing https://git.openwrt.org/feed/routing.git - ea345d16a6e27c2a8fdf67bf543cc36a5f189131 - "0002-Add-batman-adv-patch-to-remove-gw-mode-switch-messag.patch") # openwrt-18.06.2 + ea345d16a6e27c2a8fdf67bf543cc36a5f189131) # openwrt-18.06.2 ROUTING_PKGS="kmod-batman-adv batctl alfred babeld" FFF=(fff) @@ -101,19 +98,14 @@ get_source() { if [ -n "$URL" ] && [ -n "$REV" ]; then checkout_git "$NAME" "$URL" "$REV" - # Patches for feeds could be stored in known directories like build_patches/$NAME/ - # That way multiple patches for one feed could be supported - count=3 - while [ "x${FEED[count]}" != "x" ] - do - local PATCH="../../../build_patches/${NAME}/${FEED[count]}" - if [ ! -z "$PATCH" ] ; then - echo "Patching $PATCH" - git -C "$NAME" am --whitespace=nowarn "$PATCH" + # Patches for feeds are stored in known directories like feed_patches/$NAME/ + for PATCH in $(ls ../../feed_patches/${NAME}/*.patch 2>/dev/null); do + if [ -s "$PATCH" ] ; then + echo "Applying $PATCH" + git -C "$NAME" am --whitespace=nowarn "../$PATCH" else - echo "Warning, $PATCH not found." + echo "Empty patch $PATCH ignored." fi - count=$(( count + 1 )) done fi done diff --git a/build_patches/gluon/0001-simple-tc-Use-hotplug.d-iface-instead-of-hotplug.d-n.patch b/feed_patches/gluon/0001-simple-tc-Use-hotplug.d-iface-instead-of-hotplug.d-n.patch similarity index 100% rename from build_patches/gluon/0001-simple-tc-Use-hotplug.d-iface-instead-of-hotplug.d-n.patch rename to feed_patches/gluon/0001-simple-tc-Use-hotplug.d-iface-instead-of-hotplug.d-n.patch diff --git a/build_patches/openwrt/fastd/0020-fastd_generate_key_from_urandom.patch b/feed_patches/openwrt/0020-fastd_generate_key_from_urandom.patch similarity index 100% rename from build_patches/openwrt/fastd/0020-fastd_generate_key_from_urandom.patch rename to feed_patches/openwrt/0020-fastd_generate_key_from_urandom.patch diff --git a/build_patches/routing/0002-Add-batman-adv-patch-to-remove-gw-mode-switch-messag.patch b/feed_patches/routing/0002-Add-batman-adv-patch-to-remove-gw-mode-switch-messag.patch similarity index 100% rename from build_patches/routing/0002-Add-batman-adv-patch-to-remove-gw-mode-switch-messag.patch rename to feed_patches/routing/0002-Add-batman-adv-patch-to-remove-gw-mode-switch-messag.patch