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/>.
|
||||
|
||||
DIR=/InstallResources
|
||||
# Import the package lists
|
||||
source $DIR/package_lists.sh
|
||||
|
||||
cat $DIR/icons/ascii-icon.txt
|
||||
echo ""
|
||||
@ -35,17 +37,12 @@ done
|
||||
dpkg-reconfigure tzdata
|
||||
|
||||
#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 network-manager-gnome network-manager-openvpn network-manager-openvpn-gnome
|
||||
DEBIAN_FRONTEND=noninteractive apt install -y libegl-mesa0 libegl1-mesa libgl1-mesa-dri libglapi-mesa libglu1-mesa libglx-mesa0
|
||||
DEBIAN_FRONTEND=noninteractive apt install -y ${base_debs_download[@]}
|
||||
DEBIAN_FRONTEND=noninteractive apt install -y ${mesa_debs_download[@]}
|
||||
|
||||
# Browsers
|
||||
DEBIAN_FRONTEND=noninteractive apt install -y firefox-esr
|
||||
DEBIAN_FRONTEND=noninteractive apt install -y chromium
|
||||
|
||||
[ "$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
|
||||
[ "$DE" = "gnome" ] && apt install -y ${gnome_debs_download[@]}
|
||||
[ "$DE" = "xfce" ] && apt install -y ${xfce_debs_download[@]}
|
||||
[ "$DE" = "lxqt" ] && apt install -y ${lxqt_debs_download[@]}
|
||||
|
||||
#install the keymap by patching xkb, then bindings work for any desktop environment
|
||||
cp $DIR/xkb/compat/* /usr/share/X11/xkb/compat/
|
||||
@ -76,8 +73,6 @@ then
|
||||
# gsettings set org.gnome.desktop.peripherals.touchpad natural-scroll false
|
||||
#Tap to click is natural
|
||||
# gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click true
|
||||
|
||||
|
||||
fi
|
||||
|
||||
if [ "$DE" = "xfce" ]
|
||||
|
@ -56,6 +56,11 @@ outdev=/dev/loop5
|
||||
|
||||
install_resources=resources/InstallResources
|
||||
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
|
||||
# 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
|
||||
XSECURELOCK_PATH=packages/filesystem/xsecurelock
|
||||
|
||||
|
||||
#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
|
||||
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/ascii/* $outmnt/InstallResources/icons/
|
||||
cp scripts/InstallScripts/* $outmnt/InstallResources/
|
||||
cp $package_lists $outmnt/InstallResources/
|
||||
cp scripts/InstallScripts/InstallPrawnOS.sh $outmnt/
|
||||
chmod +x $outmnt/*.sh
|
||||
|
||||
@ -212,7 +219,7 @@ chroot $outmnt locale-gen
|
||||
|
||||
#Install the base packages
|
||||
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
|
||||
export -f build_install_crossystem
|
||||
@ -228,9 +235,7 @@ chroot $outmnt apt-get clean
|
||||
|
||||
#Download support for libinput-gestures
|
||||
#Package is copied into /InstallResources/packages
|
||||
chroot $outmnt apt install -y libinput-tools xdotool
|
||||
|
||||
chroot $outmnt apt install -y build-essential
|
||||
chroot $outmnt apt install -y libinput-tools xdotool 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
|
||||
# if required
|
||||
@ -246,19 +251,22 @@ cd $PRAWN_ROOT
|
||||
cp $XSECURELOCK_PATH/xsecurelock_*_armhf.deb $outmnt/var/cache/apt/archives/
|
||||
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:
|
||||
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
|
||||
## DEs
|
||||
#Download the xfce packages to be installed by Install.sh:
|
||||
chroot $outmnt apt-get install -y -d ${xfce_debs_download[@]}
|
||||
|
||||
#Download the gnome packages
|
||||
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
|
||||
#Download the lxqt packages to be installed by Install.sh:
|
||||
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
|
||||
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 -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
|
||||
chroot $outmnt apt-get install -y -d ${mesa_debs_download[@]}
|
||||
|
||||
#Cleanup hosts
|
||||
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