oguzhaninan / Buka

Buka is a modern software that helps you manage your ebook at ease.
GNU General Public License v3.0
1.09k stars 119 forks source link

Harfbuzz version too old #53

Open cdutsov opened 4 years ago

cdutsov commented 4 years ago

Hello,

I've tried installing Buka from arch linux's AUR but when I run it I get the following error:

(Buka:70766): Pango-ERROR **: 15:47:38.639: Harfbuzz version too old (1.3.1)

I have tried to run LD_PRELOAD=/usr/lib/libharfbuzz.so.0 Buka, but the error is the same. strace shows that used library is openat(AT_FDCWD, "/usr/lib/libharfbuzz.so.0", O_RDONLY|O_CLOEXEC) = 3 I have installed harfbuzz version 2.6.4-2 and pango ver. ango 1:1.44.7+11+g73b46b04-1

mybigman commented 4 years ago

same issue on fedora 32 :/

ghost commented 4 years ago

Here are 3 methods to fix this issue - Pango-ERROR : Harfbuzz version too old (1.3.1)

Method 1 (patch): Revert back to Pango 1.43. In terminal: sudo dnf downgrade --releasever 30 pango-1.43.0-4.fc30.x86_64 Buka will now work, but the user is required to exclude pango during updates. in terminal: sudo dnf update --exclude pango,pango-devel,nemo, nemo-extension

Method 2: Install from source. Go to https://github.com/oguzhaninan/Buka and follow the "Build from source" section.

Method 3: Change the text, include a license in the JSON, and build the RPM. The RPM was successfully created using rpm-builder, and electron-installer-redhat. A SPDX license was required in the package JSON for the RPM build.

sherpya commented 4 years ago

I have same problem with AppImage but my harfbuzz is not 1.3.1

dpkg -l libharfbuzz0b
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                Version      Architecture Description
+++-===================-============-============-=============================================
ii  libharfbuzz0b:amd64 2.6.4-1      amd64        OpenType text shaping engine (shared library)
ii  libharfbuzz0b:i386  2.6.4-1      i386         OpenType text shaping engine (shared library)

and I don't see harfbuzz or pango inside the AppImage

alexxtasi commented 4 years ago

Same thing here in Solus Linux (Solus 4.1 Fortitude / Linux 5.6.4-152.current) Tried to use Buka-1.0.0-x86_64.AppImage but when run ./Buka*.AppImage this error occurred:

(buka:5561): Pango-ERROR **: 23:52:30.520: Harfbuzz version too old (1.3.1)

and a quick search in my system's packages shows: harfbuzz-error

any advice ?

augusnunes commented 4 years ago

Same error at Ubuntu 20.04

$ dpkg -l libharfbuzz0b
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                Version        Architecture Description
+++-===================-==============-============-=============================================
ii  libharfbuzz0b:amd64 2.6.4-1ubuntu4 amd64        OpenType text shaping engine (shared library)
ii  libharfbuzz0b:i386  2.6.4-1ubuntu4 i386         OpenType text shaping engine (shared library)
blogdron commented 4 years ago

same issue on Debian testing bullseye

ii  libharfbuzz0b:amd64 2.6.7-1      amd64        OpenType text shaping engine (shared library)
ii  libharfbuzz0b:i386  2.6.7-1      i386         OpenType text shaping engine (shared library)
tmadushan commented 4 years ago

Same on Atom, Ubuntu 20.04

usr/bin/atom: line 127: 27668 Trace/breakpoint trap   (core dumped) nohup "$ATOM_PATH" --executed-from="$(pwd)" --pid=$$ "$@" > "$ATOM_HOME/nohup.out" 2>&1

(atom:27668): Pango-ERROR **: 15:55:32.705: Harfbuzz version too old (1.4.2)
ghost commented 4 years ago

Ubuntu 20.04 x64 .deb package

A working Debian package was created and Buka was installed successfully on a fresh install of Ubuntu 20.04.
The required Pango libraries were added to the data tarball of the Debian package, and a new package was created using npm electron-installer-debian.

Here is a link to the Debian package:

buka_1.0.0_amd64.deb The package can be installed and executed using "buka" in terminal or search for the Buka application.

To create and install the Debian package:

1.) Install the required dependencies.

In terminal: sudo apt install gconf-service gconf2 libcanberra-gtk-module

2.) Get the original deb file: Buka_1.0.0_amd64.deb

3.) Get the correct libraries.

Get https://packages.ubuntu.com/focal/libs/libpango-1.0-0 https://packages.ubuntu.com/focal/libpangocairo-1.0-0 https://packages.ubuntu.com/focal/libpangoft2-1.0-0 Open these files using Archive Manager. For each package: Navigate to ./usr/lib/x86_64-linux-gnu/ Extract both files in this location e.g. libpango-1.0.so.0, libpango-1.0.so.0.4200.3 Store all 6 in a folder.

4.) Add Pango libraries to data tarball of original Debian package.

4a.) Extract Data tarball. Extract Debian package: Buka_1.0.0_amd64.deb Extract Data tarball: data.tar.xz Inside Data, navigate to /usr/lib/Buka/ Copy this path. Open terminal in this folder and 'pwd' to get path. 4b.) Add the Pango libraries. Open terminal in the folder that contains the 6 Pango library files. Move these files to the Data tarball location copied above.

5.) Install npm requirements to build and package the project.

In terminal: sudo apt install npm && sudo npm install -g electron-installer-debian && sudo npm install electron-packager -g

6.) Create the debian.json configuration file.

6a.) Download Buka project icon: https://github.com/oguzhaninan/Buka/blob/master/assets/img/icon.png Inside Data folder, navigate to usr/lib/ There should be a Buka folder in this location. 6b.) Create a new file called debian.json and add this to file: ``` { "dest": "release-builds/", "icon": "icon.png", "categories": [ "Utility" ], "lintianOverrides": [ "changelog-file-missing-in-native-package" ] } ``` Include the correct location of the icon.png file. In this example, it is in the data/usr/lib/ folder. Save and close file.

7.) Build the Debian package.

Inside the ../data/usr/lib/ folder should be: Buka folder, icon.png, and debian.json . Run the following npm command in terminal: ``` sudo electron-installer-debian --src Buka --arch amd64 --config debian.json ``` After this completes, the Debian package will be location in a new folder called release-builds.