[arch-releng] [RFC] [PATCH] [archiso] Switch from cdrkit to libisoburn
* Preparing terrain for UEFI support. * Also make isohybrid hack in one step. * Removed UDF layer, since xorriso does not support it. * Removed unsupported options by xorriso (-uid/-gid/-allow-limited-size) * Removed option already default in xorriso (-input-charset utf-8) Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar> --- README | 9 ++++----- archiso/mkarchiso | 9 ++++----- configs/baseline/build.sh | 1 + configs/releng/build.sh | 1 + 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/README b/README index 852f3bd..d56231e 100644 --- a/README +++ b/README @@ -101,8 +101,7 @@ if nothing is specified on command line. ** For mkarchiso script needs these packages (build host): + devtools for mkarchroot + squashfs-tools for mksquashfs - + syslinux for isohybrid - + cdrkit for mkisofs + + libisoburn for xorriso ** For these hooks needs these packages (on target root-image) * archiso @@ -189,7 +188,7 @@ When make your custom boot-pendrive, you need to copy /arch directory to it. [chroot] # echo 'Server = MIRROR/archlinux/$repo/os/$arch' >> /etc/pacman.d/mirrorlist * Install aditional packages needed for mkarchiso. - [chroot] # pacman -S devtools squashfs-tools syslinux cdrkit + [chroot] # pacman -S devtools squashfs-tools libisoburn * Build a basic iso. [chroot] # cp -r /usr/share/archiso/configs/baseline /tmp @@ -213,7 +212,7 @@ Note: These steps should be done with 64 bits support. [host64] # linux32 mkarchroot /tmp/chroot32 base [host64] # linux32 mkarchroot -r bash /tmp/chroot32 [chroot32] # echo 'Server = MIRROR/archlinux/$repo/os/$arch' >> /etc/pacman.d/mirrorlist - [chroot32] # pacman -S devtools squashfs-tools syslinux cdrkit + [chroot32] # pacman -S devtools squashfs-tools libisoburn [chroot32] # exit * Prepare a 64 bits chroot enviroment. @@ -221,7 +220,7 @@ Note: These steps should be done with 64 bits support. [host64] # mkarchroot /tmp/chroot64 base [host64] # mkarchroot -r bash /tmp/chroot64 [chroot64] # echo 'Server = MIRROR/archlinux/$repo/os/$arch' >> /etc/pacman.d/mirrorlist - [chroot64] # pacman -S devtools squashfs-tools syslinux cdrkit + [chroot64] # pacman -S devtools squashfs-tools libisoburn [chroot64] # exit * Install archiso on both chroots. diff --git a/archiso/mkarchiso b/archiso/mkarchiso index 68d98ab..baffa27 100755 --- a/archiso/mkarchiso +++ b/archiso/mkarchiso @@ -315,17 +315,16 @@ command_iso () { if [[ ${quiet} == "y" ]]; then _qflag="-quiet" fi - mkisofs ${_qflag} -r -l \ + xorriso -as mkisofs ${_qflag} -r -l \ -b isolinux/isolinux.bin -c isolinux/boot.cat \ - -uid 0 -gid 0 \ - -udf -allow-limited-size -iso-level 3 \ - -input-charset utf-8 -p "prepared by mkarchiso" \ + -iso-level 3 \ -no-emul-boot -boot-load-size 4 -boot-info-table \ + -isohybrid-mbr ${work_dir}/iso/isolinux/isohdpfx.bin \ + -p "prepared by mkarchiso" \ -publisher "${iso_publisher}" \ -A "${iso_application}" \ -V "${iso_label}" \ -o "${img_name}" "${work_dir}/iso/" - isohybrid "${img_name}" _msg_info "Done! | $(ls -sh ${img_name})" } diff --git a/configs/baseline/build.sh b/configs/baseline/build.sh index eabe21f..406de47 100755 --- a/configs/baseline/build.sh +++ b/configs/baseline/build.sh @@ -67,6 +67,7 @@ make_isolinux() { mkdir -p ${work_dir}/iso/isolinux sed "s|%INSTALL_DIR%|${install_dir}|g" ${script_path}/isolinux/isolinux.cfg > ${work_dir}/iso/isolinux/isolinux.cfg cp ${work_dir}/root-image/usr/lib/syslinux/isolinux.bin ${work_dir}/iso/isolinux/ + cp ${work_dir}/root-image/usr/lib/syslinux/isohdpfx.bin ${work_dir}/iso/isolinux/ : > ${work_dir}/build.${FUNCNAME} fi } diff --git a/configs/releng/build.sh b/configs/releng/build.sh index 22229ce..d047b72 100755 --- a/configs/releng/build.sh +++ b/configs/releng/build.sh @@ -95,6 +95,7 @@ make_isolinux() { mkdir -p ${work_dir}/iso/isolinux sed "s|%INSTALL_DIR%|${install_dir}|g" ${script_path}/isolinux/isolinux.cfg > ${work_dir}/iso/isolinux/isolinux.cfg cp ${work_dir}/root-image/usr/lib/syslinux/isolinux.bin ${work_dir}/iso/isolinux/ + cp ${work_dir}/root-image/usr/lib/syslinux/isohdpfx.bin ${work_dir}/iso/isolinux/ : > ${work_dir}/build.${FUNCNAME} fi } -- 1.7.6
On 08/12/2011 03:08 PM, Gerardo Exequiel Pozzi wrote:
* Preparing terrain for UEFI support. * Also make isohybrid hack in one step. * Removed UDF layer, since xorriso does not support it. * Removed unsupported options by xorriso (-uid/-gid/-allow-limited-size) * Removed option already default in xorriso (-input-charset utf-8)
Signed-off-by: Gerardo Exequiel Pozzi<vmlinuz386@yahoo.com.ar> --- README | 9 ++++----- archiso/mkarchiso | 9 ++++----- configs/baseline/build.sh | 1 + configs/releng/build.sh | 1 + 4 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/README b/README index 852f3bd..d56231e 100644 --- a/README +++ b/README @@ -101,8 +101,7 @@ if nothing is specified on command line. ** For mkarchiso script needs these packages (build host): + devtools for mkarchroot + squashfs-tools for mksquashfs - + syslinux for isohybrid - + cdrkit for mkisofs + + libisoburn for xorriso
** For these hooks needs these packages (on target root-image) * archiso @@ -189,7 +188,7 @@ When make your custom boot-pendrive, you need to copy /arch directory to it. [chroot] # echo 'Server = MIRROR/archlinux/$repo/os/$arch'>> /etc/pacman.d/mirrorlist
* Install aditional packages needed for mkarchiso. - [chroot] # pacman -S devtools squashfs-tools syslinux cdrkit + [chroot] # pacman -S devtools squashfs-tools libisoburn
* Build a basic iso. [chroot] # cp -r /usr/share/archiso/configs/baseline /tmp @@ -213,7 +212,7 @@ Note: These steps should be done with 64 bits support. [host64] # linux32 mkarchroot /tmp/chroot32 base [host64] # linux32 mkarchroot -r bash /tmp/chroot32 [chroot32] # echo 'Server = MIRROR/archlinux/$repo/os/$arch'>> /etc/pacman.d/mirrorlist - [chroot32] # pacman -S devtools squashfs-tools syslinux cdrkit + [chroot32] # pacman -S devtools squashfs-tools libisoburn [chroot32] # exit
* Prepare a 64 bits chroot enviroment. @@ -221,7 +220,7 @@ Note: These steps should be done with 64 bits support. [host64] # mkarchroot /tmp/chroot64 base [host64] # mkarchroot -r bash /tmp/chroot64 [chroot64] # echo 'Server = MIRROR/archlinux/$repo/os/$arch'>> /etc/pacman.d/mirrorlist - [chroot64] # pacman -S devtools squashfs-tools syslinux cdrkit + [chroot64] # pacman -S devtools squashfs-tools libisoburn [chroot64] # exit
* Install archiso on both chroots. diff --git a/archiso/mkarchiso b/archiso/mkarchiso index 68d98ab..baffa27 100755 --- a/archiso/mkarchiso +++ b/archiso/mkarchiso @@ -315,17 +315,16 @@ command_iso () { if [[ ${quiet} == "y" ]]; then _qflag="-quiet" fi - mkisofs ${_qflag} -r -l \ + xorriso -as mkisofs ${_qflag} -r -l \ -b isolinux/isolinux.bin -c isolinux/boot.cat \ - -uid 0 -gid 0 \ - -udf -allow-limited-size -iso-level 3 \ - -input-charset utf-8 -p "prepared by mkarchiso" \ + -iso-level 3 \ -no-emul-boot -boot-load-size 4 -boot-info-table \ + -isohybrid-mbr ${work_dir}/iso/isolinux/isohdpfx.bin \ + -p "prepared by mkarchiso" \ -publisher "${iso_publisher}" \ -A "${iso_application}" \ -V "${iso_label}" \ -o "${img_name}" "${work_dir}/iso/" - isohybrid "${img_name}" _msg_info "Done! | $(ls -sh ${img_name})" }
diff --git a/configs/baseline/build.sh b/configs/baseline/build.sh index eabe21f..406de47 100755 --- a/configs/baseline/build.sh +++ b/configs/baseline/build.sh @@ -67,6 +67,7 @@ make_isolinux() { mkdir -p ${work_dir}/iso/isolinux sed "s|%INSTALL_DIR%|${install_dir}|g" ${script_path}/isolinux/isolinux.cfg> ${work_dir}/iso/isolinux/isolinux.cfg cp ${work_dir}/root-image/usr/lib/syslinux/isolinux.bin ${work_dir}/iso/isolinux/ + cp ${work_dir}/root-image/usr/lib/syslinux/isohdpfx.bin ${work_dir}/iso/isolinux/ :> ${work_dir}/build.${FUNCNAME} fi } diff --git a/configs/releng/build.sh b/configs/releng/build.sh index 22229ce..d047b72 100755 --- a/configs/releng/build.sh +++ b/configs/releng/build.sh @@ -95,6 +95,7 @@ make_isolinux() { mkdir -p ${work_dir}/iso/isolinux sed "s|%INSTALL_DIR%|${install_dir}|g" ${script_path}/isolinux/isolinux.cfg> ${work_dir}/iso/isolinux/isolinux.cfg cp ${work_dir}/root-image/usr/lib/syslinux/isolinux.bin ${work_dir}/iso/isolinux/ + cp ${work_dir}/root-image/usr/lib/syslinux/isohdpfx.bin ${work_dir}/iso/isolinux/ :> ${work_dir}/build.${FUNCNAME} fi }
Is there any objections about this? xorriso is currently used by archboot and works fine. Images generated looks good. -- Gerardo Exequiel Pozzi \cos^2\alpha + \sin^2\alpha = 1
On 08/12/2011 03:08 PM, Gerardo Exequiel Pozzi wrote:
* Preparing terrain for UEFI support. * Also make isohybrid hack in one step. * Removed UDF layer, since xorriso does not support it. * Removed unsupported options by xorriso (-uid/-gid/-allow-limited-size) * Removed option already default in xorriso (-input-charset utf-8)
Signed-off-by: Gerardo Exequiel Pozzi<vmlinuz386@yahoo.com.ar> --- README | 9 ++++----- archiso/mkarchiso | 9 ++++----- configs/baseline/build.sh | 1 + configs/releng/build.sh | 1 + 4 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/README b/README index 852f3bd..d56231e 100644 --- a/README +++ b/README @@ -101,8 +101,7 @@ if nothing is specified on command line. ** For mkarchiso script needs these packages (build host): + devtools for mkarchroot + squashfs-tools for mksquashfs - + syslinux for isohybrid - + cdrkit for mkisofs + + libisoburn for xorriso
** For these hooks needs these packages (on target root-image) * archiso @@ -189,7 +188,7 @@ When make your custom boot-pendrive, you need to copy /arch directory to it. [chroot] # echo 'Server = MIRROR/archlinux/$repo/os/$arch'>> /etc/pacman.d/mirrorlist
* Install aditional packages needed for mkarchiso. - [chroot] # pacman -S devtools squashfs-tools syslinux cdrkit + [chroot] # pacman -S devtools squashfs-tools libisoburn
* Build a basic iso. [chroot] # cp -r /usr/share/archiso/configs/baseline /tmp @@ -213,7 +212,7 @@ Note: These steps should be done with 64 bits support. [host64] # linux32 mkarchroot /tmp/chroot32 base [host64] # linux32 mkarchroot -r bash /tmp/chroot32 [chroot32] # echo 'Server = MIRROR/archlinux/$repo/os/$arch'>> /etc/pacman.d/mirrorlist - [chroot32] # pacman -S devtools squashfs-tools syslinux cdrkit + [chroot32] # pacman -S devtools squashfs-tools libisoburn [chroot32] # exit
* Prepare a 64 bits chroot enviroment. @@ -221,7 +220,7 @@ Note: These steps should be done with 64 bits support. [host64] # mkarchroot /tmp/chroot64 base [host64] # mkarchroot -r bash /tmp/chroot64 [chroot64] # echo 'Server = MIRROR/archlinux/$repo/os/$arch'>> /etc/pacman.d/mirrorlist - [chroot64] # pacman -S devtools squashfs-tools syslinux cdrkit + [chroot64] # pacman -S devtools squashfs-tools libisoburn [chroot64] # exit
* Install archiso on both chroots. diff --git a/archiso/mkarchiso b/archiso/mkarchiso index 68d98ab..baffa27 100755 --- a/archiso/mkarchiso +++ b/archiso/mkarchiso @@ -315,17 +315,16 @@ command_iso () { if [[ ${quiet} == "y" ]]; then _qflag="-quiet" fi - mkisofs ${_qflag} -r -l \ + xorriso -as mkisofs ${_qflag} -r -l \ -b isolinux/isolinux.bin -c isolinux/boot.cat \ - -uid 0 -gid 0 \ - -udf -allow-limited-size -iso-level 3 \ - -input-charset utf-8 -p "prepared by mkarchiso" \ + -iso-level 3 \ -no-emul-boot -boot-load-size 4 -boot-info-table \ + -isohybrid-mbr ${work_dir}/iso/isolinux/isohdpfx.bin \ + -p "prepared by mkarchiso" \ -publisher "${iso_publisher}" \ -A "${iso_application}" \ -V "${iso_label}" \ -o "${img_name}" "${work_dir}/iso/" - isohybrid "${img_name}" _msg_info "Done! | $(ls -sh ${img_name})" }
diff --git a/configs/baseline/build.sh b/configs/baseline/build.sh index eabe21f..406de47 100755 --- a/configs/baseline/build.sh +++ b/configs/baseline/build.sh @@ -67,6 +67,7 @@ make_isolinux() { mkdir -p ${work_dir}/iso/isolinux sed "s|%INSTALL_DIR%|${install_dir}|g" ${script_path}/isolinux/isolinux.cfg> ${work_dir}/iso/isolinux/isolinux.cfg cp ${work_dir}/root-image/usr/lib/syslinux/isolinux.bin ${work_dir}/iso/isolinux/ + cp ${work_dir}/root-image/usr/lib/syslinux/isohdpfx.bin ${work_dir}/iso/isolinux/ :> ${work_dir}/build.${FUNCNAME} fi } diff --git a/configs/releng/build.sh b/configs/releng/build.sh index 22229ce..d047b72 100755 --- a/configs/releng/build.sh +++ b/configs/releng/build.sh @@ -95,6 +95,7 @@ make_isolinux() { mkdir -p ${work_dir}/iso/isolinux sed "s|%INSTALL_DIR%|${install_dir}|g" ${script_path}/isolinux/isolinux.cfg> ${work_dir}/iso/isolinux/isolinux.cfg cp ${work_dir}/root-image/usr/lib/syslinux/isolinux.bin ${work_dir}/iso/isolinux/ + cp ${work_dir}/root-image/usr/lib/syslinux/isohdpfx.bin ${work_dir}/iso/isolinux/ :> ${work_dir}/build.${FUNCNAME} fi } I will merge this in about 18 hours, altogether with "Add cmd params to build.sh and other things." [#1]. Patch for releng-scripts was sent [#2].
[#1] http://mailman.archlinux.org/pipermail/arch-releng/2011-August/002030.html [#2] http://mailman.archlinux.org/pipermail/arch-releng/2011-August/002090.html Good luck! -- Gerardo Exequiel Pozzi \cos^2\alpha + \sin^2\alpha = 1
participants (1)
-
Gerardo Exequiel Pozzi