** 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

Reply via email to