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

mayosemmel mayosemmel at googlemail.com
So Mär 20 15:53:10 CET 2016


Hi Tobias,

bin grad auch nur mobil dabei.
Brauchst nichts machen, die 2 kleinen Anmerkungen arbeite ich da noch ein. 
Gruß Jan

Gesendet von meinem Windows 10 Phone

Von: Tobias Klaus
Gesendet: Sonntag, 20. März 2016 14:28
An: Steffen Pankratz; franken-dev at freifunk.net
Betreff: Re: [PATCH v8 1/3] use custom names for binary builds. fixes #9

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 Ch!
 ipset
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

-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://lists.freifunk.net/pipermail/franken-dev-freifunk.net/attachments/20160320/e6514a94/attachment-0002.html>


Mehr Informationen über die Mailingliste franken-dev