[PATCH v8 1/3] use custom names for binary builds. fixes #9

Tobias Klaus tk+ff at meskal.net
So Mär 20 14:28:13 CET 2016


Hey Steffen,

den fraglichen Teil hab ich an der ML vorbei beigesteuert, da ich Jan nicht verbal mit meinen Vorstellungen nerven wollte sondern  lieber mit Umsetzung.

Hintergrund war, das sich einige image Namen nicht in das bisherige Schema pressen lassen. So ist zum Beispiel squashfs nur ein qulifier und nicht immer vorhanden. Ich von grad unterwegs und kann nicht nach schauen, aber der dateiname für das banana pi Router board ist ein gutes Beispiel.

Du hast aber recht. Chipset gibt es immer und sollte auch gesetzt werden und wenn bash das mit Hausmittel kann(wieder was gelernt) dann nehmen wir lieber die.

Ich mach das dann.

Grüße
Tobias

Am 20. März 2016 11:43:33 MEZ, schrieb Steffen Pankratz <kratz00 at gmx.de>:
>On Thu, 17 Mar 2016 18:41:33 +0100
>Jan Kraus <mayosemmel at googlemail.com> wrote:
>
>Hi Jan,
>
>meine Anmerkungen findest du wie immer 'inline'.
>
>
>> Signed-off-by: Jan Kraus <mayosemmel at gmail.com>
>> 
>> suggested-by: Alexander Wunschik <freifunk at wunschik.net>
>> Co-Authored-By: Alexander Wunschik <freifunk at wunschik.net>
>> 
>> Co-Authored-By: Tobias Klaus <tk+ff at meskal.net>
>> ---
>>  bsp/board_ar71xx.bsp                           | 49
>++++++++++----------------
>>  bsp/board_wdr4300.bsp                          | 29 +++++----------
>>  bsp/board_wdr4900.bsp                          | 14 +++-----
>>  bsp/default/root_file_system/etc/sysupgrade.sh | 26 ++++++++------
>>  buildscript                                    | 19 ++++++++--
>>  5 files changed, 64 insertions(+), 73 deletions(-)
>> 
>> diff --git a/bsp/board_ar71xx.bsp b/bsp/board_ar71xx.bsp
>> index 4876631..1834d16 100644
>> --- a/bsp/board_ar71xx.bsp
>> +++ b/bsp/board_ar71xx.bsp
>> @@ -1,5 +1,23 @@
>>  machine=ar71xx
>> +chipset=ar71xx
>>  target=$builddir/$machine
>> +images=("openwrt-ar71xx-generic-ubnt-nano-m-squashfs-sysupgrade.bin"
>> +       
>"openwrt-ar71xx-generic-ubnt-loco-m-xw-squashfs-sysupgrade.bin"
>> +       
>"openwrt-ar71xx-generic-tl-wr740n-v4-squashfs-sysupgrade.bin"
>> +       
>"openwrt-ar71xx-generic-tl-wr741nd-v2-squashfs-sysupgrade.bin"
>> +       
>"openwrt-ar71xx-generic-tl-wr741nd-v4-squashfs-sysupgrade.bin"
>> +       
>"openwrt-ar71xx-generic-tl-wr841nd-v7-squashfs-sysupgrade.bin"
>> +       
>"openwrt-ar71xx-generic-tl-wr841n-v8-squashfs-sysupgrade.bin"
>> +       
>"openwrt-ar71xx-generic-tl-wr841n-v9-squashfs-sysupgrade.bin"
>> +       
>"openwrt-ar71xx-generic-tl-wr841n-v10-squashfs-sysupgrade.bin"
>> +       
>"openwrt-ar71xx-generic-tl-wr842n-v2-squashfs-sysupgrade.bin"
>> +       
>"openwrt-ar71xx-generic-tl-wr1043nd-v1-squashfs-sysupgrade.bin"
>> +       
>"openwrt-ar71xx-generic-tl-wr1043nd-v2-squashfs-sysupgrade.bin"
>> +       
>"openwrt-ar71xx-generic-tl-wr1043nd-v3-squashfs-sysupgrade.bin"
>> +       
>"openwrt-ar71xx-generic-tl-wa860re-v1-squashfs-sysupgrade.bin"
>> +       
>"openwrt-ar71xx-generic-tl-wa850re-v1-squashfs-sysupgrade.bin"
>> +        "openwrt-ar71xx-generic-gl-ar150-squashfs-sysupgrade.bin"
>> +        )
>>  
>>  board_prepare() {
>>      echo "nothing todo" > /dev/null
>> @@ -8,34 +26,3 @@ board_prepare() {
>>  board_prebuild() {
>>      echo "nothing todo" > /dev/null
>>  }
>> -
>> -board_postbuild() {
>> -    cp
>$target/bin/ar71xx/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-*.bin
>./bin/
>> -
>> -    cp
>$target/bin/ar71xx/openwrt-ar71xx-generic-ubnt-loco-m-xw-squashfs-*.bin
>./bin/
>> -
>> -    cp
>$target/bin/ar71xx/openwrt-ar71xx-generic-tl-wr740n-v4-squashfs-*.bin
>./bin/
>> -
>> -    cp
>$target/bin/ar71xx/openwrt-ar71xx-generic-tl-wr741nd-v2-squashfs-*.bin
>./bin/
>> -    cp
>$target/bin/ar71xx/openwrt-ar71xx-generic-tl-wr741nd-v4-squashfs-*.bin
>./bin/
>> -
>> -    cp
>$target/bin/ar71xx/openwrt-ar71xx-generic-tl-wr841nd-v7-squashfs-*.bin
>./bin/
>> -    cp
>$target/bin/ar71xx/openwrt-ar71xx-generic-tl-wr841n-v8-squashfs-*.bin
>./bin/
>> -    cp
>$target/bin/ar71xx/openwrt-ar71xx-generic-tl-wr841n-v9-squashfs-*.bin
>./bin/
>> -    cp
>$target/bin/ar71xx/openwrt-ar71xx-generic-tl-wr841n-v10-squashfs-*.bin
>./bin/
>> -
>> -    cp
>$target/bin/ar71xx/openwrt-ar71xx-generic-tl-wr842n-v2-squashfs-*.bin
>./bin/
>> -
>> -    cp
>$target/bin/ar71xx/openwrt-ar71xx-generic-tl-wr1043nd-v1-squashfs-*.bin
>./bin/
>> -    cp
>$target/bin/ar71xx/openwrt-ar71xx-generic-tl-wr1043nd-v2-squashfs-*.bin
>./bin/
>> -    cp
>$target/bin/ar71xx/openwrt-ar71xx-generic-tl-wr1043nd-v3-squashfs-*.bin
>./bin/
>> -
>> -    cp
>$target/bin/ar71xx/openwrt-ar71xx-generic-tl-wa860re-v1-squashfs-*.bin
>./bin/
>> -    cp
>$target/bin/ar71xx/openwrt-ar71xx-generic-tl-wa850re-v1-squashfs-*.bin
>./bin/
>> -
>> -    cp
>$target/bin/ar71xx/openwrt-ar71xx-generic-gl-ar150-squashfs-*.bin
>./bin/
>> -}
>> -
>> -board_clean() {
>> -    /bin/rm -rf $target bin/*$machine*
>> -}
>> diff --git a/bsp/board_wdr4300.bsp b/bsp/board_wdr4300.bsp
>> index 7e6c66e..514d589 100644
>> --- a/bsp/board_wdr4300.bsp
>> +++ b/bsp/board_wdr4300.bsp
>> @@ -1,28 +1,17 @@
>>  machine=wdr4300
>> +chipset=ar71xx
>>  target=$builddir/$machine
>> +images=(
>> +       
>"openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-sysupgrade.bin"
>> +       
>"openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-sysupgrade.bin"
>> +       
>"openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-sysupgrade.bin"
>> +       
>"openwrt-ar71xx-generic-tl-wdr4310-v1-squashfs-sysupgrade.bin"
>> +       )
>>  
>>  board_prepare() {
>> -	echo "nothing todo" > /dev/null
>> +    echo "nothing todo" > /dev/null
>>  }
>>  
>>  board_prebuild() {
>> -	echo "nothing todo" > /dev/null
>> +    echo "nothing todo" > /dev/null
>>  }
>> -
>> -board_postbuild() {
>> -    cp
>$target/bin/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin
>./bin/
>> -    cp
>$target/bin/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-sysupgrade.bin
>./bin/
>> -
>> -    cp
>$target/bin/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin
>./bin/
>> -    cp
>$target/bin/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-sysupgrade.bin
>./bin/
>> -
>> -    cp
>$target/bin/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin
>./bin/
>> -    cp
>$target/bin/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-sysupgrade.bin
>./bin/
>> -
>> -    cp
>$target/bin/ar71xx/openwrt-ar71xx-generic-tl-wdr4310-v1-squashfs-factory.bin
>./bin/
>> -    cp
>$target/bin/ar71xx/openwrt-ar71xx-generic-tl-wdr4310-v1-squashfs-sysupgrade.bin
>./bin/
>> -}
>> -
>> -board_clean() {
>> -	/bin/rm -rf $target bin/*$machine*
>> -}
>> \ No newline at end of file
>> diff --git a/bsp/board_wdr4900.bsp b/bsp/board_wdr4900.bsp
>> index 777b3b5..5428d82 100644
>> --- a/bsp/board_wdr4900.bsp
>> +++ b/bsp/board_wdr4900.bsp
>> @@ -1,6 +1,11 @@
>>  machine=wdr4900
>> +chipset=mpc85xx
>>  target=$builddir/$machine
>>  
>> +images=(
>> +       
>"openwrt-mpc85xx-generic-tl-wdr4900-v1-squashfs-sysupgrade.bin"
>> +       )
>> +
>>  board_prepare() {
>>  	echo "nothing todo" > /dev/null
>>  }
>> @@ -8,12 +13,3 @@ board_prepare() {
>>  board_prebuild() {
>>  	echo "nothing todo" > /dev/null
>>  }
>> -
>> -board_postbuild() {
>> -    cp
>$target/bin/mpc85xx/openwrt-mpc85xx-generic-tl-wdr4900-v1-squashfs-factory.bin
>./bin/
>> -    cp
>$target/bin/mpc85xx/openwrt-mpc85xx-generic-tl-wdr4900-v1-squashfs-sysupgrade.bin
>./bin/
>> -}
>> -
>> -board_clean() {
>> -	/bin/rm -rf $target bin/*$machine*
>> -}
>> \ No newline at end of file
>> diff --git a/bsp/default/root_file_system/etc/sysupgrade.sh
>b/bsp/default/root_file_system/etc/sysupgrade.sh
>> index e954514..a90164d 100755
>> --- a/bsp/default/root_file_system/etc/sysupgrade.sh
>> +++ b/bsp/default/root_file_system/etc/sysupgrade.sh
>> @@ -1,21 +1,25 @@
>>  #!/bin/sh
>> +cd /tmp/
>>  
>> -BOARD=`uci get board.model.name`
>> +. /etc/firmware_release
>>  
>> -case $BOARD in
>> -    tl-wdr4900-v1 )
>> -        SOC="mpc85xx" ;;
>> -    * )
>> -        SOC="ar71xx" ;;
>> -esac
>> +BOARD=$(uci get board.model.name)
>> +echo -ne "\nHardware: $BOARD\n"
>>  
>> -FILE="openwrt-${SOC}-generic-${BOARD}-squashfs-sysupgrade.bin"
>> +wget $(uci get firmware.upgrade.path)/release.nfo
>> +if [ ! -f release.nfo ]; then
>> +  echo -ne "Latest release information not found. Please try to
>update manually.\n\n"
>> +  exit 1
>> +fi
>> +VERSION=$(grep -Po '(?<=^VERSION:).*' release.nfo)
>> +rm -f release.nfo
>> +echo -ne "Firmware found on server: $VERSION\n"
>>  
>> -echo -ne "\nHardware: $BOARD\n"
>> +FILE="fff-${FIRMWARE_COMMUNITY}_${VERSION}_${BOARD}-sysupgrade.bin"
>>  echo -ne "Downloading $FILE\n\n"
>> -cd /tmp/
>>  wget $(uci get firmware.upgrade.path)/${FILE}
>>  wget $(uci get firmware.upgrade.path)/${FILE}.md5
>> +
>>  echo -ne "\ndone. Comparing md5 sums: "
>>  md5sum -c ${FILE}.md5
>>  ret=$?
>> @@ -32,4 +36,4 @@ else
>>          [Nn]|* ) echo -ne "\nAborting firmware upgrade.\n\n"; rm -f
>${FILE}*; exit 0;;
>>      esac
>>    done
>> -fi
>> \ No newline at end of file
>> +fi
>> diff --git a/buildscript b/buildscript
>> index fcc3f3d..ded4c82 100755
>> --- a/buildscript
>> +++ b/buildscript
>> @@ -268,12 +268,27 @@ config() {
>>      cd "$opath"
>>  }
>>  
>> +cp_firmware() {
>> +    for image in ${images[@]}; do
>> +        filename_build=$(echo $image | sed -e
>"s/openwrt/${community}_${version}/")
>> +        if [[ -n "$chipset" ]] ; then
>> +          filename_build=$(echo $filename_build | sed -e
>"s/${chipset}//")
>> +        fi
>
>Mir ist nicht klar fuer was die "Chipset"-Abfrage gut ist, da Chipset
>doch immer gesetzt ist.
>Wieso hast du ueberhaupt das ganze Umbenennen der Images von v7 auf v8
>geaendert?
>Die Variante in v7 mit den "Board"-Namen erschien mir deutlich
>schlanker.
>Habe ich Einwaende von anderen verpasst?
>
>Noch als Tipp, es geht mit Bash auch ohne sed, Beispiel:
>
>string="stirng" ; echo "${string//ir/ri}"
>
>
>> +        cp "$target/bin/${chipset}/$image" "./bin/$filename_build"
>> +
>> +        image_factory="$(echo $image | sed -e
>'s/sysupgrade/factory/')"
>> +        if [[ -f "$target/bin/${chipset}/$image_factory" ]]; then
>> +          filename_build_factory="$(echo $filename_build | sed -e
>'s/sysupgrade/factory/')"
>> +          cp "$target/bin/${chipset}/$image_factory"
>"./bin/$filename_build_factory"
>> +        fi
>> +    done
>> +}
>> +
>>  postbuild() {
>> -    board_postbuild
>> +    cp_firmware
>>  }
>>  
>>  clean() {
>> -    board_clean
>>      /bin/rm -rf bin $builddir src/openwrt
>>  
>>      # remove downloaded package feeds
>> -- 
>> 2.1.4
>
>
>Gruss
>-Steffen
>
>-- 
>Hermes powered by Manjaro Linux (Linux 4.4.5)
>
>Best regards, Steffen Pankratz.
>
>
>------------------------------------------------------------------------
>
>-- 
>franken-dev mailing list
>franken-dev at freifunk.net
>http://lists.freifunk.net/mailman/listinfo/franken-dev-freifunk.net
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://lists.freifunk.net/pipermail/franken-dev-freifunk.net/attachments/20160320/5e0a9030/attachment-0002.html>


Mehr Informationen über die Mailingliste franken-dev