mirror of
				https://github.com/oSoWoSo/DistroHopper.git
				synced 2024-08-14 22:46:53 +00:00 
			
		
		
		
	Add Alma Linux (#259)
* temp working files to build function * remove working dross * inital Alma Linux support * Added option for dvd or minimal iso to Alma * corrections * temp working files to build function * remove working dross * inital Alma Linux support * Added option for dvd or minimal iso to Alma * corrections
This commit is contained in:
		
							parent
							
								
									ca0f144351
								
							
						
					
					
						commit
						0af524e3e5
					
				
					 2 changed files with 79 additions and 9 deletions
				
			
		|  | @ -33,6 +33,7 @@ comprehensive support for macOS and Windows**. | ||||||
|   * [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/) | ||||||
|   * [Linux Mint](https://linuxmint.com/) (Cinnamon, MATE, and XFCE), [elementary OS](https://elementary.io/), [Pop!_OS](https://pop.system76.com/) |   * [Linux Mint](https://linuxmint.com/) (Cinnamon, MATE, and XFCE), [elementary OS](https://elementary.io/), [Pop!_OS](https://pop.system76.com/) | ||||||
|   * [Arch Linux](https://www.archlinux.org/), [Kali](https://www.kali.org/),[Garuda](https://garudalinux.org/), [ZorinOS](https://zorin.com/os/) & [NixOS](https://nixos.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/) | ||||||
|   * [Oracle Linux](https://www.oracle.com/linux/) and [Rocky Linux](https://rockylinux.org/) |   * [Oracle Linux](https://www.oracle.com/linux/) and [Rocky Linux](https://rockylinux.org/) | ||||||
|  | @ -175,6 +176,7 @@ preferred flavour. | ||||||
| 
 | 
 | ||||||
| `quickget` also supports: | `quickget` also supports: | ||||||
| 
 | 
 | ||||||
|  |   * `alma` | ||||||
|   * `archlinux` |   * `archlinux` | ||||||
|   * `debian` |   * `debian` | ||||||
|   * `elementary` |   * `elementary` | ||||||
|  |  | ||||||
							
								
								
									
										86
									
								
								quickget
									
										
									
									
									
								
							
							
						
						
									
										86
									
								
								quickget
									
										
									
									
									
								
							|  | @ -1,5 +1,6 @@ | ||||||
| #!/usr/bin/env bash | #!/usr/bin/env bash | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
| # Here the quick 'n dirty guide to adding a new OS to quickget | # Here the quick 'n dirty guide to adding a new OS to quickget | ||||||
| # | # | ||||||
| #  1. Add the new OS, all lowercase, to os_support() | #  1. Add the new OS, all lowercase, to os_support() | ||||||
|  | @ -34,6 +35,7 @@ function pretty_name() { | ||||||
|   local PRETTY_NAME="" |   local PRETTY_NAME="" | ||||||
|   SIMPLE_NAME="${1}" |   SIMPLE_NAME="${1}" | ||||||
|   case ${SIMPLE_NAME} in |   case ${SIMPLE_NAME} in | ||||||
|  |     alma)               PRETTY_NAME="Alma Linux";; | ||||||
|     android)            PRETTY_NAME="Android x86";; |     android)            PRETTY_NAME="Android x86";; | ||||||
|     archlinux)          PRETTY_NAME="Arch Linux";; |     archlinux)          PRETTY_NAME="Arch Linux";; | ||||||
|     elementary)         PRETTY_NAME="elementary OS";; |     elementary)         PRETTY_NAME="elementary OS";; | ||||||
|  | @ -141,8 +143,12 @@ function list_csv() { | ||||||
|         for OPTION in intel nvidia; do |         for OPTION in intel nvidia; do | ||||||
|           echo "${DISPLAY_NAME},${OS},${RELEASE},${OPTION},${DOWNLOADER},${PNG},${SVG}" |           echo "${DISPLAY_NAME},${OS},${RELEASE},${OPTION},${DOWNLOADER},${PNG},${SVG}" | ||||||
|         done |         done | ||||||
|         elif [ "${OS}" == "debian" ]; then |       elif [ "${OS}" == "debian" ]; then | ||||||
|         for OPTION in standard nonfree; do |         for OPTION in standard nonfree; do | ||||||
|  |          echo "${DISPLAY_NAME},${OS},${RELEASE},${OPTION},${DOWNLOADER},${PNG},${SVG}" | ||||||
|  |         done | ||||||
|  |       elif [ "${OS}" == "alma" ]; then | ||||||
|  |         for OPTION in minimal dvd; do | ||||||
|           echo "${DISPLAY_NAME},${OS},${RELEASE},${OPTION},${DOWNLOADER},${PNG},${SVG}" |           echo "${DISPLAY_NAME},${OS},${RELEASE},${OPTION},${DOWNLOADER},${PNG},${SVG}" | ||||||
|         done |         done | ||||||
|       else |       else | ||||||
|  | @ -154,7 +160,8 @@ function list_csv() { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| function os_support() { | function os_support() { | ||||||
|     echo android \ |     echo alma \ | ||||||
|  |     android \ | ||||||
|     archlinux \ |     archlinux \ | ||||||
|     debian \ |     debian \ | ||||||
|     elementary \ |     elementary \ | ||||||
|  | @ -189,6 +196,12 @@ function os_support() { | ||||||
|     zorin |     zorin | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | function releases_alma() { | ||||||
|  |     # consider flavours for boot and dvd as well as | ||||||
|  |     echo 8.4 \ | ||||||
|  |     8.5 | ||||||
|  | } | ||||||
|  | 
 | ||||||
| function releases_android() { | function releases_android() { | ||||||
|   echo 9.0 \ |   echo 9.0 \ | ||||||
|   8.1 \ |   8.1 \ | ||||||
|  | @ -694,7 +707,10 @@ function make_vm_config() { | ||||||
| 
 | 
 | ||||||
|     IMAGE_FILE="${1}" |     IMAGE_FILE="${1}" | ||||||
|     ISO_FILE="${2}" |     ISO_FILE="${2}" | ||||||
|     if [ "${OS}" == "android" ]; then |     if [ "${OS}" == "alma" ]; then | ||||||
|  |         GUEST="linux" | ||||||
|  |         IMAGE_TYPE="iso" | ||||||
|  |     elif [ "${OS}" == "android" ]; then | ||||||
|         GUEST="linux" |         GUEST="linux" | ||||||
|         IMAGE_TYPE="iso" |         IMAGE_TYPE="iso" | ||||||
|     elif [ "${OS}" == "archlinux" ]; then |     elif [ "${OS}" == "archlinux" ]; then | ||||||
|  | @ -762,6 +778,11 @@ function make_vm_config() { | ||||||
|         IMAGE_TYPE="iso" |         IMAGE_TYPE="iso" | ||||||
|     fi |     fi | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  |     if [ -n "${ISOTYPE}" ]; then | ||||||
|  |         RELEASE=${RELEASE}-${ISOTYPE} | ||||||
|  |     fi | ||||||
|  | 
 | ||||||
|     if [ ! -e "${OS}-${RELEASE}.conf" ]; then |     if [ ! -e "${OS}-${RELEASE}.conf" ]; then | ||||||
|         echo "Making VM configuration for ${OS}-${RELEASE}..." |         echo "Making VM configuration for ${OS}-${RELEASE}..." | ||||||
|         cat << EOF > "${OS}-${RELEASE}.conf" |         cat << EOF > "${OS}-${RELEASE}.conf" | ||||||
|  | @ -772,7 +793,9 @@ 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 | ||||||
|  |             echo "disk_size=\"32G\"" >> "${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 | ||||||
|  | @ -839,6 +862,33 @@ function get_android() { | ||||||
|   make_vm_config "${ISO}" |   make_vm_config "${ISO}" | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | function get_alma() { | ||||||
|  |     local HASH="" | ||||||
|  |     local ISO="" | ||||||
|  |     local URL="" | ||||||
|  |     local VERSION="" | ||||||
|  |     #local isotype="" | ||||||
|  | 
 | ||||||
|  |     validate_release "releases_alma" | ||||||
|  | 
 | ||||||
|  |     ISOTYPE="minimal" # boot is a step too far for now - needs setting install source to mirror tree ... nope | ||||||
|  |     if [ -n "${1}" ]; then | ||||||
|  |       ISOTYPE="${1}" | ||||||
|  |     fi | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     # The mirror url returns 10 or so local mirrors with some kind or RR rotation/load balancing | ||||||
|  |     # We'll just grab the first | ||||||
|  | 
 | ||||||
|  |     URL=$(wget -qq -O- https://mirrors.almalinux.org/isos/x86_64/${RELEASE}.html | awk -F"<li>|</li>" '{for(i=2;i<=NF;i+=2) {print $i}}' RS=""  |grep href|cut -d\" -f2|head -1) | ||||||
|  | 
 | ||||||
|  |     #VM_PATH="${VM_PATH}"-${ISOTYPE} | ||||||
|  |     ISO=AlmaLinux-${RELEASE}-x86_64-${ISOTYPE}.iso | ||||||
|  |     HASH="$(wget -q -O-  ${URL}/CHECKSUM|grep \(${ISO}|cut -d\   -f4)" | ||||||
|  |     web_get "${URL}/${ISO}" "${VM_PATH}" | ||||||
|  |     check_hash "${ISO}" "${HASH}" | ||||||
|  |     make_vm_config "${ISO}" | ||||||
|  | } | ||||||
| function get_archlinux() { | function get_archlinux() { | ||||||
|     local HASH="" |     local HASH="" | ||||||
|     local ISO="" |     local ISO="" | ||||||
|  | @ -1102,14 +1152,14 @@ function get_oraclelinux() { | ||||||
|     local HASH="" |     local HASH="" | ||||||
|     local ISO="" |     local ISO="" | ||||||
|     local URL="" |     local URL="" | ||||||
|      | 
 | ||||||
|     local arch="x86_64" |     local arch="x86_64" | ||||||
|      | 
 | ||||||
|     validate_release "releases_oraclelinux" |     validate_release "releases_oraclelinux" | ||||||
| 
 | 
 | ||||||
|     local majorver=${RELEASE::1} |     local majorver=${RELEASE::1} | ||||||
|     local minorver=${RELEASE:2:1} |     local minorver=${RELEASE:2:1} | ||||||
|    | 
 | ||||||
|     local baseurl="https://yum.oracle.com/ISOS/OracleLinux/OL${majorver}/u${minorver}/${arch}/" |     local baseurl="https://yum.oracle.com/ISOS/OracleLinux/OL${majorver}/u${minorver}/${arch}/" | ||||||
|     local hashurl="https://linux.oracle.com/security/gpg/checksum/OracleLinux-R${majorver}-U${minorver}-Server-x86_64.checksum" |     local hashurl="https://linux.oracle.com/security/gpg/checksum/OracleLinux-R${majorver}-U${minorver}-Server-x86_64.checksum" | ||||||
| 
 | 
 | ||||||
|  | @ -1438,7 +1488,23 @@ if [ -n "${2}" ]; then | ||||||
|     RELEASE="${2,,}" |     RELEASE="${2,,}" | ||||||
|     VM_PATH="${OS}-${RELEASE}" |     VM_PATH="${OS}-${RELEASE}" | ||||||
| 
 | 
 | ||||||
|     if [ "${OS}" == "android" ]; then |     if [ "${OS}" == "alma" ]; then | ||||||
|  |      if [ -n "${3}" ]; then | ||||||
|  |             ISOTYPE="${3,,}" | ||||||
|  |             ISOTYPES=(minimal dvd ) # boot) # a step too far | ||||||
|  |             if [[ ! ${ISOTYPES[*]} =~ ${ISOTYPE} ]]; then | ||||||
|  |                 echo "iso ${ISOTYPE} is not supported:" | ||||||
|  |                 for ISOTYPE in "${ISOTYPES[@]}"; do | ||||||
|  |                   echo "${ISOTYPE}" | ||||||
|  |                 done | ||||||
|  |                 exit 1 | ||||||
|  |             fi | ||||||
|  |         else | ||||||
|  |             ISOTYPE="minimal" | ||||||
|  |         fi | ||||||
|  |         VM_PATH="${OS}-${RELEASE}-${ISOTYPE}" | ||||||
|  |         get_alma "${ISOTYPE}" | ||||||
|  |     elif [ "${OS}" == "android" ]; then | ||||||
|         get_android |         get_android | ||||||
|     elif [ "${OS}" == "archlinux" ]; then |     elif [ "${OS}" == "archlinux" ]; then | ||||||
|         get_archlinux |         get_archlinux | ||||||
|  | @ -1543,7 +1609,9 @@ if [ -n "${2}" ]; then | ||||||
|     fi |     fi | ||||||
| else | else | ||||||
|     echo -n "ERROR! You must specify a release: " |     echo -n "ERROR! You must specify a release: " | ||||||
|     if [ "${OS}" == "android" ]; then |     if [ "${OS}" == "alma" ]; then | ||||||
|  |         releases_alma | ||||||
|  |     elif [ "${OS}" == "android" ]; then | ||||||
|         releases_android |         releases_android | ||||||
|     elif [ "${OS}" == "archlinux" ]; then |     elif [ "${OS}" == "archlinux" ]; then | ||||||
|         releases_archlinux |         releases_archlinux | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue