[arch-releng] [RFC] [PATCH] [configs/releng] Replace rc.d/archiso with initscripts hooks.

Gerardo Exequiel Pozzi vmlinuz386 at yahoo.com.ar
Thu Aug 18 18:15:06 EDT 2011


On 08/17/2011 10:19 PM, Gerardo Exequiel Pozzi wrote:
> In this way:
> * Prepare locales requested by boot param mostly early possible.
> * Setup special console at end of rc.sysinit
>
> Remove unneded include from automated_script (already included by rc.conf)
>
> Signed-off-by: Gerardo Exequiel Pozzi<vmlinuz386 at yahoo.com.ar>
> ---
>   configs/releng/root-image/etc/rc.conf              |    2 +-
>   configs/releng/root-image/etc/rc.d/archiso         |   45 --------------------
>   .../etc/rc.d/functions.d/automated_script          |    2 -
>   .../etc/rc.d/functions.d/prepare_locale_gen        |   11 +++++
>   .../etc/rc.d/functions.d/setup_special_console     |   25 +++++++++++
>   5 files changed, 37 insertions(+), 48 deletions(-)
>   delete mode 100755 configs/releng/root-image/etc/rc.d/archiso
>   create mode 100644 configs/releng/root-image/etc/rc.d/functions.d/prepare_locale_gen
>   create mode 100644 configs/releng/root-image/etc/rc.d/functions.d/setup_special_console
>
> diff --git a/configs/releng/root-image/etc/rc.conf b/configs/releng/root-image/etc/rc.conf
> index 42084f6..a3e3d8a 100644
> --- a/configs/releng/root-image/etc/rc.conf
> +++ b/configs/releng/root-image/etc/rc.conf
> @@ -30,4 +30,4 @@ USELVM="no"
>
>   HOSTNAME="archiso"
>
> -DAEMONS=(hwclock syslog-ng archiso)
> +DAEMONS=(hwclock syslog-ng)
> diff --git a/configs/releng/root-image/etc/rc.d/archiso b/configs/releng/root-image/etc/rc.d/archiso
> deleted file mode 100755
> index cc930f6..0000000
> --- a/configs/releng/root-image/etc/rc.d/archiso
> +++ /dev/null
> @@ -1,45 +0,0 @@
> -# vim: set ft=sh:
> -. /etc/rc.conf
> -. /etc/rc.d/functions
> -
> -do_locale_gen ()
> -{
> -    if [[ ${LOCALE} != "en_US.UTF-8" ]]; then
> -        stat_busy "Generating locales..."
> -            sed -i "s/#\(${LOCALE/[@.]*}\)/\1/" /etc/locale.gen
> -            /usr/sbin/locale-gen>  /dev/null
> -        stat_done
> -    fi
> -}
> -
> -# If an alternate console was specified on the kernel command line,
> -# start agetty on it too.
> -do_special_console()
> -{
> -    local cmdline_console
> -    if cmdline_console=$(kernel_cmdline console); then
> -        stat_busy "Starting agetty on console: ${cmdline_console}"
> -            local port options baud rts
> -            port=${cmdline_console%%,*}
> -            options=${cmdline_console#${port}}
> -            options=${options#,}
> -            baud=${options%%[neo]*}
> -            [[ ${options} =~ r$ ]]&&  rts="-h"
> -            if ! grep -q "^${port}" /etc/securetty; then
> -                echo ${port}>>  /etc/securetty
> -            fi
> -            if ! grep -q "^z0:" /etc/inittab; then
> -                echo "z0:2345:respawn:/sbin/agetty -8 -s ${rts} ${baud:-9600} ${port} linux">>  /etc/inittab
> -            fi
> -            /sbin/telinit q
> -        stat_done
> -    fi
> -}
> -
> -case "$1" in
> -  start)
> -    do_locale_gen
> -    do_special_console
> -    ;;
> -esac
> -exit 0
> diff --git a/configs/releng/root-image/etc/rc.d/functions.d/automated_script b/configs/releng/root-image/etc/rc.d/functions.d/automated_script
> index edb8ea3..7a35acb 100644
> --- a/configs/releng/root-image/etc/rc.d/functions.d/automated_script
> +++ b/configs/releng/root-image/etc/rc.d/functions.d/automated_script
> @@ -1,5 +1,3 @@
> -. /etc/archiso/functions
> -
>   automated_script ()
>   {
>       script="$(kernel_cmdline script)"
> diff --git a/configs/releng/root-image/etc/rc.d/functions.d/prepare_locale_gen b/configs/releng/root-image/etc/rc.d/functions.d/prepare_locale_gen
> new file mode 100644
> index 0000000..47ed79d
> --- /dev/null
> +++ b/configs/releng/root-image/etc/rc.d/functions.d/prepare_locale_gen
> @@ -0,0 +1,11 @@
> +prepare_locale_gen ()
> +{
> +    if [[ ${LOCALE} != "en_US.UTF-8" ]]; then
> +        stat_busy "Generating locales..."
> +            sed -i "s/#\(${LOCALE/[@.]*}\)/\1/" /etc/locale.gen
> +            /usr/sbin/locale-gen>  /dev/null
> +        stat_done
> +    fi
> +}
> +
> +add_hook sysinit_postmount prepare_locale_gen
> diff --git a/configs/releng/root-image/etc/rc.d/functions.d/setup_special_console b/configs/releng/root-image/etc/rc.d/functions.d/setup_special_console
> new file mode 100644
> index 0000000..93553a6
> --- /dev/null
> +++ b/configs/releng/root-image/etc/rc.d/functions.d/setup_special_console
> @@ -0,0 +1,25 @@
> +# If an alternate console was specified on the kernel command line,
> +# start agetty on it too.
> +setup_special_console()
> +{
> +    local cmdline_console
> +    if cmdline_console=$(kernel_cmdline console); then
> +        stat_busy "Starting agetty on console: ${cmdline_console}"
> +            local port options baud rts
> +            port=${cmdline_console%%,*}
> +            options=${cmdline_console#${port}}
> +            options=${options#,}
> +            baud=${options%%[neo]*}
> +            [[ ${options} =~ r$ ]]&&  rts="-h"
> +            if ! grep -q "^${port}" /etc/securetty; then
> +                echo ${port}>>  /etc/securetty
> +            fi
> +            if ! grep -q "^z0:" /etc/inittab; then
> +                echo "z0:2345:respawn:/sbin/agetty -8 -s ${rts} ${baud:-9600} ${port} linux">>  /etc/inittab
> +            fi
> +            /sbin/telinit q
> +        stat_done
> +    fi
> +}
> +
> +add_hook sysinit_end setup_special_console
Pushed this to master, (changed [[ ${options} =~ r$ ]] to [[ ${options} 
== *r ]]) Thanks Dave :P

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




More information about the arch-releng mailing list