[arch-releng] [PATCH 13/13] [archiso] Rework checksum function

Gerardo Exequiel Pozzi vmlinuz386 at yahoo.com.ar
Fri Mar 28 23:40:27 EDT 2014


---
 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 <image name>"
@@ -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"
 }
 
-- 
1.9.1



More information about the arch-releng mailing list