Replaces the raw package modules at 76 call sites with package_install, moves each role's distribution mapping into its own meta/packages.yml, and turns the inventory PACKAGES variable from source-keyed literal names into a list of declared package ids. The lint that forbids the raw modules is enabled here, because the migration burns it down from 76 offenders to zero. Removes sys-aur, sys-aur-install and sys-package. The AUR build user, the passwordless pacman rule and the inventory-driven install are part of the plan the action plugin executes, so the roles no longer carry them. Declaring the mappings surfaced breakage the raw modules had hidden: on Debian the `which` binary comes from debianutils, jrnl is in no Debian or Ubuntu suite, chromium-browser is absent from Debian stable, JDK 11 is unobtainable on RedHat, wireguard had no RedHat branch at all, qbittorrent was built from the AUR although Arch ships it in extra, and desk-docker installed a Docker variant that conflicts with the one sys-svc-container installs. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Java
Description
Installs OpenJDK 11 (jdk11-openjdk) on Pacman-based systems to provide a Java runtime and development environment.
Overview
This README file is for the Java role, which is part of the infinito. The role is specifically designed to automate the installation of Java on a system, focusing on the OpenJDK 11 version.
Cosmos
The diagram places Java in the Infinito.Nexus cosmos: the components it deploys (capabilities), the central services it consumes (dependencies), and its outward reach (federation and bridged external networks).
flowchart LR
subgraph role [dev-java 💻]
svc_java["java"]
end
subgraph dependents [Dependents]
dpt_desk_bluray_player["desk-bluray-player 💻 ⚙️"]
end
svc_java -- "1:1" --> dpt_desk_bluray_player
Solid 1:1 edges are fixed relationships; dashed 0..1 edges are conditional (enabled only in matching deployments). Node markers show the role's deploy modes (💻 host, 🐳 compose, 🐝 swarm); ❌ marks a service that is explicitly turned off, and ⚙️ an Ansible role dependency declared in meta/main.yml.
Features
- Automated provisioning: Configured by Ansible without manual steps.
Contents of the role
The main.yml file within the java role consists of a single, but crucial task:
- Install Java: This task uses the
community.general.pacmanmodule to install thejdk11-openjdkpackage. It ensures that Java Development Kit 11 (OpenJDK 11) is present on the system.
Purpose
The primary objective of this role is to provide a straightforward and efficient method for setting up Java, specifically JDK 11, on personal computers or development environments. This setup is essential for developers who work with Java or run applications that require the Java runtime environment.
Prerequisites
- Ansible: You need to have Ansible installed on your system to use this role.
- Arch Linux-based System: The role uses the
pacmanpackage manager, indicating that it is intended for use on systems based on Arch Linux or its derivatives.
Running the role
To run this role:
- Clone the
computer-rolerepository to your system. - Navigate to the
roles/javadirectory within the repository. - Execute the role using Ansible. Make sure you have the necessary permissions to install packages on your system.
Customization
This role is focused on installing JDK 11, but it can be easily modified to install different versions of the JDK or additional Java-related tools as per your requirements.
Support and Contribution
For support, feedback, or contributions to the role, please open an issue or submit a pull request in the infinito repository. Contributions that enhance the role or broaden its applicability are greatly appreciated.
Credits
Implemented by Kevin Veen-Birkenbach. Part of the Infinito.Nexus Project and maintained by Kevin Veen-Birkenbach. Licensed under the Infinito.Nexus Community License (Non-Commercial).