--- Begin Message ---
- To: Debian Bug Tracking System <submit@bugs.debian.org>
- Subject: Please allow me to update puppet modules
- From: Thomas Goirand <zigo@debian.org>
- Date: Sun, 22 Jun 2025 14:33:10 +0200
- Message-id: <175059559066.16425.8855699833759036438.reportbug@zbuz.infomaniak.ch>
Package: release.debian.org
Severity: normal
Hi,
As you may know, I'm the main author and maintainer of:
https://salsa.debian.org/openstack-team/debian/openstack-cluster-installer
One of its nice feature is that it uses zero artifact outside of Debian.
Indeed, I have packaged all puppet modules it uses, and it depends on them.
As I packaged the latest version of OpenStack (ie: Epoxy) that was released
earlier this spring, I got late into testing its setup under Trixie. Many
puppet modules needed either update, or a quick fix, as things have changed
since we upgraded facter and puppetserver.
One thing that needed fixes in many puppet modules was the use of toplevel
facts that were removed form facter/puppetserver. For example, while the
fact $::osfamily could be used, it now is an empty variable, that makes
puppetserver break. One *must* now use $facts['os']['family'] instead. This
is this kind of patch that I made on top of many puppet modules so that they
continue to work under the version of puppet we have in Trixie. I insist:
without these patches, the puppet modules are non-functional.
In a few cases, I had to package the latest version from upstream. I very
much understand that I am late in the development cycle of Trixie and that,
for a new upstream release, I should have done the work earlier. However,
for these 3 (or 4?) puppet modules, I made sure that they were backward
compatible. In each of these cases, it was easier to use a newer upstream
release, rather than rewriting a patch by myself. The list of puppet module
for which I'm asking to accept the new usptream release is:
- puppet-module-camptocamp-postfix
- puppet-module-puppetlabs-haproxy
- puppet-module-rally
For that last one, I simply forgot uploading earlier, and used a copy from
my non-official debian.net repo. :(
Here is a summary of all fixes I made to all packages for which I am asking
an unblock for:
* puppet-module-voxpupuli-corosync
Stdlib::Compat::Ip_address is gone from stdlib, to be replaced by
Stdlib::IP::Address instead. Plus some toplevel facts replacement.
* puppet-module-puppetlabs-haproxy new upstream release, that brings
compatibility with Trixie. No backward compat breakage.
* puppet-module-michaeltchapman-galera
- Tiny fix of the clustercheck script.
- Fix of toplevel facts -> $facts
- Replace the use of mysql_password by mysql::password (from the module
shipped by puppet-module-puppetlabs-mysql).
* puppet-module-rodjek-logrotate
- Fix toplevel facts
* puppet-module-puppetlabs-java
- Fix for using the correct JDK version under Trixie
* puppet-module-voxpupuli-elastic-stack
- Patch so it does not use apt-key which is gone from Debian.
* puppet-module-deric-zookeeper
- Fix the use of toplevel facts
* puppet-module-puppetlabs-rabbitmq
- Fix for the rabbitmq_user provider, as rabbitmqctl output has changed in
Trixie.
- Fix the use of toplevel facts.
* puppet-module-ceph
- Fix the use of toplevel facts
- Removed the use of validate_legacy which doesn't exist in Pupppet 8.
* puppet-module-cloudkitty
- Fix the use of $::os_package_type and replace it by $facts
- fix d/watch file.
* puppet-module-theforeman-dns
- Fix a single use of a fact that doesn't exist anymore (ie:
$facts['osfamily'] replaced by $facts['os']['family']).
* puppet-module-nova
- Under Trixie, the virtlockd is shipped by the libvirt-daemon-plugin-lockd.
added a patch to install it in nova::compute::libvirt::services.
I attached all the diff of the above packages to this bug report, I believe
they are very targeted, and easy to review, even for someone who doesn't
know puppet.
Here's a summary. New upstream release:
unblock puppet-module-camptocamp-postfix/5.1.0-1
unblock puppet-module-puppetlabs-haproxy/8.2.0-1
unblock puppet-module-rally/6.4.0-1
Patches written by me:
unblock puppet-module-voxpupuli-corosync/6.0.1-4
unblock puppet-module-michaeltchapman-galera/0.7.1-6
unblock puppet-module-rodjek-logrotate/1.1.1+ds1-7
unblock puppet-module-puppetlabs-java/11.1.0-4
unblock puppet-module-voxpupuli-elastic-stack/9.0.0-4
unblock puppet-module-deric-zookeeper/0.8.4-6
unblock puppet-module-puppetlabs-rabbitmq/8.5.0-8
unblock puppet-module-ceph/3.1.1-3
unblock puppet-module-heat/25.0.0-4
unblock puppet-module-cloudkitty/14.0.0-5
unblock puppet-module-theforeman-dns/5.4.0-7
unblock puppet-module-nova/25.0.0-3
Cheers,
Thomas Goirand (zigo)
diff --git a/contrib/octavia/amphora-build-hook b/contrib/octavia/amphora-build-hook
index c724ba6..fbef0cd 100755
--- a/contrib/octavia/amphora-build-hook
+++ b/contrib/octavia/amphora-build-hook
@@ -39,12 +39,12 @@ fi
# Add octavia's backport repo if we know which one to use.
# Otherwise, simply use what's in current Debian stable release.
if [ -n "${OPENSTACK_RELEASE}" ] ; then
- echo "deb http://${DEBIAN_RELEASE}-${OPENSTACK_RELEASE}.debian.net/debian ${DEBIAN_RELEASE}-${OPENSTACK_RELEASE}-backports main
-deb http://${DEBIAN_RELEASE}-${OPENSTACK_RELEASE}.debian.net/debian ${DEBIAN_RELEASE}-${OPENSTACK_RELEASE}-backports-nochange main
+ mkdir -p ${BODI_CHROOT_PATH}/etc/apt/keyrings
+ wget http://${DEBIAN_RELEASE}-${OPENSTACK_RELEASE}.debian.net/debian/dists/pubkey.gpg -O ${BODI_CHROOT_PATH}/etc/apt/keyrings/${DEBIAN_RELEASE}-${OPENSTACK_RELEASE}.asc
+ echo "deb [signed-by=/etc/apt/keyrings/${DEBIAN_RELEASE}-${OPENSTACK_RELEASE}.asc] http://${DEBIAN_RELEASE}-${OPENSTACK_RELEASE}.debian.net/debian ${DEBIAN_RELEASE}-${OPENSTACK_RELEASE}-backports main
+deb [signed-by=/etc/apt/keyrings/${DEBIAN_RELEASE}-${OPENSTACK_RELEASE}.asc] http://${DEBIAN_RELEASE}-${OPENSTACK_RELEASE}.debian.net/debian ${DEBIAN_RELEASE}-${OPENSTACK_RELEASE}-backports-nochange main
" >${BODI_CHROOT_PATH}/etc/apt/sources.list.d/${DEBIAN_RELEASE}-${OPENSTACK_RELEASE}.list
- wget http://${DEBIAN_RELEASE}-${OPENSTACK_RELEASE}.debian.net/debian/dists/pubkey.gpg -O ${BODI_CHROOT_PATH}/pubkey.gpg
- chroot ${BODI_CHROOT_PATH} apt-key add /pubkey.gpg
chroot ${BODI_CHROOT_PATH} apt-get update
fi
diff --git a/debian/changelog b/debian/changelog
index bfd9fa8..53d8b11 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+openstack-debian-images (1.87) unstable; urgency=medium
+
+ * amphora-build-hook: do not use apt-key.
+
+ -- Thomas Goirand <zigo@debian.org> Tue, 03 Jun 2025 13:30:42 +0200
+
openstack-debian-images (1.86) unstable; urgency=medium
* Fix debian release numbers.
diff --git a/debian/changelog b/debian/changelog
index 1d85f4a..e05c971 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+puppet-module-ceph (3.1.1-3) unstable; urgency=medium
+
+ * Add debian/patches/trixie-support.patch.
+
+ -- Thomas Goirand <zigo@debian.org> Tue, 27 May 2025 15:19:20 +0200
+
puppet-module-ceph (3.1.1-2) unstable; urgency=medium
* Clean-up update-alternatives handling.
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..2ff7602
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1 @@
+trixie-support.patch
diff --git a/debian/patches/trixie-support.patch b/debian/patches/trixie-support.patch
new file mode 100644
index 0000000..06d2f87
--- /dev/null
+++ b/debian/patches/trixie-support.patch
@@ -0,0 +1,296 @@
+Description: Trixie support
+Author: Thomas Goirand <zigo@debian.org>
+Forwarded: no
+Last-Update: 2025-05-27
+
+Index: puppet-module-ceph/manifests/mds.pp
+===================================================================
+--- puppet-module-ceph.orig/manifests/mds.pp
++++ puppet-module-ceph/manifests/mds.pp
+@@ -42,7 +42,7 @@
+ # Optional. Default is running.
+ #
+ # [*mds_id*] The ID of the MDS instance.
+-# Optional. Default is $::hostname
++# Optional. Default is $facts['networking']['hostname']
+ #
+ # [*keyring*] The location of the keyring used by MDSs
+ # Optional. Same default as ceph.
+@@ -58,7 +58,7 @@ class ceph::mds (
+ $mds_data = undef,
+ $mds_enable = true,
+ $mds_ensure = 'running',
+- $mds_id = $::hostname,
++ $mds_id = $facts['networking']['hostname'],
+ $keyring = undef,
+ $cluster = 'ceph',
+ ) inherits ceph::params {
+Index: puppet-module-ceph/manifests/mirror.pp
+===================================================================
+--- puppet-module-ceph.orig/manifests/mirror.pp
++++ puppet-module-ceph/manifests/mirror.pp
+@@ -50,8 +50,8 @@ define ceph::mirror (
+
+ #Xenial reports 'debian' as the service provider
+ #'systemd' should cover supported RHEL type systems
+- if( ( $::service_provider == 'systemd' ) or
+- ( $::operatingsystemrelease == '16.04' ) )
++ if( ( $facts['service_provider'] == 'systemd' ) or
++ ( $facts['os']['release']['full'] == '16.04' ) )
+ {
+ Service{
+ name => $service_name,
+Index: puppet-module-ceph/manifests/mon.pp
+===================================================================
+--- puppet-module-ceph.orig/manifests/mon.pp
++++ puppet-module-ceph/manifests/mon.pp
+@@ -85,11 +85,11 @@ define ceph::mon (
+ $mon_service = "ceph-mon-${id}"
+
+ # For Ubuntu Trusty system
+- if $::service_provider == 'upstart' {
++ if $facts['service_provider'] == 'upstart' {
+ $init = 'upstart'
+ Service {
+ name => 'ceph-mon',
+- provider => $::service_provider,
++ provider => $facts['service_provider'],
+ start => "start ceph-mon id=${id}",
+ stop => "stop ceph-mon id=${id}",
+ status => "status ceph-mon id=${id}",
+Index: puppet-module-ceph/manifests/osd.pp
+===================================================================
+--- puppet-module-ceph.orig/manifests/osd.pp
++++ puppet-module-ceph/manifests/osd.pp
+@@ -186,7 +186,7 @@ ceph-volume lvm list ${data}
+ timeout => $exec_timeout,
+ tag => 'prepare',
+ }
+- if (str2bool($::selinux) == true) {
++ if (str2bool($facts['selinux']) == true) {
+ ensure_packages($ceph::params::pkg_policycoreutils, {'ensure' => 'present'})
+ exec { "fcontext_${name}":
+ command => "/bin/true # comment to satisfy puppet syntax requirements
+Index: puppet-module-ceph/manifests/params.pp
+===================================================================
+--- puppet-module-ceph.orig/manifests/params.pp
++++ puppet-module-ceph/manifests/params.pp
+@@ -49,7 +49,7 @@ class ceph::params (
+ ) {
+ $pkg_mds = 'ceph-mds'
+
+- case $::osfamily {
++ case $facts['os']['family'] {
+ 'Debian': {
+ $pkg_radosgw = 'radosgw'
+ $user_radosgw = 'www-data'
+@@ -61,7 +61,7 @@ class ceph::params (
+ $pkg_radosgw = 'ceph-radosgw'
+ $user_radosgw = 'apache'
+ $pkg_fastcgi = 'mod_fastcgi'
+- if (Integer.new($::os['release']['major']) > 7) {
++ if (Integer.new($facts['os']['release']['major']) > 7) {
+ $pkg_policycoreutils = 'policycoreutils-python-utils'
+ } else {
+ $pkg_policycoreutils = 'policycoreutils-python'
+@@ -69,7 +69,7 @@ class ceph::params (
+ }
+
+ default: {
+- fail("Unsupported osfamily: ${::osfamily} operatingsystem: ${::operatingsystem}, \
++ fail("Unsupported osfamily: ${::facts['os']['family']} operatingsystem: ${::facts['os']['distro']['name']}, \
+ module ${module_name} only supports osfamily Debian or RedHat")
+ }
+ }
+Index: puppet-module-ceph/manifests/profile/mgr.pp
+===================================================================
+--- puppet-module-ceph.orig/manifests/profile/mgr.pp
++++ puppet-module-ceph/manifests/profile/mgr.pp
+@@ -22,7 +22,7 @@
+ class ceph::profile::mgr {
+ require ceph::profile::base
+
+- ceph::mgr { $::hostname:
++ ceph::mgr { $facts['networking']['hostname']:
+ authentication_type => $ceph::profile::params::authentication_type,
+ key => $ceph::profile::params::mgr_key,
+ inject_key => true,
+Index: puppet-module-ceph/manifests/profile/mon.pp
+===================================================================
+--- puppet-module-ceph.orig/manifests/profile/mon.pp
++++ puppet-module-ceph/manifests/profile/mon.pp
+@@ -23,7 +23,7 @@
+ class ceph::profile::mon {
+ require ceph::profile::base
+
+- ceph::mon { $::hostname:
++ ceph::mon { $facts['networking']['hostname']:
+ authentication_type => $ceph::profile::params::authentication_type,
+ key => $ceph::profile::params::mon_key,
+ keyring => $ceph::profile::params::mon_keyring,
+Index: puppet-module-ceph/manifests/repo.pp
+===================================================================
+--- puppet-module-ceph.orig/manifests/repo.pp
++++ puppet-module-ceph/manifests/repo.pp
+@@ -70,7 +70,7 @@ class ceph::repo (
+ $enable_sig = $ceph::params::enable_sig,
+ $ceph_mirror = undef,
+ ) inherits ceph::params {
+- case $::osfamily {
++ case $facts['os']['family'] {
+ 'Debian': {
+ include apt
+
+@@ -89,7 +89,7 @@ class ceph::repo (
+ apt::source { 'ceph':
+ ensure => $ensure,
+ location => $ceph_mirror_real,
+- release => $::lsbdistcodename,
++ release => $facts['os']['distro']['codename'],
+ tag => 'ceph',
+ }
+
+@@ -104,7 +104,7 @@ class ceph::repo (
+ apt::source { 'ceph-fastcgi':
+ ensure => $ensure,
+ location => "http://gitbuilder.ceph.com/libapache-mod-fastcgi-deb-${::lsbdistcodename}-${::hardwaremodel}-basic/ref/master",
+- release => $::lsbdistcodename,
++ release => $facts['os']['distro']['codename'],
+ require => Apt::Key['ceph-gitbuilder'],
+ }
+
+@@ -120,7 +120,7 @@ class ceph::repo (
+ # If you want to deploy Ceph using packages provided by CentOS SIG
+ # https://wiki.centos.org/SpecialInterestGroup/Storage/
+ if $enable_sig {
+- if $::operatingsystem != 'CentOS' {
++ if $facts['os']['name'] != 'CentOS' {
+ warning("CentOS SIG repository is only supported on CentOS operating system, \
+ not on ${::operatingsystem}, which can lead to packaging issues.")
+ }
+@@ -144,8 +144,8 @@ not on ${::operatingsystem}, which can l
+ Yumrepo['ceph-luminous-sig'] -> Yumrepo['ceph-storage-sig'] -> Package<| tag == 'ceph' |>
+ } else {
+ # If you want to deploy Ceph using packages provided by ceph.com repositories.
+- if ((($::operatingsystem == 'RedHat' or $::operatingsystem == 'CentOS') and (versioncmp($::operatingsystemmajrelease, '7') < 0))
+- or ($::operatingsystem == 'Fedora' and (versioncmp($::operatingsystemmajrelease, '19') < 0))) {
++ if ((($facts['os']['name'] == 'RedHat' or $facts['os']['name'] == 'CentOS') and (versioncmp($facts['os']['distro']['major'], '7') < 0))
++ or ($facts['os']['name'] and (versioncmp($facts['os']['distro']['major'], '19') < 0))) {
+ $el = '6'
+ } else {
+ $el = '7'
+@@ -158,7 +158,7 @@ not on ${::operatingsystem}, which can l
+ }
+
+
+- if ($::operatingsystem != 'Fedora') {
++ if ($facts['os']['name'] != 'Fedora') {
+ yumrepo { 'ext-ceph':
+ # puppet versions prior to 3.5 do not support ensure, use enabled instead
+ enabled => $enabled,
+@@ -206,7 +206,7 @@ not on ${::operatingsystem}, which can l
+ }
+ }
+
+- if $enable_epel and ($::operatingsystem != 'Fedora') {
++ if $enable_epel and ($facts['os']['name'] != 'Fedora') {
+ yumrepo { "ext-epel-${el}":
+ # puppet versions prior to 3.5 do not support ensure, use enabled instead
+ enabled => $enabled,
+@@ -226,7 +226,7 @@ not on ${::operatingsystem}, which can l
+ }
+
+ default: {
+- fail("Unsupported osfamily: ${::osfamily} operatingsystem: ${::operatingsystem}, \
++ fail("Unsupported osfamily: ${::facts['os']['family']} operatingsystem: ${::facts['os']['distro']['name']}, \
+ module ${module_name} only supports osfamily Debian and RedHat")
+ }
+ }
+Index: puppet-module-ceph/manifests/rgw.pp
+===================================================================
+--- puppet-module-ceph.orig/manifests/rgw.pp
++++ puppet-module-ceph/manifests/rgw.pp
+@@ -80,13 +80,13 @@ define ceph::rgw (
+ $user = $ceph::params::user_radosgw,
+ $keyring_path = "/etc/ceph/ceph.client.${name}.keyring",
+ $log_file = '/var/log/ceph/radosgw.log',
+- $rgw_dns_name = $::fqdn,
++ $rgw_dns_name = $facts['networking']['fqdn'],
+ $rgw_socket_path = $ceph::params::rgw_socket_path,
+ $rgw_print_continue = false,
+ $rgw_port = undef,
+ $frontend_type = 'civetweb',
+ $rgw_frontends = 'civetweb port=7480',
+- $rgw_swift_url = "http://${::fqdn}:7480",
++ $rgw_swift_url = "http://${::networking['fqdn']}:7480",
+ $syslog = undef,
+ ) {
+
+@@ -102,7 +102,7 @@ define ceph::rgw (
+ }
+
+ ceph_config {
+- "client.${name}/host": value => $::hostname;
++ "client.${name}/host": value => $facts['networking']['hostname'];
+ "client.${name}/keyring": value => $keyring_path;
+ "client.${name}/log_file": value => $log_file;
+ "client.${name}/user": value => $user;
+@@ -170,7 +170,7 @@ define ceph::rgw (
+
+ # service definition
+ # if Ubuntu does not use systemd
+- if $::service_provider == 'upstart' {
++ if $facts['service_provider'] == 'upstart' {
+ if $rgw_enable {
+ file { "${rgw_data}/done":
+ ensure => present,
+@@ -183,7 +183,7 @@ define ceph::rgw (
+ start => "start radosgw id=${name}",
+ stop => "stop radosgw id=${name}",
+ status => "status radosgw id=${name}",
+- provider => $::service_provider,
++ provider => $facts['service_provider'],
+ }
+ # Everything else that is supported by puppet-ceph should run systemd.
+ } else {
+Index: puppet-module-ceph/manifests/rgw/apache_proxy_fcgi.pp
+===================================================================
+--- puppet-module-ceph.orig/manifests/rgw/apache_proxy_fcgi.pp
++++ puppet-module-ceph/manifests/rgw/apache_proxy_fcgi.pp
+@@ -67,7 +67,7 @@
+ define ceph::rgw::apache_proxy_fcgi (
+ $admin_email = 'root@localhost',
+ $docroot = '/var/www',
+- $rgw_dns_name = $::fqdn,
++ $rgw_dns_name = $facts['networking']['fqdn'],
+ $rgw_port = '80',
+ $rewrite_rule = '.* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]',
+ $setenv = 'proxy-nokeepalive 1',
+Index: puppet-module-ceph/manifests/rgw/keystone.pp
+===================================================================
+--- puppet-module-ceph.orig/manifests/rgw/keystone.pp
++++ puppet-module-ceph/manifests/rgw/keystone.pp
+@@ -84,8 +84,8 @@ define ceph::rgw::keystone (
+ }
+
+ # FIXME(ykarel) Cleanup once https://tracker.ceph.com/issues/24228 is fixed for luminous
+- if ($::os['name'] == 'Fedora') or
+- ($::os['family'] == 'RedHat' and Integer.new($::os['release']['major']) > 7) {
++ if ($facts['os']['name'] == 'Fedora') or
++ ($facts['os']['family'] == 'RedHat' and Integer.new($facts['os']['release']['major']) > 7) {
+ ceph_config {
+ "client.${name}/rgw_ldap_secret": value => '';
+ }
+Index: puppet-module-ceph/manifests/profile/params.pp
+===================================================================
+--- puppet-module-ceph.orig/manifests/profile/params.pp
++++ puppet-module-ceph/manifests/profile/params.pp
+@@ -241,8 +241,6 @@ class ceph::profile::params (
+ $rbd_default_features = undef,
+ ) {
+
+- validate_legacy(Hash, 'validate_hash', $client_keys)
+-
+ if $authentication_type == 'cephx' and empty($client_keys) {
+ fail("client_keys must be provided when using authentication_type = 'cephx'")
+ }
diff --git a/debian/changelog b/debian/changelog
index 4f35352..0d3188e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+puppet-module-cloudkitty (14.0.0-5) unstable; urgency=medium
+
+ * d/watch: switch to version=4 and mode=git.
+ * Add trixie-support.patch.
+
+ -- Thomas Goirand <zigo@debian.org> Tue, 27 May 2025 15:30:42 +0200
+
puppet-module-cloudkitty (14.0.0-4) unstable; urgency=medium
* Add Add-amqp_auto_delete-and-rabbit_transient_queues_ttl-params.patch.
diff --git a/debian/patches/series b/debian/patches/series
index 4230e4b..1c6a635 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +1,4 @@
allow-using-uwsgi.patch
Expose-rabbit_transient_quorum_queue.patch
Add-amqp_auto_delete-and-rabbit_transient_queues_ttl-params.patch
+trixie-support.patch
diff --git a/debian/patches/trixie-support.patch b/debian/patches/trixie-support.patch
new file mode 100644
index 0000000..6bea181
--- /dev/null
+++ b/debian/patches/trixie-support.patch
@@ -0,0 +1,16 @@
+Description: Trixie support
+Author: Thomas Goirand <zigo@debian.org>
+Forwarded: no
+Last-Update: 2025-05-27
+
+--- puppet-module-cloudkitty-14.0.0.orig/manifests/params.pp
++++ puppet-module-cloudkitty-14.0.0/manifests/params.pp
+@@ -24,7 +24,7 @@ class cloudkitty::params {
+ 'Debian': {
+ # package names
+ $api_package_name = 'cloudkitty-api'
+- case $::os_package_type {
++ case $facts['os']['name'] {
+ 'debian': {
+ $api_service_name = 'cloudkitty-api'
+ }
diff --git a/debian/watch b/debian/watch
index 719d9e9..a8b0fbd 100644
--- a/debian/watch
+++ b/debian/watch
@@ -1,3 +1,3 @@
-version=3
-opts="uversionmangle=s/\.0rc/~rc/;s/\.0b1/~b1/;s/\.0b2/~b2/;s/\.0b3/~b3/" \
-https://github.com/openstack/puppet-cloudkitty/tags .*/(\d[brc\d\.]+)\.tar\.gz
+version=4
+opts="mode=git,uversionmangle=s/\.0rc/~rc/;s/\.0b1/~b1/;s/\.0b2/~b2/;s/\.0b3/~b3/" \
+https://github.com/openstack/puppet-cloudkitty refs/tags/(\d[brc\d\.]+)
diff --git a/debian/changelog b/debian/changelog
index b7e27e0..ed92664 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+puppet-module-deric-zookeeper (0.8.4-6) unstable; urgency=medium
+
+ * Add bookworm-support.patch.
+
+ -- Thomas Goirand <zigo@debian.org> Tue, 27 May 2025 13:11:44 +0200
+
puppet-module-deric-zookeeper (0.8.4-5) unstable; urgency=medium
* Clean-up update-alternatives handling.
diff --git a/debian/patches/bookworm-support.patch b/debian/patches/bookworm-support.patch
new file mode 100644
index 0000000..62eff80
--- /dev/null
+++ b/debian/patches/bookworm-support.patch
@@ -0,0 +1,159 @@
+Description: Add bookworm support
+ This patch adds support for Bookworm, mostly by fixing the missuse of
+ toplevel facts that are now gone from Puppet 8.7 and facter 4.10.
+Author: Thomas Goirand <zigo@debian.org>
+Forwarded: no
+Last-Update: 2025-05-27
+
+Index: puppet-module-deric-zookeeper/manifests/params.pp
+===================================================================
+--- puppet-module-deric-zookeeper.orig/manifests/params.pp
++++ puppet-module-deric-zookeeper/manifests/params.pp
+@@ -6,18 +6,18 @@ class zookeeper::params {
+ 'packages' => ['zookeeper'],
+ }
+
+- case $::osfamily {
++ case $facts['os']['family'] {
+ 'Debian': {
+- case $::operatingsystem {
++ case $facts['os']['name'] {
+ 'Debian': {
+- case $::operatingsystemmajrelease {
++ case $facts['os']['release']['major'] {
+ '7': { $initstyle = 'init' }
+ '8': { $initstyle = 'systemd' }
+ default: { $initstyle = undef }
+ }
+ }
+ 'Ubuntu': {
+- case $::operatingsystemmajrelease {
++ case $facts['os']['release']['major'] {
+ '14.04': { $initstyle = 'upstart' }
+ default: { $initstyle = undef }
+ }
+@@ -36,7 +36,7 @@ class zookeeper::params {
+ $environment_file = 'environment'
+ }
+ 'RedHat': {
+- case $::operatingsystemmajrelease {
++ case $facts['os']['release']['major'] {
+ '6': { $initstyle = 'redhat' }
+ '7': { $initstyle = 'systemd' }
+ default: { $initstyle = undef }
+@@ -51,7 +51,7 @@ class zookeeper::params {
+ }
+
+ default: {
+- fail("Module '${module_name}' is not supported on OS: '${::operatingsystem}', family: '${::osfamily}'")
++ fail("Module '${module_name}' is not supported on OS: '${::facts['os']['name']}', family: '${::facts['os']['family']}'")
+ }
+ }
+ $_params = merge($_defaults, $_os_overrides)
+@@ -142,12 +142,18 @@ class zookeeper::params {
+ $maxfilesize = '256MB'
+ $maxbackupindex = 20
+
++ if $facts['networking']['fqdn'] {
++ $fqdn = $facts['networking']['fqdn']
++ }else{
++ $fqdn = $::fqdn
++ }
++
+ # sasl options
+ $sasl_krb5 = true
+ $sasl_users = {}
+ $keytab_path = '/etc/zookeeper/conf/zookeeper.keytab'
+- $principal = "zookeeper/${::fqdn}"
+- $realm = $::domain
++ $principal = "zookeeper/${fqdn}"
++ $realm = $facts['networking']['domain']
+ $store_key = true
+ $use_keytab = true
+ $use_ticket_cache = false
+Index: puppet-module-deric-zookeeper/manifests/init.pp
+===================================================================
+--- puppet-module-deric-zookeeper.orig/manifests/init.pp
++++ puppet-module-deric-zookeeper/manifests/init.pp
+@@ -98,9 +98,10 @@ class zookeeper(
+ $pid_path = "${pid_dir}/zookeeper.pid"
+ }
+
+- $repo_source = is_hash($repo) ? {
+- true => 'custom',
+- false => $repo
++ $repo_source = $repo ? {
++ Hash => 'custom',
++ String => $repo,
++ default => undef,
+ }
+
+ if $::zookeeper::ensure_account {
+Index: puppet-module-deric-zookeeper/manifests/install.pp
+===================================================================
+--- puppet-module-deric-zookeeper.orig/manifests/install.pp
++++ puppet-module-deric-zookeeper/manifests/install.pp
+@@ -7,7 +7,7 @@ class zookeeper::install inherits zookee
+ anchor { 'zookeeper::install::begin': }
+
+ # Repo management
+- case $::osfamily {
++ case $facts['os']['family'] {
+ 'RedHat': {
+ include zookeeper::install::repo
+ Anchor['zookeeper::install::begin']
+@@ -28,7 +28,7 @@ class zookeeper::install inherits zookee
+ anchor { 'zookeeper::install::java': }
+
+ # parameter allow_virtual is not supported before Puppet 3.6
+- if versioncmp($::puppetversion, '3.6.0') >= 0 {
++ if versioncmp($facts['puppetversion'], '3.6.0') >= 0 {
+ ensure_resource('package', $::zookeeper::java_package,
+ {'ensure' => $::zookeeper::ensure, 'allow_virtual' => true,
+ 'before' => Anchor['zookeeper::install::intermediate'],
+Index: puppet-module-deric-zookeeper/manifests/post_install.pp
+===================================================================
+--- puppet-module-deric-zookeeper.orig/manifests/post_install.pp
++++ puppet-module-deric-zookeeper/manifests/post_install.pp
+@@ -12,11 +12,11 @@ class zookeeper::post_install inherits z
+ } else {
+ # Autodetect:
+ # Since ZooKeeper 3.4 there's no need for purging snapshots with cron
+- case $::osfamily {
++ case $facts['os']['family'] {
+ 'Debian': {
+- case $::operatingsystem {
++ case $facts['os']['name'] {
+ 'Debian': {
+- case $::lsbdistcodename {
++ case $facts['os']['distro']['codename'] {
+ 'wheezy', 'squeeze': { # 3.3.5
+ $_clean = true
+ }
+@@ -26,7 +26,7 @@ class zookeeper::post_install inherits z
+ }
+ }
+ 'Ubuntu': {
+- case $::lsbdistcodename {
++ case $facts['os']['distro']['codename'] {
+ 'precise': { # 3.3.5
+ $_clean = true
+ }
+@@ -36,7 +36,7 @@ class zookeeper::post_install inherits z
+ }
+ }
+ default: {
+- fail ("Family: '${::osfamily}' OS: '${::operatingsystem}' is not supported yet")
++ fail ("Family: '${::facts['os']['family']}' OS: '${::facts['os']['distro']['codename']}' is not supported yet")
+ }
+ }
+ }
+@@ -44,7 +44,7 @@ class zookeeper::post_install inherits z
+ $_clean = false
+ }
+ default: {
+- fail ("Family: '${::osfamily}' OS: '${::operatingsystem}' is not supported yet")
++ fail ("Family: '${::facts['os']['family']}' OS: '${::facts['os']['distro']['codename']}' is not supported yet")
+ }
+ }
+ }
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..1f2a820
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1 @@
+bookworm-support.patch
diff --git a/debian/changelog b/debian/changelog
index a2d111c..af68021 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,15 @@
+puppet-module-heat (25.0.0-4) unstable; urgency=medium
+
+ * d/watch: switch to version=4 and mode=git.
+
+ -- Thomas Goirand <zigo@debian.org> Wed, 26 Mar 2025 11:46:16 +0100
+
+puppet-module-heat (25.0.0-3) unstable; urgency=medium
+
+ * Add Add-a-rabbit_transient_queues_ttl-and-amqp_auto_delete-params.patch.
+
+ -- Thomas Goirand <zigo@debian.org> Wed, 12 Mar 2025 17:31:13 +0100
+
puppet-module-heat (25.0.0-2) unstable; urgency=medium
* Add missing types folder.
diff --git a/debian/patches/Add-a-rabbit_transient_queues_ttl-and-amqp_auto_delete-params.patch b/debian/patches/Add-a-rabbit_transient_queues_ttl-and-amqp_auto_delete-params.patch
new file mode 100644
index 0000000..c9b56db
--- /dev/null
+++ b/debian/patches/Add-a-rabbit_transient_queues_ttl-and-amqp_auto_delete-params.patch
@@ -0,0 +1,113 @@
+Author: Thomas Goirand <zigo@debian.org>
+Date: Wed, 12 Mar 2025 16:46:11 +0100
+Description: Add a rabbit_transient_queues_ttl and amqp_auto_delete params
+ Note that this patch needs:
+ https://review.opendev.org/c/openstack/puppet-oslo/+/944132
+ so do not merge before it.
+Change-Id: I5d02e065ca383e776da540f82afe9a9afd1781b5
+Forwarded: https://review.opendev.org/c/openstack/puppet-heat/+/944127
+Last-Update: 2025-03-12
+
+Index: puppet-module-heat/manifests/init.pp
+===================================================================
+--- puppet-module-heat.orig/manifests/init.pp
++++ puppet-module-heat/manifests/init.pp
+@@ -69,6 +69,14 @@
+ # (Optional) Use quorum queues for transients queues in RabbitMQ.
+ # Defaults to $facts['os_service_default']
+ #
++# [*rabbit_transient_queues_ttl*]
++# (Optional) Positive integer representing duration in seconds for
++# queue TTL (x-expires). Queues which are unused for the duration
++# of the TTL are automatically deleted.
++# The parameter affects only reply and fanout queues. (integer value)
++# Min to 1
++# Defaults to $facts['os_service_default']
++#
+ # [*rabbit_quorum_delivery_limit*]
+ # (Optional) Each time a message is rdelivered to a consumer, a counter is
+ # incremented. Once the redelivery count exceeds the delivery limit
+@@ -127,6 +135,10 @@
+ # (string value)
+ # Defaults to $facts['os_service_default']
+ #
++# [*amqp_auto_delete*]
++# (Optional) Define if transient queues should be auto-deleted (boolean value)
++# Defaults to $facts['os_service_default']
++#
+ # [*amqp_durable_queues*]
+ # (Optional) Use durable queues in amqp.
+ # Defaults to $facts['os_service_default'].
+@@ -234,6 +246,7 @@ class heat(
+ $rabbit_qos_prefetch_count = $facts['os_service_default'],
+ $rabbit_quorum_queue = $facts['os_service_default'],
+ $rabbit_transient_quorum_queue = $facts['os_service_default'],
++ $rabbit_transient_queues_ttl = $facts['os_service_default'],
+ $rabbit_quorum_delivery_limit = $facts['os_service_default'],
+ $rabbit_quorum_max_memory_length = $facts['os_service_default'],
+ $rabbit_quorum_max_memory_bytes = $facts['os_service_default'],
+@@ -247,6 +260,7 @@ class heat(
+ $kombu_failover_strategy = $facts['os_service_default'],
+ $kombu_compression = $facts['os_service_default'],
+ $amqp_durable_queues = $facts['os_service_default'],
++ $amqp_auto_delete = $facts['os_service_default'],
+ $host = $facts['os_service_default'],
+ $flavor = $facts['os_service_default'],
+ $region_name = $facts['os_service_default'],
+@@ -299,9 +313,11 @@ class heat(
+ rabbit_qos_prefetch_count => $rabbit_qos_prefetch_count,
+ rabbit_use_ssl => $rabbit_use_ssl,
+ amqp_durable_queues => $amqp_durable_queues,
++ amqp_auto_delete => $amqp_auto_delete,
+ rabbit_ha_queues => $rabbit_ha_queues,
+ rabbit_quorum_queue => $rabbit_quorum_queue,
+ rabbit_transient_quorum_queue => $rabbit_transient_quorum_queue,
++ rabbit_transient_queues_ttl => $rabbit_transient_queues_ttl,
+ rabbit_quorum_delivery_limit => $rabbit_quorum_delivery_limit,
+ rabbit_quorum_max_memory_length => $rabbit_quorum_max_memory_length,
+ rabbit_quorum_max_memory_bytes => $rabbit_quorum_max_memory_bytes,
+Index: puppet-module-heat/releasenotes/notes/amqp_auto_delete-098ad0ce851da23f.yaml
+===================================================================
+--- /dev/null
++++ puppet-module-heat/releasenotes/notes/amqp_auto_delete-098ad0ce851da23f.yaml
+@@ -0,0 +1,5 @@
++---
++features:
++ - |
++ Add a new `amqp_auto_delete` parameter, so that transient queues are
++ automatically deleted.
+Index: puppet-module-heat/releasenotes/notes/transient_queues_ttl-d93c0e84d9ebc86a.yaml
+===================================================================
+--- /dev/null
++++ puppet-module-heat/releasenotes/notes/transient_queues_ttl-d93c0e84d9ebc86a.yaml
+@@ -0,0 +1,6 @@
++---
++features:
++ - |
++ A new parameter ``rabbit_transient_queues_ttl`` has been added to the
++ heat init class to configure how long transtient queue should stay until
++ they are automatically deleted.
+Index: puppet-module-heat/spec/classes/heat_init_spec.rb
+===================================================================
+--- puppet-module-heat.orig/spec/classes/heat_init_spec.rb
++++ puppet-module-heat/spec/classes/heat_init_spec.rb
+@@ -141,9 +141,11 @@ describe 'heat' do
+ :rabbit_qos_prefetch_count => '<SERVICE DEFAULT>',
+ :rabbit_use_ssl => '<SERVICE DEFAULT>',
+ :amqp_durable_queues => '<SERVICE DEFAULT>',
++ :amqp_auto_delete => '<SERVICE DEFAULT>',
+ :rabbit_ha_queues => '<SERVICE DEFAULT>',
+ :rabbit_quorum_queue => '<SERVICE DEFAULT>',
+ :rabbit_transient_quorum_queue => '<SERVICE DEFAULT>',
++ :rabbit_transient_queues_ttl => '<SERVICE DEFAULT>',
+ :rabbit_quorum_delivery_limit => '<SERVICE DEFAULT>',
+ :rabbit_quorum_max_memory_length => '<SERVICE DEFAULT>',
+ :rabbit_quorum_max_memory_bytes => '<SERVICE DEFAULT>',
+@@ -176,6 +178,7 @@ describe 'heat' do
+ :rabbit_ha_queues => true,
+ :rabbit_quorum_queue => '<SERVICE DEFAULT>',
+ :rabbit_transient_quorum_queue => '<SERVICE DEFAULT>',
++ :rabbit_transient_queues_ttl => '<SERVICE DEFAULT>',
+ :rabbit_quorum_delivery_limit => '<SERVICE DEFAULT>',
+ :rabbit_quorum_max_memory_length => '<SERVICE DEFAULT>',
+ :rabbit_quorum_max_memory_bytes => '<SERVICE DEFAULT>',
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..ba80444
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1 @@
+Add-a-rabbit_transient_queues_ttl-and-amqp_auto_delete-params.patch
diff --git a/debian/watch b/debian/watch
index 59f86bb..5d5bd59 100644
--- a/debian/watch
+++ b/debian/watch
@@ -1,3 +1,3 @@
-version=3
-opts="uversionmangle=s/\.0rc/~rc/;s/\.0b1/~b1/;s/\.0b2/~b2/;s/\.0b3/~b3/" \
-https://github.com/openstack/puppet-heat/tags .*/(\d[brc\d\.]+)\.tar\.gz
+version=4
+opts="mode=git,uversionmangle=s/\.0rc/~rc/;s/\.0b1/~b1/;s/\.0b2/~b2/;s/\.0b3/~b3/" \
+https://github.com/openstack/puppet-heat refs/tags/(\d[brc\d\.]+)
diff --git a/debian/changelog b/debian/changelog
index afb9090..25876b0 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+puppet-module-michaeltchapman-galera (0.7.1-6) unstable; urgency=medium
+
+ * Add fix-toplevel-facts-nonexistent.patch.
+ * Add mysql_password-is-gone.patch.
+ * Add fix-clustercheck-for-trixie.patch.
+
+ -- Thomas Goirand <zigo@debian.org> Tue, 13 May 2025 10:13:32 +0200
+
puppet-module-michaeltchapman-galera (0.7.1-5) unstable; urgency=medium
* Clean-up update-alternatives handling.
diff --git a/debian/patches/fix-clustercheck-for-trixie.patch b/debian/patches/fix-clustercheck-for-trixie.patch
new file mode 100644
index 0000000..bee8e9a
--- /dev/null
+++ b/debian/patches/fix-clustercheck-for-trixie.patch
@@ -0,0 +1,17 @@
+Description: Fix clustercheck for Trixie
+ Without this patch, the script just fails to see the node as synced.
+Author: Thomas Goirand <zigo@debian.org>
+Forwarded: no
+Last-Update: 2025-05-14
+
+--- puppet-module-michaeltchapman-galera-0.7.1.orig/templates/clustercheck.erb
++++ puppet-module-michaeltchapman-galera-0.7.1/templates/clustercheck.erb
+@@ -52,7 +52,7 @@ fi
+ WSREP_STATUS=$($MYSQL_CMDLINE -e "SHOW STATUS LIKE 'wsrep_local_state';" \
+ 2>${ERR_FILE} | tail -1 2>>${ERR_FILE})
+
+-if [[ "${WSREP_STATUS}" == "4" ]] || [[ "${WSREP_STATUS}" == "2" && ${AVAILABLE_WHEN_DONOR} == 1 ]]
++if [[ "${WSREP_STATUS}" == "4" ]] || [[ "${WSREP_STATUS}" == "2" ]]
+ then
+ # Check only when set to 0 to avoid latency in response.
+ if [[ $AVAILABLE_WHEN_READONLY -eq 0 ]];then
diff --git a/debian/patches/fix-toplevel-facts-nonexistent.patch b/debian/patches/fix-toplevel-facts-nonexistent.patch
new file mode 100644
index 0000000..131b644
--- /dev/null
+++ b/debian/patches/fix-toplevel-facts-nonexistent.patch
@@ -0,0 +1,123 @@
+Description: Fix toplevel facts non-existent
+Author: Thomas Goirand <zigo@debian.org>
+Forwarded: no
+Last-Update: 2025-05-13
+
+Index: puppet-module-michaeltchapman-galera/manifests/init.pp
+===================================================================
+--- puppet-module-michaeltchapman-galera.orig/manifests/init.pp
++++ puppet-module-michaeltchapman-galera/manifests/init.pp
+@@ -178,10 +178,10 @@
+ # Defaults to undef
+ #
+ class galera(
+- $galera_servers = [$::ipaddress_eth1],
+- $galera_master = $::fqdn,
+- $local_ip = $::ipaddress_eth1,
+- $bind_address = $::ipaddress_eth1,
++ $galera_servers = undef,
++ $galera_master = $facts['networking']['fqdn'],
++ $local_ip = undef,
++ $bind_address = undef,
+ $mysql_port = 3306,
+ $wsrep_group_comm_port = 4567,
+ $wsrep_state_transfer_port = 4444,
+@@ -229,7 +229,7 @@ class galera(
+ }
+
+ # Debian machines need some help
+- if ($::osfamily == 'Debian') {
++ if ($facts['os']['family'] == 'Debian') {
+ include galera::debian
+ }
+
+@@ -246,7 +246,7 @@ class galera(
+ $options = deep_merge($galera::params::default_options, $override_options)
+
+ if ($create_root_user == undef) {
+- if ($galera_master == $::fqdn) {
++ if ($galera_master == $facts['networking']['fqdn']) {
+ # manage root user on the galera master
+ $create_root_user_real = true
+ } else {
+@@ -315,7 +315,7 @@ class galera(
+ }
+
+
+- if $::fqdn == $galera_master {
++ if $facts['networking']['fqdn'] == $galera_master {
+ # If there are no other servers up and we are the master, the cluster
+ # needs to be bootstrapped. This happens before the service is managed
+ $server_list = join($galera_servers, ' ')
+Index: puppet-module-michaeltchapman-galera/manifests/debian.pp
+===================================================================
+--- puppet-module-michaeltchapman-galera.orig/manifests/debian.pp
++++ puppet-module-michaeltchapman-galera/manifests/debian.pp
+@@ -3,7 +3,7 @@
+ # Fixes Debian specific compatibility issues
+ #
+ class galera::debian {
+- if ($::osfamily != 'Debian') {
++ if ($facts['os']['family'] != 'Debian') {
+ warn('the galera::debian class has been included on a non-debian host')
+ }
+
+@@ -49,7 +49,7 @@ class galera::debian {
+ # Required for Puppet 4
+ $deb_sysmaint_password = $galera::deb_sysmaint_password
+
+- if ($::fqdn == $galera::galera_master) {
++ if ($facts['networking']['fqdn'] == $galera::galera_master) {
+
+ # Debian sysmaint pw will be set on the master,
+ # and needs to be consistent across the cluster.
+Index: puppet-module-michaeltchapman-galera/manifests/params.pp
+===================================================================
+--- puppet-module-michaeltchapman-galera.orig/manifests/params.pp
++++ puppet-module-michaeltchapman-galera/manifests/params.pp
+@@ -8,12 +8,12 @@ class galera::params {
+ if $galera::vendor_type == 'percona' {
+ $bootstrap_command = '/etc/init.d/mysql bootstrap-pxc'
+ } elsif ($galera::vendor_type == 'mariadb' or $galera::vendor_type == 'codership') {
+- if ($::osfamily == 'RedHat' and versioncmp($::operatingsystemrelease, '7') >= 0 and
++ if ($facts['os']['family'] == 'RedHat' and versioncmp($::operatingsystemrelease, '7') >= 0 and
+ $galera::vendor_version and versioncmp($galera::vendor_version, '10.0') == 1
+ ) {
+ # We have systemd and we should use the binary
+ $bootstrap_command = '/usr/bin/galera_new_cluster'
+- } elsif ($::osfamily == 'Debian') {
++ } elsif ($facts['os']['family'] == 'Debian') {
+ $bootstrap_command = '/usr/bin/galera_new_cluster'
+ } else {
+ $bootstrap_command = 'service mysql start --wsrep_cluster_address=gcomm://'
+@@ -24,7 +24,7 @@ class galera::params {
+ $bootstrap_command = 'touch /var/log/mysqld.log ; chown mysql:mysql /var/log/mysqld.log ; systemctl start mysqld'
+ }
+
+- if ($::osfamily == 'RedHat') {
++ if ($facts['os']['family'] == 'RedHat') {
+ if $galera::vendor_type == 'percona' {
+ if $galera::vendor_version == '5.6' {
+ $mysql_package_name_internal = 'Percona-XtraDB-Cluster-server-56'
+@@ -86,7 +86,7 @@ class galera::params {
+ $rundir = '/var/run/mysqld'
+
+ }
+- elsif ($::osfamily == 'Debian'){
++ elsif ($facts['os']['family'] == 'Debian'){
+ if $facts['os']['lsb'] != undef{
+ $mycodename = $facts['os']['lsb']['distcodename']
+ }else{
+Index: puppet-module-michaeltchapman-galera/manifests/repo.pp
+===================================================================
+--- puppet-module-michaeltchapman-galera.orig/manifests/repo.pp
++++ puppet-module-michaeltchapman-galera/manifests/repo.pp
+@@ -67,7 +67,7 @@ class galera::repo(
+ $real_yum_mariadb_baseurl = $yum_mariadb_baseurl
+ }
+
+- case $::osfamily {
++ case $facts['os']['family'] {
+ 'Debian': {
+ if ($::operatingsystem == 'Ubuntu') or ($::operatingsystem == 'Debian') {
+ if ($repo_vendor == 'percona') {
diff --git a/debian/patches/mysql_password-is-gone.patch b/debian/patches/mysql_password-is-gone.patch
new file mode 100644
index 0000000..37ee7ca
--- /dev/null
+++ b/debian/patches/mysql_password-is-gone.patch
@@ -0,0 +1,36 @@
+Description: mysql_password is gone, let's use mysql::password instead
+Author: Thomas Goirand <zigo@debian.org>
+Forwarded: no
+Last-Update: 2025-05-13
+
+--- puppet-module-michaeltchapman-galera-0.7.1.orig/manifests/debian.pp
++++ puppet-module-michaeltchapman-galera-0.7.1/manifests/debian.pp
+@@ -55,7 +55,7 @@ class galera::debian {
+ # and needs to be consistent across the cluster.
+ mysql_user { 'debian-sys-maint@localhost':
+ ensure => 'present',
+- password_hash => mysql_password($deb_sysmaint_password),
++ password_hash => mysql::password($deb_sysmaint_password),
+ provider => 'mysql',
+ require => File['/root/.my.cnf'],
+ }
+--- puppet-module-michaeltchapman-galera-0.7.1.orig/manifests/status.pp
++++ puppet-module-michaeltchapman-galera-0.7.1/manifests/status.pp
+@@ -24,7 +24,7 @@ class galera::status {
+ if $status_allow != 'localhost' {
+ mysql_user { "${status_user}@${status_allow}":
+ ensure => 'present',
+- password_hash => mysql_password($status_password),
++ password_hash => mysql::password($status_password),
+ require => [File['/root/.my.cnf'],Service['mysqld']]
+ } ->
+ mysql_grant { "${status_user}@${status_allow}/*.*":
+@@ -39,7 +39,7 @@ class galera::status {
+
+ mysql_user { "${status_user}@localhost":
+ ensure => 'present',
+- password_hash => mysql_password($status_password),
++ password_hash => mysql::password($status_password),
+ require => [File['/root/.my.cnf'],Service['mysqld']]
+ } ->
+ mysql_grant { "${status_user}@localhost/*.*":
diff --git a/debian/patches/series b/debian/patches/series
index c9ae700..52821d6 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -2,3 +2,6 @@ fix-bootstraping.patch
fix-cluster-startup.patch
use-puppet-deep_merge-instead-of-mysql_deepmerge.patch
fix-default-package-names.patch
+fix-toplevel-facts-nonexistent.patch
+mysql_password-is-gone.patch
+fix-clustercheck-for-trixie.patch
diff --git a/debian/changelog b/debian/changelog
index 663eb9c4..76c4c4ec 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+puppet-module-nova (25.0.0-3) unstable; urgency=medium
+
+ * Add add-support-for-virtlock-in-trixie.patch.
+
+ -- Thomas Goirand <zigo@debian.org> Mon, 02 Jun 2025 17:12:23 +0200
+
puppet-module-nova (25.0.0-2) unstable; urgency=medium
* Add Add-amqp_auto_delete-and-rabbit_transient_queues_ttl-params.patch.
diff --git a/debian/patches/add-support-for-virtlock-in-trixie.patch b/debian/patches/add-support-for-virtlock-in-trixie.patch
new file mode 100644
index 00000000..e0152629
--- /dev/null
+++ b/debian/patches/add-support-for-virtlock-in-trixie.patch
@@ -0,0 +1,39 @@
+Description: Add support for virtlock in Trixie
+ virtlockd is packaged separately in Debian 13.
+Author: Thomas Goirand <zigo@debian.org>
+Forwarded: no
+Last-Update: 2025-06-02
+
+Index: puppet-module-nova/manifests/compute/libvirt/services.pp
+===================================================================
+--- puppet-module-nova.orig/manifests/compute/libvirt/services.pp
++++ puppet-module-nova/manifests/compute/libvirt/services.pp
+@@ -152,11 +152,23 @@ class nova::compute::libvirt::services (
+ }
+
+ if $virtlock_service_name {
+- service { 'virtlockd':
+- ensure => running,
+- enable => true,
+- name => $virtlock_service_name,
+- tag => 'libvirt-service',
++ if $facts['os']['family'] == 'Debian' and $facts['os']['name'] == 'Debian' and Integer.new($facts['os']['release']['major']) >= 13 {
++ package { 'libvirt-daemon-plugin-lockd':
++ ensure => present,
++ }
++ -> service { 'virtlockd':
++ ensure => running,
++ enable => true,
++ name => $virtlock_service_name,
++ tag => 'libvirt-service',
++ }
++ }else{
++ service { 'virtlockd':
++ ensure => running,
++ enable => true,
++ name => $virtlock_service_name,
++ tag => 'libvirt-service',
++ }
+ }
+ Virtlockd_config<||> ~> Service['virtlockd']
+ }
diff --git a/debian/patches/series b/debian/patches/series
index 0a631b23..f201a175 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -2,3 +2,4 @@ fix-libvirtd-config-for-tls.patch
use-modular-libvirt-in-debian-and-ubuntu.patch
fix-no-virtproxyd-in-debian.patch
Add-amqp_auto_delete-and-rabbit_transient_queues_ttl-params.patch
+add-support-for-virtlock-in-trixie.patch
diff -Nru puppet-module-puppetlabs-java-11.1.0/debian/changelog puppet-module-puppetlabs-java-11.1.0/debian/changelog
--- puppet-module-puppetlabs-java-11.1.0/debian/changelog 2025-02-26 15:51:44.000000000 +0100
+++ puppet-module-puppetlabs-java-11.1.0/debian/changelog 2025-05-27 12:32:17.000000000 +0200
@@ -1,3 +1,9 @@
+puppet-module-puppetlabs-java (11.1.0-4) unstable; urgency=medium
+
+ * Add bookworm-support.patch.
+
+ -- Thomas Goirand <zigo@debian.org> Tue, 27 May 2025 12:32:17 +0200
+
puppet-module-puppetlabs-java (11.1.0-3) unstable; urgency=medium
* Fixed typo in postrm script.
diff -Nru puppet-module-puppetlabs-java-11.1.0/debian/copyright puppet-module-puppetlabs-java-11.1.0/debian/copyright
--- puppet-module-puppetlabs-java-11.1.0/debian/copyright 2025-02-26 15:51:44.000000000 +0100
+++ puppet-module-puppetlabs-java-11.1.0/debian/copyright 2025-05-27 12:32:17.000000000 +0200
@@ -1,5 +1,5 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
-Upstream-Name: puppetlabs-tftp
+Upstream-Name: puppetlabs-java
Upstream-Contact: Puppet Labs Inc.
Source: https://github.com/puppetlabs/puppetlabs-java
diff -Nru puppet-module-puppetlabs-java-11.1.0/debian/patches/bookworm-support.patch puppet-module-puppetlabs-java-11.1.0/debian/patches/bookworm-support.patch
--- puppet-module-puppetlabs-java-11.1.0/debian/patches/bookworm-support.patch 1970-01-01 01:00:00.000000000 +0100
+++ puppet-module-puppetlabs-java-11.1.0/debian/patches/bookworm-support.patch 2025-05-27 12:32:17.000000000 +0200
@@ -0,0 +1,18 @@
+Description: Bookworm support
+ Add support for bookworm and OpenJDK 21.
+Author: Thomas Goirand <zigo@debian.org>
+Forwarded: no
+Last-Update: 2025-05-27
+
+--- puppet-module-puppetlabs-java-11.1.0.orig/manifests/params.pp
++++ puppet-module-puppetlabs-java-11.1.0/manifests/params.pp
+@@ -58,6 +58,9 @@ class java::params {
+ default => $facts['os']['architecture']
+ }
+ case $facts['os']['release']['major'] {
++ '13': {
++ $openjdk = 21
++ }
+ '12', '24.04': {
+ $openjdk = 17
+ }
diff -Nru puppet-module-puppetlabs-java-11.1.0/debian/patches/series puppet-module-puppetlabs-java-11.1.0/debian/patches/series
--- puppet-module-puppetlabs-java-11.1.0/debian/patches/series 1970-01-01 01:00:00.000000000 +0100
+++ puppet-module-puppetlabs-java-11.1.0/debian/patches/series 2025-05-27 12:32:17.000000000 +0200
@@ -0,0 +1 @@
+bookworm-support.patch
diff --git a/debian/changelog b/debian/changelog
index e91d99e..03fc3aa 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+puppet-module-puppetlabs-rabbitmq (8.5.0-8) unstable; urgency=medium
+
+ * Add trixie-support.patch.
+ * Add fix-list_users-provider.patch.
+
+ -- Thomas Goirand <zigo@debian.org> Tue, 27 May 2025 15:02:16 +0200
+
puppet-module-puppetlabs-rabbitmq (8.5.0-7) unstable; urgency=medium
* Clean-up update-alternatives handling.
diff --git a/debian/patches/fix-list_users-provider.patch b/debian/patches/fix-list_users-provider.patch
new file mode 100644
index 0000000..6ecf6a8
--- /dev/null
+++ b/debian/patches/fix-list_users-provider.patch
@@ -0,0 +1,16 @@
+Description: Fix list_users provider
+Author: Thomas Goirand <zigo@debian.org>
+Forwarded: no
+Last-Update: 2025-05-29
+
+--- puppet-module-puppetlabs-rabbitmq-8.5.0.orig/lib/puppet/provider/rabbitmq_user/rabbitmqctl.rb
++++ puppet-module-puppetlabs-rabbitmq-8.5.0/lib/puppet/provider/rabbitmq_user/rabbitmqctl.rb
+@@ -15,7 +15,7 @@ Puppet::Type.type(:rabbitmq_user).provid
+ rabbitmqctl_list('users')
+ end
+
+- user_list.split(%r{\n}).map do |line|
++ user_list.split(%r{\n})[1..-1].map do |line|
+ raise Puppet::Error, "Cannot parse invalid user line: #{line}" unless line =~ %r{^(\S+)\s+\[(.*?)\]$}
+ user = Regexp.last_match(1)
+ tags = Regexp.last_match(2).split(%r{,\s*})
diff --git a/debian/patches/series b/debian/patches/series
index 73f2ca8..bd8f1ce 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -2,3 +2,5 @@ do-not-download-rabbitmqadmin-in-debian.patch
correctly-report-rabbitmq-version.patch
add-minus-q-when-calling-rabbitmq-plugin-list.patch
increase-rabbitmq-timeout.patch
+trixie-support.patch
+fix-list_users-provider.patch
diff --git a/debian/patches/trixie-support.patch b/debian/patches/trixie-support.patch
new file mode 100644
index 0000000..990051b
--- /dev/null
+++ b/debian/patches/trixie-support.patch
@@ -0,0 +1,25 @@
+Description: Trixie support
+Author: Thomas Goirand <zigo@debian.org>
+Forwarded: no
+Last-Update: 2025-05-27
+
+--- puppet-module-puppetlabs-rabbitmq-8.5.0.orig/manifests/init.pp
++++ puppet-module-puppetlabs-rabbitmq-8.5.0/manifests/init.pp
+@@ -409,7 +409,7 @@ class rabbitmq(
+ contain rabbitmq::management
+
+ if $admin_enable and $service_manage {
+- if $::osfamily != 'Debian' {
++ if $facts['os']['family'] != 'Debian' {
+ include 'rabbitmq::install::rabbitmqadmin'
+ }
+
+@@ -419,7 +419,7 @@ class rabbitmq(
+ provider => 'rabbitmqplugins',
+ }
+
+- if $::osfamily == 'Debian' {
++ if $facts['os']['family'] == 'Debian' {
+ Class['::rabbitmq::service'] -> Rabbitmq_exchange<| |>
+ }else{
+ Class['rabbitmq::service'] -> Class['rabbitmq::install::rabbitmqadmin']
diff --git a/debian/changelog b/debian/changelog
index f1b348e..e04f5aa 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+puppet-module-rodjek-logrotate (1.1.1+ds1-7) unstable; urgency=medium
+
+ * Add fix-nonexistent-toplevel-facts.patch.
+
+ -- Thomas Goirand <zigo@debian.org> Tue, 13 May 2025 10:41:43 +0200
+
puppet-module-rodjek-logrotate (1.1.1+ds1-6) unstable; urgency=medium
* Add handles-correctly-systemd-timer-presence.patch.
diff --git a/debian/patches/fix-nonexistent-toplevel-facts.patch b/debian/patches/fix-nonexistent-toplevel-facts.patch
new file mode 100644
index 0000000..b6520fd
--- /dev/null
+++ b/debian/patches/fix-nonexistent-toplevel-facts.patch
@@ -0,0 +1,16 @@
+Description: Fix nonexistent toplevel facts
+Author: Thomas Goirand <zigo@debian.org>
+Forwarded: no
+Last-Update: 2025-05-13
+
+--- puppet-module-rodjek-logrotate-1.1.1+ds1.orig/manifests/base.pp
++++ puppet-module-rodjek-logrotate-1.1.1+ds1/manifests/base.pp
+@@ -28,7 +28,7 @@ class logrotate::base {
+ source => 'puppet:///modules/logrotate/etc/cron.daily/logrotate';
+ }
+
+- case $::osfamily {
++ case $facts['os']['family'] {
+ 'Debian': {
+ include logrotate::defaults::debian
+ }
diff --git a/debian/patches/series b/debian/patches/series
index 3c5c755..8307529 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,2 +1,3 @@
fix-default-class.patch
handles-correctly-systemd-timer-presence.patch
+fix-nonexistent-toplevel-facts.patch
diff --git a/debian/changelog b/debian/changelog
index 390796a..5b9545c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+puppet-module-theforeman-dns (5.4.0-7) unstable; urgency=medium
+
+ * Add trixie-support.patch.
+
+ -- Thomas Goirand <zigo@debian.org> Thu, 29 May 2025 14:44:15 +0200
+
puppet-module-theforeman-dns (5.4.0-6) unstable; urgency=medium
* Add do-not-define-dnssec-enable.patch.
diff --git a/debian/patches/series b/debian/patches/series
index aa1f450..29f643b 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1 +1,2 @@
do-not-define-dnssec-enable.patch
+trixie-support.patch
diff --git a/debian/patches/trixie-support.patch b/debian/patches/trixie-support.patch
new file mode 100644
index 0000000..3f9d054
--- /dev/null
+++ b/debian/patches/trixie-support.patch
@@ -0,0 +1,17 @@
+Description: Trixie support
+ Fix the use of fact not available in Trixie.
+Author: Thomas Goirand <zigo@debian.org>
+Forwarded: no
+Last-Update: 2025-05-29
+
+--- puppet-module-theforeman-dns-5.4.0.orig/manifests/params.pp
++++ puppet-module-theforeman-dns-5.4.0/manifests/params.pp
+@@ -1,7 +1,7 @@
+ # Default parameters
+ # @api private
+ class dns::params {
+- case $facts['osfamily'] {
++ case $facts['os']['family'] {
+ 'Debian': {
+ $dnsdir = '/etc/bind'
+ $vardir = '/var/cache/bind'
diff --git a/debian/changelog b/debian/changelog
index 915194c..e7eb648 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+puppet-module-voxpupuli-corosync (6.0.1-4) unstable; urgency=medium
+
+ * Add fix-compat-with-latest-puppetserver.patch.
+
+ -- Thomas Goirand <zigo@debian.org> Tue, 13 May 2025 09:00:24 +0200
+
puppet-module-voxpupuli-corosync (6.0.1-3) unstable; urgency=medium
* Clean-up update-alternatives handling.
diff --git a/debian/patches/fix-compat-with-latest-puppetserver.patch b/debian/patches/fix-compat-with-latest-puppetserver.patch
new file mode 100644
index 0000000..c16e402
--- /dev/null
+++ b/debian/patches/fix-compat-with-latest-puppetserver.patch
@@ -0,0 +1,66 @@
+Description: Fix compat with latest puppetserver
+ Some facts and types have gone, let's use what currently still exists.
+Author: Thomas Goirand <zigo@debian.org>
+Forwarded: not-needed
+Last-Update: 2025-05-13
+
+--- puppet-module-voxpupuli-corosync-6.0.1.orig/manifests/init.pp
++++ puppet-module-voxpupuli-corosync-6.0.1/manifests/init.pp
+@@ -306,7 +306,7 @@ class corosync(
+ Optional[Integer] $threads = undef,
+ Integer[0,65535] $port = $corosync::params::port,
+ Corosync::IpStringIp $bind_address = $corosync::params::bind_address,
+- Optional[Stdlib::Compat::Ip_address] $multicast_address = undef,
++ Optional[Corosync::IpStringIp] $multicast_address = undef,
+ Optional[Array] $unicast_addresses = undef,
+ Boolean $force_online = $corosync::params::force_online,
+ Boolean $check_standby = $corosync::params::check_standby,
+@@ -495,7 +495,7 @@ class corosync(
+ require => $corosync_package_require,
+ }
+
+- case $::osfamily {
++ case $facts['os']['family'] {
+ 'Debian': {
+ augeas { 'enable corosync':
+ lens => 'Shellvars.lns',
+--- puppet-module-voxpupuli-corosync-6.0.1.orig/manifests/params.pp
++++ puppet-module-voxpupuli-corosync-6.0.1/manifests/params.pp
+@@ -3,7 +3,7 @@ class corosync::params {
+ $authkey_source = 'file'
+ $authkey = '/etc/puppet/ssl/certs/ca.pem'
+ $port = 5405
+- $bind_address = $::ipaddress
++ $bind_address = $facts['networking']['ip']
+ $force_online = false
+ $check_standby = false
+ $log_timestamp = false
+@@ -23,7 +23,7 @@ class corosync::params {
+ $enable_pacemaker_service = true
+ $enable_pcsd_service = true
+
+- case $::osfamily {
++ case $facts['os']['family'] {
+ 'RedHat': {
+ $package_crmsh = false
+ $package_pcs = true
+@@ -41,7 +41,7 @@ class corosync::params {
+ 'Debian': {
+ $package_crmsh = true
+ $package_pcs = false
+- case $::operatingsystem {
++ case $facts['os']['name'] {
+ 'Ubuntu': {
+ if versioncmp($::operatingsystemrelease, '14.04') >= 0 {
+ $set_votequorum = true
+--- puppet-module-voxpupuli-corosync-6.0.1.orig/types/ipstringip.pp
++++ puppet-module-voxpupuli-corosync-6.0.1/types/ipstringip.pp
+@@ -1,6 +1,6 @@
+ type Corosync::IpStringIp = Variant[
+- Stdlib::Compat::Ip_address,
++ Stdlib::IP::Address,
+ Array[
+- Stdlib::Compat::Ip_address
++ Stdlib::IP::Address
+ ]
+ ]
diff --git a/debian/patches/series b/debian/patches/series
index 004602c..72f20c8 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +1,4 @@
fix-install-of-package-in-stretch-and-up.patch
remove-jessie-specific-default.patch
add_enable_totem_interface_parameter.patch
+fix-compat-with-latest-puppetserver.patch
diff -Nru puppet-module-voxpupuli-elastic-stack-9.0.0/debian/changelog puppet-module-voxpupuli-elastic-stack-9.0.0/debian/changelog
--- puppet-module-voxpupuli-elastic-stack-9.0.0/debian/changelog 2025-02-26 15:49:08.000000000 +0100
+++ puppet-module-voxpupuli-elastic-stack-9.0.0/debian/changelog 2025-05-27 13:00:06.000000000 +0200
@@ -1,3 +1,9 @@
+puppet-module-voxpupuli-elastic-stack (9.0.0-4) unstable; urgency=medium
+
+ * Fix manifests/repo.pp so it doesn't use apt-key, gone from Trixie.
+
+ -- Thomas Goirand <zigo@debian.org> Tue, 27 May 2025 13:00:06 +0200
+
puppet-module-voxpupuli-elastic-stack (9.0.0-3) unstable; urgency=medium
* Fix typo in postrm script.
diff -Nru puppet-module-voxpupuli-elastic-stack-9.0.0/debian/patches/customizable-repo-key-url.patch puppet-module-voxpupuli-elastic-stack-9.0.0/debian/patches/customizable-repo-key-url.patch
--- puppet-module-voxpupuli-elastic-stack-9.0.0/debian/patches/customizable-repo-key-url.patch 2025-02-26 15:49:08.000000000 +0100
+++ puppet-module-voxpupuli-elastic-stack-9.0.0/debian/patches/customizable-repo-key-url.patch 2025-05-27 13:00:06.000000000 +0200
@@ -35,7 +35,7 @@
key => {
- 'id' => $key_id,
- 'source' => $key_source,
-+ 'id' => $repo_key_id_real,
++ 'name' => 'elastic.asc',
+ 'source' => $repo_key_url_real,
},
include => {
--- End Message ---