live-build/scripts/build/source_hdd

152 lines
3.3 KiB
Plaintext
Raw Normal View History

2007-09-23 08:04:46 +00:00
#!/bin/sh
## live-build(7) - System Build Scripts
## Copyright (C) 2016-2020 The Debian Live team
## Copyright (C) 2006-2015 Daniel Baumann <mail@daniel-baumann.ch>
##
## This program comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
## This is free software, and you are welcome to redistribute it
## under certain conditions; see COPYING for details.
2007-09-23 08:04:46 +00:00
set -e
2007-09-23 08:05:11 +00:00
# Including common functions
[ -e "${LIVE_BUILD}/scripts/build.sh" ] && . "${LIVE_BUILD}/scripts/build.sh" || . /usr/lib/live/build.sh
2007-09-23 08:04:46 +00:00
2007-09-23 08:05:11 +00:00
# Setting static variables
DESCRIPTION="Build source image"
2007-09-23 08:04:48 +00:00
USAGE="${PROGRAM} [--force]"
# Processing arguments and configuration files
Init_config_data "${@}"
2007-09-23 08:04:46 +00:00
if [ "${LB_SOURCE}" != "true" ]
2007-09-23 08:04:46 +00:00
then
exit 0
fi
if ! In_list hdd ${LB_SOURCE_IMAGES}; then
2008-06-19 17:56:11 +00:00
exit 0
2007-09-23 08:05:11 +00:00
fi
Echo_message "Begin building source hdd image..."
2007-09-23 08:05:11 +00:00
# Requiring stage file
Require_stagefiles config source_debian
2007-09-23 08:05:11 +00:00
# Checking stage file
Check_stagefile
2007-09-23 08:05:11 +00:00
2020-03-13 15:19:59 -01:00
# Acquire lock file
Acquire_lockfile
2007-09-23 08:05:11 +00:00
# Checking depends
Check_package chroot /sbin/mkdosfs dosfstools
Check_package chroot /sbin/parted parted
Check_package host /sbin/fdisk fdisk
remove obsolete loop-aes-utils related losetup hack 677415f6d7efc1e5b888570d70af311d2900c69c (2007) in v1.0~a2-1 added a hack relating to the loop-aes-utils package and losetup. this commit bundled a bunch of changes, it was not specific to the hack, and so info about the hack is limited to a brief comment included within the related change in defaults: ``` # Workaround for loop-aes-utils divertion # (loop-aes-utils' losetup lacks features). ``` though it is very similar to the removed fdisk hack in that it seems that one package may replace a binary from another, moving the original to a new location, and this hack gives the user the opportunity to select the original instead of the one put in its place, for use in LB. the comment mentions a package called loop-aes-utils as being the package that performs such a diversion, and that the need for the hack was that losetup itself lacked features, presumably encryption support, and it is clear that it is the losetup binary that is the focus of the diversion. looking into the history of loop-aes-utils a little, this package was dropped from debian back in 2012 (#680748), favouring encrytion support of dm-crypt/cryptsetup. double checking file contents of packages, only the mount package carries an /sbin/losetup file, so presumably this means that dm-setup/cryptsetup do not perform such a diversion of losetup (i.e. their use is exclusively done directly). since the possible diversion is simply gone, that completely removes any point in having the hack of giving users choice between losetup and the diverted one. so let's remove this obsolete hack...
2020-03-11 17:43:12 -01:00
Check_package host /sbin/losetup mount
2007-09-23 08:05:11 +00:00
# Installing depends
Install_packages
2007-09-23 08:05:11 +00:00
# Remove old source
if [ -f ${LB_IMAGE_NAME}-source.img ]
2007-09-23 08:05:11 +00:00
then
rm -f ${LB_IMAGE_NAME}-source.img
2007-09-23 08:05:11 +00:00
fi
# Everything which comes here needs to be cleaned up,
DU_DIM="$(du -ms source | cut -f1)"
REAL_DIM="$(Calculate_partition_size ${DU_DIM} ${LB_BINARY_FILESYSTEM})"
dd if=/dev/zero of=${LB_IMAGE_NAME}-source.img bs=1024k count=0 seek=${REAL_DIM}
MAKEDEV=false
remove obsolete loop-aes-utils related losetup hack 677415f6d7efc1e5b888570d70af311d2900c69c (2007) in v1.0~a2-1 added a hack relating to the loop-aes-utils package and losetup. this commit bundled a bunch of changes, it was not specific to the hack, and so info about the hack is limited to a brief comment included within the related change in defaults: ``` # Workaround for loop-aes-utils divertion # (loop-aes-utils' losetup lacks features). ``` though it is very similar to the removed fdisk hack in that it seems that one package may replace a binary from another, moving the original to a new location, and this hack gives the user the opportunity to select the original instead of the one put in its place, for use in LB. the comment mentions a package called loop-aes-utils as being the package that performs such a diversion, and that the need for the hack was that losetup itself lacked features, presumably encryption support, and it is clear that it is the losetup binary that is the focus of the diversion. looking into the history of loop-aes-utils a little, this package was dropped from debian back in 2012 (#680748), favouring encrytion support of dm-crypt/cryptsetup. double checking file contents of packages, only the mount package carries an /sbin/losetup file, so presumably this means that dm-setup/cryptsetup do not perform such a diversion of losetup (i.e. their use is exclusively done directly). since the possible diversion is simply gone, that completely removes any point in having the hack of giving users choice between losetup and the diverted one. so let's remove this obsolete hack...
2020-03-11 17:43:12 -01:00
FREELO="$(losetup -f)"
2007-09-23 08:05:11 +00:00
if [ ! -b chroot/${FREELO} ]
then
MAKEDEV=true
2007-09-23 08:05:11 +00:00
mv chroot/dev chroot/dev.tmp
# Don't copy mount points (e.g. /dev/shm)
find /dev -xdev| cpio -dmpu chroot
2007-09-23 08:05:11 +00:00
fi
case "${LB_BINARY_FILESYSTEM}" in
ext2|ext3|ext4)
PARTITION_TYPE="ext2"
2008-06-17 05:08:24 +00:00
;;
fat16|fat32)
PARTITION_TYPE="${LB_BINARY_FILESYSTEM}"
;;
ntfs)
PARTITION_TYPE="NTFS"
;;
*)
Echo_error "Unsupported binary filesystem %s" "${LB_BINARY_FILESYSTEM}"
exit 1
;;
esac
Echo_warning "!!! The following error/warning messages can be ignored !!!"
Losetup $FREELO ${LB_IMAGE_NAME}-source.img 0
Chroot chroot "parted -s ${FREELO} mklabel msdos" || true
2013-10-17 10:26:42 +00:00
Chroot chroot "parted -a optimal -s ${FREELO} mkpart primary ${PARTITION_TYPE} 0.0 100%" || true
Lodetach ${FREELO}
2007-09-23 08:05:11 +00:00
Losetup $FREELO ${LB_IMAGE_NAME}-source.img 1
2007-11-18 09:33:46 -01:00
case "${LB_BINARY_FILESYSTEM}" in
ext2|ext3|ext4)
MKFS="${LB_BINARY_FILESYSTEM}"
MKFS_OPTIONS="-L ${LB_HDD_LABEL} -m 0 -O ^64bit"
MOUNT_OPTIONS=""
;;
2007-11-18 09:33:46 -01:00
fat16)
2008-06-17 05:08:24 +00:00
MKFS="vfat"
MKFS_OPTIONS="-F 16 -n ${LB_HDD_LABEL}"
MOUNT_OPTIONS=""
2007-11-18 09:33:46 -01:00
;;
fat32)
2008-06-17 05:08:24 +00:00
MKFS="vfat"
MKFS_OPTIONS="-F 32 -n ${LB_HDD_LABEL}"
MOUNT_OPTIONS=""
2007-11-18 09:33:46 -01:00
;;
ntfs)
MKFS="ntfs"
MKFS_OPTIONS="-L ${LB_HDD_LABEL}"
MOUNT_OPTIONS="-t ntfs-3g"
;;
2007-11-18 09:33:46 -01:00
esac
Chroot chroot "mkfs.${MKFS} ${MKFS_OPTIONS} ${FREELO}"
2007-11-18 09:33:46 -01:00
2007-09-23 08:05:11 +00:00
mkdir -p source.tmp
mount ${MOUNT_OPTIONS} ${FREELO} source.tmp
2007-09-23 08:05:11 +00:00
cp -r source/* source.tmp
umount source.tmp
2007-09-23 08:05:11 +00:00
rmdir source.tmp
Lodetach ${FREELO}
Echo_warning "!!! The above error/warning messages can be ignored !!!"
2007-09-23 08:05:11 +00:00
remove obsolete loop-aes-utils related losetup hack 677415f6d7efc1e5b888570d70af311d2900c69c (2007) in v1.0~a2-1 added a hack relating to the loop-aes-utils package and losetup. this commit bundled a bunch of changes, it was not specific to the hack, and so info about the hack is limited to a brief comment included within the related change in defaults: ``` # Workaround for loop-aes-utils divertion # (loop-aes-utils' losetup lacks features). ``` though it is very similar to the removed fdisk hack in that it seems that one package may replace a binary from another, moving the original to a new location, and this hack gives the user the opportunity to select the original instead of the one put in its place, for use in LB. the comment mentions a package called loop-aes-utils as being the package that performs such a diversion, and that the need for the hack was that losetup itself lacked features, presumably encryption support, and it is clear that it is the losetup binary that is the focus of the diversion. looking into the history of loop-aes-utils a little, this package was dropped from debian back in 2012 (#680748), favouring encrytion support of dm-crypt/cryptsetup. double checking file contents of packages, only the mount package carries an /sbin/losetup file, so presumably this means that dm-setup/cryptsetup do not perform such a diversion of losetup (i.e. their use is exclusively done directly). since the possible diversion is simply gone, that completely removes any point in having the hack of giving users choice between losetup and the diverted one. so let's remove this obsolete hack...
2020-03-11 17:43:12 -01:00
FREELO="$(losetup -f)"
Losetup "$FREELO" ${LB_IMAGE_NAME}-source.img 0
Chroot chroot "parted -s ${FREELO} set 1 lba off" || true
Lodetach ${FREELO}
if $MAKEDEV; then
2007-09-23 08:05:13 +00:00
rm -rf chroot/dev
2007-09-23 08:05:11 +00:00
mv chroot/dev.tmp chroot/dev
fi
# Removing depends
Remove_packages
2007-09-23 08:05:11 +00:00
# Creating stage file
Create_stagefile