Refactor the package lists. Organize by desktop environment, alphabetize, and unify
in single sourced script for both the build and install process.
This commit is contained in:
parent
80669839a1
commit
357eb3d793
@ -17,6 +17,8 @@
|
|||||||
# along with PrawnOS. If not, see <https://www.gnu.org/licenses/>.
|
# along with PrawnOS. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
DIR=/InstallResources
|
DIR=/InstallResources
|
||||||
|
# Import the package lists
|
||||||
|
source $DIR/package_lists.sh
|
||||||
|
|
||||||
cat $DIR/icons/ascii-icon.txt
|
cat $DIR/icons/ascii-icon.txt
|
||||||
echo ""
|
echo ""
|
||||||
@ -35,17 +37,12 @@ done
|
|||||||
dpkg-reconfigure tzdata
|
dpkg-reconfigure tzdata
|
||||||
|
|
||||||
#Install shared packages
|
#Install shared packages
|
||||||
DEBIAN_FRONTEND=noninteractive apt install -y xorg acpi-support tasksel dpkg librsvg2-common xorg xserver-xorg-input-libinput alsa-utils anacron avahi-daemon eject iw libnss-mdns xdg-utils dconf-cli dconf-editor sudo dtrx emacs sysfsutils bluetooth
|
DEBIAN_FRONTEND=noninteractive apt install -y ${base_debs_download[@]}
|
||||||
DEBIAN_FRONTEND=noninteractive apt install -y network-manager-gnome network-manager-openvpn network-manager-openvpn-gnome
|
DEBIAN_FRONTEND=noninteractive apt install -y ${mesa_debs_download[@]}
|
||||||
DEBIAN_FRONTEND=noninteractive apt install -y libegl-mesa0 libegl1-mesa libgl1-mesa-dri libglapi-mesa libglu1-mesa libglx-mesa0
|
|
||||||
|
|
||||||
# Browsers
|
[ "$DE" = "gnome" ] && apt install -y ${gnome_debs_download[@]}
|
||||||
DEBIAN_FRONTEND=noninteractive apt install -y firefox-esr
|
[ "$DE" = "xfce" ] && apt install -y ${xfce_debs_download[@]}
|
||||||
DEBIAN_FRONTEND=noninteractive apt install -y chromium
|
[ "$DE" = "lxqt" ] && apt install -y ${lxqt_debs_download[@]}
|
||||||
|
|
||||||
[ "$DE" = "gnome" ] && apt install -y gdm3 gnome-session dbus-user-session gnome-shell-extensions nautilus nautilus-admin file-roller gnome-software gnome-software-plugin-flatpak gedit gnome-system-monitor gnome-logs evince gnome-disk-utility gnome-terminal fonts-cantarell gnome-tweaks seahorse papirus-icon-theme materia-gtk-theme eog
|
|
||||||
[ "$DE" = "xfce" ] && apt install -y lightdm mousepad vlc xfce4 dbus-user-session system-config-printer tango-icon-theme xfce4-power-manager xfce4-terminal xfce4-goodies numix-gtk-theme plank accountsservice papirus-icon-theme
|
|
||||||
[ "$DE" = "lxqt" ] && apt install -y lightdm lxqt pavucontrol-qt
|
|
||||||
|
|
||||||
#install the keymap by patching xkb, then bindings work for any desktop environment
|
#install the keymap by patching xkb, then bindings work for any desktop environment
|
||||||
cp $DIR/xkb/compat/* /usr/share/X11/xkb/compat/
|
cp $DIR/xkb/compat/* /usr/share/X11/xkb/compat/
|
||||||
@ -76,8 +73,6 @@ then
|
|||||||
# gsettings set org.gnome.desktop.peripherals.touchpad natural-scroll false
|
# gsettings set org.gnome.desktop.peripherals.touchpad natural-scroll false
|
||||||
#Tap to click is natural
|
#Tap to click is natural
|
||||||
# gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click true
|
# gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click true
|
||||||
|
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$DE" = "xfce" ]
|
if [ "$DE" = "xfce" ]
|
||||||
|
@ -56,6 +56,11 @@ outdev=/dev/loop5
|
|||||||
|
|
||||||
install_resources=resources/InstallResources
|
install_resources=resources/InstallResources
|
||||||
build_resources=resources/BuildResources
|
build_resources=resources/BuildResources
|
||||||
|
script_resources=scripts/
|
||||||
|
package_lists=$script_resources/package_lists.sh
|
||||||
|
|
||||||
|
# Import the package lists
|
||||||
|
source $package_lists
|
||||||
|
|
||||||
#HACK XSECURELOCK our usage of stable and unstable packages has caught up to us. We end up carrying conflicting files if
|
#HACK XSECURELOCK our usage of stable and unstable packages has caught up to us. We end up carrying conflicting files if
|
||||||
# we grab build-essential from stable and xsecurelock from unstable. This was fixed by grabbing build-essential from
|
# we grab build-essential from stable and xsecurelock from unstable. This was fixed by grabbing build-essential from
|
||||||
@ -64,6 +69,7 @@ build_resources=resources/BuildResources
|
|||||||
# I'm rethinking the build system to make (heh) this more elegant, but for now to get the build fixed I'll implement this
|
# I'm rethinking the build system to make (heh) this more elegant, but for now to get the build fixed I'll implement this
|
||||||
XSECURELOCK_PATH=packages/filesystem/xsecurelock
|
XSECURELOCK_PATH=packages/filesystem/xsecurelock
|
||||||
|
|
||||||
|
|
||||||
#A hacky way to ensure the loops are properly unmounted and the temp files are properly deleted.
|
#A hacky way to ensure the loops are properly unmounted and the temp files are properly deleted.
|
||||||
#Without this, a reboot is sometimes required to properly clean the loop devices and ensure a clean build
|
#Without this, a reboot is sometimes required to properly clean the loop devices and ensure a clean build
|
||||||
cleanup() {
|
cleanup() {
|
||||||
@ -169,6 +175,7 @@ mkdir $outmnt/InstallResources/icons/
|
|||||||
cp $build_resources/logo/icons/icon-small.png $outmnt/InstallResources/icons/
|
cp $build_resources/logo/icons/icon-small.png $outmnt/InstallResources/icons/
|
||||||
cp $build_resources/logo/icons/ascii/* $outmnt/InstallResources/icons/
|
cp $build_resources/logo/icons/ascii/* $outmnt/InstallResources/icons/
|
||||||
cp scripts/InstallScripts/* $outmnt/InstallResources/
|
cp scripts/InstallScripts/* $outmnt/InstallResources/
|
||||||
|
cp $package_lists $outmnt/InstallResources/
|
||||||
cp scripts/InstallScripts/InstallPrawnOS.sh $outmnt/
|
cp scripts/InstallScripts/InstallPrawnOS.sh $outmnt/
|
||||||
chmod +x $outmnt/*.sh
|
chmod +x $outmnt/*.sh
|
||||||
|
|
||||||
@ -212,7 +219,7 @@ chroot $outmnt locale-gen
|
|||||||
|
|
||||||
#Install the base packages
|
#Install the base packages
|
||||||
chroot $outmnt apt update
|
chroot $outmnt apt update
|
||||||
chroot $outmnt apt install -y udev kmod net-tools inetutils-ping traceroute iproute2 isc-dhcp-client wpasupplicant iw alsa-utils cgpt less psmisc netcat-openbsd ca-certificates bzip2 xz-utils ifupdown nano apt-utils git kpartx gdisk parted rsync busybox-static cryptsetup bash-completion libnss-systemd libpam-cap nftables uuid-runtime libgpg-error-l10n libatm1 laptop-detect e2fsprogs-l10n vim
|
chroot $outmnt apt install -y ${base_debs_install[@]}
|
||||||
|
|
||||||
#build and install crossystem/mosys, funky way to call the bash function inside the chroot
|
#build and install crossystem/mosys, funky way to call the bash function inside the chroot
|
||||||
export -f build_install_crossystem
|
export -f build_install_crossystem
|
||||||
@ -228,9 +235,7 @@ chroot $outmnt apt-get clean
|
|||||||
|
|
||||||
#Download support for libinput-gestures
|
#Download support for libinput-gestures
|
||||||
#Package is copied into /InstallResources/packages
|
#Package is copied into /InstallResources/packages
|
||||||
chroot $outmnt apt install -y libinput-tools xdotool
|
chroot $outmnt apt install -y libinput-tools xdotool build-essential
|
||||||
|
|
||||||
chroot $outmnt apt install -y build-essential
|
|
||||||
|
|
||||||
# we want to include all of our built packages in the apt cache for installation later, but we want to let apt download dependencies
|
# we want to include all of our built packages in the apt cache for installation later, but we want to let apt download dependencies
|
||||||
# if required
|
# if required
|
||||||
@ -246,19 +251,22 @@ cd $PRAWN_ROOT
|
|||||||
cp $XSECURELOCK_PATH/xsecurelock_*_armhf.deb $outmnt/var/cache/apt/archives/
|
cp $XSECURELOCK_PATH/xsecurelock_*_armhf.deb $outmnt/var/cache/apt/archives/
|
||||||
chroot $outmnt apt install -y -d xsecurelock
|
chroot $outmnt apt install -y -d xsecurelock
|
||||||
|
|
||||||
|
#Download the shared packages to be installed by Install.sh:
|
||||||
|
chroot $outmnt apt-get install -y -d ${base_debs_download[@]}
|
||||||
|
|
||||||
#Download the packages to be installed by Install.sh:
|
## DEs
|
||||||
chroot $outmnt apt-get install -y -d xorg acpi-support lightdm tasksel dpkg librsvg2-common xorg xserver-xorg-input-libinput alsa-utils anacron avahi-daemon eject iw libnss-mdns xdg-utils lxqt crda xfce4 dbus-user-session system-config-printer tango-icon-theme xfce4-power-manager xfce4-terminal xfce4-goodies mousepad vlc libutempter0 xterm numix-gtk-theme dconf-cli dconf-editor plank network-manager-gnome network-manager-openvpn network-manager-openvpn-gnome dtrx emacs accountsservice sudo pavucontrol-qt papirus-icon-theme sysfsutils bluetooth
|
#Download the xfce packages to be installed by Install.sh:
|
||||||
|
chroot $outmnt apt-get install -y -d ${xfce_debs_download[@]}
|
||||||
|
|
||||||
#Download the gnome packages
|
#Download the lxqt packages to be installed by Install.sh:
|
||||||
chroot $outmnt apt-get install -y -d gdm3 gnome-session dbus-user-session gnome-shell-extensions nautilus nautilus-admin file-roller gnome-software gnome-software-plugin-flatpak gedit gnome-system-monitor gnome-clocks evince gnome-logs gnome-disk-utility gnome-terminal epiphany-browser fonts-cantarell gnome-tweaks seahorse materia-gtk-theme eog libpeas-1.0-0 gir1.2-peas-1.0 libgtk3-perl
|
chroot $outmnt apt-get install -y -d ${lxqt_debs_download[@]}
|
||||||
|
|
||||||
|
#Download the gnome packages to be installed by Install.sh:
|
||||||
|
chroot $outmnt apt-get install -y -d ${gnome_debs_download[@]}
|
||||||
|
|
||||||
|
## GPU support
|
||||||
#download mesa packages
|
#download mesa packages
|
||||||
chroot $outmnt apt-get install -y -d libegl-mesa0 libegl1-mesa libgl1-mesa-dri libglapi-mesa libglu1-mesa libglx-mesa0
|
chroot $outmnt apt-get install -y -d ${mesa_debs_download[@]}
|
||||||
|
|
||||||
chroot $outmnt apt-get install -d -y firefox-esr
|
|
||||||
# grab chromium as well, since sound is still broken in firefox for some media
|
|
||||||
chroot $outmnt apt-get install -d -y chromium
|
|
||||||
|
|
||||||
#Cleanup hosts
|
#Cleanup hosts
|
||||||
rm -rf $outmnt/etc/hosts #This is what https://wiki.debian.org/EmDebian/CrossDebootstrap suggests
|
rm -rf $outmnt/etc/hosts #This is what https://wiki.debian.org/EmDebian/CrossDebootstrap suggests
|
||||||
|
166
scripts/package_lists.sh
Executable file
166
scripts/package_lists.sh
Executable file
@ -0,0 +1,166 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# This file is part of PrawnOS (http://www.prawnos.com)
|
||||||
|
# Copyright (c) 2018 Hal Emmerich <hal@halemmerich.com>
|
||||||
|
|
||||||
|
# PrawnOS is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License version 2
|
||||||
|
# as published by the Free Software Foundation.
|
||||||
|
|
||||||
|
# PrawnOS 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 PrawnOS. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
# ======================================== Package Lists =========================================
|
||||||
|
# ================================ KEEP THESE LISTS ALPHABETIZED! ================================
|
||||||
|
|
||||||
|
base_debs_install=(
|
||||||
|
alsa-utils
|
||||||
|
apt-utils
|
||||||
|
bash-completion
|
||||||
|
busybox-static
|
||||||
|
bzip2
|
||||||
|
ca-certificates
|
||||||
|
cgpt
|
||||||
|
cryptsetup
|
||||||
|
e2fsprogs-l10n
|
||||||
|
gdisk
|
||||||
|
git
|
||||||
|
ifupdown
|
||||||
|
inetutils-ping
|
||||||
|
iproute2
|
||||||
|
isc-dhcp-client
|
||||||
|
iw
|
||||||
|
kmod
|
||||||
|
kpartx
|
||||||
|
laptop-detect
|
||||||
|
less
|
||||||
|
libatm1
|
||||||
|
libgpg-error-l10n
|
||||||
|
libnss-systemd
|
||||||
|
libpam-cap nftables
|
||||||
|
nano
|
||||||
|
net-tools
|
||||||
|
netcat-openbsd
|
||||||
|
parted
|
||||||
|
psmisc
|
||||||
|
rsync
|
||||||
|
traceroute
|
||||||
|
udev
|
||||||
|
uuid-runtime
|
||||||
|
vim
|
||||||
|
wpasupplicant
|
||||||
|
xz-utils
|
||||||
|
)
|
||||||
|
|
||||||
|
base_debs_download=(
|
||||||
|
acpi-support
|
||||||
|
alsa-utils
|
||||||
|
anacron
|
||||||
|
avahi-daemon
|
||||||
|
bluetooth
|
||||||
|
chromium
|
||||||
|
crda
|
||||||
|
dbus-user-session
|
||||||
|
dpkg
|
||||||
|
dtrx
|
||||||
|
eject
|
||||||
|
emacs
|
||||||
|
firefox-esr
|
||||||
|
iw
|
||||||
|
libnss-mdns
|
||||||
|
librsvg2-common
|
||||||
|
libutempter0
|
||||||
|
lightdm
|
||||||
|
mousepad
|
||||||
|
sudo
|
||||||
|
sysfsutils
|
||||||
|
tasksel
|
||||||
|
vlc
|
||||||
|
xdg-utils
|
||||||
|
xorg
|
||||||
|
xorg
|
||||||
|
xserver-xorg-input-libinput
|
||||||
|
)
|
||||||
|
|
||||||
|
mesa_debs_download=(
|
||||||
|
libegl-mesa0
|
||||||
|
libegl1-mesa
|
||||||
|
libgl1-mesa-dri
|
||||||
|
libglapi-mesa
|
||||||
|
libglu1-mesa
|
||||||
|
libglx-mesa0
|
||||||
|
)
|
||||||
|
|
||||||
|
xfce_debs_download=(
|
||||||
|
accountsservice
|
||||||
|
dbus-user-session
|
||||||
|
dconf-cli
|
||||||
|
dconf-editor
|
||||||
|
network-manager-gnome
|
||||||
|
network-manager-openvpn
|
||||||
|
network-manager-openvpn-gnome
|
||||||
|
numix-gtk-theme
|
||||||
|
papirus-icon-theme
|
||||||
|
plank
|
||||||
|
system-config-printer
|
||||||
|
tango-icon-theme
|
||||||
|
xfce4
|
||||||
|
xfce4-goodies
|
||||||
|
xfce4-power-manager
|
||||||
|
xfce4-terminal
|
||||||
|
)
|
||||||
|
|
||||||
|
lxqt_debs_download=(
|
||||||
|
lightdm
|
||||||
|
lxqt
|
||||||
|
network-manager-gnome
|
||||||
|
network-manager-openvpn
|
||||||
|
network-manager-openvpn-gnome
|
||||||
|
pavucontrol-qt
|
||||||
|
)
|
||||||
|
|
||||||
|
gnome_debs_download=(
|
||||||
|
dbus-user-session
|
||||||
|
dconf-cli
|
||||||
|
dconf-editor
|
||||||
|
eog
|
||||||
|
epiphany-browser
|
||||||
|
evince
|
||||||
|
file-roller
|
||||||
|
fonts-cantarell
|
||||||
|
gdm3
|
||||||
|
gedit
|
||||||
|
gir1.2-peas-1.0
|
||||||
|
gnome-clocks
|
||||||
|
gnome-disk-utility
|
||||||
|
gnome-logs
|
||||||
|
gnome-session
|
||||||
|
gnome-shell-extensions
|
||||||
|
gnome-software
|
||||||
|
gnome-software-plugin-flatpak
|
||||||
|
gnome-system-monitor
|
||||||
|
gnome-terminal
|
||||||
|
gnome-tweaks
|
||||||
|
libgtk3-perl
|
||||||
|
libpeas-1.0-0
|
||||||
|
lightdm
|
||||||
|
lxqt
|
||||||
|
materia-gtk-theme
|
||||||
|
nautilus
|
||||||
|
nautilus-admin
|
||||||
|
network-manager-gnome
|
||||||
|
network-manager-gnome
|
||||||
|
network-manager-openvpn
|
||||||
|
network-manager-openvpn
|
||||||
|
network-manager-openvpn-gnome
|
||||||
|
network-manager-openvpn-gnome
|
||||||
|
pavucontrol-qt
|
||||||
|
seahorse
|
||||||
|
)
|
||||||
|
|
||||||
|
# ====================================== END Package Lists =======================================
|
Loading…
Reference in New Issue
Block a user