216 lines
8.4 KiB
Bash
216 lines
8.4 KiB
Bash
|
#!/bin/bash
|
||
|
#
|
||
|
# Copyright 2018, F123 Consulting, <information@f123.org>
|
||
|
# Copyright 2018, Kyle, <kyle@free2.ml>
|
||
|
# Copyright 2018, Storm Dragon <storm_dragon@linux-a11y.org>
|
||
|
#
|
||
|
# This is free software; you can redistribute it and/or modify it under the
|
||
|
# terms of the GNU General Public License as published by the Free
|
||
|
# Software Foundation; either version 3, or (at your option) any later
|
||
|
# version.
|
||
|
#
|
||
|
# This software is distributed in the hope that it will be useful,
|
||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||
|
# General Public License for more details.
|
||
|
#
|
||
|
# You should have received a copy of the GNU General Public License
|
||
|
# along with this package; see the file COPYING. If not, write to the Free
|
||
|
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||
|
# 02110-1301, USA.
|
||
|
#
|
||
|
#--code--
|
||
|
|
||
|
# This is a helper script for update-f123light to perform incremental updates based on a timestamp
|
||
|
# It will not be installed to a running system
|
||
|
#
|
||
|
# Incremental updates are only to be performed if their timestamp is later than
|
||
|
# /etc/timestamp-f123light on the system being updated.
|
||
|
# Each update should be formatted as
|
||
|
#
|
||
|
# update yymmddhhmm && {
|
||
|
# do-something here;
|
||
|
# do-something-else here;
|
||
|
# }
|
||
|
# If an update requires a reboot, add
|
||
|
# reboot=true
|
||
|
# anywhere in the update to prompt the user to reboot afterward
|
||
|
#
|
||
|
# Any new updates should be placed at the end of this file for best readability
|
||
|
# It is recommended to skip a line between updates, also for readability
|
||
|
# To get the current date and time in the format, use the command
|
||
|
# \date '+%y%m%d%H%M'
|
||
|
# Remember to add a ; after each line of the update group.
|
||
|
|
||
|
# Log writing function
|
||
|
log() {
|
||
|
while read -r line ; do
|
||
|
echo "$line" | sudo tee -a "$logFile" &> /dev/null
|
||
|
done
|
||
|
}
|
||
|
|
||
|
logFile="/var/log/incremental-updates"
|
||
|
# Clear previous logs
|
||
|
echo -n | sudo tee "$logFile" &> /dev/null
|
||
|
|
||
|
|
||
|
update 1811072200 && {
|
||
|
# Install Pianobar Pandora client on builds last updated before 7 November 2018
|
||
|
sudo pacman -S pianobar-git --noconfirm --needed &> /dev/null;
|
||
|
}
|
||
|
|
||
|
update 1811142036 && {
|
||
|
sudo pacman -S --noconfirm --needed python-magic-wormhole &> /dev/null;
|
||
|
}
|
||
|
|
||
|
update 1811150406 && {
|
||
|
# There has been a change to the pacman repository URL.
|
||
|
# Copy the new pacman.conf file to all systems built earlier than 11 November 2018;
|
||
|
sudo cp /tmp/files-F123Light/files/etc/pacman.conf /etc;
|
||
|
}
|
||
|
|
||
|
update 1811161939 && {
|
||
|
# Install the update-f123light package;
|
||
|
sudo pacman -Sy --noconfirm --needed --overwrite /usr/bin/update-f123light update-f123light &> /dev/null;
|
||
|
}
|
||
|
|
||
|
update 1811191827 && {
|
||
|
# Blacklist non-working bluetooth module;
|
||
|
echo "blacklist btsdio" | sudo tee -a /etc/modules-load.d/bluetooth &> /dev/null;
|
||
|
# Disable bluetooth service;
|
||
|
sudo systemctl -q disable bluetooth;
|
||
|
# Enable new bluetooth service;
|
||
|
sudo systemctl -q enable brcm43438.service;
|
||
|
# Add RHVoice module to speech-dispatcher;
|
||
|
grep -q 'rhvoice.conf' /etc/speech-dispatcher/speechd.conf || sudo sed -i 's/"espeak-mbrola-generic\.conf"/"espeak-mbrola-generic.conf"\n AddModule "rhvoice" "sd_rhvoice" "rhvoice.conf"/' /etc/speech-dispatcher/speechd.conf;
|
||
|
# Create placeholder file for RHVoice;
|
||
|
echo '# Placeholder for the rhvoice module.' | sudo tee /etc/speech-dispatcher/modules/rhvoice.conf &> /dev/null;
|
||
|
}
|
||
|
|
||
|
update 1811281732 && {
|
||
|
# Re-enable the bluetooth service;
|
||
|
sudo systemctl -q enable --now bluetooth;
|
||
|
# Power on the bluetooth adapter;
|
||
|
bluetoothctl power on &> /dev/null;
|
||
|
# Put the bluetooth settings file in place;
|
||
|
sudo cp /tmp/files-F123Light/files/etc/bluetooth/main.conf /etc/bluetooth/main.conf;
|
||
|
# configure speech-dispatcher to use pulseaudio.;
|
||
|
sudo sed -i 's/^\s*AudioOutputMethod.*/ AudioOutputMethod pulse/' /etc/speech-dispatcher/speechd.conf;
|
||
|
}
|
||
|
|
||
|
update 1901151236 && {
|
||
|
# We will need to reboot after this completes for all the groups and users stuff to take affect, and to get pulse started.;
|
||
|
reboot=true;
|
||
|
# Create users and groups;
|
||
|
sudo groupadd --system pulse &> /dev/null;
|
||
|
sudo groupadd --system pulse-access &> /dev/null;
|
||
|
sudo useradd --system -g pulse -G audio -d /var/run/pulse -m -s /bin/nologin pulse &> /dev/null;
|
||
|
sudo gpasswd -a pulse lp &> /dev/null;
|
||
|
sudo gpasswd -a root pulse-access &> /dev/null;
|
||
|
for u in $(awk -v OFS=' ' -F':' '{ if ( $3 >= 1000 && $3 <= 60000 && $7 != "/sbin/nologin" && $7 != "/bin/false" ) print $1 ; }' /etc/passwd) ; do sudo gpasswd -a $u pulse-access &> /dev/null;done;
|
||
|
# Install new packages;
|
||
|
sudo pacman -Sy --noconfirm --needed pulseaudio-bluetooth pulseaudio-alsa &> /dev/null;
|
||
|
# move configuration files into place;
|
||
|
sudo cp -r /tmp/files-F123Light/files/etc/pulse/ /etc;
|
||
|
sudo cp -ru /tmp/files-F123Light/files/etc/dbus-1/ /etc;
|
||
|
sudo systemctl -q enable pulseaudio;
|
||
|
echo "default_driver=pulse" | sudo tee /etc/libao.conf &> /dev/null
|
||
|
}
|
||
|
|
||
|
|
||
|
update 1902200926 && {
|
||
|
# Update nano configuration file;
|
||
|
sudo cp /tmp/files-F123Light/files/etc/nanorc /etc;
|
||
|
# Update Fenrir keyboard layouts;
|
||
|
sudo cp -r /tmp/files-F123Light/files/etc/fenrirscreenreader/keyboard /etc/fenrirscreenreader;
|
||
|
# Switch from speech-dispatcher-git to the newer stable version 0.9.0;
|
||
|
# Remove old unneeded packages.;
|
||
|
# To prevent errors, only remove one package per statement;
|
||
|
sudo pacman -Rdd --noconfirm brltty &> /dev/null;
|
||
|
sudo pacman -Rdd --noconfirm lios-git &> /dev/null;
|
||
|
sudo pacman -Rdd --noconfirm python-espeak &> /dev/null;
|
||
|
sudo pacman -Rdd --noconfirm speech-dispatcher-git &> /dev/null;
|
||
|
# Install new packages.;
|
||
|
sudo pacman -Sy --noconfirm --needed brltty-minimal cfh-client irssi speech-dispatcher &> /dev/null;
|
||
|
# Copy .pacsave for speech-dispatcher into place.;
|
||
|
sudo cp /etc/speech-dispatcher/speechd.conf.pacsave /etc/speech-dispatcher/speechd.conf &> /dev/null;
|
||
|
}
|
||
|
|
||
|
|
||
|
update 1903140649 && {
|
||
|
# Install the horseshoes package.;
|
||
|
sudo pacman -Sy --needed --noconfirm horseshoes-git |& log;
|
||
|
# Install tesseract data packages.;
|
||
|
sudo pacman -S --needed --noconfirm tesseract-data-{ara,eng,fra,por,spa} |& log;
|
||
|
# Update Fenrir keyboard layouts;
|
||
|
sudo cp -rv /tmp/files-F123Light/files/etc/fenrirscreenreader/keyboard /etc/fenrirscreenreader |& log;
|
||
|
}
|
||
|
|
||
|
|
||
|
update 1903300948 && {
|
||
|
# Update nanorc;
|
||
|
sudo cp /tmp/files-F123Light/files/etc/nanorc /etc;
|
||
|
}
|
||
|
|
||
|
|
||
|
update 1903311817 && {
|
||
|
# uninstall python-ipaddress and python-magic-wormhole;
|
||
|
sudo pacman -Rdd --noconfirm python-ipaddress python-magic-wormhole |& log;
|
||
|
# Install magic-wormhole;
|
||
|
sudo pacman -Sy --noconfirm --needed magic-wormhole |& log;
|
||
|
}
|
||
|
|
||
|
|
||
|
update 1904030652 && {
|
||
|
# uninstall mumble-snapshot, youtube-viewer-git and youtube-dl-git;
|
||
|
sudo pacman -Rdd --noconfirm mumble-snapshot |& log;
|
||
|
sudo pacman -Rdd --noconfirm youtube-dl-git |& log;
|
||
|
sudo pacman -Rdd --noconfirm youtube-viewer-git |& log;
|
||
|
# Install barnard;
|
||
|
sudo pacman -Sy --noconfirm --needed barnard-git |& log;
|
||
|
# Install youtube-dl;
|
||
|
sudo pacman -Sy --noconfirm --needed youtube-dl |& log;
|
||
|
# Install youtube-viewer;
|
||
|
sudo pacman -Sy --noconfirm --needed youtube-viewer |& log;
|
||
|
# Fix commented out bookmark 8 in fenrir keyboard layouts.;
|
||
|
sudo sed -i 's/^#KEY_FENRIR,KEY_8=bookmark_8/KEY_FENRIR,KEY_8=bookmark_8/' /etc/fenrirscreenreader/keyboard/*.conf;
|
||
|
}
|
||
|
|
||
|
|
||
|
update 1904151249 && {
|
||
|
# Install nice editor (ne);
|
||
|
sudo pacman -Sy --noconfirm --needed ne |& log;
|
||
|
# Install dbus-broker;
|
||
|
sudo pacman -Sy --noconfirm --needed dbus-broker |& log;
|
||
|
# configure dbus-broker for all users;
|
||
|
sudo systemctl enable --now dbus-broker.service |& log;
|
||
|
sudo systemctl --global enable dbus-broker.service |& log;
|
||
|
}
|
||
|
|
||
|
|
||
|
update 1905021427 && {
|
||
|
# Keep track of the date so we can set it after systemd breaks it;
|
||
|
currentDate="$(date)";
|
||
|
# Install systemd packages;
|
||
|
sudo pacman -Sy --noconfirm systemd systemd-libs systemd-sysvcompat |& log;
|
||
|
# Fix the date so DNS doesn't break.;
|
||
|
sudo date -s "$currentDate";
|
||
|
}
|
||
|
|
||
|
|
||
|
update 1905061331 && {
|
||
|
# Install Dragonfm-git;
|
||
|
sudo pacman -Sy --noconfirm --needed dragonfm-git |& log;
|
||
|
}
|
||
|
|
||
|
update 1906122152 && {
|
||
|
# Make sure timedatectl is sett to sync time.;
|
||
|
sudo timedatectl set-ntp ttrue;
|
||
|
}
|
||
|
|
||
|
update 1907211627 && {
|
||
|
# Create dnssec override.;
|
||
|
sudo cp -rv /tmp/files-F123Light/files/etc/systemd/resolved.conf.d /etc/systemd/ |& log
|
||
|
}
|
||
|
|