[PATCH v7 1/2] use custom names for binary builds. fixes #9

Tim Niemeyer tim at tn-x.org
Mo Mär 14 21:47:08 CET 2016


Moin Jan

Am Sonntag, den 13.03.2016, 22:04 +0100 schrieb Jan Kraus:
> From: mojoaxel <alex at wunschik.net>
Du hast da jetzt so viel umgeschrieben.. Das würde ich einfach in einen
Kommentar umwandeln.

> Signed-off-by: mojoaxel <alex at wunschik.net>
Das sollte dann ggf allerdings weg.

> Signed-off-by: Jan Kraus <mayosemmel at gmail.com>
> ---
>  bsp/board_ar71xx.bsp                           | 50 ++++++++++----------------
>  bsp/board_wdr4300.bsp                          | 29 +++++----------
>  bsp/board_wdr4900.bsp                          | 13 +++----
>  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..486ba55 100644
> --- a/bsp/board_ar71xx.bsp
> +++ b/bsp/board_ar71xx.bsp
> @@ -1,5 +1,24 @@
>  machine=ar71xx
> +chipset=ar71xx
>  target=$builddir/$machine
> +boards=(
> +    ubnt-nano-m
> +    ubnt-loco-m-xw
> +    tl-wr740n-v4
> +    tl-wr741nd-v2
> +    tl-wr741nd-v4
> +    tl-wr841nd-v7
> +    tl-wr841n-v8
> +    tl-wr841n-v9
> +    tl-wr841n-v10
> +    tl-wr842n-v2
> +    tl-wr1043nd-v1
> +    tl-wr1043nd-v2
> +    tl-wr1043nd-v3
> +    tl-wa850re-v1
> +    tl-wa860re-v1
> +    gl-ar150
> +)
>  
>  board_prepare() {
>      echo "nothing todo" > /dev/null
> @@ -8,34 +27,3 @@ board_prepare() {
>  board_prebuild() {
>      echo "nothing todo" > /dev/null
>  }
Theoretisch sind diese eines jeden bsp's auch unnötig. Das ist aber ein
anderer Patch!

> -
> -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..8504061 100644
> --- a/bsp/board_wdr4300.bsp
> +++ b/bsp/board_wdr4300.bsp
> @@ -1,28 +1,17 @@
>  machine=wdr4300
> +chipset=ar71xx
>  target=$builddir/$machine
> +boards=(
> +    tl-wdr3500-v1
> +    tl-wdr3600-v1
> +    tl-wdr4300-v1
> +    tl-wdr4310-v1
> +)
>  
>  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..3982f81 100644
> --- a/bsp/board_wdr4900.bsp
> +++ b/bsp/board_wdr4900.bsp
> @@ -1,5 +1,9 @@
>  machine=wdr4900
> +chipset=mpc85xx
>  target=$builddir/$machine
> +boards=(
> +    tl-wdr4900-v1
> +)
>  
>  board_prepare() {
>  	echo "nothing todo" > /dev/null
> @@ -8,12 +12,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..ecb2788 100755
> --- a/buildscript
> +++ b/buildscript
> @@ -268,12 +268,27 @@ config() {
>      cd "$opath"
>  }
>  
> +cp_firmware() {
> +    for board in ${boards[@]}; do
> +        filename_openwrt=openwrt-${chipset}-generic-${board}-squashfs
> +        filename_build=fff-${community}_${version}_${board}
> +
> +    if [ -f $target/bin/${chipset}/${filename_openwrt}-factory.bin ]
> +    then
> +        cp $target/bin/${chipset}/${filename_openwrt}-factory.bin ./bin/${filename_build}_factory.bin
> +    fi
> +        cp $target/bin/${chipset}/${filename_openwrt}-sysupgrade.bin ./bin/${filename_build}_sysupgrade.bin
> +    done
> +}
> +
>  postbuild() {
> -    board_postbuild
> +    cp_firmware
> +
> +    # add version info at the top of the release file; needed by etc/sysupgrade.sh
> +    echo -e "VERSION:$version" > ./bin/release.nfo
Das hat hier mMn nichts zu suchen. Die Datei würde dann ja bei buildall
mit jedem Build angelegt werden.

Ich würde das hier einfach weg lassen und in einem separaten Patch
vielleicht ein buildrelease() bauen. Das könnte dann auch das Erzeugen
der md5 übernehmen. Und vielleicht sogar ein Release-Letter E-Mail
Template erzeugen.

Letztlich gehört das release.nfo Ding in den Release Prozess und der ist
bisher quasi gar nicht im buildscript abgebildet.

Tim

>  }
>  
>  clean() {
> -    board_clean
>      /bin/rm -rf bin $builddir src/openwrt
>  
>      # remove downloaded package feeds
> -- 
> 2.1.4
> 

-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 473 bytes
Beschreibung: This is a digitally signed message part
URL         : <http://lists.freifunk.net/pipermail/franken-dev-freifunk.net/attachments/20160314/86c22734/attachment-0002.sig>


Mehr Informationen über die Mailingliste franken-dev