forked from void-linux/void-mklive
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathbuild-live-images.sh.in
135 lines (123 loc) · 4.19 KB
/
build-live-images.sh.in
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#!/bin/sh
ARCH=
IMAGE=
while getopts "a:b:hr:" opt; do
case $opt in
a) ARCH="$OPTARG";;
b) IMAGE="$OPTARG";;
h) echo "${0#/*}: [-a arch] [-b base|e|xfce|mate|cinnamon|gnome|kde|lxde|lxqt] [-r repo]" >&2; exit 1;;
r) REPO="-r $OPTARG $REPO";;
esac
done
shift $((OPTIND - 1))
: ${ARCH:=$(uname -m)}
readonly DATE=$(date +%Y%m%d)
readonly BASE_IMG=void-live-${ARCH}-${DATE}.iso
readonly E_IMG=void-live-${ARCH}-${DATE}-enlightenment.iso
readonly XFCE_IMG=void-live-${ARCH}-${DATE}-xfce.iso
readonly MATE_IMG=void-live-${ARCH}-${DATE}-mate.iso
readonly CINNAMON_IMG=void-live-${ARCH}-${DATE}-cinnamon.iso
readonly GNOME_IMG=void-live-${ARCH}-${DATE}-gnome.iso
readonly KDE_IMG=void-live-${ARCH}-${DATE}-kde.iso
readonly LXDE_IMG=void-live-${ARCH}-${DATE}-lxde.iso
readonly LXQT_IMG=void-live-${ARCH}-${DATE}-lxqt.iso
case "$ARCH" in
ppc*) readonly GRUB="grub-powerpc-ieee1275" ;;
*) readonly GRUB="grub-i386-efi grub-x86_64-efi" ;;
esac
case "$ARCH" in
ppc64le*)
readonly EXTRA_PKGS=""
readonly EXTRA_X_PKGS=""
;;
ppc64*)
readonly EXTRA_PKGS="mac-fdisk hfsutils"
readonly EXTRA_X_PKGS=""
;;
ppc*)
readonly EXTRA_PKGS="mac-fdisk hfsutils"
readonly EXTRA_X_PKGS="xf86-video-r128 xf86-video-mach64"
;;
*)
readonly EXTRA_PKGS=""
readonly EXTRA_X_PKGS=""
;;
esac
choose_browser() {
case "$ARCH" in
ppc64*)
# all 64-bit ppc defaults to firefox-esr...
# no BE (or upstream in general) support in webengine
echo "firefox-esr"
;;
ppc*)
# firefox doesn't work on ppc32 right now
# adwaita-icon-theme is needed otherwise some icons will be missing
echo "epiphany adwaita-icon-theme"
;;
*)
# on x86, use falkon for Qt desktops
# else use firefox-esr which is stable on x86
case "$1" in
kde|lxqt) echo "falkon" ;;
*) echo "firefox-esr" ;;
esac
;;
esac
}
readonly BASE_PKGS="dialog cryptsetup lvm2 mdadm $EXTRA_PKGS $GRUB"
readonly X_PKGS="$BASE_PKGS xorg-minimal xorg-input-drivers xorg-video-drivers setxkbmap xauth font-misc-misc terminus-font dejavu-fonts-ttf alsa-plugins-pulseaudio $EXTRA_X_PKGS"
readonly E_PKGS="$X_PKGS lxdm enlightenment terminology econnman udisks2 $(choose_browser e)"
readonly XFCE_PKGS="$X_PKGS lxdm xfce4 gnome-themes-standard gnome-keyring network-manager-applet gvfs-afc gvfs-mtp gvfs-smb udisks2 $(choose_browser xfce)"
readonly MATE_PKGS="$X_PKGS lxdm mate mate-extra gnome-keyring network-manager-applet gvfs-afc gvfs-mtp gvfs-smb udisks2 $(choose_browser mate)"
readonly CINNAMON_PKGS="$X_PKGS lxdm cinnamon gnome-keyring colord gnome-terminal gvfs-afc gvfs-mtp gvfs-smb udisks2 $(choose_browser cinnamon)"
readonly GNOME_PKGS="$X_PKGS gnome gnome-terminal $(choose_browser gnome)"
readonly KDE_PKGS="$X_PKGS kde5 konsole $(choose_browser kde) dolphin"
readonly LXDE_PKGS="$X_PKGS lxdm lxde gvfs-afc gvfs-mtp gvfs-smb udisks2 $(choose_browser lxde)"
readonly LXQT_PKGS="$X_PKGS lxdm lxqt gvfs-afc gvfs-mtp gvfs-smb udisks2 $(choose_browser lxqt)"
[ ! -x mklive.sh ] && exit 0
if [ -z "$IMAGE" -o "$IMAGE" = base ]; then
if [ ! -e $BASE_IMG ]; then
./mklive.sh -a $ARCH -o $BASE_IMG -p "$BASE_PKGS" ${REPO} "$@"
fi
fi
if [ -z "$IMAGE" -o "$IMAGE" = e ]; then
if [ ! -e $E_IMG ]; then
./mklive.sh -a $ARCH -o $E_IMG -p "$E_PKGS" ${REPO} "$@"
fi
fi
if [ -z "$IMAGE" -o "$IMAGE" = xfce ]; then
if [ ! -e $XFCE_IMG ]; then
./mklive.sh -a $ARCH -o $XFCE_IMG -p "$XFCE_PKGS" ${REPO} "$@"
fi
fi
if [ -z "$IMAGE" -o "$IMAGE" = mate ]; then
if [ ! -e $MATE_IMG ]; then
./mklive.sh -a $ARCH -o $MATE_IMG -p "$MATE_PKGS" ${REPO} "$@"
fi
fi
if [ -z "$IMAGE" -o "$IMAGE" = cinnamon ]; then
if [ ! -e $CINNAMON_IMG ]; then
./mklive.sh -a $ARCH -o $CINNAMON_IMG -p "$CINNAMON_PKGS" ${REPO} "$@"
fi
fi
if [ -z "$IMAGE" -o "$IMAGE" = gnome ]; then
if [ ! -e $GNOME_IMG ]; then
./mklive.sh -a $ARCH -o $GNOME_IMG -p "$GNOME_PKGS" ${REPO} "$@"
fi
fi
if [ -z "$IMAGE" -o "$IMAGE" = lxde ]; then
if [ ! -e $LXDE_IMG ]; then
./mklive.sh -a $ARCH -o $LXDE_IMG -p "$LXDE_PKGS" ${REPO} "$@"
fi
fi
if [ -z "$IMAGE" -o "$IMAGE" = lxqt ]; then
if [ ! -e $LXQT_IMG ]; then
./mklive.sh -a $ARCH -o $LXQT_IMG -p "$LXQT_PKGS" ${REPO} "$@"
fi
fi
if [ "$IMAGE" = kde ]; then
if [ ! -e $KDE_IMG ]; then
./mklive.sh -a $ARCH -o $KDE_IMG -p "$KDE_PKGS" ${REPO} "$@"
fi
fi