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

robert rlanghammer at web.de
Mo Apr 8 16:21:54 CEST 2019


Am 08.04.19 um 16:15 schrieb Adrian Schmutzler:
> Hallo Robert,
>
> ich bin dumm.
>
> Ich meine "-s". Würde das beim Applien ändern, wenn du nicht sonst noch was findest.

Dann stimmt die Logik. Du änderst das beim Applien. ->

Reviewed-by: Robert Langhammer <rlanghammer at web.de>


>
> 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   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 833 bytes
Beschreibung: OpenPGP digital signature
URL         : <https://{'listname': 'franken-dev-freifunk.net', 'hostname': 'lists.freifunk.net'}/pipermail/franken-dev-freifunk.net/attachments/20190408/dea83822/attachment.sig>


Mehr Informationen über die Mailingliste franken-dev