Package: src:openlp
Version: 3.1.7+ds-1
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/202608/

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:openlp, so that this is still
visible in the BTS web page for this package.

Thanks.

--------------------------------------------------------------------------------
[...]
 debian/rules clean
dh clean --with python3 --buildsystem=pybuild
   dh_auto_clean -O--buildsystem=pybuild
I: pybuild base:385: python3.14 setup.py clean 
/usr/lib/python3/dist-packages/setuptools/__init__.py:94: _DeprecatedInstaller: 
setuptools.installer and fetch_build_eggs are deprecated.
!!

        
********************************************************************************
        Requirements should be satisfied by a PEP 517 installer.
        If you are using pip, you can try `pip install --use-pep517`.
        
********************************************************************************

!!
  dist.fetch_build_eggs(dist.setup_requires)
/usr/lib/python3/dist-packages/setuptools/dist.py:759: 
SetuptoolsDeprecationWarning: License classifiers are deprecated.

[... snipped ...]

tests/openlp_core/ui/test_mainwindow.py ................................ [ 51%]
..............                                                           [ 51%]
tests/openlp_core/ui/test_serviceitemeditform.py ...............         [ 52%]
tests/openlp_core/ui/test_servicemanager.py ............................ [ 53%]
................................................................         [ 56%]
tests/openlp_core/ui/test_servicenotedialog.py .                         [ 56%]
tests/openlp_core/ui/test_servicetab.py .                                [ 56%]
tests/openlp_core/ui/test_settings_form.py ....                          [ 56%]
tests/openlp_core/ui/test_settingsform.py .......                        [ 56%]
tests/openlp_core/ui/test_shortcutlistdialog.py ..                       [ 56%]
tests/openlp_core/ui/test_shortcutlistform.py ..........                 [ 57%]
tests/openlp_core/ui/test_slidecontroller.py ........................... [ 58%]
....................................................                     [ 60%]
tests/openlp_core/ui/test_splashscreen.py .                              [ 60%]
tests/openlp_core/ui/test_starttimedialog.py ..                          [ 60%]
tests/openlp_core/ui/test_style.py .....................                 [ 61%]
tests/openlp_core/ui/test_themeform.py ........................sssss.    [ 62%]
tests/openlp_core/ui/test_thememanager.py ......................         [ 63%]
tests/openlp_core/ui/test_themeprogressform.py ......                    [ 63%]
tests/openlp_core/ui/test_themetab.py ..                                 [ 63%]
tests/openlp_core/widgets/test_buttons.py .......                        [ 63%]
tests/openlp_core/widgets/test_dialogs.py .............                  [ 64%]
tests/openlp_core/widgets/test_edits.py .......................          [ 65%]
tests/openlp_core/widgets/test_toolbar.py ............                   [ 65%]
tests/openlp_core/widgets/test_views.py ..........................       [ 66%]
tests/openlp_core/widgets/test_widgets.py ...........................    [ 67%]
tests/openlp_plugins/alerts/forms/test_alertform.py .                    [ 67%]
tests/openlp_plugins/alerts/test_manager.py ...                          [ 68%]
tests/openlp_plugins/alerts/test_plugin.py .....                         [ 68%]
tests/openlp_plugins/bibles/forms/test_bibleimportform.py sss            [ 68%]
tests/openlp_plugins/bibles/forms/test_editbibleform.py .                [ 68%]
tests/openlp_plugins/bibles/test_bibleimport.py ........................ [ 69%]
......                                                                   [ 69%]
tests/openlp_plugins/bibles/test_bibleserver.py sss                      [ 69%]
tests/openlp_plugins/bibles/test_biblestab.py ..                         [ 69%]
tests/openlp_plugins/bibles/test_csvimport.py .................          [ 70%]
tests/openlp_plugins/bibles/test_lib.py ........                         [ 70%]
tests/openlp_plugins/bibles/test_lib_manager.py ....                     [ 70%]
tests/openlp_plugins/bibles/test_lib_parse_reference.py ............     [ 71%]
tests/openlp_plugins/bibles/test_manager.py .                            [ 71%]
tests/openlp_plugins/bibles/test_mediaitem.py .......................... [ 72%]
..............................................................           [ 74%]
tests/openlp_plugins/bibles/test_opensongimport.py ....................  [ 75%]
tests/openlp_plugins/bibles/test_osisimport.py .....................     [ 76%]
tests/openlp_plugins/bibles/test_plugin.py .                             [ 76%]
tests/openlp_plugins/bibles/test_swordimport.py ..                       [ 76%]
tests/openlp_plugins/bibles/test_upgrade.py .xxxx                        [ 76%]
tests/openlp_plugins/bibles/test_versereferencelist.py .....             [ 77%]
tests/openlp_plugins/bibles/test_wordprojectimport.py ............       [ 77%]
tests/openlp_plugins/bibles/test_zefaniaimport.py ...                    [ 77%]
tests/openlp_plugins/custom/forms/test_customform.py .......             [ 77%]
tests/openlp_plugins/custom/forms/test_customslideform.py ..             [ 78%]
tests/openlp_plugins/custom/test_customxml.py ...                        [ 78%]
tests/openlp_plugins/custom/test_mediaitem.py ...                        [ 78%]
tests/openlp_plugins/custom/test_plugin.py .                             [ 78%]
tests/openlp_plugins/images/forms/test_choosegroupform.py ....           [ 78%]
tests/openlp_plugins/images/test_imagetab.py ...                         [ 78%]
tests/openlp_plugins/images/test_mediaitem.py ..............             [ 79%]
tests/openlp_plugins/images/test_plugin.py .                             [ 79%]
tests/openlp_plugins/images/test_upgrade.py .                            [ 79%]
tests/openlp_plugins/media/forms/test_mediaclipselectorform.py ....      [ 79%]
tests/openlp_plugins/media/forms/test_streamselectorform.py ........     [ 79%]
tests/openlp_plugins/media/test_mediaitem.py .......                     [ 80%]
tests/openlp_plugins/media/test_mediaplugin.py ..                        [ 80%]
tests/openlp_plugins/media/test_plugin.py .                              [ 80%]
tests/openlp_plugins/planningcenter/forms/test_selectplanform.py ....... [ 80%]
.....s                                                                   [ 80%]
tests/openlp_plugins/planningcenter/lib/test_planningcenter_api.py ..... [ 80%]
.                                                                        [ 80%]
tests/openlp_plugins/planningcenter/lib/test_planningcentertab.py ....   [ 81%]
tests/openlp_plugins/planningcenter/lib/test_songimport.py ......        [ 81%]
tests/openlp_plugins/planningcenter/test_planningcenterplugin.py ....... [ 81%]
                                                                         [ 81%]
tests/openlp_plugins/presentations/lib/test_serializers.py sss           [ 81%]
tests/openlp_plugins/presentations/test_impresscontroller.py ..........  [ 82%]
tests/openlp_plugins/presentations/test_libreofficeserver.py sssssssssss [ 82%]
sssssssssssssssssssssssssssss                                            [ 83%]
tests/openlp_plugins/presentations/test_maclocontroller.py sssssssssssss [ 84%]
sssssssssssss                                                            [ 84%]
tests/openlp_plugins/presentations/test_mediaitem.py .........           [ 85%]
tests/openlp_plugins/presentations/test_messagelistener.py ....          [ 85%]
tests/openlp_plugins/presentations/test_pdfcontroller.py .s              [ 85%]
tests/openlp_plugins/presentations/test_plugin.py ...                    [ 85%]
tests/openlp_plugins/presentations/test_powerpointcontroller.py ........ [ 85%]
...                                                                      [ 85%]
tests/openlp_plugins/presentations/test_presentationcontroller.py ...... [ 86%]
......                                                                   [ 86%]
tests/openlp_plugins/presentations/test_presentationtab.py ..            [ 86%]
tests/openlp_plugins/songs/forms/test_authorsform.py .................   [ 87%]
tests/openlp_plugins/songs/forms/test_editsongform.py .......            [ 87%]
tests/openlp_plugins/songs/forms/test_editverseform.py ................. [ 88%]
...........                                                              [ 88%]
tests/openlp_plugins/songs/forms/test_songmaintenanceform.py ........... [ 88%]
.........                                                                [ 89%]
tests/openlp_plugins/songs/forms/test_topicsform.py ...                  [ 89%]
tests/openlp_plugins/songs/test_ccliimport.py .                          [ 89%]
tests/openlp_plugins/songs/test_chordproimport.py .                      [ 89%]
tests/openlp_plugins/songs/test_datasoulimport.py .                      [ 89%]
tests/openlp_plugins/songs/test_db.py ...........                        [ 89%]
tests/openlp_plugins/songs/test_easyslidesimport.py .                    [ 90%]
tests/openlp_plugins/songs/test_editsongform.py .......                  [ 90%]
tests/openlp_plugins/songs/test_ewimport.py ................             [ 90%]
tests/openlp_plugins/songs/test_foilpresenterimport.py ........          [ 91%]
tests/openlp_plugins/songs/test_lib.py ................................. [ 92%]
..                                                                       [ 92%]
tests/openlp_plugins/songs/test_liveworshipimport.py ..                  [ 92%]
tests/openlp_plugins/songs/test_lyriximport.py .                         [ 92%]
tests/openlp_plugins/songs/test_mediaitem.py ....................        [ 93%]
tests/openlp_plugins/songs/test_mediashout.py .......                    [ 93%]
tests/openlp_plugins/songs/test_openlpimporter.py ....                   [ 94%]
tests/openlp_plugins/songs/test_openlyricsexport.py ...                  [ 94%]
tests/openlp_plugins/songs/test_openlyricsimport.py ......               [ 94%]
tests/openlp_plugins/songs/test_openlyricsxml.py .......                 [ 94%]
tests/openlp_plugins/songs/test_openoffice.py ..                         [ 94%]
tests/openlp_plugins/songs/test_opensongimport.py ....                   [ 94%]
tests/openlp_plugins/songs/test_opsproimport.py .....                    [ 95%]
tests/openlp_plugins/songs/test_plugin.py .                              [ 95%]
tests/openlp_plugins/songs/test_powerpraiseimport.py .                   [ 95%]
tests/openlp_plugins/songs/test_presentationmanagerimport.py .           [ 95%]
tests/openlp_plugins/songs/test_propresenterimport.py ...                [ 95%]
tests/openlp_plugins/songs/test_reporting.py ...                         [ 95%]
tests/openlp_plugins/songs/test_singingthefaithimport.py .               [ 95%]
tests/openlp_plugins/songs/test_songbeamerimport.py ..............       [ 96%]
tests/openlp_plugins/songs/test_songformat.py .....                      [ 96%]
tests/openlp_plugins/songs/test_songimport.py ....                       [ 96%]
tests/openlp_plugins/songs/test_songproimport.py .                       [ 96%]
tests/openlp_plugins/songs/test_songselect.py .......................... [ 97%]
.......                                                                  [ 97%]
tests/openlp_plugins/songs/test_songshowplusimport.py ...............s   [ 98%]
tests/openlp_plugins/songs/test_songstab.py ................             [ 99%]
tests/openlp_plugins/songs/test_sundayplusimport.py .                    [ 99%]
tests/openlp_plugins/songs/test_videopsalm.py .                          [ 99%]
tests/openlp_plugins/songs/test_wordsofworshipimport.py .....            [ 99%]
tests/openlp_plugins/songs/test_worshipassistantimport.py .              [ 99%]
tests/openlp_plugins/songs/test_worshipcenterproimport.py .......        [ 99%]
tests/openlp_plugins/songs/test_zionworximport.py ...                    [ 99%]
tests/openlp_plugins/songusage/forms/test_songusagedeleteform.py .       [ 99%]
tests/openlp_plugins/songusage/forms/test_songusagedetailform.py .       [ 99%]
tests/openlp_plugins/songusage/test_songusage.py ....                    [100%]

=================================== FAILURES ===================================
________________ test_old_service_item_load_image_from_service _________________

state_media = None
settings = <openlp.core.common.settings.Settings object at 0x7fb3fe9e48c0>

    def test_old_service_item_load_image_from_service(state_media, settings):
        """
        Test the Service Item - adding an image from a saved service
        tests a old service file serviceitem (openlp-servicefile-version < 3)
        """
        # GIVEN: A new service item and a mocked add icon function
        image_name = 'image_1.jpg'
        fake_hash = 'abcd'
        extracted_file = Path(TEST_PATH) / '{base}{ext}'.format(base=fake_hash, 
ext=os.path.splitext(image_name)[1])
        frame_array = {'path': extracted_file, 'title': image_name, 
'file_hash': fake_hash}
        service_item = ServiceItem(None)
        service_item.add_icon = MagicMock()
    
        # WHEN: adding an image from a saved Service and mocked exists
        line = convert_file_service_item(TEST_PATH, 'serviceitem_image_1.osj')
        with patch('openlp.core.ui.servicemanager.os.path.exists') as 
mocked_exists, \
                
patch('openlp.core.lib.serviceitem.AppLocation.get_section_data_path') as 
mocked_get_section_data_path, \
                patch('openlp.core.lib.serviceitem.sha256_file_hash') as 
mocked_sha256_file_hash, \
                patch('openlp.core.lib.serviceitem.move'):
            mocked_sha256_file_hash.return_value = fake_hash
            mocked_exists.return_value = True
            mocked_get_section_data_path.return_value = Path('/path/')
            service_item.set_from_service(line, TEST_PATH)
    
        # THEN: We should get back a valid service item
        assert service_item.is_valid is True, 'The new service item should be 
valid'
        assert extracted_file == service_item.get_rendered_frame(0), 'The first 
frame should match the path to the image'
>       assert frame_array == service_item.get_frames()[0], 'The return should 
> match frame array1'
E       AssertionError: The return should match frame array1
E       assert {'path': Posi...hash': 'abcd'} == {'title': 'im...ls/abcd.jpg')}
E         
E         Omitting 3 identical items, use -vv to show
E         Right contains 1 more item:
E         {'thumbnail': PosixPath('/path/thumbnails/abcd.jpg')}
E         Use -v to get more diff

tests/openlp_core/lib/test_serviceitem.py:223: AssertionError
_______________ test_service_item_load_image_from_local_service ________________

mocked_get_section_data_path = <MagicMock name='get_section_data_path' 
id='140411055520608'>
mocked_exists = <MagicMock name='exists' id='140411055512208'>
settings = <openlp.core.common.settings.Settings object at 0x7fb3febc69f0>
state_media = None

    @patch('openlp.core.lib.serviceitem.os.path.exists')
    @patch('openlp.core.lib.serviceitem.AppLocation.get_section_data_path')
    def 
test_service_item_load_image_from_local_service(mocked_get_section_data_path, 
mocked_exists, settings, state_media):
        """
        Test the Service Item - adding an image from a saved local service
        """
        # GIVEN: A new service item and a mocked add icon function
        mocked_get_section_data_path.return_value = Path('/path')
        mocked_exists.return_value = True
        image_name1 = 'image_1.jpg'
        image_name2 = 'image_2.jpg'
        test_file1 = Path('/home/openlp') / image_name1
        test_file2 = Path('/home/openlp') / image_name2
        frame_array1 = {'path': test_file1, 'title': image_name1, 'file_hash': 
'abcd'}
        frame_array2 = {'path': test_file2, 'title': image_name2, 'file_hash': 
'abcd'}
        service_item = ServiceItem(None)
        service_item.add_icon = MagicMock()
        service_item2 = ServiceItem(None)
        service_item2.add_icon = MagicMock()
    
        # WHEN: adding an image from a saved Service and mocked exists
        line = convert_file_service_item(TEST_PATH, 'serviceitem_image_2.osj')
        line2 = convert_file_service_item(TEST_PATH, 'serviceitem_image_2.osj', 
1)
        with patch('openlp.core.lib.serviceitem.sha256_file_hash') as 
mocked_sha256_file_hash:
            mocked_sha256_file_hash.return_value = 'abcd'
            service_item2.set_from_service(line2)
            service_item.set_from_service(line)
    
        # THEN: We should get back a valid service item
        assert service_item.is_valid is True, 'The first service item should be 
valid'
        assert service_item2.is_valid is True, 'The second service item should 
be valid'
        # These test will fail on windows due to the difference in folder 
seperators
        if os.name != 'nt':
            assert test_file1 == service_item.get_rendered_frame(0), \
                'The first frame should match the path to the image'
            assert test_file2 == service_item2.get_rendered_frame(0), \
                'The Second frame should match the path to the image'
>           assert frame_array1 == service_item.get_frames()[0], 'The return 
> should match the frame array1'
E           AssertionError: The return should match the frame array1
E           assert {'path': Posi...hash': 'abcd'} == {'title': 
'im...ls/abcd.jpg')}
E             
E             Omitting 3 identical items, use -vv to show
E             Right contains 1 more item:
E             {'thumbnail': PosixPath('/path/thumbnails/abcd.jpg')}
E             Use -v to get more diff

tests/openlp_core/lib/test_serviceitem.py:276: AssertionError
=============================== warnings summary ===============================
openlp/core/common/__init__.py:469
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_openlp/build/openlp/core/common/__init__.py:469:
 SyntaxWarning: 'return' in a 'finally' block
    return detector.close()['encoding']

openlp/core/api/websockets.py:36
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_openlp/build/openlp/core/api/websockets.py:36:
 DeprecationWarning: websockets.server.serve is deprecated
    from websockets.server import serve

../../../../../../usr/lib/python3/dist-packages/websockets/legacy/__init__.py:6
  /usr/lib/python3/dist-packages/websockets/legacy/__init__.py:6: 
DeprecationWarning: websockets.legacy is deprecated; see 
https://websockets.readthedocs.io/en/stable/howto/upgrade.html for upgrade 
instructions
    warnings.warn(  # deprecated in 14.0 - 2024-11-09

openlp/core/ui/thememanager.py:706
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_openlp/build/openlp/core/ui/thememanager.py:706:
 SyntaxWarning: 'return' in a 'finally' block
    return theme_name

openlp/core/ui/thememanager.py:708
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_openlp/build/openlp/core/ui/thememanager.py:708:
 SyntaxWarning: 'return' in a 'finally' block
    return None

tests/openlp_plugins/songs/test_ccliimport.py::test_ccli
tests/openlp_plugins/songs/test_ccliimport.py::test_ccli
tests/openlp_plugins/songs/test_ccliimport.py::test_ccli
tests/openlp_plugins/songs/test_songselect.py::test_songselect_file_import
tests/openlp_plugins/songs/test_songselect.py::test_songselect_file_import
tests/openlp_plugins/songs/test_songselect.py::test_songselect_file_import
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_openlp/build/openlp/plugins/songs/lib/importers/cclifile.py:69:
 DeprecationWarning: codecs.open() is deprecated. Use open() instead.
    in_file = codecs.open(file_path, 'r', details['encoding'])

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED 
tests/openlp_core/lib/test_serviceitem.py::test_old_service_item_load_image_from_service
FAILED 
tests/openlp_core/lib/test_serviceitem.py::test_service_item_load_image_from_local_service
= 2 failed, 2414 passed, 89 skipped, 3 deselected, 4 xfailed, 11 warnings in 
27.29s =
E: pybuild pybuild:485: test: plugin distutils failed with: exit code=1: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_openlp/build; python3.14 -m pytest -k 
'not test_load_settings_position_invalid and not 
test_get_directory_for_language_dir_from_source and not 
test_get_ip_address_default'
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.14 
--parallel=2 returned exit code 13
make[1]: *** [debian/rules:25: override_dh_auto_test] Error 25
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
make: *** [debian/rules:8: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess failed with exit 
status 2
--------------------------------------------------------------------------------

Reply via email to