Your message dated Sat, 06 Sep 2025 12:14:57 +0100
with message-id 
<165032e5317517556dd7fd8cf24843112a3fb6ac.ca...@adam-barratt.org.uk>
and subject line Closing p-u requests for fixes included in 13.1
has caused the Debian Bug report #1110855,
regarding trixie-pu: package rabbitmq-server/4.0.5-6
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
1110855: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1110855
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
Tags: trixie
X-Debbugs-Cc: [email protected]
Control: affects -1 + src:rabbitmq-server
User: [email protected]
Usertags: pu

Hi,

[ Reason ]
I'd like to upgrade rabbitmq-server to 4.0.5-6+deb13u1 to add
the patch included in this BTS entry:
https://bugs.debian.org/1110519

which fixes rabbitmq-server version reporting.
[ Impact ]
Without this patch, rabbitmqctl version reports 0.0.0, as well
as for all plugins listed with "rabbitmq-plugins list".

[ Tests ]
Manually tested it worked.

[ Risks ]
No much risk, it does work now...

[ Checklist ]
  [x] *all* changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in (old)stable
  [x] the issue is verified as fixed in unstable

[ Changes ]
The debdiff also contains new autopkgtest, which were added to
Sid earlier. That's not really relevant, though I think it is a good
thing to add to the Stable release. If you need only the diff to the
change I need to add, it's there:

https://bugs.debian.org/cgi-bin/bugreport.cgi?att=1;bug=1110519;filename=0001-Fix-plugin-versions-by-exporting-PROJECT_VERSION.patch;msg=5

Please allow me to upload rabbitmq-server 4.0.5-6+deb13u1 to p-u.

Cheers,

Thomas Goirand (zigo)
diff -Nru rabbitmq-server-4.0.5/debian/changelog 
rabbitmq-server-4.0.5/debian/changelog
--- rabbitmq-server-4.0.5/debian/changelog      2025-06-26 10:36:03.000000000 
+0200
+++ rabbitmq-server-4.0.5/debian/changelog      2025-08-11 14:31:10.000000000 
+0200
@@ -1,3 +1,14 @@
+rabbitmq-server (4.0.5-6+deb13u1) trixie; urgency=medium
+
+  * Fix rabbitmq-server broken plugin versions by applying patch from the BTS.
+    Thanks to Stefan Bühler <[email protected]> for it
+    (Closes: #1110519).
+
+  [ Andreas Hasenack ]
+  * Add many autopkgtest.
+
+ -- Thomas Goirand <[email protected]>  Mon, 11 Aug 2025 14:31:10 +0200
+
 rabbitmq-server (4.0.5-6) unstable; urgency=medium
 
   * Add elixir-1.18-compat.patch to fix json output of rabbitmctl
diff -Nru rabbitmq-server-4.0.5/debian/rules rabbitmq-server-4.0.5/debian/rules
--- rabbitmq-server-4.0.5/debian/rules  2025-06-26 10:36:03.000000000 +0200
+++ rabbitmq-server-4.0.5/debian/rules  2025-08-11 14:31:10.000000000 +0200
@@ -2,7 +2,7 @@
 # -*- makefile -*-
 
 DEB_DESTDIR=debian/rabbitmq-server
-VERSION = $(shell dpkg-parsechangelog -SVersion | sed -e 's/^[[:digit:]]*://' 
-e 's/[-].*//' -e 's/~/.0/' -e 's/+dfsg1//' | head -n 1)
+export PROJECT_VERSION=$(shell dpkg-parsechangelog -SVersion | sed -e 
's/^[[:digit:]]*://' -e 's/[-].*//' -e 's/~/.0/' -e 's/+dfsg1//' | head -n 1)
 
 export LC_ALL=en_US.UTF-8
 export LANG=en_US.UTF-8
@@ -24,7 +24,7 @@
 
 override_dh_auto_install: PREFIX = /usr
 override_dh_auto_install: RMQ_ROOTDIR = $(PREFIX)/lib/rabbitmq
-override_dh_auto_install: RMQ_ERLAPP_DIR = 
$(RMQ_ROOTDIR)/lib/rabbitmq_server-$(VERSION)
+override_dh_auto_install: RMQ_ERLAPP_DIR = 
$(RMQ_ROOTDIR)/lib/rabbitmq_server-$(PROJECT_VERSION)
 override_dh_auto_install:
        dh_auto_install
        #dh_auto_install -- DESTDIR=$(DEB_DESTDIR) PREFIX=/usr 
MAN_DIR=$(DEB_DESTDIR)/usr/share/man
@@ -59,7 +59,7 @@
 
 override_dh_install:
        dh_install
-       sed -i s/%%VSN%%/$(VERSION)/ 
$(CURDIR)/debian/rabbitmq-server/usr/bin/rabbitmqadmin
+       sed -i s/%%VSN%%/$(PROJECT_VERSION)/ 
$(CURDIR)/debian/rabbitmq-server/usr/bin/rabbitmqadmin
 
 override_dh_auto_clean:
        rm -f plugins-src/rabbitmq-server plugins/README
diff -Nru rabbitmq-server-4.0.5/debian/salsa-ci.yml 
rabbitmq-server-4.0.5/debian/salsa-ci.yml
--- rabbitmq-server-4.0.5/debian/salsa-ci.yml   1970-01-01 01:00:00.000000000 
+0100
+++ rabbitmq-server-4.0.5/debian/salsa-ci.yml   2025-08-11 14:31:10.000000000 
+0200
@@ -0,0 +1,3 @@
+---
+include:
+  - 
https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/recipes/debian.yml
diff -Nru rabbitmq-server-4.0.5/debian/tests/control 
rabbitmq-server-4.0.5/debian/tests/control
--- rabbitmq-server-4.0.5/debian/tests/control  2025-06-26 10:36:03.000000000 
+0200
+++ rabbitmq-server-4.0.5/debian/tests/control  2025-08-11 14:31:10.000000000 
+0200
@@ -1,2 +1,22 @@
 Tests: smoke-test
 Restrictions: superficial, isolation-container
+
+Tests: hello-world
+Restrictions: isolation-container, needs-root, allow-stderr
+Depends: rabbitmq-server,
+         python3-pika
+
+Tests: work-queue
+Restrictions: isolation-container, needs-root, allow-stderr
+Depends: rabbitmq-server,
+         python3-pika
+
+Tests: publish-subscribe
+Restrictions: isolation-container, needs-root, allow-stderr
+Depends: rabbitmq-server,
+         python3-pika
+
+Tests: rpc
+Restrictions: isolation-container, needs-root, allow-stderr
+Depends: rabbitmq-server,
+         python3-pika
diff -Nru rabbitmq-server-4.0.5/debian/tests/hello-world 
rabbitmq-server-4.0.5/debian/tests/hello-world
--- rabbitmq-server-4.0.5/debian/tests/hello-world      1970-01-01 
01:00:00.000000000 +0100
+++ rabbitmq-server-4.0.5/debian/tests/hello-world      2025-08-11 
14:31:10.000000000 +0200
@@ -0,0 +1,99 @@
+#!/bin/sh
+
+# Reset rabbitmq
+rabbitmqctl stop_app
+rabbitmqctl reset
+rabbitmqctl start_app
+
+cat <<EOF >send.py
+#!/usr/bin/env python3
+import pika
+
+connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
+channel = connection.channel()
+
+channel.queue_declare(queue='hello')
+
+channel.basic_publish(exchange='',
+                      routing_key='hello',
+                      body='Hello World!')
+print(" [x] Sent 'Hello World!'")
+EOF
+
+cat <<EOF >receive.py
+#!/usr/bin/env python3
+import pika, sys, os
+
+def main():
+    connection = 
pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
+    channel = connection.channel()
+
+    channel.queue_declare(queue='hello')
+
+    def callback(ch, method, properties, body):
+        print(f" [x] Received {body}")
+
+    channel.basic_consume(queue='hello', on_message_callback=callback, 
auto_ack=True)
+
+    print(' [*] Waiting for messages. To exit press CTRL+C')
+    channel.start_consuming()
+
+if __name__ == '__main__':
+    try:
+        main()
+    except KeyboardInterrupt:
+        print('Interrupted')
+        try:
+            sys.exit(0)
+        except SystemExit:
+            os._exit(0)
+EOF
+
+echo "sending the message now"
+python3 send.py
+
+# `rabbitmqctl list_queues` should look like
+# Timeout: 60.0 seconds ...
+# Listing queues for vhost / ...
+# name messages
+# hello        1
+#
+# Check that the hello queue exists and that there is 1 message
+rabbitmqctl list_queues # print for debugging
+if rabbitmqctl list_queues | grep hello | awk '{print $2}' | grep -q "^1$"; 
then
+    echo "The 'hello' queue exists with a single message."
+else
+    if [ $? -eq 1 ]; then
+        echo "Error: 'hello' queue not found."
+        exit 1
+    else
+        echo "Error: An unknown error occurred."
+        exit 1
+    fi
+fi
+
+# should see
+# [*] Waiting for messages. To exit press CTRL+C
+# [x] Received b'Hello World!'
+timeout 3s python3 receive.py
+
+# now the hello queue should still exist, but have no messages like so:
+# # rabbitmqctl list_queues
+# Timeout: 60.0 seconds ...
+# Listing queues for vhost / ...
+# name messages
+# hello        0
+#
+# Check that the hello queue exists and that there is no message
+rabbitmqctl list_queues # print for debugging
+if rabbitmqctl list_queues | grep hello | awk '{print $2}' | grep -q "^0$"; 
then
+    echo "The 'hello' queue exists with no messages."
+else
+    if [ $? -eq 1 ]; then
+        echo "Error: 'hello' queue not found."
+        exit 1
+    else
+        echo "Error: An unknown error occurred."
+        exit 1
+    fi
+fi
diff -Nru rabbitmq-server-4.0.5/debian/tests/publish-subscribe 
rabbitmq-server-4.0.5/debian/tests/publish-subscribe
--- rabbitmq-server-4.0.5/debian/tests/publish-subscribe        1970-01-01 
01:00:00.000000000 +0100
+++ rabbitmq-server-4.0.5/debian/tests/publish-subscribe        2025-08-11 
14:31:10.000000000 +0200
@@ -0,0 +1,52 @@
+#!/bin/sh
+
+set -e
+
+# Reset rabbitmq
+rabbitmqctl stop_app
+rabbitmqctl reset
+rabbitmqctl start_app
+
+cat << EOF > receive_logs.py
+#!/usr/bin/env python3
+import pika
+
+connection = pika.BlockingConnection(
+    pika.ConnectionParameters(host='localhost'))
+channel = connection.channel()
+
+channel.exchange_declare(exchange='logs', exchange_type='fanout')
+
+result = channel.queue_declare(queue='', exclusive=True)
+queue_name = result.method.queue
+
+channel.queue_bind(exchange='logs', queue=queue_name)
+
+print(' [*] Waiting for logs. To exit press CTRL+C')
+
+def callback(ch, method, properties, body):
+    print(f" [x] {body}")
+
+channel.basic_consume(
+    queue=queue_name, on_message_callback=callback, auto_ack=True)
+
+channel.start_consuming()
+EOF
+
+# create 2 consumers
+python3 receive_logs.py &
+python3 receive_logs.py &
+
+# the consumers are listed in the bindings.
+# # rabbitmqctl list_bindings | grep logs
+# logs exchange        amq.gen-9cej1xIy-VQLf6d3UXvU1w  queue   
amq.gen-9cej1xIy-VQLf6d3UXvU1w  []
+# logs exchange        amq.gen-H-ky4z3jFxa5UxpigJAD0g  queue   
amq.gen-H-ky4z3jFxa5UxpigJAD0g  []
+rabbitmqctl list_bindings # print for debug
+# Check that JSON formatter works as well
+rabbitmqctl list_bindings --formatter json
+if [ $(rabbitmqctl list_bindings | grep "logs" | awk '{print $1}' | wc -l) -eq 
2 ]; then
+    echo "The number of consumers is 2."
+else
+    echo "The number of consumers is not 2."
+    exit 1
+fi
diff -Nru rabbitmq-server-4.0.5/debian/tests/rpc 
rabbitmq-server-4.0.5/debian/tests/rpc
--- rabbitmq-server-4.0.5/debian/tests/rpc      1970-01-01 01:00:00.000000000 
+0100
+++ rabbitmq-server-4.0.5/debian/tests/rpc      2025-08-11 14:31:10.000000000 
+0200
@@ -0,0 +1,119 @@
+#!/bin/sh
+
+# Reset rabbitmq
+rabbitmqctl stop_app
+rabbitmqctl reset
+rabbitmqctl start_app
+
+cat << EOF > rpc_server.py
+#!/usr/bin/env python
+import pika
+
+connection = pika.BlockingConnection(
+    pika.ConnectionParameters(host='localhost'))
+
+channel = connection.channel()
+
+channel.queue_declare(queue='rpc_queue')
+
+def fib(n):
+    if n == 0:
+        return 0
+    elif n == 1:
+        return 1
+    else:
+        return fib(n - 1) + fib(n - 2)
+
+def on_request(ch, method, props, body):
+    n = int(body)
+
+    print(f" [.] fib({n})")
+    response = fib(n)
+
+    ch.basic_publish(exchange='',
+                     routing_key=props.reply_to,
+                     properties=pika.BasicProperties(correlation_id = \
+                                                         props.correlation_id),
+                     body=str(response))
+    ch.basic_ack(delivery_tag=method.delivery_tag)
+
+channel.basic_qos(prefetch_count=1)
+channel.basic_consume(queue='rpc_queue', on_message_callback=on_request)
+
+print(" [x] Awaiting RPC requests")
+channel.start_consuming()
+EOF
+
+cat << EOF > rpc_client.py
+#!/usr/bin/env python3
+import pika
+import uuid
+
+
+class FibonacciRpcClient(object):
+
+    def __init__(self):
+        self.connection = pika.BlockingConnection(
+            pika.ConnectionParameters(host='localhost'))
+
+        self.channel = self.connection.channel()
+
+        result = self.channel.queue_declare(queue='', exclusive=True)
+        self.callback_queue = result.method.queue
+
+        self.channel.basic_consume(
+            queue=self.callback_queue,
+            on_message_callback=self.on_response,
+            auto_ack=True)
+
+        self.response = None
+        self.corr_id = None
+
+    def on_response(self, ch, method, props, body):
+        if self.corr_id == props.correlation_id:
+            self.response = body
+
+    def call(self, n):
+        self.response = None
+        self.corr_id = str(uuid.uuid4())
+        self.channel.basic_publish(
+            exchange='',
+            routing_key='rpc_queue',
+            properties=pika.BasicProperties(
+                reply_to=self.callback_queue,
+                correlation_id=self.corr_id,
+            ),
+            body=str(n))
+        while self.response is None:
+            self.connection.process_data_events(time_limit=None)
+        return int(self.response)
+
+
+fibonacci_rpc = FibonacciRpcClient()
+
+print(" [x] Requesting fib(30)")
+response = fibonacci_rpc.call(30)
+print(f" [.] Got {response}")
+EOF
+
+# Start the RPC server
+python3 rpc_server.py  &
+
+# Give the server some time to start
+sleep 2
+
+# Run a client to initiate a job for the fibonacci sequence
+client_result=$(python3 rpc_client.py)
+
+# $client_results should look like:
+#  [x] Requesting fib(30)
+#  [.] fib(30)
+#  [.] Got 832040
+
+echo $client_result
+if echo $client_result | grep -q "Got 832040"; then
+       echo "client ran succesffuly"
+else
+       echo "ERROR, something went wrong."
+       exit 1
+fi
diff -Nru rabbitmq-server-4.0.5/debian/tests/smoke-test 
rabbitmq-server-4.0.5/debian/tests/smoke-test
--- rabbitmq-server-4.0.5/debian/tests/smoke-test       2025-06-26 
10:36:03.000000000 +0200
+++ rabbitmq-server-4.0.5/debian/tests/smoke-test       2025-08-11 
14:31:10.000000000 +0200
@@ -1,7 +1,3 @@
 #!/bin/sh
 
-exec 2>&1
-
-set -exu
-
 systemctl is-active rabbitmq-server.service
diff -Nru rabbitmq-server-4.0.5/debian/tests/work-queue 
rabbitmq-server-4.0.5/debian/tests/work-queue
--- rabbitmq-server-4.0.5/debian/tests/work-queue       1970-01-01 
01:00:00.000000000 +0100
+++ rabbitmq-server-4.0.5/debian/tests/work-queue       2025-08-11 
14:31:10.000000000 +0200
@@ -0,0 +1,117 @@
+#!/bin/sh
+
+# Reset rabbitmq
+rabbitmqctl stop_app
+rabbitmqctl reset
+rabbitmqctl start_app
+
+cat << EOF > new_task.py
+#!/usr/bin/env python3
+import pika
+import sys
+
+connection = pika.BlockingConnection(
+    pika.ConnectionParameters(host='localhost'))
+channel = connection.channel()
+
+channel.queue_declare(queue='task_queue', durable=True)
+
+message = ' '.join(sys.argv[1:]) or "Hello World!"
+channel.basic_publish(
+    exchange='',
+    routing_key='task_queue',
+    body=message,
+    properties=pika.BasicProperties(delivery_mode=2)  # Set delivery mode to 
persistent (2)
+    )
+print(f" [x] Sent {message}")
+connection.close()
+EOF
+
+cat << EOF > worker.py
+#!/usr/bin/env python3
+import pika
+import time
+
+connection = pika.BlockingConnection(
+    pika.ConnectionParameters(host='localhost'))
+channel = connection.channel()
+
+channel.queue_declare(queue='task_queue', durable=True)
+print(' [*] Waiting for messages. To exit press CTRL+C')
+
+
+def callback(ch, method, properties, body):
+    print(f" [x] Received {body.decode()}")
+    time.sleep(body.count(b'.'))
+    print(" [x] Done")
+    ch.basic_ack(delivery_tag=method.delivery_tag)
+
+
+channel.basic_qos(prefetch_count=1)
+channel.basic_consume(queue='task_queue', on_message_callback=callback)
+
+channel.start_consuming()
+EOF
+
+
+# Create 5 queues messages
+python3 new_task.py First message.
+python3 new_task.py Second message..
+python3 new_task.py Third message...
+python3 new_task.py Fourth message....
+python3 new_task.py Fifth message.....
+
+# check the queued messages, we shoudl have 5 such as:
+# # rabbitmqctl list_queues name messages_ready messages_unacknowledged
+# Timeout: 60.0 seconds ...
+# Listing queues for vhost / ...
+# name messages_ready  messages_unacknowledged
+# hello        0       0
+# task_queue   5       0
+#
+# Check that the task queue exists and that there is 5 messages
+echo "Expected:"
+echo "task_queue 5 0"
+echo "Actual:"
+tqueue=$(rabbitmqctl list_queues name messages_ready messages_unacknowledged | 
grep task_queue)
+echo $tqueue
+if echo $tqueue | awk '{print $2}' | grep -q "^5$"; then
+    echo "The 'task_queue' queue exists with 5 message."
+else
+    echo "Error: error checking the task_queue"
+    exit 1
+fi
+
+# Now create 2 workers
+python3 worker.py &
+python3 worker.py &
+
+# let the workers do their job
+sleep 13
+
+# Now there should be no messages_ready and no messages_unacknowledged such as:
+# # rabbitmqctl list_queues name messages_ready messages_unacknowledged
+# Timeout: 60.0 seconds ...
+# Listing queues for vhost / ...
+# name messages_ready  messages_unacknowledged
+# hello        0       0
+# task_queue   0       0
+echo "Expected:"
+echo "task_queue 0 0"
+echo "Actual:"
+tqueue=$(rabbitmqctl list_queues name messages_ready messages_unacknowledged | 
grep task_queue)
+echo $tqueue
+if echo $tqueue | grep task_queue | awk '{print $2}' | grep -q "^0"; then
+    echo "The 'task_queue' queue exists with 0 messages_ready."
+else
+    echo "Error: checking the task_queue messages_ready"
+    exit 1
+fi
+
+if echo $tqueue | awk '{print $3}' | grep -q "^0"; then
+    echo "The 'task_queue' queue exists with 0 messages_unacknowledged."
+else
+    echo "Error: checking the task_queue messages_unacknowledged"
+    exit 1
+fi
+

--- End Message ---
--- Begin Message ---
Package: release.debian.org
Version: 13.1

Hi,

Each of the updates referenced by these requests was included in
today's 13.1 point release for trixie.

Regards,

Adam

--- End Message ---

Reply via email to