<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>40796</bug_id>
          
          <creation_ts>2021-08-21 18:56:55 +0300</creation_ts>
          <short_desc>приложение outwiker неработоспособно в окружении sisyphus</short_desc>
          <delta_ts>2021-08-22 20:36:59 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>outwiker</component>
          <version>unstable</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gleb Kulikov">glebus</reporter>
          <assigned_to name="Антон Мидюков">antohami</assigned_to>
          <cc>antohami</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>201926</commentid>
    <comment_count>0</comment_count>
    <who name="Gleb Kulikov">glebus</who>
    <bug_when>2021-08-21 18:56:55 +0300</bug_when>
    <thetext>outwiker из репозитория, версия outwiker_3.0.0.888-alt1 (впрочем, если ставить из гитхаба, проблема сохраняется). 

После запуска программа падает с диагностикой:
...
File &quot;/usr/share/outwiker/outwiker/core/system.py&quot;, line 199, in getSpellChecker
    return CyHunspellWrapper(langlist, folders)
  File &quot;/usr/share/outwiker/outwiker/core/spellchecker/cyhunspellwrapper.py&quot;, line 49, in init
    checker = hunspell.Hunspell(
AttributeError: module &apos;hunspell&apos; has no attribute &apos;Hunspell&apos;
Error in atexit._run_exitfuncs:
wx._core.wxAssertionError: C++ assertion &quot;GetEventHandler() == this&quot; failed at ../src/common/wincmn.cpp(477) in ~wxWindowBase(): any pushed event handlers must have been removed

ну и 
ERROR      2021-08-21 22:36:41,891   outwiker.core.pluginsloader - pluginsloader - *** Plug-in autorenamer.plugin loading error ***
autorenamer.plugin/
cannot import name &apos;AutoRenamer&apos; from &apos;autorenamer.autorenamer&apos; (/usr/share/outwiker/plugins/autorenamer/autorenamer/__init__.py)
Traceback (most recent call last):
  File &quot;/usr/share/outwiker/outwiker/core/pluginsloader.py&quot;, line 334, in __loadPlugin
    module = importlib.import_module(module)
  File &quot;/usr/lib64/python3.9/importlib/__init__.py&quot;, line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File &quot;&lt;frozen importlib._bootstrap&gt;&quot;, line 1030, in _gcd_import
  File &quot;&lt;frozen importlib._bootstrap&gt;&quot;, line 1007, in _find_and_load
  File &quot;&lt;frozen importlib._bootstrap&gt;&quot;, line 986, in _find_and_load_unlocked
  File &quot;&lt;frozen importlib._bootstrap&gt;&quot;, line 680, in _load_unlocked
  File &quot;&lt;frozen importlib._bootstrap_external&gt;&quot;, line 855, in exec_module
  File &quot;&lt;frozen importlib._bootstrap&gt;&quot;, line 228, in _call_with_frames_removed
  File &quot;/usr/share/outwiker/plugins/autorenamer/plugin.py&quot;, line 7, in &lt;module&gt;
    from .autorenamer import AutoRenamer
ImportError: cannot import name &apos;AutoRenamer&apos; from &apos;autorenamer.autorenamer&apos; (/usr/share/outwiker/plugins/autorenamer/autorenamer/__init__.py)

ERROR      2021-08-21 22:36:41,892   outwiker.core.pluginsloader - pluginsloader - **********

ERROR      2021-08-21 22:36:43,651   outwiker.core.notestreeregistry - registrynotestree - Error reading a notes tree registry
WARNING    2021-08-21 22:36:43,652   outwiker.core.notestreeregistry - registrynotestree - Invalid notes tree registry version

Установлен python3-module-pyhunspell версии 0.5.4-alt1.x86_64

Очень прискорбно.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201927</commentid>
    <comment_count>1</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2021-08-21 19:01:31 +0300</bug_when>
    <thetext>На p10 тоже сломан. Давно, значит, сломался.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201929</commentid>
    <comment_count>2</comment_count>
    <who name="Gleb Kulikov">glebus</who>
    <bug_when>2021-08-21 19:38:10 +0300</bug_when>
    <thetext>если очистить старую ~/.config/outwiker, программа запускается и работает. после перезапуска — падает.

ERROR      2021-08-21 23:21:05,503   outwiker.core.pluginsloader - pluginsloader - *** Plug-in autorenamer.plugin loading error ***
autorenamer.plugin/
cannot import name &apos;AutoRenamer&apos; from &apos;autorenamer.autorenamer&apos; (/usr/share/outwiker/plugins/autorenamer/autorenamer/__init__.py)
Traceback (most recent call last):
  File &quot;/usr/share/outwiker/outwiker/core/pluginsloader.py&quot;, line 334, in __loadPlugin
    module = importlib.import_module(module)
  File &quot;/usr/lib64/python3.9/importlib/__init__.py&quot;, line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File &quot;&lt;frozen importlib._bootstrap&gt;&quot;, line 1030, in _gcd_import
  File &quot;&lt;frozen importlib._bootstrap&gt;&quot;, line 1007, in _find_and_load
  File &quot;&lt;frozen importlib._bootstrap&gt;&quot;, line 986, in _find_and_load_unlocked
  File &quot;&lt;frozen importlib._bootstrap&gt;&quot;, line 680, in _load_unlocked
  File &quot;&lt;frozen importlib._bootstrap_external&gt;&quot;, line 855, in exec_module
  File &quot;&lt;frozen importlib._bootstrap&gt;&quot;, line 228, in _call_with_frames_removed
  File &quot;/usr/share/outwiker/plugins/autorenamer/plugin.py&quot;, line 7, in &lt;module&gt;
    from .autorenamer import AutoRenamer
ImportError: cannot import name &apos;AutoRenamer&apos; from &apos;autorenamer.autorenamer&apos; (/usr/share/outwiker/plugins/autorenamer/autorenamer/__init__.py)

ERROR      2021-08-21 23:21:05,503   outwiker.core.pluginsloader - pluginsloader - **********

Traceback (most recent call last):
  File &quot;/usr/share/outwiker/runoutwiker.py&quot;, line 67, in &lt;module&gt;
    starter.processGUI()
  File &quot;/usr/share/outwiker/outwiker/core/starter.py&quot;, line 52, in processGUI
    self.openRecentWiki()
  File &quot;/usr/share/outwiker/outwiker/core/starter.py&quot;, line 94, in __openRecentWiki
    openWiki(self._application.recentWiki[0])
  File &quot;/usr/share/outwiker/outwiker/core/commands.py&quot;, line 230, in openWiki
    Application.wikiroot = result
  File &quot;/usr/share/outwiker/outwiker/core/application.py&quot;, line 407, in wikiroot
    self.onWikiOpen(self.__wikiroot)
  File &quot;/usr/share/outwiker/outwiker/core/event.py&quot;, line 54, in __call
    handler[0](*args, **kwargs)
  File &quot;/usr/share/outwiker/outwiker/gui/tabscontroller.py&quot;, line 246, in onWikiOpen
    self.__loadTabs(root)
  File &quot;/usr/share/outwiker/outwiker/gui/tabscontroller.py&quot;, line 222, in __loadTabs
    self._application.selectedPage = self._tabsCtrl.GetPage(selectedTab)
  File &quot;/usr/share/outwiker/outwiker/core/application.py&quot;, line 476, in selectedPage
    self.__wikiroot.selectedPage = page
  File &quot;/usr/share/outwiker/outwiker/core/tree.py&quot;, line 428, in selectedPage
    self.root.onPageSelect(self._selectedPage)
  File &quot;/usr/share/outwiker/outwiker/core/event.py&quot;, line 54, in __call
    handler[0](*args, **kwargs)
  File &quot;/usr/share/outwiker/outwiker/core/event.py&quot;, line 54, in call
    handler[0](*args, **kwargs)
  File &quot;/usr/share/outwiker/outwiker/gui/currentpagepanel.py&quot;, line 102, in onPageSelect
    self.__updatePageView(page)
  File &quot;/usr/share/outwiker/outwiker/gui/currentpagepanel.py&quot;, line 134, in __updatePageView
    self.__createPageView(page)
  File &quot;/usr/share/outwiker/outwiker/gui/currentpagepanel.py&quot;, line 153, in __createPageView
    self.__createConcretePageView(page)
  File &quot;/usr/share/outwiker/outwiker/gui/currentpagepanel.py&quot;, line 187, in __createConcretePageView
    pageView = factory.getPageView(self, self._application)
  File &quot;/usr/share/outwiker/outwiker/pages/wiki/wikipage.py&quot;, line 85, in getPageView
    return WikiPageView(parent, application)
  File &quot;/usr/share/outwiker/outwiker/pages/wiki/wikipageview.py&quot;, line 39, in __init
    super(WikiPageView, self).init(parent, application)
  File &quot;/usr/share/outwiker/outwiker/pages/wiki/basewikipageview.py&quot;, line 24, in init
    super(BaseWikiPageView, self).init(parent, application)
  File &quot;/usr/share/outwiker/outwiker/pages/html/basehtmlpanel.py&quot;, line 53, in init
    self._codeEditor = self.getTextEditor()(self.notebook)
  File &quot;/usr/share/outwiker/outwiker/pages/wiki/wikieditor.py&quot;, line 17, in init
super().init(parent)
  File &quot;/usr/share/outwiker/outwiker/gui/texteditor.py&quot;, line 71, in init
    self.setDefaultSettings()
  File &quot;/usr/share/outwiker/outwiker/pages/wiki/wikieditor.py&quot;, line 84, in setDefaultSettings
    super(WikiEditor, self).setDefaultSettings()
  File &quot;/usr/share/outwiker/outwiker/gui/texteditor.py&quot;, line 145, in setDefaultSettings
    self.getSpellChecker().skipWordsWithNumbers = self.config.spellSkipDigits.value
  File &quot;/usr/share/outwiker/outwiker/gui/texteditor.py&quot;, line 265, in getSpellChecker
    spellChecker = SpellChecker(langlist, spellDirList)
  File &quot;/usr/share/outwiker/outwiker/core/spellchecker/spellchecker.py&quot;, line 18, in init
    self._realChecker = getOS().getSpellChecker(langlist, folders)
  File &quot;/usr/share/outwiker/outwiker/core/system.py&quot;, line 199, in getSpellChecker
    return CyHunspellWrapper(langlist, folders)
  File &quot;/usr/share/outwiker/outwiker/core/spellchecker/cyhunspellwrapper.py&quot;, line 49, in init
    checker = hunspell.Hunspell(
AttributeError: module &apos;hunspell&apos; has no attribute &apos;Hunspell&apos;
Error in atexit._run_exitfuncs:
wx._core.wxAssertionError: C++ assertion &quot;GetEventHandler() == this&quot; failed at ../src/common/wincmn.cpp(477) in ~wxWindowBase(): any pushed event handlers must have been removed
И да, если программа всё-таки запустилась, то при попытке создать страницу
Traceback (most recent call last):
  File &quot;/usr/share/outwiker/outwiker/gui/pagepopupmenu.py&quot;, line 73, in onAddChild
    createChildPage(self.parent, self.popupPage)
  File &quot;/usr/share/outwiker/outwiker/gui/pagedialog.py&quot;, line 93, in createChildPage
    createPageWithDialog(parentwnd, page)
  File &quot;/usr/share/outwiker/outwiker/core/commands.py&quot;, line 73, in readOnlyWrap
    return func(*args, **kwargs)
  File &quot;/usr/share/outwiker/outwiker/gui/pagedialog.py&quot;, line 45, in createPageWithDialog
    with CreatePageDialog(parentwnd, parentpage, Application) as dlg:
  File &quot;/usr/share/outwiker/outwiker/gui/pagedialog.py&quot;, line 98, in __init
    super().init(parentWnd, None, parentPage, application)
  File &quot;/usr/share/outwiker/outwiker/gui/basepagedialog.py&quot;, line 32, in init
    self._createPanels()
  File &quot;/usr/share/outwiker/outwiker/gui/basepagedialog.py&quot;, line 130, in _createPanels
    self._generalPanel = GeneralPanel(parent)
  File &quot;/usr/share/outwiker/outwiker/gui/pagedialogpanels/generalpanel.py&quot;, line 63, in init
    self.createGeneralControls()
  File &quot;/usr/share/outwiker/outwiker/gui/pagedialogpanels/generalpanel.py&quot;, line 111, in __createGeneralControls
    self.iconsPopup = IconsListPopup(self)
  File &quot;/usr/share/outwiker/outwiker/gui/pagedialogpanels/iconslistpopup.py&quot;, line 11, in __init
    super().init(parent)
  File &quot;/usr/share/outwiker/outwiker/gui/controls/popupwindow.py&quot;, line 37, in init
    super().init(parent, flags=wx.PU_CONTAINS_CONTROLS)
AttributeError: module &apos;wx&apos; has no attribute &apos;PU_CONTAINS_CONTROLS&apos;

Установлен python3-module-wx-4.0.7-alt3.x86_64</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201930</commentid>
    <comment_count>3</comment_count>
    <who name="Gleb Kulikov">glebus</who>
    <bug_when>2021-08-21 19:39:07 +0300</bug_when>
    <thetext>автору написал, настораживает также
23:24:49: Warning: Mismatch between the program and library build versions detected.
The library used 3.0 (wchar_t,compiler with C++ ABI 1013,STL containers,compatible with 2.6,compatible with 2.8),
and wxPython used 3.0 (wchar_t,compiler with C++ ABI 1014,STL containers,compatible with 2.6,compatible with 2.8).
wxPython language: LANGUAGE_RUSSIAN</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201931</commentid>
    <comment_count>4</comment_count>
    <who name="Gleb Kulikov">glebus</who>
    <bug_when>2021-08-21 19:46:29 +0300</bug_when>
    <thetext>автор пишет,
&quot;
wxPython = &quot;==4.1.1&quot;
Pillow = &quot;==8.2.0&quot;
cyhunspell = &quot;==2.0.2&quot;
idna = &quot;&gt;=2.10&quot;
pyparsing = &quot;==2.4.7&quot;
psutil = &quot;==5.8.0&quot;
&quot;
у нас
установлены
python3-module-Pillow-8.1.2
python3-module-pyhunspell-0.5.4
idna — это что?
python3-module-pyparsing-2.4.2
psutils-2.05-alt1

и главное, python3-module-wx-4.0.7-alt3.x86_64

староватые библиотеки?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201933</commentid>
    <comment_count>5</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2021-08-21 21:37:49 +0300</bug_when>
    <thetext>Вроде, очевидно в чём дело:
&gt;&gt;&gt; dir (hunspell)
[&apos;HunSpell&apos;, &apos;HunSpellError&apos;, &apos;__doc__&apos;, &apos;__file__&apos;, &apos;__loader__&apos;, &apos;__name__&apos;, &apos;__package__&apos;, &apos;__spec__&apos;, &apos;add&apos;, &apos;add_dic&apos;, &apos;add_with_affix&apos;, &apos;analyze&apos;, &apos;generate&apos;, &apos;generate2&apos;, &apos;get_dic_encoding&apos;, &apos;remove&apos;, &apos;spell&apos;, &apos;stem&apos;, &apos;suggest&apos;]

Нужно HunSpell вместо Hunspell у hunspell запрашивать. Исправил и получил другую ошибку:
SystemError: &lt;class &apos;HunSpell&apos;&gt; returned a result with an error set
Error in atexit._run_exitfuncs:
wx._core.wxAssertionError: C++ assertion &quot;GetEventHandler() == this&quot; failed at ../src/common/wincmn.cpp(477) in ~wxWindowBase(): any pushed event handlers must have been removed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201934</commentid>
    <comment_count>6</comment_count>
    <who name="Gleb Kulikov">glebus</who>
    <bug_when>2021-08-21 22:29:35 +0300</bug_when>
    <thetext>(Ответ для Антон Мидюков на комментарий #5)
&gt; Вроде, очевидно в чём дело:

&gt; Нужно HunSpell вместо Hunspell у hunspell запрашивать. Исправил и получил
&gt; другую ошибку:

Боюсь, неочевидно. Это я увидел, исправление ничего не даёт. Похоже, версия wx?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201942</commentid>
    <comment_count>7</comment_count>
    <who name="Gleb Kulikov">glebus</who>
    <bug_when>2021-08-22 10:17:12 +0300</bug_when>
    <thetext>(Ответ для Антон Мидюков на комментарий #5)

Автор ещё пишет:

Но еще обратите внимание, что там используется библиотека cyhunspell - https://pypi.org/project/cyhunspell/. Это не pyhunspell, которая у становлена у вас (python3-module-pyhunspell-0.5.4).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201944</commentid>
    <comment_count>8</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2021-08-22 15:26:36 +0300</bug_when>
    <thetext>(In reply to Gleb Kulikov from comment #7)
&gt; (Ответ для Антон Мидюков на комментарий #5)
&gt; 
&gt; Автор ещё пишет:
&gt; 
&gt; Но еще обратите внимание, что там используется библиотека cyhunspell -
&gt; https://pypi.org/project/cyhunspell/. Это не pyhunspell, которая у
&gt; становлена у вас (python3-module-pyhunspell-0.5.4).

Да, дело в этом. Спасибо. Буду собирать cyhunspell.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201946</commentid>
    <comment_count>9</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2021-08-22 20:17:38 +0300</bug_when>
    <thetext>(In reply to Антон Мидюков from comment #8)
&gt; (In reply to Gleb Kulikov from comment #7)
&gt; &gt; (Ответ для Антон Мидюков на комментарий #5)
&gt; &gt; 
&gt; &gt; Автор ещё пишет:
&gt; &gt; 
&gt; &gt; Но еще обратите внимание, что там используется библиотека cyhunspell -
&gt; &gt; https://pypi.org/project/cyhunspell/. Это не pyhunspell, которая у
&gt; &gt; становлена у вас (python3-module-pyhunspell-0.5.4).
&gt; 
&gt; Да, дело в этом. Спасибо. Буду собирать cyhunspell.

Собрал. Работает. Ждём, пока соберётся:
#283585 AWAITING #4.2 sisyphus python3-module-CacheMan.git=2.1.0-alt1 del=python3-module-pyhunspell python3-module-cyhunspell.git=2.0.2-alt1 outwiker.git=3.0.0.888-alt2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201947</commentid>
    <comment_count>10</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2021-08-22 20:36:59 +0300</bug_when>
    <thetext>outwiker-3.0.0.888-alt2 -&gt; sisyphus:

 Sun Aug 22 2021 Anton Midyukov &lt;antohami@altlinux&gt; 3.0.0.888-alt2
 - Add Requires: python3-module-cyhunspell (ALT bug #40796)</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>