C) CONFIG="$OPTARG" ;;
g) GRML_NAME="$OPTARG" ;;
i) ISO_NAME="$OPTARG" ;;
- o) OUTPUT="$OPTARG"
- CHROOT_OUTPUT="$OUTPUT/grml_chroot"
- BUILD_OUTPUT="$OUTPUT/grml_cd"
- ISO_OUTPUT="$OUTPUT/grml_isos"
- ;;
+ o) OUTPUT="$OPTARG" ;;
q) SKIP_MKSQUASHFS=1 ;;
r) RELEASENAME="$OPTARG" ;;
s) SUITE="$OPTARG" ;;
[ -n "$OUTPUT" ] || bailout 1 "Error: \$OUTPUT unset, please set it in $LIVE_CONF or
specify it on the command line using the -o option."
+# set subdirectories according to $OUTPUT:
+CHROOT_OUTPUT="$OUTPUT/grml_chroot"
+BUILD_OUTPUT="$OUTPUT/grml_cd"
+ISO_OUTPUT="$OUTPUT/grml_isos"
+
# trim characters that are known to cause problems inside $GRML_NAME;
# for example isolinux does not like '-' inside the directory name
[ -n "$GRML_NAME" ] && export SHORT_GRML_NAME="$(echo $GRML_NAME | tr -d ',./;\- ')"
done
fi
+# validate whether the specified architecture class matches the
+# architecture (option), otherwise installation of kernel will fail
+if echo $CLASSES | grep -qi i386 ; then
+ if ! [[ "$ARCH" == "i386" ]] ; then
+ eerror "You specified the I386 class but are trying to build something else (AMD64?)."
+ eerror "-> Either invoke grml-live with '-i i386' or adjust the architecture class. Exiting."
+ bailout
+ fi
+elif echo $CLASSES | grep -qi amd64 ; then
+ if ! [[ "$ARCH" == "amd64" ]] ; then
+ eerror "You specified the AMD64 class but are trying to build something else (I386?)."
+ eerror "-> Either invoke grml-live with '-i amd64' or adjust the architecture class. Exiting."
+ bailout
+ fi
+fi
+
# set $ARCH
[ -n "$ARCH" ] || ARCH="$(dpkg --print-architecture)"
if grep -q -- 'FAI_DEBOOTSTRAP_OPTS.*--arch' "$NFSROOT_CONF" ; then
else
[ -n "$CHROOT_OUTPUT" ] || CHROOT_OUTPUT="$OUTPUT/grml_chroot"
+ # inform fai about the suite we build
+ if [ -n "$SUITE" ] ; then
+ [ -d "$CHROOT_OUTPUT/etc/grml" ] || mkdir -p "$CHROOT_OUTPUT/etc/grml"
+ echo "SUITE=$SUITE" > "$CHROOT_OUTPUT/etc/grml/grml-live-build-info"
+ fi
+
if [ -n "$UPDATE" -o -n "$BUILD_ONLY" ] ; then
FAI_ACTION=softupdate
else
fi
if [ -f "${ISO_OUTPUT}/${ISO_NAME}" -a -z "$UPDATE" -a -z "$BUILD_ONLY" -a -z "$BUILD_DIRTY" ] ; then
+ log "$ISO_OUTPUT exists already, skipping stage 'iso build'"
+ ewarn "$ISO_OUTPUT exists already, skipping stage 'iso build'" ; eend 0
+else
+ mkdir -p "$ISO_OUTPUT" || bailout 6 "Problem with creating $ISO_OUTPUT for stage 'iso build'"
# support mkisofs as well as genisoimage
if which mkisofs >/dev/null 2>&1; then
- MKISOFS=mkisofs
+ MKISOFS='mkisofs'
elif which genisoimage >/dev/null 2>&1; then
- MKISOFS=genisoimage
+ MKISOFS='genisoimage'
else
log "Sorry, neither mkisofs nor genisoimage available - can not create ISO."
eerror "Sorry, neither mkisofs nor genisoimage available - can not create ISO." ; eend 1
bailout
fi
- log "$ISO_OUTPUT exists already, skipping stage 'iso build'"
- ewarn "$ISO_OUTPUT exists already, skipping stage 'iso build'" ; eend 0
-else
- mkdir -p "$ISO_OUTPUT" || bailout 6 "Problem with creating $ISO_OUTPUT for stage 'iso build'"
-
CURRENT_DIR=$(pwd)
if cd "$BUILD_OUTPUT" ; then
log "$MKISOFS -V '${GRML_NAME} ${VERSION}' -publisher 'grml-live | grml.org' -l -r -J -no-emul-boot -boot-load-size 4 -boot-info-table -b $BOOT_FILE -o ${ISO_OUTPUT}/${ISO_NAME} ."
- $MKISOFS -V "${GRML_NAME} ${VERSION}" -publisher 'grml-live | grml.org' \
+ "$MKISOFS" -V "${GRML_NAME} ${VERSION}" -publisher 'grml-live | grml.org' \
-l -r -J -no-emul-boot -boot-load-size 4 -boot-info-table \
-b $BOOT_FILE -no-pad \
-o "${ISO_OUTPUT}/${ISO_NAME}" . ; RC=$?
# finalize {{{
[ -n "$start_seconds" ] && SECONDS="$[$(cut -d . -f 1 /proc/uptime)-$start_seconds]" || SECONDS="unknown"
-einfo "Sucessfully finished execution of $PN [running ${SECONDS} seconds]" ; eend 0
-log "Sucessfully finished execution of $PN [running ${SECONDS} seconds]"
+einfo "Successfully finished execution of $PN [running ${SECONDS} seconds]" ; eend 0
+log "Successfully finished execution of $PN [running ${SECONDS} seconds]"
bailout 0
# }}}