From b3e1d31343ec7d4b9011bfdb76e4c9843ba31dc5 Mon Sep 17 00:00:00 2001 From: Gerardo Exequiel Pozzi Date: Sat, 28 Jun 2014 00:35:51 -0300 Subject: [PATCH] [archiso] Rework checksum function --- archiso/initcpio/hooks/archiso | 10 ++++----- archiso/initcpio/hooks/archiso_pxe_http | 2 +- archiso/mkarchiso | 30 +++++++------------------ configs/baseline/build.sh | 1 - configs/releng/build.sh | 1 - 5 files changed, 14 insertions(+), 30 deletions(-) diff --git a/archiso/initcpio/hooks/archiso b/archiso/initcpio/hooks/archiso index c5fd062..26bdedc 100644 --- a/archiso/initcpio/hooks/archiso +++ b/archiso/initcpio/hooks/archiso @@ -93,8 +93,8 @@ _mnt_dev() { _verify_checksum() { local _status - cd "/run/archiso/bootmnt/${archisobasedir}" - md5sum -c checksum.${arch}.md5 > /tmp/checksum.${arch}.log 2>&1 + cd "/run/archiso/bootmnt/${archisobasedir}/${arch}" + md5sum -c airootfs.md5 > /tmp/checksum.log 2>&1 _status=$? cd "${OLDPWD}" return ${_status} @@ -142,17 +142,17 @@ archiso_mount_handler() { fi if [[ "${checksum}" == "y" ]]; then - if [[ -f "/run/archiso/bootmnt/${archisobasedir}/checksum.${arch}.md5" ]]; then + if [[ -f "/run/archiso/bootmnt/${archisobasedir}/${arch}/airootfs.md5" ]]; then msg -n ":: Self-test requested, please wait..." if _verify_checksum; then msg "done. Checksum is OK, continue booting." else echo "ERROR: one or more files are corrupted" - echo "see /tmp/checksum.${arch}.log for details" + echo "see /tmp/checksum.log for details" launch_interactive_shell fi else - echo "ERROR: checksum=y option specified but checksum.${arch}.md5 not found" + echo "ERROR: checksum=y option specified but ${archisobasedir}/${arch}/airootfs.md5 not found" launch_interactive_shell fi fi diff --git a/archiso/initcpio/hooks/archiso_pxe_http b/archiso/initcpio/hooks/archiso_pxe_http index 84ce17f..a23e952 100644 --- a/archiso/initcpio/hooks/archiso_pxe_http +++ b/archiso/initcpio/hooks/archiso_pxe_http @@ -37,7 +37,7 @@ archiso_pxe_http_mount_handler () { _curl_get "${archiso_http_srv}${archisobasedir}/${arch}/airootfs.sfs" "/${arch}" if [[ "${checksum}" == "y" ]]; then - _curl_get "${archiso_http_srv}${archisobasedir}/checksum.${arch}.md5" "/" + _curl_get "${archiso_http_srv}${archisobasedir}/${arch}/airootfs.md5" "/" fi mkdir -p "/run/archiso/bootmnt" diff --git a/archiso/mkarchiso b/archiso/mkarchiso index cd95f0f..2de026e 100755 --- a/archiso/mkarchiso +++ b/archiso/mkarchiso @@ -100,8 +100,6 @@ _usage () echo " run command specified by -r" echo " prepare" echo " build all images" - echo " checksum" - echo " make a checksum.md5 for self-test" echo " pkglist" echo " make a pkglist.txt of packages installed on airootfs" echo " iso " @@ -110,7 +108,7 @@ _usage () } # Shows configuration according to command mode. -# $1: init | install | run | prepare | checksum | iso +# $1: init | install | run | prepare | iso _show_config () { local _mode="$1" echo @@ -132,8 +130,6 @@ _show_config () { ;; prepare) ;; - checksum) - ;; pkglist) ;; iso) @@ -228,20 +224,12 @@ _mkairootfs () { rm ${work_dir}/airootfs.img } -command_checksum () { - _show_config checksum - - local _chk_arch - - for _chk_arch in i686 x86_64; do - _msg_info "Creating checksum file for self-test (${_chk_arch})..." - cd "${work_dir}/iso/${install_dir}" - if [[ -d "${_chk_arch}" ]]; then - find ${_chk_arch} -type f -print0 | xargs -0 md5sum > checksum.${_chk_arch}.md5 - fi - cd ${OLDPWD} - _msg_info "Done!" - done +_mkchecksum () { + _msg_info "Creating checksum file for self-test..." + cd "${work_dir}/iso/${install_dir}/${arch}" + md5sum airootfs.sfs > airootfs.md5 + cd ${OLDPWD} + _msg_info "Done!" } command_pkglist () { @@ -305,6 +293,7 @@ command_prepare () { _cleanup _mkairootfs + _mkchecksum } # Install packages on airootfs. @@ -383,9 +372,6 @@ case "${command_name}" in prepare) command_prepare ;; - checksum) - command_checksum - ;; pkglist) command_pkglist ;; diff --git a/configs/baseline/build.sh b/configs/baseline/build.sh index 46033cb..e997bab 100755 --- a/configs/baseline/build.sh +++ b/configs/baseline/build.sh @@ -67,7 +67,6 @@ make_prepare() { # Build ISO make_iso() { - mkarchiso -v -w "${work_dir}" -D "${install_dir}" checksum mkarchiso -v -w "${work_dir}" -D "${install_dir}" -L "${iso_label}" -o "${out_dir}" iso "${iso_name}-${iso_version}-${arch}.iso" } diff --git a/configs/releng/build.sh b/configs/releng/build.sh index f0b6f42..07ff911 100755 --- a/configs/releng/build.sh +++ b/configs/releng/build.sh @@ -193,7 +193,6 @@ make_prepare() { # Build ISO make_iso() { - mkarchiso ${verbose} -w "${work_dir}" -D "${install_dir}" checksum mkarchiso ${verbose} -w "${work_dir}" -D "${install_dir}" -L "${iso_label}" -o "${out_dir}" iso "${iso_name}-${iso_version}-dual.iso" }