[arch-releng] [RFC] [PATCH] [configs/releng] Rework make_customize_root_image()

Gerardo Exequiel Pozzi vmlinuz386 at yahoo.com.ar
Sun Oct 28 17:12:55 EDT 2012


On 10/25/2012 11:29 PM, Gerardo Exequiel Pozzi wrote:
> Using a separate shell script to customize live-enviroment,
> makes much more readable code.
> Move all thing except:
> * Need network access (name resolving).
> * Need access to some file outside chroot.
>
> Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386 at yahoo.com.ar>
> ---
>   configs/releng/build.sh                            | 32 ++++------------------
>   .../releng/root-image/root/customize_root_image.sh | 25 +++++++++++++++++
>   2 files changed, 31 insertions(+), 26 deletions(-)
>   create mode 100755 configs/releng/root-image/root/customize_root_image.sh
>
> diff --git a/configs/releng/build.sh b/configs/releng/build.sh
> index f65a3f1..8b08d4f 100755
> --- a/configs/releng/build.sh
> +++ b/configs/releng/build.sh
> @@ -164,34 +164,14 @@ make_isolinux() {
>   make_customize_root_image() {
>       if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then
>           cp -af ${script_path}/root-image ${work_dir}
> -        cp -aT ${work_dir}/root-image/etc/skel/ ${work_dir}/root-image/root/
> -        ln -sf /usr/share/zoneinfo/UTC ${work_dir}/root-image/etc/localtime
> -        chmod 750 ${work_dir}/root-image/etc/sudoers.d
> -        chmod 440 ${work_dir}/root-image/etc/sudoers.d/g_wheel
> -        mkdir -p ${work_dir}/root-image/etc/pacman.d
> +
> +        patch ${work_dir}/root-image/usr/bin/pacman-key < ${script_path}/pacman-key-4.0.3_unattended-keyring-init.patch
>           wget -O ${work_dir}/root-image/etc/pacman.d/mirrorlist 'https://www.archlinux.org/mirrorlist/?country=all&protocol=http&use_mirror_status=on'
> +
>           lynx -dump -nolist 'https://wiki.archlinux.org/index.php/Installation_Guide?action=render' >> ${work_dir}/root-image/root/install.txt
> -        sed -i "s/#Server/Server/g" ${work_dir}/root-image/etc/pacman.d/mirrorlist
> -        patch ${work_dir}/root-image/usr/bin/pacman-key < ${script_path}/pacman-key-4.0.3_unattended-keyring-init.patch
> -        sed -i 's/#\(en_US\.UTF-8\)/\1/' ${work_dir}/root-image/etc/locale.gen
> -        sed 's#\(^ExecStart=-/sbin/agetty\)#\1 --autologin root#;
> -             s#\(^Alias=getty.target.wants/\).\+#\1autologin at tty1.service#' \
> -            ${work_dir}/root-image/usr/lib/systemd/system/getty at .service > ${work_dir}/root-image/etc/systemd/system/autologin at .service
> -        mkarchiso ${verbose} -w "${work_dir}" -C "${pacman_conf}" -D "${install_dir}" \
> -            -r 'locale-gen' \
> -            run
> -        mkarchiso ${verbose} -w "${work_dir}" -C "${pacman_conf}" -D "${install_dir}" \
> -            -r 'usermod -s /bin/zsh root' \
> -            run
> -        mkarchiso ${verbose} -w "${work_dir}" -C "${pacman_conf}" -D "${install_dir}" \
> -            -r 'useradd -m -p "" -g users -G "adm,audio,floppy,log,network,rfkill,scanner,storage,optical,power,wheel" -s /bin/zsh arch' \
> -            run
> -        mkarchiso ${verbose} -w "${work_dir}" -C "${pacman_conf}" -D "${install_dir}" \
> -            -r 'systemctl disable getty at tty1.service || true' \
> -            run
> -        mkarchiso ${verbose} -w "${work_dir}" -C "${pacman_conf}" -D "${install_dir}" \
> -            -r 'systemctl enable multi-user.target pacman-init.service autologin at .service dhcpcd.service || true' \
> -            run
> +
> +        mkarchiso ${verbose} -w "${work_dir}" -C "${pacman_conf}" -D "${install_dir}" -r '/root/customize_root_image.sh' run
> +        rm ${work_dir}/root-image/root/customize_root_image.sh
>           : > ${work_dir}/build.${FUNCNAME}
>       fi
>   }
> diff --git a/configs/releng/root-image/root/customize_root_image.sh b/configs/releng/root-image/root/customize_root_image.sh
> new file mode 100755
> index 0000000..cc47845
> --- /dev/null
> +++ b/configs/releng/root-image/root/customize_root_image.sh
> @@ -0,0 +1,25 @@
> +#!/bin/bash
> +
> +set -e -u
> +
> +sed -i 's/#\(en_US\.UTF-8\)/\1/' /etc/locale.gen
> +locale-gen
> +
> +ln -sf /usr/share/zoneinfo/UTC /etc/localtime
> +
> +usermod -s /bin/zsh root
> +cp -aT /etc/skel/ /root/
> +
> +useradd -m -p "" -g users -G "adm,audio,floppy,log,network,rfkill,scanner,storage,optical,power,wheel" -s /bin/zsh arch
> +
> +chmod 750 /etc/sudoers.d
> +chmod 440 /etc/sudoers.d/g_wheel
> +
> +sed -i "s/#Server/Server/g" /etc/pacman.d/mirrorlist
> +
> +sed 's#\(^ExecStart=-/sbin/agetty\)#\1 --autologin root#;
> +     s#\(^Alias=getty.target.wants/\).\+#\1autologin at tty1.service#' \
> +     /usr/lib/systemd/system/getty at .service > /etc/systemd/system/autologin at .service
> +
> +systemctl disable getty at tty1.service
> +systemctl enable multi-user.target pacman-init.service autologin at .service dhcpcd.service

If there are no objections I will merge this now. This does not 
introduce any change on the ISO.

-- 
Gerardo Exequiel Pozzi
\cos^2\alpha + \sin^2\alpha = 1



More information about the arch-releng mailing list