mirror of
https://github.com/oSoWoSo/DistroHopper.git
synced 2024-08-14 22:46:53 +00:00
Merge pull request #322 from philclifford/merging-updated-distros
Merging updated distros - Consolidated 15 PRs
This commit is contained in:
commit
f2f0c11ed6
3 changed files with 531 additions and 28 deletions
53
README.md
53
README.md
|
@ -32,13 +32,30 @@ comprehensive support for macOS and Windows**.
|
||||||
* **Windows** 8.1, 10 and 11 including TPM 2.0
|
* **Windows** 8.1, 10 and 11 including TPM 2.0
|
||||||
* [Ubuntu](https://ubuntu.com/desktop) and all the **[official Ubuntu flavours](https://ubuntu.com/download/flavours)**
|
* [Ubuntu](https://ubuntu.com/desktop) and all the **[official Ubuntu flavours](https://ubuntu.com/download/flavours)**
|
||||||
* [Debian](https://www.debian.org/) (bullseye with all the official and non-free DE variants)
|
* [Debian](https://www.debian.org/) (bullseye with all the official and non-free DE variants)
|
||||||
* [Fedora](https://getfedora.org/) & openSUSE ([Leap](https://get.opensuse.org/leap/), [Tumbleweed](https://get.opensuse.org/tumbleweed/), [MicroOS](https://microos.opensuse.org/))
|
* [Fedora](https://getfedora.org/)
|
||||||
|
& openSUSE ([Leap](https://get.opensuse.org/leap/)
|
||||||
|
, [Tumbleweed](https://get.opensuse.org/tumbleweed/)
|
||||||
|
, [MicroOS](https://microos.opensuse.org/))
|
||||||
* [Alma Linux](https://almalinux.org/)
|
* [Alma Linux](https://almalinux.org/)
|
||||||
* [Linux Mint](https://linuxmint.com/) (Cinnamon, MATE, and XFCE), [elementary OS](https://elementary.io/), [Pop!_OS](https://pop.system76.com/)
|
* [Alpine Linux](https://www.alpinelinux.org/)
|
||||||
* [Arch Linux](https://www.archlinux.org/), [Kali](https://www.kali.org/),[Garuda](https://garudalinux.org/), [ZorinOS](https://zorin.com/os/) & [NixOS](https://nixos.org/)
|
* [Linux Mint](https://linuxmint.com/) (Cinnamon, MATE, and XFCE)
|
||||||
* [Oracle Linux](https://www.oracle.com/linux/) and [Rocky Linux](https://rockylinux.org/)
|
, [elementary OS](https://elementary.io/)
|
||||||
|
, [Pop!_OS](https://pop.system76.com/)
|
||||||
|
* [Arch Linux](https://www.archlinux.org/)
|
||||||
|
, [ArcoLinux](https://www.arcolinux.info/)
|
||||||
|
, [CachyOS](https://cachyos.org/)
|
||||||
|
, [Kali](https://www.kali.org/)
|
||||||
|
, [Garuda](https://garudalinux.org/)
|
||||||
|
, [Gentoo Linux](https://www.gentoo.org/)
|
||||||
|
, [Manjaro](https://manjaro.org)
|
||||||
|
, [NixOS](https://nixos.org/)
|
||||||
|
& [ZorinOS](https://zorin.com/os/)
|
||||||
|
* [Oracle Linux](https://www.oracle.com/linux/)
|
||||||
|
and [Rocky Linux](https://rockylinux.org/)
|
||||||
* [Regolith Linux](https://regolith-linux.org/) (Release 1.6 and latest 2.0.0 pre-release )
|
* [Regolith Linux](https://regolith-linux.org/) (Release 1.6 and latest 2.0.0 pre-release )
|
||||||
* [FreeBSD](https://www.freebsd.org/) & [OpenBSD](https://www.openbsd.org/)
|
* [FreeBSD](https://www.freebsd.org/)
|
||||||
|
& [OpenBSD](https://www.openbsd.org/)
|
||||||
|
* [Haiku](https://www.haiku-os.org/)
|
||||||
* Full SPICE support including host/guest clipboard sharing
|
* Full SPICE support including host/guest clipboard sharing
|
||||||
* VirtIO-webdavd file sharing for Linux and Windows guests
|
* VirtIO-webdavd file sharing for Linux and Windows guests
|
||||||
* VirtIO-9p file sharing for Linux and macOS guests
|
* VirtIO-9p file sharing for Linux and macOS guests
|
||||||
|
@ -177,14 +194,19 @@ preferred flavour.
|
||||||
`quickget` also supports:
|
`quickget` also supports:
|
||||||
|
|
||||||
* `alma`
|
* `alma`
|
||||||
|
* `alpine`
|
||||||
* `archlinux`
|
* `archlinux`
|
||||||
|
* `arcolinux`
|
||||||
|
* `cachyos`
|
||||||
* `debian`
|
* `debian`
|
||||||
* `elementary`
|
* `elementary`
|
||||||
* `fedora`
|
* `fedora`
|
||||||
* `garuda`
|
* `garuda`
|
||||||
|
* `gentoo`
|
||||||
* `kali`
|
* `kali`
|
||||||
* `kdeneon`
|
* `kdeneon`
|
||||||
* `linuxmint`
|
* `linuxmint`
|
||||||
|
* `mxlinux`
|
||||||
* `nixos`
|
* `nixos`
|
||||||
* `opensuse`
|
* `opensuse`
|
||||||
* `oraclelinux`
|
* `oraclelinux`
|
||||||
|
@ -329,15 +351,28 @@ tpm="on"
|
||||||
* `fixed_iso=` specifies the ISO image that provides VirtIO drivers.
|
* `fixed_iso=` specifies the ISO image that provides VirtIO drivers.
|
||||||
* `tpm="on"` instructs `quickemu` to create a software emulated TPM device using `swtpm`.
|
* `tpm="on"` instructs `quickemu` to create a software emulated TPM device using `swtpm`.
|
||||||
|
|
||||||
## BSD Guests
|
## Haiku Guests
|
||||||
|
|
||||||
`quickemu` supports FreeBSD and OpenBSD.
|
`quickemu` supports [Haiku](https://www.haiku-os.org/).
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
quickget freebsd 13_0
|
quickget quickget haiku r1beta3-x86_64
|
||||||
quickemu --vm freebsd-13_0.conf
|
quickemu --vm haiku-r1beta3-x86_64.conf
|
||||||
```
|
```
|
||||||
|
|
||||||
|
At the moment the only way to share files between host and a Haiku guest is by
|
||||||
|
using SSH (having a SSH server running on the host):
|
||||||
|
|
||||||
|
On guest:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
scp example.txt user@host-local-ip:/home/user # sending a file from guest to host
|
||||||
|
scp user@host-local-ip:/home/user/example.txt . # receiving a file from host to guest
|
||||||
|
```
|
||||||
|
|
||||||
|
`quickget` cannot automatically download and create virtual machines for Haiku
|
||||||
|
nightly versions, but they work if the ISO and configuration are set up manually.
|
||||||
|
|
||||||
# SPICE
|
# SPICE
|
||||||
|
|
||||||
The following features are available while using the SPICE protocol:
|
The following features are available while using the SPICE protocol:
|
||||||
|
|
57
quickemu
57
quickemu
|
@ -228,6 +228,7 @@ function vm_boot() {
|
||||||
local KERNEL_NODE=""
|
local KERNEL_NODE=""
|
||||||
local KERNEL_VER="?"
|
local KERNEL_VER="?"
|
||||||
local LSB_DESCRIPTION="Unknown OS"
|
local LSB_DESCRIPTION="Unknown OS"
|
||||||
|
local MACHINE_TYPE="q35"
|
||||||
local MAC_BOOTLOADER=""
|
local MAC_BOOTLOADER=""
|
||||||
local MAC_MISSING=""
|
local MAC_MISSING=""
|
||||||
local MAC_DISK_DEV="ide-hd,bus=ahci.2"
|
local MAC_DISK_DEV="ide-hd,bus=ahci.2"
|
||||||
|
@ -392,9 +393,18 @@ function vm_boot() {
|
||||||
elif [ -e "/usr/share/OVMF/x64/OVMF_CODE.secboot.fd" ]; then
|
elif [ -e "/usr/share/OVMF/x64/OVMF_CODE.secboot.fd" ]; then
|
||||||
EFI_CODE="/usr/share/OVMF/x64/OVMF_CODE.secboot.fd"
|
EFI_CODE="/usr/share/OVMF/x64/OVMF_CODE.secboot.fd"
|
||||||
efi_vars "/usr/share/OVMF/x64/OVMF_VARS.fd" "${EFI_VARS}"
|
efi_vars "/usr/share/OVMF/x64/OVMF_VARS.fd" "${EFI_VARS}"
|
||||||
elif [ -e "/usr/share/edk2-ovmf/OVMF_CODE.fd" ]; then
|
elif [ -e "/usr/share/edk2-ovmf/OVMF_CODE.secboot.fd" ]; then
|
||||||
EFI_CODE="/usr/share/edk2-ovmf/OVMF_CODE.secboot.fd"
|
EFI_CODE="/usr/share/edk2-ovmf/OVMF_CODE.secboot.fd"
|
||||||
efi_vars "/usr/share/edk2-ovmf/OVMF_VARS.fd" "${EFI_VARS}"
|
efi_vars "/usr/share/edk2-ovmf/OVMF_VARS.fd" "${EFI_VARS}"
|
||||||
|
elif [ -e "/usr/share/qemu/ovmf-x86_64-smm-ms-code.bin" ]; then
|
||||||
|
EFI_CODE="/usr/share/qemu/ovmf-x86_64-smm-ms-code.bin"
|
||||||
|
efi_vars "/usr/share/qemu/ovmf-x86_64-smm-ms-vars.bin" "${EFI_VARS}"
|
||||||
|
elif [ -e "/usr/share/edk2-ovmf/OVMF_CODE.secboot.fd" ]; then
|
||||||
|
EFI_CODE="/usr/share/edk2-ovmf/OVMF_CODE.secboot.fd"
|
||||||
|
efi_vars "/usr/share/edk2-ovmf/OVMF_VARS.fd" "${EFI_VARS}"
|
||||||
|
elif [ -e "/usr/share/qemu/edk2-x86_64-secure-code.fd" ]; then
|
||||||
|
EFI_CODE="/usr/share/qemu/edk2-x86_64-secure-code.fd"
|
||||||
|
efi_vars "/usr/share/qemu/edk2-x86_64-code.fd" "${EFI_VARS}"
|
||||||
else
|
else
|
||||||
echo "ERROR! SecureBoot was requested but no SecureBoot capable firmware was found."
|
echo "ERROR! SecureBoot was requested but no SecureBoot capable firmware was found."
|
||||||
echo " Please install OVMF firmware."
|
echo " Please install OVMF firmware."
|
||||||
|
@ -417,6 +427,12 @@ function vm_boot() {
|
||||||
elif [ -e "/usr/share/edk2-ovmf/OVMF_CODE.fd" ]; then
|
elif [ -e "/usr/share/edk2-ovmf/OVMF_CODE.fd" ]; then
|
||||||
EFI_CODE="/usr/share/edk2-ovmf/OVMF_CODE.fd"
|
EFI_CODE="/usr/share/edk2-ovmf/OVMF_CODE.fd"
|
||||||
efi_vars "/usr/share/edk2-ovmf/OVMF_VARS.fd" "${EFI_VARS}"
|
efi_vars "/usr/share/edk2-ovmf/OVMF_VARS.fd" "${EFI_VARS}"
|
||||||
|
elif [ -e "/usr/share/qemu/ovmf-x86_64-4m-code.bin" ]; then
|
||||||
|
EFI_CODE="/usr/share/qemu/ovmf-x86_64-4m-code.bin"
|
||||||
|
efi_vars "/usr/share/qemu/ovmf-x86_64-4m-vars.bin" "${EFI_VARS}"
|
||||||
|
elif [ -e "/usr/share/qemu/edk2-x86_64-code.fd" ]; then
|
||||||
|
EFI_CODE="/usr/share/qemu/edk2-x86_64-code.fd"
|
||||||
|
efi_vars "/usr/share/qemu/edk2-x86_64-code.fd" "${EFI_VARS}"
|
||||||
else
|
else
|
||||||
echo "ERROR! EFI boot requested but no EFI firmware found."
|
echo "ERROR! EFI boot requested but no EFI firmware found."
|
||||||
echo " Please install OVMF firmware."
|
echo " Please install OVMF firmware."
|
||||||
|
@ -463,6 +479,29 @@ function vm_boot() {
|
||||||
disk_size="16G"
|
disk_size="16G"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
kolibrios)
|
||||||
|
CPU="-cpu qemu32,kvm=on"
|
||||||
|
if [ "${HOST_CPU_VENDOR}" == "AuthenticAMD" ]; then
|
||||||
|
CPU="${CPU},topoext"
|
||||||
|
fi
|
||||||
|
MACHINE_TYPE="pc"
|
||||||
|
NET_DEVICE="rtl8139"
|
||||||
|
GUEST_TWEAKS="-boot d"
|
||||||
|
if [ -z "${disk_size}" ]; then
|
||||||
|
disk_size="256M"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
haiku)
|
||||||
|
CPU="-cpu host,kvm=on"
|
||||||
|
MACHINE_TYPE="pc"
|
||||||
|
NET_DEVICE="rtl8139"
|
||||||
|
if [ "${HOST_CPU_VENDOR}" == "AuthenticAMD" ]; then
|
||||||
|
CPU="${CPU},topoext"
|
||||||
|
fi
|
||||||
|
if [ -z "${disk_size}" ]; then
|
||||||
|
disk_size="32G"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
macos)
|
macos)
|
||||||
#https://www.nicksherlock.com/2020/06/installing-macos-big-sur-on-proxmox/
|
#https://www.nicksherlock.com/2020/06/installing-macos-big-sur-on-proxmox/
|
||||||
# A CPU with SSE4.1 support is required for >= macOS Sierra
|
# A CPU with SSE4.1 support is required for >= macOS Sierra
|
||||||
|
@ -591,7 +630,7 @@ function vm_boot() {
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "${DISK_USED}" == "yes" ]; then
|
if [ "${DISK_USED}" == "yes" ] && [ "${guest_os}" != "kolibrios" ]; then
|
||||||
# If there is a disk image that appears to be used do not boot from installation media.
|
# If there is a disk image that appears to be used do not boot from installation media.
|
||||||
iso=""
|
iso=""
|
||||||
img=""
|
img=""
|
||||||
|
@ -833,7 +872,7 @@ function vm_boot() {
|
||||||
|
|
||||||
# shellcheck disable=SC2054,SC2206,SC2140
|
# shellcheck disable=SC2054,SC2206,SC2140
|
||||||
args+=(-name ${VMNAME},process=${VMNAME} -pidfile "${VMDIR}/${VMNAME}.pid"
|
args+=(-name ${VMNAME},process=${VMNAME} -pidfile "${VMDIR}/${VMNAME}.pid"
|
||||||
-enable-kvm -machine q35,smm=${SMM},vmport=off ${GUEST_TWEAKS}
|
-enable-kvm -machine ${MACHINE_TYPE},smm=${SMM},vmport=off ${GUEST_TWEAKS}
|
||||||
${CPU} ${SMP}
|
${CPU} ${SMP}
|
||||||
-m ${RAM_VM} ${BALLOON}
|
-m ${RAM_VM} ${BALLOON}
|
||||||
-smbios type=2,manufacturer="Quickemu Project",product="Quickemu",version="${VERSION}",serial="0xDEADBEEF",location="quickemu.com",asset="${VMNAME}"
|
-smbios type=2,manufacturer="Quickemu Project",product="Quickemu",version="${VERSION}",serial="0xDEADBEEF",location="quickemu.com",asset="${VMNAME}"
|
||||||
|
@ -891,6 +930,13 @@ function vm_boot() {
|
||||||
args+=(-drive if=floppy,format=raw,file="${floppy}")
|
args+=(-drive if=floppy,format=raw,file="${floppy}")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Since there is bug (probably) in KolibriOS: cdrom indexes 0 or 1 make system show an extra unexisting iso, so we use index=2
|
||||||
|
if [ -n "${iso}" ] && [ "${guest_os}" == "kolibrios" ]; then
|
||||||
|
# shellcheck disable=SC2054
|
||||||
|
args+=(-drive media=cdrom,index=2,file="${iso}")
|
||||||
|
iso=""
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -n "${iso}" ]; then
|
if [ -n "${iso}" ]; then
|
||||||
# shellcheck disable=SC2054
|
# shellcheck disable=SC2054
|
||||||
args+=(-drive media=cdrom,index=0,file="${iso}")
|
args+=(-drive media=cdrom,index=0,file="${iso}")
|
||||||
|
@ -922,6 +968,11 @@ function vm_boot() {
|
||||||
# shellcheck disable=SC2054,SC2206
|
# shellcheck disable=SC2054,SC2206
|
||||||
args+=(-device ${MAC_DISK_DEV},drive=SystemDisk
|
args+=(-device ${MAC_DISK_DEV},drive=SystemDisk
|
||||||
-drive id=SystemDisk,if=none,format=qcow2,file="${disk_img}" ${STATUS_QUO})
|
-drive id=SystemDisk,if=none,format=qcow2,file="${disk_img}" ${STATUS_QUO})
|
||||||
|
elif [ "${guest_os}" == "kolibrios" ]; then
|
||||||
|
# shellcheck disable=SC2054,SC2206
|
||||||
|
args+=(-device ahci,id=ahci
|
||||||
|
-device ide-hd,bus=ahci.0,drive=SystemDisk
|
||||||
|
-drive id=SystemDisk,if=none,format=qcow2,file="${disk_img}" ${STATUS_QUO})
|
||||||
else
|
else
|
||||||
# shellcheck disable=SC2054,SC2206
|
# shellcheck disable=SC2054,SC2206
|
||||||
args+=(-device virtio-blk-pci,drive=SystemDisk
|
args+=(-device virtio-blk-pci,drive=SystemDisk
|
||||||
|
|
445
quickget
445
quickget
|
@ -36,15 +36,32 @@ function pretty_name() {
|
||||||
SIMPLE_NAME="${1}"
|
SIMPLE_NAME="${1}"
|
||||||
case ${SIMPLE_NAME} in
|
case ${SIMPLE_NAME} in
|
||||||
alma) PRETTY_NAME="Alma Linux";;
|
alma) PRETTY_NAME="Alma Linux";;
|
||||||
|
alpine) PRETTY_NAME="Alpine Linux";;
|
||||||
android) PRETTY_NAME="Android x86";;
|
android) PRETTY_NAME="Android x86";;
|
||||||
archlinux) PRETTY_NAME="Arch Linux";;
|
archlinux) PRETTY_NAME="Arch Linux";;
|
||||||
|
arcolinux) PRETTY_NAME="Arco Linux";;
|
||||||
|
cachyos) PRETTY_NAME="CachyOS";;
|
||||||
elementary) PRETTY_NAME="elementary OS";;
|
elementary) PRETTY_NAME="elementary OS";;
|
||||||
freebsd) PRETTY_NAME="FreeBSD";;
|
freebsd) PRETTY_NAME="FreeBSD";;
|
||||||
|
gentoo) PRETTY_NAME="Gentoo";;
|
||||||
garuda) PRETTY_NAME="Garuda Linux";;
|
garuda) PRETTY_NAME="Garuda Linux";;
|
||||||
|
haiku) PRETTY_NAME="Haiku";;
|
||||||
kdeneon) PRETTY_NAME="KDE Neon";;
|
kdeneon) PRETTY_NAME="KDE Neon";;
|
||||||
|
kolibrios) PRETTY_NAME="KolibriOS";;
|
||||||
linuxmint-cinnamon) PRETTY_NAME="Linux Mint Cinnamon";;
|
linuxmint-cinnamon) PRETTY_NAME="Linux Mint Cinnamon";;
|
||||||
linuxmint-mate) PRETTY_NAME="Linux Mint MATE";;
|
linuxmint-mate) PRETTY_NAME="Linux Mint MATE";;
|
||||||
linuxmint-xfce) PRETTY_NAME="Linux Mint XFCE";;
|
linuxmint-xfce) PRETTY_NAME="Linux Mint XFCE";;
|
||||||
|
manjaro-xfce) PRETTY_NAME="Manjaro XFCE";;
|
||||||
|
manjaro-kde) PRETTY_NAME="Manjaro KDE";;
|
||||||
|
manjaro-gnome) PRETTY_NAME="Manjaro Gnome";;
|
||||||
|
manjaro-budgie) PRETTY_NAME="Manjaro Budgie";;
|
||||||
|
manjaro-cinnamon) PRETTY_NAME="Manjaro Cinnamon";;
|
||||||
|
manjaro-deepin) PRETTY_NAME="Manjaro Deepin";;
|
||||||
|
manjaro-i3) PRETTY_NAME="Manjaro i3";;
|
||||||
|
manjaro-mate) PRETTY_NAME="Manjaro MATE";;
|
||||||
|
mxlinux-xfce) PRETTY_NAME="MX Linux XFCE";;
|
||||||
|
mxlinux-kde) PRETTY_NAME="MX Linux KDE";;
|
||||||
|
mxlinux-fluxbox) PRETTY_NAME="MX Linux Fluxbox";;
|
||||||
nixos-gnome) PRETTY_NAME="NixOS Gnome";;
|
nixos-gnome) PRETTY_NAME="NixOS Gnome";;
|
||||||
nixos-plasma5) PRETTY_NAME="NixOS KDE";;
|
nixos-plasma5) PRETTY_NAME="NixOS KDE";;
|
||||||
nixos-minimal) PRETTY_NAME="NixOS Minimal";;
|
nixos-minimal) PRETTY_NAME="NixOS Minimal";;
|
||||||
|
@ -59,6 +76,7 @@ function pretty_name() {
|
||||||
ubuntu-kylin) PRETTY_NAME="Ubuntu Kylin";;
|
ubuntu-kylin) PRETTY_NAME="Ubuntu Kylin";;
|
||||||
ubuntu-mate) PRETTY_NAME="Ubuntu MATE";;
|
ubuntu-mate) PRETTY_NAME="Ubuntu MATE";;
|
||||||
ubuntu-studio) PRETTY_NAME="Ubuntu Studio";;
|
ubuntu-studio) PRETTY_NAME="Ubuntu Studio";;
|
||||||
|
void) PRETTY_NAME="Void Linux";;
|
||||||
zorin) PRETTY_NAME="Zorin OS";;
|
zorin) PRETTY_NAME="Zorin OS";;
|
||||||
*) PRETTY_NAME="${SIMPLE_NAME^}";;
|
*) PRETTY_NAME="${SIMPLE_NAME^}";;
|
||||||
esac
|
esac
|
||||||
|
@ -111,6 +129,10 @@ function list_csv() {
|
||||||
FUNC="ubuntu"
|
FUNC="ubuntu"
|
||||||
elif [[ "${OS}" == *"linuxmint"* ]]; then
|
elif [[ "${OS}" == *"linuxmint"* ]]; then
|
||||||
FUNC="linuxmint"
|
FUNC="linuxmint"
|
||||||
|
elif [[ "${OS}" == *"manjaro"* ]]; then
|
||||||
|
FUNC="manjaro"
|
||||||
|
elif [[ "${OS}" == *"mxlinux"* ]]; then
|
||||||
|
FUNC="mxlinux"
|
||||||
elif [[ "${OS}" == *"nixos"* ]]; then
|
elif [[ "${OS}" == *"nixos"* ]]; then
|
||||||
FUNC="nixos"
|
FUNC="nixos"
|
||||||
else
|
else
|
||||||
|
@ -127,8 +149,12 @@ function list_csv() {
|
||||||
DOWNLOADER="${DL}"
|
DOWNLOADER="${DL}"
|
||||||
elif [[ "${OS}" == *"ubuntu"* ]] && [ "${RELEASE}" == "devel" ]; then
|
elif [[ "${OS}" == *"ubuntu"* ]] && [ "${RELEASE}" == "devel" ]; then
|
||||||
DOWNLOADER="${DL}"
|
DOWNLOADER="${DL}"
|
||||||
|
elif [ "${OS}" == "cachyos" ]; then
|
||||||
|
DOWNLOADER="${DL}"
|
||||||
elif [ "${OS}" == "garuda" ]; then
|
elif [ "${OS}" == "garuda" ]; then
|
||||||
DOWNLOADER="${DL}"
|
DOWNLOADER="${DL}"
|
||||||
|
elif [ "${OS}" == "gentoo" ]; then
|
||||||
|
DOWNLOADER="${DL}"
|
||||||
elif [[ "${OS}" == *"kdeneon"* ]]; then
|
elif [[ "${OS}" == *"kdeneon"* ]]; then
|
||||||
DOWNLOADER="${DL}"
|
DOWNLOADER="${DL}"
|
||||||
else
|
else
|
||||||
|
@ -161,19 +187,36 @@ function list_csv() {
|
||||||
|
|
||||||
function os_support() {
|
function os_support() {
|
||||||
echo alma \
|
echo alma \
|
||||||
|
alpine \
|
||||||
android \
|
android \
|
||||||
archlinux \
|
archlinux \
|
||||||
|
arcolinux \
|
||||||
|
cachyos \
|
||||||
debian \
|
debian \
|
||||||
elementary \
|
elementary \
|
||||||
freebsd \
|
freebsd \
|
||||||
fedora \
|
fedora \
|
||||||
garuda \
|
garuda \
|
||||||
|
gentoo \
|
||||||
|
haiku \
|
||||||
kali \
|
kali \
|
||||||
kdeneon \
|
kdeneon \
|
||||||
|
kolibrios \
|
||||||
kubuntu \
|
kubuntu \
|
||||||
linuxmint-cinnamon \
|
linuxmint-cinnamon \
|
||||||
linuxmint-mate \
|
linuxmint-mate \
|
||||||
linuxmint-xfce \
|
linuxmint-xfce \
|
||||||
|
manjaro-xfce \
|
||||||
|
manjaro-kde \
|
||||||
|
manjaro-gnome \
|
||||||
|
manjaro-budgie \
|
||||||
|
manjaro-cinnamon \
|
||||||
|
manjaro-deepin \
|
||||||
|
manjaro-i3 \
|
||||||
|
manjaro-mate \
|
||||||
|
mxlinux-xfce \
|
||||||
|
mxlinux-kde \
|
||||||
|
mxlinux-fluxbox \
|
||||||
nixos-gnome \
|
nixos-gnome \
|
||||||
nixos-plasma5 \
|
nixos-plasma5 \
|
||||||
nixos-minimal \
|
nixos-minimal \
|
||||||
|
@ -186,11 +229,13 @@ function os_support() {
|
||||||
regolith \
|
regolith \
|
||||||
rockylinux \
|
rockylinux \
|
||||||
solus \
|
solus \
|
||||||
|
tails \
|
||||||
ubuntu \
|
ubuntu \
|
||||||
ubuntu-budgie \
|
ubuntu-budgie \
|
||||||
ubuntu-kylin \
|
ubuntu-kylin \
|
||||||
ubuntu-mate \
|
ubuntu-mate \
|
||||||
ubuntu-studio \
|
ubuntu-studio \
|
||||||
|
void \
|
||||||
windows \
|
windows \
|
||||||
xubuntu \
|
xubuntu \
|
||||||
zorin
|
zorin
|
||||||
|
@ -202,6 +247,14 @@ function releases_alma() {
|
||||||
8.5
|
8.5
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function releases_alpine() {
|
||||||
|
echo latest \
|
||||||
|
3.12 \
|
||||||
|
3.13 \
|
||||||
|
3.14 \
|
||||||
|
3.15
|
||||||
|
}
|
||||||
|
|
||||||
function releases_android() {
|
function releases_android() {
|
||||||
echo 9.0 \
|
echo 9.0 \
|
||||||
8.1 \
|
8.1 \
|
||||||
|
@ -217,21 +270,28 @@ function releases_archlinux() {
|
||||||
echo latest
|
echo latest
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function releases_arcolinux() {
|
||||||
|
echo latest
|
||||||
|
}
|
||||||
|
|
||||||
# later refactor these DE variants like languages and avoid the arch ?
|
# later refactor these DE variants like languages and avoid the arch ?
|
||||||
# all these are available with a "nonfree" option too
|
# all these are available with a "nonfree" option too
|
||||||
function releases_debian() {
|
function releases_debian() {
|
||||||
echo 11.1.0-amd64-cinnamon \
|
echo cinnamon \
|
||||||
11.1.0-amd64-gnome \
|
gnome \
|
||||||
11.1.0-amd64-kde \
|
kde \
|
||||||
11.1.0-amd64-lxde \
|
lxde \
|
||||||
11.1.0-amd64-lxqt \
|
lxqt \
|
||||||
11.1.0-amd64-mate \
|
mate \
|
||||||
11.1.0-amd64-standard \
|
standard \
|
||||||
11.1.0-amd64-xfce
|
xfce
|
||||||
|
}
|
||||||
|
function releases_cachyos() {
|
||||||
|
echo 2022.01.09
|
||||||
}
|
}
|
||||||
|
|
||||||
function releases_elementary() {
|
function releases_elementary() {
|
||||||
echo 6.0
|
echo 6.1
|
||||||
}
|
}
|
||||||
|
|
||||||
function releases_freebsd(){
|
function releases_freebsd(){
|
||||||
|
@ -245,6 +305,10 @@ function releases_fedora(){
|
||||||
35
|
35
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function releases_gentoo(){
|
||||||
|
echo latest
|
||||||
|
}
|
||||||
|
|
||||||
function releases_garuda() {
|
function releases_garuda() {
|
||||||
echo bspwm \
|
echo bspwm \
|
||||||
dr460nized \
|
dr460nized \
|
||||||
|
@ -262,6 +326,11 @@ function releases_garuda() {
|
||||||
cinnamon
|
cinnamon
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function releases_haiku() {
|
||||||
|
echo r1beta3-x86_64 \
|
||||||
|
r1beta3-x86_gcc2h
|
||||||
|
}
|
||||||
|
|
||||||
function releases_kali() {
|
function releases_kali() {
|
||||||
echo latest \
|
echo latest \
|
||||||
weekly
|
weekly
|
||||||
|
@ -274,10 +343,18 @@ function releases_kdeneon() {
|
||||||
developer
|
developer
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function releases_kolibrios() {
|
||||||
|
echo latest
|
||||||
|
}
|
||||||
|
|
||||||
function releases_linuxmint(){
|
function releases_linuxmint(){
|
||||||
echo 20.2
|
echo 20.2
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function releases_mxlinux(){
|
||||||
|
echo 21
|
||||||
|
}
|
||||||
|
|
||||||
function releases_nixos(){
|
function releases_nixos(){
|
||||||
echo 21.05 \
|
echo 21.05 \
|
||||||
21.11
|
21.11
|
||||||
|
@ -314,9 +391,20 @@ function releases_macos() {
|
||||||
monterey
|
monterey
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function releases_manjaro() {
|
||||||
|
case ${OS} in
|
||||||
|
*xfce|*kde|*gnome) echo full \
|
||||||
|
minimal \
|
||||||
|
minimal-lts;;
|
||||||
|
*budgie|*cinnamon|*deepin|*i3|*mate) echo full \
|
||||||
|
minimal;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
function releases_popos() {
|
function releases_popos() {
|
||||||
echo 20.04 \
|
echo 20.04 \
|
||||||
21.04
|
21.04 \
|
||||||
|
21.10
|
||||||
}
|
}
|
||||||
|
|
||||||
function releases_regolith() {
|
function releases_regolith() {
|
||||||
|
@ -343,6 +431,10 @@ function releases_solus() {
|
||||||
4.3-plasma
|
4.3-plasma
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function releases_tails() {
|
||||||
|
echo stable
|
||||||
|
}
|
||||||
|
|
||||||
function releases_ubuntu() {
|
function releases_ubuntu() {
|
||||||
echo bionic \
|
echo bionic \
|
||||||
focal \
|
focal \
|
||||||
|
@ -352,6 +444,13 @@ function releases_ubuntu() {
|
||||||
canary
|
canary
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function releases_void() {
|
||||||
|
echo base \
|
||||||
|
musl \
|
||||||
|
xfce \
|
||||||
|
xfce-musl
|
||||||
|
}
|
||||||
|
|
||||||
function languages_windows() {
|
function languages_windows() {
|
||||||
LANGS=(Arabic
|
LANGS=(Arabic
|
||||||
"Brazilian Portuguese"
|
"Brazilian Portuguese"
|
||||||
|
@ -513,15 +612,24 @@ function make_vm_config() {
|
||||||
if [ "${OS}" == "alma" ]; then
|
if [ "${OS}" == "alma" ]; then
|
||||||
GUEST="linux"
|
GUEST="linux"
|
||||||
IMAGE_TYPE="iso"
|
IMAGE_TYPE="iso"
|
||||||
|
elif [ "${OS}" == "alpine" ]; then
|
||||||
|
GUEST="linux"
|
||||||
|
IMAGE_TYPE="iso"
|
||||||
elif [ "${OS}" == "android" ]; then
|
elif [ "${OS}" == "android" ]; then
|
||||||
GUEST="linux"
|
GUEST="linux"
|
||||||
IMAGE_TYPE="iso"
|
IMAGE_TYPE="iso"
|
||||||
elif [ "${OS}" == "archlinux" ]; then
|
elif [ "${OS}" == "archlinux" ]; then
|
||||||
GUEST="linux"
|
GUEST="linux"
|
||||||
IMAGE_TYPE="iso"
|
IMAGE_TYPE="iso"
|
||||||
|
elif [ "${OS}" == "arcolinux" ]; then
|
||||||
|
GUEST="linux"
|
||||||
|
IMAGE_TYPE="iso"
|
||||||
elif [ "${OS}" == "debian" ]; then
|
elif [ "${OS}" == "debian" ]; then
|
||||||
GUEST="linux"
|
GUEST="linux"
|
||||||
IMAGE_TYPE="iso"
|
IMAGE_TYPE="iso"
|
||||||
|
elif [ "${OS}" == "cachyos" ]; then
|
||||||
|
GUEST="linux"
|
||||||
|
IMAGE_TYPE="iso"
|
||||||
elif [ "${OS}" == "elementary" ]; then
|
elif [ "${OS}" == "elementary" ]; then
|
||||||
GUEST="linux"
|
GUEST="linux"
|
||||||
IMAGE_TYPE="iso"
|
IMAGE_TYPE="iso"
|
||||||
|
@ -537,12 +645,27 @@ function make_vm_config() {
|
||||||
elif [ "${OS}" == "garuda" ]; then
|
elif [ "${OS}" == "garuda" ]; then
|
||||||
GUEST="linux"
|
GUEST="linux"
|
||||||
IMAGE_TYPE="iso"
|
IMAGE_TYPE="iso"
|
||||||
|
elif [ "${OS}" == "gentoo" ]; then
|
||||||
|
GUEST="linux"
|
||||||
|
IMAGE_TYPE="iso"
|
||||||
|
elif [ "${OS}" == "haiku" ]; then
|
||||||
|
GUEST="haiku"
|
||||||
|
IMAGE_TYPE="iso"
|
||||||
elif [ "${OS}" == "kdeneon" ]; then
|
elif [ "${OS}" == "kdeneon" ]; then
|
||||||
GUEST="linux"
|
GUEST="linux"
|
||||||
IMAGE_TYPE="iso"
|
IMAGE_TYPE="iso"
|
||||||
|
elif [ "${OS}" == "kolibrios" ]; then
|
||||||
|
GUEST="kolibrios"
|
||||||
|
IMAGE_TYPE="iso"
|
||||||
elif [[ "${OS}" == *"linuxmint"* ]]; then
|
elif [[ "${OS}" == *"linuxmint"* ]]; then
|
||||||
GUEST="linux"
|
GUEST="linux"
|
||||||
IMAGE_TYPE="iso"
|
IMAGE_TYPE="iso"
|
||||||
|
elif [[ "${OS}" == *"manjaro"* ]]; then
|
||||||
|
GUEST="linux"
|
||||||
|
IMAGE_TYPE="iso"
|
||||||
|
elif [[ "${OS}" == *"mxlinux"* ]]; then
|
||||||
|
GUEST="linux"
|
||||||
|
IMAGE_TYPE="iso"
|
||||||
elif [[ "${OS}" == *"nixos"* ]]; then
|
elif [[ "${OS}" == *"nixos"* ]]; then
|
||||||
GUEST="linux"
|
GUEST="linux"
|
||||||
IMAGE_TYPE="iso"
|
IMAGE_TYPE="iso"
|
||||||
|
@ -567,9 +690,15 @@ function make_vm_config() {
|
||||||
elif [ "${OS}" == "solus" ]; then
|
elif [ "${OS}" == "solus" ]; then
|
||||||
GUEST="linux"
|
GUEST="linux"
|
||||||
IMAGE_TYPE="iso"
|
IMAGE_TYPE="iso"
|
||||||
|
elif [[ "${OS}" == "tails" ]]; then
|
||||||
|
GUEST="linux"
|
||||||
|
IMAGE_TYPE="iso"
|
||||||
elif [[ "${OS}" == *"ubuntu"* ]]; then
|
elif [[ "${OS}" == *"ubuntu"* ]]; then
|
||||||
GUEST="linux"
|
GUEST="linux"
|
||||||
IMAGE_TYPE="iso"
|
IMAGE_TYPE="iso"
|
||||||
|
elif [ "${OS}" == "void" ]; then
|
||||||
|
GUEST="linux"
|
||||||
|
IMAGE_TYPE="iso"
|
||||||
elif [ "${OS}" == "macos" ]; then
|
elif [ "${OS}" == "macos" ]; then
|
||||||
GUEST="macos"
|
GUEST="macos"
|
||||||
IMAGE_TYPE="img"
|
IMAGE_TYPE="img"
|
||||||
|
@ -596,25 +725,48 @@ EOF
|
||||||
if [ -n "${ISO_FILE}" ]; then
|
if [ -n "${ISO_FILE}" ]; then
|
||||||
echo "fixed_iso=\"${VM_PATH}/${ISO_FILE}\"" >> "${OS}-${RELEASE}.conf"
|
echo "fixed_iso=\"${VM_PATH}/${ISO_FILE}\"" >> "${OS}-${RELEASE}.conf"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "${OS}" == "alma" ] && [ ${ISOTYPE} == "dvd" ]; then
|
if [ "${OS}" == "alma" ] && [ ${ISOTYPE} == "dvd" ]; then
|
||||||
echo "disk_size=\"32G\"" >> "${OS}-${RELEASE}.conf"
|
echo "disk_size=\"32G\"" >> "${OS}-${RELEASE}.conf"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "${OS}" == "kolibrios" ]; then
|
||||||
|
echo "boot=\"legacy\"" >> "${OS}-${RELEASE}.conf"
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "${OS}" == "openbsd" ]; then
|
if [ "${OS}" == "openbsd" ]; then
|
||||||
echo "boot=\"legacy\"" >> "${OS}-${RELEASE}.conf"
|
echo "boot=\"legacy\"" >> "${OS}-${RELEASE}.conf"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "${OS}" == "tails" ]; then
|
||||||
|
echo "boot=\"legacy\"" >> "${OS}-${RELEASE}.conf"
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "${OS}" == "macos" ]; then
|
if [ "${OS}" == "macos" ]; then
|
||||||
echo "macos_release=\"${RELEASE}\"" >> "${OS}-${RELEASE}.conf"
|
echo "macos_release=\"${RELEASE}\"" >> "${OS}-${RELEASE}.conf"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "${OS}" == "cachyos" ]; then
|
||||||
|
echo "disk_size=\"32G\"" >> "${OS}-${RELEASE}.conf"
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "${OS}" == "garuda" ]; then
|
if [ "${OS}" == "garuda" ]; then
|
||||||
echo "disk_size=\"32G\"" >> "${OS}-${RELEASE}.conf"
|
echo "disk_size=\"32G\"" >> "${OS}-${RELEASE}.conf"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "${OS}" == "haiku" ]; then
|
||||||
|
echo "boot=\"legacy\"" >> "${OS}-${RELEASE}.conf"
|
||||||
|
echo "disk_size=\"32G\"" >> "${OS}-${RELEASE}.conf"
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "${OS}" == "oraclelinux" ]; then
|
if [ "${OS}" == "oraclelinux" ]; then
|
||||||
echo "disk_size=\"20G\"" >> "${OS}-${RELEASE}.conf"
|
echo "disk_size=\"20G\"" >> "${OS}-${RELEASE}.conf"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "${OS}" == "void" ]; then
|
||||||
|
echo "disk_size=\"20G\"" >> "${OS}-${RELEASE}.conf"
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "${OS}" == "zorin" ]; then
|
if [ "${OS}" == "zorin" ]; then
|
||||||
case ${RELEASE} in
|
case ${RELEASE} in
|
||||||
15education64|15edulite64|15edulite32)
|
15education64|15edulite64|15edulite32)
|
||||||
|
@ -692,6 +844,30 @@ function get_alma() {
|
||||||
check_hash "${ISO}" "${HASH}"
|
check_hash "${ISO}" "${HASH}"
|
||||||
make_vm_config "${ISO}"
|
make_vm_config "${ISO}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function get_alpine() {
|
||||||
|
local HASH=""
|
||||||
|
local ISO=""
|
||||||
|
local URL=""
|
||||||
|
local VERSION=""
|
||||||
|
local BRANCH=""
|
||||||
|
|
||||||
|
validate_release "releases_alpine"
|
||||||
|
if [[ "${RELEASE}" == "latest" ]]; then
|
||||||
|
BRANCH="latest-stable"
|
||||||
|
else
|
||||||
|
BRANCH="v${RELEASE}"
|
||||||
|
fi
|
||||||
|
MANIFESTURL="https://dl-cdn.alpinelinux.org/alpine/${BRANCH}/releases/x86_64/latest-releases.yaml"
|
||||||
|
VERSION=$(wget -qO- "${MANIFESTURL}" | awk '/"Xen"/{found=0} {if(found) print} /"Virtual"/{found=1}' | grep 'version:' | awk '{print $2}')
|
||||||
|
ISO="alpine-virt-${VERSION}-x86_64.iso"
|
||||||
|
URL="https://dl-cdn.alpinelinux.org/alpine/${BRANCH}/releases/x86_64/${ISO}"
|
||||||
|
web_get "${URL}" "${VM_PATH}"
|
||||||
|
HASH=$(wget -qO- "${MANIFESTURL}" | awk '/"Xen"/{found=0} {if(found) print} /"Virtual"/{found=1}' | grep 'sha256:' | awk '{print $2}')
|
||||||
|
check_hash "${ISO}" "${HASH}"
|
||||||
|
make_vm_config "${ISO}"
|
||||||
|
}
|
||||||
|
|
||||||
function get_archlinux() {
|
function get_archlinux() {
|
||||||
local HASH=""
|
local HASH=""
|
||||||
local ISO=""
|
local ISO=""
|
||||||
|
@ -708,6 +884,36 @@ function get_archlinux() {
|
||||||
make_vm_config "${ISO}"
|
make_vm_config "${ISO}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function get_arcolinux() {
|
||||||
|
local HASH=""
|
||||||
|
local ISO=""
|
||||||
|
local URL=""
|
||||||
|
local VERSION=""
|
||||||
|
|
||||||
|
validate_release "releases_arcolinux"
|
||||||
|
VERSION=$(wget -q -O- 'https://ant.seedhost.eu/arcolinux/.quick/info' | cut -d " " -f 2)
|
||||||
|
URL="https://ant.seedhost.eu/arcolinux/.quick/"
|
||||||
|
ISO="arcolinuxl-${VERSION}-x86_64.iso"
|
||||||
|
HASH=$(wget -q -O- 'https://ant.seedhost.eu/arcolinux/.quick/arcolinuxl-'${VERSION}'-x86_64.iso.sha1' | cut -d " " -f 1)
|
||||||
|
web_get "${URL}/${ISO}" "${VM_PATH}"
|
||||||
|
check_hash "${ISO}" "${HASH}"
|
||||||
|
make_vm_config "${ISO}"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function get_cachyos() {
|
||||||
|
local HASH=""
|
||||||
|
local ISO=""
|
||||||
|
local URL=""
|
||||||
|
local VERSION=""
|
||||||
|
|
||||||
|
validate_release "releases_cachyos"
|
||||||
|
#ISO="cachyos-cli-${RELEASE}-x86_64.iso"
|
||||||
|
ISO="cachyos-${RELEASE}-x86_64.iso"
|
||||||
|
URL="https://mirror.cachyos.org/ISO"
|
||||||
|
web_get "${URL}/${ISO}" "${VM_PATH}"
|
||||||
|
make_vm_config "${ISO}"
|
||||||
|
}
|
||||||
|
|
||||||
function get_debian() {
|
function get_debian() {
|
||||||
local HASH=""
|
local HASH=""
|
||||||
|
@ -741,11 +947,11 @@ function get_elementary() {
|
||||||
local ISO=""
|
local ISO=""
|
||||||
local URL=""
|
local URL=""
|
||||||
local B66tim=""
|
local B66tim=""
|
||||||
|
local isotag="20211218-rc"
|
||||||
|
|
||||||
validate_release "releases_elementary"
|
validate_release "releases_elementary"
|
||||||
B66tim=$(date +%s | base64 )
|
B66tim=$(date +%s | base64 )
|
||||||
ISO="elementaryos-${RELEASE}-stable.20211005.iso"
|
ISO="elementaryos-${RELEASE}-stable.${isotag}.iso"
|
||||||
# TODO: derive region from geoIP
|
# TODO: derive region from geoIP
|
||||||
URL="https://ams3.dl.elementary.io/download/${B66tim}=/${ISO}"
|
URL="https://ams3.dl.elementary.io/download/${B66tim}=/${ISO}"
|
||||||
web_get "${URL}" "${VM_PATH}"
|
web_get "${URL}" "${VM_PATH}"
|
||||||
|
@ -793,6 +999,27 @@ function get_fedora() {
|
||||||
make_vm_config "${ISO}"
|
make_vm_config "${ISO}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function get_gentoo() {
|
||||||
|
local HASH=""
|
||||||
|
local ISO=""
|
||||||
|
local URL=""
|
||||||
|
local LOCAT=""
|
||||||
|
local INSTALLMIN=""
|
||||||
|
|
||||||
|
validate_release "releases_gentoo"
|
||||||
|
eval $( wget -O/tmp/gentoolatest https://bouncer.gentoo.org/fetch/root/all/releases/amd64/autobuilds/${RELEASE}-iso.txt 2>&1 |grep Location | awk '{print "LOCAT="$2}' )
|
||||||
|
LOCAT=$(dirname ${LOCAT})
|
||||||
|
eval $( awk '/admincd-amd64/ {print "ADMIN="$1}; /install-amd64-minimal/ {print "INSTALLMIN="$1}' /tmp/gentoolatest )
|
||||||
|
URL="${LOCAT}/${INSTALLMIN}"
|
||||||
|
ISO=$(basename "${INSTALLMIN}" )
|
||||||
|
|
||||||
|
|
||||||
|
web_get "${URL}" "${VM_PATH}"
|
||||||
|
HASH=$(wget -q -O- ${LOCAT}/${INSTALLMIN}.DIGESTS|grep -e iso|grep -v -e CONT -e catalyst|cut -d\ -f1)
|
||||||
|
check_hash "${ISO}" "${HASH}"
|
||||||
|
make_vm_config "${ISO}"
|
||||||
|
}
|
||||||
|
|
||||||
function get_kali() {
|
function get_kali() {
|
||||||
local HASH=""
|
local HASH=""
|
||||||
local ISO=""
|
local ISO=""
|
||||||
|
@ -828,6 +1055,23 @@ function get_kdeneon() {
|
||||||
make_vm_config "${ISO}"
|
make_vm_config "${ISO}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function get_kolibrios() {
|
||||||
|
local HASH=""
|
||||||
|
local ISO=""
|
||||||
|
local URL=""
|
||||||
|
|
||||||
|
validate_release "releases_kolibrios"
|
||||||
|
#URL="https://builds.kolibrios.org/eng/${RELEASE}.7z"
|
||||||
|
ISO="kolibri.iso"
|
||||||
|
URL="https://builds.kolibrios.org/eng/${ISO}"
|
||||||
|
web_get "${URL}" "${VM_PATH}"
|
||||||
|
#7z e "${VM_PATH}/${RELEASE}.7z" "kolibri.iso"
|
||||||
|
#ISO="kolibrios-${RELEASE}.iso"
|
||||||
|
#mv "kolibri.iso" "${VM_PATH}/${ISO}"
|
||||||
|
#rm "${VM_PATH}/${RELEASE}.7z"
|
||||||
|
make_vm_config "${ISO}"
|
||||||
|
}
|
||||||
|
|
||||||
function get_linuxmint() {
|
function get_linuxmint() {
|
||||||
local FLAVOR=""
|
local FLAVOR=""
|
||||||
local HASH=""
|
local HASH=""
|
||||||
|
@ -842,7 +1086,74 @@ function get_linuxmint() {
|
||||||
web_get "${URL}" "${VM_PATH}"
|
web_get "${URL}" "${VM_PATH}"
|
||||||
check_hash "${ISO}" "${HASH}"
|
check_hash "${ISO}" "${HASH}"
|
||||||
make_vm_config "${ISO}"
|
make_vm_config "${ISO}"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function get_manjaro() {
|
||||||
|
local FLAVOR=""
|
||||||
|
local MANIFESTURL=""
|
||||||
|
# local ISOKEY=""
|
||||||
|
local HASHKEY=""
|
||||||
|
local HASH=""
|
||||||
|
local ISO=""
|
||||||
|
local URL=""
|
||||||
|
|
||||||
|
validate_release "releases_manjaro"
|
||||||
|
FLAVOR=$(echo "${OS}" | cut -d'-' -f2)
|
||||||
|
case ${FLAVOR} in
|
||||||
|
xfce|kde|gnome) BRANCH="official";;
|
||||||
|
budgie|cinnamon|deepin|i3|mate) BRANCH="community";;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [[ ${RELEASE} == "full" ]]; then
|
||||||
|
KEY="Download_x64 = "
|
||||||
|
HASHKEY="Download_x64_Checksum = "
|
||||||
|
elif [[ ${RELEASE} == "minimal" ]]; then
|
||||||
|
KEY="Download_Minimal_x64 = "
|
||||||
|
HASHKEY="Download_Minimal_x64_Checksum = "
|
||||||
|
elif [[ ${RELEASE} == "minimal" ]]; then
|
||||||
|
KEY="Download_Minimal_lts = "
|
||||||
|
HASHKEY="Download_Minimal_x64_Checksum_lts = "
|
||||||
|
fi
|
||||||
|
|
||||||
|
MANIFESTURL="https://gitlab.manjaro.org/webpage/manjaro-homepage/-/raw/master/site/content/downloads/${BRANCH}/${FLAVOR}.md"
|
||||||
|
URL="$(wget -qO- ${MANIFESTURL} | grep "${KEY}" | awk '{print $3}' | tr -d '"')"
|
||||||
|
ISO="$(echo $URL | awk -F "/" '{print $6}')"
|
||||||
|
HASH=$(wget -qO- ${MANIFESTURL} | grep "${HASHKEY}" | awk '{print $3}' | tr -d '"')
|
||||||
|
web_get "${URL}" "${VM_PATH}"
|
||||||
|
check_hash "${ISO}" "${HASH}"
|
||||||
|
make_vm_config "${ISO}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_mxlinux() {
|
||||||
|
local FLAVOR=""
|
||||||
|
local HASH=""
|
||||||
|
local ISO=""
|
||||||
|
local URL=""
|
||||||
|
local BASE_URL=""
|
||||||
|
|
||||||
|
validate_release "releases_mxlinux"
|
||||||
|
FLAVOR=$(echo "${OS}" | cut -d'-' -f2)
|
||||||
|
|
||||||
|
if [[ "$FLAVOR" == "xfce" ]]; then
|
||||||
|
ISO="MX-${RELEASE}_x64.iso"
|
||||||
|
BASE_URL="https://sourceforge.net/projects/mx-linux/files/Final/Xfce/"
|
||||||
|
elif [[ "$FLAVOR" == "kde" ]]; then
|
||||||
|
ISO="MX-${RELEASE}_KDE_x64.iso"
|
||||||
|
BASE_URL="https://sourceforge.net/projects/mx-linux/files/Final/KDE/"
|
||||||
|
elif [[ "$FLAVOR" == "fluxbox" ]]; then
|
||||||
|
ISO="MX-${RELEASE}_fluxbox_x64.iso"
|
||||||
|
BASE_URL="https://sourceforge.net/projects/mx-linux/files/Final/Fluxbox/"
|
||||||
|
fi
|
||||||
|
|
||||||
|
URL="${BASE_URL}/${ISO}"
|
||||||
|
web_get "${URL}" "${VM_PATH}"
|
||||||
|
web_get "${URL}.sha256" "${VM_PATH}"
|
||||||
|
HASH=$(cat "${VM_PATH}/${ISO}.sha256" | cut -d' ' -f1)
|
||||||
|
check_hash "${ISO}" "${HASH}"
|
||||||
|
make_vm_config "${ISO}"
|
||||||
|
}
|
||||||
|
|
||||||
function get_nixos() {
|
function get_nixos() {
|
||||||
local FLAVOR=""
|
local FLAVOR=""
|
||||||
local HASH=""
|
local HASH=""
|
||||||
|
@ -857,6 +1168,7 @@ function get_nixos() {
|
||||||
web_get "${URL}" "${VM_PATH}"
|
web_get "${URL}" "${VM_PATH}"
|
||||||
check_hash "${ISO}" "${HASH}"
|
check_hash "${ISO}" "${HASH}"
|
||||||
make_vm_config "${ISO}"
|
make_vm_config "${ISO}"
|
||||||
|
|
||||||
}
|
}
|
||||||
function get_openbsd() {
|
function get_openbsd() {
|
||||||
local HASH=""
|
local HASH=""
|
||||||
|
@ -872,6 +1184,40 @@ function get_openbsd() {
|
||||||
make_vm_config "${ISO}"
|
make_vm_config "${ISO}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function get_void() {
|
||||||
|
local HASH=""
|
||||||
|
local ISO=""
|
||||||
|
local URL=""
|
||||||
|
local HASH_URL=""
|
||||||
|
|
||||||
|
validate_release "releases_void"
|
||||||
|
DATE=$(wget -q -O- "https://mirror.fit.cvut.cz/voidlinux/live/current/sha256sum.txt" | awk 'NR == 1' |cut -d'.' -f1| cut -d'-' -f4)
|
||||||
|
URL="http://mirror.fit.cvut.cz/voidlinux/live/current"
|
||||||
|
case ${RELEASE} in
|
||||||
|
base)
|
||||||
|
ISO="void-live-x86_64-${DATE}.iso";;
|
||||||
|
musl)
|
||||||
|
ISO="void-live-x86_64-musl-${DATE}.iso";;
|
||||||
|
xfce)
|
||||||
|
ISO="void-live-x86_64-${DATE}-xfce.iso";;
|
||||||
|
xfce-musl)
|
||||||
|
ISO="void-live-x86_64-musl-${DATE}-xfce.iso";;
|
||||||
|
esac
|
||||||
|
case ${RELEASE} in
|
||||||
|
base)
|
||||||
|
HASH="$(wget -q -O- "https://mirror.fit.cvut.cz/voidlinux/live/current/sha256sum.txt" | grep "void-live-x86_64-${DATE}.iso" | cut -d' ' -f4)";;
|
||||||
|
musl)
|
||||||
|
HASH="$(wget -q -O- "https://mirror.fit.cvut.cz/voidlinux/live/current/sha256sum.txt" | grep "void-live-x86_64-musl-${DATE}.iso" | cut -d' ' -f4)";;
|
||||||
|
xfce)
|
||||||
|
HASH="$(wget -q -O- "https://mirror.fit.cvut.cz/voidlinux/live/current/sha256sum.txt" | grep "void-live-x86_64-${DATE}-xfce.iso" | cut -d' ' -f4)";;
|
||||||
|
xfce-musl)
|
||||||
|
HASH="$(wget -q -O- "https://mirror.fit.cvut.cz/voidlinux/live/current/sha256sum.txt" | grep "void-live-x86_64-musl-${DATE}.iso" | cut -d' ' -f4)";;
|
||||||
|
esac
|
||||||
|
web_get "${URL}/${ISO}" "${VM_PATH}"
|
||||||
|
check_hash "${ISO}" "${HASH}"
|
||||||
|
make_vm_config "${ISO}"
|
||||||
|
}
|
||||||
|
|
||||||
function get_zorin() {
|
function get_zorin() {
|
||||||
local ISO=""
|
local ISO=""
|
||||||
local URL=""
|
local URL=""
|
||||||
|
@ -941,10 +1287,14 @@ function get_opensuse() {
|
||||||
ISO="openSUSE-MicroOS-DVD-x86_64-Current.iso"
|
ISO="openSUSE-MicroOS-DVD-x86_64-Current.iso"
|
||||||
URL="https://download.opensuse.org/tumbleweed/iso/${ISO}"
|
URL="https://download.opensuse.org/tumbleweed/iso/${ISO}"
|
||||||
HASH=$(wget -q -O- "${URL}.sha256" | cut -d' ' -f1)
|
HASH=$(wget -q -O- "${URL}.sha256" | cut -d' ' -f1)
|
||||||
else
|
elif [ "$RELEASE" == 15.0 ] || [ "$RELEASE" == 15.1 ]; then
|
||||||
ISO="openSUSE-Leap-${RELEASE}-DVD-x86_64.iso"
|
ISO="openSUSE-Leap-${RELEASE}-DVD-x86_64.iso"
|
||||||
URL="https://download.opensuse.org/distribution/leap/${RELEASE}/iso/${ISO}"
|
URL="https://download.opensuse.org/distribution/leap/${RELEASE}/iso/${ISO}"
|
||||||
HASH=$(wget -q -O- "${URL}.sha256" | cut -d' ' -f1)
|
HASH=$(wget -q -O- "${URL}.sha256" | cut -d' ' -f1)
|
||||||
|
else
|
||||||
|
ISO="openSUSE-Leap-${RELEASE}-DVD-x86_64-Current.iso"
|
||||||
|
URL="https://download.opensuse.org/distribution/leap/${RELEASE}/iso/${ISO}"
|
||||||
|
HASH=$(wget -q -O- "${URL}.sha256" | cut -d' ' -f1)
|
||||||
fi
|
fi
|
||||||
web_get "${URL}" "${VM_PATH}"
|
web_get "${URL}" "${VM_PATH}"
|
||||||
check_hash "${ISO}" "${HASH}"
|
check_hash "${ISO}" "${HASH}"
|
||||||
|
@ -1100,6 +1450,18 @@ function get_regolith() {
|
||||||
make_vm_config "${ISO}"
|
make_vm_config "${ISO}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function get_tails() {
|
||||||
|
validate_release "releases_tails"
|
||||||
|
|
||||||
|
RELEASE_JSON_URL="https://tails.boum.org/install/v2/Tails/amd64/${RELEASE}/latest.json"
|
||||||
|
RELEASE_JSON="$(wget -q -O- "$RELEASE_JSON_URL")"
|
||||||
|
URL=$(echo "$RELEASE_JSON" | jq -r '.installations[0]."installation-paths"[]|select(.type=="iso")|."target-files"[0].url')
|
||||||
|
HASH=$(echo "$RELEASE_JSON" | jq -r '.installations[0]."installation-paths"[]|select(.type=="iso")|."target-files"[0].sha256')
|
||||||
|
ISO=$(echo "${URL}" | sed -e "s/.*\/\([^\/]*\)$/\1/")
|
||||||
|
web_get "${URL}" "${VM_PATH}"
|
||||||
|
check_hash "${ISO}" "${HASH}"
|
||||||
|
make_vm_config "${ISO}"
|
||||||
|
}
|
||||||
|
|
||||||
function get_ubuntu() {
|
function get_ubuntu() {
|
||||||
local DEVEL="daily-live"
|
local DEVEL="daily-live"
|
||||||
|
@ -1149,6 +1511,7 @@ function get_ubuntu() {
|
||||||
make_vm_config "${ISO}"
|
make_vm_config "${ISO}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function get_garuda() {
|
function get_garuda() {
|
||||||
local HASH=""
|
local HASH=""
|
||||||
local ISO=""
|
local ISO=""
|
||||||
|
@ -1185,6 +1548,21 @@ function get_garuda() {
|
||||||
make_vm_config "${OS}-${RELEASE}.iso"
|
make_vm_config "${OS}-${RELEASE}.iso"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function get_haiku() {
|
||||||
|
local ISO=""
|
||||||
|
local URL=""
|
||||||
|
local HASH=""
|
||||||
|
|
||||||
|
validate_release "releases_haiku"
|
||||||
|
|
||||||
|
ISO="haiku-${RELEASE}-anyboot.iso"
|
||||||
|
URL="https://cdn.haiku-os.org/haiku-release/$(echo $RELEASE | awk -F '-' '{print $1}')/${ISO}"
|
||||||
|
HASH=$(wget -q -O- ${URL}.sha256 | grep "${ISO}" | cut -d' ' -f4)
|
||||||
|
web_get "${URL}" "${VM_PATH}"
|
||||||
|
check_hash "${ISO}" "${HASH}"
|
||||||
|
make_vm_config "${ISO}"
|
||||||
|
}
|
||||||
|
|
||||||
function unattended_windows() {
|
function unattended_windows() {
|
||||||
cat << 'EOF' > "${1}"
|
cat << 'EOF' > "${1}"
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
@ -1480,7 +1858,6 @@ function unattended_windows() {
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function dbg_windows() {
|
function dbg_windows() {
|
||||||
local DEBUG=0
|
local DEBUG=0
|
||||||
if [ ${DEBUG} -eq 1 ]; then
|
if [ ${DEBUG} -eq 1 ]; then
|
||||||
|
@ -1623,10 +2000,16 @@ if [ -n "${2}" ]; then
|
||||||
fi
|
fi
|
||||||
VM_PATH="${OS}-${RELEASE}-${ISOTYPE}"
|
VM_PATH="${OS}-${RELEASE}-${ISOTYPE}"
|
||||||
get_alma "${ISOTYPE}"
|
get_alma "${ISOTYPE}"
|
||||||
|
elif [ "${OS}" == "alpine" ]; then
|
||||||
|
get_alpine
|
||||||
elif [ "${OS}" == "android" ]; then
|
elif [ "${OS}" == "android" ]; then
|
||||||
get_android
|
get_android
|
||||||
elif [ "${OS}" == "archlinux" ]; then
|
elif [ "${OS}" == "archlinux" ]; then
|
||||||
get_archlinux
|
get_archlinux
|
||||||
|
elif [ "${OS}" == "arcolinux" ]; then
|
||||||
|
get_arcolinux
|
||||||
|
elif [ "${OS}" == "void" ]; then
|
||||||
|
get_void
|
||||||
elif [ "${OS}" == "debian" ]; then
|
elif [ "${OS}" == "debian" ]; then
|
||||||
if [ -n "${3}" ]; then
|
if [ -n "${3}" ]; then
|
||||||
FREEDOM="${3}"
|
FREEDOM="${3}"
|
||||||
|
@ -1653,12 +2036,24 @@ if [ -n "${2}" ]; then
|
||||||
get_fedora
|
get_fedora
|
||||||
elif [ "${OS}" == "garuda" ]; then
|
elif [ "${OS}" == "garuda" ]; then
|
||||||
get_garuda
|
get_garuda
|
||||||
|
elif [ "${OS}" == "cachyos" ]; then
|
||||||
|
get_cachyos
|
||||||
|
elif [ "${OS}" == "gentoo" ]; then
|
||||||
|
get_gentoo
|
||||||
|
elif [ "${OS}" == "haiku" ]; then
|
||||||
|
get_haiku
|
||||||
elif [ "${OS}" == "kali" ]; then
|
elif [ "${OS}" == "kali" ]; then
|
||||||
get_kali
|
get_kali
|
||||||
elif [ "${OS}" == "kdeneon" ]; then
|
elif [ "${OS}" == "kdeneon" ]; then
|
||||||
get_kdeneon
|
get_kdeneon
|
||||||
|
elif [ "${OS}" == "kolibrios" ]; then
|
||||||
|
get_kolibrios
|
||||||
elif [[ "${OS}" == *"linuxmint-"* ]]; then
|
elif [[ "${OS}" == *"linuxmint-"* ]]; then
|
||||||
get_linuxmint
|
get_linuxmint
|
||||||
|
elif [[ "${OS}" == *"manjaro-"* ]]; then
|
||||||
|
get_manjaro
|
||||||
|
elif [[ "${OS}" == *"mxlinux-"* ]]; then
|
||||||
|
get_mxlinux
|
||||||
elif [[ "${OS}" == *"nixos-"* ]]; then
|
elif [[ "${OS}" == *"nixos-"* ]]; then
|
||||||
get_nixos
|
get_nixos
|
||||||
elif [ "${OS}" == "openbsd" ]; then
|
elif [ "${OS}" == "openbsd" ]; then
|
||||||
|
@ -1703,6 +2098,8 @@ if [ -n "${2}" ]; then
|
||||||
get_rocky "${ISOTYPE}"
|
get_rocky "${ISOTYPE}"
|
||||||
elif [ "${OS}" == "solus" ]; then
|
elif [ "${OS}" == "solus" ]; then
|
||||||
get_solus
|
get_solus
|
||||||
|
elif [[ "${OS}" == "tails"* ]]; then
|
||||||
|
get_tails
|
||||||
elif [[ "${OS}" == *"ubuntu"* ]]; then
|
elif [[ "${OS}" == *"ubuntu"* ]]; then
|
||||||
get_ubuntu
|
get_ubuntu
|
||||||
elif [ "${OS}" == "windows" ]; then
|
elif [ "${OS}" == "windows" ]; then
|
||||||
|
@ -1730,10 +2127,14 @@ else
|
||||||
echo -n "ERROR! You must specify a release: "
|
echo -n "ERROR! You must specify a release: "
|
||||||
if [ "${OS}" == "alma" ]; then
|
if [ "${OS}" == "alma" ]; then
|
||||||
releases_alma
|
releases_alma
|
||||||
|
elif [ "${OS}" == "alpine" ]; then
|
||||||
|
releases_alpine
|
||||||
elif [ "${OS}" == "android" ]; then
|
elif [ "${OS}" == "android" ]; then
|
||||||
releases_android
|
releases_android
|
||||||
elif [ "${OS}" == "archlinux" ]; then
|
elif [ "${OS}" == "archlinux" ]; then
|
||||||
releases_archlinux
|
releases_archlinux
|
||||||
|
elif [ "${OS}" == "arcolinux" ]; then
|
||||||
|
releases_arcolinux
|
||||||
elif [ "${OS}" == "debian" ]; then
|
elif [ "${OS}" == "debian" ]; then
|
||||||
releases_debian
|
releases_debian
|
||||||
elif [ "${OS}" == "elementary" ]; then
|
elif [ "${OS}" == "elementary" ]; then
|
||||||
|
@ -1744,10 +2145,22 @@ else
|
||||||
releases_fedora
|
releases_fedora
|
||||||
elif [ "${OS}" == "garuda" ]; then
|
elif [ "${OS}" == "garuda" ]; then
|
||||||
releases_garuda
|
releases_garuda
|
||||||
|
elif [ "${OS}" == "cachyos" ]; then
|
||||||
|
releases_cachyos
|
||||||
|
elif [ "${OS}" == "gentoo" ]; then
|
||||||
|
releases_gentoo
|
||||||
|
elif [ "${OS}" == "haiku" ]; then
|
||||||
|
releases_haiku
|
||||||
elif [ "${OS}" == "kali" ]; then
|
elif [ "${OS}" == "kali" ]; then
|
||||||
releases_kali
|
releases_kali
|
||||||
|
elif [ "${OS}" == "kolibrios" ]; then
|
||||||
|
releases_kolibrios
|
||||||
elif [[ "${OS}" == *"linuxmint-"* ]]; then
|
elif [[ "${OS}" == *"linuxmint-"* ]]; then
|
||||||
releases_linuxmint
|
releases_linuxmint
|
||||||
|
elif [[ "${OS}" == *"manjaro-"* ]]; then
|
||||||
|
releases_manjaro
|
||||||
|
elif [[ "${OS}" == *"mxlinux-"* ]]; then
|
||||||
|
releases_mxlinux
|
||||||
elif [[ "${OS}" == *"nixos-"* ]]; then
|
elif [[ "${OS}" == *"nixos-"* ]]; then
|
||||||
releases_nixos
|
releases_nixos
|
||||||
elif [ "${OS}" == "opensuse" ]; then
|
elif [ "${OS}" == "opensuse" ]; then
|
||||||
|
@ -1766,8 +2179,12 @@ else
|
||||||
releases_rockylinux
|
releases_rockylinux
|
||||||
elif [ "${OS}" == "solus" ]; then
|
elif [ "${OS}" == "solus" ]; then
|
||||||
releases_solus
|
releases_solus
|
||||||
|
elif [[ "${OS}" == "tails"* ]]; then
|
||||||
|
releases_tails
|
||||||
elif [[ "${OS}" == *"ubuntu"* ]]; then
|
elif [[ "${OS}" == *"ubuntu"* ]]; then
|
||||||
releases_ubuntu
|
releases_ubuntu
|
||||||
|
elif [ "${OS}" == "void" ]; then
|
||||||
|
releases_void
|
||||||
elif [ "${OS}" == "windows" ]; then
|
elif [ "${OS}" == "windows" ]; then
|
||||||
releases_windows
|
releases_windows
|
||||||
elif [ "${OS}" == "zorin" ]; then
|
elif [ "${OS}" == "zorin" ]; then
|
||||||
|
|
Loading…
Reference in a new issue