From sanvila at debian.org  Sat May  2 00:12:46 2026
From: sanvila at debian.org (Santiago Vila)
Date: Fri, 01 May 2026 23:12:46 +0000
Subject: [Pkg-mailman-hackers] Bug#1135408: hyperkitty: FTBFS: ERROR:
 setUpClass
 (hyperkitty.tests.migrations.test_0009.DuplicatePersonUsersTestCase)
Message-ID: <E1wIx2M-0005IT-1A@paradis.debian.org>

Package: src:hyperkitty
Version: 1.3.12-4
Severity: serious
Tags: ftbfs forky sid

Dear maintainer:

During a rebuild of all packages in unstable, this package failed to build.

Below you will find the last part of the build log (probably the most
relevant part, but not necessarily). If required, the full build log
is available here:

https://people.debian.org/~sanvila/build-logs/202605/

About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.

If you cannot reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and add an affects on src:hyperkitty, so that this is still
visible in the BTS web page for this package.

Thanks.

--------------------------------------------------------------------------------
[...]
 debian/rules clean
dh clean --with python3,sphinxdoc --buildsystem=pybuild
   dh_auto_clean -O--buildsystem=pybuild
   dh_autoreconf_clean -O--buildsystem=pybuild
   debian/rules override_dh_clean
make[1]: Entering directory '/<<PKGBUILDDIR>>'
dh_clean -X.txt.orig
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
 debian/rules binary
dh binary --with python3,sphinxdoc --buildsystem=pybuild
   dh_update_autotools_config -O--buildsystem=pybuild
   dh_autoreconf -O--buildsystem=pybuild
   dh_auto_configure -O--buildsystem=pybuild
   debian/rules override_dh_auto_build
make[1]: Entering directory '/<<PKGBUILDDIR>>'

[... snipped ...]

test_missing_auth (hyperkitty.tests.views.test_mailman.ArchiveTestCase.test_missing_auth) ... ok
test_old_auth (hyperkitty.tests.views.test_mailman.ArchiveTestCase.test_old_auth)
Sending key as a GET param tells you to upgrade ... ok
test_wrong_auth (hyperkitty.tests.views.test_mailman.ArchiveTestCase.test_wrong_auth) ... ok
test_get_url_default_domain (hyperkitty.tests.views.test_mailman.PrivateListTestCase.test_get_url_default_domain) ... ok
test_get_url_no_msgid (hyperkitty.tests.views.test_mailman.PrivateListTestCase.test_get_url_no_msgid) ... ok
test_get_url_with_domain (hyperkitty.tests.views.test_mailman.PrivateListTestCase.test_get_url_with_domain) ... ok
test_attachment (hyperkitty.tests.views.test_message.MessageViewsTestCase.test_attachment) ... ok
test_attachment_local_storage (hyperkitty.tests.views.test_message.MessageViewsTestCase.test_attachment_local_storage) ... ok
test_delete_all_messages_in_thread (hyperkitty.tests.views.test_message.MessageViewsTestCase.test_delete_all_messages_in_thread) ... ok
test_delete_duplicate_thread (hyperkitty.tests.views.test_message.MessageViewsTestCase.test_delete_duplicate_thread) ... ok
test_delete_forbidden (hyperkitty.tests.views.test_message.MessageViewsTestCase.test_delete_forbidden) ... ok
test_delete_single_in_thread (hyperkitty.tests.views.test_message.MessageViewsTestCase.test_delete_single_in_thread) ... ok
test_delete_single_message (hyperkitty.tests.views.test_message.MessageViewsTestCase.test_delete_single_message) ... ok
test_delete_single_message_by_owner (hyperkitty.tests.views.test_message.MessageViewsTestCase.test_delete_single_message_by_owner) ... ok
test_display_fixed (hyperkitty.tests.views.test_message.MessageViewsTestCase.test_display_fixed) ... ok
test_email_escaped_sender (hyperkitty.tests.views.test_message.MessageViewsTestCase.test_email_escaped_sender) ... ok
test_email_in_link_in_body (hyperkitty.tests.views.test_message.MessageViewsTestCase.test_email_in_link_in_body) ... ok
test_email_rendered_using_rendering_mode (hyperkitty.tests.views.test_message.MessageViewsTestCase.test_email_rendered_using_rendering_mode) ... ok
test_message_page (hyperkitty.tests.views.test_message.MessageViewsTestCase.test_message_page) ... ok
test_new_message_different_sender (hyperkitty.tests.views.test_message.MessageViewsTestCase.test_new_message_different_sender) ... ok
test_new_message_disabled_posting (hyperkitty.tests.views.test_message.MessageViewsTestCase.test_new_message_disabled_posting) ... ok
test_new_message_page (hyperkitty.tests.views.test_message.MessageViewsTestCase.test_new_message_page) ... ok
test_new_message_page_disabled_posting (hyperkitty.tests.views.test_message.MessageViewsTestCase.test_new_message_page_disabled_posting) ... ok
test_new_message_post (hyperkitty.tests.views.test_message.MessageViewsTestCase.test_new_message_post) ... ok
test_patch_in_message (hyperkitty.tests.views.test_message.MessageViewsTestCase.test_patch_in_message) ... ok
test_reply (hyperkitty.tests.views.test_message.MessageViewsTestCase.test_reply) ... ok
test_reply_different_sender (hyperkitty.tests.views.test_message.MessageViewsTestCase.test_reply_different_sender) ... ok
test_reply_newthread (hyperkitty.tests.views.test_message.MessageViewsTestCase.test_reply_newthread) ... ok
test_reply_when_posting_disabled (hyperkitty.tests.views.test_message.MessageViewsTestCase.test_reply_when_posting_disabled) ... ok
test_unauth_vote (hyperkitty.tests.views.test_message.MessageViewsTestCase.test_unauth_vote) ... ok
test_vote_cancel (hyperkitty.tests.views.test_message.MessageViewsTestCase.test_vote_cancel) ... ok
test_vote_down (hyperkitty.tests.views.test_message.MessageViewsTestCase.test_vote_down) ... ok
test_vote_up (hyperkitty.tests.views.test_message.MessageViewsTestCase.test_vote_up) ... ok
test_email_escaped_body (hyperkitty.tests.views.test_search.SearchViewsTestCase.test_email_escaped_body) ... ok
test_email_escaped_sender (hyperkitty.tests.views.test_search.SearchViewsTestCase.test_email_escaped_sender) ... ok
test_email_in_link_in_body (hyperkitty.tests.views.test_search.SearchViewsTestCase.test_email_in_link_in_body) ... ok
test_parse_error (hyperkitty.tests.views.test_search.SearchViewsTestCase.test_parse_error) ... ok
test_search (hyperkitty.tests.views.test_search.SearchViewsTestCase.test_search) ... ok
test_search_basic (hyperkitty.tests.views.test_search.SearchViewsTestCase.test_search_basic) ... ok
test_search_private_list (hyperkitty.tests.views.test_search.SearchViewsTestCase.test_search_private_list) ... ok
test_search_private_lists (hyperkitty.tests.views.test_search.SearchViewsTestCase.test_search_private_lists) ... ok
test_reattach (hyperkitty.tests.views.test_thread.ReattachTestCase.test_reattach) ... ok
test_reattach_by_owner (hyperkitty.tests.views.test_thread.ReattachTestCase.test_reattach_by_owner) ... ok
test_reattach_invalid (hyperkitty.tests.views.test_thread.ReattachTestCase.test_reattach_invalid) ... ok
test_reattach_manual (hyperkitty.tests.views.test_thread.ReattachTestCase.test_reattach_manual) ... ok
test_reattach_no_permission (hyperkitty.tests.views.test_thread.ReattachTestCase.test_reattach_no_permission) ... ok
test_reattach_on_itself (hyperkitty.tests.views.test_thread.ReattachTestCase.test_reattach_on_itself) ... ok
test_reattach_on_unknown (hyperkitty.tests.views.test_thread.ReattachTestCase.test_reattach_on_unknown) ... ok
test_suggestions (hyperkitty.tests.views.test_thread.ReattachTestCase.test_suggestions) ... ok
test_add_multiple_tags (hyperkitty.tests.views.test_thread.ThreadTestCase.test_add_multiple_tags) ... ok
test_add_tag (hyperkitty.tests.views.test_thread.ThreadTestCase.test_add_tag) ... ok
test_add_tag_stripped (hyperkitty.tests.views.test_thread.ThreadTestCase.test_add_tag_stripped) ... ok
test_add_tag_twice (hyperkitty.tests.views.test_thread.ThreadTestCase.test_add_tag_twice) ... ok
test_display_fixed (hyperkitty.tests.views.test_thread.ThreadTestCase.test_display_fixed) ... ok
test_download_button (hyperkitty.tests.views.test_thread.ThreadTestCase.test_download_button) ... ok
test_email_escaped_sender (hyperkitty.tests.views.test_thread.ThreadTestCase.test_email_escaped_sender) ... ok
test_email_in_link_in_body (hyperkitty.tests.views.test_thread.ThreadTestCase.test_email_in_link_in_body) ... ok
test_noscript (hyperkitty.tests.views.test_thread.ThreadTestCase.test_noscript) ... ok
test_num_comments (hyperkitty.tests.views.test_thread.ThreadTestCase.test_num_comments) ... ok
test_replies_have_reply_button (hyperkitty.tests.views.test_thread.ThreadTestCase.test_replies_have_reply_button) ... ok
test_replies_without_starting_email (hyperkitty.tests.views.test_thread.ThreadTestCase.test_replies_without_starting_email) ... ok
test_replies_without_thread_order_show_in_ui (hyperkitty.tests.views.test_thread.ThreadTestCase.test_replies_without_thread_order_show_in_ui) ... ok
test_reply_button (hyperkitty.tests.views.test_thread.ThreadTestCase.test_reply_button) ... ok
test_reply_button_when_disabled_posting (hyperkitty.tests.views.test_thread.ThreadTestCase.test_reply_button_when_disabled_posting) ... ok
test_same_tag_by_different_users (hyperkitty.tests.views.test_thread.ThreadTestCase.test_same_tag_by_different_users) ... ok
test_subject_changed (hyperkitty.tests.views.test_thread.ThreadTestCase.test_subject_changed) ... ok
test_suggest_tag (hyperkitty.tests.views.test_thread.ThreadTestCase.test_suggest_tag) ... ok
test_tag_removal_form (hyperkitty.tests.views.test_thread.ThreadTestCase.test_tag_removal_form) ... ok
setUpClass (hyperkitty.tests.migrations.test_0009.DuplicatePersonUsersTestCase) ... ERROR

======================================================================
ERROR: setUpClass (hyperkitty.tests.migrations.test_0009.DuplicatePersonUsersTestCase)
----------------------------------------------------------------------
TypeError: MigrationTestCase._pre_setup() missing 1 required positional argument: 'self'

----------------------------------------------------------------------
Ran 364 tests in 89.357s

FAILED (errors=1, skipped=4, expected failures=2)
Destroying test database for alias 'default' ('file:memorydb_default?mode=memory&cache=shared')...
 OK (0.009s)
Running post-migrate handlers for application hyperkitty
Adding content type 'hyperkitty | attachment'
Adding content type 'hyperkitty | email'
Adding content type 'hyperkitty | favorite'
Adding content type 'hyperkitty | lastview'
Adding content type 'hyperkitty | mailinglist'
Adding content type 'hyperkitty | profile'
Adding content type 'hyperkitty | sender'
Adding content type 'hyperkitty | tag'
Adding content type 'hyperkitty | tagging'
Adding content type 'hyperkitty | thread'
Adding content type 'hyperkitty | threadcategory'
Adding content type 'hyperkitty | vote'
Adding permission 'Permission object (1)'
Adding permission 'Permission object (2)'
Adding permission 'Permission object (3)'
Adding permission 'Permission object (4)'
Adding permission 'Permission object (5)'
Adding permission 'Permission object (6)'
Adding permission 'Permission object (7)'
Adding permission 'Permission object (8)'
Adding permission 'Permission object (9)'
Adding permission 'Permission object (10)'
Adding permission 'Permission object (11)'
Adding permission 'Permission object (12)'
Adding permission 'Permission object (13)'
Adding permission 'Permission object (14)'
Adding permission 'Permission object (15)'
Adding permission 'Permission object (16)'
Adding permission 'Permission object (17)'
Adding permission 'Permission object (18)'
Adding permission 'Permission object (19)'
Adding permission 'Permission object (20)'
Adding permission 'Permission object (21)'
Adding permission 'Permission object (22)'
Adding permission 'Permission object (23)'
Adding permission 'Permission object (24)'
Adding permission 'Permission object (25)'
Adding permission 'Permission object (26)'
Adding permission 'Permission object (27)'
Adding permission 'Permission object (28)'
Adding permission 'Permission object (29)'
Adding permission 'Permission object (30)'
Adding permission 'Permission object (31)'
Adding permission 'Permission object (32)'
Adding permission 'Permission object (33)'
Adding permission 'Permission object (34)'
Adding permission 'Permission object (35)'
Adding permission 'Permission object (36)'
Adding permission 'Permission object (37)'
Adding permission 'Permission object (38)'
Adding permission 'Permission object (39)'
Adding permission 'Permission object (40)'
Adding permission 'Permission object (41)'
Adding permission 'Permission object (42)'
Adding permission 'Permission object (43)'
Adding permission 'Permission object (44)'
Adding permission 'Permission object (45)'
Adding permission 'Permission object (46)'
Adding permission 'Permission object (47)'
Adding permission 'Permission object (48)'
Running post-migrate handlers for application django_mailman3
Adding content type 'django_mailman3 | profile'
Adding content type 'django_mailman3 | maildomain'
Adding permission 'Permission object (49)'
Adding permission 'Permission object (50)'
Adding permission 'Permission object (51)'
Adding permission 'Permission object (52)'
Adding permission 'Permission object (53)'
Adding permission 'Permission object (54)'
Adding permission 'Permission object (55)'
Adding permission 'Permission object (56)'
Running post-migrate handlers for application admin
Adding content type 'admin | logentry'
Adding permission 'Permission object (57)'
Adding permission 'Permission object (58)'
Adding permission 'Permission object (59)'
Adding permission 'Permission object (60)'
Running post-migrate handlers for application auth
Adding content type 'auth | permission'
Adding content type 'auth | group'
Adding content type 'auth | user'
Adding permission 'Permission object (61)'
Adding permission 'Permission object (62)'
Adding permission 'Permission object (63)'
Adding permission 'Permission object (64)'
Adding permission 'Permission object (65)'
Adding permission 'Permission object (66)'
Adding permission 'Permission object (67)'
Adding permission 'Permission object (68)'
Adding permission 'Permission object (69)'
Adding permission 'Permission object (70)'
Adding permission 'Permission object (71)'
Adding permission 'Permission object (72)'
Running post-migrate handlers for application contenttypes
Adding content type 'contenttypes | contenttype'
Adding permission 'Permission object (73)'
Adding permission 'Permission object (74)'
Adding permission 'Permission object (75)'
Adding permission 'Permission object (76)'
Running post-migrate handlers for application sessions
Adding content type 'sessions | session'
Adding permission 'Permission object (77)'
Adding permission 'Permission object (78)'
Adding permission 'Permission object (79)'
Adding permission 'Permission object (80)'
Running post-migrate handlers for application sites
Adding content type 'sites | site'
Adding permission 'Permission object (81)'
Adding permission 'Permission object (82)'
Adding permission 'Permission object (83)'
Adding permission 'Permission object (84)'
Creating example.com Site object
Running post-migrate handlers for application django_gravatar
Running post-migrate handlers for application compressor
Running post-migrate handlers for application haystack
Running post-migrate handlers for application django_extensions
Running post-migrate handlers for application django_q
Adding content type 'django_q | schedule'
Adding content type 'django_q | task'
Adding content type 'django_q | failure'
Adding content type 'django_q | success'
Adding content type 'django_q | ormq'
Adding permission 'Permission object (85)'
Adding permission 'Permission object (86)'
Adding permission 'Permission object (87)'
Adding permission 'Permission object (88)'
Adding permission 'Permission object (89)'
Adding permission 'Permission object (90)'
Adding permission 'Permission object (91)'
Adding permission 'Permission object (92)'
Adding permission 'Permission object (93)'
Adding permission 'Permission object (94)'
Adding permission 'Permission object (95)'
Adding permission 'Permission object (96)'
Adding permission 'Permission object (97)'
Adding permission 'Permission object (98)'
Adding permission 'Permission object (99)'
Adding permission 'Permission object (100)'
Adding permission 'Permission object (101)'
Adding permission 'Permission object (102)'
Adding permission 'Permission object (103)'
Adding permission 'Permission object (104)'
Running post-migrate handlers for application allauth
Running post-migrate handlers for application account
Adding content type 'account | emailaddress'
Adding content type 'account | emailconfirmation'
Adding permission 'Permission object (105)'
Adding permission 'Permission object (106)'
Adding permission 'Permission object (107)'
Adding permission 'Permission object (108)'
Adding permission 'Permission object (109)'
Adding permission 'Permission object (110)'
Adding permission 'Permission object (111)'
Adding permission 'Permission object (112)'
Running post-migrate handlers for application socialaccount
Adding content type 'socialaccount | socialaccount'
Adding content type 'socialaccount | socialapp'
Adding content type 'socialaccount | socialtoken'
Adding permission 'Permission object (113)'
Adding permission 'Permission object (114)'
Adding permission 'Permission object (115)'
Adding permission 'Permission object (116)'
Adding permission 'Permission object (117)'
Adding permission 'Permission object (118)'
Adding permission 'Permission object (119)'
Adding permission 'Permission object (120)'
Adding permission 'Permission object (121)'
Adding permission 'Permission object (122)'
Adding permission 'Permission object (123)'
Adding permission 'Permission object (124)'
Running post-migrate handlers for application openid
Adding content type 'openid | openidnonce'
Adding content type 'openid | openidstore'
Adding permission 'Permission object (125)'
Adding permission 'Permission object (126)'
Adding permission 'Permission object (127)'
Adding permission 'Permission object (128)'
Adding permission 'Permission object (129)'
Adding permission 'Permission object (130)'
Adding permission 'Permission object (131)'
Adding permission 'Permission object (132)'
2 attachments moved.
<p>This is the replied text.</p>
<p>Sent from my Galaxy</p>
<div class="quoted-switch"><a href="#">...</a></div><blockquote class="blockquote quoted-text"><p>-------- Original message --------
From: A person <person(a)example.com>
Date: 6/26/23 16:23 (GMT-05:00)
To: mytestlist at example.com
Subject: Testing if the quoted reply works with Outlook style.
This is the original text <em>*with*</em> some <strong>__markup__</strong>.</p>
</blockquote>
make[1]: *** [debian/rules:15: override_dh_auto_test] Error 1
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
make: *** [debian/rules:8: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2
--------------------------------------------------------------------------------


