|
|
@ -168,8 +168,8 @@ function os_support() { |
|
|
|
debian \ |
|
|
|
debian \ |
|
|
|
devuan \ |
|
|
|
devuan \ |
|
|
|
elementary \ |
|
|
|
elementary \ |
|
|
|
freebsd \ |
|
|
|
|
|
|
|
fedora \ |
|
|
|
fedora \ |
|
|
|
|
|
|
|
freebsd \ |
|
|
|
garuda \ |
|
|
|
garuda \ |
|
|
|
gentoo \ |
|
|
|
gentoo \ |
|
|
|
haiku \ |
|
|
|
haiku \ |
|
|
@ -240,6 +240,11 @@ function releases_arcolinux() { |
|
|
|
echo latest |
|
|
|
echo latest |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function releases_cachyos() { |
|
|
|
|
|
|
|
echo 2022.01.09 \ |
|
|
|
|
|
|
|
2022.02.11 |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function releases_debian() { |
|
|
|
function releases_debian() { |
|
|
|
echo 11.2.0 |
|
|
|
echo 11.2.0 |
|
|
|
} |
|
|
|
} |
|
|
@ -255,11 +260,6 @@ function editions_debian() { |
|
|
|
xfce |
|
|
|
xfce |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function releases_cachyos() { |
|
|
|
|
|
|
|
echo 2022.01.09 \ |
|
|
|
|
|
|
|
2022.02.11 |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function releases_devuan() { |
|
|
|
function releases_devuan() { |
|
|
|
echo beowulf \ |
|
|
|
echo beowulf \ |
|
|
|
chimaera |
|
|
|
chimaera |
|
|
@ -269,19 +269,15 @@ function releases_elementary() { |
|
|
|
echo 6.1 |
|
|
|
echo 6.1 |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function releases_freebsd(){ |
|
|
|
|
|
|
|
echo 12.2 \ |
|
|
|
|
|
|
|
13.0 |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function releases_fedora(){ |
|
|
|
function releases_fedora(){ |
|
|
|
echo 33 \ |
|
|
|
echo 33 \ |
|
|
|
34 \ |
|
|
|
34 \ |
|
|
|
35 |
|
|
|
35 |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function releases_gentoo(){ |
|
|
|
function releases_freebsd(){ |
|
|
|
echo latest |
|
|
|
echo 12.2 \ |
|
|
|
|
|
|
|
13.0 |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function releases_garuda() { |
|
|
|
function releases_garuda() { |
|
|
@ -301,6 +297,10 @@ function releases_garuda() { |
|
|
|
cinnamon |
|
|
|
cinnamon |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function releases_gentoo(){ |
|
|
|
|
|
|
|
echo latest |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function releases_haiku() { |
|
|
|
function releases_haiku() { |
|
|
|
echo r1beta3-x86_64 \ |
|
|
|
echo r1beta3-x86_64 \ |
|
|
|
r1beta3-x86_gcc2h |
|
|
|
r1beta3-x86_gcc2h |
|
|
@ -342,6 +342,25 @@ function editions_mxlinux(){ |
|
|
|
fluxbox |
|
|
|
fluxbox |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function releases_macos() { |
|
|
|
|
|
|
|
echo high-sierra \ |
|
|
|
|
|
|
|
mojave \ |
|
|
|
|
|
|
|
catalina \ |
|
|
|
|
|
|
|
big-sur \ |
|
|
|
|
|
|
|
monterey |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function releases_manjaro() { |
|
|
|
|
|
|
|
echo xfce \ |
|
|
|
|
|
|
|
gnome \ |
|
|
|
|
|
|
|
kde \ |
|
|
|
|
|
|
|
budgie \ |
|
|
|
|
|
|
|
cinnamon \ |
|
|
|
|
|
|
|
deepin \ |
|
|
|
|
|
|
|
i3 \ |
|
|
|
|
|
|
|
mate |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function releases_nixos(){ |
|
|
|
function releases_nixos(){ |
|
|
|
echo 21.05 \ |
|
|
|
echo 21.05 \ |
|
|
|
21.11 |
|
|
|
21.11 |
|
|
@ -353,7 +372,6 @@ function editions_nixos(){ |
|
|
|
minimal |
|
|
|
minimal |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function releases_openbsd(){ |
|
|
|
function releases_openbsd(){ |
|
|
|
echo 7.0 |
|
|
|
echo 7.0 |
|
|
|
} |
|
|
|
} |
|
|
@ -377,25 +395,6 @@ function releases_oraclelinux() { |
|
|
|
7.7 |
|
|
|
7.7 |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function releases_macos() { |
|
|
|
|
|
|
|
echo high-sierra \ |
|
|
|
|
|
|
|
mojave \ |
|
|
|
|
|
|
|
catalina \ |
|
|
|
|
|
|
|
big-sur \ |
|
|
|
|
|
|
|
monterey |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function releases_manjaro() { |
|
|
|
|
|
|
|
echo xfce \ |
|
|
|
|
|
|
|
gnome \ |
|
|
|
|
|
|
|
kde \ |
|
|
|
|
|
|
|
budgie \ |
|
|
|
|
|
|
|
cinnamon \ |
|
|
|
|
|
|
|
deepin \ |
|
|
|
|
|
|
|
i3 \ |
|
|
|
|
|
|
|
mate |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function releases_popos() { |
|
|
|
function releases_popos() { |
|
|
|
echo 20.04 \ |
|
|
|
echo 20.04 \ |
|
|
|
21.04 \ |
|
|
|
21.04 \ |
|
|
@ -414,7 +413,6 @@ function releases_regolith() { |
|
|
|
2.0.0_hirsute |
|
|
|
2.0.0_hirsute |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function releases_rockylinux() { |
|
|
|
function releases_rockylinux() { |
|
|
|
echo 8.5 \ |
|
|
|
echo 8.5 \ |
|
|
|
8.4 \ |
|
|
|
8.4 \ |
|
|
@ -848,19 +846,6 @@ function get_elementary() { |
|
|
|
make_vm_config "${ISO}" |
|
|
|
make_vm_config "${ISO}" |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function get_freebsd() { |
|
|
|
|
|
|
|
local HASH="" |
|
|
|
|
|
|
|
local ISO="" |
|
|
|
|
|
|
|
local URL="" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ISO="FreeBSD-${RELEASE}-RELEASE-amd64-dvd1.iso" |
|
|
|
|
|
|
|
HASH=$(wget -q -O- "https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES/${RELEASE}/CHECKSUM.SHA512-FreeBSD-${RELEASE}-RELEASE-amd64" | grep '('"${ISO}"')' | cut -d' ' -f4) |
|
|
|
|
|
|
|
URL="https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES/${RELEASE}/${ISO}" |
|
|
|
|
|
|
|
web_get "${URL}" "${VM_PATH}" |
|
|
|
|
|
|
|
check_hash "${ISO}" "${HASH}" |
|
|
|
|
|
|
|
make_vm_config "${ISO}" |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function get_fedora() { |
|
|
|
function get_fedora() { |
|
|
|
local FEDORA_RELEASE="" |
|
|
|
local FEDORA_RELEASE="" |
|
|
|
local FEDORA_VERSIONS="" |
|
|
|
local FEDORA_VERSIONS="" |
|
|
@ -886,6 +871,47 @@ function get_fedora() { |
|
|
|
make_vm_config "${ISO}" |
|
|
|
make_vm_config "${ISO}" |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function get_freebsd() { |
|
|
|
|
|
|
|
local HASH="" |
|
|
|
|
|
|
|
local ISO="" |
|
|
|
|
|
|
|
local URL="" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ISO="FreeBSD-${RELEASE}-RELEASE-amd64-dvd1.iso" |
|
|
|
|
|
|
|
HASH=$(wget -q -O- "https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES/${RELEASE}/CHECKSUM.SHA512-FreeBSD-${RELEASE}-RELEASE-amd64" | grep '('"${ISO}"')' | cut -d' ' -f4) |
|
|
|
|
|
|
|
URL="https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES/${RELEASE}/${ISO}" |
|
|
|
|
|
|
|
web_get "${URL}" "${VM_PATH}" |
|
|
|
|
|
|
|
check_hash "${ISO}" "${HASH}" |
|
|
|
|
|
|
|
make_vm_config "${ISO}" |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function get_garuda() { |
|
|
|
|
|
|
|
local DATE="" |
|
|
|
|
|
|
|
local HASH="" |
|
|
|
|
|
|
|
local ISO="" |
|
|
|
|
|
|
|
local URL="http://mirrors.fossho.st/garuda/iso" |
|
|
|
|
|
|
|
local REL_TYPE="" |
|
|
|
|
|
|
|
local LATEST_URL="" |
|
|
|
|
|
|
|
local HASH_URL="" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
case ${RELEASE} in |
|
|
|
|
|
|
|
mate|cinnamon) |
|
|
|
|
|
|
|
REL_TYPE="community";; |
|
|
|
|
|
|
|
*) |
|
|
|
|
|
|
|
REL_TYPE="garuda";; |
|
|
|
|
|
|
|
esac |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Follow daily releases and use SHA hash file to derive .iso and date |
|
|
|
|
|
|
|
LATEST_URL="${URL}/latest/${REL_TYPE}/${RELEASE}/latest.iso.sha256" |
|
|
|
|
|
|
|
HASH_URL="$(wget -q -O- "${LATEST_URL}")" |
|
|
|
|
|
|
|
ISO="$(echo "${HASH_URL}" | awk '{print $NF}')" |
|
|
|
|
|
|
|
HASH=$(echo "${HASH_URL}" | cut -d' ' -f1) |
|
|
|
|
|
|
|
DATE=$(echo "${ISO}" | awk -F'-' '{print $NF}' | cut -d'.' -f1) |
|
|
|
|
|
|
|
URL="${URL}/${REL_TYPE}/${RELEASE}/${DATE}" |
|
|
|
|
|
|
|
web_get "${URL}/${ISO}" "${VM_PATH}" |
|
|
|
|
|
|
|
check_hash "${ISO}" "${HASH}" |
|
|
|
|
|
|
|
make_vm_config "${OS}-${RELEASE}.iso" |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function get_gentoo() { |
|
|
|
function get_gentoo() { |
|
|
|
local HASH="" |
|
|
|
local HASH="" |
|
|
|
local ISO="" |
|
|
|
local ISO="" |
|
|
@ -898,6 +924,21 @@ function get_gentoo() { |
|
|
|
make_vm_config "${ISO}" |
|
|
|
make_vm_config "${ISO}" |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function get_haiku() { |
|
|
|
|
|
|
|
local BASE="" |
|
|
|
|
|
|
|
local ISO="" |
|
|
|
|
|
|
|
local URL="" |
|
|
|
|
|
|
|
local HASH="" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BASE=$(echo "${RELEASE}" | cut -d'-' -f1) |
|
|
|
|
|
|
|
URL="https://cdn.haiku-os.org/haiku-release/${BASE}" |
|
|
|
|
|
|
|
ISO="haiku-${RELEASE}-anyboot.iso" |
|
|
|
|
|
|
|
HASH=$(wget -q -O- "${URL}/${ISO}.sha256" | grep "${ISO}" | cut -d' ' -f4) |
|
|
|
|
|
|
|
web_get "${URL}/${ISO}" "${VM_PATH}" |
|
|
|
|
|
|
|
check_hash "${ISO}" "${HASH}" |
|
|
|
|
|
|
|
make_vm_config "${ISO}" |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function get_kali() { |
|
|
|
function get_kali() { |
|
|
|
local HASH="" |
|
|
|
local HASH="" |
|
|
|
local ISO="" |
|
|
|
local ISO="" |
|
|
@ -957,6 +998,74 @@ function get_linuxmint() { |
|
|
|
make_vm_config "${ISO}" |
|
|
|
make_vm_config "${ISO}" |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function get_macos() { |
|
|
|
|
|
|
|
local BOARD_ID="" |
|
|
|
|
|
|
|
local CWD="" |
|
|
|
|
|
|
|
local MACRECOVERY="" |
|
|
|
|
|
|
|
local MLB="" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
case ${RELEASE} in |
|
|
|
|
|
|
|
high-sierra) |
|
|
|
|
|
|
|
BOARD_ID="Mac-7BA5B2D9E42DDD94" |
|
|
|
|
|
|
|
MLB="00000000000J80300";; |
|
|
|
|
|
|
|
mojave) |
|
|
|
|
|
|
|
BOARD_ID="Mac-7BA5B2DFE22DDD8C" |
|
|
|
|
|
|
|
MLB="00000000000KXPG00";; |
|
|
|
|
|
|
|
catalina) |
|
|
|
|
|
|
|
BOARD_ID="Mac-CFF7D910A743CAAF" |
|
|
|
|
|
|
|
MLB="00000000000PHCD00";; |
|
|
|
|
|
|
|
big-sur) |
|
|
|
|
|
|
|
BOARD_ID="Mac-35C1E88140C3E6CF" |
|
|
|
|
|
|
|
MLB="00000000000000000";; |
|
|
|
|
|
|
|
monterey) |
|
|
|
|
|
|
|
BOARD_ID="Mac-06F11F11946D27C5" |
|
|
|
|
|
|
|
MLB="00000000000000000";; |
|
|
|
|
|
|
|
*) echo "ERROR! Unknown release: ${RELEASE}" |
|
|
|
|
|
|
|
releases_macos |
|
|
|
|
|
|
|
exit 1;; |
|
|
|
|
|
|
|
esac |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Use a bundled macrecovery if possible |
|
|
|
|
|
|
|
CWD="$(dirname "${0}")" |
|
|
|
|
|
|
|
if [ -x "${CWD}/macrecovery" ]; then |
|
|
|
|
|
|
|
MACRECOVERY="${CWD}/macrecovery" |
|
|
|
|
|
|
|
elif [ -x /usr/bin/macrecovery ]; then |
|
|
|
|
|
|
|
MACRECOVERY="/usr/bin/macrecovery" |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
web_get "https://raw.githubusercontent.com/wimpysworld/quickemu/master/macrecovery" "${HOME}/.quickemu" |
|
|
|
|
|
|
|
MACRECOVERY="python3 ${HOME}/.quickemu/macrecovery" |
|
|
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if [ -z "${MACRECOVERY}" ]; then |
|
|
|
|
|
|
|
echo "ERROR! Can not find a usable macrecovery." |
|
|
|
|
|
|
|
exit 1 |
|
|
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Get firmware |
|
|
|
|
|
|
|
web_get "https://github.com/kholia/OSX-KVM/raw/master/OpenCore/OpenCore.qcow2" "${VM_PATH}" |
|
|
|
|
|
|
|
web_get "https://github.com/kholia/OSX-KVM/raw/master/OVMF_CODE.fd" "${VM_PATH}" |
|
|
|
|
|
|
|
if [ ! -e "${VM_PATH}/OVMF_VARS-1024x768.fd" ]; then |
|
|
|
|
|
|
|
web_get "https://github.com/kholia/OSX-KVM/raw/master/OVMF_VARS-1024x768.fd" "${VM_PATH}" |
|
|
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if [ ! -e "${VM_PATH}/RecoveryImage.chunklist" ]; then |
|
|
|
|
|
|
|
echo "Downloading ${RELEASE}..." |
|
|
|
|
|
|
|
${MACRECOVERY} \ |
|
|
|
|
|
|
|
--board-id "${BOARD_ID}" \ |
|
|
|
|
|
|
|
--mlb "${MLB}" \ |
|
|
|
|
|
|
|
--basename RecoveryImage \ |
|
|
|
|
|
|
|
--outdir "${VM_PATH}" \ |
|
|
|
|
|
|
|
download |
|
|
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if [ -e "${VM_PATH}/RecoveryImage.dmg" ] && [ ! -e "${VM_PATH}/RecoveryImage.img" ]; then |
|
|
|
|
|
|
|
echo "Converting RecoveryImage..." |
|
|
|
|
|
|
|
qemu-img convert "${VM_PATH}/RecoveryImage.dmg" -O raw "${VM_PATH}/RecoveryImage.img" |
|
|
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
make_vm_config RecoveryImage.img |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function get_manjaro() { |
|
|
|
function get_manjaro() { |
|
|
|
local BRANCH="" |
|
|
|
local BRANCH="" |
|
|
|
local HASH="" |
|
|
|
local HASH="" |
|
|
@ -1041,105 +1150,6 @@ function get_openbsd() { |
|
|
|
make_vm_config "${ISO}" |
|
|
|
make_vm_config "${ISO}" |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function get_void() { |
|
|
|
|
|
|
|
local DATE="" |
|
|
|
|
|
|
|
local EDITION="" |
|
|
|
|
|
|
|
local HASH="" |
|
|
|
|
|
|
|
local ISO="" |
|
|
|
|
|
|
|
local URL="https://alpha.de.repo.voidlinux.org/live/current" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DATE=$(wget -q -O- "${URL}/sha256sum.txt" | head -n1 | cut -d'.' -f1 | cut -d'-' -f4) |
|
|
|
|
|
|
|
if [ -n "${1}" ]; then |
|
|
|
|
|
|
|
EDITION="${1}" |
|
|
|
|
|
|
|
fi |
|
|
|
|
|
|
|
case ${EDITION} in |
|
|
|
|
|
|
|
glibc) ISO="void-live-x86_64-${DATE}.iso";; |
|
|
|
|
|
|
|
musl) ISO="void-live-x86_64-musl-${DATE}.iso";; |
|
|
|
|
|
|
|
xfce-glibc) ISO="void-live-x86_64-${DATE}-xfce.iso";; |
|
|
|
|
|
|
|
xfce-musl) ISO="void-live-x86_64-musl-${DATE}-xfce.iso";; |
|
|
|
|
|
|
|
esac |
|
|
|
|
|
|
|
HASH="$(wget -q -O- "${URL}/sha256sum.txt" | grep "${ISO}" | cut -d' ' -f4)" |
|
|
|
|
|
|
|
web_get "${URL}/${ISO}" "${VM_PATH}" |
|
|
|
|
|
|
|
check_hash "${ISO}" "${HASH}" |
|
|
|
|
|
|
|
make_vm_config "${ISO}" |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function get_zorin() { |
|
|
|
|
|
|
|
local ISO="" |
|
|
|
|
|
|
|
local URL="" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Parse out the iso URL from the redirector |
|
|
|
|
|
|
|
URL=$(wget -q -S -O- --max-redirect=0 "https://zrn.co/${RELEASE}" 2>&1 | grep Location | cut -d' ' -f4) |
|
|
|
|
|
|
|
ISO="${URL##*/}" |
|
|
|
|
|
|
|
web_get "${URL}" "${VM_PATH}" |
|
|
|
|
|
|
|
make_vm_config "${ISO}" |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function get_rockylinux() { |
|
|
|
|
|
|
|
local EDITION="" |
|
|
|
|
|
|
|
local HASH="" |
|
|
|
|
|
|
|
local ISO="" |
|
|
|
|
|
|
|
local URL="" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if [ -n "${1}" ]; then |
|
|
|
|
|
|
|
EDITION="${1}" |
|
|
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
URL="https://download.rockylinux.org/pub/rocky/${RELEASE}/isos/x86_64" |
|
|
|
|
|
|
|
ISO="Rocky-${RELEASE}-x86_64-${EDITION}.iso" |
|
|
|
|
|
|
|
HASH=$(wget -q -O- "${URL}/CHECKSUM" | grep "SHA256" | grep "${ISO}" | cut -d' ' -f4) |
|
|
|
|
|
|
|
web_get "${URL}/${ISO}" "${VM_PATH}" |
|
|
|
|
|
|
|
check_hash "${ISO}" "${HASH}" |
|
|
|
|
|
|
|
make_vm_config "${ISO}" |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function get_slackware() { |
|
|
|
|
|
|
|
local HASH="" |
|
|
|
|
|
|
|
local ISO="" |
|
|
|
|
|
|
|
local URL="" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
case ${RELEASE} in |
|
|
|
|
|
|
|
current) |
|
|
|
|
|
|
|
URL="https://slackware.nl/slackware/slackware64-current-iso" |
|
|
|
|
|
|
|
ISO="slackware64-current-install-dvd.iso" |
|
|
|
|
|
|
|
;; |
|
|
|
|
|
|
|
*) |
|
|
|
|
|
|
|
URL="https://mirrors.slackware.com/slackware/slackware-iso/slackware64-${RELEASE}-iso" |
|
|
|
|
|
|
|
ISO="slackware64-${RELEASE}-install-dvd.iso" |
|
|
|
|
|
|
|
;; |
|
|
|
|
|
|
|
esac |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
HASH=$(wget -q -O- "${URL}/${ISO}.md5" | cut -d' ' -f1) |
|
|
|
|
|
|
|
web_get "${URL}/${ISO}" "${VM_PATH}" |
|
|
|
|
|
|
|
check_hash "${ISO}" "${HASH}" |
|
|
|
|
|
|
|
make_vm_config "${ISO}" |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function get_solus() { |
|
|
|
|
|
|
|
local EDITION="" |
|
|
|
|
|
|
|
local HASH="" |
|
|
|
|
|
|
|
local ISO="" |
|
|
|
|
|
|
|
local URL="" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if [ -n "${1}" ]; then |
|
|
|
|
|
|
|
EDITION="${1}" |
|
|
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
case ${EDITION} in |
|
|
|
|
|
|
|
mate|gnome) |
|
|
|
|
|
|
|
EDITION=${EDITION^^};; |
|
|
|
|
|
|
|
*) |
|
|
|
|
|
|
|
EDITION=${EDITION^};; |
|
|
|
|
|
|
|
esac |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
URL="https://mirrors.rit.edu/solus/images/${RELEASE}" |
|
|
|
|
|
|
|
ISO="Solus-${RELEASE}-${EDITION}.iso" |
|
|
|
|
|
|
|
HASH=$(wget -q -O- "${URL}.sha256sum" | cut -d' ' -f1) |
|
|
|
|
|
|
|
web_get "${URL}/${ISO}" "${VM_PATH}" |
|
|
|
|
|
|
|
check_hash "${ISO}" "${HASH}" |
|
|
|
|
|
|
|
make_vm_config "${ISO}" |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function get_opensuse() { |
|
|
|
function get_opensuse() { |
|
|
|
local HASH="" |
|
|
|
local HASH="" |
|
|
|
local ISO="" |
|
|
|
local ISO="" |
|
|
@ -1188,74 +1198,6 @@ function get_oraclelinux() { |
|
|
|
make_vm_config "${ISO}" |
|
|
|
make_vm_config "${ISO}" |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function get_macos() { |
|
|
|
|
|
|
|
local BOARD_ID="" |
|
|
|
|
|
|
|
local CWD="" |
|
|
|
|
|
|
|
local MACRECOVERY="" |
|
|
|
|
|
|
|
local MLB="" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
case ${RELEASE} in |
|
|
|
|
|
|
|
high-sierra) |
|
|
|
|
|
|
|
BOARD_ID="Mac-7BA5B2D9E42DDD94" |
|
|
|
|
|
|
|
MLB="00000000000J80300";; |
|
|
|
|
|
|
|
mojave) |
|
|
|
|
|
|
|
BOARD_ID="Mac-7BA5B2DFE22DDD8C" |
|
|
|
|
|
|
|
MLB="00000000000KXPG00";; |
|
|
|
|
|
|
|
catalina) |
|
|
|
|
|
|
|
BOARD_ID="Mac-CFF7D910A743CAAF" |
|
|
|
|
|
|
|
MLB="00000000000PHCD00";; |
|
|
|
|
|
|
|
big-sur) |
|
|
|
|
|
|
|
BOARD_ID="Mac-35C1E88140C3E6CF" |
|
|
|
|
|
|
|
MLB="00000000000000000";; |
|
|
|
|
|
|
|
monterey) |
|
|
|
|
|
|
|
BOARD_ID="Mac-06F11F11946D27C5" |
|
|
|
|
|
|
|
MLB="00000000000000000";; |
|
|
|
|
|
|
|
*) echo "ERROR! Unknown release: ${RELEASE}" |
|
|
|
|
|
|
|
releases_macos |
|
|
|
|
|
|
|
exit 1;; |
|
|
|
|
|
|
|
esac |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Use a bundled macrecovery if possible |
|
|
|
|
|
|
|
CWD="$(dirname "${0}")" |
|
|
|
|
|
|
|
if [ -x "${CWD}/macrecovery" ]; then |
|
|
|
|
|
|
|
MACRECOVERY="${CWD}/macrecovery" |
|
|
|
|
|
|
|
elif [ -x /usr/bin/macrecovery ]; then |
|
|
|
|
|
|
|
MACRECOVERY="/usr/bin/macrecovery" |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
web_get "https://raw.githubusercontent.com/wimpysworld/quickemu/master/macrecovery" "${HOME}/.quickemu" |
|
|
|
|
|
|
|
MACRECOVERY="python3 ${HOME}/.quickemu/macrecovery" |
|
|
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if [ -z "${MACRECOVERY}" ]; then |
|
|
|
|
|
|
|
echo "ERROR! Can not find a usable macrecovery." |
|
|
|
|
|
|
|
exit 1 |
|
|
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Get firmware |
|
|
|
|
|
|
|
web_get "https://github.com/kholia/OSX-KVM/raw/master/OpenCore/OpenCore.qcow2" "${VM_PATH}" |
|
|
|
|
|
|
|
web_get "https://github.com/kholia/OSX-KVM/raw/master/OVMF_CODE.fd" "${VM_PATH}" |
|
|
|
|
|
|
|
if [ ! -e "${VM_PATH}/OVMF_VARS-1024x768.fd" ]; then |
|
|
|
|
|
|
|
web_get "https://github.com/kholia/OSX-KVM/raw/master/OVMF_VARS-1024x768.fd" "${VM_PATH}" |
|
|
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if [ ! -e "${VM_PATH}/RecoveryImage.chunklist" ]; then |
|
|
|
|
|
|
|
echo "Downloading ${RELEASE}..." |
|
|
|
|
|
|
|
${MACRECOVERY} \ |
|
|
|
|
|
|
|
--board-id "${BOARD_ID}" \ |
|
|
|
|
|
|
|
--mlb "${MLB}" \ |
|
|
|
|
|
|
|
--basename RecoveryImage \ |
|
|
|
|
|
|
|
--outdir "${VM_PATH}" \ |
|
|
|
|
|
|
|
download |
|
|
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if [ -e "${VM_PATH}/RecoveryImage.dmg" ] && [ ! -e "${VM_PATH}/RecoveryImage.img" ]; then |
|
|
|
|
|
|
|
echo "Converting RecoveryImage..." |
|
|
|
|
|
|
|
qemu-img convert "${VM_PATH}/RecoveryImage.dmg" -O raw "${VM_PATH}/RecoveryImage.img" |
|
|
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
make_vm_config RecoveryImage.img |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function get_popos() { |
|
|
|
function get_popos() { |
|
|
|
local EDITION="" |
|
|
|
local EDITION="" |
|
|
|
local HASH="" |
|
|
|
local HASH="" |
|
|
@ -1303,6 +1245,71 @@ function get_regolith() { |
|
|
|
make_vm_config "${ISO}" |
|
|
|
make_vm_config "${ISO}" |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function get_rockylinux() { |
|
|
|
|
|
|
|
local EDITION="" |
|
|
|
|
|
|
|
local HASH="" |
|
|
|
|
|
|
|
local ISO="" |
|
|
|
|
|
|
|
local URL="" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if [ -n "${1}" ]; then |
|
|
|
|
|
|
|
EDITION="${1}" |
|
|
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
URL="https://download.rockylinux.org/pub/rocky/${RELEASE}/isos/x86_64" |
|
|
|
|
|
|
|
ISO="Rocky-${RELEASE}-x86_64-${EDITION}.iso" |
|
|
|
|
|
|
|
HASH=$(wget -q -O- "${URL}/CHECKSUM" | grep "SHA256" | grep "${ISO}" | cut -d' ' -f4) |
|
|
|
|
|
|
|
web_get "${URL}/${ISO}" "${VM_PATH}" |
|
|
|
|
|
|
|
check_hash "${ISO}" "${HASH}" |
|
|
|
|
|
|
|
make_vm_config "${ISO}" |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function get_slackware() { |
|
|
|
|
|
|
|
local HASH="" |
|
|
|
|
|
|
|
local ISO="" |
|
|
|
|
|
|
|
local URL="" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
case ${RELEASE} in |
|
|
|
|
|
|
|
current) |
|
|
|
|
|
|
|
URL="https://slackware.nl/slackware/slackware64-current-iso" |
|
|
|
|
|
|
|
ISO="slackware64-current-install-dvd.iso" |
|
|
|
|
|
|
|
;; |
|
|
|
|
|
|
|
*) |
|
|
|
|
|
|
|
URL="https://mirrors.slackware.com/slackware/slackware-iso/slackware64-${RELEASE}-iso" |
|
|
|
|
|
|
|
ISO="slackware64-${RELEASE}-install-dvd.iso" |
|
|
|
|
|
|
|
;; |
|
|
|
|
|
|
|
esac |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
HASH=$(wget -q -O- "${URL}/${ISO}.md5" | cut -d' ' -f1) |
|
|
|
|
|
|
|
web_get "${URL}/${ISO}" "${VM_PATH}" |
|
|
|
|
|
|
|
check_hash "${ISO}" "${HASH}" |
|
|
|
|
|
|
|
make_vm_config "${ISO}" |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function get_solus() { |
|
|
|
|
|
|
|
local EDITION="" |
|
|
|
|
|
|
|
local HASH="" |
|
|
|
|
|
|
|
local ISO="" |
|
|
|
|
|
|
|
local URL="" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if [ -n "${1}" ]; then |
|
|
|
|
|
|
|
EDITION="${1}" |
|
|
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
case ${EDITION} in |
|
|
|
|
|
|
|
mate|gnome) |
|
|
|
|
|
|
|
EDITION=${EDITION^^};; |
|
|
|
|
|
|
|
*) |
|
|
|
|
|
|
|
EDITION=${EDITION^};; |
|
|
|
|
|
|
|
esac |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
URL="https://mirrors.rit.edu/solus/images/${RELEASE}" |
|
|
|
|
|
|
|
ISO="Solus-${RELEASE}-${EDITION}.iso" |
|
|
|
|
|
|
|
HASH=$(wget -q -O- "${URL}.sha256sum" | cut -d' ' -f1) |
|
|
|
|
|
|
|
web_get "${URL}/${ISO}" "${VM_PATH}" |
|
|
|
|
|
|
|
check_hash "${ISO}" "${HASH}" |
|
|
|
|
|
|
|
make_vm_config "${ISO}" |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function get_tails() { |
|
|
|
function get_tails() { |
|
|
|
local ISO="" |
|
|
|
local ISO="" |
|
|
|
local HASH="" |
|
|
|
local HASH="" |
|
|
@ -1367,46 +1374,37 @@ function get_ubuntu() { |
|
|
|
fi |
|
|
|
fi |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function get_garuda() { |
|
|
|
function get_void() { |
|
|
|
local DATE="" |
|
|
|
local DATE="" |
|
|
|
|
|
|
|
local EDITION="" |
|
|
|
local HASH="" |
|
|
|
local HASH="" |
|
|
|
local ISO="" |
|
|
|
local ISO="" |
|
|
|
local URL="http://mirrors.fossho.st/garuda/iso" |
|
|
|
local URL="https://alpha.de.repo.voidlinux.org/live/current" |
|
|
|
local REL_TYPE="" |
|
|
|
|
|
|
|
local LATEST_URL="" |
|
|
|
|
|
|
|
local HASH_URL="" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
case ${RELEASE} in |
|
|
|
DATE=$(wget -q -O- "${URL}/sha256sum.txt" | head -n1 | cut -d'.' -f1 | cut -d'-' -f4) |
|
|
|
mate|cinnamon) |
|
|
|
if [ -n "${1}" ]; then |
|
|
|
REL_TYPE="community";; |
|
|
|
EDITION="${1}" |
|
|
|
*) |
|
|
|
fi |
|
|
|
REL_TYPE="garuda";; |
|
|
|
case ${EDITION} in |
|
|
|
|
|
|
|
glibc) ISO="void-live-x86_64-${DATE}.iso";; |
|
|
|
|
|
|
|
musl) ISO="void-live-x86_64-musl-${DATE}.iso";; |
|
|
|
|
|
|
|
xfce-glibc) ISO="void-live-x86_64-${DATE}-xfce.iso";; |
|
|
|
|
|
|
|
xfce-musl) ISO="void-live-x86_64-musl-${DATE}-xfce.iso";; |
|
|
|
esac |
|
|
|
esac |
|
|
|
|
|
|
|
HASH="$(wget -q -O- "${URL}/sha256sum.txt" | grep "${ISO}" | cut -d' ' -f4)" |
|
|
|
# Follow daily releases and use SHA hash file to derive .iso and date |
|
|
|
|
|
|
|
LATEST_URL="${URL}/latest/${REL_TYPE}/${RELEASE}/latest.iso.sha256" |
|
|
|
|
|
|
|
HASH_URL="$(wget -q -O- "${LATEST_URL}")" |
|
|
|
|
|
|
|
ISO="$(echo "${HASH_URL}" | awk '{print $NF}')" |
|
|
|
|
|
|
|
HASH=$(echo "${HASH_URL}" | cut -d' ' -f1) |
|
|
|
|
|
|
|
DATE=$(echo "${ISO}" | awk -F'-' '{print $NF}' | cut -d'.' -f1) |
|
|
|
|
|
|
|
URL="${URL}/${REL_TYPE}/${RELEASE}/${DATE}" |
|
|
|
|
|
|
|
web_get "${URL}/${ISO}" "${VM_PATH}" |
|
|
|
web_get "${URL}/${ISO}" "${VM_PATH}" |
|
|
|
check_hash "${ISO}" "${HASH}" |
|
|
|
check_hash "${ISO}" "${HASH}" |
|
|
|
make_vm_config "${OS}-${RELEASE}.iso" |
|
|
|
make_vm_config "${ISO}" |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function get_haiku() { |
|
|
|
function get_zorin() { |
|
|
|
local BASE="" |
|
|
|
|
|
|
|
local ISO="" |
|
|
|
local ISO="" |
|
|
|
local URL="" |
|
|
|
local URL="" |
|
|
|
local HASH="" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BASE=$(echo "${RELEASE}" | cut -d'-' -f1) |
|
|
|
# Parse out the iso URL from the redirector |
|
|
|
URL="https://cdn.haiku-os.org/haiku-release/${BASE}" |
|
|
|
URL=$(wget -q -S -O- --max-redirect=0 "https://zrn.co/${RELEASE}" 2>&1 | grep Location | cut -d' ' -f4) |
|
|
|
ISO="haiku-${RELEASE}-anyboot.iso" |
|
|
|
ISO="${URL##*/}" |
|
|
|
HASH=$(wget -q -O- "${URL}/${ISO}.sha256" | grep "${ISO}" | cut -d' ' -f4) |
|
|
|
web_get "${URL}" "${VM_PATH}" |
|
|
|
web_get "${URL}/${ISO}" "${VM_PATH}" |
|
|
|
|
|
|
|
check_hash "${ISO}" "${HASH}" |
|
|
|
|
|
|
|
make_vm_config "${ISO}" |
|
|
|
make_vm_config "${ISO}" |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|