From ae424f066d90076227343c0632a339df0db905bb Mon Sep 17 00:00:00 2001 From: Sonny Bakker Date: Fri, 16 Aug 2024 09:02:52 +0200 Subject: [PATCH] Update AUR packages --- archlinux.yml | 1 - tasks/aur-package.yml | 46 +++++++++++++++++++++++++++++++++++-------- tasks/aur.yml | 2 -- vars/archlinux.yml | 16 +++++++++------ 4 files changed, 48 insertions(+), 17 deletions(-) diff --git a/archlinux.yml b/archlinux.yml index 972f696..018d516 100644 --- a/archlinux.yml +++ b/archlinux.yml @@ -23,7 +23,6 @@ package_facts: manager: pacman - import_tasks: 'tasks/aur.yml' - when: aur_packages|map(attribute='package_name')|list is not subset(ansible_facts.packages) - import_tasks: 'tasks/docker.yml' - name: setup python versions include_tasks: 'tasks/python.yml' diff --git a/tasks/aur-package.yml b/tasks/aur-package.yml index 0652047..7163824 100644 --- a/tasks/aur-package.yml +++ b/tasks/aur-package.yml @@ -1,22 +1,52 @@ -- name: 'build package {{ item.name }}' - command: 'makepkg --syncdeps --rmdeps --clean --noconfirm --force' - args: - chdir: '{{ aur_build_dir }}/{{ item.name }}' +- name: set package directory + set_fact: + build_dir: '{{ aur_build_dir }}/{{ item.name }}' - name: 'retrieve package name for {{ item.name }}' - command: 'grep -oP "(?<=pkgname=).*" {{ aur_build_dir }}/{{ item.name }}/PKGBUILD' + command: + argv: + - grep + - --only-matching + - --perl-regexp + - "(?<=pkgname=).*" + - "{{ build_dir }}/PKGBUILD" register: pkg_name - name: 'retrieve package version for {{ item.name }}' - command: 'grep -oP "(?<=pkgver=).*" {{ aur_build_dir }}/{{ item.name }}/PKGBUILD' + command: + argv: + - grep + - --only-matching + - --perl-regexp + - "(?<=pkgver=).*" + - "{{ build_dir }}/PKGBUILD" register: pkg_version - name: 'retrieve package release for {{ item.name }}' - command: 'grep -oP "(?<=pkgrel=).*" {{ aur_build_dir }}/{{ item.name }}/PKGBUILD' + command: + argv: + - grep + - --only-matching + - --perl-regexp + - "(?<=pkgrel=).*" + - "{{ build_dir }}/PKGBUILD" register: pkg_release +- set_fact: + package_filename: '{{ pkg_name.stdout }}-{{ pkg_version.stdout }}-{{ pkg_release.stdout }}-{{ item.arch }}.pkg.tar.zst' + installed_version: ansible_facts.packages[item.package_name].version|default('') + +- name: 'build package {{ item.name }}' + command: 'makepkg --syncdeps --rmdeps --clean --noconfirm --force' + args: + chdir: '{{ build_dir }}' + creates: '{{ build_dir }}/{{ package_filename }}' + register: package_build + when: item.version != installed_version + - name: 'install {{ item.name }}' become: true pacman: - name: '{{ aur_build_dir }}/{{ item.name }}/{{ pkg_name.stdout }}-{{ pkg_version.stdout }}-{{ pkg_release.stdout }}-x86_64.pkg.tar.zst' + name: '{{ build_dir }}/{{ package_filename }}' state: present + when: package_build.changed diff --git a/tasks/aur.yml b/tasks/aur.yml index 1b7ecc9..6dd8c75 100644 --- a/tasks/aur.yml +++ b/tasks/aur.yml @@ -1,10 +1,8 @@ - name: retrieve directory stats stat: path: '{{ aur_build_dir }}/{{ item.name }}' - register: build_dir_stats loop: '{{ aur_packages }}' -# TODO become based on the directories stats - name: clone aur packages become: true git: diff --git a/vars/archlinux.yml b/vars/archlinux.yml index 3fae616..8a9b760 100644 --- a/vars/archlinux.yml +++ b/vars/archlinux.yml @@ -18,14 +18,18 @@ packages: aur_packages: - { - url: 'https://aur.archlinux.org/rootlesskit.git', - name: 'rootlesskit', - package_name: 'rootlesskit', + url: 'https://aur.archlinux.org/docker-rootless-extras.git', + name: 'docker-rootless', + package_name: 'docker-rootless-extras', + version: '27.1.2-1', + arch: 'x86_64', } - { - url: 'https://aur.archlinux.org/docker-rootless-extras-bin.git', - name: 'docker-rootless', - package_name: 'docker-rootless-extras-bin', + url: 'https://aur.archlinux.org/nvm.git', + name: 'nvm', + package_name: 'nvm', + version: '0.40.0-1', + arch: 'any', } aur_build_dir: '/usr/local/src'