[arch-releng] [PATCH] Initialize pacman keyring on bootup

Dave Reisner d at falconindy.com
Sat Jun 23 20:06:04 EDT 2012


On Mon, Jun 18, 2012 at 07:06:02PM +0200, Pierre Schmitz wrote:
> This will allow users to install packages within the live environment.
> We use the haveged daemon to increase entropy from CPU timings.
> 
> See http://www.issihosts.com/haveged/ for details.
> 
> Signed-off-by: Pierre Schmitz <pierre at archlinux.de>
> ---
>  configs/releng/packages.i686                   |    1 +
>  configs/releng/packages.x86_64                 |    1 +
>  configs/releng/root-image/etc/rc.conf          |    2 +-
>  configs/releng/root-image/etc/rc.d/pacman-init |   36 ++++++++++++++++++++++++
>  4 Dateien geändert, 39 Zeilen hinzugefügt(+), 1 Zeile entfernt(-)
>  create mode 100755 configs/releng/root-image/etc/rc.d/pacman-init
> 
> diff --git a/configs/releng/packages.i686 b/configs/releng/packages.i686
> index 4e29737..6012e7c 100644
> --- a/configs/releng/packages.i686
> +++ b/configs/releng/packages.i686
> @@ -14,6 +14,7 @@ efibootmgr
>  elinks
>  gnu-netcat
>  gptfdisk
> +haveged
>  hdparm
>  ipw2100-fw
>  ipw2200-fw
> diff --git a/configs/releng/packages.x86_64 b/configs/releng/packages.x86_64
> index 4e29737..6012e7c 100644
> --- a/configs/releng/packages.x86_64
> +++ b/configs/releng/packages.x86_64
> @@ -14,6 +14,7 @@ efibootmgr
>  elinks
>  gnu-netcat
>  gptfdisk
> +haveged
>  hdparm
>  ipw2100-fw
>  ipw2200-fw
> diff --git a/configs/releng/root-image/etc/rc.conf b/configs/releng/root-image/etc/rc.conf
> index a3e3d8a..90aa930 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)
> +DAEMONS=(hwclock syslog-ng haveged pacman-init)
> diff --git a/configs/releng/root-image/etc/rc.d/pacman-init b/configs/releng/root-image/etc/rc.d/pacman-init
> new file mode 100755
> index 0000000..1b8d93f
> --- /dev/null
> +++ b/configs/releng/root-image/etc/rc.d/pacman-init
> @@ -0,0 +1,36 @@
> +#!/bin/bash
> +
> +. /etc/rc.conf
> +. /etc/rc.d/functions
> +
> +case "$1" in
> +	start)
> +		stat_busy "Initializing pacman keyring"
> +		pacman-key --init >/dev/null 2>&1 \
> +			&& pacman-key --populate archlinux >/dev/null 2>&1
> +		if [[ $? -gt 0 ]]; then

This is a lot more natural if you put the success condition first.

if { cmd1 && cmd2; } &>/dev/null; then
  # success
else
  # fail
fi

> +			stat_fail
> +			exit 1
> +		else
> +			add_daemon pacman-init
> +			stat_done
> +		fi
> +		;;
> +
> +	stop)
> +		stat_busy "Removing pacman keyring"
> +		rm -rf /etc/pacman.d/gnupg
> +		rm_daemon pacman-init
> +		stat_done
> +		;;

This just blows my mind. I realize that this script will never live
outside a liveCD, but why? What's the use case where youd want to
destroy this?

> +
> +	restart)
> +		$0 stop
> +		$0 start
> +		;;
> +
> +	*)
> +		echo "usage: $0 {start|stop|restart"

sed 's/"$/}"/'

> +esac
> +
> +exit 0
> -- 
> 1.7.10.4


More information about the arch-releng mailing list