From 0dd26be4722d96c80526329221e7f4116c96c9b6 Mon Sep 17 00:00:00 2001 From: Kai Lyons Date: Thu, 7 Oct 2021 09:22:45 -0600 Subject: [PATCH] Add FreeBSD support (#62) * Add releases_freebsd() function * complete FreeBSD addition * Add README.md info for FreeBSD Co-authored-by: Kai Lyons --- README.md | 12 ++++++++++++ quickget | 49 +++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 59 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3b80486..aaa19b8 100644 --- a/README.md +++ b/README.md @@ -253,6 +253,18 @@ quickemu --vm windows-11.conf * Download and install [UsbDk](https://www.spice-space.org/download/windows/usbdk/) * Enables USB SPICE pass-through between the host and guest. +### FreeBSD Guest +`quickemu` supports FreeBSD production releases. FreeBSD support is maintained by ``. + +FreeBSD version command reference (just in case): +* 12.2: `12_2` +* 13.0: `13_0` + +```bash +quickget freebsd 13_0 +quickemu --vm freebsd-13_0.conf +``` + ### Regional versions By default `quickget` will download the *"English International"* release, but diff --git a/quickget b/quickget index 0e449a5..8de8408 100755 --- a/quickget +++ b/quickget @@ -1,7 +1,8 @@ #!/usr/bin/env bash function os_support() { - echo kubuntu \ + echo freebsd \ + kubuntu \ lubuntu \ macos \ ubuntu \ @@ -13,6 +14,12 @@ function os_support() { xubuntu } +function releases_freebsd(){ + echo 13_0 \ + 12_2 # replace with 12.3 upon release + # 14_0 # Waiting for 14.0 release +} + function releases_macos() { echo high-sierra \ mojave \ @@ -128,7 +135,10 @@ function make_vm_config() { local GUEST="" IMAGE_FILE="${1}" ISO_FILE="${2}" - if [[ "${OS}" == *"ubuntu"* ]]; then + if [[ "${OS}" == "freebsd" ]]; then + GUEST="freebsd" + IMAGE_TYPE="iso" + elif [[ "${OS}" == *"ubuntu"* ]]; then GUEST="linux" IMAGE_TYPE="iso" elif [ "${OS}" == "macos" ]; then @@ -168,6 +178,39 @@ function start_vm_info() { echo } +function get_freebsd() { + # For future releases, use dvd1 iso files. + local URL="" + local CHECKSUMS="" + local DL_BASE="https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES" + local VERSION="" + case ${RELEASE} in + 13_0) + VERSION="13.0" + ;; + 12_2) + VERSION="12.2" + ;; + # Waiting until FreeBSD 14 release + # 14_0) + # VERSION="14.0" + # ;; + *) + echo "ERROR! FreeBSD ${RELEASE} is not a supported release." + releases_freebsd + exit 1 + ;; + esac + + URL="${DL_BASE}/${VERSION}/FreeBSD-${VERSION}-RELEASE-amd64-dvd1.iso" + + ISO="FreeBSD-${VERSION}-RELEASE-amd64-dvd1.iso" + web_get ${URL} ${VM_PATH} + make_vm_dir + make_vm_config ${ISO} + start_vm_info +} + function get_macos() { local CWD="" local MACRECOVERY="" @@ -380,6 +423,8 @@ VM_PATH="${OS}-${RELEASE}" if [ "${OS}" == "macos" ]; then get_macos +elif [[ "${OS}" == *"freebsd" ]]; then + get_freebsd elif [[ "${OS}" == *"ubuntu"* ]]; then get_ubuntu elif [ "${OS}" == "windows" ]; then