From 61ed1bd70d9c60a26d962d9c4d0acb1496c182ab Mon Sep 17 00:00:00 2001 From: mid-kid Date: Wed, 7 Dec 2016 17:14:03 +0100 Subject: [PATCH] Run dhcpcd standalone without rc.inet1 --- doinst.sh | 2 +- etc/dhcpcd.conf | 44 +++++ etc/dhcpcd.conf.orig | 47 +++++ etc/rc.d/rc.M | 388 +++++++++++++++++++++++++++++++++++++++ etc/rc.d/rc.M.orig | 386 ++++++++++++++++++++++++++++++++++++++ etc/rc.d/rc.dhcpcd | 18 ++ rocket-config.SlackBuild | 13 +- 7 files changed, 895 insertions(+), 3 deletions(-) create mode 100644 etc/dhcpcd.conf create mode 100644 etc/dhcpcd.conf.orig create mode 100644 etc/rc.d/rc.M create mode 100644 etc/rc.d/rc.M.orig create mode 100644 etc/rc.d/rc.dhcpcd diff --git a/doinst.sh b/doinst.sh index 298aee8..0cdaa6a 100644 --- a/doinst.sh +++ b/doinst.sh @@ -8,7 +8,7 @@ config() { mv $NEW $OLD elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy rm $NEW - elif [ "`cat $OLD | md5sum`" = "$ORIGMD5 -" ]; then + elif [ "$ORIGMD5" ] && [ "`cat $OLD | md5sum`" = "$ORIGMD5 -" ]; then mv $OLD $OLD.orig mv $NEW $OLD fi diff --git a/etc/dhcpcd.conf b/etc/dhcpcd.conf new file mode 100644 index 0000000..8fb58c0 --- /dev/null +++ b/etc/dhcpcd.conf @@ -0,0 +1,44 @@ +# A sample configuration for dhcpcd. +# See dhcpcd.conf(5) for details. + +# Allow users of this group to interact with dhcpcd via the control socket. +#controlgroup wheel + +# Inform the DHCP server of our hostname for DDNS. +hostname + +# Use the hardware address of the interface for the Client ID. +#clientid +# or +# Use the same DUID + IAID as set in DHCPv6 for DHCPv4 ClientID as per RFC4361. +# Some non-RFC compliant DHCP servers do not reply with this set. +# In this case, comment out duid and enable clientid above. +duid + +# Persist interface configuration when dhcpcd exits. +persistent + +# Rapid commit support. +# Safe to enable by default because it requires the equivalent option set +# on the server to actually work. +option rapid_commit + +# A list of options to request from the DHCP server. +option domain_name_servers, domain_name, domain_search, host_name +option classless_static_routes +# Most distributions have NTP support. +option ntp_servers +# Respect the network MTU. +# Some interface drivers reset when changing the MTU so disabled by default. +#option interface_mtu + +# A ServerID is required by RFC2131. +require dhcp_server_identifier + +# Generate Stable Private IPv6 Addresses instead of hardware based ones +slaac private + +# A hook script is provided to lookup the hostname if not set by the DHCP +# server, but it should not be run by default. +nohook lookup-hostname + diff --git a/etc/dhcpcd.conf.orig b/etc/dhcpcd.conf.orig new file mode 100644 index 0000000..b905007 --- /dev/null +++ b/etc/dhcpcd.conf.orig @@ -0,0 +1,47 @@ +# A sample configuration for dhcpcd. +# See dhcpcd.conf(5) for details. + +# Allow users of this group to interact with dhcpcd via the control socket. +#controlgroup wheel + +# Inform the DHCP server of our hostname for DDNS. +hostname + +# Use the hardware address of the interface for the Client ID. +#clientid +# or +# Use the same DUID + IAID as set in DHCPv6 for DHCPv4 ClientID as per RFC4361. +# Some non-RFC compliant DHCP servers do not reply with this set. +# In this case, comment out duid and enable clientid above. +duid + +# Persist interface configuration when dhcpcd exits. +persistent + +# Rapid commit support. +# Safe to enable by default because it requires the equivalent option set +# on the server to actually work. +option rapid_commit + +# A list of options to request from the DHCP server. +option domain_name_servers, domain_name, domain_search, host_name +option classless_static_routes +# Most distributions have NTP support. +option ntp_servers +# Respect the network MTU. +# Some interface drivers reset when changing the MTU so disabled by default. +#option interface_mtu + +# A ServerID is required by RFC2131. +require dhcp_server_identifier + +# Generate Stable Private IPv6 Addresses instead of hardware based ones +slaac private + +# A hook script is provided to lookup the hostname if not set by the DHCP +# server, but it should not be run by default. +nohook lookup-hostname + +# We run wpa_supplicant from rc.inet1 and/or NM handles it on its own +nohook wpa_supplicant + diff --git a/etc/rc.d/rc.M b/etc/rc.d/rc.M new file mode 100644 index 0000000..bfc71d2 --- /dev/null +++ b/etc/rc.d/rc.M @@ -0,0 +1,388 @@ +#!/bin/sh +# +# rc.M This file is executed by init(8) when the system is being +# initialized for one of the "multi user" run levels (i.e. +# levels 1 through 6). It usually does mounting of file +# systems et al. +# +# Version: @(#)/etc/rc.d/rc.M 2.23 Wed Feb 26 19:20:58 PST 2003 +# +# Author: Fred N. van Kempen, +# Heavily modified by Patrick Volkerding +# + +# Tell the viewers what's going to happen. +echo "Going multiuser..." + +# Update all the shared library links: +if [ -x /sbin/ldconfig ]; then + echo "Updating shared library links: /sbin/ldconfig &" + /sbin/ldconfig & +fi + +# Screen blanks after 15 minutes idle time, and powers down in one hour +# if the kernel supports APM or ACPI power management: +/bin/setterm -blank 15 -powersave powerdown -powerdown 60 + +# Set the hostname. +if [ -r /etc/HOSTNAME ]; then + /bin/hostname $(cat /etc/HOSTNAME | cut -f1 -d .) +else + # fall back on this old default: + echo "darkstar.example.net" > /etc/HOSTNAME + /bin/hostname darkstar +fi + +# Set the permissions on /var/log/dmesg according to whether the kernel +# permits non-root users to access kernel dmesg information: +if [ -r /proc/sys/kernel/dmesg_restrict ]; then + if [ $(cat /proc/sys/kernel/dmesg_restrict) = 1 ]; then + touch /var/log/dmesg + chmod 640 /var/log/dmesg + fi +else + touch /var/log/dmesg + chmod 644 /var/log/dmesg +fi +# Save the contents of 'dmesg': +/bin/dmesg -s 65536 > /var/log/dmesg + +# Initialize PCMCIA devices: +# +# NOTE: This used to be started near the top of rc.S so that PCMCIA devices +# could be fsck'ed along with the other drives. This had some unfortunate +# side effects, however, since root isn't yet read-write, and /var might not +# even be mounted the .pid files can't be correctly written in /var/run and +# the pcmcia system can't be correctly shut down. If you want some PCMCIA +# partition to be mounted at boot (or when the card is inserted) then add +# the appropriate lines to /etc/pcmcia/scsi.opts. +# +# Note that the stuff in /etc/pcmcia/ is only for 2.4.x kernels using +# 16-bit PCMCIA cards (not 32-bit Cardbus cards!). For example, with a +# wireless card you might need to set options in /etc/pcmcia OR in +# /etc/rc.d/rc.wireless.conf, or even in /etc/rc.d/rc.inet1.conf (with +# extra options if needed for the encryption key, ESSID, etc.) +# +# Hopefully this situation will be unified in the future, but for now +# that's how it is... +# +if [ -x /etc/rc.d/rc.pcmcia ]; then + . /etc/rc.d/rc.pcmcia start + # The cards might need a little extra time here to initialize. + sleep 5 +fi + +# Start the system logger. +if [ -x /etc/rc.d/rc.syslog -a -x /usr/sbin/syslogd -a -d /var/log ]; then + . /etc/rc.d/rc.syslog start +fi + +# Update the X font indexes: +if [ -x /usr/bin/fc-cache ]; then + echo "Updating X font indexes: /usr/bin/fc-cache -f &" + /usr/bin/fc-cache -f & +fi + +# Run rc.udev again. This will start udev if it is not already running +# (for example, upon return from runlevel 1), otherwise it will trigger it +# to look for device changes and to generate persistent rules if needed. +if grep -wq sysfs /proc/mounts && grep -q devtmpfs /proc/filesystems ; then + if ! grep -wq nohotplug /proc/cmdline ; then + if [ -x /etc/rc.d/rc.udev ]; then + /bin/sh /etc/rc.d/rc.udev start + fi + fi +fi + +# Initialize the networking hardware. +if [ -x /etc/rc.d/rc.inet1 ]; then + . /etc/rc.d/rc.inet1 +fi + +# Start D-Bus: +if [ -x /etc/rc.d/rc.messagebus ]; then + sh /etc/rc.d/rc.messagebus start +fi + +# Start Bluetooth: +if [ -x /etc/rc.d/rc.bluetooth ]; then + sh /etc/rc.d/rc.bluetooth start +fi + +# Start wicd or networkmanager: +if [ -x /etc/rc.d/rc.wicd -a -x /usr/sbin/wicd ]; then + sh /etc/rc.d/rc.wicd start +elif [ -x /etc/rc.d/rc.networkmanager ]; then + sh /etc/rc.d/rc.networkmanager start +elif [ -x /etc/rc.d/rc.dhcpcd ]; then + sh /etc/rc.d/rc.dhcpcd start +fi + +# Start networking daemons: +if [ -x /etc/rc.d/rc.inet2 ]; then + . /etc/rc.d/rc.inet2 +fi + +# Look for additional USB/SCSI/IEEE1394/etc devices on multiple LUNs: +if [ -x /etc/rc.d/rc.scanluns ]; then + . /etc/rc.d/rc.scanluns +fi + +# Mount any additional filesystem types that haven't already been mounted: +mount -a -v 2> /dev/null | grep -v -e "already mounted" -e "ignored" | cut -f 1 -d : | tr -d ' ' | while read dev ; do mount | grep "${dev} " ; done + +# Start the Control Script for automounter: +if [ -x /etc/rc.d/rc.autofs ]; then + sh /etc/rc.d/rc.autofs start +fi + +# Start the Network Time Protocol daemon: +if [ -x /etc/rc.d/rc.ntpd ]; then + sh /etc/rc.d/rc.ntpd start +fi + +# Remove stale locks and junk files (must be done after mount -a!) +/bin/rm -f /var/lock/* /var/spool/uucp/LCK..* /tmp/.X*lock /tmp/core /core 2> /dev/null +/bin/rm -rf /var/spool/cron/cron.?????? 2> /dev/null + +# Remove stale hunt sockets so the game can start. +if [ -r /tmp/hunt -o -r /tmp/hunt.stats ]; then + echo "Removing your stale hunt sockets from /tmp." + /bin/rm -f /tmp/hunt* +fi + +# Ensure basic filesystem permissions sanity. +chmod 755 / 2> /dev/null +chmod 1777 /tmp /var/tmp + +# Start ACPI daemon. +if [ -x /etc/rc.d/rc.acpid ]; then + . /etc/rc.d/rc.acpid start +fi + +# Enable CPU frequency scaling: +if [ -x /etc/rc.d/rc.cpufreq ]; then + . /etc/rc.d/rc.cpufreq start +fi + +# Update any existing icon cache files: +if find /usr/share/icons -maxdepth 2 2> /dev/null | grep -q icon-theme.cache ; then + for theme_dir in /usr/share/icons/* ; do + if [ -r ${theme_dir}/icon-theme.cache ]; then + echo "Updating icon-theme.cache in ${theme_dir}..." + /usr/bin/gtk-update-icon-cache -t -f ${theme_dir} 1> /dev/null 2> /dev/null & + fi + done + # This would be a large file and probably shouldn't be there. + if [ -r /usr/share/icons/icon-theme.cache ]; then + echo "Deleting icon-theme.cache in /usr/share/icons..." + #/usr/bin/gtk-update-icon-cache -t -f /usr/share/icons 1> /dev/null 2> /dev/null & + rm -f /usr/share/icons/icon-theme.cache + fi +fi + +# Update mime database: +if [ -x /usr/bin/update-mime-database -a -d /usr/share/mime ]; then + echo "Updating MIME database: /usr/bin/update-mime-database /usr/share/mime &" + /usr/bin/update-mime-database /usr/share/mime 1> /dev/null 2> /dev/null & +fi + +# Start console-kit-daemon: +if [ -x /etc/rc.d/rc.consolekit ]; then + sh /etc/rc.d/rc.consolekit start +fi + +# Start HAL: +if [ -x /etc/rc.d/rc.hald ]; then + sh /etc/rc.d/rc.hald start +fi + +# Start system-wide PulseAudio daemon (not recommended, nor required in +# order to use PulseAudio -- see the script for details): +if [ -x /etc/rc.d/rc.pulseaudio ]; then + . /etc/rc.d/rc.pulseaudio start +fi + +# These GTK+/pango files need to be kept up to date for +# proper input method, pixbuf loaders, and font support. +if [ -x /usr/bin/update-gtk-immodules ]; then + echo "Updating gtk.immodules:" + echo " /usr/bin/update-gtk-immodules &" + /usr/bin/update-gtk-immodules > /dev/null 2>&1 & +fi +if [ -x /usr/bin/update-gdk-pixbuf-loaders ]; then + echo "Updating gdk-pixbuf.loaders:" + echo " /usr/bin/update-gdk-pixbuf-loaders &" + /usr/bin/update-gdk-pixbuf-loaders > /dev/null 2>&1 & +fi +if [ -x /usr/bin/update-pango-querymodules ]; then + echo "Updating pango.modules:" + echo " /usr/bin/update-pango-querymodules &" + /usr/bin/update-pango-querymodules > /dev/null 2>&1 & +fi +if [ -x /usr/bin/glib-compile-schemas ]; then + echo "Compiling GSettings XML schema files:" + echo " /usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas &" + /usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas >/dev/null 2>&1 & +fi + +# Start dnsmasq, a simple DHCP/DNS server: +if [ -x /etc/rc.d/rc.dnsmasq ]; then + /etc/rc.d/rc.dnsmasq start +fi + +# Start snmpd: +if [ -x /etc/rc.d/rc.snmpd ]; then + /etc/rc.d/rc.snmpd start +fi + +# Start the print spooling system. This will usually be LPRng (lpd) or CUPS. +if [ -x /etc/rc.d/rc.cups ]; then + # Start CUPS: + /etc/rc.d/rc.cups start +elif [ -x /etc/rc.d/rc.lprng ]; then + # Start LPRng (lpd): + . /etc/rc.d/rc.lprng start +fi + +# Start netatalk. (a file/print server for Macs using Appletalk) +if [ -x /etc/rc.d/rc.atalk ]; then + /etc/rc.d/rc.atalk start +fi + +# Start smartd, which monitors the status of S.M.A.R.T. compatible +# hard drives and reports any problems. Note some devices (which aren't +# smart, I guess ;) will hang if probed by smartd, so it's commented out +# by default. +#if [ -x /usr/sbin/smartd ]; then +# /usr/sbin/smartd +#fi + +# Monitor the UPS with genpowerd. +# To use this, uncomment this section and edit your settings in +# /etc/genpowerd.conf (serial device, UPS type, etc). For more information, +# see "man genpowerd" or the extensive documentation in the +# /usr/doc/genpower-*/ directory. +# You'll also need to configure a similar block in /etc/rc.d/rc.6 if you want +# support for stopping the UPS's inverter after the machine halts. +#if [ -x /sbin/genpowerd ]; then +# echo "Starting genpowerd daemon..." +# /sbin/genpowerd +#fi + +# Turn on process accounting. To enable process accounting, make sure the +# option for BSD process accounting is enabled in your kernel, and then +# create the file /var/log/pacct (touch /var/log/pacct). By default, process +# accounting is not enabled (since /var/log/pacct does not exist). This is +# because the log file can get VERY large. +if [ -x /sbin/accton -a -r /var/log/pacct ]; then + chmod 640 /var/log/pacct + /sbin/accton /var/log/pacct +fi + +# Start crond (Dillon's crond): +# If you want cron to actually log activity to /var/log/cron, then change +# -l notice to -l info to increase the logging level. +if [ -x /usr/sbin/crond ]; then + /usr/sbin/crond -l notice +fi + +# Start atd (manages jobs scheduled with 'at'): +if [ -x /usr/sbin/atd ]; then + /usr/sbin/atd -b 15 -l 1 +fi + +# Slackware-Mini-Quota-HOWTO: +# To really activate quotas, you'll need to add 'usrquota' and/or 'grpquota' to +# the appropriate partitions as listed in /etc/fstab. Here's an example: +# +# /dev/hda2 /home ext3 defaults,usrquota 1 1 +# +# You'll then need to setup initial quota files at the top of the partitions +# to support quota, like this: +# touch /home/aquota.user /home/aquota.group +# chmod 600 /home/aquota.user /home/aquota.group +# +# Then, reboot to activate the system. +# To edit user quotas, use 'edquota'. See 'man edquota'. Also, the +# official Quota Mini-HOWTO has lots of useful information. That can be found +# here: /usr/doc/Linux-HOWTOs/Quota + +# Check quotas and then turn quota system on: +if grep -q quota /etc/fstab ; then + for quotafs in $(awk '/quota/ {print $2}' /etc/fstab) ; do + /bin/rm -f $quotafs/{a,}quota.{group,user}.new + done + if [ -x /sbin/quotacheck ]; then + echo "Checking filesystem quotas: /sbin/quotacheck -avugm" + /sbin/quotacheck -avugm + fi + if [ -x /sbin/quotaon ]; then + echo "Activating filesystem quotas: /sbin/quotaon -avug" + /sbin/quotaon -avug + fi +fi + +# Start the SASL authentication server. This provides SASL +# authentication services for sendmail: +if [ -x /etc/rc.d/rc.saslauthd ]; then + . /etc/rc.d/rc.saslauthd start +fi + +# Start the sendmail daemon: +if [ -x /etc/rc.d/rc.sendmail ]; then + . /etc/rc.d/rc.sendmail start +fi + +# Load ALSA (sound) defaults: +if [ -x /etc/rc.d/rc.alsa ]; then + . /etc/rc.d/rc.alsa +fi + +# Load a custom screen font if the user has an rc.font script. +if [ -x /etc/rc.d/rc.font ]; then + . /etc/rc.d/rc.font +fi + +# Load a custom keymap if the user has an rc.keymap script. +if [ -x /etc/rc.d/rc.keymap ]; then + . /etc/rc.d/rc.keymap +fi + +# Start the MySQL database: +if [ -x /etc/rc.d/rc.mysqld ]; then + . /etc/rc.d/rc.mysqld start +fi + +# Start Apache web server: +if [ -x /etc/rc.d/rc.httpd ]; then + . /etc/rc.d/rc.httpd start +fi + +# Start OpenLDAP: +if [ -x /etc/rc.d/rc.openldap ]; then + . /etc/rc.d/rc.openldap start +fi + +# Start Samba (a file/print server for Win95/NT machines). +# Samba can be started in /etc/inetd.conf instead. +if [ -x /etc/rc.d/rc.samba ]; then + . /etc/rc.d/rc.samba start +fi + +# Start the GPM mouse server: +if [ -x /etc/rc.d/rc.gpm ]; then + . /etc/rc.d/rc.gpm start +fi + +# If there are SystemV init scripts for this runlevel, run them. +if [ -x /etc/rc.d/rc.sysvinit ]; then + . /etc/rc.d/rc.sysvinit +fi + +# Start the local setup procedure. +if [ -x /etc/rc.d/rc.local ]; then + . /etc/rc.d/rc.local +fi + +# All done. diff --git a/etc/rc.d/rc.M.orig b/etc/rc.d/rc.M.orig new file mode 100644 index 0000000..1d480ca --- /dev/null +++ b/etc/rc.d/rc.M.orig @@ -0,0 +1,386 @@ +#!/bin/sh +# +# rc.M This file is executed by init(8) when the system is being +# initialized for one of the "multi user" run levels (i.e. +# levels 1 through 6). It usually does mounting of file +# systems et al. +# +# Version: @(#)/etc/rc.d/rc.M 2.23 Wed Feb 26 19:20:58 PST 2003 +# +# Author: Fred N. van Kempen, +# Heavily modified by Patrick Volkerding +# + +# Tell the viewers what's going to happen. +echo "Going multiuser..." + +# Update all the shared library links: +if [ -x /sbin/ldconfig ]; then + echo "Updating shared library links: /sbin/ldconfig &" + /sbin/ldconfig & +fi + +# Screen blanks after 15 minutes idle time, and powers down in one hour +# if the kernel supports APM or ACPI power management: +/bin/setterm -blank 15 -powersave powerdown -powerdown 60 + +# Set the hostname. +if [ -r /etc/HOSTNAME ]; then + /bin/hostname $(cat /etc/HOSTNAME | cut -f1 -d .) +else + # fall back on this old default: + echo "darkstar.example.net" > /etc/HOSTNAME + /bin/hostname darkstar +fi + +# Set the permissions on /var/log/dmesg according to whether the kernel +# permits non-root users to access kernel dmesg information: +if [ -r /proc/sys/kernel/dmesg_restrict ]; then + if [ $(cat /proc/sys/kernel/dmesg_restrict) = 1 ]; then + touch /var/log/dmesg + chmod 640 /var/log/dmesg + fi +else + touch /var/log/dmesg + chmod 644 /var/log/dmesg +fi +# Save the contents of 'dmesg': +/bin/dmesg -s 65536 > /var/log/dmesg + +# Initialize PCMCIA devices: +# +# NOTE: This used to be started near the top of rc.S so that PCMCIA devices +# could be fsck'ed along with the other drives. This had some unfortunate +# side effects, however, since root isn't yet read-write, and /var might not +# even be mounted the .pid files can't be correctly written in /var/run and +# the pcmcia system can't be correctly shut down. If you want some PCMCIA +# partition to be mounted at boot (or when the card is inserted) then add +# the appropriate lines to /etc/pcmcia/scsi.opts. +# +# Note that the stuff in /etc/pcmcia/ is only for 2.4.x kernels using +# 16-bit PCMCIA cards (not 32-bit Cardbus cards!). For example, with a +# wireless card you might need to set options in /etc/pcmcia OR in +# /etc/rc.d/rc.wireless.conf, or even in /etc/rc.d/rc.inet1.conf (with +# extra options if needed for the encryption key, ESSID, etc.) +# +# Hopefully this situation will be unified in the future, but for now +# that's how it is... +# +if [ -x /etc/rc.d/rc.pcmcia ]; then + . /etc/rc.d/rc.pcmcia start + # The cards might need a little extra time here to initialize. + sleep 5 +fi + +# Start the system logger. +if [ -x /etc/rc.d/rc.syslog -a -x /usr/sbin/syslogd -a -d /var/log ]; then + . /etc/rc.d/rc.syslog start +fi + +# Update the X font indexes: +if [ -x /usr/bin/fc-cache ]; then + echo "Updating X font indexes: /usr/bin/fc-cache -f &" + /usr/bin/fc-cache -f & +fi + +# Run rc.udev again. This will start udev if it is not already running +# (for example, upon return from runlevel 1), otherwise it will trigger it +# to look for device changes and to generate persistent rules if needed. +if grep -wq sysfs /proc/mounts && grep -q devtmpfs /proc/filesystems ; then + if ! grep -wq nohotplug /proc/cmdline ; then + if [ -x /etc/rc.d/rc.udev ]; then + /bin/sh /etc/rc.d/rc.udev start + fi + fi +fi + +# Initialize the networking hardware. +if [ -x /etc/rc.d/rc.inet1 ]; then + . /etc/rc.d/rc.inet1 +fi + +# Start D-Bus: +if [ -x /etc/rc.d/rc.messagebus ]; then + sh /etc/rc.d/rc.messagebus start +fi + +# Start Bluetooth: +if [ -x /etc/rc.d/rc.bluetooth ]; then + sh /etc/rc.d/rc.bluetooth start +fi + +# Start wicd or networkmanager: +if [ -x /etc/rc.d/rc.wicd -a -x /usr/sbin/wicd ]; then + sh /etc/rc.d/rc.wicd start +elif [ -x /etc/rc.d/rc.networkmanager ]; then + sh /etc/rc.d/rc.networkmanager start +fi + +# Start networking daemons: +if [ -x /etc/rc.d/rc.inet2 ]; then + . /etc/rc.d/rc.inet2 +fi + +# Look for additional USB/SCSI/IEEE1394/etc devices on multiple LUNs: +if [ -x /etc/rc.d/rc.scanluns ]; then + . /etc/rc.d/rc.scanluns +fi + +# Mount any additional filesystem types that haven't already been mounted: +mount -a -v 2> /dev/null | grep -v -e "already mounted" -e "ignored" | cut -f 1 -d : | tr -d ' ' | while read dev ; do mount | grep "${dev} " ; done + +# Start the Control Script for automounter: +if [ -x /etc/rc.d/rc.autofs ]; then + sh /etc/rc.d/rc.autofs start +fi + +# Start the Network Time Protocol daemon: +if [ -x /etc/rc.d/rc.ntpd ]; then + sh /etc/rc.d/rc.ntpd start +fi + +# Remove stale locks and junk files (must be done after mount -a!) +/bin/rm -f /var/lock/* /var/spool/uucp/LCK..* /tmp/.X*lock /tmp/core /core 2> /dev/null +/bin/rm -rf /var/spool/cron/cron.?????? 2> /dev/null + +# Remove stale hunt sockets so the game can start. +if [ -r /tmp/hunt -o -r /tmp/hunt.stats ]; then + echo "Removing your stale hunt sockets from /tmp." + /bin/rm -f /tmp/hunt* +fi + +# Ensure basic filesystem permissions sanity. +chmod 755 / 2> /dev/null +chmod 1777 /tmp /var/tmp + +# Start ACPI daemon. +if [ -x /etc/rc.d/rc.acpid ]; then + . /etc/rc.d/rc.acpid start +fi + +# Enable CPU frequency scaling: +if [ -x /etc/rc.d/rc.cpufreq ]; then + . /etc/rc.d/rc.cpufreq start +fi + +# Update any existing icon cache files: +if find /usr/share/icons -maxdepth 2 2> /dev/null | grep -q icon-theme.cache ; then + for theme_dir in /usr/share/icons/* ; do + if [ -r ${theme_dir}/icon-theme.cache ]; then + echo "Updating icon-theme.cache in ${theme_dir}..." + /usr/bin/gtk-update-icon-cache -t -f ${theme_dir} 1> /dev/null 2> /dev/null & + fi + done + # This would be a large file and probably shouldn't be there. + if [ -r /usr/share/icons/icon-theme.cache ]; then + echo "Deleting icon-theme.cache in /usr/share/icons..." + #/usr/bin/gtk-update-icon-cache -t -f /usr/share/icons 1> /dev/null 2> /dev/null & + rm -f /usr/share/icons/icon-theme.cache + fi +fi + +# Update mime database: +if [ -x /usr/bin/update-mime-database -a -d /usr/share/mime ]; then + echo "Updating MIME database: /usr/bin/update-mime-database /usr/share/mime &" + /usr/bin/update-mime-database /usr/share/mime 1> /dev/null 2> /dev/null & +fi + +# Start console-kit-daemon: +if [ -x /etc/rc.d/rc.consolekit ]; then + sh /etc/rc.d/rc.consolekit start +fi + +# Start HAL: +if [ -x /etc/rc.d/rc.hald ]; then + sh /etc/rc.d/rc.hald start +fi + +# Start system-wide PulseAudio daemon (not recommended, nor required in +# order to use PulseAudio -- see the script for details): +if [ -x /etc/rc.d/rc.pulseaudio ]; then + . /etc/rc.d/rc.pulseaudio start +fi + +# These GTK+/pango files need to be kept up to date for +# proper input method, pixbuf loaders, and font support. +if [ -x /usr/bin/update-gtk-immodules ]; then + echo "Updating gtk.immodules:" + echo " /usr/bin/update-gtk-immodules &" + /usr/bin/update-gtk-immodules > /dev/null 2>&1 & +fi +if [ -x /usr/bin/update-gdk-pixbuf-loaders ]; then + echo "Updating gdk-pixbuf.loaders:" + echo " /usr/bin/update-gdk-pixbuf-loaders &" + /usr/bin/update-gdk-pixbuf-loaders > /dev/null 2>&1 & +fi +if [ -x /usr/bin/update-pango-querymodules ]; then + echo "Updating pango.modules:" + echo " /usr/bin/update-pango-querymodules &" + /usr/bin/update-pango-querymodules > /dev/null 2>&1 & +fi +if [ -x /usr/bin/glib-compile-schemas ]; then + echo "Compiling GSettings XML schema files:" + echo " /usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas &" + /usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas >/dev/null 2>&1 & +fi + +# Start dnsmasq, a simple DHCP/DNS server: +if [ -x /etc/rc.d/rc.dnsmasq ]; then + /etc/rc.d/rc.dnsmasq start +fi + +# Start snmpd: +if [ -x /etc/rc.d/rc.snmpd ]; then + /etc/rc.d/rc.snmpd start +fi + +# Start the print spooling system. This will usually be LPRng (lpd) or CUPS. +if [ -x /etc/rc.d/rc.cups ]; then + # Start CUPS: + /etc/rc.d/rc.cups start +elif [ -x /etc/rc.d/rc.lprng ]; then + # Start LPRng (lpd): + . /etc/rc.d/rc.lprng start +fi + +# Start netatalk. (a file/print server for Macs using Appletalk) +if [ -x /etc/rc.d/rc.atalk ]; then + /etc/rc.d/rc.atalk start +fi + +# Start smartd, which monitors the status of S.M.A.R.T. compatible +# hard drives and reports any problems. Note some devices (which aren't +# smart, I guess ;) will hang if probed by smartd, so it's commented out +# by default. +#if [ -x /usr/sbin/smartd ]; then +# /usr/sbin/smartd +#fi + +# Monitor the UPS with genpowerd. +# To use this, uncomment this section and edit your settings in +# /etc/genpowerd.conf (serial device, UPS type, etc). For more information, +# see "man genpowerd" or the extensive documentation in the +# /usr/doc/genpower-*/ directory. +# You'll also need to configure a similar block in /etc/rc.d/rc.6 if you want +# support for stopping the UPS's inverter after the machine halts. +#if [ -x /sbin/genpowerd ]; then +# echo "Starting genpowerd daemon..." +# /sbin/genpowerd +#fi + +# Turn on process accounting. To enable process accounting, make sure the +# option for BSD process accounting is enabled in your kernel, and then +# create the file /var/log/pacct (touch /var/log/pacct). By default, process +# accounting is not enabled (since /var/log/pacct does not exist). This is +# because the log file can get VERY large. +if [ -x /sbin/accton -a -r /var/log/pacct ]; then + chmod 640 /var/log/pacct + /sbin/accton /var/log/pacct +fi + +# Start crond (Dillon's crond): +# If you want cron to actually log activity to /var/log/cron, then change +# -l notice to -l info to increase the logging level. +if [ -x /usr/sbin/crond ]; then + /usr/sbin/crond -l notice +fi + +# Start atd (manages jobs scheduled with 'at'): +if [ -x /usr/sbin/atd ]; then + /usr/sbin/atd -b 15 -l 1 +fi + +# Slackware-Mini-Quota-HOWTO: +# To really activate quotas, you'll need to add 'usrquota' and/or 'grpquota' to +# the appropriate partitions as listed in /etc/fstab. Here's an example: +# +# /dev/hda2 /home ext3 defaults,usrquota 1 1 +# +# You'll then need to setup initial quota files at the top of the partitions +# to support quota, like this: +# touch /home/aquota.user /home/aquota.group +# chmod 600 /home/aquota.user /home/aquota.group +# +# Then, reboot to activate the system. +# To edit user quotas, use 'edquota'. See 'man edquota'. Also, the +# official Quota Mini-HOWTO has lots of useful information. That can be found +# here: /usr/doc/Linux-HOWTOs/Quota + +# Check quotas and then turn quota system on: +if grep -q quota /etc/fstab ; then + for quotafs in $(awk '/quota/ {print $2}' /etc/fstab) ; do + /bin/rm -f $quotafs/{a,}quota.{group,user}.new + done + if [ -x /sbin/quotacheck ]; then + echo "Checking filesystem quotas: /sbin/quotacheck -avugm" + /sbin/quotacheck -avugm + fi + if [ -x /sbin/quotaon ]; then + echo "Activating filesystem quotas: /sbin/quotaon -avug" + /sbin/quotaon -avug + fi +fi + +# Start the SASL authentication server. This provides SASL +# authentication services for sendmail: +if [ -x /etc/rc.d/rc.saslauthd ]; then + . /etc/rc.d/rc.saslauthd start +fi + +# Start the sendmail daemon: +if [ -x /etc/rc.d/rc.sendmail ]; then + . /etc/rc.d/rc.sendmail start +fi + +# Load ALSA (sound) defaults: +if [ -x /etc/rc.d/rc.alsa ]; then + . /etc/rc.d/rc.alsa +fi + +# Load a custom screen font if the user has an rc.font script. +if [ -x /etc/rc.d/rc.font ]; then + . /etc/rc.d/rc.font +fi + +# Load a custom keymap if the user has an rc.keymap script. +if [ -x /etc/rc.d/rc.keymap ]; then + . /etc/rc.d/rc.keymap +fi + +# Start the MySQL database: +if [ -x /etc/rc.d/rc.mysqld ]; then + . /etc/rc.d/rc.mysqld start +fi + +# Start Apache web server: +if [ -x /etc/rc.d/rc.httpd ]; then + . /etc/rc.d/rc.httpd start +fi + +# Start OpenLDAP: +if [ -x /etc/rc.d/rc.openldap ]; then + . /etc/rc.d/rc.openldap start +fi + +# Start Samba (a file/print server for Win95/NT machines). +# Samba can be started in /etc/inetd.conf instead. +if [ -x /etc/rc.d/rc.samba ]; then + . /etc/rc.d/rc.samba start +fi + +# Start the GPM mouse server: +if [ -x /etc/rc.d/rc.gpm ]; then + . /etc/rc.d/rc.gpm start +fi + +# If there are SystemV init scripts for this runlevel, run them. +if [ -x /etc/rc.d/rc.sysvinit ]; then + . /etc/rc.d/rc.sysvinit +fi + +# Start the local setup procedure. +if [ -x /etc/rc.d/rc.local ]; then + . /etc/rc.d/rc.local +fi + +# All done. diff --git a/etc/rc.d/rc.dhcpcd b/etc/rc.d/rc.dhcpcd new file mode 100644 index 0000000..a1b0eea --- /dev/null +++ b/etc/rc.d/rc.dhcpcd @@ -0,0 +1,18 @@ +#!/bin/sh +# +# /etc/rc.d/rc.dhcpcd +# +# Start/stop the DHCP daemon. +# +# This script doesn't do anything other than starting dhcpcp for all interfaces. For more functionality see rc.inet1. + +case "$1" in +'start') + dhcpcd -b + ;; +'stop') + dhcpcd -k + ;; +*) + echo "Usage: $0 start|stop" +esac diff --git a/rocket-config.SlackBuild b/rocket-config.SlackBuild index 906f2a3..d63f23d 100755 --- a/rocket-config.SlackBuild +++ b/rocket-config.SlackBuild @@ -2,7 +2,7 @@ PKGNAM=rocket-config VERSION=14.2 -BUILD=${BUILD:-1rocket} +BUILD=${BUILD:-2rocket} ARCH=noarch CWD=$(pwd) @@ -18,8 +18,17 @@ cat $CWD/doinst.sh > $PKG/install/doinst.sh find $CWD/etc -type f ! -name '*.orig' -printf '%P\n' | while read config; do echo Installing /etc/$config install -Dm644 $CWD/etc/$config $PKG/etc/$config.new - echo config etc/$config.new $(cat $CWD/etc/$config.orig | md5sum | cut -d ' ' -f 1) >> $PKG/install/doinst.sh + + if [ -r $CWD/etc/$config.orig ]; then + echo config etc/$config.new $(cat $CWD/etc/$config.orig | md5sum | cut -d ' ' -f 1) >> $PKG/install/doinst.sh + else + echo config etc/$config.new >> $PKG/install/doinst.sh + fi done +# Set some special permissions +chmod 755 $PKG/etc/rc.d/rc.M.new +chmod 755 $PKG/etc/rc.d/rc.dhcpcd + cd $PKG /sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz