Compare commits

...

7 commits

Author SHA1 Message Date
renovate[bot]
2822cfdc4b
chore(deps): update qemux/qemu-arm docker tag to v7.12 (#328) 2025-05-06 06:41:29 +02:00
Kroese
810a69f5b7
docs: Add input types (#326) 2025-04-23 13:00:14 +02:00
Kroese
0ea09e57fc
feat: Additional download mirrors (#325) 2025-04-21 01:16:42 +02:00
Kroese
03cdae6bd3
feat: Additional download mirrors (#324) 2025-04-20 21:58:31 +02:00
Kroese
f96e342cc5
fix: Drivers location (#323) 2025-04-20 19:27:09 +02:00
Kroese
94cd48815b
feat: Sync definitions (#322) 2025-04-20 12:32:03 +02:00
Kroese
0b7a9d45c5
feat: Set user agent for downloads (#321) 2025-04-20 11:32:29 +02:00
6 changed files with 45 additions and 15 deletions

View file

@ -21,6 +21,7 @@ body:
attributes: attributes:
label: Docker compose label: Docker compose
description: The compose file (or otherwise the `docker run` command used). description: The compose file (or otherwise the `docker run` command used).
render: yaml
validations: validations:
required: true required: true
- type: textarea - type: textarea
@ -28,6 +29,7 @@ body:
attributes: attributes:
label: Docker log label: Docker log
description: The logfile of the container (as shown by `docker logs windows`). description: The logfile of the container (as shown by `docker logs windows`).
render: shell
validations: validations:
required: true required: true
- type: textarea - type: textarea

View file

@ -23,6 +23,7 @@ body:
attributes: attributes:
label: Docker compose label: Docker compose
description: The compose file (or otherwise the `docker run` command used). description: The compose file (or otherwise the `docker run` command used).
render: yaml
validations: validations:
required: true required: true
- type: textarea - type: textarea
@ -30,6 +31,7 @@ body:
attributes: attributes:
label: Docker log label: Docker log
description: The logfile of the container (as shown by `docker logs windows`). description: The logfile of the container (as shown by `docker logs windows`).
render: shell
validations: validations:
required: true required: true
- type: textarea - type: textarea

View file

@ -1,5 +1,5 @@
FROM scratch FROM scratch
COPY --from=qemux/qemu-arm:7.11 / / COPY --from=qemux/qemu-arm:7.12 / /
ARG VERSION_ARG="0.00" ARG VERSION_ARG="0.00"
ARG DEBCONF_NOWARNINGS="yes" ARG DEBCONF_NOWARNINGS="yes"
@ -24,7 +24,7 @@ RUN set -eu && \
COPY --chmod=755 ./src /run/ COPY --chmod=755 ./src /run/
COPY --chmod=755 ./assets /run/assets COPY --chmod=755 ./assets /run/assets
ADD --chmod=664 https://github.com/qemus/virtiso-arm/releases/download/v0.1.271-1/virtio-win-0.1.271.tar.xz /drivers.txz ADD --chmod=664 https://github.com/qemus/virtiso-arm/releases/download/v0.1.271-1/virtio-win-0.1.271.tar.xz /var/drivers.txz
VOLUME /storage VOLUME /storage
EXPOSE 3389 8006 EXPOSE 3389 8006

View file

@ -61,14 +61,14 @@ parseVersion() {
"8e" | "81e" | "8.1e" | "win8e" | "win81e" | "windows 8e" ) "8e" | "81e" | "8.1e" | "win8e" | "win81e" | "windows 8e" )
error "Windows 8 $msg" && return 1 error "Windows 8 $msg" && return 1
;; ;;
"7" | "7e" | "win7" | "win7e" | "windows7" | "windows 7" | \ "7" | "win7" | "windows7" | "windows 7" | "7u" | "win7u" | "windows7u" | "windows 7u" | "7e" | \
"7u" | "win7u" | "windows7u" | "windows 7u" | \ "win7e" | "windows7e" | "windows 7e" | "7x86" | "win7x86" | "win732" | "windows7x86" | "7ux86" | \
"7x86" | "win7x86" | "windows7x86" | "win7x86-enterprise" ) "7u32" | "win7x86-ultimate" | "7ex86" | "7e32" | "win7x86-enterprise" )
error "Windows 7 $msg" && return 1 error "Windows 7 $msg" && return 1
;; ;;
"vista" | "ve" | "6" | "winvista" | "windowsvista" | "windows vista" | \ "vista" | "vs" | "6" | "winvista" | "windowsvista" | "windows vista" | "vistu" | "vu" | "6u" | "winvistu" | \
"vistu" | "vu" | "6u" | "winvistu" | "windowsvistu" | "windows vistu" | \ "viste" | "ve" | "6e" | "winviste" | "vistax86" | "vista32" | "6x86" | "winvistax86" | "windowsvistax86" | \
"vistax86" | "vex86" | "6x86" | "winvistax86" | "windowsvistax86" | "winvistax86-enterprise" ) "vux86" | "vu32" | "winvistax86-ultimate" | "vex86" | "ve32" | "winvistax86-enterprise" )
error "Windows Vista $msg" && return 1 error "Windows Vista $msg" && return 1
;; ;;
"xp" | "xp32" | "xpx86" | "5" | "5x86" | "winxp" | "winxp86" | "windowsxp" | "windows xp" | \ "xp" | "xp32" | "xpx86" | "5" | "5x86" | "winxp" | "winxp86" | "windowsxp" | "windows xp" | \
@ -645,6 +645,31 @@ getLink2() {
sum="812dae6b5bf5215db63b61ae10d8f0ffd3aa8529a18d96e9ced53341e2c676ec" sum="812dae6b5bf5215db63b61ae10d8f0ffd3aa8529a18d96e9ced53341e2c676ec"
url="tiny11-core-arm64/tiny11%20core%20arm64.iso" url="tiny11-core-arm64/tiny11%20core%20arm64.iso"
;; ;;
"win11arm64" )
size=5460387840
sum="57d1dfb2c6690a99fe99226540333c6c97d3fd2b557a50dfe3d68c3f675ef2b0"
url="windows-11-24h2-arm64-iso/Win11_24H2_English_Arm64.iso"
;;
"win11arm64-enterprise" | "win11arm64-enterprise-eval" )
size=6872444928
sum="2bf0fd1d5abd267cd0ae8066fea200b3538e60c3e572428c0ec86d4716b61cb7"
url="win11-23h2-en-fr/ARM64/SW_DVD9_Win_Pro_11_23H2_Arm64_English_Pro_Ent_EDU_N_MLF_X23-59519.ISO"
;;
"win11arm64-ltsc" | "win11arm64-enterprise-ltsc-eval" )
size=5121449984
sum="f8f068cdc90c894a55d8c8530db7c193234ba57bb11d33b71383839ac41246b4"
url="Windows11LTSC/X23-81950_26100.1742.240906-0331.ge_release_svc_refresh_CLIENT_ENTERPRISES_OEM_A64FRE_en-us.iso"
;;
"win10arm64" | "win10arm64-enterprise" | "win10arm64-enterprise-eval" )
size=5192060928
sum="101079b911c8c3dd9c9a88499a16b930fbf00cbaf901761d8265bb3a8fcd9ea9"
url="win-pro-10-22-h-2.15-arm-64-eng-intl-pro-ent-edu-n-mlf-x-23-67222/Win_Pro_10_22H2.15_Arm64_Eng_Intl_Pro_Ent_EDU_N_MLF_X23-67222.ISO"
;;
"win10arm64-ltsc" | "win10arm64-enterprise-ltsc-eval" )
size=4430471168
sum="d265df49b30a1477d010c79185a7bc88591a1be4b3eb690c994bed828ea17c00"
url="windows-10-enterprise-ltsc-full-collection/en-us_windows_10_iot_enterprise_ltsc_2021_arm64_dvd_e8d4fc46.iso"
;;
esac esac
case "${ret,,}" in case "${ret,,}" in

View file

@ -834,7 +834,7 @@ addDrivers() {
warn "Windows version unknown, falling back to Windows 11 drivers..." warn "Windows version unknown, falling back to Windows 11 drivers..."
fi fi
if ! bsdtar -xf /drivers.txz -C "$drivers"; then if ! bsdtar -xf /var/drivers.txz -C "$drivers"; then
error "Failed to extract drivers from archive!" && return 1 error "Failed to extract drivers from archive!" && return 1
fi fi

View file

@ -530,9 +530,10 @@ downloadFile() {
local lang="$5" local lang="$5"
local desc="$6" local desc="$6"
local msg="Downloading $desc" local msg="Downloading $desc"
local rc total total_gb progress domain dots space folder local rc total total_gb progress domain dots agent space folder
rm -f "$iso" rm -f "$iso"
agent=$(get_agent)
if [ -n "$size" ] && [[ "$size" != "0" ]]; then if [ -n "$size" ] && [[ "$size" != "0" ]]; then
folder=$(dirname -- "$iso") folder=$(dirname -- "$iso")
@ -561,7 +562,7 @@ downloadFile() {
info "$msg..." info "$msg..."
{ wget "$url" -O "$iso" -q --timeout=30 --no-http-keep-alive --show-progress "$progress"; rc=$?; } || : { wget "$url" -O "$iso" -q --timeout=30 --no-http-keep-alive --user-agent "$agent" --show-progress "$progress"; rc=$?; } || :
fKill "progress.sh" fKill "progress.sh"
@ -569,7 +570,7 @@ downloadFile() {
total=$(stat -c%s "$iso") total=$(stat -c%s "$iso")
total_gb=$(formatBytes "$total") total_gb=$(formatBytes "$total")
if [ "$total" -lt 100000000 ]; then if [ "$total" -lt 100000000 ]; then
error "Invalid download link: $url (is only $total_gb ?). Please report this at $SUPPORT/issues." && return 1 error "Invalid download link: $url (is only $total_gb ?). Please report this at $SUPPORT/issues" && return 1
fi fi
verifyFile "$iso" "$size" "$total" "$sum" || return 1 verifyFile "$iso" "$size" "$total" "$sum" || return 1
isCompressed "$url" && UNPACK="Y" isCompressed "$url" && UNPACK="Y"
@ -579,7 +580,7 @@ downloadFile() {
msg="Failed to download $url" msg="Failed to download $url"
(( rc == 3 )) && error "$msg , cannot write file (disk full?)" && return 1 (( rc == 3 )) && error "$msg , cannot write file (disk full?)" && return 1
(( rc == 4 )) && error "$msg , network failure!" && return 1 (( rc == 4 )) && error "$msg , network failure!" && return 1
(( rc == 8 )) && error "$msg , server issued an error response! Please report this at $SUPPORT/issues." && return 1 (( rc == 8 )) && error "$msg , server issued an error response! Please report this at $SUPPORT/issues" && return 1
error "$msg , reason: $rc" error "$msg , reason: $rc"
return 1 return 1