[PATCH v2 1/2] buildscript/patches: Automatically scan directories for feeds
robert
rlanghammer at web.de
Mo Apr 8 16:13:13 CEST 2019
Hi Adrian, s. unten
Am 08.04.19 um 15:32 schrieb Adrian Schmutzler:
> 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 <freifunk at adrianschmutzler.de>
>
> ---
>
> Changes in v2:
> - Improved "algorithm" as suggested by Robert
> ---
> buildscript | 26 ++++++++--------------
> ...se-hotplug.d-iface-instead-of-hotplug.d-n.patch | 0
> .../0020-fastd_generate_key_from_urandom.patch | 0
> ...adv-patch-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 1d527c6e..1605b9cf 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 [ -n "$PATCH" ] ; then
# man test
-n ZEICHENKETTE
Die Länge von ZEICHENKETTE ist ungleich Null
Die for Schleife geht nur in das do, wenn ein Element in der Liste
gefunden wird. Das if ist also immer wahr.
> + echo "Applying $PATCH"
> + git -C "$NAME" am --whitespace=nowarn "../$PATCH"
> else
und das kommt nie dran.
> - echo "Warning, $PATCH not found."
> + echo "Empty patch $PATCH ignored."
in $PATCH steht der Pfad. Also ist nicht der Patch leer sondern die
Variable $PATCH und das kommt in einer for Schleife nicht vor. s. oben.
> 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
Mehr Informationen über die Mailingliste franken-dev