diff --git a/scripts/amazon_ebs_image_inner_chroot_script_after.sh b/scripts/amazon_ebs_image_inner_chroot_script_after.sh index aeafbdd..75d66ed 100755 --- a/scripts/amazon_ebs_image_inner_chroot_script_after.sh +++ b/scripts/amazon_ebs_image_inner_chroot_script_after.sh @@ -3,6 +3,16 @@ /usr/sbin/env-update . /etc/profile +sd_enable() { + [[ -x /usr/bin/systemctl ]] && \ + systemctl --no-reload enable "${1}.service" +} + +sd_disable() { + [[ -x /usr/bin/systemctl ]] && \ + systemctl --no-reload disable "${1}.service" +} + echo echo "Configuring AMI root filesystem" echo "Ext4 is the expected filesystem type" @@ -11,28 +21,32 @@ echo "ec2-user is the expected user" echo # setup networking, make sure networkmanager is gone -rc-update del NetworkManager boot -rc-update del NetworkManager default -# add eth0, should get dhcp by default already -rc-update add net.eth0 default +rc-update add NetworkManager default || rc-update add net.eth0 default +sd_enable NetworkManager # drop other useless services rc-update del sabayonlive boot +sd_disable sabayonlive rc-update del x-setup boot +sd_disable x-setup # Enable ssh rc-update add sshd default +sd_enable sshd # Enable cron rc-update add vixie-cron default +sd_enable vixie-cron # delete root password, only ssh allowed passwd -d root # create ec2-user -useradd -d /home/ec2-user -k /etc/skel -g users -G wheel,disk,crontab -m ec2-user || exit 1 +useradd -d /home/ec2-user -k /etc/skel -g users -G wheel,disk,crontab \ + -m ec2-user || exit 1 # enable passwordless sudo for ec2-user -echo -e "\n# molecule generated rule\nec2-user ALL=NOPASSWD: ALL" >> /etc/sudoers +echo -e "\n# molecule generated rule\nec2-user ALL=NOPASSWD: ALL" \ + >> /etc/sudoers # setup UTC clock sed -i 's:clock=".*":clock="UTC":' /etc/conf.d/hwclock || exit 1 diff --git a/scripts/image_generic_inner_chroot_script_after.sh b/scripts/image_generic_inner_chroot_script_after.sh index 2e0b714..54259d3 100755 --- a/scripts/image_generic_inner_chroot_script_after.sh +++ b/scripts/image_generic_inner_chroot_script_after.sh @@ -3,21 +3,35 @@ /usr/sbin/env-update . /etc/profile +sd_enable() { + [[ -x /usr/bin/systemctl ]] && \ + systemctl --no-reload enable "${1}.service" +} + +sd_disable() { + [[ -x /usr/bin/systemctl ]] && \ + systemctl --no-reload disable "${1}.service" +} + echo echo "Configuring AMI chroot" echo # setup networking, make sure networkmanager is gone rc-update del networkmanager default &> /dev/null +sd_disable NetworkManager # add eth0, should get dhcp by default already rc-update add net.eth0 default # drop other useless services rc-update del sabayonlive boot rc-update del x-setup boot +sd_disable sabayonlive +sd_disable x-setup # Enable ssh rc-update add sshd default +sd_enable sshd # delete root password, only ssh allowed passwd -d root diff --git a/scripts/inner_chroot_script.sh b/scripts/inner_chroot_script.sh index 60b4e8c..712f39c 100755 --- a/scripts/inner_chroot_script.sh +++ b/scripts/inner_chroot_script.sh @@ -3,6 +3,16 @@ /usr/sbin/env-update . /etc/profile +sd_enable() { + [[ -x /usr/bin/systemctl ]] && \ + systemctl --no-reload enable "${1}.service" +} + +sd_disable() { + [[ -x /usr/bin/systemctl ]] && \ + systemctl --no-reload disable "${1}.service" +} + # create /proc if it doesn't exist # rsync doesn't copy it if [ ! -d "/proc" ]; then @@ -59,6 +69,7 @@ sed -i "/^#rc_interactive=/ s/#//" /etc/rc.conf # enable cd eject on shutdown/reboot rc-update add cdeject shutdown +sd_enable cdeject # setup sudoers [ -e /etc/sudoers ] && sed -i '/NOPASSWD: ALL/ s/^# //' /etc/sudoers diff --git a/scripts/mkloopcard_beagleboard_xm_chroot_hook.sh b/scripts/mkloopcard_beagleboard_xm_chroot_hook.sh index 82de097..3033b73 100755 --- a/scripts/mkloopcard_beagleboard_xm_chroot_hook.sh +++ b/scripts/mkloopcard_beagleboard_xm_chroot_hook.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # This script is executed inside the image chroot before packing up. # Architecture/platform specific code goes here, like kernel install # and configuration @@ -6,16 +6,30 @@ env-update . /etc/profile +sd_enable() { + [[ -x /usr/bin/systemctl ]] && \ + systemctl --no-reload enable "${1}.service" +} + +sd_disable() { + [[ -x /usr/bin/systemctl ]] && \ + systemctl --no-reload disable "${1}.service" +} + setup_displaymanager() { # determine what is the login manager if [ -n "$(equo match --installed gnome-base/gdm -qv)" ]; then sed -i 's/DISPLAYMANAGER=".*"/DISPLAYMANAGER="gdm"/g' /etc/conf.d/xdm + sd_enable gdm elif [ -n "$(equo match --installed lxde-base/lxdm -qv)" ]; then sed -i 's/DISPLAYMANAGER=".*"/DISPLAYMANAGER="lxdm"/g' /etc/conf.d/xdm + sd_enable lxdm elif [ -n "$(equo match --installed kde-base/kdm -qv)" ]; then sed -i 's/DISPLAYMANAGER=".*"/DISPLAYMANAGER="kdm"/g' /etc/conf.d/xdm + sd_enable kdm else sed -i 's/DISPLAYMANAGER=".*"/DISPLAYMANAGER="xdm"/g' /etc/conf.d/xdm + sd_enable xdm fi } @@ -35,24 +49,25 @@ setup_desktop_environment() { } setup_boot() { - # enable sshd by default rc-update add sshd default - # enable logger by default + sd_enable sshd + rc-update add syslog-ng boot + sd_enable syslog-ng + rc-update add vixie-cron boot + sd_enable vixie-cron + # enable dbus, of course, and also NetworkManager rc-update add dbus boot rc-update add NetworkManager default rc-update add NetworkManager-setup default - rc-update del net.eth0 default + sd_enable NetworkManager - # start X.Org by default + rc-update del net.eth0 default rc-update add xdm default - # select the first available kernel eselect uimage set 1 - - # cleaning up deps rc-update --update } diff --git a/scripts/mkloopcard_beaglebone_chroot_hook.sh b/scripts/mkloopcard_beaglebone_chroot_hook.sh index 7163197..0114a02 100755 --- a/scripts/mkloopcard_beaglebone_chroot_hook.sh +++ b/scripts/mkloopcard_beaglebone_chroot_hook.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # This script is executed inside the image chroot before packing up. # Architecture/platform specific code goes here, like kernel install # and configuration @@ -6,14 +6,30 @@ env-update . /etc/profile +sd_enable() { + [[ -x /usr/bin/systemctl ]] && \ + systemctl --no-reload enable "${1}.service" +} + +sd_disable() { + [[ -x /usr/bin/systemctl ]] && \ + systemctl --no-reload disable "${1}.service" +} + setup_boot() { - # enable sshd by default rc-update add sshd default + sd_enable sshd + rc-update add syslog-ng boot + sd_enable syslog-ng + rc-update add vixie-cron boot + sd_enable vixie-cron + rc-update add dbus boot rc-update add NetworkManager default rc-update add NetworkManager-setup default + sd_enable NetworkManager # select the first available kernel eselect uimage set 1 diff --git a/scripts/mkloopcard_efikamx_chroot_hook.sh b/scripts/mkloopcard_efikamx_chroot_hook.sh index fd4ba67..ad13e8c 100755 --- a/scripts/mkloopcard_efikamx_chroot_hook.sh +++ b/scripts/mkloopcard_efikamx_chroot_hook.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # This script is executed inside the image chroot before packing up. # Architecture/platform specific code goes here, like kernel install # and configuration @@ -6,16 +6,30 @@ env-update . /etc/profile +sd_enable() { + [[ -x /usr/bin/systemctl ]] && \ + systemctl --no-reload enable "${1}.service" +} + +sd_disable() { + [[ -x /usr/bin/systemctl ]] && \ + systemctl --no-reload disable "${1}.service" +} + setup_displaymanager() { # determine what is the login manager if [ -n "$(equo match --installed gnome-base/gdm -qv)" ]; then sed -i 's/DISPLAYMANAGER=".*"/DISPLAYMANAGER="gdm"/g' /etc/conf.d/xdm + sd_enable gdm elif [ -n "$(equo match --installed lxde-base/lxdm -qv)" ]; then sed -i 's/DISPLAYMANAGER=".*"/DISPLAYMANAGER="lxdm"/g' /etc/conf.d/xdm + sd_enable lxdm elif [ -n "$(equo match --installed kde-base/kdm -qv)" ]; then sed -i 's/DISPLAYMANAGER=".*"/DISPLAYMANAGER="kdm"/g' /etc/conf.d/xdm + sd_enable kdm else sed -i 's/DISPLAYMANAGER=".*"/DISPLAYMANAGER="xdm"/g' /etc/conf.d/xdm + sd_enable xdm fi } @@ -35,24 +49,24 @@ setup_desktop_environment() { } setup_boot() { - # enable sshd by default rc-update add sshd default - # enable logger by default + sd_enable sshd + rc-update add syslog-ng boot + sd_enable syslog-ng + rc-update add vixie-cron boot - # enable dbus, of course, and also NetworkManager + sd_enable vixie-cron + rc-update add dbus boot rc-update add NetworkManager default rc-update add NetworkManager-setup default - rc-update del net.eth0 default + sd_enable NetworkManager - # start X.Org by default + rc-update del net.eth0 default rc-update add xdm default - # select the first available kernel eselect uimage set 1 - - # cleaning up deps rc-update --update } diff --git a/scripts/remaster_generic_inner_chroot_script_after.sh b/scripts/remaster_generic_inner_chroot_script_after.sh index 834293c..e6625f5 100755 --- a/scripts/remaster_generic_inner_chroot_script_after.sh +++ b/scripts/remaster_generic_inner_chroot_script_after.sh @@ -15,6 +15,16 @@ _get_kernel_tag() { fi } +sd_enable() { + [[ -x /usr/bin/systemctl ]] && \ + systemctl --no-reload enable "${1}.service" +} + +sd_disable() { + [[ -x /usr/bin/systemctl ]] && \ + systemctl --no-reload disable "${1}.service" +} + basic_environment_setup() { eselect opengl set xorg-x11 &> /dev/null @@ -22,20 +32,14 @@ basic_environment_setup() { rc-update del xdm default rc-update del xdm boot rc-update add xdm boot + # systemd has specific targets depending on the DM # consolekit must be run at boot level rc-update add consolekit boot + # systemd uses logind - # if it exists - if [ -f "/etc/init.d/hald" ]; then - rc-update del hald boot - rc-update del hald - rc-update add hald boot - fi - - rc-update del music boot - rc-update add music default rc-update del sabayon-mce default + sd_disable sabayon-mce rc-update add nfsmount default local kern_type="$(equo match --installed -q virtual/linux-binary)" @@ -49,6 +53,7 @@ basic_environment_setup() { fi if [ "${do_zfs}" = "1" ]; then rc-update add zfs boot + sd_enable zfs fi # Create a default "games" group so that @@ -60,14 +65,12 @@ basic_environment_setup() { setup_cpufrequtils() { rc-update add cpufrequtils default + sd_enable cpufrequtils } setup_sabayon_mce() { rc-update add sabayon-mce boot - # not needed, done by app-misc/sabayon-mce pkg - # Sabayon Media Center user setup - # source /sbin/sabayon-functions.sh - # sabayon_setup_live_user "sabayonmce" + sd_enable sabayon-mce } switch_kernel() { @@ -89,14 +92,19 @@ setup_displaymanager() { # determine what is the login manager if [ -n "$(equo match --installed gnome-base/gdm -qv)" ]; then sed -i 's/DISPLAYMANAGER=".*"/DISPLAYMANAGER="gdm"/g' /etc/conf.d/xdm + sd_enable gdm elif [ -n "$(equo match --installed lxde-base/lxdm -qv)" ]; then sed -i 's/DISPLAYMANAGER=".*"/DISPLAYMANAGER="lxdm"/g' /etc/conf.d/xdm - elif [ -n "$(equo match --installed x11-misc/lightdm -qv)" ]; then - sed -i 's/DISPLAYMANAGER=".*"/DISPLAYMANAGER="lightdm"/g' /etc/conf.d/xdm + sd_enable lxdm + elif [ -n "$(equo match --installed x11-misc/lightdm -qv)" ]; then + sed -i 's/DISPLAYMANAGER=".*"/DISPLAYMANAGER="lightdm"/g' /etc/conf.d/xdm + sd_enable lightdm elif [ -n "$(equo match --installed kde-base/kdm -qv)" ]; then sed -i 's/DISPLAYMANAGER=".*"/DISPLAYMANAGER="kdm"/g' /etc/conf.d/xdm + sd_enable kdm else sed -i 's/DISPLAYMANAGER=".*"/DISPLAYMANAGER="xdm"/g' /etc/conf.d/xdm + sd_enable xdm fi } @@ -105,6 +113,7 @@ setup_networkmanager() { rc-update del NetworkManager rc-update add NetworkManager default rc-update add NetworkManager-setup default + sd_enable NetworkManager } xfceforensic_remove_skel_stuff() { @@ -151,6 +160,7 @@ setup_virtualbox() { "xf86-video-virtualbox${kernel_tag}" rc-update add virtualbox-guest-additions boot + sd_enable virtualbox-guest-additions } setup_proprietary_gfx_drivers() { @@ -384,6 +394,8 @@ prepare_gnome() { fi rc-update del system-tools-backends boot rc-update add system-tools-backends default + # no systemd counterpart + setup_displaymanager setup_sabayon_mce setup_cpufrequtils diff --git a/scripts/remaster_serverbase_inner_chroot_script_after.sh b/scripts/remaster_serverbase_inner_chroot_script_after.sh index 4f84112..5109358 100755 --- a/scripts/remaster_serverbase_inner_chroot_script_after.sh +++ b/scripts/remaster_serverbase_inner_chroot_script_after.sh @@ -1,13 +1,26 @@ -#!/bin/sh +#!/bin/bash /usr/sbin/env-update . /etc/profile +sd_enable() { + [[ -x /usr/bin/systemctl ]] && \ + systemctl --no-reload enable "${1}.service" +} + +sd_disable() { + [[ -x /usr/bin/systemctl ]] && \ + systemctl --no-reload disable "${1}.service" +} + rc-update del installer-gui boot rc-update del x-setup boot -rc-update del hald boot rc-update del avahi-daemon default +sd_disable installer-gui +sd_disable x-setup +sd_disable avahi-daemon + # A RUNNING NetworkManager is required by Anaconda !! # re-enable rc_hotplug # sed -i 's:^rc_hotplug=.*:rc_hotplug="*":g' /etc/rc.conf diff --git a/scripts/tar_generic_inner_chroot_script_after.sh b/scripts/tar_generic_inner_chroot_script_after.sh index becaaac..98ad898 100755 --- a/scripts/tar_generic_inner_chroot_script_after.sh +++ b/scripts/tar_generic_inner_chroot_script_after.sh @@ -28,6 +28,18 @@ DROP_SERVICES=" termencoding x-setup " +SYSTEMD_DROP_SERVICES=" + alsa-store + alsa-restore + avahi-daemon + installer-gui + installer-text + lvm + mdadm + NetworkManager + sabayonlive + x-setup +" for serv in ${DROP_SERVICES}; do rc-update del ${serv} default @@ -37,6 +49,11 @@ rc-update add vixie-cron default rc-update del udev sysinit rc-update del dmesg sysinit +for serv in ${SYSTEMD_DROP_SERVICES}; do + systemctl --no-reload disable "${serv}.service" +done +systemctl --no-reloab enable vixie-cron.service + # Generate list of installed packages equo query list installed -qv > /etc/sabayon-pkglist