[PATCH v2 1/2] buildscript/patches: Automatically scan directories for feeds

Adrian Schmutzler mail at adrianschmutzler.de
Mo Apr 8 16:15:47 CEST 2019


Hallo Robert,

ich bin dumm.

Ich meine "-s". Würde das beim Applien ändern, wenn du nicht sonst noch was findest.

Grüße

Adrian

> -----Original Message-----
> From: franken-dev [mailto:franken-dev-bounces at freifunk.net] On Behalf Of
> robert
> Sent: Montag, 8. April 2019 16:13
> To: franken-dev at freifunk.net
> Subject: Re: [PATCH v2 1/2] buildscript/patches: Automatically scan directories
> for feeds
> 
> 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
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : nicht verfügbar
Dateityp    : application/pgp-signature
Dateigröße  : 834 bytes
Beschreibung: nicht verfügbar
URL         : <https://{'listname': 'franken-dev-freifunk.net', 'hostname': 'lists.freifunk.net'}/pipermail/franken-dev-freifunk.net/attachments/20190408/b96670a9/attachment.sig>


Mehr Informationen über die Mailingliste franken-dev