diff --git a/.github/workflows/ans-int-test-lkp-rules.yaml b/.github/workflows/ans-int-test-lkp-rules.yaml index ca55668b3..61d8b5ebf 100644 --- a/.github/workflows/ans-int-test-lkp-rules.yaml +++ b/.github/workflows/ans-int-test-lkp-rules.yaml @@ -54,7 +54,7 @@ jobs: path: ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.11' diff --git a/.github/workflows/ans-int-test-lkp-rulesets.yaml b/.github/workflows/ans-int-test-lkp-rulesets.yaml index 392fa5e76..601979fd8 100644 --- a/.github/workflows/ans-int-test-lkp-rulesets.yaml +++ b/.github/workflows/ans-int-test-lkp-rulesets.yaml @@ -54,7 +54,7 @@ jobs: path: ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.11' diff --git a/.gitignore b/.gitignore index 347bd362c..cbf6858b8 100644 --- a/.gitignore +++ b/.gitignore @@ -9,5 +9,7 @@ build/ tests/output playbooks/vars/config.yml playbooks/test*.yml +playbooks/hosts +playbooks/hosts.bak Vagrantfile Vagrantfile.bak \ No newline at end of file diff --git a/Makefile b/Makefile index 5f5691207..305053e0d 100644 --- a/Makefile +++ b/Makefile @@ -17,6 +17,10 @@ help: @echo "" @echo "vm - Create a virtual development environment." @echo "molecule - Create a virtual environment for molecule tests." + @echo "vms - Create a virtual environment with all boxes (exept for the development ones and ansidows)." + @echo "vms-debian - Create a virtual environment with all Debian family OSes." + @echo "vms-redhat - Create a virtual environment with all RedHat family OSes." + @echo "vms-suse - Create a virtual environment with all Suse family OSes." @echo "" @echo "clean - Clean up several things" @echo "clean-vm - Clean up virtual development environment." @@ -52,6 +56,8 @@ setup-python: kvm: if [ -f Vagrantfile ] ; then cp Vagrantfile Vagrantfile.bak ; fi cp Vagrantfile.kvm Vagrantfile + if [ -f playbooks/hosts ] ; then cp playbooks/hosts playbooks/hosts.bak ; fi + cp playbooks/hosts.kvm playbooks/hosts setup-kvm: kvm @sudo apt update -y @@ -74,6 +80,8 @@ setup-kvm: kvm vbox: if [ -f Vagrantfile ] ; then cp Vagrantfile Vagrantfile.bak ; fi cp Vagrantfile.vbox Vagrantfile + if [ -f playbooks/hosts ] ; then cp playbooks/hosts playbooks/hosts.bak ; fi + cp playbooks/hosts.vbox playbooks/hosts setup-vbox: vbox @@ -91,3 +99,18 @@ molecule: vm: @vagrant up collection + +vms: + @vagrant up debsible ansibuntu anstream ansuse ansoracle # ansles ## currently no SLES box for libvirt! + +vms-debian: + @vagrant up debsible ansibuntu + +vms-redhat: + @vagrant up anstream ansoracle + +vms-suse: + @vagrant up ansuse # ansles ## currently no SLES box for libvirt! + +vms-windows: + @vagrant up ansidows diff --git a/SUPPORT.md b/SUPPORT.md index 588a1d717..80ebb253a 100644 --- a/SUPPORT.md +++ b/SUPPORT.md @@ -48,3 +48,4 @@ Collection Version | Checkmk Versions | Ansible Versions | Remarks 4.0.0 | 2.0.0p39, 2.1.0p36, 2.2.0p16 | 2.14, 2.15, 2.16 | Breaking changes to the following roles: `agent`, `server`. 4.0.1 | 2.0.0p39, 2.1.0p36, 2.2.0p16 | 2.14, 2.15, 2.16 | None 4.1.0 | 2.0.0p39, 2.1.0p37, 2.2.0p17 | 2.14, 2.15, 2.16 | None +4.2.0 | 2.0.0p39, 2.1.0p38, 2.2.0p19 | 2.14, 2.15, 2.16 | None diff --git a/Vagrantfile.kvm b/Vagrantfile.kvm index 62496792e..e277ae318 100644 --- a/Vagrantfile.kvm +++ b/Vagrantfile.kvm @@ -12,10 +12,10 @@ Vagrant.configure("2") do |config| config.vm.define "collection", primary: true do |srv| srv.vm.box = "generic/ubuntu2204" srv.vm.network :private_network, - :ip => "192.168.123.42", + :ip => "192.168.124.42", :libvirt__netmask => "255.255.255.0", :libvirt__network_name => "ansible_collection", - :libvirt__network_address => "192.168.123.0" + :libvirt__network_address => "192.168.124.0" srv.ssh.insert_key = false srv.vm.provider "libvirt" do |libvirt| libvirt.default_prefix = "ansible_" @@ -52,10 +52,10 @@ Vagrant.configure("2") do |config| config.vm.define "molecule", autostart: false , primary: false do |srv| srv.vm.box = "generic/ubuntu2004" srv.vm.network :private_network, - :ip => "192.168.123.43", + :ip => "192.168.124.43", :libvirt__netmask => "255.255.255.0", :libvirt__network_name => "ansible_collection", - :libvirt__network_address => "192.168.123.0" + :libvirt__network_address => "192.168.124.0" srv.ssh.insert_key = false srv.vm.provider "libvirt" do |libvirt| libvirt.default_prefix = "ansible_" @@ -93,10 +93,10 @@ Vagrant.configure("2") do |config| config.vm.define "ansibuntu", autostart: false , primary: false do |srv| srv.vm.box = "generic/ubuntu2204" srv.vm.network :private_network, - :ip => "192.168.123.61", + :ip => "192.168.124.61", :libvirt__netmask => "255.255.255.0", :libvirt__network_name => "ansible_collection", - :libvirt__network_address => "192.168.123.0" + :libvirt__network_address => "192.168.124.0" srv.ssh.insert_key = false srv.vm.provider "libvirt" do |libvirt| libvirt.default_prefix = "ansible_" @@ -115,10 +115,10 @@ Vagrant.configure("2") do |config| config.vm.define "debsible", autostart: false , primary: false do |srv| srv.vm.box = "generic/debian12" srv.vm.network :private_network, - :ip => "192.168.123.62", + :ip => "192.168.124.62", :libvirt__netmask => "255.255.255.0", :libvirt__network_name => "ansible_collection", - :libvirt__network_address => "192.168.123.0" + :libvirt__network_address => "192.168.124.0" srv.ssh.insert_key = false srv.vm.provider "libvirt" do |libvirt| libvirt.default_prefix = "ansible_" @@ -137,10 +137,10 @@ Vagrant.configure("2") do |config| config.vm.define "anstream", autostart: false , primary: false do |srv| srv.vm.box = "generic/centos9s" srv.vm.network :private_network, - :ip => "192.168.123.63", + :ip => "192.168.124.63", :libvirt__netmask => "255.255.255.0", :libvirt__network_name => "ansible_collection", - :libvirt__network_address => "192.168.123.0" + :libvirt__network_address => "192.168.124.0" srv.ssh.insert_key = false srv.vm.provider "libvirt" do |libvirt| libvirt.default_prefix = "ansible_" @@ -159,10 +159,10 @@ Vagrant.configure("2") do |config| config.vm.define "ansuse", autostart: false , primary: false do |srv| srv.vm.box = "generic/opensuse42" srv.vm.network :private_network, - :ip => "192.168.123.64", + :ip => "192.168.124.64", :libvirt__netmask => "255.255.255.0", :libvirt__network_name => "ansible_collection", - :libvirt__network_address => "192.168.123.0" + :libvirt__network_address => "192.168.124.0" srv.ssh.insert_key = false srv.vm.provider "libvirt" do |libvirt| libvirt.default_prefix = "ansible_" @@ -177,37 +177,36 @@ Vagrant.configure("2") do |config| inline: "zypper --quiet up -y" end - # SLES15 (No Box for libvirt found!!) - config.vm.define "ansles", autostart: false , primary: false do |srv| - srv.vm.box = "saltstack/cicd-sles15" - srv.vm.network :private_network, - :ip => "192.168.123.64", - :libvirt__netmask => "255.255.255.0", - :libvirt__network_name => "ansible_collection", - :libvirt__network_address => "192.168.123.0" - srv.ssh.insert_key = false - srv.vm.provider "libvirt" do |libvirt| - libvirt.default_prefix = "ansible_" - libvirt.description = 'This box is used to test roles against.' - libvirt.memory = 2048 - libvirt.cpus = 2 - libvirt.title = "ansles" - libvirt.memorybacking :access, :mode => 'shared' - libvirt.memorybacking :source, :type => 'memfd' - end - srv.vm.provision "shell", - inline: "zypper --quiet up -y" - end - + # # SLES15 (No Box for libvirt found!!) + # config.vm.define "ansles", autostart: false , primary: false do |srv| + # srv.vm.box = "saltstack/cicd-sles15" + # srv.vm.network :private_network, + # :ip => "192.168.124.64", + # :libvirt__netmask => "255.255.255.0", + # :libvirt__network_name => "ansible_collection", + # :libvirt__network_address => "192.168.124.0" + # srv.ssh.insert_key = false + # srv.vm.provider "libvirt" do |libvirt| + # libvirt.default_prefix = "ansible_" + # libvirt.description = 'This box is used to test roles against.' + # libvirt.memory = 2048 + # libvirt.cpus = 2 + # libvirt.title = "ansles" + # libvirt.memorybacking :access, :mode => 'shared' + # libvirt.memorybacking :source, :type => 'memfd' + # end + # srv.vm.provision "shell", + # inline: "zypper --quiet up -y" + # end # Oracle Linux config.vm.define "ansoracle", autostart: false , primary: false do |srv| srv.vm.box = "generic/oracle8" srv.vm.network :private_network, - :ip => "192.168.123.66", + :ip => "192.168.124.66", :libvirt__netmask => "255.255.255.0", :libvirt__network_name => "ansible_collection", - :libvirt__network_address => "192.168.123.0" + :libvirt__network_address => "192.168.124.0" srv.ssh.insert_key = false srv.vm.provider "libvirt" do |libvirt| libvirt.default_prefix = "ansible_" @@ -226,10 +225,10 @@ Vagrant.configure("2") do |config| config.vm.define "ansidows", autostart: false , primary: false do |srv| srv.vm.box = "peru/windows-server-2019-standard-x64-eval" srv.vm.network :private_network, - :ip => "192.168.123.67", + :ip => "192.168.124.67", :libvirt__netmask => "255.255.255.0", :libvirt__network_name => "ansible_collection", - :libvirt__network_address => "192.168.123.0" + :libvirt__network_address => "192.168.124.0" srv.winrm.max_tries = 100 srv.winrm.retry_delay = 2 srv.vm.boot_timeout = 180 diff --git a/changelogs/fragments/release_summary.yml b/changelogs/fragments/release_summary.yml new file mode 100644 index 000000000..5efd79d4d --- /dev/null +++ b/changelogs/fragments/release_summary.yml @@ -0,0 +1 @@ +release_summary: "Happy New Year!" diff --git a/changelogs/fragments/roles.yml b/changelogs/fragments/roles.yml new file mode 100644 index 000000000..b3546f5e3 --- /dev/null +++ b/changelogs/fragments/roles.yml @@ -0,0 +1,5 @@ +bugfixes: + - Agent role - Fix `become` in handler, which could cause errors on delegation. + +minor_changes: + - Server role - Improve role speed by skipping downloads. diff --git a/changelogs/fragments/rule.yml b/changelogs/fragments/rule.yml new file mode 100644 index 000000000..4141603de --- /dev/null +++ b/changelogs/fragments/rule.yml @@ -0,0 +1,2 @@ +bugfixes: + - Rule module - Fix idempotency for rule location relative to another rule_id, by getting the target folder from neighbour rule. diff --git a/changelogs/fragments/tag_group.yml b/changelogs/fragments/tag_group.yml new file mode 100644 index 000000000..947e779e1 --- /dev/null +++ b/changelogs/fragments/tag_group.yml @@ -0,0 +1,5 @@ +major_changes: + - Tag_group module - Rewrite module and migrate to new collection API. + +minor_changes: + - Tag_group module - Enable `help` and `repair` options. diff --git a/changelogs/fragments/user.yml b/changelogs/fragments/user.yml new file mode 100644 index 000000000..7e7734ef1 --- /dev/null +++ b/changelogs/fragments/user.yml @@ -0,0 +1,5 @@ +major_changes: + - User module - Rewrite module and migrate to new collection API. + +minor_changes: + - User module - Enable several interface options. diff --git a/galaxy.yml b/galaxy.yml index be53ad0d4..8e1ad3332 100644 --- a/galaxy.yml +++ b/galaxy.yml @@ -10,7 +10,7 @@ name: general # The version of the collection. Must be compatible with semantic versioning -version: 4.1.0 +version: 4.2.0 # The path to the Markdown (.md) readme file. This path is relative to the root of the collection readme: README.md diff --git a/misc/debian-12.package_facts b/misc/debian-12.package_facts new file mode 100644 index 000000000..ab7f5f3d6 --- /dev/null +++ b/misc/debian-12.package_facts @@ -0,0 +1,5408 @@ +debsible | SUCCESS => { + "ansible_facts": { + "discovered_interpreter_python": "/usr/bin/python3", + "packages": { + "adduser": [ + { + "arch": "all", + "category": "admin", + "name": "adduser", + "origin": "Debian", + "source": "apt", + "version": "3.134" + } + ], + "apache2": [ + { + "arch": "amd64", + "category": "httpd", + "name": "apache2", + "origin": "Debian", + "source": "apt", + "version": "2.4.57-2" + } + ], + "apache2-bin": [ + { + "arch": "amd64", + "category": "httpd", + "name": "apache2-bin", + "origin": "Debian", + "source": "apt", + "version": "2.4.57-2" + } + ], + "apache2-data": [ + { + "arch": "all", + "category": "httpd", + "name": "apache2-data", + "origin": "Debian", + "source": "apt", + "version": "2.4.57-2" + } + ], + "apache2-utils": [ + { + "arch": "amd64", + "category": "httpd", + "name": "apache2-utils", + "origin": "Debian", + "source": "apt", + "version": "2.4.57-2" + } + ], + "apparmor": [ + { + "arch": "amd64", + "category": "admin", + "name": "apparmor", + "origin": "Debian", + "source": "apt", + "version": "3.0.8-3" + } + ], + "apt": [ + { + "arch": "amd64", + "category": "admin", + "name": "apt", + "origin": "Debian", + "source": "apt", + "version": "2.6.1" + } + ], + "apt-listchanges": [ + { + "arch": "all", + "category": "utils", + "name": "apt-listchanges", + "origin": "Debian", + "source": "apt", + "version": "3.24" + } + ], + "apt-utils": [ + { + "arch": "amd64", + "category": "admin", + "name": "apt-utils", + "origin": "Debian", + "source": "apt", + "version": "2.6.1" + } + ], + "base-files": [ + { + "arch": "amd64", + "category": "admin", + "name": "base-files", + "origin": "", + "source": "apt", + "version": "12.4+deb12u2" + } + ], + "base-passwd": [ + { + "arch": "amd64", + "category": "admin", + "name": "base-passwd", + "origin": "Debian", + "source": "apt", + "version": "3.6.1" + } + ], + "bash": [ + { + "arch": "amd64", + "category": "shells", + "name": "bash", + "origin": "Debian", + "source": "apt", + "version": "5.2.15-2+b2" + } + ], + "bash-completion": [ + { + "arch": "all", + "category": "shells", + "name": "bash-completion", + "origin": "Debian", + "source": "apt", + "version": "1:2.11-6" + } + ], + "bind9-dnsutils": [ + { + "arch": "amd64", + "category": "net", + "name": "bind9-dnsutils", + "origin": "Debian", + "source": "apt", + "version": "1:9.18.19-1~deb12u1" + } + ], + "bind9-host": [ + { + "arch": "amd64", + "category": "net", + "name": "bind9-host", + "origin": "Debian", + "source": "apt", + "version": "1:9.18.19-1~deb12u1" + } + ], + "bind9-libs": [ + { + "arch": "amd64", + "category": "libs", + "name": "bind9-libs", + "origin": "Debian", + "source": "apt", + "version": "1:9.18.19-1~deb12u1" + } + ], + "binutils": [ + { + "arch": "amd64", + "category": "devel", + "name": "binutils", + "origin": "Debian", + "source": "apt", + "version": "2.40-2" + } + ], + "binutils-common": [ + { + "arch": "amd64", + "category": "devel", + "name": "binutils-common", + "origin": "Debian", + "source": "apt", + "version": "2.40-2" + } + ], + "binutils-x86-64-linux-gnu": [ + { + "arch": "amd64", + "category": "devel", + "name": "binutils-x86-64-linux-gnu", + "origin": "Debian", + "source": "apt", + "version": "2.40-2" + } + ], + "bsdextrautils": [ + { + "arch": "amd64", + "category": "utils", + "name": "bsdextrautils", + "origin": "Debian", + "source": "apt", + "version": "2.38.1-5+b1" + } + ], + "bsdutils": [ + { + "arch": "amd64", + "category": "utils", + "name": "bsdutils", + "origin": "Debian", + "source": "apt", + "version": "1:2.38.1-5+b1" + } + ], + "busybox": [ + { + "arch": "amd64", + "category": "utils", + "name": "busybox", + "origin": "Debian", + "source": "apt", + "version": "1:1.35.0-4+b3" + } + ], + "bzip2": [ + { + "arch": "amd64", + "category": "utils", + "name": "bzip2", + "origin": "Debian", + "source": "apt", + "version": "1.0.8-5+b1" + } + ], + "ca-certificates": [ + { + "arch": "all", + "category": "misc", + "name": "ca-certificates", + "origin": "Debian", + "source": "apt", + "version": "20230311" + } + ], + "check-mk-raw-2.2.0p8": [ + { + "arch": "amd64", + "category": "admin", + "name": "check-mk-raw-2.2.0p8", + "origin": "", + "source": "apt", + "version": "0.bookworm" + } + ], + "console-setup": [ + { + "arch": "all", + "category": "utils", + "name": "console-setup", + "origin": "Debian", + "source": "apt", + "version": "1.221" + } + ], + "console-setup-linux": [ + { + "arch": "all", + "category": "utils", + "name": "console-setup-linux", + "origin": "Debian", + "source": "apt", + "version": "1.221" + } + ], + "coreutils": [ + { + "arch": "amd64", + "category": "utils", + "name": "coreutils", + "origin": "Debian", + "source": "apt", + "version": "9.1-1" + } + ], + "cpio": [ + { + "arch": "amd64", + "category": "utils", + "name": "cpio", + "origin": "Debian", + "source": "apt", + "version": "2.13+dfsg-7.1" + } + ], + "cron": [ + { + "arch": "amd64", + "category": "admin", + "name": "cron", + "origin": "Debian", + "source": "apt", + "version": "3.0pl1-162" + } + ], + "cron-daemon-common": [ + { + "arch": "all", + "category": "admin", + "name": "cron-daemon-common", + "origin": "Debian", + "source": "apt", + "version": "3.0pl1-162" + } + ], + "curl": [ + { + "arch": "amd64", + "category": "web", + "name": "curl", + "origin": "Debian", + "source": "apt", + "version": "7.88.1-10+deb12u5" + } + ], + "dash": [ + { + "arch": "amd64", + "category": "shells", + "name": "dash", + "origin": "Debian", + "source": "apt", + "version": "0.5.12-2" + } + ], + "dbus": [ + { + "arch": "amd64", + "category": "admin", + "name": "dbus", + "origin": "Debian", + "source": "apt", + "version": "1.14.10-1~deb12u1" + } + ], + "dbus-bin": [ + { + "arch": "amd64", + "category": "admin", + "name": "dbus-bin", + "origin": "Debian", + "source": "apt", + "version": "1.14.10-1~deb12u1" + } + ], + "dbus-daemon": [ + { + "arch": "amd64", + "category": "admin", + "name": "dbus-daemon", + "origin": "Debian", + "source": "apt", + "version": "1.14.10-1~deb12u1" + } + ], + "dbus-session-bus-common": [ + { + "arch": "all", + "category": "admin", + "name": "dbus-session-bus-common", + "origin": "Debian", + "source": "apt", + "version": "1.14.10-1~deb12u1" + } + ], + "dbus-system-bus-common": [ + { + "arch": "all", + "category": "admin", + "name": "dbus-system-bus-common", + "origin": "Debian", + "source": "apt", + "version": "1.14.10-1~deb12u1" + } + ], + "dbus-user-session": [ + { + "arch": "amd64", + "category": "admin", + "name": "dbus-user-session", + "origin": "Debian", + "source": "apt", + "version": "1.14.10-1~deb12u1" + } + ], + "debconf": [ + { + "arch": "all", + "category": "admin", + "name": "debconf", + "origin": "Debian", + "source": "apt", + "version": "1.5.82" + } + ], + "debconf-i18n": [ + { + "arch": "all", + "category": "localization", + "name": "debconf-i18n", + "origin": "Debian", + "source": "apt", + "version": "1.5.82" + } + ], + "debian-archive-keyring": [ + { + "arch": "all", + "category": "misc", + "name": "debian-archive-keyring", + "origin": "Debian", + "source": "apt", + "version": "2023.3+deb12u1" + } + ], + "debian-faq": [ + { + "arch": "all", + "category": "doc", + "name": "debian-faq", + "origin": "Debian", + "source": "apt", + "version": "11.1" + } + ], + "debianutils": [ + { + "arch": "amd64", + "category": "utils", + "name": "debianutils", + "origin": "Debian", + "source": "apt", + "version": "5.7-0.5~deb12u1" + } + ], + "debugedit": [ + { + "arch": "amd64", + "category": "admin", + "name": "debugedit", + "origin": "Debian", + "source": "apt", + "version": "1:5.0-5" + } + ], + "dialog": [ + { + "arch": "amd64", + "category": "misc", + "name": "dialog", + "origin": "Debian", + "source": "apt", + "version": "1.3-20230209-1" + } + ], + "dictionaries-common": [ + { + "arch": "all", + "category": "text", + "name": "dictionaries-common", + "origin": "Debian", + "source": "apt", + "version": "1.29.5" + } + ], + "diffutils": [ + { + "arch": "amd64", + "category": "utils", + "name": "diffutils", + "origin": "Debian", + "source": "apt", + "version": "1:3.8-4" + } + ], + "dirmngr": [ + { + "arch": "amd64", + "category": "utils", + "name": "dirmngr", + "origin": "Debian", + "source": "apt", + "version": "2.2.40-1.1" + } + ], + "discover": [ + { + "arch": "amd64", + "category": "admin", + "name": "discover", + "origin": "Debian", + "source": "apt", + "version": "2.1.2-10" + } + ], + "discover-data": [ + { + "arch": "all", + "category": "libs", + "name": "discover-data", + "origin": "Debian", + "source": "apt", + "version": "2.2013.01.13" + } + ], + "distro-info-data": [ + { + "arch": "all", + "category": "devel", + "name": "distro-info-data", + "origin": "", + "source": "apt", + "version": "0.58" + } + ], + "dmidecode": [ + { + "arch": "amd64", + "category": "utils", + "name": "dmidecode", + "origin": "Debian", + "source": "apt", + "version": "3.4-1" + } + ], + "dmsetup": [ + { + "arch": "amd64", + "category": "admin", + "name": "dmsetup", + "origin": "Debian", + "source": "apt", + "version": "2:1.02.185-2" + } + ], + "doc-debian": [ + { + "arch": "all", + "category": "doc", + "name": "doc-debian", + "origin": "Debian", + "source": "apt", + "version": "11.3+nmu1" + } + ], + "dpkg": [ + { + "arch": "amd64", + "category": "admin", + "name": "dpkg", + "origin": "Debian", + "source": "apt", + "version": "1.21.22" + } + ], + "e2fsprogs": [ + { + "arch": "amd64", + "category": "admin", + "name": "e2fsprogs", + "origin": "Debian", + "source": "apt", + "version": "1.47.0-2" + } + ], + "eject": [ + { + "arch": "amd64", + "category": "utils", + "name": "eject", + "origin": "Debian", + "source": "apt", + "version": "2.38.1-5+b1" + } + ], + "emacsen-common": [ + { + "arch": "all", + "category": "editors", + "name": "emacsen-common", + "origin": "Debian", + "source": "apt", + "version": "3.0.5" + } + ], + "fdisk": [ + { + "arch": "amd64", + "category": "utils", + "name": "fdisk", + "origin": "Debian", + "source": "apt", + "version": "2.38.1-5+b1" + } + ], + "file": [ + { + "arch": "amd64", + "category": "utils", + "name": "file", + "origin": "Debian", + "source": "apt", + "version": "1:5.44-3" + } + ], + "findutils": [ + { + "arch": "amd64", + "category": "utils", + "name": "findutils", + "origin": "Debian", + "source": "apt", + "version": "4.9.0-4" + } + ], + "firmware-linux-free": [ + { + "arch": "all", + "category": "kernel", + "name": "firmware-linux-free", + "origin": "Debian", + "source": "apt", + "version": "20200122-1" + } + ], + "fontconfig": [ + { + "arch": "amd64", + "category": "fonts", + "name": "fontconfig", + "origin": "Debian", + "source": "apt", + "version": "2.14.1-4" + } + ], + "fontconfig-config": [ + { + "arch": "amd64", + "category": "fonts", + "name": "fontconfig-config", + "origin": "Debian", + "source": "apt", + "version": "2.14.1-4" + } + ], + "fonts-dejavu-core": [ + { + "arch": "all", + "category": "fonts", + "name": "fonts-dejavu-core", + "origin": "Debian", + "source": "apt", + "version": "2.37-6" + } + ], + "fonts-liberation2": [ + { + "arch": "all", + "category": "fonts", + "name": "fonts-liberation2", + "origin": "Debian", + "source": "apt", + "version": "2.1.5-1" + } + ], + "freeipmi": [ + { + "arch": "all", + "category": "admin", + "name": "freeipmi", + "origin": "Debian", + "source": "apt", + "version": "1.6.10-1" + } + ], + "freeipmi-bmc-watchdog": [ + { + "arch": "amd64", + "category": "admin", + "name": "freeipmi-bmc-watchdog", + "origin": "Debian", + "source": "apt", + "version": "1.6.10-1+b1" + } + ], + "freeipmi-common": [ + { + "arch": "all", + "category": "admin", + "name": "freeipmi-common", + "origin": "Debian", + "source": "apt", + "version": "1.6.10-1" + } + ], + "freeipmi-ipmidetect": [ + { + "arch": "amd64", + "category": "admin", + "name": "freeipmi-ipmidetect", + "origin": "Debian", + "source": "apt", + "version": "1.6.10-1+b1" + } + ], + "freeipmi-tools": [ + { + "arch": "amd64", + "category": "admin", + "name": "freeipmi-tools", + "origin": "Debian", + "source": "apt", + "version": "1.6.10-1+b1" + } + ], + "gcc-12-base": [ + { + "arch": "amd64", + "category": "libs", + "name": "gcc-12-base", + "origin": "Debian", + "source": "apt", + "version": "12.2.0-14" + } + ], + "gettext-base": [ + { + "arch": "amd64", + "category": "utils", + "name": "gettext-base", + "origin": "Debian", + "source": "apt", + "version": "0.21-12" + } + ], + "git": [ + { + "arch": "amd64", + "category": "vcs", + "name": "git", + "origin": "Debian", + "source": "apt", + "version": "1:2.39.2-1.1" + } + ], + "git-man": [ + { + "arch": "all", + "category": "doc", + "name": "git-man", + "origin": "Debian", + "source": "apt", + "version": "1:2.39.2-1.1" + } + ], + "gnupg": [ + { + "arch": "all", + "category": "utils", + "name": "gnupg", + "origin": "Debian", + "source": "apt", + "version": "2.2.40-1.1" + } + ], + "gnupg-l10n": [ + { + "arch": "all", + "category": "localization", + "name": "gnupg-l10n", + "origin": "Debian", + "source": "apt", + "version": "2.2.40-1.1" + } + ], + "gnupg-utils": [ + { + "arch": "amd64", + "category": "utils", + "name": "gnupg-utils", + "origin": "Debian", + "source": "apt", + "version": "2.2.40-1.1" + } + ], + "gpg": [ + { + "arch": "amd64", + "category": "utils", + "name": "gpg", + "origin": "Debian", + "source": "apt", + "version": "2.2.40-1.1" + } + ], + "gpg-agent": [ + { + "arch": "amd64", + "category": "utils", + "name": "gpg-agent", + "origin": "Debian", + "source": "apt", + "version": "2.2.40-1.1" + } + ], + "gpg-wks-client": [ + { + "arch": "amd64", + "category": "utils", + "name": "gpg-wks-client", + "origin": "Debian", + "source": "apt", + "version": "2.2.40-1.1" + } + ], + "gpg-wks-server": [ + { + "arch": "amd64", + "category": "utils", + "name": "gpg-wks-server", + "origin": "Debian", + "source": "apt", + "version": "2.2.40-1.1" + } + ], + "gpgconf": [ + { + "arch": "amd64", + "category": "utils", + "name": "gpgconf", + "origin": "Debian", + "source": "apt", + "version": "2.2.40-1.1" + } + ], + "gpgsm": [ + { + "arch": "amd64", + "category": "utils", + "name": "gpgsm", + "origin": "Debian", + "source": "apt", + "version": "2.2.40-1.1" + } + ], + "gpgv": [ + { + "arch": "amd64", + "category": "utils", + "name": "gpgv", + "origin": "Debian", + "source": "apt", + "version": "2.2.40-1.1" + } + ], + "graphviz": [ + { + "arch": "amd64", + "category": "graphics", + "name": "graphviz", + "origin": "Debian", + "source": "apt", + "version": "2.42.2-7+b3" + } + ], + "grep": [ + { + "arch": "amd64", + "category": "utils", + "name": "grep", + "origin": "Debian", + "source": "apt", + "version": "3.8-5" + } + ], + "groff-base": [ + { + "arch": "amd64", + "category": "text", + "name": "groff-base", + "origin": "Debian", + "source": "apt", + "version": "1.22.4-10" + } + ], + "grub-common": [ + { + "arch": "amd64", + "category": "admin", + "name": "grub-common", + "origin": "Debian", + "source": "apt", + "version": "2.06-13+deb12u1" + } + ], + "grub-pc": [ + { + "arch": "amd64", + "category": "admin", + "name": "grub-pc", + "origin": "Debian", + "source": "apt", + "version": "2.06-13+deb12u1" + } + ], + "grub-pc-bin": [ + { + "arch": "amd64", + "category": "admin", + "name": "grub-pc-bin", + "origin": "Debian", + "source": "apt", + "version": "2.06-13+deb12u1" + } + ], + "grub2-common": [ + { + "arch": "amd64", + "category": "admin", + "name": "grub2-common", + "origin": "Debian", + "source": "apt", + "version": "2.06-13+deb12u1" + } + ], + "gzip": [ + { + "arch": "amd64", + "category": "utils", + "name": "gzip", + "origin": "Debian", + "source": "apt", + "version": "1.12-1" + } + ], + "haveged": [ + { + "arch": "amd64", + "category": "misc", + "name": "haveged", + "origin": "Debian", + "source": "apt", + "version": "1.9.14-1+b1" + } + ], + "hostname": [ + { + "arch": "amd64", + "category": "admin", + "name": "hostname", + "origin": "Debian", + "source": "apt", + "version": "3.23+nmu1" + } + ], + "htop": [ + { + "arch": "amd64", + "category": "utils", + "name": "htop", + "origin": "Debian", + "source": "apt", + "version": "3.2.2-2" + } + ], + "iamerican": [ + { + "arch": "all", + "category": "text", + "name": "iamerican", + "origin": "Debian", + "source": "apt", + "version": "3.4.05-1" + } + ], + "ibritish": [ + { + "arch": "all", + "category": "text", + "name": "ibritish", + "origin": "Debian", + "source": "apt", + "version": "3.4.05-1" + } + ], + "ienglish-common": [ + { + "arch": "all", + "category": "text", + "name": "ienglish-common", + "origin": "Debian", + "source": "apt", + "version": "3.4.05-1" + } + ], + "ifplugd": [ + { + "arch": "amd64", + "category": "net", + "name": "ifplugd", + "origin": "Debian", + "source": "apt", + "version": "0.28-19.5" + } + ], + "ifupdown": [ + { + "arch": "amd64", + "category": "admin", + "name": "ifupdown", + "origin": "Debian", + "source": "apt", + "version": "0.8.41" + } + ], + "inetutils-telnet": [ + { + "arch": "amd64", + "category": "net", + "name": "inetutils-telnet", + "origin": "Debian", + "source": "apt", + "version": "2:2.4-2+deb12u1" + } + ], + "init": [ + { + "arch": "amd64", + "category": "metapackages", + "name": "init", + "origin": "Debian", + "source": "apt", + "version": "1.65.2" + } + ], + "init-system-helpers": [ + { + "arch": "all", + "category": "admin", + "name": "init-system-helpers", + "origin": "Debian", + "source": "apt", + "version": "1.65.2" + } + ], + "initramfs-tools": [ + { + "arch": "all", + "category": "utils", + "name": "initramfs-tools", + "origin": "Debian", + "source": "apt", + "version": "0.142" + } + ], + "initramfs-tools-core": [ + { + "arch": "all", + "category": "utils", + "name": "initramfs-tools-core", + "origin": "Debian", + "source": "apt", + "version": "0.142" + } + ], + "inotify-tools": [ + { + "arch": "amd64", + "category": "misc", + "name": "inotify-tools", + "origin": "Debian", + "source": "apt", + "version": "3.22.6.0-4" + } + ], + "intel-microcode": [ + { + "arch": "amd64", + "category": "non-free-firmware/admin", + "name": "intel-microcode", + "origin": "Debian", + "source": "apt", + "version": "3.20231114.1~deb12u1" + } + ], + "iproute2": [ + { + "arch": "amd64", + "category": "net", + "name": "iproute2", + "origin": "Debian", + "source": "apt", + "version": "6.1.0-3" + } + ], + "iputils-ping": [ + { + "arch": "amd64", + "category": "net", + "name": "iputils-ping", + "origin": "Debian", + "source": "apt", + "version": "3:20221126-1" + } + ], + "isc-dhcp-client": [ + { + "arch": "amd64", + "category": "net", + "name": "isc-dhcp-client", + "origin": "Debian", + "source": "apt", + "version": "4.4.3-P1-2" + } + ], + "isc-dhcp-common": [ + { + "arch": "amd64", + "category": "net", + "name": "isc-dhcp-common", + "origin": "Debian", + "source": "apt", + "version": "4.4.3-P1-2" + } + ], + "iso-codes": [ + { + "arch": "all", + "category": "misc", + "name": "iso-codes", + "origin": "Debian", + "source": "apt", + "version": "4.15.0-1" + } + ], + "ispell": [ + { + "arch": "amd64", + "category": "text", + "name": "ispell", + "origin": "Debian", + "source": "apt", + "version": "3.4.05-1" + } + ], + "iucode-tool": [ + { + "arch": "amd64", + "category": "utils", + "name": "iucode-tool", + "origin": "Debian", + "source": "apt", + "version": "2.3.1-3" + } + ], + "kbd": [ + { + "arch": "amd64", + "category": "utils", + "name": "kbd", + "origin": "Debian", + "source": "apt", + "version": "2.5.1-1+b1" + } + ], + "keyboard-configuration": [ + { + "arch": "all", + "category": "utils", + "name": "keyboard-configuration", + "origin": "Debian", + "source": "apt", + "version": "1.221" + } + ], + "klibc-utils": [ + { + "arch": "amd64", + "category": "libs", + "name": "klibc-utils", + "origin": "Debian", + "source": "apt", + "version": "2.0.12-1" + } + ], + "kmod": [ + { + "arch": "amd64", + "category": "admin", + "name": "kmod", + "origin": "Debian", + "source": "apt", + "version": "30+20221128-1" + } + ], + "krb5-locales": [ + { + "arch": "all", + "category": "localization", + "name": "krb5-locales", + "origin": "Debian", + "source": "apt", + "version": "1.20.1-2+deb12u1" + } + ], + "laptop-detect": [ + { + "arch": "all", + "category": "utils", + "name": "laptop-detect", + "origin": "Debian", + "source": "apt", + "version": "0.16" + } + ], + "less": [ + { + "arch": "amd64", + "category": "text", + "name": "less", + "origin": "Debian", + "source": "apt", + "version": "590-2" + } + ], + "libabsl20220623": [ + { + "arch": "amd64", + "category": "libs", + "name": "libabsl20220623", + "origin": "Debian", + "source": "apt", + "version": "20220623.1-1" + } + ], + "libacl1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libacl1", + "origin": "Debian", + "source": "apt", + "version": "2.3.1-3" + } + ], + "libann0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libann0", + "origin": "Debian", + "source": "apt", + "version": "1.1.2+doc-9+b1" + } + ], + "libaom3": [ + { + "arch": "amd64", + "category": "libs", + "name": "libaom3", + "origin": "Debian", + "source": "apt", + "version": "3.6.0-1" + } + ], + "libapache2-mod-php8.2": [ + { + "arch": "amd64", + "category": "httpd", + "name": "libapache2-mod-php8.2", + "origin": "Debian", + "source": "apt", + "version": "8.2.7-1~deb12u1" + } + ], + "libapparmor1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libapparmor1", + "origin": "Debian", + "source": "apt", + "version": "3.0.8-3" + } + ], + "libapr1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libapr1", + "origin": "Debian", + "source": "apt", + "version": "1.7.2-3" + } + ], + "libaprutil1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libaprutil1", + "origin": "Debian", + "source": "apt", + "version": "1.6.3-1" + } + ], + "libaprutil1-dbd-sqlite3": [ + { + "arch": "amd64", + "category": "libs", + "name": "libaprutil1-dbd-sqlite3", + "origin": "Debian", + "source": "apt", + "version": "1.6.3-1" + } + ], + "libaprutil1-ldap": [ + { + "arch": "amd64", + "category": "libs", + "name": "libaprutil1-ldap", + "origin": "Debian", + "source": "apt", + "version": "1.6.3-1" + } + ], + "libapt-pkg6.0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libapt-pkg6.0", + "origin": "Debian", + "source": "apt", + "version": "2.6.1" + } + ], + "libarchive13": [ + { + "arch": "amd64", + "category": "libs", + "name": "libarchive13", + "origin": "Debian", + "source": "apt", + "version": "3.6.2-1" + } + ], + "libargon2-1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libargon2-1", + "origin": "Debian", + "source": "apt", + "version": "0~20171227-0.3+deb12u1" + } + ], + "libassuan0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libassuan0", + "origin": "Debian", + "source": "apt", + "version": "2.5.5-5" + } + ], + "libattr1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libattr1", + "origin": "Debian", + "source": "apt", + "version": "1:2.5.1-4" + } + ], + "libaudit-common": [ + { + "arch": "all", + "category": "libs", + "name": "libaudit-common", + "origin": "Debian", + "source": "apt", + "version": "1:3.0.9-1" + } + ], + "libaudit1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libaudit1", + "origin": "Debian", + "source": "apt", + "version": "1:3.0.9-1" + } + ], + "libavahi-client3": [ + { + "arch": "amd64", + "category": "libs", + "name": "libavahi-client3", + "origin": "Debian", + "source": "apt", + "version": "0.8-10" + } + ], + "libavahi-common-data": [ + { + "arch": "amd64", + "category": "libs", + "name": "libavahi-common-data", + "origin": "Debian", + "source": "apt", + "version": "0.8-10" + } + ], + "libavahi-common3": [ + { + "arch": "amd64", + "category": "libs", + "name": "libavahi-common3", + "origin": "Debian", + "source": "apt", + "version": "0.8-10" + } + ], + "libavif15": [ + { + "arch": "amd64", + "category": "libs", + "name": "libavif15", + "origin": "Debian", + "source": "apt", + "version": "0.11.1-1" + } + ], + "libbinutils": [ + { + "arch": "amd64", + "category": "devel", + "name": "libbinutils", + "origin": "Debian", + "source": "apt", + "version": "2.40-2" + } + ], + "libblkid1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libblkid1", + "origin": "Debian", + "source": "apt", + "version": "2.38.1-5+b1" + } + ], + "libbpf1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libbpf1", + "origin": "Debian", + "source": "apt", + "version": "1:1.1.0-1" + } + ], + "libbrotli1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libbrotli1", + "origin": "Debian", + "source": "apt", + "version": "1.0.9-2+b6" + } + ], + "libbsd0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libbsd0", + "origin": "Debian", + "source": "apt", + "version": "0.11.7-2" + } + ], + "libbz2-1.0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libbz2-1.0", + "origin": "Debian", + "source": "apt", + "version": "1.0.8-5+b1" + } + ], + "libc-bin": [ + { + "arch": "amd64", + "category": "libs", + "name": "libc-bin", + "origin": "Debian", + "source": "apt", + "version": "2.36-9+deb12u3" + } + ], + "libc-l10n": [ + { + "arch": "all", + "category": "localization", + "name": "libc-l10n", + "origin": "Debian", + "source": "apt", + "version": "2.36-9+deb12u3" + } + ], + "libc6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libc6", + "origin": "Debian", + "source": "apt", + "version": "2.36-9+deb12u3" + } + ], + "libcairo2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libcairo2", + "origin": "Debian", + "source": "apt", + "version": "1.16.0-7" + } + ], + "libcap-ng0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libcap-ng0", + "origin": "Debian", + "source": "apt", + "version": "0.8.3-1+b3" + } + ], + "libcap2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libcap2", + "origin": "Debian", + "source": "apt", + "version": "1:2.66-4" + } + ], + "libcap2-bin": [ + { + "arch": "amd64", + "category": "utils", + "name": "libcap2-bin", + "origin": "Debian", + "source": "apt", + "version": "1:2.66-4" + } + ], + "libcbor0.8": [ + { + "arch": "amd64", + "category": "libs", + "name": "libcbor0.8", + "origin": "Debian", + "source": "apt", + "version": "0.8.0-2+b1" + } + ], + "libcdb1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libcdb1", + "origin": "Debian", + "source": "apt", + "version": "0.78+b1" + } + ], + "libcdt5": [ + { + "arch": "amd64", + "category": "libs", + "name": "libcdt5", + "origin": "Debian", + "source": "apt", + "version": "2.42.2-7+b3" + } + ], + "libcgraph6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libcgraph6", + "origin": "Debian", + "source": "apt", + "version": "2.42.2-7+b3" + } + ], + "libcom-err2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libcom-err2", + "origin": "Debian", + "source": "apt", + "version": "1.47.0-2" + } + ], + "libcrypt1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libcrypt1", + "origin": "Debian", + "source": "apt", + "version": "1:4.4.33-2" + } + ], + "libcryptsetup12": [ + { + "arch": "amd64", + "category": "libs", + "name": "libcryptsetup12", + "origin": "Debian", + "source": "apt", + "version": "2:2.6.1-4~deb12u1" + } + ], + "libctf-nobfd0": [ + { + "arch": "amd64", + "category": "devel", + "name": "libctf-nobfd0", + "origin": "Debian", + "source": "apt", + "version": "2.40-2" + } + ], + "libctf0": [ + { + "arch": "amd64", + "category": "devel", + "name": "libctf0", + "origin": "Debian", + "source": "apt", + "version": "2.40-2" + } + ], + "libcups2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libcups2", + "origin": "Debian", + "source": "apt", + "version": "2.4.2-3+deb12u5" + } + ], + "libcurl3-gnutls": [ + { + "arch": "amd64", + "category": "libs", + "name": "libcurl3-gnutls", + "origin": "Debian", + "source": "apt", + "version": "7.88.1-10+deb12u5" + } + ], + "libcurl4": [ + { + "arch": "amd64", + "category": "libs", + "name": "libcurl4", + "origin": "Debian", + "source": "apt", + "version": "7.88.1-10+deb12u5" + } + ], + "libdaemon0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libdaemon0", + "origin": "Debian", + "source": "apt", + "version": "0.14-7.1" + } + ], + "libdatrie1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libdatrie1", + "origin": "Debian", + "source": "apt", + "version": "0.2.13-2+b1" + } + ], + "libdav1d6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libdav1d6", + "origin": "Debian", + "source": "apt", + "version": "1.0.0-2" + } + ], + "libdb5.3": [ + { + "arch": "amd64", + "category": "libs", + "name": "libdb5.3", + "origin": "Debian", + "source": "apt", + "version": "5.3.28+dfsg2-1" + } + ], + "libdbus-1-3": [ + { + "arch": "amd64", + "category": "libs", + "name": "libdbus-1-3", + "origin": "Debian", + "source": "apt", + "version": "1.14.10-1~deb12u1" + } + ], + "libde265-0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libde265-0", + "origin": "Debian", + "source": "apt", + "version": "1.0.11-1+deb12u1" + } + ], + "libdebconfclient0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libdebconfclient0", + "origin": "Debian", + "source": "apt", + "version": "0.270" + } + ], + "libdeflate0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libdeflate0", + "origin": "Debian", + "source": "apt", + "version": "1.14-1" + } + ], + "libdevmapper1.02.1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libdevmapper1.02.1", + "origin": "Debian", + "source": "apt", + "version": "2:1.02.185-2" + } + ], + "libdiscover2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libdiscover2", + "origin": "Debian", + "source": "apt", + "version": "2.1.2-10" + } + ], + "libdw1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libdw1", + "origin": "Debian", + "source": "apt", + "version": "0.188-2.1" + } + ], + "libedit2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libedit2", + "origin": "Debian", + "source": "apt", + "version": "3.1-20221030-2" + } + ], + "libefiboot1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libefiboot1", + "origin": "Debian", + "source": "apt", + "version": "37-6" + } + ], + "libefivar1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libefivar1", + "origin": "Debian", + "source": "apt", + "version": "37-6" + } + ], + "libelf1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libelf1", + "origin": "Debian", + "source": "apt", + "version": "0.188-2.1" + } + ], + "liberror-perl": [ + { + "arch": "all", + "category": "perl", + "name": "liberror-perl", + "origin": "Debian", + "source": "apt", + "version": "0.17029-2" + } + ], + "libestr0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libestr0", + "origin": "Debian", + "source": "apt", + "version": "0.1.11-1" + } + ], + "libevent-2.1-7": [ + { + "arch": "amd64", + "category": "libs", + "name": "libevent-2.1-7", + "origin": "Debian", + "source": "apt", + "version": "2.1.12-stable-8" + } + ], + "libevent-core-2.1-7": [ + { + "arch": "amd64", + "category": "libs", + "name": "libevent-core-2.1-7", + "origin": "Debian", + "source": "apt", + "version": "2.1.12-stable-8" + } + ], + "libevent-dev": [ + { + "arch": "amd64", + "category": "libdevel", + "name": "libevent-dev", + "origin": "Debian", + "source": "apt", + "version": "2.1.12-stable-8" + } + ], + "libevent-extra-2.1-7": [ + { + "arch": "amd64", + "category": "libs", + "name": "libevent-extra-2.1-7", + "origin": "Debian", + "source": "apt", + "version": "2.1.12-stable-8" + } + ], + "libevent-openssl-2.1-7": [ + { + "arch": "amd64", + "category": "libs", + "name": "libevent-openssl-2.1-7", + "origin": "Debian", + "source": "apt", + "version": "2.1.12-stable-8" + } + ], + "libevent-pthreads-2.1-7": [ + { + "arch": "amd64", + "category": "libs", + "name": "libevent-pthreads-2.1-7", + "origin": "Debian", + "source": "apt", + "version": "2.1.12-stable-8" + } + ], + "libexpat1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libexpat1", + "origin": "Debian", + "source": "apt", + "version": "2.5.0-1" + } + ], + "libext2fs2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libext2fs2", + "origin": "Debian", + "source": "apt", + "version": "1.47.0-2" + } + ], + "libfastjson4": [ + { + "arch": "amd64", + "category": "libs", + "name": "libfastjson4", + "origin": "Debian", + "source": "apt", + "version": "1.2304.0-1" + } + ], + "libfdisk1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libfdisk1", + "origin": "Debian", + "source": "apt", + "version": "2.38.1-5+b1" + } + ], + "libffi8": [ + { + "arch": "amd64", + "category": "libs", + "name": "libffi8", + "origin": "Debian", + "source": "apt", + "version": "3.4.4-1" + } + ], + "libfido2-1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libfido2-1", + "origin": "Debian", + "source": "apt", + "version": "1.12.0-2+b1" + } + ], + "libfontconfig1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libfontconfig1", + "origin": "Debian", + "source": "apt", + "version": "2.14.1-4" + } + ], + "libfreeipmi17": [ + { + "arch": "amd64", + "category": "libs", + "name": "libfreeipmi17", + "origin": "Debian", + "source": "apt", + "version": "1.6.10-1+b1" + } + ], + "libfreeradius3": [ + { + "arch": "amd64", + "category": "libs", + "name": "libfreeradius3", + "origin": "Debian", + "source": "apt", + "version": "3.2.1+dfsg-4+deb12u1" + } + ], + "libfreetype6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libfreetype6", + "origin": "Debian", + "source": "apt", + "version": "2.12.1+dfsg-5" + } + ], + "libfribidi0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libfribidi0", + "origin": "Debian", + "source": "apt", + "version": "1.0.8-2.1" + } + ], + "libfstrm0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libfstrm0", + "origin": "Debian", + "source": "apt", + "version": "0.6.1-1" + } + ], + "libfsverity0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libfsverity0", + "origin": "Debian", + "source": "apt", + "version": "1.5-1.1" + } + ], + "libfuse2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libfuse2", + "origin": "Debian", + "source": "apt", + "version": "2.9.9-6+b1" + } + ], + "libgav1-1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libgav1-1", + "origin": "Debian", + "source": "apt", + "version": "0.18.0-1+b1" + } + ], + "libgcc-s1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libgcc-s1", + "origin": "Debian", + "source": "apt", + "version": "12.2.0-14" + } + ], + "libgcrypt20": [ + { + "arch": "amd64", + "category": "libs", + "name": "libgcrypt20", + "origin": "Debian", + "source": "apt", + "version": "1.10.1-3" + } + ], + "libgd3": [ + { + "arch": "amd64", + "category": "libs", + "name": "libgd3", + "origin": "Debian", + "source": "apt", + "version": "2.3.3-9" + } + ], + "libgdbm-compat4": [ + { + "arch": "amd64", + "category": "libs", + "name": "libgdbm-compat4", + "origin": "Debian", + "source": "apt", + "version": "1.23-3" + } + ], + "libgdbm6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libgdbm6", + "origin": "Debian", + "source": "apt", + "version": "1.23-3" + } + ], + "libglib2.0-0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libglib2.0-0", + "origin": "Debian", + "source": "apt", + "version": "2.74.6-2" + } + ], + "libglib2.0-data": [ + { + "arch": "all", + "category": "libs", + "name": "libglib2.0-data", + "origin": "Debian", + "source": "apt", + "version": "2.74.6-2" + } + ], + "libgmp10": [ + { + "arch": "amd64", + "category": "libs", + "name": "libgmp10", + "origin": "Debian", + "source": "apt", + "version": "2:6.2.1+dfsg1-1.1" + } + ], + "libgnutls30": [ + { + "arch": "amd64", + "category": "libs", + "name": "libgnutls30", + "origin": "", + "source": "apt", + "version": "3.7.9-2" + } + ], + "libgomp1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libgomp1", + "origin": "Debian", + "source": "apt", + "version": "12.2.0-14" + } + ], + "libgpg-error0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libgpg-error0", + "origin": "Debian", + "source": "apt", + "version": "1.46-1" + } + ], + "libgpgme11": [ + { + "arch": "amd64", + "category": "libs", + "name": "libgpgme11", + "origin": "Debian", + "source": "apt", + "version": "1.18.0-3+b1" + } + ], + "libgpm2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libgpm2", + "origin": "Debian", + "source": "apt", + "version": "1.20.7-10+b1" + } + ], + "libgprofng0": [ + { + "arch": "amd64", + "category": "devel", + "name": "libgprofng0", + "origin": "Debian", + "source": "apt", + "version": "2.40-2" + } + ], + "libgraphite2-3": [ + { + "arch": "amd64", + "category": "libs", + "name": "libgraphite2-3", + "origin": "Debian", + "source": "apt", + "version": "1.3.14-1" + } + ], + "libgsf-1-114": [ + { + "arch": "amd64", + "category": "libs", + "name": "libgsf-1-114", + "origin": "Debian", + "source": "apt", + "version": "1.14.50-1" + } + ], + "libgsf-1-common": [ + { + "arch": "all", + "category": "libs", + "name": "libgsf-1-common", + "origin": "Debian", + "source": "apt", + "version": "1.14.50-1" + } + ], + "libgssapi-krb5-2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libgssapi-krb5-2", + "origin": "Debian", + "source": "apt", + "version": "1.20.1-2+deb12u1" + } + ], + "libgts-0.7-5": [ + { + "arch": "amd64", + "category": "libs", + "name": "libgts-0.7-5", + "origin": "Debian", + "source": "apt", + "version": "0.7.6+darcs121130-5+b1" + } + ], + "libgts-bin": [ + { + "arch": "amd64", + "category": "math", + "name": "libgts-bin", + "origin": "Debian", + "source": "apt", + "version": "0.7.6+darcs121130-5+b1" + } + ], + "libgvc6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libgvc6", + "origin": "Debian", + "source": "apt", + "version": "2.42.2-7+b3" + } + ], + "libgvpr2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libgvpr2", + "origin": "Debian", + "source": "apt", + "version": "2.42.2-7+b3" + } + ], + "libharfbuzz0b": [ + { + "arch": "amd64", + "category": "libs", + "name": "libharfbuzz0b", + "origin": "Debian", + "source": "apt", + "version": "6.0.0+dfsg-3" + } + ], + "libhavege2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libhavege2", + "origin": "Debian", + "source": "apt", + "version": "1.9.14-1+b1" + } + ], + "libheif1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libheif1", + "origin": "Debian", + "source": "apt", + "version": "1.15.1-1" + } + ], + "libhogweed6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libhogweed6", + "origin": "Debian", + "source": "apt", + "version": "3.8.1-2" + } + ], + "libice6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libice6", + "origin": "Debian", + "source": "apt", + "version": "2:1.0.10-1" + } + ], + "libicu72": [ + { + "arch": "amd64", + "category": "libs", + "name": "libicu72", + "origin": "Debian", + "source": "apt", + "version": "72.1-3" + } + ], + "libidn2-0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libidn2-0", + "origin": "Debian", + "source": "apt", + "version": "2.3.3-1+b1" + } + ], + "libinotifytools0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libinotifytools0", + "origin": "Debian", + "source": "apt", + "version": "3.22.6.0-4" + } + ], + "libip4tc2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libip4tc2", + "origin": "Debian", + "source": "apt", + "version": "1.8.9-2" + } + ], + "libipmiconsole2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libipmiconsole2", + "origin": "Debian", + "source": "apt", + "version": "1.6.10-1+b1" + } + ], + "libipmidetect0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libipmidetect0", + "origin": "Debian", + "source": "apt", + "version": "1.6.10-1+b1" + } + ], + "libjansson4": [ + { + "arch": "amd64", + "category": "libs", + "name": "libjansson4", + "origin": "Debian", + "source": "apt", + "version": "2.14-2" + } + ], + "libjbig0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libjbig0", + "origin": "Debian", + "source": "apt", + "version": "2.1-6.1" + } + ], + "libjemalloc2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libjemalloc2", + "origin": "Debian", + "source": "apt", + "version": "5.3.0-1" + } + ], + "libjpeg62-turbo": [ + { + "arch": "amd64", + "category": "libs", + "name": "libjpeg62-turbo", + "origin": "Debian", + "source": "apt", + "version": "1:2.1.5-2" + } + ], + "libjson-c5": [ + { + "arch": "amd64", + "category": "libs", + "name": "libjson-c5", + "origin": "Debian", + "source": "apt", + "version": "0.16-2" + } + ], + "libk5crypto3": [ + { + "arch": "amd64", + "category": "libs", + "name": "libk5crypto3", + "origin": "Debian", + "source": "apt", + "version": "1.20.1-2+deb12u1" + } + ], + "libkeyutils1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libkeyutils1", + "origin": "Debian", + "source": "apt", + "version": "1.6.3-2" + } + ], + "libklibc": [ + { + "arch": "amd64", + "category": "libs", + "name": "libklibc", + "origin": "Debian", + "source": "apt", + "version": "2.0.12-1" + } + ], + "libkmod2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libkmod2", + "origin": "Debian", + "source": "apt", + "version": "30+20221128-1" + } + ], + "libkrb5-3": [ + { + "arch": "amd64", + "category": "libs", + "name": "libkrb5-3", + "origin": "Debian", + "source": "apt", + "version": "1.20.1-2+deb12u1" + } + ], + "libkrb5support0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libkrb5support0", + "origin": "Debian", + "source": "apt", + "version": "1.20.1-2+deb12u1" + } + ], + "libksba8": [ + { + "arch": "amd64", + "category": "libs", + "name": "libksba8", + "origin": "Debian", + "source": "apt", + "version": "1.6.3-2" + } + ], + "liblab-gamut1": [ + { + "arch": "amd64", + "category": "libs", + "name": "liblab-gamut1", + "origin": "Debian", + "source": "apt", + "version": "2.42.2-7+b3" + } + ], + "liblcms2-2": [ + { + "arch": "amd64", + "category": "libs", + "name": "liblcms2-2", + "origin": "Debian", + "source": "apt", + "version": "2.14-2" + } + ], + "libldap-2.5-0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libldap-2.5-0", + "origin": "Debian", + "source": "apt", + "version": "2.5.13+dfsg-5" + } + ], + "libldap-common": [ + { + "arch": "all", + "category": "libs", + "name": "libldap-common", + "origin": "Debian", + "source": "apt", + "version": "2.5.13+dfsg-5" + } + ], + "libldb2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libldb2", + "origin": "Debian", + "source": "apt", + "version": "2:2.6.2+samba4.17.12+dfsg-0+deb12u1" + } + ], + "liblerc4": [ + { + "arch": "amd64", + "category": "libs", + "name": "liblerc4", + "origin": "Debian", + "source": "apt", + "version": "4.0.0+ds-2" + } + ], + "liblmdb0": [ + { + "arch": "amd64", + "category": "libs", + "name": "liblmdb0", + "origin": "Debian", + "source": "apt", + "version": "0.9.24-1" + } + ], + "liblocale-gettext-perl": [ + { + "arch": "amd64", + "category": "perl", + "name": "liblocale-gettext-perl", + "origin": "Debian", + "source": "apt", + "version": "1.07-5" + } + ], + "liblockfile-bin": [ + { + "arch": "amd64", + "category": "utils", + "name": "liblockfile-bin", + "origin": "Debian", + "source": "apt", + "version": "1.17-1+b1" + } + ], + "liblognorm5": [ + { + "arch": "amd64", + "category": "libs", + "name": "liblognorm5", + "origin": "Debian", + "source": "apt", + "version": "2.0.6-4" + } + ], + "libltdl7": [ + { + "arch": "amd64", + "category": "libs", + "name": "libltdl7", + "origin": "Debian", + "source": "apt", + "version": "2.4.7-5" + } + ], + "liblua5.3-0": [ + { + "arch": "amd64", + "category": "libs", + "name": "liblua5.3-0", + "origin": "Debian", + "source": "apt", + "version": "5.3.6-2" + } + ], + "liblz4-1": [ + { + "arch": "amd64", + "category": "libs", + "name": "liblz4-1", + "origin": "Debian", + "source": "apt", + "version": "1.9.4-1" + } + ], + "liblzma5": [ + { + "arch": "amd64", + "category": "libs", + "name": "liblzma5", + "origin": "Debian", + "source": "apt", + "version": "5.4.1-0.2" + } + ], + "libmagic-mgc": [ + { + "arch": "amd64", + "category": "libs", + "name": "libmagic-mgc", + "origin": "Debian", + "source": "apt", + "version": "1:5.44-3" + } + ], + "libmagic1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libmagic1", + "origin": "Debian", + "source": "apt", + "version": "1:5.44-3" + } + ], + "libmaxminddb0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libmaxminddb0", + "origin": "Debian", + "source": "apt", + "version": "1.7.1-1" + } + ], + "libmd0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libmd0", + "origin": "Debian", + "source": "apt", + "version": "1.0.4-2" + } + ], + "libmnl0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libmnl0", + "origin": "Debian", + "source": "apt", + "version": "1.0.4-3" + } + ], + "libmount1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libmount1", + "origin": "Debian", + "source": "apt", + "version": "2.38.1-5+b1" + } + ], + "libncurses6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libncurses6", + "origin": "Debian", + "source": "apt", + "version": "6.4-4" + } + ], + "libncursesw6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libncursesw6", + "origin": "Debian", + "source": "apt", + "version": "6.4-4" + } + ], + "libnettle8": [ + { + "arch": "amd64", + "category": "libs", + "name": "libnettle8", + "origin": "Debian", + "source": "apt", + "version": "3.8.1-2" + } + ], + "libnewt0.52": [ + { + "arch": "amd64", + "category": "libs", + "name": "libnewt0.52", + "origin": "Debian", + "source": "apt", + "version": "0.52.23-1+b1" + } + ], + "libnftables1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libnftables1", + "origin": "Debian", + "source": "apt", + "version": "1.0.6-2+deb12u2" + } + ], + "libnftnl11": [ + { + "arch": "amd64", + "category": "libs", + "name": "libnftnl11", + "origin": "Debian", + "source": "apt", + "version": "1.2.4-2" + } + ], + "libnghttp2-14": [ + { + "arch": "amd64", + "category": "libs", + "name": "libnghttp2-14", + "origin": "", + "source": "apt", + "version": "1.52.0-1" + } + ], + "libnl-3-200": [ + { + "arch": "amd64", + "category": "libs", + "name": "libnl-3-200", + "origin": "Debian", + "source": "apt", + "version": "3.7.0-0.2+b1" + } + ], + "libnl-genl-3-200": [ + { + "arch": "amd64", + "category": "libs", + "name": "libnl-genl-3-200", + "origin": "Debian", + "source": "apt", + "version": "3.7.0-0.2+b1" + } + ], + "libnpth0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libnpth0", + "origin": "Debian", + "source": "apt", + "version": "1.6-3" + } + ], + "libnsl2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libnsl2", + "origin": "Debian", + "source": "apt", + "version": "1.3.0-2" + } + ], + "libnspr4": [ + { + "arch": "amd64", + "category": "libs", + "name": "libnspr4", + "origin": "Debian", + "source": "apt", + "version": "2:4.35-1" + } + ], + "libnss-systemd": [ + { + "arch": "amd64", + "category": "admin", + "name": "libnss-systemd", + "origin": "", + "source": "apt", + "version": "252.17-1~deb12u1" + } + ], + "libnss3": [ + { + "arch": "amd64", + "category": "libs", + "name": "libnss3", + "origin": "Debian", + "source": "apt", + "version": "2:3.87.1-1" + } + ], + "libnuma1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libnuma1", + "origin": "Debian", + "source": "apt", + "version": "2.0.16-1" + } + ], + "libopenjp2-7": [ + { + "arch": "amd64", + "category": "libs", + "name": "libopenjp2-7", + "origin": "Debian", + "source": "apt", + "version": "2.5.0-2" + } + ], + "libp11-kit0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libp11-kit0", + "origin": "Debian", + "source": "apt", + "version": "0.24.1-2" + } + ], + "libpam-modules": [ + { + "arch": "amd64", + "category": "admin", + "name": "libpam-modules", + "origin": "Debian", + "source": "apt", + "version": "1.5.2-6+deb12u1" + } + ], + "libpam-modules-bin": [ + { + "arch": "amd64", + "category": "admin", + "name": "libpam-modules-bin", + "origin": "Debian", + "source": "apt", + "version": "1.5.2-6+deb12u1" + } + ], + "libpam-runtime": [ + { + "arch": "all", + "category": "admin", + "name": "libpam-runtime", + "origin": "Debian", + "source": "apt", + "version": "1.5.2-6+deb12u1" + } + ], + "libpam-systemd": [ + { + "arch": "amd64", + "category": "admin", + "name": "libpam-systemd", + "origin": "", + "source": "apt", + "version": "252.17-1~deb12u1" + } + ], + "libpam0g": [ + { + "arch": "amd64", + "category": "libs", + "name": "libpam0g", + "origin": "Debian", + "source": "apt", + "version": "1.5.2-6+deb12u1" + } + ], + "libpango-1.0-0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libpango-1.0-0", + "origin": "Debian", + "source": "apt", + "version": "1.50.12+ds-1" + } + ], + "libpango1.0-0": [ + { + "arch": "amd64", + "category": "oldlibs", + "name": "libpango1.0-0", + "origin": "Debian", + "source": "apt", + "version": "1.50.12+ds-1" + } + ], + "libpangocairo-1.0-0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libpangocairo-1.0-0", + "origin": "Debian", + "source": "apt", + "version": "1.50.12+ds-1" + } + ], + "libpangoft2-1.0-0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libpangoft2-1.0-0", + "origin": "Debian", + "source": "apt", + "version": "1.50.12+ds-1" + } + ], + "libpangoxft-1.0-0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libpangoxft-1.0-0", + "origin": "Debian", + "source": "apt", + "version": "1.50.12+ds-1" + } + ], + "libpathplan4": [ + { + "arch": "amd64", + "category": "libs", + "name": "libpathplan4", + "origin": "Debian", + "source": "apt", + "version": "2.42.2-7+b3" + } + ], + "libpcap0.8": [ + { + "arch": "amd64", + "category": "libs", + "name": "libpcap0.8", + "origin": "Debian", + "source": "apt", + "version": "1.10.3-1" + } + ], + "libpci3": [ + { + "arch": "amd64", + "category": "libs", + "name": "libpci3", + "origin": "Debian", + "source": "apt", + "version": "1:3.9.0-4" + } + ], + "libpcre2-8-0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libpcre2-8-0", + "origin": "Debian", + "source": "apt", + "version": "10.42-1" + } + ], + "libpcre3": [ + { + "arch": "amd64", + "category": "libs", + "name": "libpcre3", + "origin": "Debian", + "source": "apt", + "version": "2:8.39-15" + } + ], + "libperl5.36": [ + { + "arch": "amd64", + "category": "libs", + "name": "libperl5.36", + "origin": "", + "source": "apt", + "version": "5.36.0-7" + } + ], + "libpipeline1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libpipeline1", + "origin": "Debian", + "source": "apt", + "version": "1.5.7-1" + } + ], + "libpixman-1-0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libpixman-1-0", + "origin": "Debian", + "source": "apt", + "version": "0.42.2-1" + } + ], + "libpng16-16": [ + { + "arch": "amd64", + "category": "libs", + "name": "libpng16-16", + "origin": "Debian", + "source": "apt", + "version": "1.6.39-2" + } + ], + "libpoppler126": [ + { + "arch": "amd64", + "category": "libs", + "name": "libpoppler126", + "origin": "Debian", + "source": "apt", + "version": "22.12.0-2+b1" + } + ], + "libpopt0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libpopt0", + "origin": "Debian", + "source": "apt", + "version": "1.19+dfsg-1" + } + ], + "libpq5": [ + { + "arch": "amd64", + "category": "libs", + "name": "libpq5", + "origin": "Debian", + "source": "apt", + "version": "15.5-0+deb12u1" + } + ], + "libproc2-0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libproc2-0", + "origin": "Debian", + "source": "apt", + "version": "2:4.0.2-3" + } + ], + "libprotobuf-c1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libprotobuf-c1", + "origin": "Debian", + "source": "apt", + "version": "1.4.1-1+b1" + } + ], + "libpsl5": [ + { + "arch": "amd64", + "category": "libs", + "name": "libpsl5", + "origin": "Debian", + "source": "apt", + "version": "0.21.2-1" + } + ], + "libpython3-stdlib": [ + { + "arch": "amd64", + "category": "python", + "name": "libpython3-stdlib", + "origin": "Debian", + "source": "apt", + "version": "3.11.2-1+b1" + } + ], + "libpython3.11": [ + { + "arch": "amd64", + "category": "libs", + "name": "libpython3.11", + "origin": "Debian", + "source": "apt", + "version": "3.11.2-6" + } + ], + "libpython3.11-minimal": [ + { + "arch": "amd64", + "category": "python", + "name": "libpython3.11-minimal", + "origin": "Debian", + "source": "apt", + "version": "3.11.2-6" + } + ], + "libpython3.11-stdlib": [ + { + "arch": "amd64", + "category": "python", + "name": "libpython3.11-stdlib", + "origin": "Debian", + "source": "apt", + "version": "3.11.2-6" + } + ], + "librav1e0": [ + { + "arch": "amd64", + "category": "libs", + "name": "librav1e0", + "origin": "Debian", + "source": "apt", + "version": "0.5.1-6" + } + ], + "libreadline8": [ + { + "arch": "amd64", + "category": "libs", + "name": "libreadline8", + "origin": "Debian", + "source": "apt", + "version": "8.2-1.3" + } + ], + "librpm9": [ + { + "arch": "amd64", + "category": "libs", + "name": "librpm9", + "origin": "Debian", + "source": "apt", + "version": "4.18.0+dfsg-1+b1" + } + ], + "librpmbuild9": [ + { + "arch": "amd64", + "category": "libs", + "name": "librpmbuild9", + "origin": "Debian", + "source": "apt", + "version": "4.18.0+dfsg-1+b1" + } + ], + "librpmio9": [ + { + "arch": "amd64", + "category": "libs", + "name": "librpmio9", + "origin": "Debian", + "source": "apt", + "version": "4.18.0+dfsg-1+b1" + } + ], + "librpmsign9": [ + { + "arch": "amd64", + "category": "libs", + "name": "librpmsign9", + "origin": "Debian", + "source": "apt", + "version": "4.18.0+dfsg-1+b1" + } + ], + "librtmp1": [ + { + "arch": "amd64", + "category": "libs", + "name": "librtmp1", + "origin": "Debian", + "source": "apt", + "version": "2.4+20151223.gitfa8646d.1-2+b2" + } + ], + "libsasl2-2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libsasl2-2", + "origin": "Debian", + "source": "apt", + "version": "2.1.28+dfsg-10" + } + ], + "libsasl2-modules": [ + { + "arch": "amd64", + "category": "libs", + "name": "libsasl2-modules", + "origin": "Debian", + "source": "apt", + "version": "2.1.28+dfsg-10" + } + ], + "libsasl2-modules-db": [ + { + "arch": "amd64", + "category": "libs", + "name": "libsasl2-modules-db", + "origin": "Debian", + "source": "apt", + "version": "2.1.28+dfsg-10" + } + ], + "libseccomp2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libseccomp2", + "origin": "Debian", + "source": "apt", + "version": "2.5.4-1+b3" + } + ], + "libselinux1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libselinux1", + "origin": "Debian", + "source": "apt", + "version": "3.4-1+b6" + } + ], + "libsemanage-common": [ + { + "arch": "all", + "category": "libs", + "name": "libsemanage-common", + "origin": "Debian", + "source": "apt", + "version": "3.4-1" + } + ], + "libsemanage2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libsemanage2", + "origin": "Debian", + "source": "apt", + "version": "3.4-1+b5" + } + ], + "libsensors-config": [ + { + "arch": "all", + "category": "utils", + "name": "libsensors-config", + "origin": "Debian", + "source": "apt", + "version": "1:3.6.0-7.1" + } + ], + "libsensors5": [ + { + "arch": "amd64", + "category": "libs", + "name": "libsensors5", + "origin": "Debian", + "source": "apt", + "version": "1:3.6.0-7.1" + } + ], + "libsepol2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libsepol2", + "origin": "Debian", + "source": "apt", + "version": "3.4-2.1" + } + ], + "libslang2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libslang2", + "origin": "Debian", + "source": "apt", + "version": "2.3.3-3" + } + ], + "libsm6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libsm6", + "origin": "Debian", + "source": "apt", + "version": "2:1.2.3-1" + } + ], + "libsmartcols1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libsmartcols1", + "origin": "Debian", + "source": "apt", + "version": "2.38.1-5+b1" + } + ], + "libsmbclient": [ + { + "arch": "amd64", + "category": "libs", + "name": "libsmbclient", + "origin": "Debian", + "source": "apt", + "version": "2:4.17.12+dfsg-0+deb12u1" + } + ], + "libsodium23": [ + { + "arch": "amd64", + "category": "libs", + "name": "libsodium23", + "origin": "Debian", + "source": "apt", + "version": "1.0.18-1" + } + ], + "libsqlite3-0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libsqlite3-0", + "origin": "Debian", + "source": "apt", + "version": "3.40.1-2" + } + ], + "libss2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libss2", + "origin": "Debian", + "source": "apt", + "version": "1.47.0-2" + } + ], + "libssh2-1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libssh2-1", + "origin": "Debian", + "source": "apt", + "version": "1.10.0-3+b1" + } + ], + "libssl3": [ + { + "arch": "amd64", + "category": "libs", + "name": "libssl3", + "origin": "Debian", + "source": "apt", + "version": "3.0.11-1~deb12u2" + } + ], + "libstdc++6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libstdc++6", + "origin": "Debian", + "source": "apt", + "version": "12.2.0-14" + } + ], + "libsvtav1enc1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libsvtav1enc1", + "origin": "Debian", + "source": "apt", + "version": "1.4.1+dfsg-1" + } + ], + "libsystemd-shared": [ + { + "arch": "amd64", + "category": "libs", + "name": "libsystemd-shared", + "origin": "", + "source": "apt", + "version": "252.17-1~deb12u1" + } + ], + "libsystemd0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libsystemd0", + "origin": "", + "source": "apt", + "version": "252.17-1~deb12u1" + } + ], + "libtalloc2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libtalloc2", + "origin": "Debian", + "source": "apt", + "version": "2.4.0-f2" + } + ], + "libtasn1-6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libtasn1-6", + "origin": "Debian", + "source": "apt", + "version": "4.19.0-2" + } + ], + "libtdb1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libtdb1", + "origin": "Debian", + "source": "apt", + "version": "1.4.8-2" + } + ], + "libtevent0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libtevent0", + "origin": "Debian", + "source": "apt", + "version": "0.14.1-1" + } + ], + "libtext-charwidth-perl": [ + { + "arch": "amd64", + "category": "perl", + "name": "libtext-charwidth-perl", + "origin": "Debian", + "source": "apt", + "version": "0.04-11" + } + ], + "libtext-iconv-perl": [ + { + "arch": "amd64", + "category": "perl", + "name": "libtext-iconv-perl", + "origin": "Debian", + "source": "apt", + "version": "1.7-8" + } + ], + "libtext-wrapi18n-perl": [ + { + "arch": "all", + "category": "perl", + "name": "libtext-wrapi18n-perl", + "origin": "Debian", + "source": "apt", + "version": "0.06-10" + } + ], + "libthai-data": [ + { + "arch": "all", + "category": "libs", + "name": "libthai-data", + "origin": "Debian", + "source": "apt", + "version": "0.1.29-1" + } + ], + "libthai0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libthai0", + "origin": "Debian", + "source": "apt", + "version": "0.1.29-1" + } + ], + "libtiff6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libtiff6", + "origin": "Debian", + "source": "apt", + "version": "4.5.0-6+deb12u1" + } + ], + "libtinfo6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libtinfo6", + "origin": "Debian", + "source": "apt", + "version": "6.4-4" + } + ], + "libtirpc-common": [ + { + "arch": "all", + "category": "libs", + "name": "libtirpc-common", + "origin": "Debian", + "source": "apt", + "version": "1.3.3+ds-1" + } + ], + "libtirpc3": [ + { + "arch": "amd64", + "category": "libs", + "name": "libtirpc3", + "origin": "Debian", + "source": "apt", + "version": "1.3.3+ds-1" + } + ], + "libuchardet0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libuchardet0", + "origin": "Debian", + "source": "apt", + "version": "0.0.7-1" + } + ], + "libudev1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libudev1", + "origin": "", + "source": "apt", + "version": "252.17-1~deb12u1" + } + ], + "libunistring2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libunistring2", + "origin": "Debian", + "source": "apt", + "version": "1.0-2" + } + ], + "liburing2": [ + { + "arch": "amd64", + "category": "libs", + "name": "liburing2", + "origin": "Debian", + "source": "apt", + "version": "2.3-3" + } + ], + "libusb-1.0-0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libusb-1.0-0", + "origin": "Debian", + "source": "apt", + "version": "2:1.0.26-1" + } + ], + "libuuid1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libuuid1", + "origin": "Debian", + "source": "apt", + "version": "2.38.1-5+b1" + } + ], + "libuv1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libuv1", + "origin": "Debian", + "source": "apt", + "version": "1.44.2-1" + } + ], + "libwbclient0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libwbclient0", + "origin": "Debian", + "source": "apt", + "version": "2:4.17.12+dfsg-0+deb12u1" + } + ], + "libwebp7": [ + { + "arch": "amd64", + "category": "libs", + "name": "libwebp7", + "origin": "Debian", + "source": "apt", + "version": "1.2.4-0.2+deb12u1" + } + ], + "libwrap0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libwrap0", + "origin": "Debian", + "source": "apt", + "version": "7.6.q-32" + } + ], + "libx11-6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libx11-6", + "origin": "Debian", + "source": "apt", + "version": "2:1.8.4-2+deb12u2" + } + ], + "libx11-data": [ + { + "arch": "all", + "category": "x11", + "name": "libx11-data", + "origin": "Debian", + "source": "apt", + "version": "2:1.8.4-2+deb12u2" + } + ], + "libx265-199": [ + { + "arch": "amd64", + "category": "libs", + "name": "libx265-199", + "origin": "Debian", + "source": "apt", + "version": "3.5-2+b1" + } + ], + "libxau6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libxau6", + "origin": "Debian", + "source": "apt", + "version": "1:1.0.9-1" + } + ], + "libxaw7": [ + { + "arch": "amd64", + "category": "libs", + "name": "libxaw7", + "origin": "Debian", + "source": "apt", + "version": "2:1.0.14-1" + } + ], + "libxcb-render0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libxcb-render0", + "origin": "Debian", + "source": "apt", + "version": "1.15-1" + } + ], + "libxcb-shm0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libxcb-shm0", + "origin": "Debian", + "source": "apt", + "version": "1.15-1" + } + ], + "libxcb1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libxcb1", + "origin": "Debian", + "source": "apt", + "version": "1.15-1" + } + ], + "libxdmcp6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libxdmcp6", + "origin": "Debian", + "source": "apt", + "version": "1:1.1.2-3" + } + ], + "libxext6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libxext6", + "origin": "Debian", + "source": "apt", + "version": "2:1.3.4-1+b1" + } + ], + "libxft2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libxft2", + "origin": "Debian", + "source": "apt", + "version": "2.3.6-1" + } + ], + "libxml2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libxml2", + "origin": "Debian", + "source": "apt", + "version": "2.9.14+dfsg-1.3~deb12u1" + } + ], + "libxmu6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libxmu6", + "origin": "Debian", + "source": "apt", + "version": "2:1.1.3-3" + } + ], + "libxmuu1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libxmuu1", + "origin": "Debian", + "source": "apt", + "version": "2:1.1.3-3" + } + ], + "libxpm4": [ + { + "arch": "amd64", + "category": "libs", + "name": "libxpm4", + "origin": "Debian", + "source": "apt", + "version": "1:3.5.12-1.1+deb12u1" + } + ], + "libxrender1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libxrender1", + "origin": "Debian", + "source": "apt", + "version": "1:0.9.10-1.1" + } + ], + "libxslt1.1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libxslt1.1", + "origin": "Debian", + "source": "apt", + "version": "1.1.35-1" + } + ], + "libxt6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libxt6", + "origin": "Debian", + "source": "apt", + "version": "1:1.2.1-1.1" + } + ], + "libxtables12": [ + { + "arch": "amd64", + "category": "libs", + "name": "libxtables12", + "origin": "Debian", + "source": "apt", + "version": "1.8.9-2" + } + ], + "libxxhash0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libxxhash0", + "origin": "Debian", + "source": "apt", + "version": "0.8.1-1" + } + ], + "libyuv0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libyuv0", + "origin": "Debian", + "source": "apt", + "version": "0.0~git20230123.b2528b0-1" + } + ], + "libzstd1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libzstd1", + "origin": "Debian", + "source": "apt", + "version": "1.5.4+dfsg2-5" + } + ], + "linux-base": [ + { + "arch": "all", + "category": "kernel", + "name": "linux-base", + "origin": "Debian", + "source": "apt", + "version": "4.9" + } + ], + "linux-image-6.1.0-13-amd64": [ + { + "arch": "amd64", + "category": "kernel", + "name": "linux-image-6.1.0-13-amd64", + "origin": "Debian", + "source": "apt", + "version": "6.1.55-1" + } + ], + "linux-image-amd64": [ + { + "arch": "amd64", + "category": "kernel", + "name": "linux-image-amd64", + "origin": "", + "source": "apt", + "version": "6.1.55-1" + } + ], + "locales": [ + { + "arch": "all", + "category": "localization", + "name": "locales", + "origin": "Debian", + "source": "apt", + "version": "2.36-9+deb12u3" + } + ], + "login": [ + { + "arch": "amd64", + "category": "admin", + "name": "login", + "origin": "Debian", + "source": "apt", + "version": "1:4.13+dfsg1-1+b1" + } + ], + "logrotate": [ + { + "arch": "amd64", + "category": "admin", + "name": "logrotate", + "origin": "Debian", + "source": "apt", + "version": "3.21.0-1" + } + ], + "logsave": [ + { + "arch": "amd64", + "category": "admin", + "name": "logsave", + "origin": "Debian", + "source": "apt", + "version": "1.47.0-2" + } + ], + "lsb-release": [ + { + "arch": "all", + "category": "misc", + "name": "lsb-release", + "origin": "Debian", + "source": "apt", + "version": "12.0-1" + } + ], + "lsof": [ + { + "arch": "amd64", + "category": "utils", + "name": "lsof", + "origin": "Debian", + "source": "apt", + "version": "4.95.0-1" + } + ], + "mailcap": [ + { + "arch": "all", + "category": "utils", + "name": "mailcap", + "origin": "Debian", + "source": "apt", + "version": "3.70+nmu1" + } + ], + "man-db": [ + { + "arch": "amd64", + "category": "doc", + "name": "man-db", + "origin": "Debian", + "source": "apt", + "version": "2.11.2-2" + } + ], + "manpages": [ + { + "arch": "all", + "category": "doc", + "name": "manpages", + "origin": "Debian", + "source": "apt", + "version": "6.03-2" + } + ], + "mawk": [ + { + "arch": "amd64", + "category": "interpreters", + "name": "mawk", + "origin": "Debian", + "source": "apt", + "version": "1.3.4.20200120-3.1" + } + ], + "media-types": [ + { + "arch": "all", + "category": "net", + "name": "media-types", + "origin": "Debian", + "source": "apt", + "version": "10.0.0" + } + ], + "memcached": [ + { + "arch": "amd64", + "category": "web", + "name": "memcached", + "origin": "Debian", + "source": "apt", + "version": "1.6.18-1" + } + ], + "mime-support": [ + { + "arch": "all", + "category": "net", + "name": "mime-support", + "origin": "Debian", + "source": "apt", + "version": "3.66" + } + ], + "mlocate": [ + { + "arch": "all", + "category": "utils", + "name": "mlocate", + "origin": "Debian", + "source": "apt", + "version": "1.1.18-1" + } + ], + "mount": [ + { + "arch": "amd64", + "category": "admin", + "name": "mount", + "origin": "Debian", + "source": "apt", + "version": "2.38.1-5+b1" + } + ], + "nano": [ + { + "arch": "amd64", + "category": "editors", + "name": "nano", + "origin": "Debian", + "source": "apt", + "version": "7.2-1" + } + ], + "ncurses-base": [ + { + "arch": "all", + "category": "misc", + "name": "ncurses-base", + "origin": "Debian", + "source": "apt", + "version": "6.4-4" + } + ], + "ncurses-bin": [ + { + "arch": "amd64", + "category": "utils", + "name": "ncurses-bin", + "origin": "Debian", + "source": "apt", + "version": "6.4-4" + } + ], + "ncurses-term": [ + { + "arch": "all", + "category": "misc", + "name": "ncurses-term", + "origin": "Debian", + "source": "apt", + "version": "6.4-4" + } + ], + "net-tools": [ + { + "arch": "amd64", + "category": "net", + "name": "net-tools", + "origin": "Debian", + "source": "apt", + "version": "2.10-0.1" + } + ], + "netbase": [ + { + "arch": "all", + "category": "admin", + "name": "netbase", + "origin": "Debian", + "source": "apt", + "version": "6.4" + } + ], + "netcat-traditional": [ + { + "arch": "amd64", + "category": "net", + "name": "netcat-traditional", + "origin": "Debian", + "source": "apt", + "version": "1.10-47" + } + ], + "nftables": [ + { + "arch": "amd64", + "category": "net", + "name": "nftables", + "origin": "Debian", + "source": "apt", + "version": "1.0.6-2+deb12u2" + } + ], + "openssh-client": [ + { + "arch": "amd64", + "category": "net", + "name": "openssh-client", + "origin": "Debian", + "source": "apt", + "version": "1:9.2p1-2+deb12u1" + } + ], + "openssh-server": [ + { + "arch": "amd64", + "category": "net", + "name": "openssh-server", + "origin": "Debian", + "source": "apt", + "version": "1:9.2p1-2+deb12u1" + } + ], + "openssh-sftp-server": [ + { + "arch": "amd64", + "category": "net", + "name": "openssh-sftp-server", + "origin": "Debian", + "source": "apt", + "version": "1:9.2p1-2+deb12u1" + } + ], + "openssl": [ + { + "arch": "amd64", + "category": "utils", + "name": "openssl", + "origin": "Debian", + "source": "apt", + "version": "3.0.11-1~deb12u2" + } + ], + "os-prober": [ + { + "arch": "amd64", + "category": "utils", + "name": "os-prober", + "origin": "Debian", + "source": "apt", + "version": "1.81" + } + ], + "passwd": [ + { + "arch": "amd64", + "category": "admin", + "name": "passwd", + "origin": "Debian", + "source": "apt", + "version": "1:4.13+dfsg1-1+b1" + } + ], + "patch": [ + { + "arch": "amd64", + "category": "vcs", + "name": "patch", + "origin": "Debian", + "source": "apt", + "version": "2.7.6-7" + } + ], + "pci.ids": [ + { + "arch": "all", + "category": "admin", + "name": "pci.ids", + "origin": "Debian", + "source": "apt", + "version": "0.0~2023.04.11-1" + } + ], + "pciutils": [ + { + "arch": "amd64", + "category": "admin", + "name": "pciutils", + "origin": "Debian", + "source": "apt", + "version": "1:3.9.0-4" + } + ], + "perl": [ + { + "arch": "amd64", + "category": "perl", + "name": "perl", + "origin": "", + "source": "apt", + "version": "5.36.0-7" + } + ], + "perl-base": [ + { + "arch": "amd64", + "category": "perl", + "name": "perl-base", + "origin": "", + "source": "apt", + "version": "5.36.0-7" + } + ], + "perl-modules-5.36": [ + { + "arch": "all", + "category": "libs", + "name": "perl-modules-5.36", + "origin": "", + "source": "apt", + "version": "5.36.0-7" + } + ], + "php": [ + { + "arch": "all", + "category": "php", + "name": "php", + "origin": "Debian", + "source": "apt", + "version": "2:8.2+93" + } + ], + "php-cgi": [ + { + "arch": "all", + "category": "php", + "name": "php-cgi", + "origin": "Debian", + "source": "apt", + "version": "2:8.2+93" + } + ], + "php-cli": [ + { + "arch": "all", + "category": "php", + "name": "php-cli", + "origin": "Debian", + "source": "apt", + "version": "2:8.2+93" + } + ], + "php-common": [ + { + "arch": "all", + "category": "php", + "name": "php-common", + "origin": "Debian", + "source": "apt", + "version": "2:93" + } + ], + "php-gd": [ + { + "arch": "all", + "category": "php", + "name": "php-gd", + "origin": "Debian", + "source": "apt", + "version": "2:8.2+93" + } + ], + "php-pear": [ + { + "arch": "all", + "category": "php", + "name": "php-pear", + "origin": "Debian", + "source": "apt", + "version": "1:1.10.13+submodules+notgz+2022032202-2" + } + ], + "php-sqlite3": [ + { + "arch": "all", + "category": "php", + "name": "php-sqlite3", + "origin": "Debian", + "source": "apt", + "version": "2:8.2+93" + } + ], + "php-xml": [ + { + "arch": "all", + "category": "php", + "name": "php-xml", + "origin": "Debian", + "source": "apt", + "version": "2:8.2+93" + } + ], + "php8.2": [ + { + "arch": "all", + "category": "php", + "name": "php8.2", + "origin": "Debian", + "source": "apt", + "version": "8.2.7-1~deb12u1" + } + ], + "php8.2-cgi": [ + { + "arch": "amd64", + "category": "php", + "name": "php8.2-cgi", + "origin": "Debian", + "source": "apt", + "version": "8.2.7-1~deb12u1" + } + ], + "php8.2-cli": [ + { + "arch": "amd64", + "category": "php", + "name": "php8.2-cli", + "origin": "Debian", + "source": "apt", + "version": "8.2.7-1~deb12u1" + } + ], + "php8.2-common": [ + { + "arch": "amd64", + "category": "php", + "name": "php8.2-common", + "origin": "Debian", + "source": "apt", + "version": "8.2.7-1~deb12u1" + } + ], + "php8.2-gd": [ + { + "arch": "amd64", + "category": "php", + "name": "php8.2-gd", + "origin": "Debian", + "source": "apt", + "version": "8.2.7-1~deb12u1" + } + ], + "php8.2-opcache": [ + { + "arch": "amd64", + "category": "php", + "name": "php8.2-opcache", + "origin": "Debian", + "source": "apt", + "version": "8.2.7-1~deb12u1" + } + ], + "php8.2-readline": [ + { + "arch": "amd64", + "category": "php", + "name": "php8.2-readline", + "origin": "Debian", + "source": "apt", + "version": "8.2.7-1~deb12u1" + } + ], + "php8.2-sqlite3": [ + { + "arch": "amd64", + "category": "php", + "name": "php8.2-sqlite3", + "origin": "Debian", + "source": "apt", + "version": "8.2.7-1~deb12u1" + } + ], + "php8.2-xml": [ + { + "arch": "amd64", + "category": "php", + "name": "php8.2-xml", + "origin": "Debian", + "source": "apt", + "version": "8.2.7-1~deb12u1" + } + ], + "pinentry-curses": [ + { + "arch": "amd64", + "category": "utils", + "name": "pinentry-curses", + "origin": "Debian", + "source": "apt", + "version": "1.2.1-1" + } + ], + "plocate": [ + { + "arch": "amd64", + "category": "utils", + "name": "plocate", + "origin": "Debian", + "source": "apt", + "version": "1.1.18-1" + } + ], + "poppler-data": [ + { + "arch": "all", + "category": "misc", + "name": "poppler-data", + "origin": "Debian", + "source": "apt", + "version": "0.4.12-1" + } + ], + "poppler-utils": [ + { + "arch": "amd64", + "category": "utils", + "name": "poppler-utils", + "origin": "Debian", + "source": "apt", + "version": "22.12.0-2+b1" + } + ], + "postfix": [ + { + "arch": "amd64", + "category": "mail", + "name": "postfix", + "origin": "Debian", + "source": "apt", + "version": "3.7.6-0+deb12u2" + } + ], + "postfix-cdb": [ + { + "arch": "amd64", + "category": "mail", + "name": "postfix-cdb", + "origin": "Debian", + "source": "apt", + "version": "3.7.6-0+deb12u2" + } + ], + "procps": [ + { + "arch": "amd64", + "category": "admin", + "name": "procps", + "origin": "Debian", + "source": "apt", + "version": "2:4.0.2-3" + } + ], + "psmisc": [ + { + "arch": "amd64", + "category": "admin", + "name": "psmisc", + "origin": "Debian", + "source": "apt", + "version": "23.6-1" + } + ], + "publicsuffix": [ + { + "arch": "all", + "category": "net", + "name": "publicsuffix", + "origin": "Debian", + "source": "apt", + "version": "20230209.2326-1" + } + ], + "python-apt-common": [ + { + "arch": "all", + "category": "python", + "name": "python-apt-common", + "origin": "Debian", + "source": "apt", + "version": "2.6.0" + } + ], + "python3": [ + { + "arch": "amd64", + "category": "python", + "name": "python3", + "origin": "Debian", + "source": "apt", + "version": "3.11.2-1+b1" + } + ], + "python3-apt": [ + { + "arch": "amd64", + "category": "python", + "name": "python3-apt", + "origin": "Debian", + "source": "apt", + "version": "2.6.0" + } + ], + "python3-certifi": [ + { + "arch": "all", + "category": "python", + "name": "python3-certifi", + "origin": "Debian", + "source": "apt", + "version": "2022.9.24-1" + } + ], + "python3-chardet": [ + { + "arch": "all", + "category": "python", + "name": "python3-chardet", + "origin": "Debian", + "source": "apt", + "version": "5.1.0+dfsg-2" + } + ], + "python3-charset-normalizer": [ + { + "arch": "all", + "category": "python", + "name": "python3-charset-normalizer", + "origin": "Debian", + "source": "apt", + "version": "3.0.1-2" + } + ], + "python3-debconf": [ + { + "arch": "all", + "category": "python", + "name": "python3-debconf", + "origin": "Debian", + "source": "apt", + "version": "1.5.82" + } + ], + "python3-debian": [ + { + "arch": "all", + "category": "python", + "name": "python3-debian", + "origin": "Debian", + "source": "apt", + "version": "0.1.49" + } + ], + "python3-debianbts": [ + { + "arch": "all", + "category": "python", + "name": "python3-debianbts", + "origin": "Debian", + "source": "apt", + "version": "4.0.1" + } + ], + "python3-gpg": [ + { + "arch": "amd64", + "category": "python", + "name": "python3-gpg", + "origin": "Debian", + "source": "apt", + "version": "1.18.0-3+b1" + } + ], + "python3-httplib2": [ + { + "arch": "all", + "category": "python", + "name": "python3-httplib2", + "origin": "Debian", + "source": "apt", + "version": "0.20.4-3" + } + ], + "python3-idna": [ + { + "arch": "all", + "category": "python", + "name": "python3-idna", + "origin": "Debian", + "source": "apt", + "version": "3.3-1" + } + ], + "python3-ldb": [ + { + "arch": "amd64", + "category": "python", + "name": "python3-ldb", + "origin": "Debian", + "source": "apt", + "version": "2:2.6.2+samba4.17.12+dfsg-0+deb12u1" + } + ], + "python3-minimal": [ + { + "arch": "amd64", + "category": "python", + "name": "python3-minimal", + "origin": "Debian", + "source": "apt", + "version": "3.11.2-1+b1" + } + ], + "python3-pkg-resources": [ + { + "arch": "all", + "category": "python", + "name": "python3-pkg-resources", + "origin": "Debian", + "source": "apt", + "version": "66.1.1-1" + } + ], + "python3-pycurl": [ + { + "arch": "amd64", + "category": "python", + "name": "python3-pycurl", + "origin": "Debian", + "source": "apt", + "version": "7.45.2-3" + } + ], + "python3-pyparsing": [ + { + "arch": "all", + "category": "python", + "name": "python3-pyparsing", + "origin": "Debian", + "source": "apt", + "version": "3.0.9-1" + } + ], + "python3-pysimplesoap": [ + { + "arch": "all", + "category": "python", + "name": "python3-pysimplesoap", + "origin": "Debian", + "source": "apt", + "version": "1.16.2-5" + } + ], + "python3-reportbug": [ + { + "arch": "all", + "category": "python", + "name": "python3-reportbug", + "origin": "Debian", + "source": "apt", + "version": "12.0.0" + } + ], + "python3-requests": [ + { + "arch": "all", + "category": "python", + "name": "python3-requests", + "origin": "Debian", + "source": "apt", + "version": "2.28.1+dfsg-1" + } + ], + "python3-samba": [ + { + "arch": "amd64", + "category": "python", + "name": "python3-samba", + "origin": "Debian", + "source": "apt", + "version": "2:4.17.12+dfsg-0+deb12u1" + } + ], + "python3-six": [ + { + "arch": "all", + "category": "python", + "name": "python3-six", + "origin": "Debian", + "source": "apt", + "version": "1.16.0-4" + } + ], + "python3-talloc": [ + { + "arch": "amd64", + "category": "python", + "name": "python3-talloc", + "origin": "Debian", + "source": "apt", + "version": "2.4.0-f2" + } + ], + "python3-tdb": [ + { + "arch": "amd64", + "category": "python", + "name": "python3-tdb", + "origin": "Debian", + "source": "apt", + "version": "1.4.8-2" + } + ], + "python3-urllib3": [ + { + "arch": "all", + "category": "python", + "name": "python3-urllib3", + "origin": "Debian", + "source": "apt", + "version": "1.26.12-1" + } + ], + "python3.11": [ + { + "arch": "amd64", + "category": "python", + "name": "python3.11", + "origin": "Debian", + "source": "apt", + "version": "3.11.2-6" + } + ], + "python3.11-minimal": [ + { + "arch": "amd64", + "category": "python", + "name": "python3.11-minimal", + "origin": "Debian", + "source": "apt", + "version": "3.11.2-6" + } + ], + "qemu-guest-agent": [ + { + "arch": "amd64", + "category": "otherosfs", + "name": "qemu-guest-agent", + "origin": "", + "source": "apt", + "version": "1:7.2+dfsg-7+deb12u2" + } + ], + "readline-common": [ + { + "arch": "all", + "category": "utils", + "name": "readline-common", + "origin": "Debian", + "source": "apt", + "version": "8.2-1.3" + } + ], + "reportbug": [ + { + "arch": "all", + "category": "utils", + "name": "reportbug", + "origin": "Debian", + "source": "apt", + "version": "12.0.0" + } + ], + "resolvconf": [ + { + "arch": "all", + "category": "net", + "name": "resolvconf", + "origin": "Debian", + "source": "apt", + "version": "1.91+nmu1" + } + ], + "rpcbind": [ + { + "arch": "amd64", + "category": "net", + "name": "rpcbind", + "origin": "Debian", + "source": "apt", + "version": "1.2.6-6+b1" + } + ], + "rpm": [ + { + "arch": "amd64", + "category": "admin", + "name": "rpm", + "origin": "Debian", + "source": "apt", + "version": "4.18.0+dfsg-1+b1" + } + ], + "rpm-common": [ + { + "arch": "amd64", + "category": "admin", + "name": "rpm-common", + "origin": "Debian", + "source": "apt", + "version": "4.18.0+dfsg-1+b1" + } + ], + "rpm2cpio": [ + { + "arch": "amd64", + "category": "admin", + "name": "rpm2cpio", + "origin": "Debian", + "source": "apt", + "version": "4.18.0+dfsg-1+b1" + } + ], + "rsync": [ + { + "arch": "amd64", + "category": "net", + "name": "rsync", + "origin": "Debian", + "source": "apt", + "version": "3.2.7-1" + } + ], + "rsyslog": [ + { + "arch": "amd64", + "category": "admin", + "name": "rsyslog", + "origin": "Debian", + "source": "apt", + "version": "8.2302.0-1" + } + ], + "runit-helper": [ + { + "arch": "all", + "category": "admin", + "name": "runit-helper", + "origin": "Debian", + "source": "apt", + "version": "2.15.2" + } + ], + "samba-common": [ + { + "arch": "all", + "category": "net", + "name": "samba-common", + "origin": "Debian", + "source": "apt", + "version": "2:4.17.12+dfsg-0+deb12u1" + } + ], + "samba-common-bin": [ + { + "arch": "amd64", + "category": "net", + "name": "samba-common-bin", + "origin": "Debian", + "source": "apt", + "version": "2:4.17.12+dfsg-0+deb12u1" + } + ], + "samba-dsdb-modules": [ + { + "arch": "amd64", + "category": "libs", + "name": "samba-dsdb-modules", + "origin": "Debian", + "source": "apt", + "version": "2:4.17.12+dfsg-0+deb12u1" + } + ], + "samba-libs": [ + { + "arch": "amd64", + "category": "libs", + "name": "samba-libs", + "origin": "Debian", + "source": "apt", + "version": "2:4.17.12+dfsg-0+deb12u1" + } + ], + "sed": [ + { + "arch": "amd64", + "category": "utils", + "name": "sed", + "origin": "Debian", + "source": "apt", + "version": "4.9-1" + } + ], + "sensible-utils": [ + { + "arch": "all", + "category": "utils", + "name": "sensible-utils", + "origin": "Debian", + "source": "apt", + "version": "0.0.17+nmu1" + } + ], + "shared-mime-info": [ + { + "arch": "amd64", + "category": "misc", + "name": "shared-mime-info", + "origin": "Debian", + "source": "apt", + "version": "2.2-1" + } + ], + "smbclient": [ + { + "arch": "amd64", + "category": "net", + "name": "smbclient", + "origin": "Debian", + "source": "apt", + "version": "2:4.17.12+dfsg-0+deb12u1" + } + ], + "ssl-cert": [ + { + "arch": "all", + "category": "utils", + "name": "ssl-cert", + "origin": "Debian", + "source": "apt", + "version": "1.1.2" + } + ], + "sudo": [ + { + "arch": "amd64", + "category": "admin", + "name": "sudo", + "origin": "Debian", + "source": "apt", + "version": "1.9.13p3-1+deb12u1" + } + ], + "sysstat": [ + { + "arch": "amd64", + "category": "admin", + "name": "sysstat", + "origin": "Debian", + "source": "apt", + "version": "12.6.1-1" + } + ], + "systemd": [ + { + "arch": "amd64", + "category": "admin", + "name": "systemd", + "origin": "", + "source": "apt", + "version": "252.17-1~deb12u1" + } + ], + "systemd-sysv": [ + { + "arch": "amd64", + "category": "admin", + "name": "systemd-sysv", + "origin": "", + "source": "apt", + "version": "252.17-1~deb12u1" + } + ], + "systemd-timesyncd": [ + { + "arch": "amd64", + "category": "admin", + "name": "systemd-timesyncd", + "origin": "", + "source": "apt", + "version": "252.17-1~deb12u1" + } + ], + "sysvinit-utils": [ + { + "arch": "amd64", + "category": "admin", + "name": "sysvinit-utils", + "origin": "Debian", + "source": "apt", + "version": "3.06-4" + } + ], + "tar": [ + { + "arch": "amd64", + "category": "utils", + "name": "tar", + "origin": "Debian", + "source": "apt", + "version": "1.34+dfsg-1.2" + } + ], + "task-english": [ + { + "arch": "all", + "category": "tasks", + "name": "task-english", + "origin": "Debian", + "source": "apt", + "version": "3.73" + } + ], + "tasksel": [ + { + "arch": "all", + "category": "admin", + "name": "tasksel", + "origin": "Debian", + "source": "apt", + "version": "3.73" + } + ], + "tasksel-data": [ + { + "arch": "all", + "category": "admin", + "name": "tasksel-data", + "origin": "Debian", + "source": "apt", + "version": "3.73" + } + ], + "time": [ + { + "arch": "amd64", + "category": "utils", + "name": "time", + "origin": "Debian", + "source": "apt", + "version": "1.9-0.2" + } + ], + "traceroute": [ + { + "arch": "amd64", + "category": "net", + "name": "traceroute", + "origin": "Debian", + "source": "apt", + "version": "1:2.1.2-1" + } + ], + "tzdata": [ + { + "arch": "all", + "category": "localization", + "name": "tzdata", + "origin": "", + "source": "apt", + "version": "2023c-5" + } + ], + "ucf": [ + { + "arch": "all", + "category": "utils", + "name": "ucf", + "origin": "Debian", + "source": "apt", + "version": "3.0043+nmu1" + } + ], + "udev": [ + { + "arch": "amd64", + "category": "admin", + "name": "udev", + "origin": "", + "source": "apt", + "version": "252.17-1~deb12u1" + } + ], + "unzip": [ + { + "arch": "amd64", + "category": "utils", + "name": "unzip", + "origin": "Debian", + "source": "apt", + "version": "6.0-28" + } + ], + "update-inetd": [ + { + "arch": "all", + "category": "admin", + "name": "update-inetd", + "origin": "Debian", + "source": "apt", + "version": "4.53" + } + ], + "usr-is-merged": [ + { + "arch": "all", + "category": "oldlibs", + "name": "usr-is-merged", + "origin": "Debian", + "source": "apt", + "version": "35" + } + ], + "util-linux": [ + { + "arch": "amd64", + "category": "utils", + "name": "util-linux", + "origin": "Debian", + "source": "apt", + "version": "2.38.1-5+b1" + } + ], + "util-linux-extra": [ + { + "arch": "amd64", + "category": "utils", + "name": "util-linux-extra", + "origin": "Debian", + "source": "apt", + "version": "2.38.1-5+b1" + } + ], + "util-linux-locales": [ + { + "arch": "all", + "category": "localization", + "name": "util-linux-locales", + "origin": "Debian", + "source": "apt", + "version": "2.38.1-5" + } + ], + "vim": [ + { + "arch": "amd64", + "category": "editors", + "name": "vim", + "origin": "Debian", + "source": "apt", + "version": "2:9.0.1378-2" + } + ], + "vim-common": [ + { + "arch": "all", + "category": "editors", + "name": "vim-common", + "origin": "Debian", + "source": "apt", + "version": "2:9.0.1378-2" + } + ], + "vim-runtime": [ + { + "arch": "all", + "category": "editors", + "name": "vim-runtime", + "origin": "Debian", + "source": "apt", + "version": "2:9.0.1378-2" + } + ], + "vim-tiny": [ + { + "arch": "amd64", + "category": "editors", + "name": "vim-tiny", + "origin": "Debian", + "source": "apt", + "version": "2:9.0.1378-2" + } + ], + "wamerican": [ + { + "arch": "all", + "category": "text", + "name": "wamerican", + "origin": "Debian", + "source": "apt", + "version": "2020.12.07-2" + } + ], + "wget": [ + { + "arch": "amd64", + "category": "web", + "name": "wget", + "origin": "Debian", + "source": "apt", + "version": "1.21.3-1+b2" + } + ], + "whiptail": [ + { + "arch": "amd64", + "category": "utils", + "name": "whiptail", + "origin": "Debian", + "source": "apt", + "version": "0.52.23-1+b1" + } + ], + "x11-common": [ + { + "arch": "all", + "category": "x11", + "name": "x11-common", + "origin": "Debian", + "source": "apt", + "version": "1:7.7+23" + } + ], + "xauth": [ + { + "arch": "amd64", + "category": "x11", + "name": "xauth", + "origin": "Debian", + "source": "apt", + "version": "1:1.1.2-1" + } + ], + "xdg-user-dirs": [ + { + "arch": "amd64", + "category": "utils", + "name": "xdg-user-dirs", + "origin": "Debian", + "source": "apt", + "version": "0.18-1" + } + ], + "xinetd": [ + { + "arch": "amd64", + "category": "net", + "name": "xinetd", + "origin": "Debian", + "source": "apt", + "version": "1:2.3.15.3-1+b1" + } + ], + "xkb-data": [ + { + "arch": "all", + "category": "x11", + "name": "xkb-data", + "origin": "Debian", + "source": "apt", + "version": "2.35.1-1" + } + ], + "xz-utils": [ + { + "arch": "amd64", + "category": "utils", + "name": "xz-utils", + "origin": "Debian", + "source": "apt", + "version": "5.4.1-0.2" + } + ], + "zlib1g": [ + { + "arch": "amd64", + "category": "libs", + "name": "zlib1g", + "origin": "Debian", + "source": "apt", + "version": "1:1.2.13.dfsg-1" + } + ], + "zstd": [ + { + "arch": "amd64", + "category": "utils", + "name": "zstd", + "origin": "Debian", + "source": "apt", + "version": "1.5.4+dfsg2-5" + } + ] + } + }, + "changed": false +} diff --git a/misc/ubuntu-22.package_facts b/misc/ubuntu-22.package_facts new file mode 100644 index 000000000..acd490bd4 --- /dev/null +++ b/misc/ubuntu-22.package_facts @@ -0,0 +1,7588 @@ +ansibuntu | SUCCESS => { + "ansible_facts": { + "discovered_interpreter_python": "/usr/bin/python3", + "packages": { + "adduser": [ + { + "arch": "all", + "category": "admin", + "name": "adduser", + "origin": "Ubuntu", + "source": "apt", + "version": "3.118ubuntu5" + } + ], + "amd64-microcode": [ + { + "arch": "amd64", + "category": "admin", + "name": "amd64-microcode", + "origin": "Ubuntu", + "source": "apt", + "version": "3.20191218.1ubuntu2.2" + } + ], + "apache2": [ + { + "arch": "amd64", + "category": "web", + "name": "apache2", + "origin": "Ubuntu", + "source": "apt", + "version": "2.4.52-1ubuntu4.7" + } + ], + "apache2-bin": [ + { + "arch": "amd64", + "category": "httpd", + "name": "apache2-bin", + "origin": "Ubuntu", + "source": "apt", + "version": "2.4.52-1ubuntu4.7" + } + ], + "apache2-data": [ + { + "arch": "all", + "category": "httpd", + "name": "apache2-data", + "origin": "Ubuntu", + "source": "apt", + "version": "2.4.52-1ubuntu4.7" + } + ], + "apache2-utils": [ + { + "arch": "amd64", + "category": "net", + "name": "apache2-utils", + "origin": "Ubuntu", + "source": "apt", + "version": "2.4.52-1ubuntu4.7" + } + ], + "apparmor": [ + { + "arch": "amd64", + "category": "admin", + "name": "apparmor", + "origin": "Ubuntu", + "source": "apt", + "version": "3.0.4-2ubuntu2.3" + } + ], + "apport": [ + { + "arch": "all", + "category": "utils", + "name": "apport", + "origin": "Ubuntu", + "source": "apt", + "version": "2.20.11-0ubuntu82.5" + } + ], + "apport-symptoms": [ + { + "arch": "all", + "category": "utils", + "name": "apport-symptoms", + "origin": "Ubuntu", + "source": "apt", + "version": "0.24" + } + ], + "apt": [ + { + "arch": "amd64", + "category": "admin", + "name": "apt", + "origin": "Ubuntu", + "source": "apt", + "version": "2.4.11" + } + ], + "apt-utils": [ + { + "arch": "amd64", + "category": "admin", + "name": "apt-utils", + "origin": "Ubuntu", + "source": "apt", + "version": "2.4.11" + } + ], + "base-files": [ + { + "arch": "amd64", + "category": "admin", + "name": "base-files", + "origin": "Ubuntu", + "source": "apt", + "version": "12ubuntu4.4" + } + ], + "base-passwd": [ + { + "arch": "amd64", + "category": "admin", + "name": "base-passwd", + "origin": "Ubuntu", + "source": "apt", + "version": "3.5.52build1" + } + ], + "bash": [ + { + "arch": "amd64", + "category": "shells", + "name": "bash", + "origin": "Ubuntu", + "source": "apt", + "version": "5.1-6ubuntu1" + } + ], + "bash-completion": [ + { + "arch": "all", + "category": "shells", + "name": "bash-completion", + "origin": "Ubuntu", + "source": "apt", + "version": "1:2.11-5ubuntu1" + } + ], + "bc": [ + { + "arch": "amd64", + "category": "math", + "name": "bc", + "origin": "Ubuntu", + "source": "apt", + "version": "1.07.1-3build1" + } + ], + "bcache-tools": [ + { + "arch": "amd64", + "category": "utils", + "name": "bcache-tools", + "origin": "Ubuntu", + "source": "apt", + "version": "1.0.8-4ubuntu3" + } + ], + "bind9-dnsutils": [ + { + "arch": "amd64", + "category": "net", + "name": "bind9-dnsutils", + "origin": "Ubuntu", + "source": "apt", + "version": "1:9.18.18-0ubuntu0.22.04.1" + } + ], + "bind9-host": [ + { + "arch": "amd64", + "category": "net", + "name": "bind9-host", + "origin": "Ubuntu", + "source": "apt", + "version": "1:9.18.18-0ubuntu0.22.04.1" + } + ], + "bind9-libs": [ + { + "arch": "amd64", + "category": "libs", + "name": "bind9-libs", + "origin": "Ubuntu", + "source": "apt", + "version": "1:9.18.18-0ubuntu0.22.04.1" + } + ], + "binutils": [ + { + "arch": "amd64", + "category": "devel", + "name": "binutils", + "origin": "", + "source": "apt", + "version": "2.38-4ubuntu2.3" + } + ], + "binutils-common": [ + { + "arch": "amd64", + "category": "devel", + "name": "binutils-common", + "origin": "", + "source": "apt", + "version": "2.38-4ubuntu2.3" + } + ], + "binutils-x86-64-linux-gnu": [ + { + "arch": "amd64", + "category": "devel", + "name": "binutils-x86-64-linux-gnu", + "origin": "", + "source": "apt", + "version": "2.38-4ubuntu2.3" + } + ], + "bolt": [ + { + "arch": "amd64", + "category": "admin", + "name": "bolt", + "origin": "Ubuntu", + "source": "apt", + "version": "0.9.2-1" + } + ], + "bsdextrautils": [ + { + "arch": "amd64", + "category": "utils", + "name": "bsdextrautils", + "origin": "Ubuntu", + "source": "apt", + "version": "2.37.2-4ubuntu3" + } + ], + "bsdutils": [ + { + "arch": "amd64", + "category": "utils", + "name": "bsdutils", + "origin": "Ubuntu", + "source": "apt", + "version": "1:2.37.2-4ubuntu3" + } + ], + "btrfs-progs": [ + { + "arch": "amd64", + "category": "admin", + "name": "btrfs-progs", + "origin": "Ubuntu", + "source": "apt", + "version": "5.16.2-1" + } + ], + "busybox-initramfs": [ + { + "arch": "amd64", + "category": "shells", + "name": "busybox-initramfs", + "origin": "Ubuntu", + "source": "apt", + "version": "1:1.30.1-7ubuntu3" + } + ], + "busybox-static": [ + { + "arch": "amd64", + "category": "shells", + "name": "busybox-static", + "origin": "Ubuntu", + "source": "apt", + "version": "1:1.30.1-7ubuntu3" + } + ], + "byobu": [ + { + "arch": "all", + "category": "misc", + "name": "byobu", + "origin": "Ubuntu", + "source": "apt", + "version": "5.133-1" + } + ], + "bzip2": [ + { + "arch": "amd64", + "category": "utils", + "name": "bzip2", + "origin": "Ubuntu", + "source": "apt", + "version": "1.0.8-5build1" + } + ], + "ca-certificates": [ + { + "arch": "all", + "category": "misc", + "name": "ca-certificates", + "origin": "Ubuntu", + "source": "apt", + "version": "20230311ubuntu0.22.04.1" + } + ], + "check-mk-raw-2.2.0p8": [ + { + "arch": "amd64", + "category": "admin", + "name": "check-mk-raw-2.2.0p8", + "origin": "", + "source": "apt", + "version": "0.jammy" + } + ], + "cloud-guest-utils": [ + { + "arch": "all", + "category": "admin", + "name": "cloud-guest-utils", + "origin": "Ubuntu", + "source": "apt", + "version": "0.32-22-g45fe84a5-0ubuntu1" + } + ], + "cloud-initramfs-copymods": [ + { + "arch": "all", + "category": "admin", + "name": "cloud-initramfs-copymods", + "origin": "Ubuntu", + "source": "apt", + "version": "0.47ubuntu1" + } + ], + "cloud-initramfs-dyn-netconf": [ + { + "arch": "all", + "category": "admin", + "name": "cloud-initramfs-dyn-netconf", + "origin": "Ubuntu", + "source": "apt", + "version": "0.47ubuntu1" + } + ], + "command-not-found": [ + { + "arch": "all", + "category": "admin", + "name": "command-not-found", + "origin": "Ubuntu", + "source": "apt", + "version": "22.04.0" + } + ], + "console-setup": [ + { + "arch": "all", + "category": "utils", + "name": "console-setup", + "origin": "Ubuntu", + "source": "apt", + "version": "1.205ubuntu3" + } + ], + "console-setup-linux": [ + { + "arch": "all", + "category": "utils", + "name": "console-setup-linux", + "origin": "Ubuntu", + "source": "apt", + "version": "1.205ubuntu3" + } + ], + "coreutils": [ + { + "arch": "amd64", + "category": "utils", + "name": "coreutils", + "origin": "Ubuntu", + "source": "apt", + "version": "8.32-4.1ubuntu1" + } + ], + "cpio": [ + { + "arch": "amd64", + "category": "utils", + "name": "cpio", + "origin": "Ubuntu", + "source": "apt", + "version": "2.13+dfsg-7" + } + ], + "cron": [ + { + "arch": "amd64", + "category": "admin", + "name": "cron", + "origin": "Ubuntu", + "source": "apt", + "version": "3.0pl1-137ubuntu3" + } + ], + "cryptsetup": [ + { + "arch": "amd64", + "category": "admin", + "name": "cryptsetup", + "origin": "", + "source": "apt", + "version": "2:2.4.3-1ubuntu1.1" + } + ], + "cryptsetup-bin": [ + { + "arch": "amd64", + "category": "admin", + "name": "cryptsetup-bin", + "origin": "", + "source": "apt", + "version": "2:2.4.3-1ubuntu1.1" + } + ], + "cryptsetup-initramfs": [ + { + "arch": "all", + "category": "admin", + "name": "cryptsetup-initramfs", + "origin": "", + "source": "apt", + "version": "2:2.4.3-1ubuntu1.1" + } + ], + "curl": [ + { + "arch": "amd64", + "category": "web", + "name": "curl", + "origin": "Ubuntu", + "source": "apt", + "version": "7.81.0-1ubuntu1.15" + } + ], + "dash": [ + { + "arch": "amd64", + "category": "shells", + "name": "dash", + "origin": "Ubuntu", + "source": "apt", + "version": "0.5.11+git20210903+057cd650a4ed-3build1" + } + ], + "dbus": [ + { + "arch": "amd64", + "category": "devel", + "name": "dbus", + "origin": "Ubuntu", + "source": "apt", + "version": "1.12.20-2ubuntu4.1" + } + ], + "dbus-user-session": [ + { + "arch": "amd64", + "category": "admin", + "name": "dbus-user-session", + "origin": "Ubuntu", + "source": "apt", + "version": "1.12.20-2ubuntu4.1" + } + ], + "debconf": [ + { + "arch": "all", + "category": "admin", + "name": "debconf", + "origin": "Ubuntu", + "source": "apt", + "version": "1.5.79ubuntu1" + } + ], + "debconf-i18n": [ + { + "arch": "all", + "category": "admin", + "name": "debconf-i18n", + "origin": "Ubuntu", + "source": "apt", + "version": "1.5.79ubuntu1" + } + ], + "debianutils": [ + { + "arch": "amd64", + "category": "utils", + "name": "debianutils", + "origin": "Ubuntu", + "source": "apt", + "version": "5.5-1ubuntu2" + } + ], + "debugedit": [ + { + "arch": "amd64", + "category": "admin", + "name": "debugedit", + "origin": "Ubuntu", + "source": "apt", + "version": "1:5.0-4build1" + } + ], + "dialog": [ + { + "arch": "amd64", + "category": "universe/misc", + "name": "dialog", + "origin": "Ubuntu", + "source": "apt", + "version": "1.3-20211214-1" + } + ], + "diffutils": [ + { + "arch": "amd64", + "category": "utils", + "name": "diffutils", + "origin": "Ubuntu", + "source": "apt", + "version": "1:3.8-0ubuntu2" + } + ], + "dirmngr": [ + { + "arch": "amd64", + "category": "utils", + "name": "dirmngr", + "origin": "Ubuntu", + "source": "apt", + "version": "2.2.27-3ubuntu2.1" + } + ], + "distro-info": [ + { + "arch": "amd64", + "category": "devel", + "name": "distro-info", + "origin": "Ubuntu", + "source": "apt", + "version": "1.1ubuntu0.1" + } + ], + "distro-info-data": [ + { + "arch": "all", + "category": "devel", + "name": "distro-info-data", + "origin": "Ubuntu", + "source": "apt", + "version": "0.52ubuntu0.5" + } + ], + "dmeventd": [ + { + "arch": "amd64", + "category": "admin", + "name": "dmeventd", + "origin": "Ubuntu", + "source": "apt", + "version": "2:1.02.175-2.1ubuntu4" + } + ], + "dmidecode": [ + { + "arch": "amd64", + "category": "utils", + "name": "dmidecode", + "origin": "Ubuntu", + "source": "apt", + "version": "3.3-3ubuntu0.1" + } + ], + "dmsetup": [ + { + "arch": "amd64", + "category": "admin", + "name": "dmsetup", + "origin": "Ubuntu", + "source": "apt", + "version": "2:1.02.175-2.1ubuntu4" + } + ], + "dosfstools": [ + { + "arch": "amd64", + "category": "otherosfs", + "name": "dosfstools", + "origin": "Ubuntu", + "source": "apt", + "version": "4.2-1build3" + } + ], + "dpkg": [ + { + "arch": "amd64", + "category": "admin", + "name": "dpkg", + "origin": "Ubuntu", + "source": "apt", + "version": "1.21.1ubuntu2.2" + } + ], + "e2fsprogs": [ + { + "arch": "amd64", + "category": "admin", + "name": "e2fsprogs", + "origin": "Ubuntu", + "source": "apt", + "version": "1.46.5-2ubuntu1.1" + } + ], + "ed": [ + { + "arch": "amd64", + "category": "editors", + "name": "ed", + "origin": "Ubuntu", + "source": "apt", + "version": "1.18-1" + } + ], + "eject": [ + { + "arch": "amd64", + "category": "utils", + "name": "eject", + "origin": "Ubuntu", + "source": "apt", + "version": "2.37.2-4ubuntu3" + } + ], + "ethtool": [ + { + "arch": "amd64", + "category": "utils", + "name": "ethtool", + "origin": "Ubuntu", + "source": "apt", + "version": "1:5.16-1" + } + ], + "fdisk": [ + { + "arch": "amd64", + "category": "utils", + "name": "fdisk", + "origin": "Ubuntu", + "source": "apt", + "version": "2.37.2-4ubuntu3" + } + ], + "file": [ + { + "arch": "amd64", + "category": "utils", + "name": "file", + "origin": "Ubuntu", + "source": "apt", + "version": "1:5.41-3ubuntu0.1" + } + ], + "finalrd": [ + { + "arch": "all", + "category": "utils", + "name": "finalrd", + "origin": "Ubuntu", + "source": "apt", + "version": "9build1" + } + ], + "findutils": [ + { + "arch": "amd64", + "category": "utils", + "name": "findutils", + "origin": "Ubuntu", + "source": "apt", + "version": "4.8.0-1ubuntu3" + } + ], + "firmware-sof-signed": [ + { + "arch": "all", + "category": "restricted/kernel", + "name": "firmware-sof-signed", + "origin": "Ubuntu", + "source": "apt", + "version": "2.0-1ubuntu4.4" + } + ], + "fontconfig": [ + { + "arch": "amd64", + "category": "utils", + "name": "fontconfig", + "origin": "Ubuntu", + "source": "apt", + "version": "2.13.1-4.2ubuntu5" + } + ], + "fontconfig-config": [ + { + "arch": "all", + "category": "libs", + "name": "fontconfig-config", + "origin": "Ubuntu", + "source": "apt", + "version": "2.13.1-4.2ubuntu5" + } + ], + "fonts-dejavu-core": [ + { + "arch": "all", + "category": "fonts", + "name": "fonts-dejavu-core", + "origin": "Ubuntu", + "source": "apt", + "version": "2.37-2build1" + } + ], + "fonts-lato": [ + { + "arch": "all", + "category": "fonts", + "name": "fonts-lato", + "origin": "Ubuntu", + "source": "apt", + "version": "2.0-2.1" + } + ], + "fonts-liberation": [ + { + "arch": "all", + "category": "fonts", + "name": "fonts-liberation", + "origin": "Ubuntu", + "source": "apt", + "version": "1:1.07.4-11" + } + ], + "fonts-ubuntu-console": [ + { + "arch": "all", + "category": "fonts", + "name": "fonts-ubuntu-console", + "origin": "Ubuntu", + "source": "apt", + "version": "0.83-6ubuntu1" + } + ], + "freeipmi": [ + { + "arch": "all", + "category": "universe/admin", + "name": "freeipmi", + "origin": "Ubuntu", + "source": "apt", + "version": "1.6.9-2ubuntu0.22.04.2" + } + ], + "freeipmi-bmc-watchdog": [ + { + "arch": "amd64", + "category": "universe/admin", + "name": "freeipmi-bmc-watchdog", + "origin": "Ubuntu", + "source": "apt", + "version": "1.6.9-2ubuntu0.22.04.2" + } + ], + "freeipmi-common": [ + { + "arch": "all", + "category": "admin", + "name": "freeipmi-common", + "origin": "Ubuntu", + "source": "apt", + "version": "1.6.9-2ubuntu0.22.04.2" + } + ], + "freeipmi-ipmidetect": [ + { + "arch": "amd64", + "category": "universe/admin", + "name": "freeipmi-ipmidetect", + "origin": "Ubuntu", + "source": "apt", + "version": "1.6.9-2ubuntu0.22.04.2" + } + ], + "freeipmi-tools": [ + { + "arch": "amd64", + "category": "admin", + "name": "freeipmi-tools", + "origin": "Ubuntu", + "source": "apt", + "version": "1.6.9-2ubuntu0.22.04.2" + } + ], + "freeradius-common": [ + { + "arch": "all", + "category": "net", + "name": "freeradius-common", + "origin": "Ubuntu", + "source": "apt", + "version": "3.0.26~dfsg~git20220223.1.00ed0241fa-0ubuntu3.1" + } + ], + "freeradius-config": [ + { + "arch": "amd64", + "category": "net", + "name": "freeradius-config", + "origin": "Ubuntu", + "source": "apt", + "version": "3.0.26~dfsg~git20220223.1.00ed0241fa-0ubuntu3.1" + } + ], + "freeradius-utils": [ + { + "arch": "amd64", + "category": "net", + "name": "freeradius-utils", + "origin": "Ubuntu", + "source": "apt", + "version": "3.0.26~dfsg~git20220223.1.00ed0241fa-0ubuntu3.1" + } + ], + "friendly-recovery": [ + { + "arch": "all", + "category": "admin", + "name": "friendly-recovery", + "origin": "Ubuntu", + "source": "apt", + "version": "0.2.42" + } + ], + "ftp": [ + { + "arch": "all", + "category": "net", + "name": "ftp", + "origin": "Ubuntu", + "source": "apt", + "version": "20210827-4build1" + } + ], + "fuse3": [ + { + "arch": "amd64", + "category": "utils", + "name": "fuse3", + "origin": "Ubuntu", + "source": "apt", + "version": "3.10.5-1build1" + } + ], + "fwupd": [ + { + "arch": "amd64", + "category": "admin", + "name": "fwupd", + "origin": "Ubuntu", + "source": "apt", + "version": "1.7.9-1~22.04.3" + } + ], + "fwupd-signed": [ + { + "arch": "amd64", + "category": "utils", + "name": "fwupd-signed", + "origin": "Ubuntu", + "source": "apt", + "version": "1.51.1~22.04.1+1.4-0ubuntu0.1" + } + ], + "gawk": [ + { + "arch": "amd64", + "category": "interpreters", + "name": "gawk", + "origin": "Ubuntu", + "source": "apt", + "version": "1:5.1.0-1ubuntu0.1" + } + ], + "gcc-12-base": [ + { + "arch": "amd64", + "category": "libs", + "name": "gcc-12-base", + "origin": "Ubuntu", + "source": "apt", + "version": "12.3.0-1ubuntu1~22.04" + } + ], + "gdisk": [ + { + "arch": "amd64", + "category": "admin", + "name": "gdisk", + "origin": "Ubuntu", + "source": "apt", + "version": "1.0.8-4build1" + } + ], + "gettext-base": [ + { + "arch": "amd64", + "category": "utils", + "name": "gettext-base", + "origin": "Ubuntu", + "source": "apt", + "version": "0.21-4ubuntu4" + } + ], + "gir1.2-glib-2.0": [ + { + "arch": "amd64", + "category": "introspection", + "name": "gir1.2-glib-2.0", + "origin": "Ubuntu", + "source": "apt", + "version": "1.72.0-1" + } + ], + "gir1.2-packagekitglib-1.0": [ + { + "arch": "amd64", + "category": "introspection", + "name": "gir1.2-packagekitglib-1.0", + "origin": "Ubuntu", + "source": "apt", + "version": "1.2.5-2ubuntu2" + } + ], + "git": [ + { + "arch": "amd64", + "category": "vcs", + "name": "git", + "origin": "Ubuntu", + "source": "apt", + "version": "1:2.34.1-1ubuntu1.10" + } + ], + "git-man": [ + { + "arch": "all", + "category": "vcs", + "name": "git-man", + "origin": "Ubuntu", + "source": "apt", + "version": "1:2.34.1-1ubuntu1.10" + } + ], + "gnupg": [ + { + "arch": "all", + "category": "utils", + "name": "gnupg", + "origin": "Ubuntu", + "source": "apt", + "version": "2.2.27-3ubuntu2.1" + } + ], + "gnupg-l10n": [ + { + "arch": "all", + "category": "utils", + "name": "gnupg-l10n", + "origin": "Ubuntu", + "source": "apt", + "version": "2.2.27-3ubuntu2.1" + } + ], + "gnupg-utils": [ + { + "arch": "amd64", + "category": "utils", + "name": "gnupg-utils", + "origin": "Ubuntu", + "source": "apt", + "version": "2.2.27-3ubuntu2.1" + } + ], + "gpg": [ + { + "arch": "amd64", + "category": "utils", + "name": "gpg", + "origin": "Ubuntu", + "source": "apt", + "version": "2.2.27-3ubuntu2.1" + } + ], + "gpg-agent": [ + { + "arch": "amd64", + "category": "utils", + "name": "gpg-agent", + "origin": "Ubuntu", + "source": "apt", + "version": "2.2.27-3ubuntu2.1" + } + ], + "gpg-wks-client": [ + { + "arch": "amd64", + "category": "utils", + "name": "gpg-wks-client", + "origin": "Ubuntu", + "source": "apt", + "version": "2.2.27-3ubuntu2.1" + } + ], + "gpg-wks-server": [ + { + "arch": "amd64", + "category": "utils", + "name": "gpg-wks-server", + "origin": "Ubuntu", + "source": "apt", + "version": "2.2.27-3ubuntu2.1" + } + ], + "gpgconf": [ + { + "arch": "amd64", + "category": "utils", + "name": "gpgconf", + "origin": "Ubuntu", + "source": "apt", + "version": "2.2.27-3ubuntu2.1" + } + ], + "gpgsm": [ + { + "arch": "amd64", + "category": "utils", + "name": "gpgsm", + "origin": "Ubuntu", + "source": "apt", + "version": "2.2.27-3ubuntu2.1" + } + ], + "gpgv": [ + { + "arch": "amd64", + "category": "utils", + "name": "gpgv", + "origin": "Ubuntu", + "source": "apt", + "version": "2.2.27-3ubuntu2.1" + } + ], + "graphviz": [ + { + "arch": "amd64", + "category": "universe/graphics", + "name": "graphviz", + "origin": "Ubuntu", + "source": "apt", + "version": "2.42.2-6" + } + ], + "grep": [ + { + "arch": "amd64", + "category": "utils", + "name": "grep", + "origin": "Ubuntu", + "source": "apt", + "version": "3.7-1build1" + } + ], + "groff-base": [ + { + "arch": "amd64", + "category": "text", + "name": "groff-base", + "origin": "Ubuntu", + "source": "apt", + "version": "1.22.4-8build1" + } + ], + "grub-common": [ + { + "arch": "amd64", + "category": "admin", + "name": "grub-common", + "origin": "Ubuntu", + "source": "apt", + "version": "2.06-2ubuntu7.2" + } + ], + "grub-gfxpayload-lists": [ + { + "arch": "amd64", + "category": "admin", + "name": "grub-gfxpayload-lists", + "origin": "Ubuntu", + "source": "apt", + "version": "0.7" + } + ], + "grub-pc": [ + { + "arch": "amd64", + "category": "admin", + "name": "grub-pc", + "origin": "Ubuntu", + "source": "apt", + "version": "2.06-2ubuntu7.2" + } + ], + "grub-pc-bin": [ + { + "arch": "amd64", + "category": "admin", + "name": "grub-pc-bin", + "origin": "Ubuntu", + "source": "apt", + "version": "2.06-2ubuntu7.2" + } + ], + "grub2-common": [ + { + "arch": "amd64", + "category": "admin", + "name": "grub2-common", + "origin": "Ubuntu", + "source": "apt", + "version": "2.06-2ubuntu7.2" + } + ], + "gzip": [ + { + "arch": "amd64", + "category": "utils", + "name": "gzip", + "origin": "Ubuntu", + "source": "apt", + "version": "1.10-4ubuntu4.1" + } + ], + "haveged": [ + { + "arch": "amd64", + "category": "universe/misc", + "name": "haveged", + "origin": "Ubuntu", + "source": "apt", + "version": "1.9.14-1ubuntu1" + } + ], + "hdparm": [ + { + "arch": "amd64", + "category": "admin", + "name": "hdparm", + "origin": "Ubuntu", + "source": "apt", + "version": "9.60+ds-1build3" + } + ], + "hostname": [ + { + "arch": "amd64", + "category": "admin", + "name": "hostname", + "origin": "Ubuntu", + "source": "apt", + "version": "3.23ubuntu2" + } + ], + "htop": [ + { + "arch": "amd64", + "category": "utils", + "name": "htop", + "origin": "Ubuntu", + "source": "apt", + "version": "3.0.5-7build2" + } + ], + "ifplugd": [ + { + "arch": "amd64", + "category": "universe/net", + "name": "ifplugd", + "origin": "Ubuntu", + "source": "apt", + "version": "0.28-19.5" + } + ], + "ifupdown": [ + { + "arch": "amd64", + "category": "universe/admin", + "name": "ifupdown", + "origin": "Ubuntu", + "source": "apt", + "version": "0.8.36+nmu1ubuntu3.1" + } + ], + "info": [ + { + "arch": "amd64", + "category": "doc", + "name": "info", + "origin": "Ubuntu", + "source": "apt", + "version": "6.8-4build1" + } + ], + "init": [ + { + "arch": "amd64", + "category": "metapackages", + "name": "init", + "origin": "Ubuntu", + "source": "apt", + "version": "1.62" + } + ], + "init-system-helpers": [ + { + "arch": "all", + "category": "admin", + "name": "init-system-helpers", + "origin": "Ubuntu", + "source": "apt", + "version": "1.62" + } + ], + "initramfs-tools": [ + { + "arch": "all", + "category": "utils", + "name": "initramfs-tools", + "origin": "Ubuntu", + "source": "apt", + "version": "0.140ubuntu13.4" + } + ], + "initramfs-tools-bin": [ + { + "arch": "amd64", + "category": "utils", + "name": "initramfs-tools-bin", + "origin": "Ubuntu", + "source": "apt", + "version": "0.140ubuntu13.4" + } + ], + "initramfs-tools-core": [ + { + "arch": "all", + "category": "utils", + "name": "initramfs-tools-core", + "origin": "Ubuntu", + "source": "apt", + "version": "0.140ubuntu13.4" + } + ], + "install-info": [ + { + "arch": "amd64", + "category": "doc", + "name": "install-info", + "origin": "Ubuntu", + "source": "apt", + "version": "6.8-4build1" + } + ], + "intel-microcode": [ + { + "arch": "amd64", + "category": "admin", + "name": "intel-microcode", + "origin": "Ubuntu", + "source": "apt", + "version": "3.20231114.0ubuntu0.22.04.1" + } + ], + "iproute2": [ + { + "arch": "amd64", + "category": "net", + "name": "iproute2", + "origin": "Ubuntu", + "source": "apt", + "version": "5.15.0-1ubuntu2" + } + ], + "iptables": [ + { + "arch": "amd64", + "category": "net", + "name": "iptables", + "origin": "Ubuntu", + "source": "apt", + "version": "1.8.7-1ubuntu5.1" + } + ], + "iputils-ping": [ + { + "arch": "amd64", + "category": "net", + "name": "iputils-ping", + "origin": "Ubuntu", + "source": "apt", + "version": "3:20211215-1" + } + ], + "iputils-tracepath": [ + { + "arch": "amd64", + "category": "net", + "name": "iputils-tracepath", + "origin": "Ubuntu", + "source": "apt", + "version": "3:20211215-1" + } + ], + "irqbalance": [ + { + "arch": "amd64", + "category": "utils", + "name": "irqbalance", + "origin": "", + "source": "apt", + "version": "1.8.0-1ubuntu0.1" + } + ], + "isc-dhcp-client": [ + { + "arch": "amd64", + "category": "net", + "name": "isc-dhcp-client", + "origin": "Ubuntu", + "source": "apt", + "version": "4.4.1-2.3ubuntu2.4" + } + ], + "isc-dhcp-common": [ + { + "arch": "amd64", + "category": "net", + "name": "isc-dhcp-common", + "origin": "Ubuntu", + "source": "apt", + "version": "4.4.1-2.3ubuntu2.4" + } + ], + "iso-codes": [ + { + "arch": "all", + "category": "libs", + "name": "iso-codes", + "origin": "Ubuntu", + "source": "apt", + "version": "4.9.0-1" + } + ], + "iucode-tool": [ + { + "arch": "amd64", + "category": "utils", + "name": "iucode-tool", + "origin": "Ubuntu", + "source": "apt", + "version": "2.3.1-1build1" + } + ], + "javascript-common": [ + { + "arch": "all", + "category": "web", + "name": "javascript-common", + "origin": "Ubuntu", + "source": "apt", + "version": "11+nmu1" + } + ], + "kbd": [ + { + "arch": "amd64", + "category": "utils", + "name": "kbd", + "origin": "Ubuntu", + "source": "apt", + "version": "2.3.0-3ubuntu4.22.04" + } + ], + "keyboard-configuration": [ + { + "arch": "all", + "category": "utils", + "name": "keyboard-configuration", + "origin": "Ubuntu", + "source": "apt", + "version": "1.205ubuntu3" + } + ], + "klibc-utils": [ + { + "arch": "amd64", + "category": "libs", + "name": "klibc-utils", + "origin": "Ubuntu", + "source": "apt", + "version": "2.0.10-4" + } + ], + "kmod": [ + { + "arch": "amd64", + "category": "admin", + "name": "kmod", + "origin": "Ubuntu", + "source": "apt", + "version": "29-1ubuntu1" + } + ], + "kpartx": [ + { + "arch": "amd64", + "category": "admin", + "name": "kpartx", + "origin": "", + "source": "apt", + "version": "0.8.8-1ubuntu1.22.04.3" + } + ], + "landscape-common": [ + { + "arch": "amd64", + "category": "admin", + "name": "landscape-common", + "origin": "Ubuntu", + "source": "apt", + "version": "19.12-0ubuntu13" + } + ], + "lcab": [ + { + "arch": "amd64", + "category": "universe/utils", + "name": "lcab", + "origin": "Ubuntu", + "source": "apt", + "version": "1.0b12-7" + } + ], + "less": [ + { + "arch": "amd64", + "category": "text", + "name": "less", + "origin": "Ubuntu", + "source": "apt", + "version": "590-1ubuntu0.22.04.1" + } + ], + "libacl1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libacl1", + "origin": "Ubuntu", + "source": "apt", + "version": "2.3.1-1" + } + ], + "libaio1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libaio1", + "origin": "Ubuntu", + "source": "apt", + "version": "0.3.112-13build1" + } + ], + "libann0": [ + { + "arch": "amd64", + "category": "universe/libs", + "name": "libann0", + "origin": "Ubuntu", + "source": "apt", + "version": "1.1.2+doc-7build1" + } + ], + "libapparmor1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libapparmor1", + "origin": "Ubuntu", + "source": "apt", + "version": "3.0.4-2ubuntu2.3" + } + ], + "libappstream4": [ + { + "arch": "amd64", + "category": "libs", + "name": "libappstream4", + "origin": "Ubuntu", + "source": "apt", + "version": "0.15.2-2" + } + ], + "libapr1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libapr1", + "origin": "Ubuntu", + "source": "apt", + "version": "1.7.0-8ubuntu0.22.04.1" + } + ], + "libaprutil1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libaprutil1", + "origin": "Ubuntu", + "source": "apt", + "version": "1.6.1-5ubuntu4.22.04.2" + } + ], + "libaprutil1-dbd-sqlite3": [ + { + "arch": "amd64", + "category": "libs", + "name": "libaprutil1-dbd-sqlite3", + "origin": "Ubuntu", + "source": "apt", + "version": "1.6.1-5ubuntu4.22.04.2" + } + ], + "libaprutil1-ldap": [ + { + "arch": "amd64", + "category": "libs", + "name": "libaprutil1-ldap", + "origin": "Ubuntu", + "source": "apt", + "version": "1.6.1-5ubuntu4.22.04.2" + } + ], + "libapt-pkg6.0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libapt-pkg6.0", + "origin": "Ubuntu", + "source": "apt", + "version": "2.4.11" + } + ], + "libarchive13": [ + { + "arch": "amd64", + "category": "libs", + "name": "libarchive13", + "origin": "Ubuntu", + "source": "apt", + "version": "3.6.0-1ubuntu1" + } + ], + "libargon2-1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libargon2-1", + "origin": "Ubuntu", + "source": "apt", + "version": "0~20171227-0.3" + } + ], + "libassuan0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libassuan0", + "origin": "Ubuntu", + "source": "apt", + "version": "2.5.5-1build1" + } + ], + "libatasmart4": [ + { + "arch": "amd64", + "category": "libs", + "name": "libatasmart4", + "origin": "Ubuntu", + "source": "apt", + "version": "0.19-5build2" + } + ], + "libatm1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libatm1", + "origin": "Ubuntu", + "source": "apt", + "version": "1:2.5.1-4build2" + } + ], + "libattr1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libattr1", + "origin": "Ubuntu", + "source": "apt", + "version": "1:2.5.1-1build1" + } + ], + "libaudit-common": [ + { + "arch": "all", + "category": "libs", + "name": "libaudit-common", + "origin": "Ubuntu", + "source": "apt", + "version": "1:3.0.7-1build1" + } + ], + "libaudit1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libaudit1", + "origin": "Ubuntu", + "source": "apt", + "version": "1:3.0.7-1build1" + } + ], + "libavahi-client3": [ + { + "arch": "amd64", + "category": "libs", + "name": "libavahi-client3", + "origin": "Ubuntu", + "source": "apt", + "version": "0.8-5ubuntu5.2" + } + ], + "libavahi-common-data": [ + { + "arch": "amd64", + "category": "libs", + "name": "libavahi-common-data", + "origin": "Ubuntu", + "source": "apt", + "version": "0.8-5ubuntu5.2" + } + ], + "libavahi-common3": [ + { + "arch": "amd64", + "category": "libs", + "name": "libavahi-common3", + "origin": "Ubuntu", + "source": "apt", + "version": "0.8-5ubuntu5.2" + } + ], + "libbinutils": [ + { + "arch": "amd64", + "category": "devel", + "name": "libbinutils", + "origin": "", + "source": "apt", + "version": "2.38-4ubuntu2.3" + } + ], + "libblkid1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libblkid1", + "origin": "Ubuntu", + "source": "apt", + "version": "2.37.2-4ubuntu3" + } + ], + "libblockdev-crypto2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libblockdev-crypto2", + "origin": "Ubuntu", + "source": "apt", + "version": "2.26-1" + } + ], + "libblockdev-fs2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libblockdev-fs2", + "origin": "Ubuntu", + "source": "apt", + "version": "2.26-1" + } + ], + "libblockdev-loop2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libblockdev-loop2", + "origin": "Ubuntu", + "source": "apt", + "version": "2.26-1" + } + ], + "libblockdev-part-err2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libblockdev-part-err2", + "origin": "Ubuntu", + "source": "apt", + "version": "2.26-1" + } + ], + "libblockdev-part2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libblockdev-part2", + "origin": "Ubuntu", + "source": "apt", + "version": "2.26-1" + } + ], + "libblockdev-swap2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libblockdev-swap2", + "origin": "Ubuntu", + "source": "apt", + "version": "2.26-1" + } + ], + "libblockdev-utils2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libblockdev-utils2", + "origin": "Ubuntu", + "source": "apt", + "version": "2.26-1" + } + ], + "libblockdev2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libblockdev2", + "origin": "Ubuntu", + "source": "apt", + "version": "2.26-1" + } + ], + "libbpf0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libbpf0", + "origin": "Ubuntu", + "source": "apt", + "version": "1:0.5.0-1ubuntu22.04.1" + } + ], + "libbrotli1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libbrotli1", + "origin": "Ubuntu", + "source": "apt", + "version": "1.0.9-2build6" + } + ], + "libbsd0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libbsd0", + "origin": "Ubuntu", + "source": "apt", + "version": "0.11.5-1" + } + ], + "libbz2-1.0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libbz2-1.0", + "origin": "Ubuntu", + "source": "apt", + "version": "1.0.8-5build1" + } + ], + "libc-bin": [ + { + "arch": "amd64", + "category": "libs", + "name": "libc-bin", + "origin": "", + "source": "apt", + "version": "2.35-0ubuntu3.4" + } + ], + "libc6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libc6", + "origin": "", + "source": "apt", + "version": "2.35-0ubuntu3.4" + } + ], + "libcairo2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libcairo2", + "origin": "Ubuntu", + "source": "apt", + "version": "1.16.0-5ubuntu2" + } + ], + "libcap-ng0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libcap-ng0", + "origin": "Ubuntu", + "source": "apt", + "version": "0.7.9-2.2build3" + } + ], + "libcap2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libcap2", + "origin": "Ubuntu", + "source": "apt", + "version": "1:2.44-1ubuntu0.22.04.1" + } + ], + "libcap2-bin": [ + { + "arch": "amd64", + "category": "utils", + "name": "libcap2-bin", + "origin": "Ubuntu", + "source": "apt", + "version": "1:2.44-1ubuntu0.22.04.1" + } + ], + "libcbor0.8": [ + { + "arch": "amd64", + "category": "libs", + "name": "libcbor0.8", + "origin": "Ubuntu", + "source": "apt", + "version": "0.8.0-2ubuntu1" + } + ], + "libcdt5": [ + { + "arch": "amd64", + "category": "universe/libs", + "name": "libcdt5", + "origin": "Ubuntu", + "source": "apt", + "version": "2.42.2-6" + } + ], + "libcgraph6": [ + { + "arch": "amd64", + "category": "universe/libs", + "name": "libcgraph6", + "origin": "Ubuntu", + "source": "apt", + "version": "2.42.2-6" + } + ], + "libcom-err2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libcom-err2", + "origin": "Ubuntu", + "source": "apt", + "version": "1.46.5-2ubuntu1.1" + } + ], + "libcrypt1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libcrypt1", + "origin": "Ubuntu", + "source": "apt", + "version": "1:4.4.27-1" + } + ], + "libcryptsetup12": [ + { + "arch": "amd64", + "category": "libs", + "name": "libcryptsetup12", + "origin": "", + "source": "apt", + "version": "2:2.4.3-1ubuntu1.1" + } + ], + "libctf-nobfd0": [ + { + "arch": "amd64", + "category": "devel", + "name": "libctf-nobfd0", + "origin": "", + "source": "apt", + "version": "2.38-4ubuntu2.3" + } + ], + "libctf0": [ + { + "arch": "amd64", + "category": "devel", + "name": "libctf0", + "origin": "", + "source": "apt", + "version": "2.38-4ubuntu2.3" + } + ], + "libcups2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libcups2", + "origin": "Ubuntu", + "source": "apt", + "version": "2.4.1op1-1ubuntu4.7" + } + ], + "libcurl3-gnutls": [ + { + "arch": "amd64", + "category": "libs", + "name": "libcurl3-gnutls", + "origin": "", + "source": "apt", + "version": "7.81.0-1ubuntu1.14" + } + ], + "libcurl4": [ + { + "arch": "amd64", + "category": "libs", + "name": "libcurl4", + "origin": "Ubuntu", + "source": "apt", + "version": "7.81.0-1ubuntu1.15" + } + ], + "libdaemon0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libdaemon0", + "origin": "Ubuntu", + "source": "apt", + "version": "0.14-7.1ubuntu3" + } + ], + "libdatrie1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libdatrie1", + "origin": "Ubuntu", + "source": "apt", + "version": "0.2.13-2" + } + ], + "libdb5.3": [ + { + "arch": "amd64", + "category": "libs", + "name": "libdb5.3", + "origin": "Ubuntu", + "source": "apt", + "version": "5.3.28+dfsg1-0.8ubuntu3" + } + ], + "libdbi-perl": [ + { + "arch": "amd64", + "category": "perl", + "name": "libdbi-perl", + "origin": "Ubuntu", + "source": "apt", + "version": "1.643-3build3" + } + ], + "libdbus-1-3": [ + { + "arch": "amd64", + "category": "libs", + "name": "libdbus-1-3", + "origin": "Ubuntu", + "source": "apt", + "version": "1.12.20-2ubuntu4.1" + } + ], + "libdbus-glib-1-2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libdbus-glib-1-2", + "origin": "Ubuntu", + "source": "apt", + "version": "0.112-2build1" + } + ], + "libdebconfclient0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libdebconfclient0", + "origin": "Ubuntu", + "source": "apt", + "version": "0.261ubuntu1" + } + ], + "libdeflate0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libdeflate0", + "origin": "Ubuntu", + "source": "apt", + "version": "1.10-2" + } + ], + "libdevmapper-event1.02.1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libdevmapper-event1.02.1", + "origin": "Ubuntu", + "source": "apt", + "version": "2:1.02.175-2.1ubuntu4" + } + ], + "libdevmapper1.02.1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libdevmapper1.02.1", + "origin": "Ubuntu", + "source": "apt", + "version": "2:1.02.175-2.1ubuntu4" + } + ], + "libdns-export1110": [ + { + "arch": "amd64", + "category": "libs", + "name": "libdns-export1110", + "origin": "Ubuntu", + "source": "apt", + "version": "1:9.11.19+dfsg-2.1ubuntu3" + } + ], + "libdrm-common": [ + { + "arch": "all", + "category": "libs", + "name": "libdrm-common", + "origin": "Ubuntu", + "source": "apt", + "version": "2.4.113-2~ubuntu0.22.04.1" + } + ], + "libdrm2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libdrm2", + "origin": "Ubuntu", + "source": "apt", + "version": "2.4.113-2~ubuntu0.22.04.1" + } + ], + "libdw1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libdw1", + "origin": "Ubuntu", + "source": "apt", + "version": "0.186-1build1" + } + ], + "libedit2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libedit2", + "origin": "Ubuntu", + "source": "apt", + "version": "3.1-20210910-1build1" + } + ], + "libefiboot1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libefiboot1", + "origin": "Ubuntu", + "source": "apt", + "version": "37-6ubuntu2" + } + ], + "libefivar1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libefivar1", + "origin": "Ubuntu", + "source": "apt", + "version": "37-6ubuntu2" + } + ], + "libelf1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libelf1", + "origin": "Ubuntu", + "source": "apt", + "version": "0.186-1build1" + } + ], + "liberror-perl": [ + { + "arch": "all", + "category": "perl", + "name": "liberror-perl", + "origin": "Ubuntu", + "source": "apt", + "version": "0.17029-1" + } + ], + "libestr0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libestr0", + "origin": "Ubuntu", + "source": "apt", + "version": "0.1.10-2.1build3" + } + ], + "libevdev2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libevdev2", + "origin": "Ubuntu", + "source": "apt", + "version": "1.12.1+dfsg-1" + } + ], + "libevent-2.1-7": [ + { + "arch": "amd64", + "category": "libs", + "name": "libevent-2.1-7", + "origin": "Ubuntu", + "source": "apt", + "version": "2.1.12-stable-1build3" + } + ], + "libevent-core-2.1-7": [ + { + "arch": "amd64", + "category": "libs", + "name": "libevent-core-2.1-7", + "origin": "Ubuntu", + "source": "apt", + "version": "2.1.12-stable-1build3" + } + ], + "libexpat1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libexpat1", + "origin": "Ubuntu", + "source": "apt", + "version": "2.4.7-1ubuntu0.2" + } + ], + "libext2fs2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libext2fs2", + "origin": "Ubuntu", + "source": "apt", + "version": "1.46.5-2ubuntu1.1" + } + ], + "libfastjson4": [ + { + "arch": "amd64", + "category": "libs", + "name": "libfastjson4", + "origin": "Ubuntu", + "source": "apt", + "version": "0.99.9-1build2" + } + ], + "libfdisk1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libfdisk1", + "origin": "Ubuntu", + "source": "apt", + "version": "2.37.2-4ubuntu3" + } + ], + "libffi8": [ + { + "arch": "amd64", + "category": "libs", + "name": "libffi8", + "origin": "Ubuntu", + "source": "apt", + "version": "3.4.2-4" + } + ], + "libfido2-1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libfido2-1", + "origin": "Ubuntu", + "source": "apt", + "version": "1.10.0-1" + } + ], + "libfl2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libfl2", + "origin": "Ubuntu", + "source": "apt", + "version": "2.6.4-8build2" + } + ], + "libflashrom1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libflashrom1", + "origin": "Ubuntu", + "source": "apt", + "version": "1.2-5build1" + } + ], + "libfontconfig1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libfontconfig1", + "origin": "Ubuntu", + "source": "apt", + "version": "2.13.1-4.2ubuntu5" + } + ], + "libfreeipmi17": [ + { + "arch": "amd64", + "category": "libs", + "name": "libfreeipmi17", + "origin": "Ubuntu", + "source": "apt", + "version": "1.6.9-2ubuntu0.22.04.2" + } + ], + "libfreeradius3": [ + { + "arch": "amd64", + "category": "net", + "name": "libfreeradius3", + "origin": "Ubuntu", + "source": "apt", + "version": "3.0.26~dfsg~git20220223.1.00ed0241fa-0ubuntu3.1" + } + ], + "libfreetype6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libfreetype6", + "origin": "Ubuntu", + "source": "apt", + "version": "2.11.1+dfsg-1ubuntu0.2" + } + ], + "libfribidi0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libfribidi0", + "origin": "Ubuntu", + "source": "apt", + "version": "1.0.8-2ubuntu3.1" + } + ], + "libfsverity0": [ + { + "arch": "amd64", + "category": "universe/libs", + "name": "libfsverity0", + "origin": "Ubuntu", + "source": "apt", + "version": "1.4-1~exp1build1" + } + ], + "libftdi1-2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libftdi1-2", + "origin": "Ubuntu", + "source": "apt", + "version": "1.5-5build3" + } + ], + "libfuse3-3": [ + { + "arch": "amd64", + "category": "libs", + "name": "libfuse3-3", + "origin": "Ubuntu", + "source": "apt", + "version": "3.10.5-1build1" + } + ], + "libfwupd2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libfwupd2", + "origin": "Ubuntu", + "source": "apt", + "version": "1.7.9-1~22.04.3" + } + ], + "libfwupdplugin5": [ + { + "arch": "amd64", + "category": "libs", + "name": "libfwupdplugin5", + "origin": "Ubuntu", + "source": "apt", + "version": "1.7.9-1~22.04.3" + } + ], + "libgcab-1.0-0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libgcab-1.0-0", + "origin": "Ubuntu", + "source": "apt", + "version": "1.4-3build2" + } + ], + "libgcc-s1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libgcc-s1", + "origin": "Ubuntu", + "source": "apt", + "version": "12.3.0-1ubuntu1~22.04" + } + ], + "libgcrypt20": [ + { + "arch": "amd64", + "category": "libs", + "name": "libgcrypt20", + "origin": "Ubuntu", + "source": "apt", + "version": "1.9.4-3ubuntu3" + } + ], + "libgd3": [ + { + "arch": "amd64", + "category": "libs", + "name": "libgd3", + "origin": "Ubuntu", + "source": "apt", + "version": "2.3.0-2ubuntu2" + } + ], + "libgdbm-compat4": [ + { + "arch": "amd64", + "category": "libs", + "name": "libgdbm-compat4", + "origin": "Ubuntu", + "source": "apt", + "version": "1.23-1" + } + ], + "libgdbm6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libgdbm6", + "origin": "Ubuntu", + "source": "apt", + "version": "1.23-1" + } + ], + "libgirepository-1.0-1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libgirepository-1.0-1", + "origin": "Ubuntu", + "source": "apt", + "version": "1.72.0-1" + } + ], + "libglib2.0-0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libglib2.0-0", + "origin": "Ubuntu", + "source": "apt", + "version": "2.72.4-0ubuntu2.2" + } + ], + "libglib2.0-bin": [ + { + "arch": "amd64", + "category": "misc", + "name": "libglib2.0-bin", + "origin": "Ubuntu", + "source": "apt", + "version": "2.72.4-0ubuntu2.2" + } + ], + "libglib2.0-data": [ + { + "arch": "all", + "category": "misc", + "name": "libglib2.0-data", + "origin": "Ubuntu", + "source": "apt", + "version": "2.72.4-0ubuntu2.2" + } + ], + "libgmp10": [ + { + "arch": "amd64", + "category": "libs", + "name": "libgmp10", + "origin": "Ubuntu", + "source": "apt", + "version": "2:6.2.1+dfsg-3ubuntu1" + } + ], + "libgnutls30": [ + { + "arch": "amd64", + "category": "libs", + "name": "libgnutls30", + "origin": "Ubuntu", + "source": "apt", + "version": "3.7.3-4ubuntu1.3" + } + ], + "libgomp1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libgomp1", + "origin": "Ubuntu", + "source": "apt", + "version": "12.3.0-1ubuntu1~22.04" + } + ], + "libgpg-error0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libgpg-error0", + "origin": "Ubuntu", + "source": "apt", + "version": "1.43-3" + } + ], + "libgpgme11": [ + { + "arch": "amd64", + "category": "libs", + "name": "libgpgme11", + "origin": "Ubuntu", + "source": "apt", + "version": "1.16.0-1.2ubuntu4.1" + } + ], + "libgpm2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libgpm2", + "origin": "Ubuntu", + "source": "apt", + "version": "1.20.7-10build1" + } + ], + "libgraphite2-3": [ + { + "arch": "amd64", + "category": "libs", + "name": "libgraphite2-3", + "origin": "Ubuntu", + "source": "apt", + "version": "1.3.14-1build2" + } + ], + "libgsf-1-114": [ + { + "arch": "amd64", + "category": "libs", + "name": "libgsf-1-114", + "origin": "Ubuntu", + "source": "apt", + "version": "1.14.47-1build2" + } + ], + "libgsf-1-common": [ + { + "arch": "all", + "category": "libs", + "name": "libgsf-1-common", + "origin": "Ubuntu", + "source": "apt", + "version": "1.14.47-1build2" + } + ], + "libgssapi-krb5-2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libgssapi-krb5-2", + "origin": "Ubuntu", + "source": "apt", + "version": "1.19.2-2ubuntu0.3" + } + ], + "libgstreamer1.0-0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libgstreamer1.0-0", + "origin": "Ubuntu", + "source": "apt", + "version": "1.20.3-0ubuntu1" + } + ], + "libgts-0.7-5": [ + { + "arch": "amd64", + "category": "universe/devel", + "name": "libgts-0.7-5", + "origin": "Ubuntu", + "source": "apt", + "version": "0.7.6+darcs121130-5" + } + ], + "libgts-bin": [ + { + "arch": "amd64", + "category": "universe/math", + "name": "libgts-bin", + "origin": "Ubuntu", + "source": "apt", + "version": "0.7.6+darcs121130-5" + } + ], + "libgudev-1.0-0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libgudev-1.0-0", + "origin": "Ubuntu", + "source": "apt", + "version": "1:237-2build1" + } + ], + "libgusb2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libgusb2", + "origin": "Ubuntu", + "source": "apt", + "version": "0.3.10-1" + } + ], + "libgvc6": [ + { + "arch": "amd64", + "category": "universe/libs", + "name": "libgvc6", + "origin": "Ubuntu", + "source": "apt", + "version": "2.42.2-6" + } + ], + "libgvpr2": [ + { + "arch": "amd64", + "category": "universe/libs", + "name": "libgvpr2", + "origin": "Ubuntu", + "source": "apt", + "version": "2.42.2-6" + } + ], + "libharfbuzz0b": [ + { + "arch": "amd64", + "category": "libs", + "name": "libharfbuzz0b", + "origin": "Ubuntu", + "source": "apt", + "version": "2.7.4-1ubuntu3.1" + } + ], + "libhavege2": [ + { + "arch": "amd64", + "category": "universe/libs", + "name": "libhavege2", + "origin": "Ubuntu", + "source": "apt", + "version": "1.9.14-1ubuntu1" + } + ], + "libhogweed6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libhogweed6", + "origin": "Ubuntu", + "source": "apt", + "version": "3.7.3-1build2" + } + ], + "libice6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libice6", + "origin": "Ubuntu", + "source": "apt", + "version": "2:1.0.10-1build2" + } + ], + "libicu70": [ + { + "arch": "amd64", + "category": "libs", + "name": "libicu70", + "origin": "Ubuntu", + "source": "apt", + "version": "70.1-2" + } + ], + "libidn2-0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libidn2-0", + "origin": "Ubuntu", + "source": "apt", + "version": "2.3.2-2build1" + } + ], + "libimobiledevice6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libimobiledevice6", + "origin": "Ubuntu", + "source": "apt", + "version": "1.3.0-6build3" + } + ], + "libinih1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libinih1", + "origin": "Ubuntu", + "source": "apt", + "version": "53-1ubuntu3" + } + ], + "libintl-perl": [ + { + "arch": "all", + "category": "perl", + "name": "libintl-perl", + "origin": "Ubuntu", + "source": "apt", + "version": "1.26-3build2" + } + ], + "libintl-xs-perl": [ + { + "arch": "amd64", + "category": "perl", + "name": "libintl-xs-perl", + "origin": "Ubuntu", + "source": "apt", + "version": "1.26-3build2" + } + ], + "libip4tc2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libip4tc2", + "origin": "Ubuntu", + "source": "apt", + "version": "1.8.7-1ubuntu5.1" + } + ], + "libip6tc2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libip6tc2", + "origin": "Ubuntu", + "source": "apt", + "version": "1.8.7-1ubuntu5.1" + } + ], + "libipmiconsole2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libipmiconsole2", + "origin": "Ubuntu", + "source": "apt", + "version": "1.6.9-2ubuntu0.22.04.2" + } + ], + "libipmidetect0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libipmidetect0", + "origin": "Ubuntu", + "source": "apt", + "version": "1.6.9-2ubuntu0.22.04.2" + } + ], + "libisc-export1105": [ + { + "arch": "amd64", + "category": "libs", + "name": "libisc-export1105", + "origin": "Ubuntu", + "source": "apt", + "version": "1:9.11.19+dfsg-2.1ubuntu3" + } + ], + "libisns0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libisns0", + "origin": "Ubuntu", + "source": "apt", + "version": "0.101-0ubuntu2" + } + ], + "libjansson4": [ + { + "arch": "amd64", + "category": "libs", + "name": "libjansson4", + "origin": "Ubuntu", + "source": "apt", + "version": "2.13.1-1.1build3" + } + ], + "libjbig0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libjbig0", + "origin": "Ubuntu", + "source": "apt", + "version": "2.1-3.1ubuntu0.22.04.1" + } + ], + "libjcat1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libjcat1", + "origin": "Ubuntu", + "source": "apt", + "version": "0.1.9-1" + } + ], + "libjpeg-turbo8": [ + { + "arch": "amd64", + "category": "libs", + "name": "libjpeg-turbo8", + "origin": "Ubuntu", + "source": "apt", + "version": "2.1.2-0ubuntu1" + } + ], + "libjpeg8": [ + { + "arch": "amd64", + "category": "libs", + "name": "libjpeg8", + "origin": "Ubuntu", + "source": "apt", + "version": "8c-2ubuntu10" + } + ], + "libjs-jquery": [ + { + "arch": "all", + "category": "web", + "name": "libjs-jquery", + "origin": "Ubuntu", + "source": "apt", + "version": "3.6.0+dfsg+~3.5.13-1" + } + ], + "libjson-c5": [ + { + "arch": "amd64", + "category": "libs", + "name": "libjson-c5", + "origin": "Ubuntu", + "source": "apt", + "version": "0.15-3~ubuntu1.22.04.2" + } + ], + "libjson-glib-1.0-0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libjson-glib-1.0-0", + "origin": "Ubuntu", + "source": "apt", + "version": "1.6.6-1build1" + } + ], + "libjson-glib-1.0-common": [ + { + "arch": "all", + "category": "libs", + "name": "libjson-glib-1.0-common", + "origin": "Ubuntu", + "source": "apt", + "version": "1.6.6-1build1" + } + ], + "libk5crypto3": [ + { + "arch": "amd64", + "category": "libs", + "name": "libk5crypto3", + "origin": "Ubuntu", + "source": "apt", + "version": "1.19.2-2ubuntu0.3" + } + ], + "libkeyutils1": [ + { + "arch": "amd64", + "category": "misc", + "name": "libkeyutils1", + "origin": "Ubuntu", + "source": "apt", + "version": "1.6.1-2ubuntu3" + } + ], + "libklibc": [ + { + "arch": "amd64", + "category": "libs", + "name": "libklibc", + "origin": "Ubuntu", + "source": "apt", + "version": "2.0.10-4" + } + ], + "libkmod2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libkmod2", + "origin": "Ubuntu", + "source": "apt", + "version": "29-1ubuntu1" + } + ], + "libkrb5-3": [ + { + "arch": "amd64", + "category": "libs", + "name": "libkrb5-3", + "origin": "Ubuntu", + "source": "apt", + "version": "1.19.2-2ubuntu0.3" + } + ], + "libkrb5support0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libkrb5support0", + "origin": "Ubuntu", + "source": "apt", + "version": "1.19.2-2ubuntu0.3" + } + ], + "libksba8": [ + { + "arch": "amd64", + "category": "libs", + "name": "libksba8", + "origin": "Ubuntu", + "source": "apt", + "version": "1.6.0-2ubuntu0.2" + } + ], + "liblab-gamut1": [ + { + "arch": "amd64", + "category": "universe/libs", + "name": "liblab-gamut1", + "origin": "Ubuntu", + "source": "apt", + "version": "2.42.2-6" + } + ], + "liblcms2-2": [ + { + "arch": "amd64", + "category": "libs", + "name": "liblcms2-2", + "origin": "Ubuntu", + "source": "apt", + "version": "2.12~rc1-2build2" + } + ], + "libldap-2.5-0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libldap-2.5-0", + "origin": "Ubuntu", + "source": "apt", + "version": "2.5.16+dfsg-0ubuntu0.22.04.1" + } + ], + "libldap-common": [ + { + "arch": "all", + "category": "libs", + "name": "libldap-common", + "origin": "Ubuntu", + "source": "apt", + "version": "2.5.16+dfsg-0ubuntu0.22.04.1" + } + ], + "libldb2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libldb2", + "origin": "Ubuntu", + "source": "apt", + "version": "2:2.4.4-0ubuntu0.22.04.2" + } + ], + "liblmdb0": [ + { + "arch": "amd64", + "category": "libs", + "name": "liblmdb0", + "origin": "Ubuntu", + "source": "apt", + "version": "0.9.24-1build2" + } + ], + "liblocale-gettext-perl": [ + { + "arch": "amd64", + "category": "perl", + "name": "liblocale-gettext-perl", + "origin": "Ubuntu", + "source": "apt", + "version": "1.07-4build3" + } + ], + "libltdl7": [ + { + "arch": "amd64", + "category": "libs", + "name": "libltdl7", + "origin": "Ubuntu", + "source": "apt", + "version": "2.4.6-15build2" + } + ], + "liblua5.2-0": [ + { + "arch": "amd64", + "category": "universe/libs", + "name": "liblua5.2-0", + "origin": "Ubuntu", + "source": "apt", + "version": "5.2.4-2" + } + ], + "liblua5.3-0": [ + { + "arch": "amd64", + "category": "libs", + "name": "liblua5.3-0", + "origin": "Ubuntu", + "source": "apt", + "version": "5.3.6-1build1" + } + ], + "liblvm2cmd2.03": [ + { + "arch": "amd64", + "category": "libs", + "name": "liblvm2cmd2.03", + "origin": "Ubuntu", + "source": "apt", + "version": "2.03.11-2.1ubuntu4" + } + ], + "liblz4-1": [ + { + "arch": "amd64", + "category": "libs", + "name": "liblz4-1", + "origin": "Ubuntu", + "source": "apt", + "version": "1.9.3-2build2" + } + ], + "liblzma5": [ + { + "arch": "amd64", + "category": "libs", + "name": "liblzma5", + "origin": "Ubuntu", + "source": "apt", + "version": "5.2.5-2ubuntu1" + } + ], + "liblzo2-2": [ + { + "arch": "amd64", + "category": "libs", + "name": "liblzo2-2", + "origin": "Ubuntu", + "source": "apt", + "version": "2.10-2build3" + } + ], + "libmagic-mgc": [ + { + "arch": "amd64", + "category": "libs", + "name": "libmagic-mgc", + "origin": "Ubuntu", + "source": "apt", + "version": "1:5.41-3ubuntu0.1" + } + ], + "libmagic1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libmagic1", + "origin": "Ubuntu", + "source": "apt", + "version": "1:5.41-3ubuntu0.1" + } + ], + "libmaxminddb0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libmaxminddb0", + "origin": "Ubuntu", + "source": "apt", + "version": "1.5.2-1build2" + } + ], + "libmbim-glib4": [ + { + "arch": "amd64", + "category": "libs", + "name": "libmbim-glib4", + "origin": "Ubuntu", + "source": "apt", + "version": "1.28.0-1~ubuntu20.04.1" + } + ], + "libmbim-proxy": [ + { + "arch": "amd64", + "category": "net", + "name": "libmbim-proxy", + "origin": "Ubuntu", + "source": "apt", + "version": "1.28.0-1~ubuntu20.04.1" + } + ], + "libmd0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libmd0", + "origin": "Ubuntu", + "source": "apt", + "version": "1.0.4-1build1" + } + ], + "libmm-glib0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libmm-glib0", + "origin": "Ubuntu", + "source": "apt", + "version": "1.20.0-1~ubuntu22.04.2" + } + ], + "libmnl0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libmnl0", + "origin": "Ubuntu", + "source": "apt", + "version": "1.0.4-3build2" + } + ], + "libmodule-find-perl": [ + { + "arch": "all", + "category": "perl", + "name": "libmodule-find-perl", + "origin": "Ubuntu", + "source": "apt", + "version": "0.15-1" + } + ], + "libmodule-scandeps-perl": [ + { + "arch": "all", + "category": "perl", + "name": "libmodule-scandeps-perl", + "origin": "Ubuntu", + "source": "apt", + "version": "1.31-1" + } + ], + "libmount1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libmount1", + "origin": "Ubuntu", + "source": "apt", + "version": "2.37.2-4ubuntu3" + } + ], + "libmpdec3": [ + { + "arch": "amd64", + "category": "libs", + "name": "libmpdec3", + "origin": "Ubuntu", + "source": "apt", + "version": "2.5.1-2build2" + } + ], + "libmpfr6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libmpfr6", + "origin": "Ubuntu", + "source": "apt", + "version": "4.1.0-3build3" + } + ], + "libmspack0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libmspack0", + "origin": "Ubuntu", + "source": "apt", + "version": "0.10.1-2build2" + } + ], + "libncurses6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libncurses6", + "origin": "Ubuntu", + "source": "apt", + "version": "6.3-2ubuntu0.1" + } + ], + "libncursesw6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libncursesw6", + "origin": "Ubuntu", + "source": "apt", + "version": "6.3-2ubuntu0.1" + } + ], + "libnetfilter-conntrack3": [ + { + "arch": "amd64", + "category": "libs", + "name": "libnetfilter-conntrack3", + "origin": "Ubuntu", + "source": "apt", + "version": "1.0.9-1" + } + ], + "libnetplan0": [ + { + "arch": "amd64", + "category": "net", + "name": "libnetplan0", + "origin": "Ubuntu", + "source": "apt", + "version": "0.106.1-7ubuntu0.22.04.2" + } + ], + "libnettle8": [ + { + "arch": "amd64", + "category": "libs", + "name": "libnettle8", + "origin": "Ubuntu", + "source": "apt", + "version": "3.7.3-1build2" + } + ], + "libnewt0.52": [ + { + "arch": "amd64", + "category": "libs", + "name": "libnewt0.52", + "origin": "Ubuntu", + "source": "apt", + "version": "0.52.21-5ubuntu2" + } + ], + "libnfnetlink0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libnfnetlink0", + "origin": "Ubuntu", + "source": "apt", + "version": "1.0.1-3build3" + } + ], + "libnftables1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libnftables1", + "origin": "Ubuntu", + "source": "apt", + "version": "1.0.2-1ubuntu3" + } + ], + "libnftnl11": [ + { + "arch": "amd64", + "category": "libs", + "name": "libnftnl11", + "origin": "Ubuntu", + "source": "apt", + "version": "1.2.1-1build1" + } + ], + "libnghttp2-14": [ + { + "arch": "amd64", + "category": "libs", + "name": "libnghttp2-14", + "origin": "Ubuntu", + "source": "apt", + "version": "1.43.0-1ubuntu0.1" + } + ], + "libnl-3-200": [ + { + "arch": "amd64", + "category": "libs", + "name": "libnl-3-200", + "origin": "Ubuntu", + "source": "apt", + "version": "3.5.0-0.1" + } + ], + "libnl-genl-3-200": [ + { + "arch": "amd64", + "category": "libs", + "name": "libnl-genl-3-200", + "origin": "Ubuntu", + "source": "apt", + "version": "3.5.0-0.1" + } + ], + "libnpth0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libnpth0", + "origin": "Ubuntu", + "source": "apt", + "version": "1.6-3build2" + } + ], + "libnsl2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libnsl2", + "origin": "Ubuntu", + "source": "apt", + "version": "1.3.0-2build2" + } + ], + "libnspr4": [ + { + "arch": "amd64", + "category": "libs", + "name": "libnspr4", + "origin": "Ubuntu", + "source": "apt", + "version": "2:4.32-3build1" + } + ], + "libnss-systemd": [ + { + "arch": "amd64", + "category": "admin", + "name": "libnss-systemd", + "origin": "Ubuntu", + "source": "apt", + "version": "249.11-0ubuntu3.11" + } + ], + "libnss3": [ + { + "arch": "amd64", + "category": "libs", + "name": "libnss3", + "origin": "Ubuntu", + "source": "apt", + "version": "2:3.68.2-0ubuntu1.2" + } + ], + "libntfs-3g89": [ + { + "arch": "amd64", + "category": "libs", + "name": "libntfs-3g89", + "origin": "Ubuntu", + "source": "apt", + "version": "1:2021.8.22-3ubuntu1.2" + } + ], + "libnuma1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libnuma1", + "origin": "Ubuntu", + "source": "apt", + "version": "2.0.14-3ubuntu2" + } + ], + "libopeniscsiusr": [ + { + "arch": "amd64", + "category": "net", + "name": "libopeniscsiusr", + "origin": "Ubuntu", + "source": "apt", + "version": "2.1.5-1ubuntu1" + } + ], + "libopenjp2-7": [ + { + "arch": "amd64", + "category": "libs", + "name": "libopenjp2-7", + "origin": "Ubuntu", + "source": "apt", + "version": "2.4.0-6" + } + ], + "libp11-kit0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libp11-kit0", + "origin": "Ubuntu", + "source": "apt", + "version": "0.24.0-6build1" + } + ], + "libpackagekit-glib2-18": [ + { + "arch": "amd64", + "category": "libs", + "name": "libpackagekit-glib2-18", + "origin": "Ubuntu", + "source": "apt", + "version": "1.2.5-2ubuntu2" + } + ], + "libpam-cap": [ + { + "arch": "amd64", + "category": "libs", + "name": "libpam-cap", + "origin": "Ubuntu", + "source": "apt", + "version": "1:2.44-1ubuntu0.22.04.1" + } + ], + "libpam-modules": [ + { + "arch": "amd64", + "category": "admin", + "name": "libpam-modules", + "origin": "Ubuntu", + "source": "apt", + "version": "1.4.0-11ubuntu2.3" + } + ], + "libpam-modules-bin": [ + { + "arch": "amd64", + "category": "admin", + "name": "libpam-modules-bin", + "origin": "Ubuntu", + "source": "apt", + "version": "1.4.0-11ubuntu2.3" + } + ], + "libpam-runtime": [ + { + "arch": "all", + "category": "admin", + "name": "libpam-runtime", + "origin": "Ubuntu", + "source": "apt", + "version": "1.4.0-11ubuntu2.3" + } + ], + "libpam-systemd": [ + { + "arch": "amd64", + "category": "admin", + "name": "libpam-systemd", + "origin": "Ubuntu", + "source": "apt", + "version": "249.11-0ubuntu3.11" + } + ], + "libpam0g": [ + { + "arch": "amd64", + "category": "libs", + "name": "libpam0g", + "origin": "Ubuntu", + "source": "apt", + "version": "1.4.0-11ubuntu2.3" + } + ], + "libpango-1.0-0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libpango-1.0-0", + "origin": "Ubuntu", + "source": "apt", + "version": "1.50.6+ds-2ubuntu1" + } + ], + "libpangocairo-1.0-0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libpangocairo-1.0-0", + "origin": "Ubuntu", + "source": "apt", + "version": "1.50.6+ds-2ubuntu1" + } + ], + "libpangoft2-1.0-0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libpangoft2-1.0-0", + "origin": "Ubuntu", + "source": "apt", + "version": "1.50.6+ds-2ubuntu1" + } + ], + "libparted-fs-resize0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libparted-fs-resize0", + "origin": "Ubuntu", + "source": "apt", + "version": "3.4-2build1" + } + ], + "libparted2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libparted2", + "origin": "Ubuntu", + "source": "apt", + "version": "3.4-2build1" + } + ], + "libpathplan4": [ + { + "arch": "amd64", + "category": "universe/libs", + "name": "libpathplan4", + "origin": "Ubuntu", + "source": "apt", + "version": "2.42.2-6" + } + ], + "libpcap0.8": [ + { + "arch": "amd64", + "category": "libs", + "name": "libpcap0.8", + "origin": "Ubuntu", + "source": "apt", + "version": "1.10.1-4build1" + } + ], + "libpci3": [ + { + "arch": "amd64", + "category": "libs", + "name": "libpci3", + "origin": "Ubuntu", + "source": "apt", + "version": "1:3.7.0-6" + } + ], + "libpcre2-8-0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libpcre2-8-0", + "origin": "Ubuntu", + "source": "apt", + "version": "10.39-3ubuntu0.1" + } + ], + "libpcre3": [ + { + "arch": "amd64", + "category": "libs", + "name": "libpcre3", + "origin": "Ubuntu", + "source": "apt", + "version": "2:8.39-13ubuntu0.22.04.1" + } + ], + "libperl5.34": [ + { + "arch": "amd64", + "category": "libs", + "name": "libperl5.34", + "origin": "Ubuntu", + "source": "apt", + "version": "5.34.0-3ubuntu1.3" + } + ], + "libpipeline1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libpipeline1", + "origin": "Ubuntu", + "source": "apt", + "version": "1.5.5-1" + } + ], + "libpixman-1-0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libpixman-1-0", + "origin": "Ubuntu", + "source": "apt", + "version": "0.40.0-1ubuntu0.22.04.1" + } + ], + "libplist3": [ + { + "arch": "amd64", + "category": "libs", + "name": "libplist3", + "origin": "Ubuntu", + "source": "apt", + "version": "2.2.0-6build2" + } + ], + "libplymouth5": [ + { + "arch": "amd64", + "category": "libs", + "name": "libplymouth5", + "origin": "Ubuntu", + "source": "apt", + "version": "0.9.5+git20211018-1ubuntu3" + } + ], + "libpng16-16": [ + { + "arch": "amd64", + "category": "libs", + "name": "libpng16-16", + "origin": "Ubuntu", + "source": "apt", + "version": "1.6.37-3build5" + } + ], + "libpolkit-agent-1-0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libpolkit-agent-1-0", + "origin": "Ubuntu", + "source": "apt", + "version": "0.105-33" + } + ], + "libpolkit-gobject-1-0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libpolkit-gobject-1-0", + "origin": "Ubuntu", + "source": "apt", + "version": "0.105-33" + } + ], + "libpoppler118": [ + { + "arch": "amd64", + "category": "libs", + "name": "libpoppler118", + "origin": "Ubuntu", + "source": "apt", + "version": "22.02.0-2ubuntu0.3" + } + ], + "libpopt0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libpopt0", + "origin": "Ubuntu", + "source": "apt", + "version": "1.18-3build1" + } + ], + "libpq5": [ + { + "arch": "amd64", + "category": "libs", + "name": "libpq5", + "origin": "Ubuntu", + "source": "apt", + "version": "14.10-0ubuntu0.22.04.1" + } + ], + "libproc-processtable-perl": [ + { + "arch": "amd64", + "category": "perl", + "name": "libproc-processtable-perl", + "origin": "Ubuntu", + "source": "apt", + "version": "0.634-1build1" + } + ], + "libprocps8": [ + { + "arch": "amd64", + "category": "libs", + "name": "libprocps8", + "origin": "Ubuntu", + "source": "apt", + "version": "2:3.3.17-6ubuntu2.1" + } + ], + "libpsl5": [ + { + "arch": "amd64", + "category": "libs", + "name": "libpsl5", + "origin": "Ubuntu", + "source": "apt", + "version": "0.21.0-1.2build2" + } + ], + "libpython3-stdlib": [ + { + "arch": "amd64", + "category": "python", + "name": "libpython3-stdlib", + "origin": "Ubuntu", + "source": "apt", + "version": "3.10.6-1~22.04" + } + ], + "libpython3.10": [ + { + "arch": "amd64", + "category": "libs", + "name": "libpython3.10", + "origin": "Ubuntu", + "source": "apt", + "version": "3.10.12-1~22.04.3" + } + ], + "libpython3.10-minimal": [ + { + "arch": "amd64", + "category": "python", + "name": "libpython3.10-minimal", + "origin": "Ubuntu", + "source": "apt", + "version": "3.10.12-1~22.04.3" + } + ], + "libpython3.10-stdlib": [ + { + "arch": "amd64", + "category": "python", + "name": "libpython3.10-stdlib", + "origin": "Ubuntu", + "source": "apt", + "version": "3.10.12-1~22.04.3" + } + ], + "libqmi-glib5": [ + { + "arch": "amd64", + "category": "libs", + "name": "libqmi-glib5", + "origin": "Ubuntu", + "source": "apt", + "version": "1.32.0-1ubuntu0.22.04.1" + } + ], + "libqmi-proxy": [ + { + "arch": "amd64", + "category": "net", + "name": "libqmi-proxy", + "origin": "Ubuntu", + "source": "apt", + "version": "1.32.0-1ubuntu0.22.04.1" + } + ], + "libreadline8": [ + { + "arch": "amd64", + "category": "libs", + "name": "libreadline8", + "origin": "Ubuntu", + "source": "apt", + "version": "8.1.2-1" + } + ], + "librpm9": [ + { + "arch": "amd64", + "category": "universe/libs", + "name": "librpm9", + "origin": "Ubuntu", + "source": "apt", + "version": "4.17.0+dfsg1-4build1" + } + ], + "librpmbuild9": [ + { + "arch": "amd64", + "category": "universe/libs", + "name": "librpmbuild9", + "origin": "Ubuntu", + "source": "apt", + "version": "4.17.0+dfsg1-4build1" + } + ], + "librpmio9": [ + { + "arch": "amd64", + "category": "universe/libs", + "name": "librpmio9", + "origin": "Ubuntu", + "source": "apt", + "version": "4.17.0+dfsg1-4build1" + } + ], + "librpmsign9": [ + { + "arch": "amd64", + "category": "universe/libs", + "name": "librpmsign9", + "origin": "Ubuntu", + "source": "apt", + "version": "4.17.0+dfsg1-4build1" + } + ], + "librtmp1": [ + { + "arch": "amd64", + "category": "libs", + "name": "librtmp1", + "origin": "Ubuntu", + "source": "apt", + "version": "2.4+20151223.gitfa8646d.1-2build4" + } + ], + "libruby3.0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libruby3.0", + "origin": "Ubuntu", + "source": "apt", + "version": "3.0.2-7ubuntu2.4" + } + ], + "libsasl2-2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libsasl2-2", + "origin": "Ubuntu", + "source": "apt", + "version": "2.1.27+dfsg2-3ubuntu1.2" + } + ], + "libsasl2-modules": [ + { + "arch": "amd64", + "category": "devel", + "name": "libsasl2-modules", + "origin": "Ubuntu", + "source": "apt", + "version": "2.1.27+dfsg2-3ubuntu1.2" + } + ], + "libsasl2-modules-db": [ + { + "arch": "amd64", + "category": "libs", + "name": "libsasl2-modules-db", + "origin": "Ubuntu", + "source": "apt", + "version": "2.1.27+dfsg2-3ubuntu1.2" + } + ], + "libseccomp2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libseccomp2", + "origin": "Ubuntu", + "source": "apt", + "version": "2.5.3-2ubuntu2" + } + ], + "libselinux1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libselinux1", + "origin": "Ubuntu", + "source": "apt", + "version": "3.3-1build2" + } + ], + "libsemanage-common": [ + { + "arch": "all", + "category": "libs", + "name": "libsemanage-common", + "origin": "Ubuntu", + "source": "apt", + "version": "3.3-1build2" + } + ], + "libsemanage2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libsemanage2", + "origin": "Ubuntu", + "source": "apt", + "version": "3.3-1build2" + } + ], + "libsensors-config": [ + { + "arch": "all", + "category": "utils", + "name": "libsensors-config", + "origin": "Ubuntu", + "source": "apt", + "version": "1:3.6.0-7ubuntu1" + } + ], + "libsensors5": [ + { + "arch": "amd64", + "category": "libs", + "name": "libsensors5", + "origin": "Ubuntu", + "source": "apt", + "version": "1:3.6.0-7ubuntu1" + } + ], + "libsepol2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libsepol2", + "origin": "Ubuntu", + "source": "apt", + "version": "3.3-1build1" + } + ], + "libsgutils2-2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libsgutils2-2", + "origin": "Ubuntu", + "source": "apt", + "version": "1.46-1ubuntu0.22.04.1" + } + ], + "libsigsegv2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libsigsegv2", + "origin": "Ubuntu", + "source": "apt", + "version": "2.13-1ubuntu3" + } + ], + "libslang2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libslang2", + "origin": "Ubuntu", + "source": "apt", + "version": "2.3.2-5build4" + } + ], + "libsm6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libsm6", + "origin": "Ubuntu", + "source": "apt", + "version": "2:1.2.3-1build2" + } + ], + "libsmartcols1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libsmartcols1", + "origin": "Ubuntu", + "source": "apt", + "version": "2.37.2-4ubuntu3" + } + ], + "libsmbclient": [ + { + "arch": "amd64", + "category": "libs", + "name": "libsmbclient", + "origin": "Ubuntu", + "source": "apt", + "version": "2:4.15.13+dfsg-0ubuntu1.5" + } + ], + "libsmbios-c2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libsmbios-c2", + "origin": "Ubuntu", + "source": "apt", + "version": "2.4.3-1build1" + } + ], + "libsodium23": [ + { + "arch": "amd64", + "category": "libs", + "name": "libsodium23", + "origin": "Ubuntu", + "source": "apt", + "version": "1.0.18-1build2" + } + ], + "libsort-naturally-perl": [ + { + "arch": "all", + "category": "perl", + "name": "libsort-naturally-perl", + "origin": "Ubuntu", + "source": "apt", + "version": "1.03-2" + } + ], + "libsqlite3-0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libsqlite3-0", + "origin": "Ubuntu", + "source": "apt", + "version": "3.37.2-2ubuntu0.1" + } + ], + "libss2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libss2", + "origin": "Ubuntu", + "source": "apt", + "version": "1.46.5-2ubuntu1.1" + } + ], + "libssh-4": [ + { + "arch": "amd64", + "category": "libs", + "name": "libssh-4", + "origin": "", + "source": "apt", + "version": "0.9.6-2ubuntu0.22.04.1" + } + ], + "libssl3": [ + { + "arch": "amd64", + "category": "libs", + "name": "libssl3", + "origin": "Ubuntu", + "source": "apt", + "version": "3.0.2-0ubuntu1.12" + } + ], + "libstdc++6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libstdc++6", + "origin": "Ubuntu", + "source": "apt", + "version": "12.3.0-1ubuntu1~22.04" + } + ], + "libstemmer0d": [ + { + "arch": "amd64", + "category": "libs", + "name": "libstemmer0d", + "origin": "Ubuntu", + "source": "apt", + "version": "2.2.0-1build1" + } + ], + "libsystemd0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libsystemd0", + "origin": "Ubuntu", + "source": "apt", + "version": "249.11-0ubuntu3.11" + } + ], + "libtalloc2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libtalloc2", + "origin": "Ubuntu", + "source": "apt", + "version": "2.3.3-2build1" + } + ], + "libtasn1-6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libtasn1-6", + "origin": "Ubuntu", + "source": "apt", + "version": "4.18.0-4build1" + } + ], + "libtcl8.6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libtcl8.6", + "origin": "Ubuntu", + "source": "apt", + "version": "8.6.12+dfsg-1build1" + } + ], + "libtdb1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libtdb1", + "origin": "Ubuntu", + "source": "apt", + "version": "1.4.5-2build1" + } + ], + "libterm-readkey-perl": [ + { + "arch": "amd64", + "category": "perl", + "name": "libterm-readkey-perl", + "origin": "Ubuntu", + "source": "apt", + "version": "2.38-1build4" + } + ], + "libtevent0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libtevent0", + "origin": "Ubuntu", + "source": "apt", + "version": "0.11.0-1build1" + } + ], + "libtext-charwidth-perl": [ + { + "arch": "amd64", + "category": "perl", + "name": "libtext-charwidth-perl", + "origin": "Ubuntu", + "source": "apt", + "version": "0.04-10build3" + } + ], + "libtext-iconv-perl": [ + { + "arch": "amd64", + "category": "perl", + "name": "libtext-iconv-perl", + "origin": "Ubuntu", + "source": "apt", + "version": "1.7-7build3" + } + ], + "libtext-wrapi18n-perl": [ + { + "arch": "all", + "category": "perl", + "name": "libtext-wrapi18n-perl", + "origin": "Ubuntu", + "source": "apt", + "version": "0.06-9" + } + ], + "libthai-data": [ + { + "arch": "all", + "category": "libs", + "name": "libthai-data", + "origin": "Ubuntu", + "source": "apt", + "version": "0.1.29-1build1" + } + ], + "libthai0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libthai0", + "origin": "Ubuntu", + "source": "apt", + "version": "0.1.29-1build1" + } + ], + "libtiff5": [ + { + "arch": "amd64", + "category": "libs", + "name": "libtiff5", + "origin": "Ubuntu", + "source": "apt", + "version": "4.3.0-6ubuntu0.7" + } + ], + "libtinfo6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libtinfo6", + "origin": "Ubuntu", + "source": "apt", + "version": "6.3-2ubuntu0.1" + } + ], + "libtirpc-common": [ + { + "arch": "all", + "category": "libs", + "name": "libtirpc-common", + "origin": "Ubuntu", + "source": "apt", + "version": "1.3.2-2ubuntu0.1" + } + ], + "libtirpc3": [ + { + "arch": "amd64", + "category": "libs", + "name": "libtirpc3", + "origin": "Ubuntu", + "source": "apt", + "version": "1.3.2-2ubuntu0.1" + } + ], + "libtss2-esys-3.0.2-0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libtss2-esys-3.0.2-0", + "origin": "Ubuntu", + "source": "apt", + "version": "3.2.0-1ubuntu1" + } + ], + "libtss2-mu0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libtss2-mu0", + "origin": "Ubuntu", + "source": "apt", + "version": "3.2.0-1ubuntu1" + } + ], + "libtss2-sys1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libtss2-sys1", + "origin": "Ubuntu", + "source": "apt", + "version": "3.2.0-1ubuntu1" + } + ], + "libtss2-tcti-cmd0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libtss2-tcti-cmd0", + "origin": "Ubuntu", + "source": "apt", + "version": "3.2.0-1ubuntu1" + } + ], + "libtss2-tcti-device0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libtss2-tcti-device0", + "origin": "Ubuntu", + "source": "apt", + "version": "3.2.0-1ubuntu1" + } + ], + "libtss2-tcti-mssim0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libtss2-tcti-mssim0", + "origin": "Ubuntu", + "source": "apt", + "version": "3.2.0-1ubuntu1" + } + ], + "libtss2-tcti-swtpm0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libtss2-tcti-swtpm0", + "origin": "Ubuntu", + "source": "apt", + "version": "3.2.0-1ubuntu1" + } + ], + "libuchardet0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libuchardet0", + "origin": "Ubuntu", + "source": "apt", + "version": "0.0.7-1build2" + } + ], + "libudev1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libudev1", + "origin": "Ubuntu", + "source": "apt", + "version": "249.11-0ubuntu3.11" + } + ], + "libudisks2-0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libudisks2-0", + "origin": "Ubuntu", + "source": "apt", + "version": "2.9.4-1ubuntu2" + } + ], + "libunistring2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libunistring2", + "origin": "Ubuntu", + "source": "apt", + "version": "1.0-1" + } + ], + "libunwind8": [ + { + "arch": "amd64", + "category": "libs", + "name": "libunwind8", + "origin": "Ubuntu", + "source": "apt", + "version": "1.3.2-2build2.1" + } + ], + "libupower-glib3": [ + { + "arch": "amd64", + "category": "libs", + "name": "libupower-glib3", + "origin": "Ubuntu", + "source": "apt", + "version": "0.99.17-1" + } + ], + "liburcu8": [ + { + "arch": "amd64", + "category": "libs", + "name": "liburcu8", + "origin": "Ubuntu", + "source": "apt", + "version": "0.13.1-1" + } + ], + "liburing2": [ + { + "arch": "amd64", + "category": "libs", + "name": "liburing2", + "origin": "Ubuntu", + "source": "apt", + "version": "2.1-2build1" + } + ], + "libusb-1.0-0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libusb-1.0-0", + "origin": "Ubuntu", + "source": "apt", + "version": "2:1.0.25-1ubuntu2" + } + ], + "libusbmuxd6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libusbmuxd6", + "origin": "Ubuntu", + "source": "apt", + "version": "2.0.2-3build2" + } + ], + "libutempter0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libutempter0", + "origin": "Ubuntu", + "source": "apt", + "version": "1.2.1-2build2" + } + ], + "libuuid1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libuuid1", + "origin": "Ubuntu", + "source": "apt", + "version": "2.37.2-4ubuntu3" + } + ], + "libuv1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libuv1", + "origin": "Ubuntu", + "source": "apt", + "version": "1.43.0-1" + } + ], + "libvolume-key1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libvolume-key1", + "origin": "Ubuntu", + "source": "apt", + "version": "0.3.12-3.1build3" + } + ], + "libwbclient0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libwbclient0", + "origin": "Ubuntu", + "source": "apt", + "version": "2:4.15.13+dfsg-0ubuntu1.5" + } + ], + "libwebp7": [ + { + "arch": "amd64", + "category": "libs", + "name": "libwebp7", + "origin": "Ubuntu", + "source": "apt", + "version": "1.2.2-2ubuntu0.22.04.2" + } + ], + "libwrap0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libwrap0", + "origin": "Ubuntu", + "source": "apt", + "version": "7.6.q-31build2" + } + ], + "libx11-6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libx11-6", + "origin": "Ubuntu", + "source": "apt", + "version": "2:1.7.5-1ubuntu0.3" + } + ], + "libx11-data": [ + { + "arch": "all", + "category": "x11", + "name": "libx11-data", + "origin": "Ubuntu", + "source": "apt", + "version": "2:1.7.5-1ubuntu0.3" + } + ], + "libxau6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libxau6", + "origin": "Ubuntu", + "source": "apt", + "version": "1:1.0.9-1build5" + } + ], + "libxaw7": [ + { + "arch": "amd64", + "category": "libs", + "name": "libxaw7", + "origin": "Ubuntu", + "source": "apt", + "version": "2:1.0.14-1" + } + ], + "libxcb-render0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libxcb-render0", + "origin": "Ubuntu", + "source": "apt", + "version": "1.14-3ubuntu3" + } + ], + "libxcb-shm0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libxcb-shm0", + "origin": "Ubuntu", + "source": "apt", + "version": "1.14-3ubuntu3" + } + ], + "libxcb1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libxcb1", + "origin": "Ubuntu", + "source": "apt", + "version": "1.14-3ubuntu3" + } + ], + "libxdmcp6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libxdmcp6", + "origin": "Ubuntu", + "source": "apt", + "version": "1:1.1.3-0ubuntu5" + } + ], + "libxext6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libxext6", + "origin": "Ubuntu", + "source": "apt", + "version": "2:1.3.4-1build1" + } + ], + "libxml2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libxml2", + "origin": "Ubuntu", + "source": "apt", + "version": "2.9.13+dfsg-1ubuntu0.3" + } + ], + "libxmlb2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libxmlb2", + "origin": "Ubuntu", + "source": "apt", + "version": "0.3.6-2build1" + } + ], + "libxmlsec1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libxmlsec1", + "origin": "Ubuntu", + "source": "apt", + "version": "1.2.33-1build2" + } + ], + "libxmlsec1-openssl": [ + { + "arch": "amd64", + "category": "libs", + "name": "libxmlsec1-openssl", + "origin": "Ubuntu", + "source": "apt", + "version": "1.2.33-1build2" + } + ], + "libxmu6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libxmu6", + "origin": "Ubuntu", + "source": "apt", + "version": "2:1.1.3-3" + } + ], + "libxmuu1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libxmuu1", + "origin": "Ubuntu", + "source": "apt", + "version": "2:1.1.3-3" + } + ], + "libxpm4": [ + { + "arch": "amd64", + "category": "libs", + "name": "libxpm4", + "origin": "Ubuntu", + "source": "apt", + "version": "1:3.5.12-1ubuntu0.22.04.2" + } + ], + "libxrender1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libxrender1", + "origin": "Ubuntu", + "source": "apt", + "version": "1:0.9.10-1build4" + } + ], + "libxslt1.1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libxslt1.1", + "origin": "Ubuntu", + "source": "apt", + "version": "1.1.34-4ubuntu0.22.04.1" + } + ], + "libxt6": [ + { + "arch": "amd64", + "category": "libs", + "name": "libxt6", + "origin": "Ubuntu", + "source": "apt", + "version": "1:1.2.1-1" + } + ], + "libxtables12": [ + { + "arch": "amd64", + "category": "libs", + "name": "libxtables12", + "origin": "Ubuntu", + "source": "apt", + "version": "1.8.7-1ubuntu5.1" + } + ], + "libxxhash0": [ + { + "arch": "amd64", + "category": "libs", + "name": "libxxhash0", + "origin": "Ubuntu", + "source": "apt", + "version": "0.8.1-1" + } + ], + "libyaml-0-2": [ + { + "arch": "amd64", + "category": "libs", + "name": "libyaml-0-2", + "origin": "Ubuntu", + "source": "apt", + "version": "0.2.2-1build2" + } + ], + "libzstd1": [ + { + "arch": "amd64", + "category": "libs", + "name": "libzstd1", + "origin": "Ubuntu", + "source": "apt", + "version": "1.4.8+dfsg-3build1" + } + ], + "linux-base": [ + { + "arch": "all", + "category": "kernel", + "name": "linux-base", + "origin": "Ubuntu", + "source": "apt", + "version": "4.5ubuntu9" + } + ], + "linux-cloud-tools-5.15.0-89": [ + { + "arch": "amd64", + "category": "devel", + "name": "linux-cloud-tools-5.15.0-89", + "origin": "Ubuntu", + "source": "apt", + "version": "5.15.0-89.99" + } + ], + "linux-cloud-tools-5.15.0-89-generic": [ + { + "arch": "amd64", + "category": "devel", + "name": "linux-cloud-tools-5.15.0-89-generic", + "origin": "Ubuntu", + "source": "apt", + "version": "5.15.0-89.99" + } + ], + "linux-cloud-tools-common": [ + { + "arch": "all", + "category": "kernel", + "name": "linux-cloud-tools-common", + "origin": "Ubuntu", + "source": "apt", + "version": "5.15.0-89.99" + } + ], + "linux-cloud-tools-virtual": [ + { + "arch": "amd64", + "category": "kernel", + "name": "linux-cloud-tools-virtual", + "origin": "", + "source": "apt", + "version": "5.15.0.89.86" + } + ], + "linux-firmware": [ + { + "arch": "all", + "category": "misc", + "name": "linux-firmware", + "origin": "Ubuntu", + "source": "apt", + "version": "20220329.git681281e4-0ubuntu3.23" + } + ], + "linux-generic": [ + { + "arch": "amd64", + "category": "kernel", + "name": "linux-generic", + "origin": "", + "source": "apt", + "version": "5.15.0.89.86" + } + ], + "linux-headers-5.15.0-89": [ + { + "arch": "all", + "category": "devel", + "name": "linux-headers-5.15.0-89", + "origin": "Ubuntu", + "source": "apt", + "version": "5.15.0-89.99" + } + ], + "linux-headers-5.15.0-89-generic": [ + { + "arch": "amd64", + "category": "devel", + "name": "linux-headers-5.15.0-89-generic", + "origin": "Ubuntu", + "source": "apt", + "version": "5.15.0-89.99" + } + ], + "linux-headers-generic": [ + { + "arch": "amd64", + "category": "kernel", + "name": "linux-headers-generic", + "origin": "", + "source": "apt", + "version": "5.15.0.89.86" + } + ], + "linux-image-5.15.0-89-generic": [ + { + "arch": "amd64", + "category": "kernel", + "name": "linux-image-5.15.0-89-generic", + "origin": "Ubuntu", + "source": "apt", + "version": "5.15.0-89.99" + } + ], + "linux-image-generic": [ + { + "arch": "amd64", + "category": "kernel", + "name": "linux-image-generic", + "origin": "", + "source": "apt", + "version": "5.15.0.89.86" + } + ], + "linux-modules-5.15.0-89-generic": [ + { + "arch": "amd64", + "category": "kernel", + "name": "linux-modules-5.15.0-89-generic", + "origin": "Ubuntu", + "source": "apt", + "version": "5.15.0-89.99" + } + ], + "linux-modules-extra-5.15.0-89-generic": [ + { + "arch": "amd64", + "category": "kernel", + "name": "linux-modules-extra-5.15.0-89-generic", + "origin": "Ubuntu", + "source": "apt", + "version": "5.15.0-89.99" + } + ], + "locales": [ + { + "arch": "all", + "category": "localization", + "name": "locales", + "origin": "", + "source": "apt", + "version": "2.35-0ubuntu3.4" + } + ], + "login": [ + { + "arch": "amd64", + "category": "admin", + "name": "login", + "origin": "Ubuntu", + "source": "apt", + "version": "1:4.8.1-2ubuntu2.1" + } + ], + "logrotate": [ + { + "arch": "amd64", + "category": "admin", + "name": "logrotate", + "origin": "Ubuntu", + "source": "apt", + "version": "3.19.0-1ubuntu1.1" + } + ], + "logsave": [ + { + "arch": "amd64", + "category": "admin", + "name": "logsave", + "origin": "Ubuntu", + "source": "apt", + "version": "1.46.5-2ubuntu1.1" + } + ], + "lsb-base": [ + { + "arch": "all", + "category": "misc", + "name": "lsb-base", + "origin": "Ubuntu", + "source": "apt", + "version": "11.1.0ubuntu4" + } + ], + "lsb-release": [ + { + "arch": "all", + "category": "misc", + "name": "lsb-release", + "origin": "Ubuntu", + "source": "apt", + "version": "11.1.0ubuntu4" + } + ], + "lshw": [ + { + "arch": "amd64", + "category": "utils", + "name": "lshw", + "origin": "Ubuntu", + "source": "apt", + "version": "02.19.git.2021.06.19.996aaad9c7-2build1" + } + ], + "lsof": [ + { + "arch": "amd64", + "category": "utils", + "name": "lsof", + "origin": "Ubuntu", + "source": "apt", + "version": "4.93.2+dfsg-1.1build2" + } + ], + "lvm2": [ + { + "arch": "amd64", + "category": "admin", + "name": "lvm2", + "origin": "Ubuntu", + "source": "apt", + "version": "2.03.11-2.1ubuntu4" + } + ], + "lxd-agent-loader": [ + { + "arch": "all", + "category": "misc", + "name": "lxd-agent-loader", + "origin": "Ubuntu", + "source": "apt", + "version": "0.5" + } + ], + "mailcap": [ + { + "arch": "all", + "category": "utils", + "name": "mailcap", + "origin": "Ubuntu", + "source": "apt", + "version": "3.70+nmu1ubuntu1" + } + ], + "make": [ + { + "arch": "amd64", + "category": "devel", + "name": "make", + "origin": "Ubuntu", + "source": "apt", + "version": "4.3-4.1build1" + } + ], + "man-db": [ + { + "arch": "amd64", + "category": "doc", + "name": "man-db", + "origin": "Ubuntu", + "source": "apt", + "version": "2.10.2-1" + } + ], + "manpages": [ + { + "arch": "all", + "category": "doc", + "name": "manpages", + "origin": "Ubuntu", + "source": "apt", + "version": "5.10-1ubuntu1" + } + ], + "mawk": [ + { + "arch": "amd64", + "category": "utils", + "name": "mawk", + "origin": "Ubuntu", + "source": "apt", + "version": "1.3.4.20200120-3" + } + ], + "mdadm": [ + { + "arch": "amd64", + "category": "admin", + "name": "mdadm", + "origin": "Ubuntu", + "source": "apt", + "version": "4.2-0ubuntu2" + } + ], + "media-types": [ + { + "arch": "all", + "category": "net", + "name": "media-types", + "origin": "Ubuntu", + "source": "apt", + "version": "7.0.0" + } + ], + "mime-support": [ + { + "arch": "all", + "category": "net", + "name": "mime-support", + "origin": "Ubuntu", + "source": "apt", + "version": "3.66" + } + ], + "mlocate": [ + { + "arch": "all", + "category": "utils", + "name": "mlocate", + "origin": "Ubuntu", + "source": "apt", + "version": "1.1.15-1ubuntu2" + } + ], + "modemmanager": [ + { + "arch": "amd64", + "category": "net", + "name": "modemmanager", + "origin": "Ubuntu", + "source": "apt", + "version": "1.20.0-1~ubuntu22.04.2" + } + ], + "motd-news-config": [ + { + "arch": "all", + "category": "admin", + "name": "motd-news-config", + "origin": "Ubuntu", + "source": "apt", + "version": "12ubuntu4.4" + } + ], + "mount": [ + { + "arch": "amd64", + "category": "admin", + "name": "mount", + "origin": "Ubuntu", + "source": "apt", + "version": "2.37.2-4ubuntu3" + } + ], + "mtr-tiny": [ + { + "arch": "amd64", + "category": "net", + "name": "mtr-tiny", + "origin": "Ubuntu", + "source": "apt", + "version": "0.95-1" + } + ], + "multipath-tools": [ + { + "arch": "amd64", + "category": "admin", + "name": "multipath-tools", + "origin": "", + "source": "apt", + "version": "0.8.8-1ubuntu1.22.04.3" + } + ], + "nano": [ + { + "arch": "amd64", + "category": "editors", + "name": "nano", + "origin": "Ubuntu", + "source": "apt", + "version": "6.2-1" + } + ], + "ncurses-base": [ + { + "arch": "all", + "category": "utils", + "name": "ncurses-base", + "origin": "Ubuntu", + "source": "apt", + "version": "6.3-2ubuntu0.1" + } + ], + "ncurses-bin": [ + { + "arch": "amd64", + "category": "utils", + "name": "ncurses-bin", + "origin": "Ubuntu", + "source": "apt", + "version": "6.3-2ubuntu0.1" + } + ], + "ncurses-term": [ + { + "arch": "all", + "category": "admin", + "name": "ncurses-term", + "origin": "Ubuntu", + "source": "apt", + "version": "6.3-2ubuntu0.1" + } + ], + "needrestart": [ + { + "arch": "all", + "category": "admin", + "name": "needrestart", + "origin": "Ubuntu", + "source": "apt", + "version": "3.5-5ubuntu2.1" + } + ], + "netbase": [ + { + "arch": "all", + "category": "admin", + "name": "netbase", + "origin": "Ubuntu", + "source": "apt", + "version": "6.3" + } + ], + "netcat-openbsd": [ + { + "arch": "amd64", + "category": "net", + "name": "netcat-openbsd", + "origin": "Ubuntu", + "source": "apt", + "version": "1.218-4ubuntu1" + } + ], + "netplan.io": [ + { + "arch": "amd64", + "category": "net", + "name": "netplan.io", + "origin": "Ubuntu", + "source": "apt", + "version": "0.106.1-7ubuntu0.22.04.2" + } + ], + "networkd-dispatcher": [ + { + "arch": "all", + "category": "utils", + "name": "networkd-dispatcher", + "origin": "Ubuntu", + "source": "apt", + "version": "2.1-2ubuntu0.22.04.2" + } + ], + "nftables": [ + { + "arch": "amd64", + "category": "net", + "name": "nftables", + "origin": "Ubuntu", + "source": "apt", + "version": "1.0.2-1ubuntu3" + } + ], + "ntfs-3g": [ + { + "arch": "amd64", + "category": "otherosfs", + "name": "ntfs-3g", + "origin": "Ubuntu", + "source": "apt", + "version": "1:2021.8.22-3ubuntu1.2" + } + ], + "open-iscsi": [ + { + "arch": "amd64", + "category": "net", + "name": "open-iscsi", + "origin": "Ubuntu", + "source": "apt", + "version": "2.1.5-1ubuntu1" + } + ], + "open-vm-tools": [ + { + "arch": "amd64", + "category": "admin", + "name": "open-vm-tools", + "origin": "Ubuntu", + "source": "apt", + "version": "2:12.1.5-3~ubuntu0.22.04.4" + } + ], + "openssh-client": [ + { + "arch": "amd64", + "category": "net", + "name": "openssh-client", + "origin": "", + "source": "apt", + "version": "1:8.9p1-3ubuntu0.4" + } + ], + "openssh-server": [ + { + "arch": "amd64", + "category": "net", + "name": "openssh-server", + "origin": "", + "source": "apt", + "version": "1:8.9p1-3ubuntu0.4" + } + ], + "openssh-sftp-server": [ + { + "arch": "amd64", + "category": "net", + "name": "openssh-sftp-server", + "origin": "", + "source": "apt", + "version": "1:8.9p1-3ubuntu0.4" + } + ], + "openssl": [ + { + "arch": "amd64", + "category": "utils", + "name": "openssl", + "origin": "Ubuntu", + "source": "apt", + "version": "3.0.2-0ubuntu1.12" + } + ], + "os-prober": [ + { + "arch": "amd64", + "category": "utils", + "name": "os-prober", + "origin": "Ubuntu", + "source": "apt", + "version": "1.79ubuntu2" + } + ], + "overlayroot": [ + { + "arch": "all", + "category": "admin", + "name": "overlayroot", + "origin": "Ubuntu", + "source": "apt", + "version": "0.47ubuntu1" + } + ], + "packagekit": [ + { + "arch": "amd64", + "category": "admin", + "name": "packagekit", + "origin": "Ubuntu", + "source": "apt", + "version": "1.2.5-2ubuntu2" + } + ], + "packagekit-tools": [ + { + "arch": "amd64", + "category": "libs", + "name": "packagekit-tools", + "origin": "Ubuntu", + "source": "apt", + "version": "1.2.5-2ubuntu2" + } + ], + "parted": [ + { + "arch": "amd64", + "category": "admin", + "name": "parted", + "origin": "Ubuntu", + "source": "apt", + "version": "3.4-2build1" + } + ], + "passwd": [ + { + "arch": "amd64", + "category": "admin", + "name": "passwd", + "origin": "Ubuntu", + "source": "apt", + "version": "1:4.8.1-2ubuntu2.1" + } + ], + "pastebinit": [ + { + "arch": "all", + "category": "misc", + "name": "pastebinit", + "origin": "Ubuntu", + "source": "apt", + "version": "1.5.1-1ubuntu1" + } + ], + "patch": [ + { + "arch": "amd64", + "category": "utils", + "name": "patch", + "origin": "Ubuntu", + "source": "apt", + "version": "2.7.6-7build2" + } + ], + "pci.ids": [ + { + "arch": "all", + "category": "admin", + "name": "pci.ids", + "origin": "Ubuntu", + "source": "apt", + "version": "0.0~2022.01.22-1" + } + ], + "pciutils": [ + { + "arch": "amd64", + "category": "admin", + "name": "pciutils", + "origin": "Ubuntu", + "source": "apt", + "version": "1:3.7.0-6" + } + ], + "perl": [ + { + "arch": "amd64", + "category": "perl", + "name": "perl", + "origin": "Ubuntu", + "source": "apt", + "version": "5.34.0-3ubuntu1.3" + } + ], + "perl-base": [ + { + "arch": "amd64", + "category": "perl", + "name": "perl-base", + "origin": "Ubuntu", + "source": "apt", + "version": "5.34.0-3ubuntu1.3" + } + ], + "perl-modules-5.34": [ + { + "arch": "all", + "category": "libs", + "name": "perl-modules-5.34", + "origin": "Ubuntu", + "source": "apt", + "version": "5.34.0-3ubuntu1.3" + } + ], + "php-cgi": [ + { + "arch": "all", + "category": "php", + "name": "php-cgi", + "origin": "Ubuntu", + "source": "apt", + "version": "2:8.1+92ubuntu1" + } + ], + "php-cli": [ + { + "arch": "all", + "category": "php", + "name": "php-cli", + "origin": "Ubuntu", + "source": "apt", + "version": "2:8.1+92ubuntu1" + } + ], + "php-common": [ + { + "arch": "all", + "category": "php", + "name": "php-common", + "origin": "Ubuntu", + "source": "apt", + "version": "2:92ubuntu1" + } + ], + "php-gd": [ + { + "arch": "all", + "category": "php", + "name": "php-gd", + "origin": "Ubuntu", + "source": "apt", + "version": "2:8.1+92ubuntu1" + } + ], + "php-json": [ + { + "arch": "all", + "category": "php", + "name": "php-json", + "origin": "Ubuntu", + "source": "apt", + "version": "2:8.1+92ubuntu1" + } + ], + "php-pear": [ + { + "arch": "all", + "category": "php", + "name": "php-pear", + "origin": "Ubuntu", + "source": "apt", + "version": "1:1.10.12+submodules+notgz+20210212-1ubuntu3" + } + ], + "php-sqlite3": [ + { + "arch": "all", + "category": "php", + "name": "php-sqlite3", + "origin": "Ubuntu", + "source": "apt", + "version": "2:8.1+92ubuntu1" + } + ], + "php-xml": [ + { + "arch": "all", + "category": "php", + "name": "php-xml", + "origin": "Ubuntu", + "source": "apt", + "version": "2:8.1+92ubuntu1" + } + ], + "php8.1-cgi": [ + { + "arch": "amd64", + "category": "php", + "name": "php8.1-cgi", + "origin": "Ubuntu", + "source": "apt", + "version": "8.1.2-1ubuntu2.14" + } + ], + "php8.1-cli": [ + { + "arch": "amd64", + "category": "php", + "name": "php8.1-cli", + "origin": "Ubuntu", + "source": "apt", + "version": "8.1.2-1ubuntu2.14" + } + ], + "php8.1-common": [ + { + "arch": "amd64", + "category": "php", + "name": "php8.1-common", + "origin": "Ubuntu", + "source": "apt", + "version": "8.1.2-1ubuntu2.14" + } + ], + "php8.1-gd": [ + { + "arch": "amd64", + "category": "php", + "name": "php8.1-gd", + "origin": "Ubuntu", + "source": "apt", + "version": "8.1.2-1ubuntu2.14" + } + ], + "php8.1-opcache": [ + { + "arch": "amd64", + "category": "php", + "name": "php8.1-opcache", + "origin": "Ubuntu", + "source": "apt", + "version": "8.1.2-1ubuntu2.14" + } + ], + "php8.1-readline": [ + { + "arch": "amd64", + "category": "php", + "name": "php8.1-readline", + "origin": "Ubuntu", + "source": "apt", + "version": "8.1.2-1ubuntu2.14" + } + ], + "php8.1-sqlite3": [ + { + "arch": "amd64", + "category": "php", + "name": "php8.1-sqlite3", + "origin": "Ubuntu", + "source": "apt", + "version": "8.1.2-1ubuntu2.14" + } + ], + "php8.1-xml": [ + { + "arch": "amd64", + "category": "php", + "name": "php8.1-xml", + "origin": "Ubuntu", + "source": "apt", + "version": "8.1.2-1ubuntu2.14" + } + ], + "pinentry-curses": [ + { + "arch": "amd64", + "category": "utils", + "name": "pinentry-curses", + "origin": "Ubuntu", + "source": "apt", + "version": "1.1.1-1build2" + } + ], + "pkexec": [ + { + "arch": "amd64", + "category": "admin", + "name": "pkexec", + "origin": "Ubuntu", + "source": "apt", + "version": "0.105-33" + } + ], + "plocate": [ + { + "arch": "amd64", + "category": "utils", + "name": "plocate", + "origin": "Ubuntu", + "source": "apt", + "version": "1.1.15-1ubuntu2" + } + ], + "plymouth": [ + { + "arch": "amd64", + "category": "x11", + "name": "plymouth", + "origin": "Ubuntu", + "source": "apt", + "version": "0.9.5+git20211018-1ubuntu3" + } + ], + "plymouth-theme-ubuntu-text": [ + { + "arch": "amd64", + "category": "x11", + "name": "plymouth-theme-ubuntu-text", + "origin": "Ubuntu", + "source": "apt", + "version": "0.9.5+git20211018-1ubuntu3" + } + ], + "policykit-1": [ + { + "arch": "amd64", + "category": "admin", + "name": "policykit-1", + "origin": "Ubuntu", + "source": "apt", + "version": "0.105-33" + } + ], + "polkitd": [ + { + "arch": "amd64", + "category": "admin", + "name": "polkitd", + "origin": "Ubuntu", + "source": "apt", + "version": "0.105-33" + } + ], + "pollinate": [ + { + "arch": "all", + "category": "admin", + "name": "pollinate", + "origin": "Ubuntu", + "source": "apt", + "version": "4.33-3ubuntu2" + } + ], + "poppler-data": [ + { + "arch": "all", + "category": "misc", + "name": "poppler-data", + "origin": "Ubuntu", + "source": "apt", + "version": "0.4.11-1" + } + ], + "poppler-utils": [ + { + "arch": "amd64", + "category": "utils", + "name": "poppler-utils", + "origin": "Ubuntu", + "source": "apt", + "version": "22.02.0-2ubuntu0.3" + } + ], + "powermgmt-base": [ + { + "arch": "all", + "category": "utils", + "name": "powermgmt-base", + "origin": "Ubuntu", + "source": "apt", + "version": "1.36" + } + ], + "procps": [ + { + "arch": "amd64", + "category": "admin", + "name": "procps", + "origin": "Ubuntu", + "source": "apt", + "version": "2:3.3.17-6ubuntu2.1" + } + ], + "psmisc": [ + { + "arch": "amd64", + "category": "admin", + "name": "psmisc", + "origin": "Ubuntu", + "source": "apt", + "version": "23.4-2build3" + } + ], + "publicsuffix": [ + { + "arch": "all", + "category": "net", + "name": "publicsuffix", + "origin": "Ubuntu", + "source": "apt", + "version": "20211207.1025-1" + } + ], + "python-apt-common": [ + { + "arch": "all", + "category": "python", + "name": "python-apt-common", + "origin": "Ubuntu", + "source": "apt", + "version": "2.4.0ubuntu2" + } + ], + "python3": [ + { + "arch": "amd64", + "category": "python", + "name": "python3", + "origin": "Ubuntu", + "source": "apt", + "version": "3.10.6-1~22.04" + } + ], + "python3-apport": [ + { + "arch": "all", + "category": "python", + "name": "python3-apport", + "origin": "Ubuntu", + "source": "apt", + "version": "2.20.11-0ubuntu82.5" + } + ], + "python3-apt": [ + { + "arch": "amd64", + "category": "python", + "name": "python3-apt", + "origin": "Ubuntu", + "source": "apt", + "version": "2.4.0ubuntu2" + } + ], + "python3-attr": [ + { + "arch": "all", + "category": "python", + "name": "python3-attr", + "origin": "Ubuntu", + "source": "apt", + "version": "21.2.0-1" + } + ], + "python3-automat": [ + { + "arch": "all", + "category": "python", + "name": "python3-automat", + "origin": "Ubuntu", + "source": "apt", + "version": "20.2.0-1" + } + ], + "python3-bcrypt": [ + { + "arch": "amd64", + "category": "python", + "name": "python3-bcrypt", + "origin": "Ubuntu", + "source": "apt", + "version": "3.2.0-1build1" + } + ], + "python3-blinker": [ + { + "arch": "all", + "category": "python", + "name": "python3-blinker", + "origin": "Ubuntu", + "source": "apt", + "version": "1.4+dfsg1-0.4" + } + ], + "python3-cffi-backend": [ + { + "arch": "amd64", + "category": "python", + "name": "python3-cffi-backend", + "origin": "Ubuntu", + "source": "apt", + "version": "1.15.0-1build2" + } + ], + "python3-chardet": [ + { + "arch": "all", + "category": "python", + "name": "python3-chardet", + "origin": "Ubuntu", + "source": "apt", + "version": "4.0.0-1" + } + ], + "python3-click": [ + { + "arch": "all", + "category": "python", + "name": "python3-click", + "origin": "Ubuntu", + "source": "apt", + "version": "8.0.3-1" + } + ], + "python3-colorama": [ + { + "arch": "all", + "category": "python", + "name": "python3-colorama", + "origin": "Ubuntu", + "source": "apt", + "version": "0.4.4-1" + } + ], + "python3-commandnotfound": [ + { + "arch": "all", + "category": "python", + "name": "python3-commandnotfound", + "origin": "Ubuntu", + "source": "apt", + "version": "22.04.0" + } + ], + "python3-configobj": [ + { + "arch": "all", + "category": "python", + "name": "python3-configobj", + "origin": "Ubuntu", + "source": "apt", + "version": "5.0.6-5" + } + ], + "python3-constantly": [ + { + "arch": "all", + "category": "python", + "name": "python3-constantly", + "origin": "Ubuntu", + "source": "apt", + "version": "15.1.0-2" + } + ], + "python3-cryptography": [ + { + "arch": "amd64", + "category": "python", + "name": "python3-cryptography", + "origin": "Ubuntu", + "source": "apt", + "version": "3.4.8-1ubuntu2" + } + ], + "python3-dbus": [ + { + "arch": "amd64", + "category": "python", + "name": "python3-dbus", + "origin": "Ubuntu", + "source": "apt", + "version": "1.2.18-3build1" + } + ], + "python3-debconf": [ + { + "arch": "all", + "category": "python", + "name": "python3-debconf", + "origin": "Ubuntu", + "source": "apt", + "version": "1.5.79ubuntu1" + } + ], + "python3-debian": [ + { + "arch": "all", + "category": "python", + "name": "python3-debian", + "origin": "Ubuntu", + "source": "apt", + "version": "0.1.43ubuntu1.1" + } + ], + "python3-distro": [ + { + "arch": "all", + "category": "python", + "name": "python3-distro", + "origin": "Ubuntu", + "source": "apt", + "version": "1.7.0-1" + } + ], + "python3-distro-info": [ + { + "arch": "all", + "category": "python", + "name": "python3-distro-info", + "origin": "Ubuntu", + "source": "apt", + "version": "1.1ubuntu0.1" + } + ], + "python3-distupgrade": [ + { + "arch": "all", + "category": "python", + "name": "python3-distupgrade", + "origin": "Ubuntu", + "source": "apt", + "version": "1:22.04.17" + } + ], + "python3-distutils": [ + { + "arch": "all", + "category": "python", + "name": "python3-distutils", + "origin": "Ubuntu", + "source": "apt", + "version": "3.10.8-1~22.04" + } + ], + "python3-gdbm": [ + { + "arch": "amd64", + "category": "python", + "name": "python3-gdbm", + "origin": "Ubuntu", + "source": "apt", + "version": "3.10.8-1~22.04" + } + ], + "python3-gi": [ + { + "arch": "amd64", + "category": "python", + "name": "python3-gi", + "origin": "Ubuntu", + "source": "apt", + "version": "3.42.1-0ubuntu1" + } + ], + "python3-gpg": [ + { + "arch": "amd64", + "category": "python", + "name": "python3-gpg", + "origin": "Ubuntu", + "source": "apt", + "version": "1.16.0-1.2ubuntu4.1" + } + ], + "python3-hamcrest": [ + { + "arch": "all", + "category": "python", + "name": "python3-hamcrest", + "origin": "Ubuntu", + "source": "apt", + "version": "2.0.2-2" + } + ], + "python3-httplib2": [ + { + "arch": "all", + "category": "python", + "name": "python3-httplib2", + "origin": "Ubuntu", + "source": "apt", + "version": "0.20.2-2" + } + ], + "python3-hyperlink": [ + { + "arch": "all", + "category": "python", + "name": "python3-hyperlink", + "origin": "Ubuntu", + "source": "apt", + "version": "21.0.0-3" + } + ], + "python3-idna": [ + { + "arch": "all", + "category": "python", + "name": "python3-idna", + "origin": "Ubuntu", + "source": "apt", + "version": "3.3-1" + } + ], + "python3-importlib-metadata": [ + { + "arch": "all", + "category": "python", + "name": "python3-importlib-metadata", + "origin": "Ubuntu", + "source": "apt", + "version": "4.6.4-1" + } + ], + "python3-incremental": [ + { + "arch": "all", + "category": "python", + "name": "python3-incremental", + "origin": "Ubuntu", + "source": "apt", + "version": "21.3.0-1" + } + ], + "python3-jeepney": [ + { + "arch": "all", + "category": "python", + "name": "python3-jeepney", + "origin": "Ubuntu", + "source": "apt", + "version": "0.7.1-3" + } + ], + "python3-jwt": [ + { + "arch": "all", + "category": "python", + "name": "python3-jwt", + "origin": "Ubuntu", + "source": "apt", + "version": "2.3.0-1ubuntu0.2" + } + ], + "python3-keyring": [ + { + "arch": "all", + "category": "python", + "name": "python3-keyring", + "origin": "Ubuntu", + "source": "apt", + "version": "23.5.0-1" + } + ], + "python3-launchpadlib": [ + { + "arch": "all", + "category": "python", + "name": "python3-launchpadlib", + "origin": "Ubuntu", + "source": "apt", + "version": "1.10.16-1" + } + ], + "python3-lazr.restfulclient": [ + { + "arch": "all", + "category": "python", + "name": "python3-lazr.restfulclient", + "origin": "Ubuntu", + "source": "apt", + "version": "0.14.4-1" + } + ], + "python3-lazr.uri": [ + { + "arch": "all", + "category": "python", + "name": "python3-lazr.uri", + "origin": "Ubuntu", + "source": "apt", + "version": "1.0.6-2" + } + ], + "python3-ldb": [ + { + "arch": "amd64", + "category": "python", + "name": "python3-ldb", + "origin": "Ubuntu", + "source": "apt", + "version": "2:2.4.4-0ubuntu0.22.04.2" + } + ], + "python3-lib2to3": [ + { + "arch": "all", + "category": "python", + "name": "python3-lib2to3", + "origin": "Ubuntu", + "source": "apt", + "version": "3.10.8-1~22.04" + } + ], + "python3-magic": [ + { + "arch": "all", + "category": "python", + "name": "python3-magic", + "origin": "Ubuntu", + "source": "apt", + "version": "2:0.4.24-2" + } + ], + "python3-minimal": [ + { + "arch": "amd64", + "category": "python", + "name": "python3-minimal", + "origin": "Ubuntu", + "source": "apt", + "version": "3.10.6-1~22.04" + } + ], + "python3-more-itertools": [ + { + "arch": "all", + "category": "python", + "name": "python3-more-itertools", + "origin": "Ubuntu", + "source": "apt", + "version": "8.10.0-2" + } + ], + "python3-netifaces": [ + { + "arch": "amd64", + "category": "python", + "name": "python3-netifaces", + "origin": "Ubuntu", + "source": "apt", + "version": "0.11.0-1build2" + } + ], + "python3-newt": [ + { + "arch": "amd64", + "category": "python", + "name": "python3-newt", + "origin": "Ubuntu", + "source": "apt", + "version": "0.52.21-5ubuntu2" + } + ], + "python3-oauthlib": [ + { + "arch": "all", + "category": "python", + "name": "python3-oauthlib", + "origin": "Ubuntu", + "source": "apt", + "version": "3.2.0-1ubuntu0.1" + } + ], + "python3-openssl": [ + { + "arch": "all", + "category": "python", + "name": "python3-openssl", + "origin": "Ubuntu", + "source": "apt", + "version": "21.0.0-1" + } + ], + "python3-pexpect": [ + { + "arch": "all", + "category": "python", + "name": "python3-pexpect", + "origin": "Ubuntu", + "source": "apt", + "version": "4.8.0-2ubuntu1" + } + ], + "python3-pkg-resources": [ + { + "arch": "all", + "category": "python", + "name": "python3-pkg-resources", + "origin": "Ubuntu", + "source": "apt", + "version": "59.6.0-1.2ubuntu0.22.04.1" + } + ], + "python3-problem-report": [ + { + "arch": "all", + "category": "python", + "name": "python3-problem-report", + "origin": "Ubuntu", + "source": "apt", + "version": "2.20.11-0ubuntu82.5" + } + ], + "python3-ptyprocess": [ + { + "arch": "all", + "category": "python", + "name": "python3-ptyprocess", + "origin": "Ubuntu", + "source": "apt", + "version": "0.7.0-3" + } + ], + "python3-pyasn1": [ + { + "arch": "all", + "category": "python", + "name": "python3-pyasn1", + "origin": "Ubuntu", + "source": "apt", + "version": "0.4.8-1" + } + ], + "python3-pyasn1-modules": [ + { + "arch": "all", + "category": "python", + "name": "python3-pyasn1-modules", + "origin": "Ubuntu", + "source": "apt", + "version": "0.2.1-1" + } + ], + "python3-pyparsing": [ + { + "arch": "all", + "category": "python", + "name": "python3-pyparsing", + "origin": "Ubuntu", + "source": "apt", + "version": "2.4.7-1" + } + ], + "python3-samba": [ + { + "arch": "amd64", + "category": "python", + "name": "python3-samba", + "origin": "Ubuntu", + "source": "apt", + "version": "2:4.15.13+dfsg-0ubuntu1.5" + } + ], + "python3-secretstorage": [ + { + "arch": "all", + "category": "python", + "name": "python3-secretstorage", + "origin": "Ubuntu", + "source": "apt", + "version": "3.3.1-1" + } + ], + "python3-serial": [ + { + "arch": "all", + "category": "python", + "name": "python3-serial", + "origin": "Ubuntu", + "source": "apt", + "version": "3.5-1" + } + ], + "python3-service-identity": [ + { + "arch": "all", + "category": "python", + "name": "python3-service-identity", + "origin": "Ubuntu", + "source": "apt", + "version": "18.1.0-6" + } + ], + "python3-setuptools": [ + { + "arch": "all", + "category": "python", + "name": "python3-setuptools", + "origin": "Ubuntu", + "source": "apt", + "version": "59.6.0-1.2ubuntu0.22.04.1" + } + ], + "python3-six": [ + { + "arch": "all", + "category": "python", + "name": "python3-six", + "origin": "Ubuntu", + "source": "apt", + "version": "1.16.0-3ubuntu1" + } + ], + "python3-software-properties": [ + { + "arch": "all", + "category": "python", + "name": "python3-software-properties", + "origin": "Ubuntu", + "source": "apt", + "version": "0.99.22.8" + } + ], + "python3-systemd": [ + { + "arch": "amd64", + "category": "python", + "name": "python3-systemd", + "origin": "Ubuntu", + "source": "apt", + "version": "234-3ubuntu2" + } + ], + "python3-talloc": [ + { + "arch": "amd64", + "category": "python", + "name": "python3-talloc", + "origin": "Ubuntu", + "source": "apt", + "version": "2.3.3-2build1" + } + ], + "python3-tdb": [ + { + "arch": "amd64", + "category": "python", + "name": "python3-tdb", + "origin": "Ubuntu", + "source": "apt", + "version": "1.4.5-2build1" + } + ], + "python3-twisted": [ + { + "arch": "all", + "category": "python", + "name": "python3-twisted", + "origin": "Ubuntu", + "source": "apt", + "version": "22.1.0-2ubuntu2.3" + } + ], + "python3-update-manager": [ + { + "arch": "all", + "category": "python", + "name": "python3-update-manager", + "origin": "", + "source": "apt", + "version": "1:22.04.10" + } + ], + "python3-wadllib": [ + { + "arch": "all", + "category": "python", + "name": "python3-wadllib", + "origin": "Ubuntu", + "source": "apt", + "version": "1.3.6-1" + } + ], + "python3-xkit": [ + { + "arch": "all", + "category": "python", + "name": "python3-xkit", + "origin": "Ubuntu", + "source": "apt", + "version": "0.5.0ubuntu5" + } + ], + "python3-yaml": [ + { + "arch": "amd64", + "category": "python", + "name": "python3-yaml", + "origin": "Ubuntu", + "source": "apt", + "version": "5.4.1-1ubuntu1" + } + ], + "python3-zipp": [ + { + "arch": "all", + "category": "python", + "name": "python3-zipp", + "origin": "Ubuntu", + "source": "apt", + "version": "1.0.0-3" + } + ], + "python3-zope.interface": [ + { + "arch": "amd64", + "category": "zope", + "name": "python3-zope.interface", + "origin": "Ubuntu", + "source": "apt", + "version": "5.4.0-1build1" + } + ], + "python3.10": [ + { + "arch": "amd64", + "category": "python", + "name": "python3.10", + "origin": "Ubuntu", + "source": "apt", + "version": "3.10.12-1~22.04.3" + } + ], + "python3.10-minimal": [ + { + "arch": "amd64", + "category": "python", + "name": "python3.10-minimal", + "origin": "Ubuntu", + "source": "apt", + "version": "3.10.12-1~22.04.3" + } + ], + "qemu-guest-agent": [ + { + "arch": "amd64", + "category": "universe/misc", + "name": "qemu-guest-agent", + "origin": "Ubuntu", + "source": "apt", + "version": "1:6.2+dfsg-2ubuntu6.15" + } + ], + "rake": [ + { + "arch": "all", + "category": "devel", + "name": "rake", + "origin": "Ubuntu", + "source": "apt", + "version": "13.0.6-2" + } + ], + "readline-common": [ + { + "arch": "all", + "category": "utils", + "name": "readline-common", + "origin": "Ubuntu", + "source": "apt", + "version": "8.1.2-1" + } + ], + "rpcbind": [ + { + "arch": "amd64", + "category": "net", + "name": "rpcbind", + "origin": "Ubuntu", + "source": "apt", + "version": "1.2.6-2build1" + } + ], + "rpm": [ + { + "arch": "amd64", + "category": "universe/admin", + "name": "rpm", + "origin": "Ubuntu", + "source": "apt", + "version": "4.17.0+dfsg1-4build1" + } + ], + "rpm-common": [ + { + "arch": "amd64", + "category": "universe/admin", + "name": "rpm-common", + "origin": "Ubuntu", + "source": "apt", + "version": "4.17.0+dfsg1-4build1" + } + ], + "rpm2cpio": [ + { + "arch": "amd64", + "category": "universe/admin", + "name": "rpm2cpio", + "origin": "Ubuntu", + "source": "apt", + "version": "4.17.0+dfsg1-4build1" + } + ], + "rsync": [ + { + "arch": "amd64", + "category": "net", + "name": "rsync", + "origin": "Ubuntu", + "source": "apt", + "version": "3.2.7-0ubuntu0.22.04.2" + } + ], + "rsyslog": [ + { + "arch": "amd64", + "category": "admin", + "name": "rsyslog", + "origin": "Ubuntu", + "source": "apt", + "version": "8.2112.0-2ubuntu2.2" + } + ], + "ruby": [ + { + "arch": "amd64", + "category": "interpreters", + "name": "ruby", + "origin": "Ubuntu", + "source": "apt", + "version": "1:3.0~exp1" + } + ], + "ruby-net-telnet": [ + { + "arch": "all", + "category": "ruby", + "name": "ruby-net-telnet", + "origin": "Ubuntu", + "source": "apt", + "version": "0.1.1-2" + } + ], + "ruby-rubygems": [ + { + "arch": "all", + "category": "ruby", + "name": "ruby-rubygems", + "origin": "Ubuntu", + "source": "apt", + "version": "3.3.5-2" + } + ], + "ruby-webrick": [ + { + "arch": "all", + "category": "universe/ruby", + "name": "ruby-webrick", + "origin": "Ubuntu", + "source": "apt", + "version": "1.7.0-3" + } + ], + "ruby-xmlrpc": [ + { + "arch": "all", + "category": "ruby", + "name": "ruby-xmlrpc", + "origin": "Ubuntu", + "source": "apt", + "version": "0.3.2-1ubuntu0.1" + } + ], + "ruby3.0": [ + { + "arch": "amd64", + "category": "ruby", + "name": "ruby3.0", + "origin": "Ubuntu", + "source": "apt", + "version": "3.0.2-7ubuntu2.4" + } + ], + "rubygems-integration": [ + { + "arch": "all", + "category": "ruby", + "name": "rubygems-integration", + "origin": "Ubuntu", + "source": "apt", + "version": "1.18" + } + ], + "run-one": [ + { + "arch": "all", + "category": "admin", + "name": "run-one", + "origin": "Ubuntu", + "source": "apt", + "version": "1.17-0ubuntu1" + } + ], + "samba-common": [ + { + "arch": "all", + "category": "net", + "name": "samba-common", + "origin": "Ubuntu", + "source": "apt", + "version": "2:4.15.13+dfsg-0ubuntu1.5" + } + ], + "samba-common-bin": [ + { + "arch": "amd64", + "category": "net", + "name": "samba-common-bin", + "origin": "Ubuntu", + "source": "apt", + "version": "2:4.15.13+dfsg-0ubuntu1.5" + } + ], + "samba-dsdb-modules": [ + { + "arch": "amd64", + "category": "libs", + "name": "samba-dsdb-modules", + "origin": "Ubuntu", + "source": "apt", + "version": "2:4.15.13+dfsg-0ubuntu1.5" + } + ], + "samba-libs": [ + { + "arch": "amd64", + "category": "libs", + "name": "samba-libs", + "origin": "Ubuntu", + "source": "apt", + "version": "2:4.15.13+dfsg-0ubuntu1.5" + } + ], + "sbsigntool": [ + { + "arch": "amd64", + "category": "utils", + "name": "sbsigntool", + "origin": "Ubuntu", + "source": "apt", + "version": "0.9.4-2ubuntu2" + } + ], + "screen": [ + { + "arch": "amd64", + "category": "misc", + "name": "screen", + "origin": "Ubuntu", + "source": "apt", + "version": "4.9.0-1" + } + ], + "secureboot-db": [ + { + "arch": "amd64", + "category": "utils", + "name": "secureboot-db", + "origin": "Ubuntu", + "source": "apt", + "version": "1.8" + } + ], + "sed": [ + { + "arch": "amd64", + "category": "utils", + "name": "sed", + "origin": "Ubuntu", + "source": "apt", + "version": "4.8-1ubuntu2" + } + ], + "sensible-utils": [ + { + "arch": "all", + "category": "utils", + "name": "sensible-utils", + "origin": "Ubuntu", + "source": "apt", + "version": "0.0.17" + } + ], + "sg3-utils": [ + { + "arch": "amd64", + "category": "admin", + "name": "sg3-utils", + "origin": "Ubuntu", + "source": "apt", + "version": "1.46-1ubuntu0.22.04.1" + } + ], + "sg3-utils-udev": [ + { + "arch": "all", + "category": "admin", + "name": "sg3-utils-udev", + "origin": "Ubuntu", + "source": "apt", + "version": "1.46-1ubuntu0.22.04.1" + } + ], + "shared-mime-info": [ + { + "arch": "amd64", + "category": "misc", + "name": "shared-mime-info", + "origin": "Ubuntu", + "source": "apt", + "version": "2.1-2" + } + ], + "smbclient": [ + { + "arch": "amd64", + "category": "net", + "name": "smbclient", + "origin": "Ubuntu", + "source": "apt", + "version": "2:4.15.13+dfsg-0ubuntu1.5" + } + ], + "snapd": [ + { + "arch": "amd64", + "category": "devel", + "name": "snapd", + "origin": "Ubuntu", + "source": "apt", + "version": "2.58+22.04.1" + } + ], + "software-properties-common": [ + { + "arch": "all", + "category": "admin", + "name": "software-properties-common", + "origin": "Ubuntu", + "source": "apt", + "version": "0.99.22.8" + } + ], + "sosreport": [ + { + "arch": "amd64", + "category": "admin", + "name": "sosreport", + "origin": "Ubuntu", + "source": "apt", + "version": "4.5.6-0ubuntu1~22.04.2" + } + ], + "squashfs-tools": [ + { + "arch": "amd64", + "category": "admin", + "name": "squashfs-tools", + "origin": "Ubuntu", + "source": "apt", + "version": "1:4.5-3build1" + } + ], + "ssh-import-id": [ + { + "arch": "all", + "category": "misc", + "name": "ssh-import-id", + "origin": "Ubuntu", + "source": "apt", + "version": "5.11-0ubuntu1" + } + ], + "ssl-cert": [ + { + "arch": "all", + "category": "utils", + "name": "ssl-cert", + "origin": "Ubuntu", + "source": "apt", + "version": "1.1.2" + } + ], + "strace": [ + { + "arch": "amd64", + "category": "utils", + "name": "strace", + "origin": "Ubuntu", + "source": "apt", + "version": "5.16-0ubuntu3" + } + ], + "sudo": [ + { + "arch": "amd64", + "category": "admin", + "name": "sudo", + "origin": "Ubuntu", + "source": "apt", + "version": "1.9.9-1ubuntu2.4" + } + ], + "sysstat": [ + { + "arch": "amd64", + "category": "admin", + "name": "sysstat", + "origin": "Ubuntu", + "source": "apt", + "version": "12.5.2-2ubuntu0.2" + } + ], + "systemd": [ + { + "arch": "amd64", + "category": "admin", + "name": "systemd", + "origin": "Ubuntu", + "source": "apt", + "version": "249.11-0ubuntu3.11" + } + ], + "systemd-hwe-hwdb": [ + { + "arch": "all", + "category": "admin", + "name": "systemd-hwe-hwdb", + "origin": "", + "source": "apt", + "version": "249.11.3" + } + ], + "systemd-sysv": [ + { + "arch": "amd64", + "category": "admin", + "name": "systemd-sysv", + "origin": "Ubuntu", + "source": "apt", + "version": "249.11-0ubuntu3.11" + } + ], + "systemd-timesyncd": [ + { + "arch": "amd64", + "category": "admin", + "name": "systemd-timesyncd", + "origin": "Ubuntu", + "source": "apt", + "version": "249.11-0ubuntu3.11" + } + ], + "sysvinit-utils": [ + { + "arch": "amd64", + "category": "admin", + "name": "sysvinit-utils", + "origin": "Ubuntu", + "source": "apt", + "version": "3.01-1ubuntu1" + } + ], + "tar": [ + { + "arch": "amd64", + "category": "utils", + "name": "tar", + "origin": "", + "source": "apt", + "version": "1.34+dfsg-1ubuntu0.1.22.04.1" + } + ], + "tcl": [ + { + "arch": "amd64", + "category": "interpreters", + "name": "tcl", + "origin": "Ubuntu", + "source": "apt", + "version": "8.6.11+1build2" + } + ], + "tcl8.6": [ + { + "arch": "amd64", + "category": "interpreters", + "name": "tcl8.6", + "origin": "Ubuntu", + "source": "apt", + "version": "8.6.12+dfsg-1build1" + } + ], + "tcpdump": [ + { + "arch": "amd64", + "category": "net", + "name": "tcpdump", + "origin": "Ubuntu", + "source": "apt", + "version": "4.99.1-3ubuntu0.1" + } + ], + "telnet": [ + { + "arch": "amd64", + "category": "net", + "name": "telnet", + "origin": "Ubuntu", + "source": "apt", + "version": "0.17-44build1" + } + ], + "thermald": [ + { + "arch": "amd64", + "category": "admin", + "name": "thermald", + "origin": "Ubuntu", + "source": "apt", + "version": "2.4.9-1ubuntu0.4" + } + ], + "thin-provisioning-tools": [ + { + "arch": "amd64", + "category": "admin", + "name": "thin-provisioning-tools", + "origin": "Ubuntu", + "source": "apt", + "version": "0.9.0-2ubuntu1" + } + ], + "time": [ + { + "arch": "amd64", + "category": "utils", + "name": "time", + "origin": "Ubuntu", + "source": "apt", + "version": "1.9-0.1build2" + } + ], + "tmux": [ + { + "arch": "amd64", + "category": "admin", + "name": "tmux", + "origin": "Ubuntu", + "source": "apt", + "version": "3.2a-4ubuntu0.2" + } + ], + "tnftp": [ + { + "arch": "amd64", + "category": "net", + "name": "tnftp", + "origin": "Ubuntu", + "source": "apt", + "version": "20210827-4build1" + } + ], + "tpm-udev": [ + { + "arch": "all", + "category": "admin", + "name": "tpm-udev", + "origin": "Ubuntu", + "source": "apt", + "version": "0.6" + } + ], + "traceroute": [ + { + "arch": "amd64", + "category": "universe/net", + "name": "traceroute", + "origin": "Ubuntu", + "source": "apt", + "version": "1:2.1.0-2" + } + ], + "tzdata": [ + { + "arch": "all", + "category": "libs", + "name": "tzdata", + "origin": "Ubuntu", + "source": "apt", + "version": "2023c-0ubuntu0.22.04.2" + } + ], + "ubuntu-advantage-tools": [ + { + "arch": "amd64", + "category": "misc", + "name": "ubuntu-advantage-tools", + "origin": "Ubuntu", + "source": "apt", + "version": "30~22.04" + } + ], + "ubuntu-drivers-common": [ + { + "arch": "amd64", + "category": "admin", + "name": "ubuntu-drivers-common", + "origin": "Ubuntu", + "source": "apt", + "version": "1:0.9.6.2~0.22.04.6" + } + ], + "ubuntu-keyring": [ + { + "arch": "all", + "category": "misc", + "name": "ubuntu-keyring", + "origin": "Ubuntu", + "source": "apt", + "version": "2021.03.26" + } + ], + "ubuntu-minimal": [ + { + "arch": "amd64", + "category": "metapackages", + "name": "ubuntu-minimal", + "origin": "Ubuntu", + "source": "apt", + "version": "1.481.1" + } + ], + "ubuntu-pro-client-l10n": [ + { + "arch": "amd64", + "category": "misc", + "name": "ubuntu-pro-client-l10n", + "origin": "Ubuntu", + "source": "apt", + "version": "30~22.04" + } + ], + "ubuntu-release-upgrader-core": [ + { + "arch": "all", + "category": "admin", + "name": "ubuntu-release-upgrader-core", + "origin": "Ubuntu", + "source": "apt", + "version": "1:22.04.17" + } + ], + "ubuntu-server": [ + { + "arch": "amd64", + "category": "metapackages", + "name": "ubuntu-server", + "origin": "Ubuntu", + "source": "apt", + "version": "1.481.1" + } + ], + "ubuntu-standard": [ + { + "arch": "amd64", + "category": "metapackages", + "name": "ubuntu-standard", + "origin": "Ubuntu", + "source": "apt", + "version": "1.481.1" + } + ], + "ucf": [ + { + "arch": "all", + "category": "utils", + "name": "ucf", + "origin": "Ubuntu", + "source": "apt", + "version": "3.0043" + } + ], + "udev": [ + { + "arch": "amd64", + "category": "admin", + "name": "udev", + "origin": "Ubuntu", + "source": "apt", + "version": "249.11-0ubuntu3.11" + } + ], + "udisks2": [ + { + "arch": "amd64", + "category": "admin", + "name": "udisks2", + "origin": "Ubuntu", + "source": "apt", + "version": "2.9.4-1ubuntu2" + } + ], + "ufw": [ + { + "arch": "all", + "category": "admin", + "name": "ufw", + "origin": "Ubuntu", + "source": "apt", + "version": "0.36.1-4ubuntu0.1" + } + ], + "unattended-upgrades": [ + { + "arch": "all", + "category": "admin", + "name": "unattended-upgrades", + "origin": "Ubuntu", + "source": "apt", + "version": "2.8ubuntu1" + } + ], + "unzip": [ + { + "arch": "amd64", + "category": "utils", + "name": "unzip", + "origin": "Ubuntu", + "source": "apt", + "version": "6.0-26ubuntu3.1" + } + ], + "update-inetd": [ + { + "arch": "all", + "category": "admin", + "name": "update-inetd", + "origin": "Ubuntu", + "source": "apt", + "version": "4.51" + } + ], + "update-manager-core": [ + { + "arch": "all", + "category": "admin", + "name": "update-manager-core", + "origin": "", + "source": "apt", + "version": "1:22.04.10" + } + ], + "update-notifier-common": [ + { + "arch": "all", + "category": "gnome", + "name": "update-notifier-common", + "origin": "Ubuntu", + "source": "apt", + "version": "3.192.54.6" + } + ], + "upower": [ + { + "arch": "amd64", + "category": "admin", + "name": "upower", + "origin": "Ubuntu", + "source": "apt", + "version": "0.99.17-1" + } + ], + "usb-modeswitch": [ + { + "arch": "amd64", + "category": "comm", + "name": "usb-modeswitch", + "origin": "Ubuntu", + "source": "apt", + "version": "2.6.1-3ubuntu2" + } + ], + "usb-modeswitch-data": [ + { + "arch": "all", + "category": "comm", + "name": "usb-modeswitch-data", + "origin": "Ubuntu", + "source": "apt", + "version": "20191128-4" + } + ], + "usb.ids": [ + { + "arch": "all", + "category": "admin", + "name": "usb.ids", + "origin": "Ubuntu", + "source": "apt", + "version": "2022.04.02-1" + } + ], + "usbmuxd": [ + { + "arch": "amd64", + "category": "utils", + "name": "usbmuxd", + "origin": "Ubuntu", + "source": "apt", + "version": "1.1.1-2build2" + } + ], + "usbutils": [ + { + "arch": "amd64", + "category": "utils", + "name": "usbutils", + "origin": "Ubuntu", + "source": "apt", + "version": "1:014-1build1" + } + ], + "usrmerge": [ + { + "arch": "all", + "category": "admin", + "name": "usrmerge", + "origin": "Ubuntu", + "source": "apt", + "version": "25ubuntu2" + } + ], + "util-linux": [ + { + "arch": "amd64", + "category": "utils", + "name": "util-linux", + "origin": "Ubuntu", + "source": "apt", + "version": "2.37.2-4ubuntu3" + } + ], + "uuid-runtime": [ + { + "arch": "amd64", + "category": "libs", + "name": "uuid-runtime", + "origin": "Ubuntu", + "source": "apt", + "version": "2.37.2-4ubuntu3" + } + ], + "vim": [ + { + "arch": "amd64", + "category": "editors", + "name": "vim", + "origin": "Ubuntu", + "source": "apt", + "version": "2:8.2.3995-1ubuntu2.15" + } + ], + "vim-common": [ + { + "arch": "all", + "category": "editors", + "name": "vim-common", + "origin": "Ubuntu", + "source": "apt", + "version": "2:8.2.3995-1ubuntu2.15" + } + ], + "vim-nox": [ + { + "arch": "amd64", + "category": "universe/editors", + "name": "vim-nox", + "origin": "Ubuntu", + "source": "apt", + "version": "2:8.2.3995-1ubuntu2.15" + } + ], + "vim-runtime": [ + { + "arch": "all", + "category": "editors", + "name": "vim-runtime", + "origin": "Ubuntu", + "source": "apt", + "version": "2:8.2.3995-1ubuntu2.15" + } + ], + "vim-tiny": [ + { + "arch": "amd64", + "category": "editors", + "name": "vim-tiny", + "origin": "Ubuntu", + "source": "apt", + "version": "2:8.2.3995-1ubuntu2.15" + } + ], + "wget": [ + { + "arch": "amd64", + "category": "web", + "name": "wget", + "origin": "Ubuntu", + "source": "apt", + "version": "1.21.2-2ubuntu1" + } + ], + "whiptail": [ + { + "arch": "amd64", + "category": "utils", + "name": "whiptail", + "origin": "Ubuntu", + "source": "apt", + "version": "0.52.21-5ubuntu2" + } + ], + "wireless-regdb": [ + { + "arch": "all", + "category": "net", + "name": "wireless-regdb", + "origin": "Ubuntu", + "source": "apt", + "version": "2022.06.06-0ubuntu1~22.04.1" + } + ], + "x11-common": [ + { + "arch": "all", + "category": "x11", + "name": "x11-common", + "origin": "Ubuntu", + "source": "apt", + "version": "1:7.7+23ubuntu2" + } + ], + "xauth": [ + { + "arch": "amd64", + "category": "x11", + "name": "xauth", + "origin": "Ubuntu", + "source": "apt", + "version": "1:1.1-1build2" + } + ], + "xdg-user-dirs": [ + { + "arch": "amd64", + "category": "utils", + "name": "xdg-user-dirs", + "origin": "Ubuntu", + "source": "apt", + "version": "0.17-2ubuntu4" + } + ], + "xfsprogs": [ + { + "arch": "amd64", + "category": "admin", + "name": "xfsprogs", + "origin": "Ubuntu", + "source": "apt", + "version": "5.13.0-1ubuntu2" + } + ], + "xinetd": [ + { + "arch": "amd64", + "category": "universe/net", + "name": "xinetd", + "origin": "Ubuntu", + "source": "apt", + "version": "1:2.3.15.3-1" + } + ], + "xkb-data": [ + { + "arch": "all", + "category": "x11", + "name": "xkb-data", + "origin": "Ubuntu", + "source": "apt", + "version": "2.33-1" + } + ], + "xxd": [ + { + "arch": "amd64", + "category": "editors", + "name": "xxd", + "origin": "", + "source": "apt", + "version": "2:8.2.3995-1ubuntu2.13" + } + ], + "xz-utils": [ + { + "arch": "amd64", + "category": "utils", + "name": "xz-utils", + "origin": "Ubuntu", + "source": "apt", + "version": "5.2.5-2ubuntu1" + } + ], + "zerofree": [ + { + "arch": "amd64", + "category": "admin", + "name": "zerofree", + "origin": "Ubuntu", + "source": "apt", + "version": "1.1.1-1build3" + } + ], + "zip": [ + { + "arch": "amd64", + "category": "utils", + "name": "zip", + "origin": "Ubuntu", + "source": "apt", + "version": "3.0-12build2" + } + ], + "zlib1g": [ + { + "arch": "amd64", + "category": "libs", + "name": "zlib1g", + "origin": "Ubuntu", + "source": "apt", + "version": "1:1.2.11.dfsg-2ubuntu9.2" + } + ], + "zstd": [ + { + "arch": "amd64", + "category": "utils", + "name": "zstd", + "origin": "Ubuntu", + "source": "apt", + "version": "1.4.8+dfsg-3build1" + } + ] + } + }, + "changed": false +} diff --git a/playbooks/hosts.kvm b/playbooks/hosts.kvm new file mode 100644 index 000000000..aeae816e8 --- /dev/null +++ b/playbooks/hosts.kvm @@ -0,0 +1,30 @@ +[test] +test1.tld checkmk_var_folder_path="/test" +test2.tld checkmk_var_folder_path="/foo" +test3.tld checkmk_var_folder_path="/bar" +test4.tld checkmk_var_folder_path="/" +test5.tld checkmk_var_folder_path="/foo/bar" + +[linux] +ansibuntu ansible_host=192.168.124.61 checkmk_var_folder_path="/test" +debsible ansible_host=192.168.124.62 checkmk_var_folder_path="/foo" +anstream ansible_host=192.168.124.63 checkmk_var_folder_path="foo/bar" +ansuse ansible_host=192.168.124.64 checkmk_var_folder_path="/bar" +ansles ansible_host=192.168.124.65 checkmk_var_folder_path="/bar/foo" +ansoracle ansible_host=192.168.124.66 checkmk_var_folder_path="/foo" + +[windows] +ansidows ansible_host=192.168.124.67 checkmk_var_folder_path="/" + +[windows:vars] +ansible_shell_type = cmd +ansible_winrm_scheme = http +ansible_winrm_transport = basic +ansible_winrm_server_cert_validation = ignore + +[vagrant:children] +linux +windows + +[vagrant:vars] +ansible_user=vagrant diff --git a/playbooks/hosts b/playbooks/hosts.vbox similarity index 77% rename from playbooks/hosts rename to playbooks/hosts.vbox index b203118a0..8c0bee301 100644 --- a/playbooks/hosts +++ b/playbooks/hosts.vbox @@ -1,9 +1,9 @@ [test] -test1.tld checkmk_var_folder_path="/test" -test2.tld checkmk_var_folder_path="/foo" -test3.tld checkmk_var_folder_path="/bar" -test4.tld checkmk_var_folder_path="/" -test5.tld checkmk_var_folder_path="/foo/bar" +test1.tld checkmk_var_folder_path="/test" +test2.tld checkmk_var_folder_path="/foo" +test3.tld checkmk_var_folder_path="/bar" +test4.tld checkmk_var_folder_path="/" +test5.tld checkmk_var_folder_path="/foo/bar" [linux] ansibuntu ansible_host=192.168.56.61 checkmk_var_folder_path="/test" diff --git a/plugins/modules/host_group.py b/plugins/modules/host_group.py index 80a53e44b..4f0d01dbd 100644 --- a/plugins/modules/host_group.py +++ b/plugins/modules/host_group.py @@ -96,7 +96,7 @@ state: "present" # Delete a single host group. -- name: "Create a single host group." +- name: "Delete a single host group." checkmk.general.host_group: server_url: "http://my_server/" site: "my_site" diff --git a/plugins/modules/rule.py b/plugins/modules/rule.py index aa7530f8c..097acce4e 100644 --- a/plugins/modules/rule.py +++ b/plugins/modules/rule.py @@ -290,6 +290,23 @@ def get_rules_in_ruleset(module, base_url, headers, ruleset): return json.loads(response.read().decode("utf-8")) +def get_rule_by_id(module, base_url, headers, rule_id): + api_endpoint = "/objects/rule/" + rule_id + + url = base_url + api_endpoint + + response, info = fetch_url(module, url, headers=headers, method="GET") + + if info["status"] not in [200, 204]: + exit_failed( + module, + "Error calling API. HTTP code %d. Details: %s, " + % (info["status"], info["body"]), + ) + + return json.loads(response.read().decode("utf-8")) + + def get_existing_rule(module, base_url, headers, ruleset, rule): # Get rules in ruleset rules = get_rules_in_ruleset(module, base_url, headers, ruleset) @@ -298,6 +315,13 @@ def get_existing_rule(module, base_url, headers, ruleset, rule): if exc is not None: exit_failed(module, "value_raw in rule has invalid format") + # Get folder from neighbour rule if relative rule_id is given in location + if rule["location"]["rule_id"] is not None: + neighbour_rule = get_rule_by_id( + module, base_url, headers, rule["location"]["rule_id"] + ) + rule["folder"] = neighbour_rule["extensions"]["folder"] + if rules is not None: # Loop through all rules for r in rules.get("value"): diff --git a/plugins/modules/tag_group.py b/plugins/modules/tag_group.py index 5e3868158..054439fa1 100644 --- a/plugins/modules/tag_group.py +++ b/plugins/modules/tag_group.py @@ -1,8 +1,8 @@ #!/usr/bin/python # -*- encoding: utf-8; py-indent-offset: 4 -*- -# Copyright: (c) 2022, Stefan Mühling & -# Robin Gierse +# Copyright: (c) 2023, Max Sickora & +# Stefan Mühling # GNU General Public License v3.0+ # (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function @@ -13,68 +13,99 @@ --- module: tag_group -short_description: Manage tag_group within Checkmk +short_description: Manage tag groups in Checkmk. # If this is part of a collection, you need to use semantic versioning, # i.e. the version is of the form "2.5.0" and not "2.4". version_added: "0.11.0" description: -- Manage tag_group within Checkmk. +- Manage tag groups in Checkmk. extends_documentation_fragment: [checkmk.general.common] options: - id: - description: The id of the tag_group to be created/ - modified/deleted. + help: + description: The help text for the tag group. default: "" type: str - title: - description: The title of the tag_group - default: "" + name: + description: The name of the tag group to manage. + required: true type: str - topic: - description: The topic of the tag_group - default: "" + aliases: ["id"] + repair: + description: + - Give permission to update or remove the tag on hosts using it automatically. + B(Use with caution!) + default: False + type: bool + state: + description: The desired state. + default: "present" + choices: ["present", "absent"] type: str - choices: - description: The list of the tags for the tag_group as dicts. + tags: + description: A list of the tag groups to be created. default: [] type: list elements: dict - state: - description: The desired state - default: "present" - choices: ["present", "absent"] + aliases: ["choices"] + suboptions: + id: + description: The id of the tag + required: true + type: str + title: + description: The title of the tag + required: true + type: str + title: + description: The title of the tag group. + default: "" + type: str + topic: + description: The topic of the tag group. + default: "" type: str author: + - Max Sickora (@Max-checkmk) - Stefan Mühling (@muehlings) """ EXAMPLES = r""" -- name: "Create tag_group" +# Create a tag group +- name: "Create tag group" checkmk.general.tag_group: - server_url: "https://localhost/" + server_url: "https://my_server/" site: "my_site" automation_user: "my_user" automation_secret: "my_secret" - id: Virtualization - title: Virtualization - topic: My_Tags - choices: - - id: No_Virtualization - title: No Virtualization - - id: ESXi - title: ESXi - - id: vCenter - title: vCenter - - id: HyperV - title: HyperV - - id: KVM - title: KVM + name: datacenter + title: Datacenter + topic: Tags + help: "The datacenter this host resides in." + tags: + - id: datacenter_none + title: No Datacenter + - id: datacenter_1 + title: Datacenter 2 + - id: datacenter_2 + title: Datacenter 2 + - id: datacenter_3 + title: Datacenter 3 state: present + +# Delete a tag group +- name: "Delete tag group." + checkmk.general.tag_group: + server_url: "https://my_server/" + site: "my_site" + automation_user: "my_user" + automation_secret: "my_secret" + name: datacenter + state: "absent" """ RETURN = r""" @@ -90,180 +121,169 @@ sample: 'OK' """ - import json +import time from ansible.module_utils.basic import AnsibleModule -from ansible.module_utils.urls import fetch_url - - -def read_tag_group(module, base_url, headers): - result = dict( - changed=False, failed=False, http_code="", msg="", current_tag_group={}, etag="" - ) - - current_state = "unknown" - current_tag_group = dict(title="", topic="", tags=[], ident="") - etag = "" - - ident = module.params.get("id", "") - - api_endpoint = "/objects/host_tag_group/" + ident - url = base_url + api_endpoint - - response, info = fetch_url(module, url, data=None, headers=headers, method="GET") - - response_content = "" - - http_code = info["status"] - try: - response_content = response.read() - except Exception: - response_content = {} - - msg = info["msg"] - - if info["status"] == 200: - current_state = "present" - etag = info.get("etag", "") - - extensions = json.loads(response_content).get("extensions", {}) - current_tag_group["tags"] = extensions["tags"] - current_tag_group["topic"] = extensions["topic"] - current_tag_group["title"] = json.loads(response_content).get("title", "") - current_tag_group["ident"] = json.loads(response_content).get("id", "") - - for d in current_tag_group["tags"]: - d["ident"] = d.pop("id") - d.pop("aux_tags") - - else: - current_state = "absent" - - result["current_tag_group"] = current_tag_group - result["msg"] = str(http_code) + " - " + msg - result["http_code"] = http_code - result["state"] = current_state - result["etag"] = etag - - return result - - -def create_tag_group(module, base_url, headers): - result = dict(changed=False, failed=False, http_code="", msg="") +from ansible_collections.checkmk.general.plugins.module_utils.api import CheckmkAPI +from ansible_collections.checkmk.general.plugins.module_utils.types import RESULT +from ansible_collections.checkmk.general.plugins.module_utils.utils import ( + result_as_dict, +) + +# from ansible_collections.checkmk.general.plugins.module_utils.version import ( +# CheckmkVersion, +# ) + +# We count 404 not as failed, because we want to know if the taggroup exists or not. +HTTP_CODES_GET = { + # http_code: (changed, failed, "Message") + 200: (True, False, "OK: The operation was done successfully."), + 404: (False, False, "Not Found: The requested object has not been found."), + 500: (False, True, "General Server Error."), +} + +HTTP_CODES_DELETE = { + # http_code: (changed, failed, "Message") + 405: ( + False, + True, + "Method Not Allowed: This request is only allowed with other HTTP methods", + ), + 500: (False, True, "General Server Error."), +} + +HTTP_CODES_CREATE = { + # http_code: (changed, failed, "Message") + 200: (True, False, "OK: The operation was done successfully."), + 500: (False, True, "General Server Error."), +} + +HTTP_CODES_UPDATE = { + # http_code: (changed, failed, "Message") + 200: (True, False, "OK: The operation was done successfully."), + 401: (False, True, "Unauthorized: The user is not authorized to do this request"), + 405: ( + False, + True, + "Method Not Allowed: This request is only allowed with other HTTP methods", + ), + 500: (False, True, "General Server Error."), +} + + +def normalize_data(raw_data): + data = { + "title": raw_data.get("title", ""), + "topic": raw_data.get("topic", ""), + "help": raw_data.get("help", ""), + "tags": raw_data.get("tags", ""), + "repair": raw_data.get("repair"), + } - changed = False - failed = False - http_code = "" + # Remove all keys without value, as they would be emptied. + data = {key: val for key, val in data.items() if val} - ident = module.params.get("id", "") - tag_group = {} - tag_group["ident"] = ident - tag_group["title"] = module.params.get("title", "") - tag_group["topic"] = module.params.get("topic", "") - tag_group["tags"] = module.params.get("choices", "") - for d in tag_group["tags"]: - d["ident"] = d.pop("id") + # The API uses "ident" instead of "id" for the put & post endpoints + if "tags" in data: + for d in data["tags"]: + if "id" in d: + d["ident"] = d.pop("id") - api_endpoint = "/domain-types/host_tag_group/collections/all" - url = base_url + api_endpoint - response, info = fetch_url( - module, url, module.jsonify(tag_group), headers=headers, method="POST" - ) + return data - http_code = info["status"] - msg = info["msg"] - if info["status"] != 200: - failed = True +class TaggroupCreateAPI(CheckmkAPI): + def post(self): + if not self.params.get("title") or not self.params.get("tags"): + result = RESULT( + http_code=0, + msg="Need parameter title and tags to create hosttag", + content="", + etag="", + failed=True, + changed=False, + ) + return result - result["msg"] = str(http_code) + " - " + msg - result["changed"] = changed - result["failed"] = failed - result["http_code"] = http_code - result["info"] = info + else: + data = normalize_data(self.params) + data["ident"] = self.params.get("name") - return result + return self._fetch( + code_mapping=HTTP_CODES_CREATE, + endpoint="/domain-types/host_tag_group/collections/all", + data=data, + method="POST", + ) -def update_tag_group(module, base_url, headers, etag): - result = dict(changed=False, failed=False, http_code="", msg="") +class TaggroupUpdateAPI(CheckmkAPI): + def put(self): + data = normalize_data(self.params) - changed = False - failed = False - http_code = "" + return self._fetch( + code_mapping=HTTP_CODES_UPDATE, + endpoint="/objects/host_tag_group/%s" % self.params.get("name"), + data=data, + method="PUT", + ) - ident = module.params.get("id", "") - tag_group = {} - tag_group["repair"] = True - tag_group["title"] = module.params.get("title", "") - tag_group["topic"] = module.params.get("topic", "") - tag_group["tags"] = module.params.get("choices", "") - for d in tag_group["tags"]: - d["ident"] = d.pop("id") - api_endpoint = "/objects/host_tag_group/" + ident - url = base_url + api_endpoint - headers["If-Match"] = etag - response, info = fetch_url( - module, url, module.jsonify(tag_group), headers=headers, method="PUT" - ) +class TaggroupDeleteAPI(CheckmkAPI): + def delete(self): + data = {} - http_code = info["status"] - msg = info["msg"] + return self._fetch( + code_mapping=HTTP_CODES_DELETE, + endpoint="/objects/host_tag_group/%s?repair=%s" + % (self.params.get("name"), self.params.get("repair")), + # data=data, + method="DELETE", + ) - if info["status"] != 200: - failed = True - result["msg"] = str(http_code) + " - " + msg - result["changed"] = changed - result["failed"] = failed - result["http_code"] = http_code - result["info"] = info +class TaggroupGetAPI(CheckmkAPI): + def get(self): + data = {} - return result + return self._fetch( + code_mapping=HTTP_CODES_GET, + endpoint="/objects/host_tag_group/%s" % self.params.get("name"), + data=data, + method="GET", + ) -def delete_tag_group(module, base_url, headers, etag): - result = dict(changed=False, failed=False, http_code="", msg="") +def changes_detected(module, current): + if module.params.get("title") != current.get("title"): + # The title has changed + return True - changed = False - failed = False - http_code = "" + if module.params.get("topic") != current.get("extensions", {}).get("topic"): + # The topic has changed + return True - ident = module.params.get("id") - tag_group = {} - tag_group["repair"] = True - tag_group["title"] = module.params.get("title", "") - tag_group["topic"] = module.params.get("topic", "") - tag_group["tags"] = module.params.get("choices", "") - for d in tag_group["tags"]: - d["ident"] = d.pop("id") + desired_tags = module.params.get("tags") + current_tags = current.get("extensions", {}).get("tags", []) - api_endpoint = "/objects/host_tag_group/" + ident - url = base_url + api_endpoint - headers["If-Match"] = etag - response, info = fetch_url( - module, url, module.jsonify(tag_group), headers=headers, method="DELETE" - ) + if len(desired_tags) != len(current_tags): + # The number of tags has changed + return True - http_code = info["status"] - msg = info["msg"] + for d in current_tags: + d.pop("aux_tags") - if info["status"] != 204: - failed = True + pairs = zip(desired_tags, current_tags) - result["msg"] = str(http_code) + " - " + msg - result["changed"] = changed - result["failed"] = failed - result["http_code"] = http_code - result["info"] = info + if not all(a == b for a, b in pairs): + # At least one of the tags or the order has changed + return True - return result + return False def run_module(): - # define available arguments/parameters a user can pass to the module module_args = dict( server_url=dict(type="str", required=True), site=dict(type="str", required=True), @@ -271,100 +291,73 @@ def run_module(): automation_user=dict(type="str", required=True), automation_secret=dict(type="str", required=True, no_log=True), title=dict(type="str", default=""), - id=dict(type="str", default=""), + name=dict(type="str", required=True, aliases=["id"]), topic=dict(type="str", default=""), - choices=dict(type="list", elements="dict", default=[]), + help=dict(type="str", default=""), + tags=dict( + type="list", + elements="dict", + default=[], + aliases=["choices"], + options=dict( + id=dict(type="str", required=True), + title=dict(type="str", required=True), + ), + ), + repair=dict(type="bool", default=False), state=dict(type="str", default="present", choices=["present", "absent"]), ) module = AnsibleModule(argument_spec=module_args, supports_check_mode=False) - # Declare headers including authentication to send to the Checkmk API - headers = { - "Accept": "application/json", - "Content-Type": "application/json", - "Authorization": "Bearer %s %s" - % ( - module.params.get("automation_user", ""), - module.params.get("automation_secret", ""), - ), - } - - state = module.params.get("state", "present") - - base_url = "%s/%s/check_mk/api/1.0" % ( - module.params.get("server_url", ""), - module.params.get("site", ""), + result = RESULT( + http_code=0, + msg="Nothing to be done", + content="", + etag="", + failed=False, + changed=False, ) - # read current state (GET) - result = read_tag_group(module, base_url, headers) - msg_tokens = [] - - # tag_group is "present" - if result["etag"] != "": - # tag_group needs to be deleted (DELETE) - if state == "absent": - result = delete_tag_group(module, base_url, headers, result["etag"]) - msg_tokens.append("Tag group deleted.") - result["changed"] = True - # tag_group needs to be updated (PUT) - elif state == "present": - choices = module.params.get("choices") - current_choices = result["current_tag_group"]["tags"] - for d in current_choices: - d["id"] = d.pop("ident") - pairs = zip(choices, current_choices) - current_len = len(current_choices) - current_etag = result["etag"] - current_title = result["current_tag_group"]["title"] - current_topic = result["current_tag_group"]["topic"] - changed_len = False - changed_content = False - changed_title = False - changed_topic = False - if not all(a == b for a, b in pairs): - changed_content = True - msg_tokens.append("Content of choices changed.") - if len(module.params.get("choices")) != current_len: - changed_len = True - msg_tokens.append("Number of choices changed.") - if module.params.get("title") != current_title: - changed_title = True - msg_tokens.append("Title changed.") - if module.params.get("topic") != current_topic: - changed_topic = True - msg_tokens.append("Topic changed.") - if ( - changed_content is True - or changed_len is True - or changed_title is True - or changed_topic is True - ): - result = update_tag_group(module, base_url, headers, current_etag) - result["changed"] = True - else: - msg_tokens.append("Tag group as desired. Nothing to do.") - - else: - # tag_group is "absent" - if state == "absent": - # nothing to do - msg_tokens.append("Nothing to do.") - result["changed"] = False - elif state == "present": - # tag_group needs to be created (POST) - result = create_tag_group(module, base_url, headers) - msg_tokens.append("Tag group created.") - result["changed"] = True - - if len(msg_tokens) > 0: - result["msg"] = " ".join(msg_tokens) - - if result["failed"]: - module.fail_json(**result) - - module.exit_json(**result) + taggroupget = TaggroupGetAPI(module) + current = taggroupget.get() + + if module.params.get("state") == "present": + if current.http_code == 200: + # If tag group has changed then update it. + if changes_detected(module, json.loads(current.content.decode("utf-8"))): + taggroupupdate = TaggroupUpdateAPI(module) + taggroupupdate.headers["If-Match"] = current.etag + result = taggroupupdate.put() + + time.sleep(3) + + elif current.http_code == 404: + # Tag group is not there. Create it. + taggroupcreate = TaggroupCreateAPI(module) + + result = taggroupcreate.post() + + time.sleep(3) + + if module.params.get("state") == "absent": + # Only delete if the Taggroup exists + if current.http_code == 200: + taggroupdelete = TaggroupDeleteAPI(module) + result = taggroupdelete.delete() + + time.sleep(3) + elif current.http_code == 404: + result = RESULT( + http_code=0, + msg="Taggroup doesn't exist.", + content="", + etag="", + failed=False, + changed=False, + ) + + module.exit_json(**result_as_dict(result)) def main(): diff --git a/plugins/modules/user.py b/plugins/modules/user.py index 9bbf6921a..d2a00f13b 100644 --- a/plugins/modules/user.py +++ b/plugins/modules/user.py @@ -1,7 +1,9 @@ #!/usr/bin/python # -*- encoding: utf-8; py-indent-offset: 4 -*- -# Copyright: (c) 2023, Lars Getwan +# Copyright: (c) 2023, Lars Getwan & +# Marcel Arentz & +# Max Sickora # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function @@ -18,75 +20,116 @@ version_added: "0.18.0" description: -- Create and delete users within Checkmk. +- Manage users in Checkmk. extends_documentation_fragment: [checkmk.general.common] options: - name: - description: The user you want to manage. - required: true - type: str - fullname: - description: The alias or full name of the user. + auth_type: + description: + - The authentication type. + Setting this to C(password) will create a normal user, C(automation) will create an automation user. type: str + choices: [password, automation] + authorized_sites: + description: The names of the sites the user is authorized to access. + type: raw + contactgroups: + description: A list of contact groups assigned to the user. + type: raw customer: - description: For the Checkmk Managed Edition (CME), you need to specify which customer ID this object belongs to. - required: false - type: str - password: - description: The password or secret for login. + description: + - For the Checkmk Managed Edition (CME), you need to specify which customer ID this object belongs to. type: str - enforce_password_change: - description: If set to true, the user will be forced to change his/her password at the next login. + disable_notifications: + description: Temporarily disable B(all) notifications for this user. type: bool - auth_type: - description: The authentication type. - type: str - choices: [password, automation] disable_login: - description: The user can be blocked from login but will remain part of the site. The disabling does not affect notification and alerts. + description: + - If set to C(true), the user cannot log in anymore, but will remain part of the site. + Disabling a user does not affect notifications. type: bool + disable_notifications_timerange: + description: The duration, for how log notifications should be disabled, if C(disable_notifications) is set to C(true). + type: dict email: - description: The mail address of the user. Required if the user is a monitoring contact and receives notifications via mail. + description: + - The mail address of the user. Required if the user is a monitoring contact and should receive notifications via mail. type: str + enforce_password_change: + description: If set to C(true), the user will be forced to change their password on the next login. + type: bool fallback_contact: - description: In case none of your notification rules handles a certain event a notification will be sent to the specified email. + description: + - This user will receive fallback notifications. + This means, if no notification rules match a certain event, they are sent to the fallback contacts. type: bool - pager_address: - description: The pager address. + fullname: + description: A alias or the full name of the user. type: str idle_timeout_duration: - description: The duration in seconds of the individual idle timeout if individual is selected as idle timeout option. - type: str + description: The duration in seconds, if C(idle_timeout_option) is set to C(individual). + type: int idle_timeout_option: - description: Specify if the idle timeout should use the global configuration, be disabled or use an individual duration + description: + - Specify, whether the idle timeout should use the global configuration, use an individual duration or be disabled entirely. type: str choices: [global, disable, individual] + interface_theme: + description: The theme of the user interface. + type: str + choices: [default, dark, light] + language: + description: + - Configure the language to be used by the user in the user interface. + Omitting this will configure the default language. + type: str + choices: [default, en, de] + mega_menu_icons: + description: + - This option decides if colored icons should be shown for every entry in the mega menus + or only for the headlines (the 'topics'). + type: str + choices: [topic, entry] + name: + description: The user you want to manage. + required: true + type: str + navigation_bar_icons: + description: This option decides if icons in the navigation bar should show/hide the respective titles. + type: str + choices: [hide, show] + pager: + description: A (mobile) phone number, used to receive e.g., SMS. + type: str + aliases: ["pager_address"] + password: + description: + - The password or secret for login. Depending on the C(auth_type), this is interpreted as a password or secret. + type: str roles: - description: The list of assigned roles to the user. - type: raw - authorized_sites: - description: The names of the sites the user is authorized to handle. - type: raw - contactgroups: - description: Assign the user to one or multiple contact groups. If no contact group is specified then no monitoring contact will be created. - type: raw - disable_notifications: - description: Option if all notifications should be temporarily disabled. + description: A list of roles assigned to the user. type: raw - language: - description: Configure the language to be used by the user in the user interface. Omitting this will configure the default language. + show_mode: + description: + - This option decides what show mode should be used for unvisited menus. + Alternatively, this option can also be used to enforce show more removing the three dots for all menus. + type: str + choices: [default, default_show_less, default_show_more, enforce_show_more] + sidebar_position: + description: The position of the sidebar. type: str - choices: [default, en, de, ro] + choices: [left, right] state: - description: Desired state + description: The desired state. type: str default: present choices: [present, absent, reset_password] author: - Lars Getwan (@lgetwan) + - Marcel Arentz (@godspeed-you) + - Max Sickora (@max-checkmk) """ EXAMPLES = r""" @@ -99,7 +142,6 @@ automation_secret: "my_secret" name: "krichards" fullname: "Keith Richards" - customer: "provider" email: "keith.richards@rollingstones.com" password: "Open-G" contactgroups: @@ -107,7 +149,6 @@ - "glimmer_twins" - "x-pensive_winos" - "potc_cast" - state: "present" # Create an automation user. - name: "Create an automation user." @@ -118,15 +159,32 @@ automation_secret: "my_secret" name: "registration" fullname: "Registration User" - customer: "provider" auth_type: "automation" password: "ZGSDHUVDSKJHSDF" roles: - "registration" state: "present" +# Create a user with the Checkmk Managed Edition (CME), using the `customer` parameter. +- name: "Create a user." + checkmk.general.user: + server_url: "http://my_server/" + site: "local" + automation_user: "my_user" + automation_secret: "my_secret" + name: "krichards" + fullname: "Keith Richards" + email: "keith.richards@rollingstones.com" + customer: "provider" + password: "Open-G" + contactgroups: + - "rolling_stones" + - "glimmer_twins" + - "x-pensive_winos" + - "potc_cast" + # Create a detailed user. -- name: "Create a detailed user." +- name: "Create a more complex user." checkmk.general.user: server_url: "http://my_server/" site: "local" @@ -139,18 +197,24 @@ password: "uschi" enforce_password_change: true email: "checker@grevenbroich.de" - fallback_contact: true - pager_address: 089-123456789 + fallback_contact: True + pager: 089-123456789 contactgroups: - "sport" - "vereinsgeschehen" - "lokalpolitik" - disable_notifications: '{"disable": true, "timerange": { "start_time": "2023-02-23T15:06:48+00:00", "end_time": "2023-02-23T16:06:48+00:00"}}' + disable_notifications: True + disable_notifications_timerange: { "start_time": "2023-02-23T15:06:48+00:00", "end_time": "2023-02-23T16:06:48+00:00"} language: "de" roles: - "user" authorized_sites: - "{{ my_site }}" + interface_theme: "dark" + sidebar_position: "right" + navigation_bar_icons: "show" + mega_menu_icons: "entry" + show_mode: "default_show_more" state: "present" """ @@ -163,278 +227,234 @@ sample: 'User created.' """ -LOG = [] -import copy import json from ansible.module_utils.basic import AnsibleModule -from ansible.module_utils.urls import fetch_url - - -def exit_failed(module, msg): - result = { - "msg": "%s, log: %s" % (msg, " § ".join(LOG)), - "changed": False, - "failed": True, +from ansible_collections.checkmk.general.plugins.module_utils.api import CheckmkAPI +from ansible_collections.checkmk.general.plugins.module_utils.utils import ( + result_as_dict, +) + +USER = ( + "username", + "fullname", + "customer", + "password", + "enforce_password_change", + "auth_type", + "disable_login", + "email", + "fallback_contact", + "pager", + "idle_timeout_option", + "idle_timeout_duration", + "roles", + "authorized_sites", + "contactgroups", + "disable_notifications", + "disable_notifications_timerange", + "language", + "interface_theme", + "sidebar_position", + "navigation_bar_icons", + "mega_menu_icons", + "show_mode", +) + + +class UserHTTPCodes: + # http_code: (changed, failed, "Message") + get = { + 200: (False, False, "User found, nothing changed"), + 404: (False, False, "User not found"), } - module.fail_json(**result) - -def exit_changed(module, msg): - result = { - "msg": "%s, log: %s" % (msg, " § ".join(LOG)), - "changed": True, - "failed": False, - } - module.exit_json(**result) - - -def exit_ok(module, msg): - result = { - "msg": "%s, log: %s" % (msg, " § ".join(LOG)), - "changed": False, - "failed": False, - } - module.exit_json(**result) - - -def log(msg): - LOG.append(msg) - - -class User: - default_attributes = { - "disable_login": False, - "contact_options": {"email": "", "fallback_contact": False}, - "idle_timeout": {"option": "global"}, - "roles": ["user"], - "contactgroups": [], - "pager_address": "", - "disable_notifications": {}, - } - - def __init__(self, username, state="present", attributes=None, etag=None): - if attributes is None: - self.attributes = self.default_attributes - else: - self.attributes = attributes - self.state = state - self.username = username - self.etag = etag - - def __repr__(self): - return "User(name: %s, state: %s, attributes: %s, etag: %s)" % ( - self.username, - self.state, - str(self.attributes), - self.etag, - ) - - @classmethod - def from_api_response(cls, module, api_params): - # Determine the current state of this particular user - api_attributes, state, etag = get_current_user_state(module, api_params) - - attributes = copy.deepcopy(api_attributes) - - return cls(module.params["name"], state, attributes, etag) - - @classmethod - def from_module(cls, params): - attributes = cls.default_attributes - - attributes["username"] = params["name"] - - def _exists(key): - return key in params and params[key] is not None - - if _exists("fullname"): - attributes["fullname"] = params["fullname"] - - if _exists("customer"): - attributes["customer"] = params["customer"] - - if _exists("disable_login"): - attributes["disable_login"] = params["disable_login"] - - if _exists("pager_address"): - attributes["pager_address"] = params["pager_address"] - - if _exists("language") and params["language"] != "default": - attributes["language"] = params["language"] - - if _exists("auth_type"): - auth_option = {} - - if params.get("auth_type") == "password" and _exists("password"): - auth_option["password"] = params["password"] - auth_option["auth_type"] = "password" - auth_option["enforce_password_change"] = bool( - params["enforce_password_change"] - ) - elif params.get("auth_type") == "automation" and _exists("password"): - auth_option["secret"] = params["password"] - auth_option["auth_type"] = "automation" - else: - log("Incomplete auth_type/password/secret combination.") - return - attributes["auth_option"] = auth_option - - if _exists("idle_timeout_option"): - idle_timeout = {} - idle_timeout["idle_timeout_option"] = params["idle_timeout_option"] - if params["idle_timeout_option"] == "individual": - if "idle_timeout_duration" in params: - idle_timeout["idle_timeout_duration"] = params[ - "idle_timeout_duration" - ] + create = {200: (True, False, "User created")} + edit = {200: (True, False, "User modified")} + delete = {204: (True, False, "User deleted")} + + +class UserEndpoints: + default = "/objects/user_config" + create = "/domain-types/user_config/collections/all" + + +class UserAPI(CheckmkAPI): + def _build_user_data(self): + user = {} + + user["disable_notifications"] = {} + user["interface_options"] = {} + + # For some keys the API has required sub keys. We can use them as indicator, + # that the key must be used + if self.required.get("auth_type"): + user["auth_option"] = {} + if self.required.get("email"): + user["contact_options"] = {} + if self.required.get("idle_timeout_option"): + user["idle_timeout"] = {} + + for key, value in self.required.items(): + if key in ( + "username", + "fullname", + "customer", + "disable_login", + "roles", + "authorized_sites", + "contactgroups", + ): + user[key] = value + + if key in "pager": + key = "pager_address" + user[key] = value + + if key in "language": + if value != "default": + user["language"] = value + + if key in ("auth_type", "password", "enforce_password_change"): + if key == "password" and self.params.get("auth_type") == "automation": + # Unfortunately the API uses different strings for the password + # depending on the kind of user... + key = "secret" + user["auth_option"][key] = value + + if key in ("email", "fallback_contact"): + user["contact_options"][key] = value + + if key == "idle_timeout_option": + user["idle_timeout"]["option"] = value + if key == "idle_timeout_duration": + user["idle_timeout"]["duration"] = value + + if key == "disable_notifications": + user["disable_notifications"]["disable"] = value + if key == "disable_notifications_timerange": + user["disable_notifications"]["timerange"] = value + + if key in ( + "interface_theme", + "sidebar_position", + "navigation_bar_icons", + "mega_menu_icons", + "show_mode", + ): + user["interface_options"][key] = value + + return user + + def _set_current(self, result): + # A flat hierarchy allows an easy comparison of differences + content = json.loads(result.content)["extensions"] + for key in USER: + if key in content: + if key != "disable_notifications": + self.current[key] = content[key] + if key in "pager" and "pager_address" in content: + self.current[key] = content["pager_address"] + if key in ("email", "fallback_contact") and "contact_options" in content: + self.current[key] = content["contact_options"][key] + if key == "idle_timeout_option": + self.current[key] = content["idle_timeout"]["option"] + if key == "idle_timeout_duration": + if "duration" in content["idle_timeout"]: + self.current[key] = content["idle_timeout"]["duration"] + if key == "disable_notifications": + if "disable" in content["disable_notifications"]: + self.current[key] = content["disable_notifications"]["disable"] else: - idle_timeout["idle_timeout_duration"] = 3600 - attributes["idle_timeout"] = idle_timeout - - if _exists("email"): - contact_options = {} - contact_options["email"] = params["email"] - if "fallback_contact" in params: - contact_options["fallback_contact"] = params["fallback_contact"] - attributes["contact_options"] = contact_options - - if _exists("disable_notifications"): - disable_notifications = {} - try: - disable_notifications = json.loads(params["disable_notifications"]) - except json.decoder.JSONDecodeError: - log("json.decoder.JSONDecodeError while parsing disable_notifications.") - return - attributes["disable_notifications"] = disable_notifications - - if _exists("roles"): - attributes["roles"] = params["roles"] - - if _exists("contactgroups"): - attributes["contactgroups"] = params["contactgroups"] - - if _exists("authorized_sites"): - attributes["authorized_sites"] = params["authorized_sites"] - - return cls(params["name"], state=params["state"], attributes=attributes) - - def satisfies(self, other_instance): - for key, value in other_instance.attributes.items(): - if key in ["auth_option", "password"]: + self.current[key] = False + if key == "disable_notifications_timerange": + if "timerange" in content["disable_notifications"]: + self.current[key] = content["disable_notifications"]["timerange"] + + if ( + key + in ( + "interface_theme", + "sidebar_position", + "navigation_bar_icons", + "mega_menu_icons", + "show_mode", + ) + and key in content["interface_options"] + ): + self.current[key] = content["interface_options"][key] + + def _build_default_endpoint(self): + return "%s/%s" % (UserEndpoints.default, self.params.get("name")) + + def build_required(self): + # A flat hierarchy allows an easy comparison of differences + for key in USER: + if key == "username": + self.required[key] = self.params["name"] continue - if key in self.attributes and value != self.attributes[key]: - return False - - return True - - -def get_current_user_state(module, api_params): - extensions = {} - etag = "" - current_state = "" - - api_endpoint = "/objects/user_config/" + module.params.get("name") - url = api_params["base_url"] + api_endpoint - - response, info = fetch_url( - module, url, data=None, headers=api_params["headers"], method="GET" - ) - - if info["status"] == 200: - body = json.loads(response.read()) - current_state = "present" - etag = info.get("etag", "") - extensions = body.get("extensions", {}) - - elif info["status"] == 401: - exit_failed( - module, - "[get_current_user_state] Error calling API. HTTP code %d. Details: %s." - % (info["status"], info["body"]), - ) - - elif info["status"] == 403: - exit_failed( - module, - "[get_current_user_state] Error calling API. HTTP code %d. Details: %s." - % (info["status"], info["body"]), + if self.params.get(key) is None: + continue + self.required[key] = self.params[key] + + def needs_editing(self): + black_list = ("username", "password", "auth_type", "authorized_sites") + for key, value in self.required.items(): + if key not in black_list and self.current.get(key) != value: + return True + return False + + def get(self): + result = self._fetch( + code_mapping=UserHTTPCodes.get, + endpoint=self._build_default_endpoint(), + method="GET", ) - elif info["status"] == 404: - current_state = "absent" - - else: - exit_failed( - module, - "[get_current_user_state] Error calling API. HTTP code %d. Details: %s. Body: %s" - % (info["status"], info["body"], body), + if result.http_code == 200: + self.state = "present" + self._set_current(result) + else: + self.state = "absent" + return result + + def create(self): + data = self._build_user_data() + # It's allowed in Ansible to skip the fullname, but it's not allowed + # in the Checkmk API... + data.setdefault("fullname", data["username"]) + + result = self._fetch( + code_mapping=UserHTTPCodes.create, + endpoint=UserEndpoints.create, + data=data, + method="POST", ) - return extensions, current_state, etag + return result + def edit(self, etag): + data = self._build_user_data() + self.headers["if-Match"] = etag -def set_user_attributes(module, desired_user, api_params): - api_endpoint = "/objects/user_config/" + desired_user.username - url = api_params["base_url"] + api_endpoint - desired_attributes = desired_user.attributes - del desired_attributes["username"] # Not needed as a param, as it's part of the URI - - response, info = fetch_url( - module, - url, - module.jsonify(desired_attributes), - headers=api_params["headers"], - method="PUT", - ) - - if info["status"] != 200: - exit_failed( - module, - "[set_user_attributes] Error calling API. HTTP code %d. Details: %s, " - % (info["status"], info["body"]), + result = self._fetch( + code_mapping=UserHTTPCodes.edit, + endpoint=self._build_default_endpoint(), + data=data, + method="PUT", ) + return result -def create_user(module, desired_user, api_params): - api_endpoint = "/domain-types/user_config/collections/all" - url = api_params["base_url"] + api_endpoint - desired_attributes = desired_user.attributes - - if desired_attributes["fullname"] is None or "fullname" not in desired_attributes: - desired_attributes["fullname"] = desired_attributes["username"] - - response, info = fetch_url( - module, - url, - module.jsonify(desired_attributes), - headers=api_params["headers"], - method="POST", - ) - - if info["status"] != 200: - exit_failed( - module, - "[create_user] Error calling API. HTTP code %d. Details: %s, " - % (info["status"], info["body"]), + def delete(self): + result = self._fetch( + code_mapping=UserHTTPCodes.delete, + endpoint=self._build_default_endpoint(), + method="DELETE", ) - -def delete_user(module, api_params): - api_endpoint = "/objects/user_config/" + module.params.get("name") - url = api_params["base_url"] + api_endpoint - - response, info = fetch_url( - module, url, data=None, headers=api_params["headers"], method="DELETE" - ) - - if info["status"] != 204: - exit_failed( - module, - "[delete_user] Error calling API. HTTP code %d. Details: %s, " - % (info["status"], info["body"]), - ) + return result def run_module(): @@ -454,16 +474,30 @@ def run_module(): disable_login=dict(type="bool"), email=dict(type="str"), fallback_contact=dict(type="bool"), - pager_address=dict(type="str"), - idle_timeout_duration=dict(type="str"), + pager=dict(type="str", aliases=["pager_address"]), + idle_timeout_duration=dict(type="int"), idle_timeout_option=dict( type="str", choices=["global", "disable", "individual"] ), roles=dict(type="raw"), authorized_sites=dict(type="raw"), contactgroups=dict(type="raw"), - disable_notifications=dict(type="raw"), - language=dict(type="str", choices=["default", "en", "de", "ro"]), + disable_notifications=dict(type="bool"), + disable_notifications_timerange=dict(type="dict"), + language=dict(type="str", choices=["default", "en", "de"]), + interface_theme=dict(type="str", choices=["default", "dark", "light"]), + sidebar_position=dict(type="str", choices=["left", "right"]), + navigation_bar_icons=dict(type="str", choices=["hide", "show"]), + mega_menu_icons=dict(type="str", choices=["topic", "entry"]), + show_mode=dict( + type="str", + choices=[ + "default", + "default_show_less", + "default_show_more", + "enforce_show_more", + ], + ), state=dict( type="str", default="present", @@ -474,58 +508,27 @@ def run_module(): module = AnsibleModule(argument_spec=module_args, supports_check_mode=False) # Use the parameters to initialize some common api variables - api_params = {} - api_params["headers"] = { - "Accept": "application/json", - "Content-Type": "application/json", - "Authorization": "Bearer %s %s" - % ( - module.params.pop("automation_user", ""), - module.params.pop("automation_secret", ""), - ), - } - - api_params["base_url"] = "%s/%s/check_mk/api/1.0" % ( - module.params.pop("server_url", ""), - module.params.pop("site", ""), - ) - - # Determine desired state and attributes - log("module.params: %s" % str(module.params)) - desired_user = User.from_module(module.params) - log("desired_user: %s" % str(desired_user)) - desired_state = desired_user.state - - current_user = User.from_api_response(module, api_params) - current_state = current_user.state - log("current_user: %s" % str(current_user)) - - # Handle the user accordingly to above findings and desired state - if desired_state in ["present", "reset_password"] and current_state == "present": - api_params["headers"]["If-Match"] = current_user.etag - - if ( - not current_user.satisfies(desired_user) - or desired_state == "reset_password" - ): - set_user_attributes(module, desired_user, api_params) - exit_changed(module, "User attributes changed.") - else: - exit_ok(module, "User already present. All explicit attributes as desired.") - - elif desired_state == "present" and current_state == "absent": - create_user(module, desired_user, api_params) - exit_changed(module, "User created.") - - elif desired_state == "absent" and current_state == "absent": - exit_ok(module, "User already absent.") - - elif desired_state == "absent" and current_state == "present": - delete_user(module, api_params) - exit_changed(module, "User deleted.") - - else: - exit_failed(module, "[run_module] Unknown error") + user = UserAPI(module) + + user.build_required() + result = user.get() + etag = result.etag + + required_state = user.params.get("state") + if user.state == "present": + if required_state == "reset_password": + user.required.pop("username") + result = user.edit(etag) + elif required_state == "absent": + result = user.delete() + elif user.needs_editing(): + user.required.pop("username") + result = user.edit(etag) + elif user.state == "absent": + if required_state in ("present", "reset_password"): + result = user.create() + + module.exit_json(**result_as_dict(result)) def main(): diff --git a/roles/agent/README.md b/roles/agent/README.md index 1333f93fa..cbd697aec 100644 --- a/roles/agent/README.md +++ b/roles/agent/README.md @@ -13,7 +13,7 @@ It can be installed as easy as running: ## Role Variables - checkmk_agent_version: "2.2.0p17" + checkmk_agent_version: "2.2.0p19" The Checkmk version of the site your agents will talk to. diff --git a/roles/agent/defaults/main.yml b/roles/agent/defaults/main.yml index c49841d5b..134a878e6 100644 --- a/roles/agent/defaults/main.yml +++ b/roles/agent/defaults/main.yml @@ -1,5 +1,5 @@ --- -checkmk_agent_version: "2.2.0p17" +checkmk_agent_version: "2.2.0p19" checkmk_agent_edition: cre checkmk_agent_server_protocol: http checkmk_agent_server: localhost diff --git a/roles/agent/handlers/main.yml b/roles/agent/handlers/main.yml index 82ba32b8f..12b3b008e 100644 --- a/roles/agent/handlers/main.yml +++ b/roles/agent/handlers/main.yml @@ -9,6 +9,7 @@ force_foreign_changes: "{{ checkmk_agent_force_foreign_changes }}" redirect: 'true' validate_certs: "{{ checkmk_agent_server_validate_certs }}" + become: false delegate_to: "{{ checkmk_agent_delegate_api_calls }}" run_once: true # noqa run-once[task] when: checkmk_agent_auto_activate | bool diff --git a/roles/agent/molecule/2.1.0/group_vars/all.yml b/roles/agent/molecule/2.1.0/group_vars/all.yml index 2479268a0..1a2081859 100644 --- a/roles/agent/molecule/2.1.0/group_vars/all.yml +++ b/roles/agent/molecule/2.1.0/group_vars/all.yml @@ -1,6 +1,6 @@ --- # General -checkmk_var_version: "2.1.0p37" +checkmk_var_version: "2.1.0p38" checkmk_var_edition: "cre" checkmk_var_checkmk_site: "my_site" checkmk_var_automation_user: "cmkadmin" diff --git a/roles/agent/molecule/2.2.0/group_vars/all.yml b/roles/agent/molecule/2.2.0/group_vars/all.yml index df8ee467f..fe4bdf2f3 100644 --- a/roles/agent/molecule/2.2.0/group_vars/all.yml +++ b/roles/agent/molecule/2.2.0/group_vars/all.yml @@ -1,6 +1,6 @@ --- # General -checkmk_var_version: "2.2.0p17" +checkmk_var_version: "2.2.0p19" checkmk_var_edition: "cre" checkmk_var_checkmk_site: "my_site" checkmk_var_automation_user: "cmkadmin" diff --git a/roles/server/README.md b/roles/server/README.md index 91b5d7626..40b4e195e 100644 --- a/roles/server/README.md +++ b/roles/server/README.md @@ -25,7 +25,7 @@ To learn about the distributions used in automated tests, inspect the correspond ## Role Variables - checkmk_server_version: "2.2.0p17" + checkmk_server_version: "2.2.0p19" The global Checkmk version. This is used for installing Checkmk. To manage sites and their version, see `checkmk_server_sites`. diff --git a/roles/server/defaults/main.yml b/roles/server/defaults/main.yml index 05c7fbd3e..5d965d8e9 100644 --- a/roles/server/defaults/main.yml +++ b/roles/server/defaults/main.yml @@ -24,7 +24,7 @@ checkmk_server_server_stable_os: - Ubuntu-20 - Ubuntu-22 -checkmk_server_version: "2.2.0p17" +checkmk_server_version: "2.2.0p19" checkmk_server_edition: cre checkmk_server_verify_setup: 'true' diff --git a/roles/server/molecule/2.1.0/group_vars/all.yml b/roles/server/molecule/2.1.0/group_vars/all.yml index a06d5ffe9..db44b60ee 100644 --- a/roles/server/molecule/2.1.0/group_vars/all.yml +++ b/roles/server/molecule/2.1.0/group_vars/all.yml @@ -1,6 +1,6 @@ --- # General -checkmk_var_version: "2.1.0p37" +checkmk_var_version: "2.1.0p38" checkmk_var_edition: "cre" checkmk_server_verify_setup: 'true' checkmk_var_server_url: "http://127.0.0.1/" diff --git a/roles/server/molecule/2.2.0/group_vars/all.yml b/roles/server/molecule/2.2.0/group_vars/all.yml index 08ce048ac..9b04ff2e5 100644 --- a/roles/server/molecule/2.2.0/group_vars/all.yml +++ b/roles/server/molecule/2.2.0/group_vars/all.yml @@ -1,6 +1,6 @@ --- # General -checkmk_var_version: "2.2.0p17" +checkmk_var_version: "2.2.0p19" checkmk_var_edition: "cre" checkmk_server_verify_setup: 'true' checkmk_var_server_url: "http://127.0.0.1/" diff --git a/roles/server/tasks/Debian.yml b/roles/server/tasks/Debian.yml index b7493eb94..d333332ff 100644 --- a/roles/server/tasks/Debian.yml +++ b/roles/server/tasks/Debian.yml @@ -1,5 +1,6 @@ --- - name: "Install Checkmk Server." + when: not 'check-mk-' + checkmk_server_edition_mapping[checkmk_server_edition] + '-' +checkmk_server_version in ansible_facts.packages become: true ansible.builtin.apt: deb: "/tmp/{{ checkmk_server_setup_file }}" diff --git a/roles/server/tasks/RedHat.yml b/roles/server/tasks/RedHat.yml index 485bef303..94685ff74 100644 --- a/roles/server/tasks/RedHat.yml +++ b/roles/server/tasks/RedHat.yml @@ -77,6 +77,7 @@ - enable-repos - name: "Install Checkmk Server." + when: not 'check-mk-' + checkmk_server_edition_mapping[checkmk_server_edition] + '-' +checkmk_server_version in ansible_facts.packages become: true ansible.builtin.yum: name: "/tmp/{{ checkmk_server_setup_file }}" diff --git a/roles/server/tasks/main.yml b/roles/server/tasks/main.yml index b75edf746..7f9461700 100644 --- a/roles/server/tasks/main.yml +++ b/roles/server/tasks/main.yml @@ -17,6 +17,9 @@ - include-os-family-vars - install-package +- name: "Get installed Packages." + ansible.builtin.package_facts: + - name: "Update APT Cache." become: true ansible.builtin.apt: @@ -34,56 +37,56 @@ - install-package - install-prerequisites -- name: "Download Checkmk Server Setup." - ansible.builtin.get_url: - url: "{{ checkmk_server_download_url }}" - dest: "/tmp/{{ checkmk_server_setup_file }}" - mode: "0640" - url_username: "{{ checkmk_server_download_user | default(omit) }}" - url_password: "{{ checkmk_server_download_pass | default(omit) }}" - retries: 3 - tags: - - download-package +- name: "Downloads Management." + when: not 'check-mk-' + checkmk_server_edition_mapping[checkmk_server_edition] + '-' +checkmk_server_version in ansible_facts.packages + block: -- name: "Download Checkmk GPG Key." - ansible.builtin.get_url: - url: "https://download.checkmk.com/checkmk/Check_MK-pubkey.gpg" - dest: "/tmp/Check_MK-pubkey.gpg" - mode: "0640" - when: checkmk_server_verify_setup | bool - retries: 3 - tags: - - download-gpg-key + - name: "Download Checkmk Server Setup." + ansible.builtin.get_url: + url: "{{ checkmk_server_download_url }}" + dest: "/tmp/{{ checkmk_server_setup_file }}" + mode: "0640" + url_username: "{{ checkmk_server_download_user | default(omit) }}" + url_password: "{{ checkmk_server_download_pass | default(omit) }}" + retries: 3 + tags: + - download-package -- name: "GPG Verification on Debian Derivatives." - when: checkmk_server_verify_setup | bool and ansible_os_family == "Debian" - block: - - name: "Import Checkmk GPG Key." - ansible.builtin.command: "gpg --import /tmp/Check_MK-pubkey.gpg" - register: checkmk_server_gpg_import + - name: "Download Checkmk GPG Key." + ansible.builtin.get_url: + url: "https://download.checkmk.com/checkmk/Check_MK-pubkey.gpg" + dest: "/tmp/Check_MK-pubkey.gpg" + mode: "0640" when: checkmk_server_verify_setup | bool - changed_when: "'imported: 1' in checkmk_server_gpg_import" + retries: 3 tags: - - import-gpg-key + - download-gpg-key - - name: "Verify Checkmk Setup." - ansible.builtin.command: gpg --verify "/tmp/{{ checkmk_server_setup_file }}" - register: checkmk_server_verify_state - changed_when: false - failed_when: "'Bad signature' in checkmk_server_verify_state.stderr" + - name: "GPG Verification on Debian Derivatives." + when: checkmk_server_verify_setup | bool and ansible_os_family == "Debian" + block: + - name: "Import Checkmk GPG Key." + ansible.builtin.command: "gpg --import /tmp/Check_MK-pubkey.gpg" + register: checkmk_server_gpg_import + when: checkmk_server_verify_setup | bool + changed_when: "'imported: 1' in checkmk_server_gpg_import" + tags: + - import-gpg-key - - name: "Print Verification Output." - ansible.builtin.debug: - msg: "{{ checkmk_server_verify_state.stderr_lines }}" + - name: "Verify Checkmk Setup." + ansible.builtin.command: gpg --verify "/tmp/{{ checkmk_server_setup_file }}" + register: checkmk_server_verify_state + changed_when: false + failed_when: "'Bad signature' in checkmk_server_verify_state.stderr" -- name: "Import Checkmk GPG Key." - become: true - ansible.builtin.rpm_key: - key: "/tmp/Check_MK-pubkey.gpg" - state: present - when: checkmk_server_verify_setup | bool and ansible_os_family == "RedHat" - tags: - - import-gpg-key + - name: "Import Checkmk GPG Key." + become: true + ansible.builtin.rpm_key: + key: "/tmp/Check_MK-pubkey.gpg" + state: present + when: checkmk_server_verify_setup | bool and ansible_os_family == "RedHat" + tags: + - import-gpg-key - name: Include OS Family specific Playbook. ansible.builtin.include_tasks: "{{ ansible_os_family }}.yml" diff --git a/scripts/release.sh b/scripts/release.sh index 2bcb1f66d..3c0cd27f1 100755 --- a/scripts/release.sh +++ b/scripts/release.sh @@ -16,8 +16,8 @@ collection_dir="${script_dir%/*}" # Update these as necessary: checkmk_ancient="2.0.0p39" -checkmk_oldstable="2.1.0p37" -checkmk_stable="2.2.0p17" +checkmk_oldstable="2.1.0p38" +checkmk_stable="2.2.0p19" while getopts 's:t:' OPTION; do case "$OPTION" in diff --git a/tests/integration/targets/activation/vars/main.yml b/tests/integration/targets/activation/vars/main.yml index f15733639..0bba852c8 100644 --- a/tests/integration/targets/activation/vars/main.yml +++ b/tests/integration/targets/activation/vars/main.yml @@ -1,12 +1,12 @@ --- test_sites: - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cre" site: "stable_raw" - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cee" site: "stable_ent" - - version: "2.1.0p37" + - version: "2.1.0p38" edition: "cre" site: "old_raw" - version: "2.0.0p39" diff --git a/tests/integration/targets/bakery/vars/main.yml b/tests/integration/targets/bakery/vars/main.yml index defc73c1c..8b44f506d 100644 --- a/tests/integration/targets/bakery/vars/main.yml +++ b/tests/integration/targets/bakery/vars/main.yml @@ -1,9 +1,9 @@ --- test_sites: - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cee" site: "stable_ent" - - version: "2.1.0p37" + - version: "2.1.0p38" edition: "cee" site: "old_ent" diff --git a/tests/integration/targets/contact_group/vars/main.yml b/tests/integration/targets/contact_group/vars/main.yml index 1160c115f..6bf1e7061 100644 --- a/tests/integration/targets/contact_group/vars/main.yml +++ b/tests/integration/targets/contact_group/vars/main.yml @@ -1,12 +1,12 @@ --- test_sites: - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cre" site: "stable_raw" - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cee" site: "stable_ent" - - version: "2.1.0p37" + - version: "2.1.0p38" edition: "cre" site: "old_raw" - version: "2.0.0p39" diff --git a/tests/integration/targets/discovery/vars/main.yml b/tests/integration/targets/discovery/vars/main.yml index 3733a00a4..566293e15 100644 --- a/tests/integration/targets/discovery/vars/main.yml +++ b/tests/integration/targets/discovery/vars/main.yml @@ -1,12 +1,12 @@ --- test_sites: - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cre" site: "stable_raw" - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cee" site: "stable_ent" - - version: "2.1.0p37" + - version: "2.1.0p38" edition: "cre" site: "old_raw" - version: "2.0.0p39" diff --git a/tests/integration/targets/downtime/vars/main.yml b/tests/integration/targets/downtime/vars/main.yml index f15733639..0bba852c8 100644 --- a/tests/integration/targets/downtime/vars/main.yml +++ b/tests/integration/targets/downtime/vars/main.yml @@ -1,12 +1,12 @@ --- test_sites: - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cre" site: "stable_raw" - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cee" site: "stable_ent" - - version: "2.1.0p37" + - version: "2.1.0p38" edition: "cre" site: "old_raw" - version: "2.0.0p39" diff --git a/tests/integration/targets/folder/vars/main.yml b/tests/integration/targets/folder/vars/main.yml index 66ceca89b..14226946b 100644 --- a/tests/integration/targets/folder/vars/main.yml +++ b/tests/integration/targets/folder/vars/main.yml @@ -1,12 +1,12 @@ --- test_sites: - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cre" site: "stable_raw" - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cee" site: "stable_ent" - - version: "2.1.0p37" + - version: "2.1.0p38" edition: "cre" site: "old_raw" - version: "2.0.0p39" diff --git a/tests/integration/targets/host/vars/main.yml b/tests/integration/targets/host/vars/main.yml index 619212f1d..49653fb8e 100644 --- a/tests/integration/targets/host/vars/main.yml +++ b/tests/integration/targets/host/vars/main.yml @@ -1,12 +1,12 @@ --- test_sites: - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cre" site: "stable_raw" - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cee" site: "stable_ent" - - version: "2.1.0p37" + - version: "2.1.0p38" edition: "cre" site: "old_raw" - version: "2.0.0p39" diff --git a/tests/integration/targets/host_group/vars/main.yml b/tests/integration/targets/host_group/vars/main.yml index 937774ccc..d971d1a67 100644 --- a/tests/integration/targets/host_group/vars/main.yml +++ b/tests/integration/targets/host_group/vars/main.yml @@ -1,15 +1,15 @@ --- test_sites: - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cme" site: "stable_cme" - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cre" site: "stable_raw" - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cee" site: "stable_ent" - - version: "2.1.0p37" + - version: "2.1.0p38" edition: "cre" site: "old_raw" - version: "2.0.0p39" diff --git a/tests/integration/targets/lookup_bakery/vars/main.yml b/tests/integration/targets/lookup_bakery/vars/main.yml index 579714e59..5b64785c8 100644 --- a/tests/integration/targets/lookup_bakery/vars/main.yml +++ b/tests/integration/targets/lookup_bakery/vars/main.yml @@ -1,9 +1,9 @@ --- test_sites: - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cee" site: "stable_ent" - - version: "2.1.0p37" + - version: "2.1.0p38" edition: "cee" site: "old_ent" diff --git a/tests/integration/targets/lookup_folder/vars/main.yml b/tests/integration/targets/lookup_folder/vars/main.yml index ed640c71a..73da1614d 100644 --- a/tests/integration/targets/lookup_folder/vars/main.yml +++ b/tests/integration/targets/lookup_folder/vars/main.yml @@ -1,12 +1,12 @@ --- test_sites: - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cre" site: "stable_raw" - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cee" site: "stable_ent" - - version: "2.1.0p37" + - version: "2.1.0p38" edition: "cre" site: "old_raw" - version: "2.0.0p39" diff --git a/tests/integration/targets/lookup_folders/vars/main.yml b/tests/integration/targets/lookup_folders/vars/main.yml index 8909c0ef8..906ef2df7 100644 --- a/tests/integration/targets/lookup_folders/vars/main.yml +++ b/tests/integration/targets/lookup_folders/vars/main.yml @@ -1,12 +1,12 @@ --- test_sites: - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cre" site: "stable_raw" - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cee" site: "stable_ent" - - version: "2.1.0p37" + - version: "2.1.0p38" edition: "cre" site: "old_raw" - version: "2.0.0p39" diff --git a/tests/integration/targets/lookup_host/vars/main.yml b/tests/integration/targets/lookup_host/vars/main.yml index 283de8833..e4a446da7 100644 --- a/tests/integration/targets/lookup_host/vars/main.yml +++ b/tests/integration/targets/lookup_host/vars/main.yml @@ -1,12 +1,12 @@ --- test_sites: - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cre" site: "stable_raw" - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cee" site: "stable_ent" - - version: "2.1.0p37" + - version: "2.1.0p38" edition: "cre" site: "old_raw" - version: "2.0.0p39" diff --git a/tests/integration/targets/lookup_hosts/vars/main.yml b/tests/integration/targets/lookup_hosts/vars/main.yml index 61765aa62..dc8f757b3 100644 --- a/tests/integration/targets/lookup_hosts/vars/main.yml +++ b/tests/integration/targets/lookup_hosts/vars/main.yml @@ -1,12 +1,12 @@ --- test_sites: - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cre" site: "stable_raw" - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cee" site: "stable_ent" - - version: "2.1.0p37" + - version: "2.1.0p38" edition: "cre" site: "old_raw" - version: "2.0.0p39" diff --git a/tests/integration/targets/lookup_rules/vars/main.yml b/tests/integration/targets/lookup_rules/vars/main.yml index e1c7fb35d..e822a4228 100644 --- a/tests/integration/targets/lookup_rules/vars/main.yml +++ b/tests/integration/targets/lookup_rules/vars/main.yml @@ -1,12 +1,12 @@ --- test_sites: - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cre" site: "stable_raw" - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cee" site: "stable_ent" - - version: "2.1.0p37" + - version: "2.1.0p38" edition: "cre" site: "old_raw" diff --git a/tests/integration/targets/lookup_rulesets/vars/main.yml b/tests/integration/targets/lookup_rulesets/vars/main.yml index aa21c410c..09c78e78e 100644 --- a/tests/integration/targets/lookup_rulesets/vars/main.yml +++ b/tests/integration/targets/lookup_rulesets/vars/main.yml @@ -1,12 +1,12 @@ --- test_sites: - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cre" site: "stable_raw" - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cee" site: "stable_ent" - - version: "2.1.0p37" + - version: "2.1.0p38" edition: "cre" site: "old_raw" diff --git a/tests/integration/targets/lookup_version/vars/main.yml b/tests/integration/targets/lookup_version/vars/main.yml index 4e4fb9cdc..d8b5c79ca 100644 --- a/tests/integration/targets/lookup_version/vars/main.yml +++ b/tests/integration/targets/lookup_version/vars/main.yml @@ -1,12 +1,12 @@ --- test_sites: - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cre" site: "stable_raw" - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cee" site: "stable_ent" - - version: "2.1.0p37" + - version: "2.1.0p38" edition: "cre" site: "old_raw" - version: "2.0.0p39" diff --git a/tests/integration/targets/password/vars/main.yml b/tests/integration/targets/password/vars/main.yml index 1835319f4..b16366822 100644 --- a/tests/integration/targets/password/vars/main.yml +++ b/tests/integration/targets/password/vars/main.yml @@ -1,15 +1,15 @@ --- test_sites: - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cme" site: "stable_cme" - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cre" site: "stable_raw" - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cee" site: "stable_ent" - - version: "2.1.0p37" + - version: "2.1.0p38" edition: "cre" site: "old_raw" - version: "2.0.0p39" diff --git a/tests/integration/targets/rule/vars/main.yml b/tests/integration/targets/rule/vars/main.yml index 0241fc7ad..801a18c37 100644 --- a/tests/integration/targets/rule/vars/main.yml +++ b/tests/integration/targets/rule/vars/main.yml @@ -1,12 +1,12 @@ --- test_sites: - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cre" site: "stable_raw" - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cee" site: "stable_ent" - - version: "2.1.0p37" + - version: "2.1.0p38" edition: "cre" site: "old_raw" diff --git a/tests/integration/targets/service_group/vars/main.yml b/tests/integration/targets/service_group/vars/main.yml index 3c9e4cafc..55d6e4000 100644 --- a/tests/integration/targets/service_group/vars/main.yml +++ b/tests/integration/targets/service_group/vars/main.yml @@ -1,15 +1,15 @@ --- test_sites: - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cme" site: "stable_cme" - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cre" site: "stable_raw" - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cee" site: "stable_ent" - - version: "2.1.0p37" + - version: "2.1.0p38" edition: "cre" site: "old_raw" - version: "2.0.0p39" diff --git a/tests/integration/targets/tag_group/tasks/test.yml b/tests/integration/targets/tag_group/tasks/test.yml index 4e1e98299..31399c9bf 100644 --- a/tests/integration/targets/tag_group/tasks/test.yml +++ b/tests/integration/targets/tag_group/tasks/test.yml @@ -5,22 +5,21 @@ site: "{{ outer_item.site }}" automation_user: "{{ checkmk_var_automation_user }}" automation_secret: "{{ checkmk_var_automation_secret }}" - id: Virtualization - title: Virtualization - topic: My_Tag_Group - choices: - - id: No_Virtualization - title: No Virtualization - - id: ESXi - title: ESXi - - id: vCenter - title: vCenter - - id: HyperV - title: Hyper - - id: KVM - title: KVM + name: "{{ item.name }}" + title: "{{ item.title }}" + topic: "{{ item.topic }}" + help: "{{ item.help }}" + tags: "{{ item.tags }}" state: "present" delegate_to: localhost + register: create_result + loop: "{{ checkmk_taggroups_create }}" + +- name: "{{ outer_item.version }} - Fail if not changed." # noqa no-handler + ansible.builtin.fail: + msg: "Tag groups not created! Maybe already existing?" + when: create_result is not changed + run_once: true # noqa run-once[task] - name: "{{ outer_item.version }} - {{ outer_item.edition | upper }} - Activate changes." activation: @@ -31,26 +30,73 @@ delegate_to: localhost run_once: true # noqa run-once[task] +- name: "{{ outer_item.version }} - {{ outer_item.edition | upper }} - Create tag_group again." + tag_group: + server_url: "{{ checkmk_var_server_url }}" + site: "{{ outer_item.site }}" + automation_user: "{{ checkmk_var_automation_user }}" + automation_secret: "{{ checkmk_var_automation_secret }}" + name: "{{ item.name }}" + title: "{{ item.title }}" + topic: "{{ item.topic }}" + help: "{{ item.help }}" + tags: "{{ item.tags }}" + state: "present" + delegate_to: localhost + register: createagain_result + loop: "{{ checkmk_taggroups_create }}" + +- name: "{{ outer_item.version }} - {{ outer_item.edition | upper }} - Fail if changed." # noqa no-handler + ansible.builtin.fail: + msg: "Tried to create the same tag group twice!" + when: "createagain_result.changed" + delegate_to: localhost + run_once: true # noqa run-once[task] + +- name: "{{ outer_item.version }} - {{ outer_item.edition | upper }} - Create Host" + host: + server_url: "{{ checkmk_var_server_url }}" + site: "{{ outer_item.site }}" + automation_user: "{{ checkmk_var_automation_user }}" + automation_secret: "{{ checkmk_var_automation_secret }}" + name: "repairtest" + attributes: + tag_Datacenter: "datacenter_1" + tag_Supporter: "nobody" + state: "present" + +- name: "{{ outer_item.version }} - {{ outer_item.edition | upper }} - Update tag_group without repair. (Should fail)" + tag_group: + server_url: "{{ checkmk_var_server_url }}" + site: "{{ outer_item.site }}" + automation_user: "{{ checkmk_var_automation_user }}" + automation_secret: "{{ checkmk_var_automation_secret }}" + name: "{{ item.name }}" + title: "{{ item.title }}" + topic: "{{ item.topic }}" + help: "{{ item.help }}" + tags: "{{ item.tags }}" + state: "present" + delegate_to: localhost + loop: "{{ checkmk_taggroups_update }}" + register: update_taggroup_status + failed_when: "'You must authorize Checkmk to update the relevant instances using the repair parameter' not in update_taggroup_status.msg" + - name: "{{ outer_item.version }} - {{ outer_item.edition | upper }} - Update tag_group." tag_group: server_url: "{{ checkmk_var_server_url }}" site: "{{ outer_item.site }}" automation_user: "{{ checkmk_var_automation_user }}" automation_secret: "{{ checkmk_var_automation_secret }}" - id: Virtualization - title: Hypervisors - topic: My_Tag_Group - choices: - - id: No_Virtualization - title: No Virtualization - - id: ESXi - title: ESXi - - id: vCenter - title: vCenter - - id: HyperV - title: Hyper + name: "{{ item.name }}" + title: "{{ item.title }}" + topic: "{{ item.topic }}" + help: "{{ item.help }}" + tags: "{{ item.tags }}" + repair: "{{ item.repair | default(omit) }}" state: "present" delegate_to: localhost + loop: "{{ checkmk_taggroups_update }}" - name: "{{ outer_item.version }} - {{ outer_item.edition | upper }} - Activate changes." activation: @@ -61,26 +107,25 @@ delegate_to: localhost run_once: true # noqa run-once[task] -- name: "{{ outer_item.version }} - {{ outer_item.edition | upper }} - Delete tag_group." +- name: "{{ outer_item.version }} - {{ outer_item.edition | upper }} - Delete tag_groups." tag_group: server_url: "{{ checkmk_var_server_url }}" site: "{{ outer_item.site }}" automation_user: "{{ checkmk_var_automation_user }}" automation_secret: "{{ checkmk_var_automation_secret }}" - id: Virtualization - title: Hypervisors - topic: My_Tag_Group - choices: - - id: No_Virtualization - title: No Virtualization - - id: ESXi - title: ESXi - - id: vCenter - title: vCenter - - id: HyperV - title: Hyper + name: "{{ item.name }}" + repair: "{{ item.repair | default(omit) }}" state: "absent" delegate_to: localhost + register: delete_result + loop: "{{ checkmk_taggroups_delete }}" + +- name: "{{ outer_item.version }} - Fail if not changed." # noqa no-handler + ansible.builtin.fail: + msg: "Tag groups not deleted" + when: delete_result is not changed + delegate_to: localhost + run_once: true # noqa run-once[task] - name: "{{ outer_item.version }} - {{ outer_item.edition | upper }} - Activate changes." activation: @@ -90,3 +135,23 @@ automation_secret: "{{ checkmk_var_automation_secret }}" delegate_to: localhost run_once: true # noqa run-once[task] + +- name: "{{ outer_item.version }} - {{ outer_item.edition | upper }} - Delete tag_groups again." + tag_group: + server_url: "{{ checkmk_var_server_url }}" + site: "{{ outer_item.site }}" + automation_user: "{{ checkmk_var_automation_user }}" + automation_secret: "{{ checkmk_var_automation_secret }}" + name: "{{ item.name }}" + repair: "{{ item.repair | default(omit) }}" + state: "absent" + delegate_to: localhost + register: deleteagain_result + loop: "{{ checkmk_taggroups_delete }}" + +- name: "{{ outer_item.version }} - {{ outer_item.edition | upper }} - Fail if changed." # noqa no-handler + ansible.builtin.fail: + msg: "Rule changed!" + when: "deleteagain_result.changed" + delegate_to: localhost + run_once: true # noqa run-once[task] diff --git a/tests/integration/targets/tag_group/vars/main.yml b/tests/integration/targets/tag_group/vars/main.yml index e8f3dea77..318ee07e8 100644 --- a/tests/integration/targets/tag_group/vars/main.yml +++ b/tests/integration/targets/tag_group/vars/main.yml @@ -1,15 +1,15 @@ --- test_sites: - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cme" site: "stable_cme" - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cre" site: "stable_raw" - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cee" site: "stable_ent" - - version: "2.1.0p37" + - version: "2.1.0p38" edition: "cre" site: "old_raw" - version: "2.0.0p39" @@ -31,3 +31,65 @@ checkmk_server_edition_mapping: cee: enterprise cce: cloud cme: managed + +checkmk_taggroups_create: + - name: Datacenter + title: Datacenter + topic: Tags + help: "something useful" + tags: + - id: datacenter_none + title: No Datacenter + - id: datacenter_1 + title: Datacenter 1 + - id: datacenter_2 + title: Datacenter 2 + - id: datacenter_3 + title: Datacenter 3 + - name: Supporter + title: Supporter + topic: Tags + help: "Who to blame" + tags: + - id: nobody + title: Nobody + - id: roytrenneman + title: Roy Trenneman + - id: mauricemoss + title: Maurice Moss + - id: jenbarber + title: Jen Barber + +checkmk_taggroups_update: + - name: Datacenter + title: Datacenter + topic: Tags + help: "something even more useful" + repair: true + tags: + - id: datacenter_none + title: No Datacenter + - id: datacenter_1000 + title: Datacenter 1000 + - id: datacenter_2 + title: Datacenter 2 + - id: datacenter_3 + title: Datacenter 3 + - name: Supporter + title: Supporter + topic: Tags + help: "Who to blame" + repair: true + tags: + - id: somebody + title: Somebody + - id: roytrenneman + title: Roy Trenneman + - id: mauricemoss + title: Maurice Moss + - id: jenbarber + title: Jen Barber + +checkmk_taggroups_delete: + - name: Supporter + repair: true diff --git a/tests/integration/targets/timeperiod/vars/main.yml b/tests/integration/targets/timeperiod/vars/main.yml index 8882ad269..76ea4c611 100644 --- a/tests/integration/targets/timeperiod/vars/main.yml +++ b/tests/integration/targets/timeperiod/vars/main.yml @@ -1,12 +1,12 @@ --- test_sites: - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cre" site: "stable_raw" - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cee" site: "stable_ent" - - version: "2.1.0p37" + - version: "2.1.0p38" edition: "cre" site: "old_raw" diff --git a/tests/integration/targets/user/tasks/test.yml b/tests/integration/targets/user/tasks/test.yml index 2024c533d..041fdbe66 100644 --- a/tests/integration/targets/user/tasks/test.yml +++ b/tests/integration/targets/user/tasks/test.yml @@ -2,12 +2,12 @@ - name: "{{ outer_item.version }} - {{ outer_item.edition | upper }} - Set customer when needed." ansible.builtin.set_fact: customer: "provider" - when: (outer_item.edition == "cme") or (outer_item.edition == "cce") + when: outer_item.edition == "cme" - name: "{{ outer_item.version }} - {{ outer_item.edition | upper }} - Unset customer when needed." ansible.builtin.set_fact: customer: null - when: not ((outer_item.edition == "cme") or (outer_item.edition == "cce")) + when: not outer_item.edition == "cme" - name: "{{ outer_item.version }} - {{ outer_item.edition | upper }} - Create contact groups." contact_group: @@ -33,7 +33,7 @@ sites: - "{{ outer_item.site }}" delegate_to: localhost - run_once: true # noqa run-once[task] + run_once: true # noqa run-once[task] - name: "{{ outer_item.version }} - {{ outer_item.edition | upper }} - Create users." user: # noqa fqcn[action-core] # The FQCN lint makes no sense here, as we want to test our local module @@ -44,16 +44,36 @@ customer: "{{ (customer != None) | ternary(customer, omit) }}" # See PR #427 name: "{{ item.name }}" fullname: "{{ item.fullname }}" + email: "{{ item.email | default(omit) }}" + disable_notifications: "{{ item.disable_notifications | default(omit) }}" + disable_notifications_timerange: "{{ item.disable_notifications_timerange | default(omit) }}" + pager_address: "{{ item.pager_address | default(omit) }}" + language: "{{ item.language | default(omit) }}" + disable_login: "{{ item.disable_login | default(omit) }}" auth_type: "{{ item.auth_type }}" password: "{{ item.password }}" - roles: - - "admin" + contactgroups: "{{ item.contactgroups | default(omit) }}" + idle_timeout_duration: "{{ item.idle_timeout_duration | default(omit) }}" + idle_timeout_option: "{{ item.idle_timeout_option | default(omit) }}" + interface_theme: "{{ item.interface_theme | default(omit) }}" + sidebar_position: "{{ item.sidebar_position | default(omit) }}" + navigation_bar_icons: "{{ item.navigation_bar_icons | default(omit) }}" + mega_menu_icons: "{{ item.mega_menu_icons | default(omit) }}" + show_mode: "{{ item.show_mode | default(omit) }}" + roles: "{{ item.roles }}" authorized_sites: - "{{ outer_item.site }}" state: "present" delegate_to: localhost + run_once: true # noqa run-once[task] + register: rule_result + loop: "{{ checkmk_var_users_create }}" + +- name: "{{ outer_item.version }} - Fail if not changed." # noqa no-handler + ansible.builtin.fail: + msg: "Users not created! Maybe already existing?" + when: rule_result is not changed run_once: true # noqa run-once[task] - loop: "{{ checkmk_var_users }}" - name: "{{ outer_item.version }} - {{ outer_item.edition | upper }} - Activate." activation: @@ -65,7 +85,7 @@ sites: - "{{ outer_item.site }}" delegate_to: localhost - run_once: true # noqa run-once[task] + run_once: true # noqa run-once[task] - name: "{{ outer_item.version }} - {{ outer_item.edition | upper }} - Create same users again." user: # noqa fqcn[action-core] # The FQCN lint makes no sense here, as we want to test our local module @@ -76,24 +96,37 @@ customer: "{{ (customer != None) | ternary(customer, omit) }}" # See PR #427 name: "{{ item.name }}" fullname: "{{ item.fullname }}" + email: "{{ item.email | default(omit) }}" + disable_notifications: "{{ item.disable_notifications | default(omit) }}" + disable_notifications_timerange: "{{ item.disable_notifications_timerange | default(omit) }}" + pager_address: "{{ item.pager_address | default(omit) }}" + language: "{{ item.language | default(omit) }}" + disable_login: "{{ item.disable_login | default(omit) }}" auth_type: "{{ item.auth_type }}" password: "{{ item.password }}" - roles: - - "admin" + contactgroups: "{{ item.contactgroups | default(omit) }}" + idle_timeout_duration: "{{ item.idle_timeout_duration | default(omit) }}" + idle_timeout_option: "{{ item.idle_timeout_option | default(omit) }}" + interface_theme: "{{ item.interface_theme | default(omit) }}" + sidebar_position: "{{ item.sidebar_position | default(omit) }}" + navigation_bar_icons: "{{ item.navigation_bar_icons | default(omit) }}" + mega_menu_icons: "{{ item.mega_menu_icons | default(omit) }}" + show_mode: "{{ item.show_mode | default(omit) }}" + roles: "{{ item.roles }}" authorized_sites: - "{{ outer_item.site }}" state: "present" delegate_to: localhost - run_once: true # noqa run-once[task] + run_once: true # noqa run-once[task] register: rule_result - loop: "{{ checkmk_var_users }}" + loop: "{{ checkmk_var_users_create }}" - name: "{{ outer_item.version }} - {{ outer_item.edition | upper }} - Fail if changed." # noqa no-handler ansible.builtin.fail: - msg: "Rule changed!" + msg: "Tried to create the same user twice!" when: "rule_result.changed" delegate_to: localhost - run_once: true # noqa run-once[task] + run_once: true # noqa run-once[task] - name: "{{ outer_item.version }} - {{ outer_item.edition | upper }} - Edit users." user: # noqa fqcn[action-core] # The FQCN lint makes no sense here, as we want to test our local module @@ -103,11 +136,25 @@ automation_secret: "{{ checkmk_var_automation_secret }}" customer: "{{ (customer != None) | ternary(customer, omit) }}" # See PR #427 name: "{{ item.name }}" - contactgroups: "{{ item.contactgroups }}" + email: "{{ item.email | default(omit) }}" + disable_notifications: "{{ item.disable_notifications | default(omit) }}" + disable_notifications_timerange: "{{ item.disable_notifications_timerange | default(omit) }}" + pager_address: "{{ item.pager_address | default(omit) }}" + language: "{{ item.language | default(omit) }}" + disable_login: "{{ item.disable_login | default(omit) }}" + contactgroups: "{{ item.contactgroups | default(omit) }}" + idle_timeout_duration: "{{ item.idle_timeout_duration | default(omit) }}" + idle_timeout_option: "{{ item.idle_timeout_option | default(omit) }}" + interface_theme: "{{ item.interface_theme | default(omit) }}" + sidebar_position: "{{ item.sidebar_position | default(omit) }}" + navigation_bar_icons: "{{ item.navigation_bar_icons | default(omit) }}" + mega_menu_icons: "{{ item.mega_menu_icons | default(omit) }}" + show_mode: "{{ item.show_mode | default(omit) }}" + roles: "{{ item.roles | default(omit) }}" state: "present" delegate_to: localhost run_once: true # noqa run-once[task] - loop: "{{ checkmk_var_users }}" + loop: "{{ checkmk_var_users_edit }}" - name: "{{ outer_item.version }} - {{ outer_item.edition | upper }} - Activate." activation: @@ -119,7 +166,7 @@ sites: - "{{ outer_item.site }}" delegate_to: localhost - run_once: true # noqa run-once[task] + run_once: true # noqa run-once[task] - name: "{{ outer_item.version }} - {{ outer_item.edition | upper }} - Change PW of users." user: # noqa fqcn[action-core] # The FQCN lint makes no sense here, as we want to test our local module @@ -129,12 +176,20 @@ automation_secret: "{{ checkmk_var_automation_secret }}" customer: "{{ (customer != None) | ternary(customer, omit) }}" # See PR #427 name: "{{ item.name }}" - password: "{{ item.newpassword }}" - state: "present" + password: "{{ item.password }}" + auth_type: "{{ item.auth_type }}" + state: "reset_password" delegate_to: localhost - run_once: true # noqa run-once[task] + run_once: true # noqa run-once[task] register: rule_result - loop: "{{ checkmk_var_users }}" + loop: "{{ checkmk_var_users_newpw }}" + +- name: "{{ outer_item.version }} - Fail if not changed." # noqa no-handler + ansible.builtin.fail: + msg: "Password not changed" + when: rule_result is not changed + delegate_to: localhost + run_once: true # noqa run-once[task] - name: "{{ outer_item.version }} - {{ outer_item.edition | upper }} - Activate." activation: @@ -146,7 +201,7 @@ sites: - "{{ outer_item.site }}" delegate_to: localhost - run_once: true # noqa run-once[task] + run_once: true # noqa run-once[task] - name: "{{ outer_item.version }} - {{ outer_item.edition | upper }} - Delete users." user: # noqa fqcn[action-core] # The FQCN lint makes no sense here, as we want to test our local module @@ -157,8 +212,16 @@ name: "{{ item.name }}" state: "absent" delegate_to: localhost - run_once: true # noqa run-once[task] - loop: "{{ checkmk_var_users }}" + run_once: true # noqa run-once[task] + register: rule_result + loop: "{{ checkmk_var_users_create }}" + +- name: "{{ outer_item.version }} - Fail if not changed." # noqa no-handler + ansible.builtin.fail: + msg: "Users not deleted" + when: rule_result is not changed + delegate_to: localhost + run_once: true # noqa run-once[task] - name: "{{ outer_item.version }} - {{ outer_item.edition | upper }} - Activate." activation: @@ -170,7 +233,7 @@ sites: - "{{ outer_item.site }}" delegate_to: localhost - run_once: true # noqa run-once[task] + run_once: true # noqa run-once[task] - name: "{{ outer_item.version }} - {{ outer_item.edition | upper }} - Delete same users again." user: # noqa fqcn[action-core] # The FQCN lint makes no sense here, as we want to test our local module @@ -181,13 +244,13 @@ name: "{{ item.name }}" state: "absent" delegate_to: localhost - run_once: true # noqa run-once[task] + run_once: true # noqa run-once[task] register: rule_result - loop: "{{ checkmk_var_users }}" + loop: "{{ checkmk_var_users_create }}" - name: "{{ outer_item.version }} - {{ outer_item.edition | upper }} - Fail if changed." # noqa no-handler ansible.builtin.fail: msg: "Rule changed!" when: "rule_result.changed" delegate_to: localhost - run_once: true # noqa run-once[task] + run_once: true # noqa run-once[task] diff --git a/tests/integration/targets/user/vars/main.yml b/tests/integration/targets/user/vars/main.yml index 444ee4ea6..5efd5ef49 100644 --- a/tests/integration/targets/user/vars/main.yml +++ b/tests/integration/targets/user/vars/main.yml @@ -1,15 +1,15 @@ --- test_sites: - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cme" site: "stable_cme" - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cre" site: "stable_raw" - - version: "2.2.0p17" + - version: "2.2.0p19" edition: "cee" site: "stable_ent" - - version: "2.1.0p37" + - version: "2.1.0p38" edition: "cre" site: "old_raw" @@ -33,50 +33,176 @@ checkmk_var_contact_groups: - team1 - team2 - team3 + - noteam -checkmk_var_users: +checkmk_var_users_create: - name: admin1 fullname: Admin Eins password: "123" - newpassword: "abc" auth_type: password email: 123@company.com contactgroups: [] roles: - admin fallback_contact: true + idle_timeout_duration: 5400 + idle_timeout_option: individual - name: user1 fullname: User Eins password: "123" - newpassword: "abc" auth_type: password email: 123@company.com + pager_address: "0123/4567890" contactgroups: - team1 fallback_contact: true + roles: + - admin + disable_notifications: true + disable_notifications_timerange: { "end_time": "2024-01-09T12:10:00+00:00", "start_time": "2024-01-09T10:10:00+00:00" } - name: user2 fullname: User Zwei password: "234" - newpassword: "bcd" + auth_type: password + contactgroups: + - team2 + roles: + - guest + language: en + - name: user3 + fullname: User Drei + password: "345" + auth_type: password + email: 345@company.com + contactgroups: + - noteam + fallback_contact: false + roles: + - user + language: de + disable_login: true + - name: user4 + fullname: User four + password: "4444" + auth_type: password + contactgroups: + - noteam + fallback_contact: false + roles: + - user + disable_notifications: false + interface_theme: "dark" + sidebar_position: "right" + navigation_bar_icons: "show" + mega_menu_icons: "entry" + show_mode: "default_show_more" + - name: auto1 + fullname: Automation User 1 + password: "0123456789" + auth_type: automation + contactgroups: [] + roles: + - admin + +checkmk_var_users_newpw: + - name: admin1 + password: "abc" + auth_type: password + - name: user1 + password: "abc" + auth_type: password + - name: user2 + password: "bcd" + auth_type: password + - name: user3 + password: "cde" + auth_type: password + - name: auto1 + password: "abcdefghij" + auth_type: automation + +checkmk_var_users_edit: + - name: admin1 + fullname: Admin Eins + auth_type: password + email: 123@company.com + contactgroups: [] + roles: + - admin + fallback_contact: true + idle_timeout_option: global + interface_theme: "dark" + sidebar_position: "right" + navigation_bar_icons: "show" + mega_menu_icons: "entry" + show_mode: "default_show_more" + - name: user1 + fullname: User One + password: "345egtd" + auth_type: password + email: user1@company.com + pager_address: "4567/9753210" + contactgroups: + - team1 + fallback_contact: true + roles: + - user + idle_timeout_duration: 5400 + idle_timeout_option: individual + disable_notifications: false + disable_notifications_timerange: { "end_time": "2024-01-09T08:10:00+00:00", "start_time": "2024-01-09T18:10:00+00:00" } + - name: user2 + fullname: User Zwei auth_type: password email: 234@company.com + pager_address: "0123/4567890" contactgroups: - team2 fallback_contact: true + roles: + - guest + idle_timeout_option: disable + disable_login: true + disable_notifications: true - name: user3 fullname: User Drei - password: "345" - newpassword: "cde" auth_type: password email: 345@company.com contactgroups: - team3 fallback_contact: false + roles: + - admin + language: default + disable_login: false + disable_notifications: false + - name: user4 + fullname: User four + password: "4444" + auth_type: password + contactgroups: + - noteam + fallback_contact: true + roles: + - user + disable_notifications_timerange: { "end_time": "2024-04-01T08:00:00+00:00", "start_time": "2024-04-01T20:00:00+00:00" } + interface_theme: "light" + sidebar_position: "left" + navigation_bar_icons: "hide" + mega_menu_icons: "topic" + show_mode: "enforce_show_more" - name: auto1 fullname: Automation User 1 password: "0123456789" - newpassword: "abcdefghij" auth_type: automation contactgroups: [] roles: - admin + - name: auto1 + fullname: Automation User 1 + auth_type: automation + contactgroups: [] + roles: + - admin + - name: cmkadmin + show_mode: "enforce_show_more"