How to install LDOCE5 Viewer on Ubuntu 20.04 64 bit?

Solution 1:

I have used qt4-based version of LDOCE5 viewer for a long time. I originally asked this question How to install LDOCE5 Viewer on Ubuntu) and N0rbert helped me to install it on Ubuntu 18.04. I just installed Ubuntu 20.04 and since the qt4-based libraries are obsolete I tried to install the qt5-based version. I followed the instructions for installing the qt5-based version (answered by n0rbert in the original question), but I came across some new issues with Ubuntu 20.04. I spent some time to resolve those issues and could install the software successfully. Unfortunately I could not find a way to fix the issue reported in the original question regarding the sound not playing. This requires further knowlege of Python/Qt and I hope someone else will help to resolve the issue.

Instructions for installing LDOCE5 viewer on Ubuntu 20.04:

  1. Install some dependencies:

    sudo apt-get install git make python pyqt5-dev-tools python3-pyqt5 \
    python3-pyqt5.qtwebkit python3-lxml python3-whoosh  qtgstreamer-plugins-qt5
    
  2. Install further dependencies for python3.8 on Ubuntu 20.04:

    sudo apt-get install python3-pip python3-setuptools python3-distutils
    
  3. Download ldoce5viewer-pyqt5 into ~/Downloads:

    cd ~/Downloads && git clone https://github.com/purboo/ldoce5viewer-pyqt5.git
    
  4. Open the Makefile in the download folder and change python to python3 on line 2:

    gedit ~/Downloads/ldoce5viewer-pyqt5/Makefile
    
  5. There is an obsolete library in the ldoce5viewer-pyqt5 called cgi.escape() which has been removed from python3.8. this library is used in three files. in order to fix the issue, we need to change cgi to html where we see from cgi import escape in the following three files:

    gedit ~/Downloads/ldoce5viewer-pyqt5/ldoce5viewer/ldoce5/transform.py 
    gedit ~/Downloads/ldoce5viewer-pyqt5/ldoce5viewer/qtgui/indexer.py 
    gedit ~/Downloads/ldoce5viewer-pyqt5/ldoce5viewer/ldoce5/extract.py 
    
  6. This step is based on an answer in the original question which suggested a fix for the sound issue. it did not work for me, but it may work for you. Open the following file and change

    'appsrc.emit('push-buffer', Gst.Buffer.new_wrapped(self._data[:size]))'
    

    to

    'appsrc.emit('push-buffer', Gst.Buffer.new_wrapped(self._data[:size].data()))'
    

    on line 114:

    gedit ~/Downloads/ldoce5viewer-pyqt5/ldoce5viewer/qtgui/utils/soundplayer.py
    
  7. Final step:

    make && sudo make install
    

Now you can find the software in the installed applications (press Super key and search for ldoce5).