Giter Club home page Giter Club logo

Comments (24)

biodranik avatar biodranik commented on May 28, 2024

Looks like the issue is caused by linking with system harfbuzz instead of using OM's harfbuzz.

CC @Ferenc-

from organicmaps.

Ferenc- avatar Ferenc- commented on May 28, 2024

linking with system harfbuzz

That is absolutely NOT an issue, and it transitively happens anyway on pretty much every Linux distro, because the system harfbuzz is typically dynamically linked to libQt6Gui.so.

Anyhow, I have tried out https://aur.archlinux.org/packages/organicmaps-git in a fresh new and reproducible X86_64 Arch Linux environment, and it builds and runs just fine on my end. So this issue must be specific to the user's current environment.
Also the fact that there is not a single organicmaps specific function call in the attached backtrace, but a whole lot of Qt specific ones hints at something wrong with the system provided Qt dependency.

from organicmaps.

biodranik avatar biodranik commented on May 28, 2024

I would check the build with harf-buzz linked dynamically from the system, by disabling the statically linked one from our repo.

from organicmaps.

Ferenc- avatar Ferenc- commented on May 28, 2024

I would check the build with harf-buzz linked dynamically from the system, by disabling the statically linked one from our repo.

I have checked, and haven't noticed any difference.

from organicmaps.

biodranik avatar biodranik commented on May 28, 2024

I meant @Popolon can check that. @Ferenc- can you please share your branch?

from organicmaps.

Popolon avatar Popolon commented on May 28, 2024

Ok, I can compile it another way if you give me some instructions about it. June version work, there are probably difference between june and jully version that could help?

from organicmaps.

Ferenc- avatar Ferenc- commented on May 28, 2024

The current master branch works just fine on my end. Please try the master branch and preferably in a fresh new and reproducible environment, because the backtrace you sent suggests a broken Qt.

from organicmaps.

pastk avatar pastk commented on May 28, 2024

June version work, there are probably difference between june and jully version that could help?

The desktop app was migrated to Qt6. June version was the last based on Qt5.

from organicmaps.

ioctl-user avatar ioctl-user commented on May 28, 2024

The same problem on fresh updated Archlinux with fresh build using AUR - Segmentation fault.

from organicmaps.

biodranik avatar biodranik commented on May 28, 2024

Is the crash log exactly the same?

Do you have an officially installed Qt6 package?

Qt is linked with harfbuzz dynamic lib. OM is linked with harfbuzz static lib. It can be the cause.

@Ferenc- did you test it on the same Linux version?

from organicmaps.

ioctl-user avatar ioctl-user commented on May 28, 2024

Is the crash log exactly the same?

I had to install older version: one which works with qt5 -- it was working.
But for now have no installation to test, because didn't find how to add new bookmark on the map.

So, cannot reproduce exact error message.

Do you have an officially installed Qt6 package?

Qt6 installed via package manager pacman.
Here is my qt6 package list (after organic maps was uninstalled):

local/qt6-5compat 6.6.2-1 (qt6)
local/qt6-base 6.6.2-4 (qt6)
local/qt6-declarative 6.6.2-1 (qt6)
local/qt6-imageformats 6.6.2-1 (qt6)
local/qt6-multimedia 6.6.2-1 (qt6)
local/qt6-multimedia-ffmpeg 6.6.2-1
local/qt6-svg 6.6.2-1 (qt6)
local/qt6-translations 6.6.2-1 (qt6)
local/qt6-wayland 6.6.2-1 (qt6)

The harfbuzz package version installed is 8.3.0-2 .

from organicmaps.

Ferenc- avatar Ferenc- commented on May 28, 2024

@ioctl-user as mentioned here before. You are kindly requested to provide some sort of, at least partially reproducible environment. Your personal system, that only you have access to and is broken in whatever way, does not help us here, and just adds noise to the conversation.

Here is a reproducible environment step-by-step:

  1. You get and install distrobox by whatever means.
  2. Pull the latests archlinux image:
podman pull quay.io/toolbx-images/archlinux-toolbox@sha256:cf7dd147c2b05b80132d4eb96c1b5ab44b3941f106f11c4bcf93d293d891dc43
  1. Create the archlinux box
distrobox create --image quay.io/toolbx-images/archlinux-toolbox@sha256:cf7dd147c2b05b80132d4eb96c1b5ab44b3941f106f11c4bcf93d293d891dc43 --name archlinux-latest
  1. Enter the box
distrobox enter archlinux-latest
  1. Build organicmaps with synched dependencies
cd /tmp
git clone https://aur.archlinux.org/organicmaps-git.git
cd organicmaps-git/
makepkg --syncdeps --yes
# You press Y twice when prompted for
# Proceed with installation? [Y/n] Y
  1. Install built package
makepkg --install
# You press Y when prompted for
# Proceed with installation? [Y/n] Y
  1. Start organicmaps
OMaps

And I have tried this many times. There was no sign of crash.

from organicmaps.

Popolon avatar Popolon commented on May 28, 2024

@Ferenc- Did you installed harfbuzz? it is needed by most of os packages.

from organicmaps.

Ferenc- avatar Ferenc- commented on May 28, 2024

Have you tried what is written here ? Have you not seen that harfbuzz 8.3.0-2 is installed in that environment?

from organicmaps.

ioctl-user avatar ioctl-user commented on May 28, 2024

@ioctl-user as mentioned here before. You are kindly requested to provide some sort of, at least partially reproducible environment. Your personal system, that only you have access to and is broken in whatever way, does not help us here, and just adds noise to the conversation.

No, I didn't tried steps you wrote above. But, I can believe, that if I will reproduce them, there will be no such error.

But I don't think there are many people, that really work in distrobox-created environment.
Unfortunately, this problem appears not only in my case.

from organicmaps.

Popolon avatar Popolon commented on May 28, 2024

I use harfbuzz 8.3.0-2, update all packages frequently, and have crash.

from organicmaps.

Popolon avatar Popolon commented on May 28, 2024

@ioctl-user do you use Wayland or X11. my desktop x86_64 where it crash is XFCE/X11, the one it work on aarc64/armv8 is Phosh/Wayland.

Does distrobox use Wayland, this could be a way to search. I will try by starting a Wayland session on the same computer.

For the branch, I use the PKGBUILD here: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=organicmaps-git So it uses master branch.

from organicmaps.

ioctl-user avatar ioctl-user commented on May 28, 2024

@ioctl-user do you use Wayland or X11. my desktop x86_64 where it crash is XFCE/X11, the one it work on aarc64/armv8 is Phosh/Wayland.

Does distrobox use Wayland, this could be a way to search. I will try by starting a Wayland session on the same computer.

For the branch, I use the PKGBUILD here: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=organicmaps-git So it uses master branch.

I'm running X11 on x86_64. Building organicmaps via paru and using makepkg also.

from organicmaps.

Popolon avatar Popolon commented on May 28, 2024

Tried with GNOME/Wayland session yesterday, same crash. I wonder, if that's just the fact to have some X11 libs installed? Some more clues, not sure it could help, I have harfbuzz + harfbuzz-icu both 8.3.0-2.

Harfbuzz-icu dependencies: libharfbuzz.so=0-64 libicuuc.so=74-64

As some functions names are missing in GDB. I wonder, how to obtain all debugs infos. ArchLinux doesn't divide .so and "*-dev" packages as Debian and derivatives.

from organicmaps.

biodranik avatar biodranik commented on May 28, 2024

You can try to link Harfbuzz dynamically instead of building it in OM. There is a big chance that your crash is related. Check previous PRs by @Ferenc-

from organicmaps.

Popolon avatar Popolon commented on May 28, 2024

When I look at CMake options I don't find anything related to harfbuzz:

cmake -LAH| grep -i harf

The only options related to shared libs obtained with

cmake -LAH| grep -i SHARED

Are here:

--   Shared libraries ........... OFF
C compiler: GNU
Building with Qt Positioning
CMAKE_INSTALL_SHAREDSTATEDIR:PATH=com
// Flags used by the linker during the creation of shared libraries during all build types.
CMAKE_SHARED_LINKER_FLAGS:STRING=
// Flags used by the linker during the creation of shared libraries during DEBUG builds.
CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=
// Flags used by the linker during the creation of shared libraries during MINSIZEREL builds.
CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=
// Flags used by the linker during the creation of shared libraries during RELEASE builds.
CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=
// Flags used by the linker during the creation of shared libraries during RELWITHDEBINFO builds.
CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=
// If set, runtime paths are not added when installing shared libraries, but are added when building.
// If set, runtime paths are not added when using shared libraries.
// Build a shared expat library
EXPAT_SHARED_LIBS:BOOL=OFF
// Build shared libraries.
JANSSON_BUILD_SHARED_LIBS:BOOL=OFF
// Use shared (DLL) run-time lib even when Google Test is built as static lib.
gtest_force_shared_crt:BOOL=OFF
// Build gtest with internal symbols hidden in shared libraries.

from organicmaps.

biodranik avatar biodranik commented on May 28, 2024

https://github.com/organicmaps/organicmaps/blob/master/3party/CMakeLists.txt#L50

from organicmaps.

Popolon avatar Popolon commented on May 28, 2024

Suppressed the line with harfbuzz, remade the package, and it works this way with last release (2024_03_05)

from organicmaps.

biodranik avatar biodranik commented on May 28, 2024

Harfbuzz should be moved into system deps for Linux builds because of its conflict with Qt.

from organicmaps.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.