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

Adrian Schmutzler mail at adrianschmutzler.de
Mi Apr 10 16:32:09 CEST 2019


Beide applied.

 

From: franken-dev [mailto:franken-dev-bounces at freifunk.net] On Behalf Of robert
Sent: Montag, 8. April 2019 16:22
To: franken-dev at freifunk.net
Subject: Re: [PATCH v2 1/2] buildscript/patches: Automatically scan directories for feeds

 

 

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 <mailto: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 <mailto: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 <mailto: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 HTML-Daten wurde abgetrennt...
URL: <https://{'listname': 'franken-dev-freifunk.net', 'hostname': 'lists.freifunk.net'}/pipermail/franken-dev-freifunk.net/attachments/20190410/d2e9fb94/attachment.html>
-------------- 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/20190410/d2e9fb94/attachment.sig>


Mehr Informationen über die Mailingliste franken-dev