This moves urandom to *bsd only and adds seedrng as a separate service for Linux. This fixes #510
		
			
				
	
	
		
			102 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			102 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/sh
 | 
						|
 | 
						|
set -e
 | 
						|
set -u
 | 
						|
 | 
						|
os="$1"
 | 
						|
net="$2"
 | 
						|
rc_libexecdir="$3"
 | 
						|
sysconfdir="$4"
 | 
						|
sysvinit="$5"
 | 
						|
 | 
						|
init_d_dir="${sysconfdir}/init.d"
 | 
						|
leveldir="${sysconfdir}/runlevels"
 | 
						|
sysinitdir="${leveldir}/sysinit"
 | 
						|
bootdir="${leveldir}/boot"
 | 
						|
defaultdir="${leveldir}/default"
 | 
						|
nonetworkdir="${leveldir}/nonetwork"
 | 
						|
shutdowndir="${leveldir}/shutdown"
 | 
						|
 | 
						|
sysinit=
 | 
						|
case "${os}" in
 | 
						|
	Linux)
 | 
						|
		sysinit="${sysinit} cgroups devfs dmesg sysfs"
 | 
						|
		;;
 | 
						|
esac
 | 
						|
 | 
						|
boot="bootmisc fsck hostname localmount loopback root swap sysctl"
 | 
						|
if [ "${net}" = yes ]; then
 | 
						|
	boot="${boot} network staticroute"
 | 
						|
fi
 | 
						|
boot_BSD="hostid newsyslog savecore syslogd urandom"
 | 
						|
 | 
						|
case "${os}" in
 | 
						|
	DragonFly)
 | 
						|
		boot="${boot} ${boot_BSD}"
 | 
						|
		;;
 | 
						|
	FreeBSD|GNU-kFreeBSD)
 | 
						|
		boot="${boot} ${boot_BSD} adjkerntz dumpon modules syscons"
 | 
						|
		;;
 | 
						|
	Linux)
 | 
						|
		boot="${boot} binfmt hwclock keymaps modules mtab procfs
 | 
						|
		save-keymaps save-termencoding seedrng termencoding"
 | 
						|
		;;
 | 
						|
	NetBSD)
 | 
						|
		boot="${boot} ${boot_BSD} devdb swap-blk tys wscons"
 | 
						|
		;;
 | 
						|
esac
 | 
						|
 | 
						|
default="local netmount"
 | 
						|
 | 
						|
nonetwork="local"
 | 
						|
 | 
						|
shutdown="savecache"
 | 
						|
case "${os}" in
 | 
						|
	Linux)
 | 
						|
		shutdown="${shutdown} killprocs mount-ro"
 | 
						|
		;;
 | 
						|
esac
 | 
						|
 | 
						|
if ! test -d "${DESTDIR}${sysinitdir}"; then
 | 
						|
	install -d "${DESTDIR}${sysinitdir}"
 | 
						|
	for x in ${sysinit}; do
 | 
						|
		ln -snf "${init_d_dir}/$x" "${DESTDIR}${sysinitdir}/$x"
 | 
						|
	done
 | 
						|
fi
 | 
						|
 | 
						|
if ! test -d "${DESTDIR}${bootdir}"; then
 | 
						|
	install -d "${DESTDIR}${bootdir}"
 | 
						|
	for x in ${boot}; do
 | 
						|
		ln -snf "${init_d_dir}/$x" "${DESTDIR}${bootdir}/$x"
 | 
						|
	done
 | 
						|
fi
 | 
						|
 | 
						|
if ! test -d "${DESTDIR}${defaultdir}"; then
 | 
						|
	install -d "${DESTDIR}${defaultdir}"
 | 
						|
	for x in ${default}; do
 | 
						|
		ln -snf "${init_d_dir}/$x" "${DESTDIR}${defaultdir}/$x"
 | 
						|
	done
 | 
						|
fi
 | 
						|
 | 
						|
if ! test -d "${DESTDIR}${nonetworkdir}"; then
 | 
						|
	install -d "${DESTDIR}${nonetworkdir}"
 | 
						|
	for x in ${nonetwork}; do
 | 
						|
		ln -snf "${init_d_dir}/$x" "${DESTDIR}${nonetworkdir}/$x"
 | 
						|
	done
 | 
						|
fi
 | 
						|
 | 
						|
if ! test -d "${DESTDIR}${shutdowndir}"; then
 | 
						|
	install -d "${DESTDIR}${shutdowndir}"
 | 
						|
	for x in ${shutdown}; do
 | 
						|
		ln -snf "${init_d_dir}/$x" "${DESTDIR}${shutdowndir}/$x"
 | 
						|
	done
 | 
						|
fi
 | 
						|
if test "${sysvinit}" = yes && test "${os}" = Linux; then \
 | 
						|
	for x in tty1 tty2 tty3 tty4 tty5 tty6; do
 | 
						|
		ln -snf "${init_d_dir}/agetty" "${DESTDIR}/${init_d_dir}/agetty.$x"
 | 
						|
		ln -snf "${init_d_dir}/agetty.$x" "${DESTDIR}/${defaultdir}/agetty.$x"
 | 
						|
	done;
 | 
						|
fi
 | 
						|
 | 
						|
ln -snf "${rc_libexecdir}"/sh/functions.sh "${DESTDIR}/${init_d_dir}"
 |