Merge branch 'master' of github.com:manjaro/manjaro-tools into stable-0.14.x

This commit is contained in:
udeved 2016-10-19 18:25:33 +02:00
commit d9df09d276
12 changed files with 91 additions and 91 deletions

View file

@ -1,7 +1,7 @@
manjaro-tools
=============
Manjaro-tools-0.13
Manjaro-tools-0.14
User manual
@ -112,13 +112,6 @@ overriding
# iso app id
# iso_app_id="Manjaro Linux Live/Rescue CD"
# compression used, possible values xz (default, best compression), gzip, lzma, lzo, lz4
# lz4 is faster but worst compression, may be useful for locally testing isos
# sfs_compress=xz
# valid: md5, sha1, sha256, sha384, sha512
# sfs_checksum=md5
# possible values: openrc,systemd
# initsys="systemd"

View file

@ -90,7 +90,7 @@ display_settings(){
msg2 "images_only: %s" "${images_only}"
msg2 "iso_only: %s" "${iso_only}"
msg2 "persist: %s" "${persist}"
msg2 "sign: %s" "${sign}"
# msg2 "sign: %s" "${sign}"
msg2 "torrent: %s" "${torrent}"
msg "DIST SETTINGS:"
@ -102,8 +102,6 @@ display_settings(){
msg2 "iso_label: %s" "${iso_label}"
msg2 "iso_publisher: %s" "${iso_publisher}"
msg2 "iso_app_id: %s" "${iso_app_id}"
msg2 "sfs_compress: %s" "${sfs_compress}"
msg2 "sfs_checksum: %s" "${sfs_checksum}"
msg2 "use_overlayfs: %s" "${use_overlayfs}"
${verbose} && msg2 "iso_fs: %s" "${iso_fs}"
@ -125,7 +123,7 @@ pretend=false
images_only=false
iso_only=false
verbose=false
sign=false
# sign=false
torrent=false
persist=false
@ -143,7 +141,7 @@ usage() {
echo ' -i <name> Init system to use'
echo " [default: ${initsys}]"
echo ' -m Set SquashFS image mode to persistence'
echo ' -s Sign the iso'
# echo ' -s Sign the sfs images'
echo ' -c Disable clean work dir'
echo ' -x Build images only'
echo ' -z Generate iso only'
@ -159,7 +157,7 @@ usage() {
orig_argv=("$@")
opts='p:a:b:r:t:k:i:czxsmwvqh'
opts='p:a:b:r:t:k:i:czxmwvqh'
while getopts "${opts}" arg; do
case "${arg}" in
@ -170,7 +168,7 @@ while getopts "${opts}" arg; do
t) cache_dir_iso="$OPTARG" ;;
k) kernel="$OPTARG" ;;
i) initsys="$OPTARG" ;;
s) sign=true ;;
# s) sign=true ;;
c) clean_first=false ;;
x) images_only=true ;;
z) iso_only=true ;;

View file

@ -61,13 +61,6 @@
# iso app id
# iso_app_id="Manjaro Linux Live/Rescue CD"
# compression used, possible values xz (default, best compression), gzip, lzma, lzo, lz4
# lz4 is faster but worst compression, may be useful for locally testing isos
# sfs_compress=xz
# valid: md5, sha1, sha256, sha384, sha512
# sfs_checksum=md5
# possible values: openrc,systemd
# initsys="systemd"

View file

@ -241,25 +241,6 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
</para></listitem>
</varlistentry>
<varlistentry>
<!-- TODO: Need list of other available compressions -->
<term><varname>sfs_compress=</varname></term>
<listitem><para>Defaults compression that will be used
when creating the various images. Defaults to xz.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>sfs_checksum=</varname></term>
<listitem><para>Checksum that will be created against the
final .iso file. Can be <option>md5</option> (the default),
<option>sha1</option>, <option>sha256</option>,
<option>sha384</option> or <option>sha512</option>.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>initsys=</varname></term>

View file

@ -41,8 +41,8 @@ _mnt_overlayfs() {
local src="${1}"
local newroot="${2}"
local mnt="${3}"
local work_dir="/run/miso/cowspace/work"
local upper_dir="/run/miso/cowspace/upper"
local work_dir="/run/miso/overlay_root/work"
local upper_dir="/run/miso/overlay_root/upper"
mkdir -p "${upper_dir}" "${work_dir}"
@ -124,6 +124,7 @@ run_hook() {
[[ -z "${dm_snap_prefix}" ]] && dm_snap_prefix="arch"
[[ -z "${misodevice}" ]] && misodevice="/dev/disk/by-label/${misolabel}"
[[ -z "${cow_spacesize}" ]] && cow_spacesize="256M"
[[ -z "${overlay_root_size}" ]] && overlay_root_size="75%"
if [[ -n "${cow_label}" ]]; then
cow_device="/dev/disk/by-label/${cow_label}"
@ -207,15 +208,19 @@ miso_mount_handler() {
fi
mkdir -p -m 0700 "/run/miso/cowspace/${cow_directory}"
msg -n ":: Mounting overlay root (tmpfs) filesystem, size=${overlay_root_size}..."
mkdir -p /run/miso/overlay_root
mount -t tmpfs -o "size=${overlay_root_size}",mode=0755 overlay_root /run/miso/overlay_root
local src="/run/miso/bootmnt/${misobasedir}/${arch}"
local dest_sfs="/run/miso/sfs" dest_img="/run/miso/img"
local lower_dir
mkdir -p ${dest_img}
for sfs in livefs mhwdfs desktopfs rootfs;do
if [[ -f "${src}/${sfs}.sfs" ]]; then
_mnt_sfs "${src}/${sfs}.sfs" "${dest_sfs}/${sfs}"
if [[ -f "${dest_sfs}/${sfs}/${sfs}.img" ]]; then
mkdir -p ${dest_img}
lower_dir=${lower_dir:-}${lower_dir:+:}"${dest_img}/${sfs}"
_mnt_dmsnapshot "${dest_sfs}/${sfs}/${sfs}.img" "${dest_img}/${sfs}"
else

View file

@ -129,6 +129,7 @@ run_hook() {
[[ -z "${dm_snap_prefix}" ]] && dm_snap_prefix="arch"
[[ -z "${misodevice}" ]] && misodevice="/dev/disk/by-label/${misolabel}"
[[ -z "${cow_spacesize}" ]] && cow_spacesize="256M"
[[ -z "${overlay_root_size}" ]] && overlay_root_size="75%"
if [[ -n "${cow_label}" ]]; then
cow_device="/dev/disk/by-label/${cow_label}"
@ -212,17 +213,21 @@ miso_mount_handler() {
fi
mkdir -p -m 0700 "/run/miso/cowspace/${cow_directory}"
local work_dir="/run/miso/cowspace"
msg -n ":: Mounting overlay root (tmpfs) filesystem, size=${overlay_root_size}..."
mkdir -p /run/miso/overlay_root
mount -t tmpfs -o "size=${overlay_root_size}",mode=0755 overlay_root /run/miso/overlay_root
local work_dir="/run/miso/overlay_root"
_mnt_overlayfs_root "${work_dir}" "${newroot}" "/"
local src="/run/miso/bootmnt/${misobasedir}/${arch}"
local dest_sfs="/run/miso/sfs" dest_img="/run/miso/img"
mkdir -p ${dest_img}
for sfs in livefs mhwdfs desktopfs rootfs;do
if [[ -f "${src}/${sfs}.sfs" ]]; then
_mnt_sfs "${src}/${sfs}.sfs" "${dest_sfs}/${sfs}"
if [[ -f "${dest_sfs}/${sfs}/${sfs}.img" ]]; then
mkdir -p ${dest_img}
_mnt_dmsnapshot "${dest_sfs}/${sfs}/${sfs}.img" "${dest_img}/${sfs}"
_mnt_overlayfs "${dest_img}/${sfs}" "${newroot}" "/"
else

View file

@ -39,11 +39,16 @@ run_hook () {
# setup DNS resolver
if [[ "${IPV4DNS0}" != "0.0.0.0" ]]; then
echo "nameserver ${IPV4DNS0}" > /etc/resolv.conf
echo "# added by miso_pxe_common hook" > /etc/resolv.conf
echo "nameserver ${IPV4DNS0}" >> /etc/resolv.conf
fi
if [[ "${IPV4DNS1}" != "0.0.0.0" ]]; then
echo "nameserver ${IPV4DNS1}" >> /etc/resolv.conf
fi
if [[ -n "${DNSDOMAIN}" ]]; then
echo "search ${DNSDOMAIN}" >> /etc/resolv.conf
echo "domain ${DNSDOMAIN}" >> /etc/resolv.conf
fi
fi
}

View file

@ -3,6 +3,10 @@
run_hook() {
if [[ -n "${ip}" && -n "${miso_http_srv}" ]]; then
# booting with http is always copy-to-ram, so set here to make sure
# addresses are flushed and interface is set down
copytoram="y"
miso_http_srv=$(eval echo ${miso_http_srv})
[[ -z "${miso_http_spc}" ]] && miso_http_spc="75%"

View file

@ -5,7 +5,8 @@ mkdir /oldrun
mount -n --move /oldroot/run /oldrun
# Unmount all mounts now.
umount $(mount | awk '$3 ~/^\/oldroot/ {print $3}' | sort -r)
#umount $(mount | awk '$3 ~/^\/oldroot/ {print $3}' | sort -r)
umount $(mount | awk '$3 ~/^\/oldroot/ {if($3 != "/run/miso/bootmnt") print $3}' | sort -r)
# Remove all dm-snapshot devices.
dmsetup remove_all

View file

@ -20,6 +20,7 @@ set_mkinicpio_hooks(){
sed -e 's/plymouth //' -i $1
fi
if ! ${use_overlayfs};then
msg2 "Setting aufs hook"
sed -e 's/miso /miso_aufs /' -i $1
fi
}
@ -33,20 +34,17 @@ gen_boot_args(){
echo ${args[@]}
}
set_silent_switch_root(){
sed -e 's|"$@"|"$@" >/dev/null 2>&1|' -i $1/usr/lib/initcpio/init
}
# $1: ${profile_dir}
# $2: ${work_dir}/bootfs
prepare_initcpio(){
msg2 "Copying initcpio ..."
cp /usr/lib/initcpio/hooks/miso* $2/usr/lib/initcpio/hooks
cp /usr/lib/initcpio/install/miso* $2/usr/lib/initcpio/install
cp /usr/lib/initcpio/miso_shutdown $2/usr/lib/initcpio
cp /usr/lib/initcpio/hooks/miso* $1/etc/initcpio/hooks
cp /usr/lib/initcpio/install/miso* $1/etc/initcpio/install
cp /usr/lib/initcpio/miso_shutdown $1/etc/initcpio
sed -e "s|/usr/lib/initcpio/|/etc/initcpio/|" -i $1/etc/initcpio/install/miso_shutdown
}
gen_boot_initramfs(){
cp $1/mkinitcpio.conf $2/etc/mkinitcpio-${iso_name}.conf
set_mkinicpio_hooks "$2/etc/mkinitcpio-${iso_name}.conf"
# set_silent_switch_root "$2"
}
# $1: work_dir
@ -87,7 +85,7 @@ vars_to_boot_conf(){
}
prepare_efi_loader(){
local efi_data=$1${DATADIR}/efiboot efi=$2/EFI/boot
local efi_data=$1/usr/share/efi-utils efi=$2/EFI/boot
msg2 "Preparing efi loaders ..."
prepare_dir "${efi}"
cp $1/usr/share/efitools/efi/PreLoader.efi ${efi}/bootx64.efi
@ -120,12 +118,22 @@ check_syslinux_optional(){
sed -e "/nonfree/ d" -i $1/syslinux.msg
}
prepare_isolinux(){
local syslinux=$1/usr/lib/syslinux/bios
msg2 "Copying isolinux binaries ..."
cp ${syslinux}/{{isolinux,isohdpfx}.bin,ldlinux.c32} $2
msg2 "Copying isolinux.cfg ..."
cp $1/usr/share/syslinux/isolinux/isolinux.cfg $2
vars_to_boot_conf "$2/isolinux.cfg"
}
prepare_syslinux(){
local syslinux=$1/usr/lib/syslinux/bios
msg2 "Copying syslinux binaries ..."
cp ${syslinux}/{*.c32,lpxelinux.0,memdisk,{isolinux,isohdpfx}.bin} $2
cp ${syslinux}/{*.c32,lpxelinux.0,memdisk} $2
msg2 "Copying syslinux theme ..."
cp $1${DATADIR}/syslinux-theme/* $2
syslinux=$1/usr/share/syslinux/theme
cp ${syslinux}/* $2
for conf in $2/*.cfg; do
vars_to_boot_conf "${conf}"
done

View file

@ -97,6 +97,18 @@ prepare_ext4_img(){
umount_img "${mnt}"
}
sign_iso(){
su ${OWNER} -c "signfile ${iso_dir}/$1"
}
# $1: file
make_checksum(){
msg2 "Creating md5sum ..."
cd $1
md5sum $2.sfs > $2.md5
cd ${OLDPWD}
}
# $1: image path
make_sfs() {
local src="$1"
@ -134,20 +146,19 @@ make_sfs() {
mksfs_args+=(${sfs} -noappend)
local highcomp="-b 256K -Xbcj x86"
[[ "${sfs_compress}" != "xz" ]] && highcomp=""
local highcomp="-b 256K -Xbcj x86" comp='xz'
if [[ "${name}" == "mhwdfs" && ${used_kernel} < "4" ]]; then
mksfs_args+=(-comp lz4)
else
mksfs_args+=(-comp ${sfs_compress} ${highcomp})
mksfs_args+=(-comp ${comp} ${highcomp})
fi
if ${verbose};then
mksquashfs "${mksfs_args[@]}" >/dev/null
else
mksquashfs "${mksfs_args[@]}"
fi
make_checksum "${dest}" "${name}"
${persist} && rm "${src}.img"
show_elapsed_time "${FUNCNAME}" "${timer_start}"
@ -173,10 +184,10 @@ assemble_iso(){
-appid "${iso_app_id}" \
-publisher "${iso_publisher}" \
-preparer "Prepared by manjaro-tools/${0##*/}" \
-eltorito-boot syslinux/isolinux.bin \
-eltorito-catalog syslinux/boot.cat \
-eltorito-boot isolinux/isolinux.bin \
-eltorito-catalog isolinux/boot.cat \
-no-emul-boot -boot-load-size 4 -boot-info-table \
-isohybrid-mbr "${iso_root}/syslinux/isohdpfx.bin" \
-isohybrid-mbr "${iso_root}/isolinux/isohdpfx.bin" \
${efi_boot_args[@]} \
-output "${iso_dir}/${iso_file}" \
"${iso_root}/"
@ -238,6 +249,8 @@ make_image_root() {
pacman -Qr "${path}" > "${path}/rootfs-pkgs.txt"
copy_overlay "${profile_dir}/root-overlay" "${path}"
prepare_initcpio "${path}"
reset_pac_conf "${path}"
clean_up_image "${path}"
@ -345,7 +358,7 @@ make_image_boot() {
mount_image_live "${path}"
configure_plymouth "${path}"
prepare_initcpio "${profile_dir}" "${path}"
gen_boot_initramfs "${profile_dir}" "${path}"
gen_boot_image "${path}"
@ -400,17 +413,29 @@ make_efi_dvd() {
fi
}
make_isolinux() {
if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then
msg "Prepare [/iso/isolinux]"
local isolinux=${iso_root}/isolinux
mkdir -p ${isolinux}
prepare_isolinux "${work_dir}/livefs" "${isolinux}"
: > ${work_dir}/build.${FUNCNAME}
msg "Done [/iso/isolinux]"
fi
}
make_syslinux() {
if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then
msg "Prepare [/iso/syslinux]"
local syslinux=${iso_root}/syslinux
msg "Prepare [/iso/${iso_name}/boot/syslinux]"
local syslinux=${iso_root}/${iso_name}/boot/syslinux
mkdir -p ${syslinux}
prepare_syslinux "${work_dir}/livefs" "${syslinux}"
mkdir -p ${syslinux}/hdt
# gzip -c -9 ${work_dir}/rootfs/usr/share/hwdata/pci.ids > ${syslinux}/hdt/pciids.gz
# gzip -c -9 ${work_dir}/livefs/usr/lib/modules/*-MANJARO/modules.alias > ${syslinux}/hdt/modalias.gz
: > ${work_dir}/build.${FUNCNAME}
msg "Done [/iso/syslinux]"
msg "Done [/iso/${iso_name}/boot/syslinux]"
fi
}
@ -441,9 +466,6 @@ check_requirements(){
import ${LIBDIR}/util-iso-${iso_fs}.sh
}
sign_iso(){
su ${OWNER} -c "signfile ${iso_dir}/$1"
}
make_torrent(){
local fn=${iso_file}.torrent
@ -452,21 +474,9 @@ make_torrent(){
mktorrent ${mktorrent_args[*]} -o ${iso_dir}/${fn} ${iso_dir}/${iso_file}
}
# $1: file
make_checksum(){
msg "Creating [%s] sum ..." "${sfs_checksum}"
cd ${iso_dir}
local cs=$(${sfs_checksum}sum $1)
msg2 "%s sum: %s" "${sfs_checksum}" "${cs##*/}"
echo "${cs}" > ${iso_dir}/$1.${sfs_checksum}
msg "Done [%s] sum" "${sfs_checksum}"
}
compress_images(){
local timer=$(get_timer)
run_safe "make_iso"
make_checksum "${iso_file}"
${sign} && sign_iso "${iso_file}"
${torrent} && make_torrent
user_own "${iso_dir}" "-R"
show_elapsed_time "${FUNCNAME}" "${timer}"
@ -489,6 +499,7 @@ prepare_images(){
run_safe "make_image_mhwd"
fi
run_safe "make_image_boot"
run_safe "make_isolinux"
run_safe "make_syslinux"
if [[ "${target_arch}" == "x86_64" ]]; then
run_safe "make_efi_usb"

View file

@ -301,10 +301,6 @@ init_buildiso(){
[[ -z ${iso_app_id} ]] && iso_app_id='Manjaro Linux Live/Rescue CD'
[[ -z ${sfs_compress} ]] && sfs_compress='xz'
[[ -z ${sfs_checksum} ]] && sfs_checksum='md5'
[[ -z ${initsys} ]] && initsys="systemd"
[[ -z ${kernel} ]] && kernel="linux44"