[Blink] version 3.0.2 fails to initialize returning IO error

Mircea Sava msava at vivaldi.net
Mon Feb 27 19:18:25 CET 2017


This small patch did the trick on my setup:

--- blink-3.0.2/blink/resources.py
+++ blink-3.0.2/blink/resources.py
@@ -75,7 +75,7 @@
             if os.path.exists(os.path.join(application_directory,
'resources', 'blink.ui')):
                 cls._cached_directory =
os.path.join(application_directory,
'resources').decode(sys.getfilesystemencoding())
             else:
-                cls._cached_directory =
os.path.join(application_directory, 'share',
'blink').decode(sys.getfilesystemencoding())
+                cls._cached_directory = os.path.join(sys.prefix,
'share', 'blink').decode(sys.getfilesystemencoding())
         return DirectoryContextManager(cls._cached_directory)

     @classmethod


On 02/27/2017 04:59 PM, Mircea Sava wrote:
> Blink on Gentoo no longer has a maintainer and the ebuild in the portage
> tree is quite old so I wrote a new ebuild myself and installed the
> package. I will take your advice and contact the Python team and get
> their advice on a possible patch. Thanks
> 
> On 02/27/2017 04:39 PM, Dan Pascu wrote:
>> Your problem is that /usr/bin/blink is a symlink to /usr/lib/python-exec/python-exec2
>>
>> I'm not familiar with how Gentoo does things and what that wrapper does, maybe the person that packaged blink for Gentoo can help you better.
>>
>> What I can tell you is how blink finds its resources:
>>
>> It starts from the script location (in this case /usr/bin/blink, but it could be /usr/local/bin/blink or /opt/bin/blink) and it goes up one directory and then down to share/blink, so if blink is installed in /usr, then /usr/bin/blink leads to /usr/share/blink, but if you are installed in /opt, then /opt/bin/blink leads to /opt/share/blink
>>
>> However in your case, the script (because of the symlink) is /usr/lib/python-exec/python-exec2, which I suspect it's a wrapper that actually launches /usr/lib/python-exec/python2.7/blink, which leads to the result you see.
>>
>> As a quick solution you can replace the /usr/bin/blink symlink with the actual script (I think it is in /usr/lib/python-exec/python2.7/blink). For a more permanent solution you need to talk with the person that packaged it for Gentoo
>>
>> On 27 Feb 2017, at 17:16, Mircea Sava wrote:
>>
>>> Sure thing!
>>>
>>>  /usr 
>>>   > /bin 
>>>      + blink -> ../lib/python-exec/python-exec2 
>>>   > /lib 
>>>      > /python-exec 
>>>         > /python2.7 
>>>            + blink 
>>>   > /lib64 
>>>      > /python2.7 
>>>         > /site-packages 
>>>            > /blink 
>>>            + blink-3.0.2-py2.7.egg-info 
>>>               + __info__.py 
>>>               + __info__.pyc 
>>>               + __info__.pyo 
>>>               + __init__.py 
>>>               + __init__.pyc 
>>>               + __init__.pyo 
>>>               + aboutpanel.py 
>>>               + aboutpanel.pyc 
>>>               + aboutpanel.pyo 
>>>               + accounts.py 
>>>               + accounts.pyc 
>>>               + accounts.pyo 
>>>               + chatwindow.py 
>>>               + chatwindow.pyc 
>>>               + chatwindow.pyo 
>>>               > /configuration 
>>>                  + __init__.py 
>>>                  + __init__.pyc 
>>>                  + __init__.pyo 
>>>                  + account.py 
>>>                  + account.pyc 
>>>                  + account.pyo 
>>>                  + addressbook.py 
>>>                  + addressbook.pyc 
>>>                  + addressbook.pyo 
>>>                  + datatypes.py 
>>>                  + datatypes.pyc 
>>>                  + datatypes.pyo 
>>>                  + settings.py 
>>>                  + settings.pyc 
>>>                  + settings.pyo 
>>>               + contacts.py 
>>>               + contacts.pyc 
>>>               + contacts.pyo 
>>>               + event.py 
>>>               + event.pyc 
>>>               + event.pyo 
>>>               + filetransferwindow.py 
>>>               + filetransferwindow.pyc 
>>>               + filetransferwindow.pyo 
>>>               + history.py 
>>>               + history.pyc 
>>>               + history.pyo 
>>>               + logging.py 
>>>               + logging.pyc 
>>>               + logging.pyo 
>>>               + mainwindow.py 
>>>               + mainwindow.pyc 
>>>               + mainwindow.pyo 
>>>               + preferences.py 
>>>               + preferences.pyc 
>>>               + preferences.pyo 
>>>               + presence.py 
>>>               + presence.pyc 
>>>               + presence.pyo 
>>>               + resources.py 
>>>               + resources.pyc 
>>>               + resources.pyo 
>>>               > /screensharing 
>>>                  + __init__.py 
>>>                  + __init__.pyc 
>>>                  + __init__.pyo 
>>>                  + _rfb.so 
>>>                  + vncclient.py 
>>>                  + vncclient.pyc 
>>>                  + vncclient.pyo 
>>>                  + vncviewer.py 
>>>                  + vncviewer.pyc 
>>>                  + vncviewer.pyo 
>>>               + sessions.py 
>>>               + sessions.pyc 
>>>               + sessions.pyo 
>>>               > /update 
>>>                  + __init__.py 
>>>                  + __init__.pyc 
>>>                  + __init__.pyo 
>>>                  + windows.py 
>>>                  + windows.pyc 
>>>                  + windows.pyo 
>>>               + util.py 
>>>               + util.pyc 
>>>               + util.pyo 
>>>               > /widgets 
>>>                  + __init__.py 
>>>                  + __init__.pyc 
>>>                  + __init__.pyo 
>>>                  + buttons.py 
>>>                  + buttons.pyc 
>>>                  + buttons.pyo 
>>>                  + color.py 
>>>                  + color.pyc 
>>>                  + color.pyo 
>>>                  + containers.py 
>>>                  + containers.pyc 
>>>                  + containers.pyo 
>>>                  + frames.py 
>>>                  + frames.pyc 
>>>                  + frames.pyo 
>>>                  + graph.py 
>>>                  + graph.pyc 
>>>                  + graph.pyo 
>>>                  + labels.py 
>>>                  + labels.pyc 
>>>                  + labels.pyo 
>>>                  + lineedit.py 
>>>                  + lineedit.pyc 
>>>                  + lineedit.pyo 
>>>                  + otr.py 
>>>                  + otr.pyc 
>>>                  + otr.pyo 
>>>                  + spinner.py 
>>>                  + spinner.pyc 
>>>                  + spinner.pyo 
>>>                  + util.py 
>>>                  + util.pyc 
>>>                  + util.pyo 
>>>                  + video.py 
>>>                  + video.pyc 
>>>                  + video.pyo 
>>>                  + zrtp.py 
>>>                  + zrtp.pyc 
>>>                  + zrtp.pyo 
>>>   > /share 
>>>      > /applications 
>>>         + blink-blink.desktop 
>>>      > /blink 
>>>         + about_panel.ui 
>>>         + add_account.ui 
>>>         + audio_session.ui 
>>>         + audio_session_drag.ui 
>>>         + blink.ui 
>>>         > /chat 
>>>            > /styles 
>>>               > /Smooth Operator 
>>>                  + Classic.style 
>>>                  + Dim Icon-Time.style 
>>>                  + Dim Time-Icon.style 
>>>                  + Icon-Time.style 
>>>                  + Time-Icon.style 
>>>                  > /css 
>>>                     + topic.css 
>>>                  > /html 
>>>                     + message.html 
>>>                     + message_continuation.html 
>>>                     + notification.html 
>>>                     + topic.html 
>>>                  + style.xml 
>>>                  > /test 
>>>                     + mockup-incoming_icon.png 
>>>                     + mockup-outgoing_icon.png 
>>>                     + mockup.html 
>>>                     + view.py 
>>>               > /Stockholm 
>>>                  + Blue - Green.style 
>>>                  + Blue - Grey.style 
>>>                  + Blue - Orange.style 
>>>                  + Blue - Red.style 
>>>                  + Green - Blue.style 
>>>                  + Green - Grey.style 
>>>                  + Green - Orange.style 
>>>                  + Green - Red.style 
>>>                  + Grey - Blue.style 
>>>                  + Grey - Green.style 
>>>                  + Grey - Orange.style 
>>>                  + Grey - Red.style 
>>>                  + Orange - Blue.style 
>>>                  + Orange - Green.style 
>>>                  + Orange - Grey.style 
>>>                  + Orange - Red.style 
>>>                  + Red - Blue.style 
>>>                  + Red - Green.style 
>>>                  + Red - Grey.style 
>>>                  + Red - Orange.style 
>>>                  > /css 
>>>                     + base.css 
>>>                     + incoming-blue.css 
>>>                     + incoming-green.css 
>>>                     + incoming-grey.css 
>>>                     + incoming-orange.css 
>>>                     + incoming-red.css 
>>>                     + outgoing-blue.css 
>>>                     + outgoing-green.css 
>>>                     + outgoing-grey.css 
>>>                     + outgoing-orange.css 
>>>                     + outgoing-red.css 
>>>                     + topic.css 
>>>                  > /html 
>>>                     + message.html 
>>>                     + message_continuation.html 
>>>                     + notification.html 
>>>                     + topic.html 
>>>                  > /images 
>>>                     + pref-mention-mask.png 
>>>                  + style.xml 
>>>                  > /test 
>>>                     + buddy_icon.png 
>>>                     + file_transfer.html 
>>>                     + mockup.html 
>>>                     + view.py 
>>>            + template.html 
>>>         + chat_input_lock.ui 
>>>         + chat_session.ui 
>>>         + chat_widget.ui 
>>>         + chat_window.ui 
>>>         + conference_dialog.ui 
>>>         + contact.ui 
>>>         + contact_editor.ui 
>>>         + contact_group.ui 
>>>         + filetransfer_item.ui 
>>>         + filetransfer_window.ui 
>>>         > /icons 
>>>            + accounts.png 
>>>            + advanced-settings.png 
>>>            + application-exit.png 
>>>            + arrow-inward-blue.svg 
>>>            + arrow-inward-red.svg 
>>>            + arrow-outward-green.svg 
>>>            + arrow-outward-red.svg 
>>>            + attach.svg 
>>>            + audio-auto-rejected.png 
>>>            + audio-rejected.png 
>>>            + audio.png 
>>>            + avatar-nate.png 
>>>            + avatar-ruby.png 
>>>            + avatar.png 
>>>            + bell-off.svg 
>>>            + bell-on.svg 
>>>            + bell.svg 
>>>            + blink-logo.png 
>>>            + blink.ico 
>>>            + blink.png 
>>>            + blink48.png 
>>>            + blink64.png 
>>>            + camera.svg 
>>>            + camera12.svg 
>>>            + cancel.png 
>>>            + chat-auto-rejected.png 
>>>            + chat-rejected.png 
>>>            + chat.png 
>>>            + chat.svg 
>>>            + chat12.svg 
>>>            + circle-dot.svg 
>>>            + circle-grey.svg 
>>>            + circle-progress.svg 
>>>            + clock.svg 
>>>            + close-active.svg 
>>>            + close.svg 
>>>            + cog.svg 
>>>            + composing12.svg 
>>>            + configure.png 
>>>            + connection-direct.svg 
>>>            + connection-relay.svg 
>>>            + connection-unknown.svg 
>>>            + cross-white.svg 
>>>            + default-avatar.png 
>>>            + delete.svg 
>>>            + detach.svg 
>>>            + downloads16.svg 
>>>            + file-broken.png 
>>>            + file-transfer.png 
>>>            + folder-downloads.png 
>>>            + folder-uploads.png 
>>>            + fullscreen-exit.svg 
>>>            + fullscreen.svg 
>>>            + green-dot.svg 
>>>            + grey-dot.svg 
>>>            + handset.svg 
>>>            + handset12-red.svg 
>>>            + info16.svg 
>>>            + invalid.png 
>>>            + invalid16.png 
>>>            + lock-blue-12.svg 
>>>            + lock-green-12.svg 
>>>            + lock-grey-12.svg 
>>>            + lock-orange-12.svg 
>>>            + lock-red-12.svg 
>>>            + logging.png 
>>>            + media-playback-start.svg 
>>>            + media-record.svg 
>>>            + mic-off.svg 
>>>            + mic-on.svg 
>>>            + mic12-off.svg 
>>>            + mic12-on.svg 
>>>            + microphone.svg 
>>>            + minimize-active.svg 
>>>            + minimize.svg 
>>>            + minus.svg 
>>>            + minus18.svg 
>>>            + mwi-0.png 
>>>            + mwi-1.png 
>>>            + mwi-10.png 
>>>            + mwi-2.png 
>>>            + mwi-3.png 
>>>            + mwi-4.png 
>>>            + mwi-5.png 
>>>            + mwi-6.png 
>>>            + mwi-7.png 
>>>            + mwi-8.png 
>>>            + mwi-9.png 
>>>            + mwi-many.png 
>>>            + participants16.svg 
>>>            + pause.svg 
>>>            + pause12.svg 
>>>            + paused.svg 
>>>            + paused12.svg 
>>>            + plus.svg 
>>>            + plus18.svg 
>>>            + quick-settings.png 
>>>            + record.svg 
>>>            + record12.svg 
>>>            + recording.svg 
>>>            + recording12.svg 
>>>            + red-dot.svg 
>>>            + refresh.png 
>>>            + resize-bottom.svg 
>>>            + resize-top.svg 
>>>            + retry.svg 
>>>            + scale.svg 
>>>            + screen.svg 
>>>            + screen12.svg 
>>>            + screensharing-auto-rejected.png 
>>>            + screensharing-rejected.png 
>>>            + screensharing.png 
>>>            + screenshot.svg 
>>>            + search.svg 
>>>            + speaker.svg 
>>>            + speaker12.svg 
>>>            + spinner.svg 
>>>            + state-available.svg 
>>>            + state-away.svg 
>>>            + state-busy.svg 
>>>            + state-invisible.svg 
>>>            + test-call.png 
>>>            + test-conference.png 
>>>            + transform.png 
>>>            + video-auto-rejected.png 
>>>            + video-rejected.png 
>>>            + video.png 
>>>            + viewonly.svg 
>>>            + wizard.png 
>>>            > /work 
>>>               + actions.svg 
>>>               + arrows-inout.svg 
>>>               + arrows.svg 
>>>               + audio-devices.xcf 
>>>               + audio12.svg 
>>>               + bell.svg 
>>>               + camera.svg 
>>>               + camera12.svg 
>>>               + chat.svg 
>>>               + chat12.svg 
>>>               + circles.svg 
>>>               + clock.svg 
>>>               + cog.svg 
>>>               + composing12.svg 
>>>               + connection.svg 
>>>               + cursors.svg 
>>>               + downloads16.svg 
>>>               + file-broken.xcf 
>>>               + folder-downloads.xcf 
>>>               + folder-uploads.xcf 
>>>               + handset.svg 
>>>               + handset.xcf 
>>>               + handset12.svg 
>>>               + info16.svg 
>>>               + lock.svg 
>>>               + lock12.svg 
>>>               + microphone.svg 
>>>               + microphone12.svg 
>>>               + modifier-keys.svg 
>>>               + mwi.svg 
>>>               + participants16.svg 
>>>               + pause.svg 
>>>               + pause12.svg 
>>>               + progress.svg 
>>>               + record.svg 
>>>               + record12.svg 
>>>               + retry.svg 
>>>               + screen.svg 
>>>               + screen12.svg 
>>>               + speaker.svg 
>>>               + speaker12.svg 
>>>               + spinner.svg 
>>>               + streams.xcf 
>>>               + switch.svg 
>>>            + yellow-dot.svg 
>>>         + incoming_calltransfer_dialog.ui 
>>>         + incoming_dialog.ui 
>>>         + incoming_filetransfer_dialog.ui 
>>>         + otr_widget.ui 
>>>         + pending_watcher.ui 
>>>         + preferences.ui 
>>>         + screensharing_dialog.ui 
>>>         + screensharing_toolbox.ui 
>>>         + screensharing_window.ui 
>>>         + server_tools.ui 
>>>         > /sounds 
>>>            + beeping_ringtone.wav 
>>>            + dtmf_#_tone.wav 
>>>            + dtmf_0_tone.wav 
>>>            + dtmf_1_tone.wav 
>>>            + dtmf_2_tone.wav 
>>>            + dtmf_3_tone.wav 
>>>            + dtmf_4_tone.wav 
>>>            + dtmf_5_tone.wav 
>>>            + dtmf_6_tone.wav 
>>>            + dtmf_7_tone.wav 
>>>            + dtmf_8_tone.wav 
>>>            + dtmf_9_tone.wav 
>>>            + dtmf_A_tone.wav 
>>>            + dtmf_B_tone.wav 
>>>            + dtmf_C_tone.wav 
>>>            + dtmf_D_tone.wav 
>>>            + dtmf_star_tone.wav 
>>>            + file_transfer.wav 
>>>            + hangup_tone.wav 
>>>            + hold_tone.wav 
>>>            + inbound_ringtone.wav 
>>>            + message_received.wav 
>>>            + outbound_ringtone.wav 
>>>            + screenshot.wav 
>>>         > /tls 
>>>            + ca.crt 
>>>            + default.crt 
>>>         + video_widget.ui 
>>>         + zrtp_widget.ui 
>>>      > /doc 
>>>         > /blink-3.0.2 
>>>            + README.bz2 
>>>            + TODO.bz2 
>>>      > /icons 
>>>         > /hicolor 
>>>            > /48x48 
>>>               > /apps 
>>>                  + blink.png 
>>>            > /512x512 
>>>               > /apps 
>>>                  + blink.png 
>>>            > /64x64 
>>>               > /apps 
>>>                  + blink.png
>>>
>>>
>>>
>>> On Mon, Feb 27, 2017 at 13:03, Dan Pascu <dan at ag-projects.com> wrote:
>>> Can you list the content of the installed package on your system?
>>>
>>> On 24 Feb 2017, at 21:26, Mircea Sava wrote:
>>>
>>> On Gentoo, I get the following when trying to run blink:
>>>
>>> Traceback (most recent call last):
>>> File "/usr/lib/python-exec/python2.7/blink", line 67, in <module>
>>> from blink import Blink
>>> File "/usr/lib64/python2.7/site-packages/blink/__init__.py", line 31, in <module>
>>> from blink.chatwindow import ChatWindow
>>> File "/usr/lib64/python2.7/site-packages/blink/chatwindow.py", line 39, in <module>
>>> from blink.contacts import URIUtils
>>> File "/usr/lib64/python2.7/site-packages/blink/contacts.py", line 48, in <module>
>>> from blink.sessions import SessionManager, StreamDescription
>>> File "/usr/lib64/python2.7/site-packages/blink/sessions.py", line 48, in <module>
>>> from blink.screensharing import ScreensharingWindow, VNCClient, ServerDefault
>>> File "/usr/lib64/python2.7/site-packages/blink/screensharing/__init__.py", line 3, in <module>
>>> from blink.screensharing.vncviewer import ScreensharingWindow, VNCViewer
>>> File "/usr/lib64/python2.7/site-packages/blink/screensharing/vncviewer.py", line 387, in <module>
>>> ui_class, base_class = uic.loadUiType(Resources.get('screensharing_dialog.ui'))
>>> File "/usr/lib64/python2.7/site-packages/PyQt5/uic/__init__.py", line 194, in loadUiType
>>> winfo = compiler.UICompiler().compileUi(uifile, code_string, from_imports, resource_suffix)
>>> File "/usr/lib64/python2.7/site-packages/PyQt5/uic/Compiler/compiler.py", line 111, in compileUi
>>> w = self.parse(input_stream, resource_suffix)
>>> File "/usr/lib64/python2.7/site-packages/PyQt5/uic/uiparser.py", line 972, in parse
>>> document = parse(filename)
>>> File "/usr/lib64/python2.7/xml/etree/ElementTree.py", line 1182, in parse
>>> tree.parse(source, parser)
>>> File "/usr/lib64/python2.7/xml/etree/ElementTree.py", line 647, in parse
>>> source = open(source, "rb")
>>> IOError: [Errno 2] No such file or directory: u'/usr/lib64/python-exec/python2.7/share/blink/screensharing_dialog.ui'
>>>
>>> These are the dependencies installed so far (I'm guessing I'm missing some of them): python-sipsimple-3.1.0, python-cjson-1.1.0, python-eventlib-0.2.1, python-msrplib-0.18.0, python-gnutls-2.0.1, python-xcaplib-1.1.0, python-application-2.1.0, and python-otr-1.2.0.
>>>
>>> I'm in need of some guidance.
>>> _______________________________________________
>>> Blink mailing list
>>> Blink at lists.ag-projects.com
>>> http://lists.ag-projects.com/mailman/listinfo/blink
>>>
>>>
>>> --
>>> Dan
>>>
>>> _______________________________________________
>>> Blink mailing list
>>> Blink at lists.ag-projects.com
>>> http://lists.ag-projects.com/mailman/listinfo/blink
>>> _______________________________________________
>>> Blink mailing list
>>> Blink at lists.ag-projects.com
>>> http://lists.ag-projects.com/mailman/listinfo/blink
>>
>>
>> --
>> Dan
>>
>>
>>
>>
>> _______________________________________________
>> Blink mailing list
>> Blink at lists.ag-projects.com
>> http://lists.ag-projects.com/mailman/listinfo/blink
>>
> _______________________________________________
> Blink mailing list
> Blink at lists.ag-projects.com
> http://lists.ag-projects.com/mailman/listinfo/blink
> 


More information about the Blink mailing list