X-Git-Url: http://git.grml.org/?p=grml-live.git;a=blobdiff_plain;f=grml-live;h=020e48335531896f1d30c13606aabf30fabeef53;hp=b98658bac9801853a3a6951da7cc123fdd181845;hb=d501c11085b6c048bf9f4bd186f5ac8d267b9ff6;hpb=3abf94382ad75a47579a339e084634171ea74532 diff --git a/grml-live b/grml-live index b98658b..020e483 100755 --- a/grml-live +++ b/grml-live @@ -23,8 +23,10 @@ fi # disable for now since it seems to cause some problems # set -e +# The line following this line is patched by debian/rules. +GRML_LIVE_VERSION='***UNRELEASED***' + # global variables -GRML_LIVE_VERSION='0.17.0' PN="$(basename $0)" CMDLINE="$0 $@" ADDONS_LIST_FILE='/boot/isolinux/addons_list.cfg' @@ -39,7 +41,7 @@ $PN - build process script for generating a (grml based) Linux Live-ISO Usage: $PN [options, see as follows] -a architecture; available values: i386 and amd64 - -A ensure clean build and pack artifacts + -A clean build directories before and after running -b build the ISO without updating the chroot via FAI -B build the ISO without touching the chroot (skips cleanup) -c classes to be used for building the ISO via FAI @@ -173,7 +175,7 @@ bailout() { umount_all [ -n "$1" ] && EXIT="$1" || EXIT="1" [ -n "$2" ] && eerror "$2">&2 - if [ -n "$PACK_ARTIFACTS" ]; then + if [ -n "$CLEAN_ARTIFACTS" ]; then log "Cleaning up" einfo "Cleaning up" [ -n "${BUILD_OUTPUT}" -a -d "${BUILD_OUTPUT}" ] && rm -r "${BUILD_OUTPUT}" @@ -189,7 +191,6 @@ bailout() { [ -n "${ISO_OUTPUT}" -a -d "${ISO_OUTPUT}" ] && chown -R "${CHOWN_USER}:" "${ISO_OUTPUT}" [ -n "${LOG_OUTPUT}" -a -d "${LOG_OUTPUT}" ] && chown -R "${CHOWN_USER}:" "${LOG_OUTPUT}" [ -n "${NETBOOT}" -a -d "${NETBOOT}" ] && chown -R "${CHOWN_USER}:" "${NETBOOT}" - [ -n "${CHROOT_ARCHIVE}" -a -f "${CHROOT_ARCHIVE}" ] && chown -R "${CHOWN_USER}:" "${CHROOT_ARCHIVE}" eend 0 fi log "------------------------------------------------------------------------------" @@ -293,7 +294,7 @@ copy_addon_file() { while getopts "a:C:c:d:D:e:g:i:I:o:r:s:t:U:v:AbBFnNqQuVz" opt; do case "$opt" in a) ARCH="$OPTARG" ;; - A) PACK_ARTIFACTS=1 ;; + A) CLEAN_ARTIFACTS=1 ;; b) BUILD_ONLY=1 ;; B) BUILD_DIRTY=1 ;; c) CLASSES="$OPTARG" ;; @@ -374,7 +375,6 @@ fi [ -n "$OUTPUT" ] || OUTPUT='/grml/grml-live' [ -n "$BUILD_OUTPUT" ] || BUILD_OUTPUT="$OUTPUT/grml_cd" [ -n "$CHROOT_OUTPUT" ] || CHROOT_OUTPUT="$OUTPUT/grml_chroot" -[ -n "$CHROOT_ARCHIVE" ] || CHROOT_ARCHIVE="$OUTPUT/$(basename $CHROOT_OUTPUT).tgz" [ -n "$ISO_OUTPUT" ] || ISO_OUTPUT="$OUTPUT/grml_isos" [ -n "$LOG_OUTPUT" ] || LOG_OUTPUT="$OUTPUT/grml_logs" [ -n "$REPORTS" ] || REPORTS="${LOG_OUTPUT}/reports/" @@ -438,7 +438,7 @@ if [ -z "$FORCE" ] ; then [ -n "$SQUASHFS_ZLIB" ] && echo " Using ZLIB (instead of LZMA/XZ) compression." [ -n "$SQUASHFS_OPTIONS" ] && echo " Using SQUASHFS_OPTIONS ${SQUASHFS_OPTIONS}" [ -n "$VERBOSE" ] && echo " Using VERBOSE mode." - [ -n "$PACK_ARTIFACTS" ] && echo " Will prepare packed artifacts and ensure clean build." + [ -n "$CLEAN_ARTIFACTS" ] && echo " Will clean output before and after running." [ -n "$UPDATE" ] && echo " Executing UPDATE instead of fresh installation." if [ -n "$BOOTSTRAP_ONLY" ] ; then echo " Bootstrapping only and not building (files for) ISO." @@ -460,7 +460,7 @@ fi # }}} # clean up before start {{{ -if [ -n "${PACK_ARTIFACTS}" ]; then +if [ -n "${CLEAN_ARTIFACTS}" ]; then echo "Wiping old artifacts" [ -n "${CHROOT_OUTPUT}" -a -d "${CHROOT_OUTPUT}" ] && rm -r "${CHROOT_OUTPUT}" [ -n "${BUILD_OUTPUT}" -a -d "${BUILD_OUTPUT}" ] && rm -r "${BUILD_OUTPUT}" @@ -557,12 +557,6 @@ fi extract_iso # }}} -# cleanup CHROOT_ARCHIVE now {{{ -if [ -n "${PACK_ARTIFACTS}" ]; then - [ -n "${CHROOT_ARCHIVE}" -a -f "${CHROOT_ARCHIVE}" ] && rm "${CHROOT_ARCHIVE}" -fi -# }}} - # on-the-fly configuration {{{ if [ -n "$FAI_DEBOOTSTRAP" ] ; then sed "s#^FAI_DEBOOTSTRAP=.*#FAI_DEBOOTSTRAP=\"$FAI_DEBOOTSTRAP\"#" "$NFSROOT_CONF" | sponge "$NFSROOT_CONF" @@ -813,7 +807,7 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then # during build, so check for the file: INITRD="$(ls $CHROOT_OUTPUT/boot/initrd* 2>/dev/null| grep -v '.bak$' | sort -r | head -1)" if [ -n "$INITRD" ] ; then - cp $INITRD "$BUILD_OUTPUT"/boot/"${SHORT_NAME}"/initrd.gz + cp $INITRD "$BUILD_OUTPUT"/boot/"${SHORT_NAME}"/initrd.img find $CHROOT_OUTPUT/boot/ -name initrd\*.bak -exec rm {} \; else log "Error: No initrd found inside $CHROOT_OUTPUT/boot/ - Exiting" @@ -823,7 +817,7 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then KERNEL_IMAGE="$(ls $CHROOT_OUTPUT/boot/vmlinuz* 2>/dev/null | sort -r | head -1)" if [ -n "$KERNEL_IMAGE" ] ; then - cp "$KERNEL_IMAGE" "$BUILD_OUTPUT"/boot/"${SHORT_NAME}"/linux26 + cp "$KERNEL_IMAGE" "$BUILD_OUTPUT"/boot/"${SHORT_NAME}"/vmlinuz else log "Error: No kernel found inside $CHROOT_OUTPUT/boot/ - Exiting" eerror "Error: No kernel found inside $CHROOT_OUTPUT/boot/ - Exiting" ; eend 1 @@ -889,7 +883,7 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then if ! [ -d "${BUILD_OUTPUT}/boot/grub" ] ; then mkdir -p "${BUILD_OUTPUT}/boot/grub" fi - cp ${TEMPLATE_DIRECTORY}/boot/grub/* "$BUILD_OUTPUT"/boot/grub/ + cp -a ${TEMPLATE_DIRECTORY}/boot/grub/* "$BUILD_OUTPUT"/boot/grub/ # copy grub files from target cp -a "${CHROOT_OUTPUT}"/usr/lib/grub/*-pc/*.mod "${BUILD_OUTPUT}"/boot/grub/ @@ -957,6 +951,14 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then fi done + for param in ARCH DATE DISTRI_INFO DISTRI_NAME DISTRI_SPLASH GRML_NAME SQUASHFS_NAME \ + RELEASE_INFO SHORT_NAME VERSION ; do + for file in $(find "${BUILD_OUTPUT}" -name "*%$param%*") ; do + value="$(eval echo '$'"$param")" + mv ${file} ${file/\%${param}\%/$value} + done + done + # adjust bootsplash accordingly but make sure the string has the according lenght SQUASHFS_NAME="$(cut_string 20 "$SQUASHFS_NAME")" SQUASHFS_NAME="$(extend_string_end 20 "$SQUASHFS_NAME")" @@ -1381,19 +1383,17 @@ create_netbootpackage() { mkdir -p "$WORKING_DIR" - cp "${CHROOT_OUTPUT}"/boot/vmlinuz-* "$WORKING_DIR"/linux26 + cp "${CHROOT_OUTPUT}"/boot/vmlinuz-* "$WORKING_DIR"/vmlinuz cp "${CHROOT_OUTPUT}"/boot/initrd.img-* "$WORKING_DIR"/initrd.img cp "${CHROOT_OUTPUT}"/usr/lib/syslinux/pxelinux.0 "${WORKING_DIR}/pxelinux.0" + mkdir -p "${WORKING_DIR}/pxelinux.cfg" if [ -r "${BUILD_OUTPUT}/boot/isolinux/netboot.cfg" ] ; then - mkdir -p "${WORKING_DIR}/pxelinux.cfg/default" cp "${BUILD_OUTPUT}/boot/isolinux/netboot.cfg" "${WORKING_DIR}/pxelinux.cfg/default" else ewarn "File ${BUILD_OUTPUT}/boot/isolinux/netboot.cfg not found." ; eend 0 fi - mkdir -p "${WORKING_DIR}/pxelinux.cfg" - if tar -C "$OUTPUTDIR" -jcf "${OUTPUT_FILE}" "grml_netboot_package_${GRML_NAME}_${VERSION}" ; then sha1sum "${OUTPUT_FILE}" > "${OUTPUT_FILE}.sha1" einfo "Generated netboot package ${OUTPUT_FILE}" ; eend 0 @@ -1408,16 +1408,6 @@ create_netbootpackage() { create_netbootpackage # }}} -# pack artifacts {{{ -if [ -n "$PACK_ARTIFACTS" ]; then - log "Packing artifcats" - einfo "Packing artifacts" - [ -f "${CHROOT_ARCHIVE}" ] && rm -r "${CHROOT_ARCHIVE}" - tar -c -a -f ${CHROOT_ARCHIVE} --preserve-permissions -C "$(dirname ${CHROOT_OUTPUT})" "$(basename ${CHROOT_OUTPUT})" - eend 0 -fi -# }}} - # log build information to database if grml-live-db is installed and enabled {{{ dpkg_to_db() { if [ -d /usr/share/grml-live-db ] ; then