--- - name: Ensure XBPS extra repositories directory exists tags: [packages] ansible.builtin.file: path: /etc/xbps.d state: directory mode: "0755" when: (host_xbps_repositories | default([])) | length > 0 - name: Configure host-specific XBPS repositories tags: [packages] ansible.builtin.copy: dest: "/etc/xbps.d/{{ item.name }}.conf" content: | repository={{ item.url }} owner: root group: root mode: "0644" loop: "{{ host_xbps_repositories | default([]) }}" loop_control: label: "{{ item.name }}" register: host_xbps_repository_configs when: (host_xbps_repositories | default([])) | length > 0 - name: Install Void nonfree repository if needed tags: [packages] community.general.xbps: name: void-repo-nonfree state: present update_cache: false register: void_nonfree_repository when: "'void-repo-nonfree' in (host_packages | default([]) + void_packages_base | default([]))" - name: Refresh XBPS cache after configuring repositories tags: [packages] community.general.xbps: update_cache: true accept_pubkey: true when: >- (host_xbps_repositories | default([])) | length > 0 or (void_nonfree_repository is defined and void_nonfree_repository is changed) - name: Synchronize and upgrade Void Linux packages tags: [packages] community.general.xbps: update_cache: false upgrade: true - name: Install packages on Void Linux tags: [packages] community.general.xbps: name: >- {{ ( (common_packages | default([])) + (void_packages_base | default([])) + (profile_packages | default([])) + (desktop_common_packages | default([])) + ( (desktop_i3_packages | default([])) if 'i3' in (desktop_sessions_enabled | default([])) else [] ) + ( (desktop_sway_packages | default([])) if 'sway' in (desktop_sessions_enabled | default([])) else [] ) + (host_packages | default([])) ) | unique }} state: present update_cache: false