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

Steffen Pankratz kratz00 at gmx.de
So Mär 20 11:43:33 CET 2016


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.
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : nicht verfügbar
Dateityp    : application/pgp-signature
Dateigröße  : 181 bytes
Beschreibung: OpenPGP digital signature
URL         : <http://lists.freifunk.net/pipermail/franken-dev-freifunk.net/attachments/20160320/cf2c3ee6/attachment-0002.sig>


Mehr Informationen über die Mailingliste franken-dev