[arch-releng] [PATCH] [configs/releng] Make all syslinux bootloaders works with the sames configs.

Gerardo Exequiel Pozzi vmlinuz386 at yahoo.com.ar
Fri Nov 25 16:01:04 EST 2011


* In that way, we have unified directory scheme among {pxe,sys,ext,iso}linux,
  sharing the same directory structure and config files.
* Also enable IPAPPEND (will show a warning message about unknown directive in non-pxelinux before menu)

NEW:
* Rename syslinux*.cfg -> archiso*.cfg
* Now syslinux.cfg is only a "loadconfig" trick like we are doing for isolinux
* All paths are now relative to %INSTALL_DIR% ($archisobasedir) (Default: /arch/)

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386 at yahoo.com.ar>
---
 configs/releng/build.sh                          |   10 ++-
 configs/releng/isolinux/isolinux.cfg             |    4 +-
 configs/releng/syslinux.dual/archiso.cfg         |   12 ++++
 configs/releng/syslinux.dual/archiso_32only.cfg  |    3 +
 configs/releng/syslinux.dual/archiso_arch32.cfg  |   10 +++
 configs/releng/syslinux.dual/archiso_arch64.cfg  |   10 +++
 configs/releng/syslinux.dual/archiso_both.cfg    |    4 +
 configs/releng/syslinux.dual/archiso_head.cfg    |   28 ++++++++
 configs/releng/syslinux.dual/archiso_tail.cfg    |   29 +++++++++
 configs/releng/syslinux.dual/syslinux.cfg        |   15 +---
 configs/releng/syslinux.dual/syslinux_32only.cfg |    3 -
 configs/releng/syslinux.dual/syslinux_arch32.cfg |   11 ---
 configs/releng/syslinux.dual/syslinux_arch64.cfg |   11 ---
 configs/releng/syslinux.dual/syslinux_both.cfg   |    4 -
 configs/releng/syslinux.dual/syslinux_head.cfg   |   28 --------
 configs/releng/syslinux.dual/syslinux_tail.cfg   |   29 ---------
 configs/releng/syslinux/archiso.cfg              |   69 ++++++++++++++++++++
 configs/releng/syslinux/syslinux.cfg             |   73 +--------------------
 18 files changed, 181 insertions(+), 172 deletions(-)
 create mode 100644 configs/releng/syslinux.dual/archiso.cfg
 create mode 100644 configs/releng/syslinux.dual/archiso_32only.cfg
 create mode 100644 configs/releng/syslinux.dual/archiso_arch32.cfg
 create mode 100644 configs/releng/syslinux.dual/archiso_arch64.cfg
 create mode 100644 configs/releng/syslinux.dual/archiso_both.cfg
 create mode 100644 configs/releng/syslinux.dual/archiso_head.cfg
 create mode 100644 configs/releng/syslinux.dual/archiso_tail.cfg
 delete mode 100644 configs/releng/syslinux.dual/syslinux_32only.cfg
 delete mode 100644 configs/releng/syslinux.dual/syslinux_arch32.cfg
 delete mode 100644 configs/releng/syslinux.dual/syslinux_arch64.cfg
 delete mode 100644 configs/releng/syslinux.dual/syslinux_both.cfg
 delete mode 100644 configs/releng/syslinux.dual/syslinux_head.cfg
 delete mode 100644 configs/releng/syslinux.dual/syslinux_tail.cfg
 create mode 100644 configs/releng/syslinux/archiso.cfg

diff --git a/configs/releng/build.sh b/configs/releng/build.sh
index 325bca7..fcba3a3 100755
--- a/configs/releng/build.sh
+++ b/configs/releng/build.sh
@@ -75,9 +75,11 @@ make_syslinux() {
         local _src_syslinux=${work_dir}/root-image/usr/lib/syslinux
         local _dst_syslinux=${work_dir}/iso/${install_dir}/boot/syslinux
         mkdir -p ${_dst_syslinux}
-        sed "s|%ARCHISO_LABEL%|${iso_label}|g;
-            s|%INSTALL_DIR%|${install_dir}|g;
-            s|%ARCH%|${arch}|g" ${script_path}/syslinux/syslinux.cfg > ${_dst_syslinux}/syslinux.cfg
+        for _cfg in ${script_path}/syslinux/*.cfg; do
+            sed "s|%ARCHISO_LABEL%|${iso_label}|g;
+                 s|%INSTALL_DIR%|${install_dir}|g;
+                 s|%ARCH%|${arch}|g" ${_cfg} > ${_dst_syslinux}/${_cfg##*/}
+        done
         cp ${script_path}/syslinux/splash.png ${_dst_syslinux}
         cp ${_src_syslinux}/*.c32 ${_dst_syslinux}
         cp ${_src_syslinux}/*.com ${_dst_syslinux}
@@ -187,7 +189,7 @@ make_dual() {
         cp -a -l -f ${_src_one} ${work_dir}/dual
         cp -a -l -n ${_src_two} ${work_dir}/dual
         rm -f ${work_dir}/dual/iso/${install_dir}/aitab
-        rm -f ${work_dir}/dual/iso/${install_dir}/boot/syslinux/syslinux.cfg
+        rm -f ${work_dir}/dual/iso/${install_dir}/boot/syslinux/*.cfg
         if [[ ${_iso_type} == "core" ]]; then
             if [[ ! -e ${work_dir}/dual/iso/${install_dir}/any/repo-core-any.sfs ||
                   ! -e ${work_dir}/dual/iso/${install_dir}/i686/repo-core-i686.sfs ||
diff --git a/configs/releng/isolinux/isolinux.cfg b/configs/releng/isolinux/isolinux.cfg
index e7bbaa4..1040d3f 100644
--- a/configs/releng/isolinux/isolinux.cfg
+++ b/configs/releng/isolinux/isolinux.cfg
@@ -1,5 +1,5 @@
 DEFAULT loadconfig
 
 LABEL loadconfig
-  CONFIG /%INSTALL_DIR%/boot/syslinux/syslinux.cfg
-  APPEND /%INSTALL_DIR%/boot/syslinux/
+  CONFIG /%INSTALL_DIR%/boot/syslinux/archiso.cfg
+  APPEND /%INSTALL_DIR%/
diff --git a/configs/releng/syslinux.dual/archiso.cfg b/configs/releng/syslinux.dual/archiso.cfg
new file mode 100644
index 0000000..9994e43
--- /dev/null
+++ b/configs/releng/syslinux.dual/archiso.cfg
@@ -0,0 +1,12 @@
+DEFAULT choose
+PROMPT 0
+
+LABEL choose
+KERNEL boot/syslinux/ifcpu64.c32
+APPEND have64 -- nohave64
+
+LABEL have64
+CONFIG boot/syslinux/archiso_both.cfg
+
+LABEL nohave64
+CONFIG boot/syslinux/archiso_32only.cfg
diff --git a/configs/releng/syslinux.dual/archiso_32only.cfg b/configs/releng/syslinux.dual/archiso_32only.cfg
new file mode 100644
index 0000000..e0cad88
--- /dev/null
+++ b/configs/releng/syslinux.dual/archiso_32only.cfg
@@ -0,0 +1,3 @@
+INCLUDE boot/syslinux/archiso_head.cfg
+INCLUDE boot/syslinux/archiso_arch32.cfg
+INCLUDE boot/syslinux/archiso_tail.cfg
diff --git a/configs/releng/syslinux.dual/archiso_arch32.cfg b/configs/releng/syslinux.dual/archiso_arch32.cfg
new file mode 100644
index 0000000..e7c7e23
--- /dev/null
+++ b/configs/releng/syslinux.dual/archiso_arch32.cfg
@@ -0,0 +1,10 @@
+LABEL arch32
+TEXT HELP
+Boot the Arch Linux (i686) live medium. It allows you to install Arch Linux or
+perform system maintenance.
+ENDTEXT
+MENU LABEL Boot Arch Linux (i686)
+LINUX boot/i686/vmlinuz
+INITRD boot/i686/archiso.img
+APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL%
+IPAPPEND 3
diff --git a/configs/releng/syslinux.dual/archiso_arch64.cfg b/configs/releng/syslinux.dual/archiso_arch64.cfg
new file mode 100644
index 0000000..aee7bb0
--- /dev/null
+++ b/configs/releng/syslinux.dual/archiso_arch64.cfg
@@ -0,0 +1,10 @@
+LABEL arch64
+TEXT HELP
+Boot the Arch Linux (x86_64) live medium. It allows you to install Arch Linux or
+perform system maintenance.
+ENDTEXT
+MENU LABEL Boot Arch Linux (x86_64)
+LINUX boot/x86_64/vmlinuz
+INITRD boot/x86_64/archiso.img
+APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL%
+IPAPPEND 3
diff --git a/configs/releng/syslinux.dual/archiso_both.cfg b/configs/releng/syslinux.dual/archiso_both.cfg
new file mode 100644
index 0000000..493ee81
--- /dev/null
+++ b/configs/releng/syslinux.dual/archiso_both.cfg
@@ -0,0 +1,4 @@
+INCLUDE boot/syslinux/archiso_head.cfg
+INCLUDE boot/syslinux/archiso_arch32.cfg
+INCLUDE boot/syslinux/archiso_arch64.cfg
+INCLUDE boot/syslinux/archiso_tail.cfg
diff --git a/configs/releng/syslinux.dual/archiso_head.cfg b/configs/releng/syslinux.dual/archiso_head.cfg
new file mode 100644
index 0000000..929872e
--- /dev/null
+++ b/configs/releng/syslinux.dual/archiso_head.cfg
@@ -0,0 +1,28 @@
+SERIAL 0 38400
+DEFAULT boot/syslinux/vesamenu.c32
+PROMPT 0
+MENU TITLE Arch Linux
+MENU BACKGROUND boot/syslinux/splash.png
+TIMEOUT 3000
+
+MENU WIDTH 78
+MENU MARGIN 4
+MENU ROWS 7
+MENU VSHIFT 10
+MENU TIMEOUTROW 13
+MENU TABMSGROW 11
+MENU CMDLINEROW 11
+MENU HELPMSGROW 16
+MENU HELPMSGENDROW 29
+
+# Refer to http://syslinux.zytor.com/wiki/index.php/Doc/menu
+
+MENU COLOR border       30;44   #40ffffff #a0000000 std
+MENU COLOR title        1;36;44 #9033ccff #a0000000 std
+MENU COLOR sel          7;37;40 #e0ffffff #20ffffff all
+MENU COLOR unsel        37;44   #50ffffff #a0000000 std
+MENU COLOR help         37;40   #c0ffffff #a0000000 std
+MENU COLOR timeout_msg  37;40   #80ffffff #00000000 std
+MENU COLOR timeout      1;37;40 #c0ffffff #00000000 std
+MENU COLOR msg07        37;40   #90ffffff #a0000000 std
+MENU COLOR tabmsg       31;40   #30ffffff #00000000 std
diff --git a/configs/releng/syslinux.dual/archiso_tail.cfg b/configs/releng/syslinux.dual/archiso_tail.cfg
new file mode 100644
index 0000000..791cb13
--- /dev/null
+++ b/configs/releng/syslinux.dual/archiso_tail.cfg
@@ -0,0 +1,29 @@
+LABEL existing
+TEXT HELP
+Boot an existing operating system. Press TAB to edit the disk and partition
+number to boot.
+ENDTEXT
+MENU LABEL Boot existing OS
+COM32 boot/syslinux/chain.c32
+APPEND hd0 0
+
+# http://www.memtest.org/
+LABEL memtest
+MENU LABEL Run Memtest86+ (RAM test)
+LINUX boot/memtest
+
+# http://hdt-project.org/
+LABEL hdt
+MENU LABEL Hardware Information (HDT)
+COM32 hdt.c32
+APPEND modules_alias=boot/syslinux/hdt/modalias.gz pciids=boot/syslinux/hdt/pciids.gz
+
+LABEL reboot
+MENU LABEL Reboot
+COM32 boot/syslinux/reboot.c32
+
+LABEL poweroff
+MENU LABEL Power Off
+COMBOOT boot/syslinux/poweroff.com
+
+ONTIMEOUT arch32
diff --git a/configs/releng/syslinux.dual/syslinux.cfg b/configs/releng/syslinux.dual/syslinux.cfg
index ac92998..1040d3f 100644
--- a/configs/releng/syslinux.dual/syslinux.cfg
+++ b/configs/releng/syslinux.dual/syslinux.cfg
@@ -1,12 +1,5 @@
-DEFAULT choose
-PROMPT 0
+DEFAULT loadconfig
 
-LABEL choose
-KERNEL ifcpu64.c32
-APPEND have64 -- nohave64
-
-LABEL have64
-CONFIG syslinux_both.cfg
-
-LABEL nohave64
-CONFIG syslinux_32only.cfg
+LABEL loadconfig
+  CONFIG /%INSTALL_DIR%/boot/syslinux/archiso.cfg
+  APPEND /%INSTALL_DIR%/
diff --git a/configs/releng/syslinux.dual/syslinux_32only.cfg b/configs/releng/syslinux.dual/syslinux_32only.cfg
deleted file mode 100644
index c7a452d..0000000
--- a/configs/releng/syslinux.dual/syslinux_32only.cfg
+++ /dev/null
@@ -1,3 +0,0 @@
-INCLUDE syslinux_head.cfg
-INCLUDE syslinux_arch32.cfg
-INCLUDE syslinux_tail.cfg
diff --git a/configs/releng/syslinux.dual/syslinux_arch32.cfg b/configs/releng/syslinux.dual/syslinux_arch32.cfg
deleted file mode 100644
index 9b4030e..0000000
--- a/configs/releng/syslinux.dual/syslinux_arch32.cfg
+++ /dev/null
@@ -1,11 +0,0 @@
-LABEL arch32
-TEXT HELP
-Boot the Arch Linux (i686) live medium. It allows you to install Arch Linux or
-perform system maintenance.
-ENDTEXT
-MENU LABEL Boot Arch Linux (i686)
-LINUX /%INSTALL_DIR%/boot/i686/vmlinuz
-INITRD /%INSTALL_DIR%/boot/i686/archiso.img
-APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL%
-# Next line should be uncommented when prepare enviroment to boot from PXE.
-#IPAPPEND 3
diff --git a/configs/releng/syslinux.dual/syslinux_arch64.cfg b/configs/releng/syslinux.dual/syslinux_arch64.cfg
deleted file mode 100644
index 6cc644d..0000000
--- a/configs/releng/syslinux.dual/syslinux_arch64.cfg
+++ /dev/null
@@ -1,11 +0,0 @@
-LABEL arch64
-TEXT HELP
-Boot the Arch Linux (x86_64) live medium. It allows you to install Arch Linux or
-perform system maintenance.
-ENDTEXT
-MENU LABEL Boot Arch Linux (x86_64)
-LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz
-INITRD /%INSTALL_DIR%/boot/x86_64/archiso.img
-APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL%
-# Next line should be uncommented when prepare enviroment to boot from PXE.
-#IPAPPEND 3
diff --git a/configs/releng/syslinux.dual/syslinux_both.cfg b/configs/releng/syslinux.dual/syslinux_both.cfg
deleted file mode 100644
index 9cd1584..0000000
--- a/configs/releng/syslinux.dual/syslinux_both.cfg
+++ /dev/null
@@ -1,4 +0,0 @@
-INCLUDE syslinux_head.cfg
-INCLUDE syslinux_arch32.cfg
-INCLUDE syslinux_arch64.cfg
-INCLUDE syslinux_tail.cfg
diff --git a/configs/releng/syslinux.dual/syslinux_head.cfg b/configs/releng/syslinux.dual/syslinux_head.cfg
deleted file mode 100644
index f46ba78..0000000
--- a/configs/releng/syslinux.dual/syslinux_head.cfg
+++ /dev/null
@@ -1,28 +0,0 @@
-SERIAL 0 38400
-DEFAULT vesamenu.c32
-PROMPT 0
-MENU TITLE Arch Linux
-MENU BACKGROUND splash.png
-TIMEOUT 3000
-
-MENU WIDTH 78
-MENU MARGIN 4
-MENU ROWS 7
-MENU VSHIFT 10
-MENU TIMEOUTROW 13
-MENU TABMSGROW 11
-MENU CMDLINEROW 11
-MENU HELPMSGROW 16
-MENU HELPMSGENDROW 29
-
-# Refer to http://syslinux.zytor.com/wiki/index.php/Doc/menu
-
-MENU COLOR border       30;44   #40ffffff #a0000000 std
-MENU COLOR title        1;36;44 #9033ccff #a0000000 std
-MENU COLOR sel          7;37;40 #e0ffffff #20ffffff all
-MENU COLOR unsel        37;44   #50ffffff #a0000000 std
-MENU COLOR help         37;40   #c0ffffff #a0000000 std
-MENU COLOR timeout_msg  37;40   #80ffffff #00000000 std
-MENU COLOR timeout      1;37;40 #c0ffffff #00000000 std
-MENU COLOR msg07        37;40   #90ffffff #a0000000 std
-MENU COLOR tabmsg       31;40   #30ffffff #00000000 std
diff --git a/configs/releng/syslinux.dual/syslinux_tail.cfg b/configs/releng/syslinux.dual/syslinux_tail.cfg
deleted file mode 100644
index 7dd1270..0000000
--- a/configs/releng/syslinux.dual/syslinux_tail.cfg
+++ /dev/null
@@ -1,29 +0,0 @@
-LABEL existing
-TEXT HELP
-Boot an existing operating system. Press TAB to edit the disk and partition
-number to boot.
-ENDTEXT
-MENU LABEL Boot existing OS
-COM32 chain.c32
-APPEND hd0 0
-
-# http://www.memtest.org/
-LABEL memtest
-MENU LABEL Run Memtest86+ (RAM test)
-LINUX /%INSTALL_DIR%/boot/memtest
-
-# http://hdt-project.org/
-LABEL hdt
-MENU LABEL Hardware Information (HDT)
-COM32 hdt.c32
-APPEND modules_alias=hdt/modalias.gz pciids=hdt/pciids.gz
-
-LABEL reboot
-MENU LABEL Reboot
-COM32 reboot.c32
-
-LABEL poweroff
-MENU LABEL Power Off
-COMBOOT poweroff.com
-
-ONTIMEOUT arch32
diff --git a/configs/releng/syslinux/archiso.cfg b/configs/releng/syslinux/archiso.cfg
new file mode 100644
index 0000000..e508bcc
--- /dev/null
+++ b/configs/releng/syslinux/archiso.cfg
@@ -0,0 +1,69 @@
+SERIAL 0 38400
+DEFAULT boot/syslinux/vesamenu.c32
+PROMPT 0
+MENU TITLE Arch Linux
+MENU BACKGROUND boot/syslinux/splash.png
+TIMEOUT 3000
+
+MENU WIDTH 78
+MENU MARGIN 4
+MENU ROWS 6
+MENU VSHIFT 10
+MENU TIMEOUTROW 13
+MENU TABMSGROW 11
+MENU CMDLINEROW 11
+MENU HELPMSGROW 16
+MENU HELPMSGENDROW 29
+
+# Refer to http://syslinux.zytor.com/wiki/index.php/Doc/menu
+
+MENU COLOR border       30;44   #40ffffff #a0000000 std
+MENU COLOR title        1;36;44 #9033ccff #a0000000 std
+MENU COLOR sel          7;37;40 #e0ffffff #20ffffff all
+MENU COLOR unsel        37;44   #50ffffff #a0000000 std
+MENU COLOR help         37;40   #c0ffffff #a0000000 std
+MENU COLOR timeout_msg  37;40   #80ffffff #00000000 std
+MENU COLOR timeout      1;37;40 #c0ffffff #00000000 std
+MENU COLOR msg07        37;40   #90ffffff #a0000000 std
+MENU COLOR tabmsg       31;40   #30ffffff #00000000 std
+
+LABEL arch
+TEXT HELP
+Boot the Arch Linux live medium. It allows you to install Arch Linux or
+perform system maintenance.
+ENDTEXT
+MENU LABEL Boot Arch Linux
+LINUX boot/%ARCH%/vmlinuz
+INITRD boot/%ARCH%/archiso.img
+APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL%
+IPAPPEND 3
+
+LABEL existing
+TEXT HELP
+Boot an existing operating system. Press TAB to edit the disk and partition
+number to boot.
+ENDTEXT
+MENU LABEL Boot existing OS
+COM32 boot/syslinux/chain.c32
+APPEND hd0 0
+
+# http://www.memtest.org/
+LABEL memtest
+MENU LABEL Run Memtest86+ (RAM test)
+LINUX boot/memtest
+
+# http://hdt-project.org/
+LABEL hdt
+MENU LABEL Hardware Information (HDT)
+COM32 boot/syslinux/hdt.c32
+APPEND modules_alias=boot/syslinux/hdt/modalias.gz pciids=boot/syslinux/hdt/pciids.gz
+
+LABEL reboot
+MENU LABEL Reboot
+COM32 boot/syslinux/reboot.c32
+
+LABEL poweroff
+MENU LABEL Power Off
+COMBOOT boot/syslinux/poweroff.com
+
+ONTIMEOUT arch
diff --git a/configs/releng/syslinux/syslinux.cfg b/configs/releng/syslinux/syslinux.cfg
index 7762278..1040d3f 100644
--- a/configs/releng/syslinux/syslinux.cfg
+++ b/configs/releng/syslinux/syslinux.cfg
@@ -1,70 +1,5 @@
-SERIAL 0 38400
-DEFAULT vesamenu.c32
-PROMPT 0
-MENU TITLE Arch Linux
-MENU BACKGROUND splash.png
-TIMEOUT 3000
+DEFAULT loadconfig
 
-MENU WIDTH 78
-MENU MARGIN 4
-MENU ROWS 6
-MENU VSHIFT 10
-MENU TIMEOUTROW 13
-MENU TABMSGROW 11
-MENU CMDLINEROW 11
-MENU HELPMSGROW 16
-MENU HELPMSGENDROW 29
-
-# Refer to http://syslinux.zytor.com/wiki/index.php/Doc/menu
-
-MENU COLOR border       30;44   #40ffffff #a0000000 std
-MENU COLOR title        1;36;44 #9033ccff #a0000000 std
-MENU COLOR sel          7;37;40 #e0ffffff #20ffffff all
-MENU COLOR unsel        37;44   #50ffffff #a0000000 std
-MENU COLOR help         37;40   #c0ffffff #a0000000 std
-MENU COLOR timeout_msg  37;40   #80ffffff #00000000 std
-MENU COLOR timeout      1;37;40 #c0ffffff #00000000 std
-MENU COLOR msg07        37;40   #90ffffff #a0000000 std
-MENU COLOR tabmsg       31;40   #30ffffff #00000000 std
-
-LABEL arch
-TEXT HELP
-Boot the Arch Linux live medium. It allows you to install Arch Linux or
-perform system maintenance.
-ENDTEXT
-MENU LABEL Boot Arch Linux
-LINUX /%INSTALL_DIR%/boot/%ARCH%/vmlinuz
-INITRD /%INSTALL_DIR%/boot/%ARCH%/archiso.img
-APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL%
-# Next line should be uncommented when prepare enviroment to boot from PXE.
-#IPAPPEND 3
-
-LABEL existing
-TEXT HELP
-Boot an existing operating system. Press TAB to edit the disk and partition
-number to boot.
-ENDTEXT
-MENU LABEL Boot existing OS
-COM32 chain.c32
-APPEND hd0 0
-
-# http://www.memtest.org/
-LABEL memtest
-MENU LABEL Run Memtest86+ (RAM test)
-LINUX /%INSTALL_DIR%/boot/memtest
-
-# http://hdt-project.org/
-LABEL hdt
-MENU LABEL Hardware Information (HDT)
-COM32 hdt.c32
-APPEND modules_alias=hdt/modalias.gz pciids=hdt/pciids.gz
-
-LABEL reboot
-MENU LABEL Reboot
-COM32 reboot.c32
-
-LABEL poweroff
-MENU LABEL Power Off
-COMBOOT poweroff.com
-
-ONTIMEOUT arch
+LABEL loadconfig
+  CONFIG /%INSTALL_DIR%/boot/syslinux/archiso.cfg
+  APPEND /%INSTALL_DIR%/
-- 
1.7.7.4



More information about the arch-releng mailing list