Skip to content

Commit

Permalink
Add Windows 11 VM (JabRef#11764)
Browse files Browse the repository at this point in the history
  • Loading branch information
koppor authored Sep 16, 2024
1 parent e5757de commit 3dd1f86
Show file tree
Hide file tree
Showing 5 changed files with 99 additions and 3 deletions.
3 changes: 2 additions & 1 deletion scripts/vms/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,8 @@ Then, everything is removed.
| [`fedora`](fedora/) | source | -- | -- | -- |
| [`Linux Mint (Cinnamon)`](linux-mint-cinnamon/) | source | Firefox | yes | -- |
| [`ubuntu`](ubuntu/) | snap | Firefox | yes | -- |
| [`windows`](windows/) | source | Edge | -- | -- |
| [`windows 10`](windows10/) | source | Edge | -- | -- |
| [`windows 11`](windows11/) | source | Edge | -- | -- |

## Troubleshooting

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Windows VM
# Windows 10 VM

A Windows-based VM to test JabRef.
As user, you need to ensure to have the proper Windows license to use this VM.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# -*- mode: ruby -*-
# vi: set ft=ruby :

NAME = "jabref-windows-sandbox"
NAME = "jabref-windows-10-sandbox"

Vagrant.configure("2") do |config|
config.vm.box = "gusztavvargadr/windows-10"
Expand Down
49 changes: 49 additions & 0 deletions scripts/vms/windows11/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Windows 11 VM

A Windows-based VM to test JabRef.
As user, you need to ensure to have the proper Windows license to use this VM.

In case you have many CPU cores, you can adapt `vb.cpus` in `Vagrantfile` to a higher number.

One has to install the [JabRef Browser Extension](https://addons.mozilla.org/en-US/firefox/addon/jabref/) manually.

## Troubleshooting

### "Waiting for machine to reboot..."

In case Vagrant reports "Waiting for machine to reboot..." and nothing happens, one has to "power off" the machine, execute `vagrant destory`, and then run `vagrant up` again.

### `fatal: early EOF`

```console
jabref-windows-sandbox: Cloning into 'jabref'...
jabref-windows-sandbox: error: RPC failed; curl 92 HTTP/2 stream 5 was not closed cleanly: CANCEL (err 8)
jabref-windows-sandbox: error: 6846 bytes of body are still expected
jabref-windows-sandbox: fetch-pack: unexpected disconnect while reading sideband packet
jabref-windows-sandbox: fatal: early EOF
jabref-windows-sandbox: fatal: fetch-pack: invalid index-pack output
```

The `git clone` command did not work.

Login, open `cmd` and then execute following commands:

```cmd
git clone --recurse-submodules https://github.com/JabRef/jabref.git
cd jabref
gradlew run
```

## Background

`Vagrantfile` is based on [SeisoLLC/windows-sandbox](https://github.com/SeisoLLC/windows-sandbox/tree/main).

The most use image seems to be the [Windows 10 image by `gusztavvargadr`](https://portal.cloud.hashicorp.com/vagrant/discover/gusztavvargadr/windows-10).
List of all images at <https://portal.cloud.hashicorp.com/vagrant/discover/gusztavvargadr>.

[Chocolatey](https://chocolatey.org/) is used instead of [winget-cli](https://learn.microsoft.com/en-us/windows/package-manager/), because Chocolatey installation does not hit GitHub's rate limits during unattended installation.

## Atlernatives

- Atlernative Vagrant images: <https://app.vagrantup.com/boxes/search?q=windows+10&utf8=%E2%9C%93>.
- [Windows Sandbox](https://learn.microsoft.com/en-us/windows/security/application-security/application-isolation/windows-sandbox/windows-sandbox-overview)
46 changes: 46 additions & 0 deletions scripts/vms/windows11/Vagrantfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# -*- mode: ruby -*-
# vi: set ft=ruby :

NAME = "jabref-windows-11-sandbox"

Vagrant.configure("2") do |config|
# config.vm.box = "Caden/windows-11-pro-jp-22h2-22621.1992"
config.vm.box = "stromweld/windows-11"

config.vm.define NAME
config.vm.hostname = NAME

config.vm.provider "virtualbox" do |vb|
vb.name = NAME

vb.memory = 6000
vb.cpus = 2

vb.customize ['modifyvm', :id, '--clipboard-mode', 'bidirectional']
vb.gui = true
end

config.vm.provision "shell", privileged: "true", powershell_elevated_interactive: "true", inline: <<-SHELL
# Install chocolatey
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
choco feature enable -n=allowGlobalConfirmation
choco install libericajdk
choco install git.install -y --params "/GitAndUnixToolsOnPath /WindowsTerminal /WindowsTerminalProfile"
# Required by AI functionaltiy
choco choco install vcredist140
# choco install firefox
# choco install libreoffice-fresh
SHELL

config.vm.provision "shell", reboot: true

config.vm.provision "shell", privileged: "false", inline: <<-SHELL
cd \\users\\vagrant
git clone --depth=1 --recurse-submodules https://github.com/JabRef/jabref.git
# cd jabref
# .\\gradlew jar
SHELL
end

0 comments on commit 3dd1f86

Please sign in to comment.