From 45340103d0e4944e57bc656e779fa676c5f55c7d Mon Sep 17 00:00:00 2001 From: Fabio Scotto di Santolo Date: Mon, 31 Aug 2026 18:20:52 +0200 Subject: [PATCH] feat: manage Java 11 with Mise on Fedora WSL --- AGENTS.md | 1 + README.it.md | 1 + README.md | 2 +- .../group_vars/workstation_dev_wsl.yml | 12 +++++++++++ ansible/roles/packages_fedora/tasks/main.yml | 14 +++++++++++++ .../tasks/main.yml | 20 +++++++++++++++++++ .../workstation_dev_wsl/.bashrc.d/30-mise.sh | 4 ++++ .../.config/mise/config.toml | 2 ++ 8 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 dotfiles/workstation_dev_wsl/.bashrc.d/30-mise.sh create mode 100644 dotfiles/workstation_dev_wsl/.config/mise/config.toml diff --git a/AGENTS.md b/AGENTS.md index 17f29f9..db4c617 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -84,6 +84,7 @@ The dotfile vars follow the same split: `desktop_common_dotfiles` carries mode-i ## Workstation Notes - `deadalus` is modeled as Windows + Fedora WSL and is the sole workstation target. - Fedora WSL belongs to `platform_fedora`, `workstation_dev_fedora`, and the shared WSL layer. It must not receive Flatpak or Snap runtimes. +- Fedora WSL installs Mise from the official `jdxcode/mise` COPR and uses its pinned Temurin Java 11 JDK; update the declared Mise version deliberately. - Windows applications are installed manually and are not managed from the WSL profile. ## Atlas NAS Notes diff --git a/README.it.md b/README.it.md index 23b67a5..b74dd01 100644 --- a/README.it.md +++ b/README.it.md @@ -144,6 +144,7 @@ Lo stato attuale del profilo workstation include: - installazione pacchetti base Fedora via dnf - installazione e configurazione di Docker dal repository ufficiale +- installazione di Mise dal COPR ufficiale con JDK Eclipse Temurin Java 11 fissato - gestione dei dotfiles workstation e rendering dei template dev condivisi - preparazione di Fedora WSL con `systemd` per il toolchain di sviluppo - attivazione del firewall `firewalld` sui target Fedora che dichiarano regole host-specifiche diff --git a/README.md b/README.md index c7781c3..570f74f 100644 --- a/README.md +++ b/README.md @@ -88,7 +88,7 @@ The workstation receives two layers: - Fedora development setup through `workstation_dev_fedora`. - WSL setup with `systemd` through `workstation_dev_wsl`. -That gives it Fedora packages through DNF, Docker from the official repository, shared workstation dotfiles and templates, tmux helpers, and WSL systemd configuration. Windows applications are installed manually; the WSL profile does not manage Python remoting components for them. +That gives it Fedora packages through DNF, Docker from the official repository, Mise from its official COPR repository with a pinned Eclipse Temurin Java 11 JDK, shared workstation dotfiles and templates, tmux helpers, and WSL systemd configuration. Windows applications are installed manually; the WSL profile does not manage Python remoting components for them. ### WSL workflow diff --git a/ansible/inventory/group_vars/workstation_dev_wsl.yml b/ansible/inventory/group_vars/workstation_dev_wsl.yml index 2aa4b96..3cc5843 100644 --- a/ansible/inventory/group_vars/workstation_dev_wsl.yml +++ b/ansible/inventory/group_vars/workstation_dev_wsl.yml @@ -3,12 +3,24 @@ enabled_services: - docker workstation_dev_wsl_packages: + - mise - pinentry-curses - python3-pip - tmux + +# Java 11 is no longer supplied by the Fedora repositories used by this WSL +# profile. Keep the JDK patch pinned; update this value deliberately. +workstation_mise_java_version: temurin-11.0.31+11 + workstation_is_wsl: true workstation_wsl_systemd_enabled: true workstation_dev_wsl_dotfiles: + - src: .bashrc.d/30-mise.sh + dest: .bashrc.d/30-mise.sh + mode: "0644" + - src: .config/mise/ + dest: .config/mise/ + mode: preserve - src: .gnupg/gpg-agent.conf dest: .gnupg/gpg-agent.conf mode: "0600" diff --git a/ansible/roles/packages_fedora/tasks/main.yml b/ansible/roles/packages_fedora/tasks/main.yml index 7314f12..ec21c45 100644 --- a/ansible/roles/packages_fedora/tasks/main.yml +++ b/ansible/roles/packages_fedora/tasks/main.yml @@ -25,6 +25,20 @@ - "'workstation_dev_fedora' in group_names" - fedora_manage_docker_repo | default(false) +- name: Install COPR support on Fedora WSL + tags: [packages, mise] + ansible.builtin.dnf: + name: dnf-plugins-core + state: present + when: "'workstation_dev_wsl' in group_names" + +- name: Configure Mise COPR repository on Fedora WSL + tags: [packages, mise] + community.general.copr: + name: jdxcode/mise + state: enabled + when: "'workstation_dev_wsl' in group_names" + - name: Refresh dnf package metadata tags: [packages] ansible.builtin.dnf: diff --git a/ansible/roles/profile_workstation_dev_wsl/tasks/main.yml b/ansible/roles/profile_workstation_dev_wsl/tasks/main.yml index 7d6457d..e08d324 100644 --- a/ansible/roles/profile_workstation_dev_wsl/tasks/main.yml +++ b/ansible/roles/profile_workstation_dev_wsl/tasks/main.yml @@ -55,6 +55,26 @@ loop_control: label: "{{ item.dest }}" +- name: Check whether the pinned Java version is installed with Mise + tags: [packages, mise, java, wsl] + ansible.builtin.command: + cmd: "mise where java@{{ workstation_mise_java_version }}" + become_user: "{{ username }}" + environment: + HOME: "{{ user_home }}" + register: workstation_mise_java_where + changed_when: false + failed_when: false + +- name: Install the pinned Java version with Mise + tags: [packages, mise, java, wsl] + ansible.builtin.command: + cmd: mise install + become_user: "{{ username }}" + environment: + HOME: "{{ user_home }}" + when: workstation_mise_java_where.rc != 0 + - name: Ensure WSL boot configuration file exists tags: [packages, services] ansible.builtin.file: diff --git a/dotfiles/workstation_dev_wsl/.bashrc.d/30-mise.sh b/dotfiles/workstation_dev_wsl/.bashrc.d/30-mise.sh new file mode 100644 index 0000000..aa3f07b --- /dev/null +++ b/dotfiles/workstation_dev_wsl/.bashrc.d/30-mise.sh @@ -0,0 +1,4 @@ +# Activate Mise for interactive Bash sessions, including JAVA_HOME for its JDKs. +if command -v mise >/dev/null 2>&1; then + eval "$(mise activate bash)" +fi diff --git a/dotfiles/workstation_dev_wsl/.config/mise/config.toml b/dotfiles/workstation_dev_wsl/.config/mise/config.toml new file mode 100644 index 0000000..e452a0f --- /dev/null +++ b/dotfiles/workstation_dev_wsl/.config/mise/config.toml @@ -0,0 +1,2 @@ +[tools] +java = "temurin-11.0.31+11"