From 39cc232b34479654a4d97f052af14ae6f76f9f64 Mon Sep 17 00:00:00 2001 From: Renato Botelho Date: Mon, 20 Jun 2016 08:52:42 -0300 Subject: Add the hability of building images with custom logos on build scripts --- build.sh | 16 +++++++++-- tools/builder_common.sh | 70 +++++++++++++++++++++++++++++++++++------------ tools/builder_defaults.sh | 3 ++ 3 files changed, 70 insertions(+), 19 deletions(-) diff --git a/build.sh b/build.sh index 61f46ee..0472b52 100755 --- a/build.sh +++ b/build.sh @@ -437,7 +437,13 @@ for _IMGTOBUILD in $_IMAGESTOBUILD; do create_iso_image ;; memstick) - create_memstick_image + if [ -n "${MEMSTICK_VARIANTS}" ]; then + for _variant in ${MEMSTICK_VARIANTS}; do + create_memstick_image ${_variant} + done + else + create_memstick_image + fi ;; memstickserial) create_memstick_serial_image @@ -446,7 +452,13 @@ for _IMGTOBUILD in $_IMAGESTOBUILD; do create_memstick_adi_image ;; fullupdate) - create_Full_update_tarball + if [ -n "${MEMSTICK_VARIANTS}" ]; then + for _variant in ${MEMSTICK_VARIANTS}; do + create_Full_update_tarball ${_variant} + done + else + create_Full_update_tarball + fi ;; nanobsd|nanobsd-vga) if [ "${TARGET}" = "i386" -a "${_IMGTOBUILD}" = "nanobsd" ]; then diff --git a/tools/builder_common.sh b/tools/builder_common.sh index 4c944ed..af68a49 100644 --- a/tools/builder_common.sh +++ b/tools/builder_common.sh @@ -376,9 +376,24 @@ install_default_kernel() { # Creates a full update file create_Full_update_tarball() { + local _variant="$1" + + LOGFILE=${BUILDER_LOGS}/full_update.${TARGET} + if [ "${UPDATES_TARBALL_FILENAME}" = "" ]; then + echo ">>> UPDATES_TARBALL_FILENAME is empty skipping generation of full update image!" | tee -a ${LOGFILE} + return + fi + + local _image_path=${UPDATES_TARBALL_FILENAME} + if [ -n "${_variant}" ]; then + _image_path=$(echo "$_image_path" | \ + sed "s/-Full-Update-/-Full-Update-${_variant}-/") + VARIANTUPDATES="${VARIANTUPDATES}${VARIANTUPDATES:+ }${_image_path}" + fi + mkdir -p $UPDATESDIR - customize_stagearea_for_image "fullupdate" + customize_stagearea_for_image "fullupdate" "" $_variant install_default_kernel ${DEFAULT_KERNEL} rm -rf ${FINAL_CHROOT_DIR}/cf @@ -408,8 +423,10 @@ create_Full_update_tarball() { ${FINAL_CHROOT_DIR}/tmp fi - echo ">>> Creating ${UPDATES_TARBALL_FILENAME} ..." | tee -a ${LOGFILE} - tar --exclude=./dev -czPf ${UPDATES_TARBALL_FILENAME} -C ${FINAL_CHROOT_DIR} . + echo ">>> Creating ${_image_path} ..." | tee -a ${LOGFILE} + tar --exclude=./dev -czPf ${_image_path} -C ${FINAL_CHROOT_DIR} . + + echo ">>> Full Update created: $(LC_ALL=C date)" | tee -a ${LOGFILE} } # Outputs various set variables aka env @@ -1262,7 +1279,8 @@ create_final_staging_area() { customize_stagearea_for_image() { local _image_type="$1" - local _default_config="" + local _default_config="" # filled with $2 below + local _image_variant="$3" if [ -n "$2" ]; then _default_config="$2" @@ -1326,6 +1344,14 @@ customize_stagearea_for_image() { /usr/local/bin/sqlite3 ${_db} "update repodata set value='${_new}' where key='packagesite'" done fi + + if [ -n "$_image_variant" -a \ + -d ${BUILDER_TOOLS}/templates/custom_logos/${_image_variant} ]; then + mkdir -p ${FINAL_CHROOT_DIR}/usr/local/share/${PRODUCT_NAME}/custom_logos + cp -f \ + ${BUILDER_TOOLS}/templates/custom_logos/${_image_variant}/*.png \ + ${FINAL_CHROOT_DIR}/usr/local/share/${PRODUCT_NAME}/custom_logos + fi } create_distribution_tarball() { @@ -1375,6 +1401,7 @@ create_iso_image() { } create_memstick_image() { + local _variant="$1" LOGFILE=${BUILDER_LOGS}/memstick.${TARGET} if [ "${MEMSTICKPATH}" = "" ]; then @@ -1382,26 +1409,33 @@ create_memstick_image() { return fi - customize_stagearea_for_image "memstick" + local _image_path=${MEMSTICKPATH} + if [ -n "${_variant}" ]; then + _image_path=$(echo "$_image_path" | \ + sed "s/-memstick-/-memstick-${_variant}-/") + VARIANTIMAGES="${VARIANTIMAGES}${VARIANTIMAGES:+ }${_image_path}" + fi + + customize_stagearea_for_image "memstick" "" $_variant install_default_kernel ${DEFAULT_KERNEL} echo cdrom > $FINAL_CHROOT_DIR/etc/platform - echo ">>> Creating memstick to ${MEMSTICKPATH}." 2>&1 | tee -a ${LOGFILE} + echo ">>> Creating memstick to ${_image_path}." 2>&1 | tee -a ${LOGFILE} echo "/dev/ufs/${PRODUCT_NAME} / ufs ro 0 0" > ${FINAL_CHROOT_DIR}/etc/fstab echo "kern.cam.boot_delay=10000" >> ${FINAL_CHROOT_DIR}/boot/loader.conf.local create_distribution_tarball - makefs -B little -o label=${PRODUCT_NAME},version=2 ${MEMSTICKPATH} ${FINAL_CHROOT_DIR} + makefs -B little -o label=${PRODUCT_NAME},version=2 ${_image_path} ${FINAL_CHROOT_DIR} if [ $? -ne 0 ]; then - if [ -f ${MEMSTICKPATH} ]; then - rm -f $MEMSTICKPATH + if [ -f ${_image_path} ]; then + rm -f $_image_path fi echo ">>> ERROR: Something wrong happened during MEMSTICK image creation. STOPPING!" | tee -a ${LOGFILE} print_error_pfS fi - MD=$(mdconfig -a -t vnode -f $MEMSTICKPATH) + MD=$(mdconfig -a -t vnode -f $_image_path) # Just in case trap "mdconfig -d -u ${MD}" 1 2 15 EXIT gpart create -s BSD ${MD} 2>&1 >> ${LOGFILE} @@ -1409,7 +1443,7 @@ create_memstick_image() { gpart add -t freebsd-ufs ${MD} 2>&1 >> ${LOGFILE} trap "-" 1 2 15 EXIT mdconfig -d -u ${MD} 2>&1 | tee -a ${LOGFILE} - gzip -qf $MEMSTICKPATH & + gzip -qf $_image_path & _bg_pids="${_bg_pids}${_bg_pids:+ }$!" echo ">>> MEMSTICK created: $(LC_ALL=C date)" | tee -a ${LOGFILE} @@ -2498,7 +2532,7 @@ snapshots_copy_to_staging_nanobsd() { snapshots_copy_to_staging_iso_updates() { local _img="" - for _img in ${ISOPATH} ${MEMSTICKPATH} ${MEMSTICKSERIALPATH} ${MEMSTICKADIPATH}; do + for _img in ${ISOPATH} ${MEMSTICKPATH} ${MEMSTICKSERIALPATH} ${MEMSTICKADIPATH} ${VARIANTIMAGES}; do if [ ! -f "${_img}.gz" ]; then continue fi @@ -2508,11 +2542,13 @@ snapshots_copy_to_staging_iso_updates() { snapshots_create_latest_symlink ${STAGINGAREA}/$(basename ${_img}) done - if [ -f "${UPDATES_TARBALL_FILENAME}" ]; then - create_sha256 ${UPDATES_TARBALL_FILENAME} - cp -l ${UPDATES_TARBALL_FILENAME}* $STAGINGAREA/ 2>/dev/null - snapshots_create_latest_symlink ${STAGINGAREA}/$(basename ${UPDATES_TARBALL_FILENAME}) - fi + for _img in ${UPDATES_TARBALL_FILENAME} ${VARIANTUPDATES}; do + if [ -f "${_img}" ]; then + create_sha256 ${_img} + cp -l ${_img}* $STAGINGAREA/ 2>/dev/null + snapshots_create_latest_symlink ${STAGINGAREA}/$(basename ${_img}) + fi + done if [ -f "${OVAPATH}" ]; then mkdir -p ${STAGINGAREA}/virtualization diff --git a/tools/builder_defaults.sh b/tools/builder_defaults.sh index 02ca407..a3b15a9 100644 --- a/tools/builder_defaults.sh +++ b/tools/builder_defaults.sh @@ -368,6 +368,9 @@ export MEMSTICKPATH=${MEMSTICKPATH:-"${IMAGES_FINAL_DIR}/${PRODUCT_NAME}${PRODUC export MEMSTICKSERIALPATH=${MEMSTICKSERIALPATH:-"${IMAGES_FINAL_DIR}/${PRODUCT_NAME}${PRODUCT_NAME_SUFFIX}-memstick-serial-${PRODUCT_VERSION}${PRODUCT_REVISION:+-p}${PRODUCT_REVISION}-${TARGET}${TIMESTAMP_SUFFIX}.img"} export MEMSTICKADIPATH=${MEMSTICKADIPATH:-"${IMAGES_FINAL_DIR}/${PRODUCT_NAME}${PRODUCT_NAME_SUFFIX}-memstick-ADI-${PRODUCT_VERSION}${PRODUCT_REVISION:+-p}${PRODUCT_REVISION}-${TARGET}${TIMESTAMP_SUFFIX}.img"} export OVAPATH=${OVAPATH:-"${IMAGES_FINAL_DIR}/${PRODUCT_NAME}${PRODUCT_NAME_SUFFIX}-${PRODUCT_VERSION}${PRODUCT_REVISION:+-p}${PRODUCT_REVISION}-${TARGET}${TIMESTAMP_SUFFIX}.ova"} +export MEMSTICK_VARIANTS=${MEMSTICK_VARIANTS:-} +export VARIANTIMAGES="" +export VARIANTUPDATES="" # set full-update update filename export UPDATES_TARBALL_FILENAME=${UPDATES_TARBALL_FILENAME:-"${UPDATESDIR}/${PRODUCT_NAME}${PRODUCT_NAME_SUFFIX}-Full-Update-${PRODUCT_VERSION}${PRODUCT_REVISION:+-p}${PRODUCT_REVISION}-${TARGET}${TIMESTAMP_SUFFIX}.tgz"} -- cgit v1.1