#!/bin/sh # shellcheck disable=SC2086 common=$(dirname "$(readlink -f "$0")") . "$common/lib.sh" # shellcheck disable=SC1091 . "$TARGET_DIR/etc/os-release" # The INFIX_* variables may be composed from BR2_* variables, # so we source them last. load_cfg BR2_ARCH load_cfg BR2_DEFCONFIG load_cfg BR2_EXTERNAL_INFIX_PATH load_cfg BR2_TARGET_ROOTFS load_cfg INFIX_ID load_cfg INFIX_COMPATIBLE # The default IMAGE_ID is infix-$BR2_ARCH but can be overridden # for imaage names, and compat strings, like infix-r2s if [ -n "$IMAGE_ID" ]; then NAME="$IMAGE_ID" else NAME="$INFIX_ID"-$(echo "$BR2_ARCH" | tr _ - | sed 's/x86-64/x86_64/') fi diskimg=disk.qcow2 ver() { if [ -n "$INFIX_RELEASE" ]; then printf -- "-%s" "${INFIX_RELEASE#v}" return fi } load_cfg SIGN_ENABLED if [ "$SIGN_ENABLED" = "y" ]; then load_cfg BR2_ARCH load_cfg SIGN_KEY ixmsg "Signing SquashFS Image" $common/sign.sh $BR2_ARCH $SIGN_KEY ixmsg "Creating RAUC Update Bundle" $common/mkrauc.sh "$NAME$(ver)" $INFIX_COMPATIBLE $SIGN_KEY fi load_cfg DISK_IMAGE if [ "$DISK_IMAGE" = "y" ]; then ixmsg "Creating Disk Image" diskimg="${NAME}-disk$(ver).qcow2" bootcfg= if [ "$DISK_IMAGE_BOOT_DATA" ]; then bootcfg="-b $DISK_IMAGE_BOOT_DATA -B $DISK_IMAGE_BOOT_OFFSET" fi if [ "$BR2_TARGET_ROOTFS_SQUASHFS" != "y" ] && \ [ ! -f "$BINARIES_DIR/rootfs.squashfs" ]; then ixmsg " Injecting $DISK_IMAGE_RELEASE_URL" archive="$BINARIES_DIR/$(basename $DISK_IMAGE_RELEASE_URL)" [ -f "$archive" ] || wget -O"$archive" "$DISK_IMAGE_RELEASE_URL" tar -xa --strip-components=1 -C "$BINARIES_DIR" -f "$archive" fi $common/mkrauc-status.sh "$BINARIES_DIR/${NAME}.pkg" >"$BINARIES_DIR/rauc.status" $common/mkdisk.sh -a $BR2_ARCH -n $diskimg -s $DISK_IMAGE_SIZE $bootcfg fi load_cfg SDCARD_AUX if [ "$SDCARD_AUX" = "y" ]; then ixmsg "Creating initial rauc.status" $common/mkrauc-status.sh "$BINARIES_DIR/${NAME}.pkg" >"$BINARIES_DIR/rauc.status" ixmsg "Creating aux.ext4 for sdcard.img" $common/mkaux.sh fi load_cfg GNS3_APPLIANCE if [ "$GNS3_APPLIANCE" = "y" ]; then ixmsg "Creating GNS3 Appliance, $GNS3_APPLIANCE_RAM MiB with $GNS3_APPLIANCE_IFNUM ports" $common/mkgns3a.sh $BR2_ARCH $NAME $diskimg $GNS3_APPLIANCE_RAM $GNS3_APPLIANCE_IFNUM fi load_cfg FIT_IMAGE if [ "$FIT_IMAGE" = "y" ]; then ixmsg "Creating Traditional FIT Image" $common/mkfit.sh fi # Only for regular builds, not bootloader-only builds if [ "$BR2_TARGET_ROOTFS_SQUASHFS" = "y" ]; then rel=$(ver) ln -sf rootfs.squashfs "$BINARIES_DIR/${NAME}${rel}.img" if [ -n "$rel" ]; then ln -sf "${NAME}${rel}.img" "$BINARIES_DIR/${NAME}.img" fi cp "$BR2_EXTERNAL_INFIX_PATH/board/common/rootfs/usr/bin/onieprom" "$BINARIES_DIR/" # Menuconfig support for modifying Qemu args in release tarballs cp "$BR2_EXTERNAL_INFIX_PATH/board/common/qemu/qemu.sh" "$BINARIES_DIR/" sed -e "s/@ARCH@/QEMU_$BR2_ARCH/" \ -e "s/@DISK_IMG@/$diskimg/" \ < "$BR2_EXTERNAL_INFIX_PATH/board/common/qemu/Config.in.in" \ > "$BINARIES_DIR/Config.in" rm -f "$BINARIES_DIR/qemu.cfg" CONFIG_="CONFIG_" BR2_CONFIG="$BINARIES_DIR/qemu.cfg" \ "$O/build/buildroot-config/conf" --olddefconfig "$BINARIES_DIR/Config.in" rm -f "$BINARIES_DIR/qemu.cfg.old" "$BINARIES_DIR/.config.old" # Quick intro for beginners, with links to more information cp "$BR2_EXTERNAL_INFIX_PATH/board/common/README.txt" "$BINARIES_DIR/" fi