Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Restic 0.16.3 issue on Windows 7 #4636

Closed
tiker opened this issue Jan 16, 2024 · 4 comments
Closed

Restic 0.16.3 issue on Windows 7 #4636

tiker opened this issue Jan 16, 2024 · 4 comments

Comments

@tiker
Copy link

tiker commented Jan 16, 2024

Did the new version of Restic 0.16.3 drop support for Windows 7?

Running 0.16.2 worked fine. Updated to 0.16.3 with restic self-update:

C:\Users\tiker>c:\apps\restic\restic.exe self-update
writing restic to c:\apps\restic\restic.exe
find latest release of restic at GitHub
latest version is 0.16.3
download SHA256SUMS
download SHA256SUMS.asc
GPG signature verification succeeded
download restic_0.16.3_windows_amd64.zip
downloaded restic_0.16.3_windows_amd64.zip
saved 25019392 bytes in c:\apps\restic\restic.exe
successfully updated restic to version 0.16.3

After this, all attempts to run restic.exe fail with an error which would appear to be related to compiling issues or dropping support for Windows 7 (which I don't see mentioned in the release notes).

I have manually downloaded the file from the Github release page and attempted to run it, still fails with the following:

C:\Users\tiker>c:\apps\restic\restic_0.16.3_windows_amd64.exe version
Exception 0xc0000005 0x8 0x0 0x0
PC=0x0

runtime.asmstdcall()
        /usr/local/go/src/runtime/sys_windows_amd64.s:65 +0x75 fp=0x22fca0 sp=0x
22fc80 pc=0x46d335
rax     0x0
rbx     0x1b5e300
rcx     0x1bb4100
rdi     0x7fffffde000
rsi     0x22fea0
rbp     0x22fde0
rsp     0x22fc78
r8      0x0
r9      0x22fee0
r10     0x1b855b8
r11     0x21
r12     0x22fec0
r13     0x1
r14     0x1b5da60
r15     0x0
rip     0x0
rflags  0x10293
cs      0x33
fs      0x53
gs      0x2b

Previous version:

C:\Users\tiker>c:\apps\restic\restic.exe version
restic 0.16.2 compiled with go1.21.3 on windows/amd64
@DRON-666
Copy link
Contributor

It's not restic but a go compiler. You can recompile restic with old go1.21.3 or recompile go1.21.6 compiler itself, but revert this commit.

@MichaelEischer
Copy link
Member

It's somewhat unintended that Windows 7 is no longer supported, although it's not surprising given that Windows 7 has been EOL (the extended EOL deadline!) for more than a year by now. However, as the go compiler has dropped support for Windows 7 and does not intend to change that (see golang/go#64622), there's not much we can do. For a limited time you will still be able to compile recent restic versions using an older compiler version, but that will likely also stop working in about 1-2 year.

@MichaelEischer MichaelEischer closed this as not planned Won't fix, can't repro, duplicate, stale Jan 16, 2024
@tiker
Copy link
Author

tiker commented Jan 17, 2024

Thanks for the information. Unfortunately I do not know much about go compiling and stuff so I will have to stick with 0.16.2 for now.

@DRON-666
Copy link
Contributor

@tiker You can try this cmd/bat script:

@echo off
set RESTIC_URL=https://github.com/restic/restic/releases/download/v0.16.3/restic-0.16.3.tar.gz
set GO_BIN_URL=https://go.dev/dl/go1.21.3.windows-amd64.zip
set GO_SRC_URL=https://go.dev/dl/go1.21.6.src.tar.gz
set BAD_COMMIT_URL=https://github.com/golang/go/commit/9e43850a3298a9b8b1162ba0033d4c53f8637571.diff
set BUSYBOX_URL=https://frippery.org/files/busybox/busybox64.exe
set BUSYBOX="%~dp0busybox64.exe"
if not exist %BUSYBOX% powershell -Command (New-Object System.Net.WebClient^).DownloadFile('"%BUSYBOX_URL%"','"%BUSYBOX%"'^)
if not exist go1.*.windows-amd64.zip (%BUSYBOX% wget %GO_BIN_URL% || exit)
if not exist go (%BUSYBOX% unzip -q go1.*.windows-amd64.zip || exit)
if not exist go1.*.src.tar.gz (%BUSYBOX% wget %GO_SRC_URL% || exit)
if not exist src (md src && %BUSYBOX% tar x -z --strip-components 1 -C src -f go1.*.src.tar.gz || exit)
pushd src
if not exist *.diff (%BUSYBOX% wget %BAD_COMMIT_URL% && %BUSYBOX% patch -p 1 -R -i *.diff || exit)
pushd src
if not exist ..\bin\go.exe (set GOROOT_BOOTSTRAP=%~dp0go&& call make.bat || exit)
popd && popd
if not exist restic-0.*.tar.gz (%BUSYBOX% wget %RESTIC_URL% || exit)
if not exist restic (md restic && %BUSYBOX% tar x -z --strip-components 1 -C restic -f restic-0.*.tar.gz || exit)
pushd restic && set path=%~dp0\src\bin&& go.exe run build.go && move /y restic.exe .. && popd

Just put it in C:\restic, run it and in about 15 minutes you will get restic.exe.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants