** Package changed: gourmand (Ubuntu) => extruct (Ubuntu) ** Summary changed:
- gourmand doesn't start + [SRU] gourmand doesn't start ** Description changed: - In kubuntu 24.04 after installing gourmand it doesn't start. + [ Impact ] - If I launch it from cli I have the following output : + gourmand is completely unusable and will fail immediately on execution + with the error: - gourmand + $ gourmand args = Namespace(db_url='', threads=False, gourmanddir='', thread_debug_interval=5.0, thread_debug=False, debug_file='', time=False, debug=None) Traceback (most recent call last): File "/usr/bin/gourmand", line 33, in <module> sys.exit(load_entry_point('gourmand==1.0.0', 'gui_scripts', 'gourmand')()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/bin/gourmand", line 25, in importlib_load_entry_point return next(matches).load() ^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/importlib/metadata/__init__.py", line 205, in load module = import_module(match.group('module')) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/importlib/__init__.py", line 90, in import_module return _bootstrap._gcd_import(name[level:], package, level) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<frozen importlib._bootstrap>", line 1387, in _gcd_import File "<frozen importlib._bootstrap>", line 1360, in _find_and_load File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 935, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 995, in exec_module File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed File "/usr/lib/python3/dist-packages/gourmand/main.py", line 9, in <module> from gourmand import (__version__, batchEditor, convert, plugin, plugin_gui, File "/usr/lib/python3/dist-packages/gourmand/reccard.py", line 33, in <module> from gourmand.recindex import RecIndex File "/usr/lib/python3/dist-packages/gourmand/recindex.py", line 17, in <module> from .importers.clipboard_importer import import_from_drag_and_drop File "/usr/lib/python3/dist-packages/gourmand/importers/clipboard_importer.py", line 8, in <module> from gourmand.importers.importManager import ImportManager File "/usr/lib/python3/dist-packages/gourmand/importers/importManager.py", line 10, in <module> from gourmand.importers.web_importer import import_urls, supported_sites File "/usr/lib/python3/dist-packages/gourmand/importers/web_importer.py", line 6, in <module> from recipe_scrapers import SCRAPERS, scrape_me File "/usr/lib/python3/dist-packages/recipe_scrapers/__init__.py", line 6, in <module> from ._abstract import AbstractScraper File "/usr/lib/python3/dist-packages/recipe_scrapers/_abstract.py", line 13, in <module> from ._schemaorg import SchemaOrg File "/usr/lib/python3/dist-packages/recipe_scrapers/_schemaorg.py", line 8, in <module> import extruct File "/usr/lib/python3/dist-packages/extruct/__init__.py", line 1, in <module> from ._extruct import SYNTAXES, extract File "/usr/lib/python3/dist-packages/extruct/_extruct.py", line 9, in <module> from extruct.dublincore import DublinCoreExtractor File "/usr/lib/python3/dist-packages/extruct/dublincore.py", line 6, in <module> from extruct.utils import parse_html File "/usr/lib/python3/dist-packages/extruct/utils.py", line 5, in <module> from extruct.xmldom import XmlDomHTMLParser File "/usr/lib/python3/dist-packages/extruct/xmldom.py", line 9, in <module> from lxml.etree import ( ImportError: cannot import name '_ElementStringResult' from 'lxml.etree' (/usr/lib/python3/dist-packages/lxml/etree.cpython-312-x86_64-linux-gnu.so). Did you mean: '_ElementUnicodeResult'? - --- + + Even though "gourmand" is affected but its caused by "python3-lxml" + updating to 5.2.1-1 as FFE via #2060811. And that in turn affected + python3-extruct which actually caused all the error. + + + [ Test Plan ] + + 1. install gourmand + 2. Execute gourmand + + If the package is not fixed it will result in the above error. + With the fixed package it will display the recipe manager with two example recipes in it. + + [ Where problems could occur ] + + This upstream patch is defining its own "_ElementStringResult" for compatibility. Looking at old lxml code, the definition is same as what they had at https://github.com/lxml/lxml/blob/lxml-4.9.4/src/lxml/extensions.pxi#L741 so there should not be a regression for this. But again, lxml has removed the definition and there might be some other change in lxml which is part of this removal and so there is always a chance of regression. + But again, the package is completely unusable now, there can not be a greather regression than what we currently have. + + [ Other Info ] + + 1. The "_ElementStringResult" was a private classes of lxml and should not have been used by python3-extruct. Ref: https://bugs.launchpad.net/bugs/2059793 + 2. I did a apt-cache rdepends to find out other packages that might be affected by the issue of python3-extruct. But looks like "gourmand" is the only package which depends on python3-extruct. + + [ Original Bug Description ] + + In kubuntu 24.04 after installing gourmand it doesn't start. + + If I launch it from cli I have the following output : + + gourmand + args = Namespace(db_url='', threads=False, gourmanddir='', thread_debug_interval=5.0, thread_debug=False, debug_file='', time=False, debug=None) + Traceback (most recent call last): + File "/usr/bin/gourmand", line 33, in <module> + sys.exit(load_entry_point('gourmand==1.0.0', 'gui_scripts', 'gourmand')()) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/bin/gourmand", line 25, in importlib_load_entry_point + return next(matches).load() + ^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3.12/importlib/metadata/__init__.py", line 205, in load + module = import_module(match.group('module')) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3.12/importlib/__init__.py", line 90, in import_module + return _bootstrap._gcd_import(name[level:], package, level) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "<frozen importlib._bootstrap>", line 1387, in _gcd_import + File "<frozen importlib._bootstrap>", line 1360, in _find_and_load + File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked + File "<frozen importlib._bootstrap>", line 935, in _load_unlocked + File "<frozen importlib._bootstrap_external>", line 995, in exec_module + File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed + File "/usr/lib/python3/dist-packages/gourmand/main.py", line 9, in <module> + from gourmand import (__version__, batchEditor, convert, plugin, plugin_gui, + File "/usr/lib/python3/dist-packages/gourmand/reccard.py", line 33, in <module> + from gourmand.recindex import RecIndex + File "/usr/lib/python3/dist-packages/gourmand/recindex.py", line 17, in <module> + from .importers.clipboard_importer import import_from_drag_and_drop + File "/usr/lib/python3/dist-packages/gourmand/importers/clipboard_importer.py", line 8, in <module> + from gourmand.importers.importManager import ImportManager + File "/usr/lib/python3/dist-packages/gourmand/importers/importManager.py", line 10, in <module> + from gourmand.importers.web_importer import import_urls, supported_sites + File "/usr/lib/python3/dist-packages/gourmand/importers/web_importer.py", line 6, in <module> + from recipe_scrapers import SCRAPERS, scrape_me + File "/usr/lib/python3/dist-packages/recipe_scrapers/__init__.py", line 6, in <module> + from ._abstract import AbstractScraper + File "/usr/lib/python3/dist-packages/recipe_scrapers/_abstract.py", line 13, in <module> + from ._schemaorg import SchemaOrg + File "/usr/lib/python3/dist-packages/recipe_scrapers/_schemaorg.py", line 8, in <module> + import extruct + File "/usr/lib/python3/dist-packages/extruct/__init__.py", line 1, in <module> + from ._extruct import SYNTAXES, extract + File "/usr/lib/python3/dist-packages/extruct/_extruct.py", line 9, in <module> + from extruct.dublincore import DublinCoreExtractor + File "/usr/lib/python3/dist-packages/extruct/dublincore.py", line 6, in <module> + from extruct.utils import parse_html + File "/usr/lib/python3/dist-packages/extruct/utils.py", line 5, in <module> + from extruct.xmldom import XmlDomHTMLParser + File "/usr/lib/python3/dist-packages/extruct/xmldom.py", line 9, in <module> + from lxml.etree import ( + ImportError: cannot import name '_ElementStringResult' from 'lxml.etree' (/usr/lib/python3/dist-packages/lxml/etree.cpython-312-x86_64-linux-gnu.so). Did you mean: '_ElementUnicodeResult'? + --- ProblemType: Bug ApportVersion: 2.28.1-0ubuntu3 Architecture: amd64 CasperMD5CheckResult: unknown CurrentDesktop: KDE DistroRelease: Ubuntu 24.04 Package: gourmand 1.1.0+really1.1.0~rc3-3 PackageArchitecture: all ProcVersionSignature: Ubuntu 6.8.0-31.31-generic 6.8.1 Tags: noble third-party-packages Uname: Linux 6.8.0-31-generic x86_64 UpgradeStatus: No upgrade log present (probably fresh install) UserGroups: adm cdrom dip lpadmin lxd plugdev sambashare sudo _MarkForUpload: True -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2064861 Title: [SRU] gourmand doesn't start To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/extruct/+bug/2064861/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs