build-x86-images.sh.in 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. #!/bin/sh
  2. set -eu
  3. ARCH=$(uname -m)
  4. IMAGES="base enlightenment xfce mate cinnamon gnome kde lxde lxqt"
  5. REPO=
  6. DATE=$(date +%Y%m%d)
  7. help() {
  8. echo "${0#/*}: [-a arch] [-b base|enlightenment|xfce|mate|cinnamon|gnome|kde|lxde|lxqt] [-r repo]" >&2
  9. }
  10. while getopts "a:b:hr:" opt; do
  11. case $opt in
  12. a) ARCH="$OPTARG";;
  13. b) IMAGES="$OPTARG";;
  14. h) help; exit 0;;
  15. r) REPO="-r $OPTARG $REPO";;
  16. *) help; exit 1;;
  17. esac
  18. done
  19. shift $((OPTIND - 1))
  20. INCLUDEDIR=$(mktemp -d)
  21. trap "cleanup" INT TERM
  22. cleanup() {
  23. rm -r "$INCLUDEDIR"
  24. }
  25. build_variant() {
  26. variant="$1"
  27. shift
  28. IMG=void-live-${ARCH}-${DATE}-${variant}.iso
  29. GRUB_PKGS="grub-i386-efi grub-x86_64-efi"
  30. PKGS="dialog cryptsetup lvm2 mdadm void-docs-browse xtools-minimal xmirror $GRUB_PKGS"
  31. PKGS="dialog cryptsetup lvm2 mdadm void-docs-browse xtools-minimal xmirror espeakup $GRUB_PKGS"
  32. XORG_PKGS="xorg-minimal xorg-input-drivers xorg-video-drivers setxkbmap xauth font-misc-misc terminus-font dejavu-fonts-ttf alsa-plugins-pulseaudio"
  33. SERVICES="sshd"
  34. case $variant in
  35. base)
  36. SERVICES="$SERVICES dhcpcd wpa_supplicant acpid"
  37. ;;
  38. enlightenment)
  39. PKGS="$PKGS $XORG_PKGS lightdm lightdm-gtk3-greeter enlightenment terminology udisks2 firefox"
  40. SERVICES="$SERVICES acpid dhcpcd wpa_supplicant lightdm dbus polkitd"
  41. ;;
  42. xfce)
  43. PKGS="$PKGS $XORG_PKGS lightdm lightdm-gtk3-greeter xfce4 gnome-themes-standard gnome-keyring network-manager-applet gvfs-afc gvfs-mtp gvfs-smb udisks2 firefox"
  44. SERVICES="$SERVICES dbus elogind lightdm NetworkManager polkitd"
  45. ;;
  46. mate)
  47. PKGS="$PKGS $XORG_PKGS lightdm lightdm-gtk3-greeter mate mate-extra gnome-keyring network-manager-applet gvfs-afc gvfs-mtp gvfs-smb udisks2 firefox"
  48. SERVICES="$SERVICES dbus elogind lightdm NetworkManager polkitd"
  49. ;;
  50. cinnamon)
  51. PKGS="$PKGS $XORG_PKGS lightdm lightdm-gtk3-greeter cinnamon gnome-keyring colord gnome-terminal gvfs-afc gvfs-mtp gvfs-smb udisks2 firefox"
  52. SERVICES="$SERVICES dbus elogind lightdm NetworkManager polkitd"
  53. ;;
  54. gnome)
  55. PKGS="$PKGS $XORG_PKGS gnome firefox"
  56. SERVICES="$SERVICES dbus elogind gdm NetworkManager polkitd"
  57. ;;
  58. kde)
  59. PKGS="$PKGS $XORG_PKGS kde5 konsole firefox dolphin"
  60. SERVICES="$SERVICES dbus elogind NetworkManager sddm"
  61. ;;
  62. lxde)
  63. PKGS="$PKGS $XORG_PKGS lxde lightdm lightdm-gtk3-greeter gvfs-afc gvfs-mtp gvfs-smb udisks2 firefox"
  64. SERVICES="$SERVICES acpid dbus dhcpcd wpa_supplicant lightdm polkitd"
  65. ;;
  66. lxqt)
  67. PKGS="$PKGS $XORG_PKGS lxqt sddm gvfs-afc gvfs-mtp gvfs-smb udisks2 firefox"
  68. SERVICES="$SERVICES elogind dbus dhcpcd wpa_supplicant sddm polkitd"
  69. ;;
  70. *)
  71. >&2 echo "Unknown variant $variant"
  72. exit 1
  73. ;;
  74. esac
  75. ./mklive.sh -a "$ARCH" -o "$IMG" -p "$PKGS" -S "$SERVICES" -I "$INCLUDEDIR" ${REPO} "$@"
  76. }
  77. if [ ! -x mklive.sh ]; then
  78. echo mklive.sh not found >&2
  79. exit 1
  80. fi
  81. if [ -x installer.sh ]; then
  82. install -Dm755 installer.sh "$INCLUDEDIR"/usr/bin/void-installer
  83. else
  84. echo installer.sh not found >&2
  85. exit 1
  86. fi
  87. for image in $IMAGES; do
  88. build_variant "$image" "$@"
  89. done