mhogomchungu / sirikali

A Qt/C++ GUI front end to sshfs, ecryptfs-simple, cryfs, gocryptfs, securefs, fscrypt and encfs
http://mhogomchungu.github.io/sirikali
GNU General Public License v3.0
778 stars 59 forks source link

update from old `libKF5Wallet.so.5` to version 6 #277

Closed allergicapple closed 3 weeks ago

allergicapple commented 3 weeks ago

Using the current version of kwallet, kwalletd6, I was sursprised sirikali depends on the older kwalletd5 as it fails on startup with

$ sirikali
sirikali: error while loading shared libraries: libKF5Wallet.so.5: cannot open shared object file: No such file or directory

Please update to the current version 6 of kwallet, which is a dependency of e.g. plasma-workspace, kio and other packages.

mhogomchungu commented 3 weeks ago

Qt6 build should depend on kwalletd6.

How did you build SiriKali and can you post cmake output?

allergicapple commented 3 weeks ago

It's from AUR: https://aur.archlinux.org/packages/sirikali-bin

allergicapple commented 3 weeks ago

So I understand there is a Qt6 version but the package provider chose Qt5?

mhogomchungu commented 3 weeks ago

That AUR use binaries that were build for Qt5 and for debian.

Build SiriKali yourself using AUR from here: https://aur.archlinux.org/packages/sirikali

Read the first comment and do as it says first.

allergicapple commented 3 weeks ago

I've seen your AUR package but it also depends on qt5-base so I figured it wouldn't make a difference.

mhogomchungu commented 3 weeks ago

The project can be build as Qt5 or Qt6 and what do you recommend? It stay defaulted to Qt5 or switch to Qt6?

allergicapple commented 3 weeks ago

For me it's the only qt5-package left and pulls in a large stack of dependencies just for kwallet5 (which now runs besides kwallet6 and Sirikali is the only program using kwallet5).

It's entirely your decision. As Debian seems to default to Qt5, maybe add another sirikali-qt6 to open up that path. Or make Qt6 default and add an sirikali-qt5.

I am not a maintainer/packager myself so I've got no experience on how to manage this.

mhogomchungu commented 3 weeks ago

You can disable compile time dependency on kwallet and SiriKali will switch to a run time dependency through dbus and i think this should be the default,

allergicapple commented 3 weeks ago

I'm compiling now from source, with kwallet (version 6) installed and kwallet5 not installed. It fails now differently, I'll have to investigate... later

mhogomchungu commented 3 weeks ago

Post your output here

allergicapple commented 3 weeks ago

It seems to compile now for lxqt_wallet and detects qt5 but not qt6


-- The C compiler identification is GNU 14.2.1
-- The CXX compiler identification is GNU 14.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Setting C++ version to C++14
-- Found PkgConfig: /usr/bin/pkg-config (found version "2.1.1")
-- Checking for module 'pwquality'
--   Found pwquality, version 1.4.5
-- found gcrypt header file at: /usr/include/gcrypt.h
-- found gcrypt library at: /usr/lib/libgcrypt.so
-- adding library search path of: /usr/lib
-- Found Qt5Widgets, version  5.15.15
-- Found Qt5Core, version  5.15.15
-- Found Qt5Network, version  5.15.15
-- Found Qt5DBus, version  5.15.15
-- ---------------------------------------------------------------------------
-- mhogomchungu_task library will be provided by an internal library
-- ---------------------------------------------------------------------------
-- Checking for module 'lxqt-wallet'
--   Package 'lxqt-wallet', required by 'virtual:world', not found
-- ERROR: could not find lxqt_wallet package
-- ---------------------------------------------------------------------------
-- lxqt wallet support will be provided by an internal library
-- ---------------------------------------------------------------------------
-- Found gcrypt header file: /usr/include/gcrypt.h
-- Found gcrypt library: /usr/lib/libgcrypt.so
-- Checking for modules 'KF5Wallet'
-- 
--------------------------------------------------------------------------
-- kwallet support NOT found, support will be discovered at runtime through dbus
-- -----------------------------------------------------------------------
-- 
--------------------------------------------------------------------------
-- libsecret support found,will build libsecret functionality
-- -----------------------------------------------------------------------
-- ---------------------------------------------------------------------------
-- Building GUI components using Qt5
-- ---------------------------------------------------------------------------
$ pacman -Q kwallet
kwallet 6.7.0-1.1
$ sirikali
qt.qpa.plugin: Could not find the Qt platform plugin "wayland-egl" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, xcb.

Aborted (core dumped)
allergicapple commented 3 weeks ago

And there is still the hard dependency on qt5-base:

$ yay -S sirikali
AUR Explicit (1): sirikali-1.6.0-1
Sync Dependency (1): qt5-base-5.15.15+kde+r140-1.1
:: (1/1) Downloaded PKGBUILD: sirikali
mhogomchungu commented 3 weeks ago

What desktop environment are you using?

The problem is with your Qt5 install and its missing "wayland-egl"

allergicapple commented 3 weeks ago

fastfetch:

DE: labwc:wlroots
WM: labwc (Wayland)
$ pacman -Q | grep qt5

(nothing)

$ pacman -Q | grep qt6
kdsoap-qt6 2.2.0-1
libqaccessibilityclient-qt6 0.6.0-1
phonon-qt6 4.12.0-4
polkit-qt6 0.200.0-1
poppler-qt6 24.09.0-4.1
python-pyqt6 6.8.0dev2410211537-2
python-pyqt6-sip 13.8.0-1.1
qca-qt6 2.3.9-3
qt6-5compat 6.8.0-1.1
qt6-base 6.8.0-1.1
qt6-connectivity 6.8.0-1.1
qt6-declarative 6.8.0-4.1
qt6-imageformats 6.8.0-1.1
qt6-multimedia 6.8.0-1.1
qt6-multimedia-ffmpeg 6.8.0-1.1
qt6-positioning 6.8.0-1.1
qt6-scxml 6.8.0-1.1
qt6-sensors 6.8.0-1.1
qt6-shadertools 6.8.0-1.1
qt6-speech 6.8.0-1.1
qt6-svg 6.8.0-1.1
qt6-tools 6.8.0-1.1
qt6-translations 6.8.0-1
qt6-virtualkeyboard 6.8.0-1.1
qt6-wayland 6.8.0-1.1
qt6-webchannel 6.8.0-1.1
qt6-webengine 6.8.0-7.1

There is no Qt5 in the system, at all. It only gets installed through sirikali.

mhogomchungu commented 3 weeks ago

You are better off with Qt6 build, can you change dependency to "qt6-base" and see if it build successfully?

I do not have an arch install at the moment so testing for arch is impossible for me.

mhogomchungu commented 3 weeks ago

I have switched AUR to build for Qt6 by default.

allergicapple commented 3 weeks ago

Incredible! However...

$ yay -S sirikali
AUR Explicit (1): sirikali-1.6.0-2
:: (1/1) Downloaded PKGBUILD: sirikali
  1 sirikali                         (Build Files Exist)
==> Packages to cleanBuild?
==> [N]one [A]ll [Ab]ort [I]nstalled [No]tInstalled or (1 2 3, 1-3, ^4)
==> a
:: Deleting (1/1): /home/user/.cache/yay/sirikali
HEAD is now at 1d5e841 switch default build dependency to Qt6 from Qt5
  1 sirikali                         (Build Files Exist)
==> Diffs to show?
==> [N]one [A]ll [Ab]ort [I]nstalled [No]tInstalled or (1 2 3, 1-3, ^4)
==> 
==> Making package: sirikali 1.6.0-2 (Mi 06 Nov 2024 19:29:19 CET)
==> Retrieving sources...
  -> Downloading SiriKali-1.6.0.tar.xz...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 1564k  100 1564k    0     0  1809k      0 --:--:-- --:--:-- --:--:-- 6831k
  -> Downloading SiriKali-1.6.0.tar.xz.asc...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100   801  100   801    0     0   1395      0 --:--:-- --:--:-- --:--:--  1395
==> WARNING: Skipping verification of source file PGP signatures.
==> Validating source files with sha256sums...
    SiriKali-1.6.0.tar.xz ... Passed
    SiriKali-1.6.0.tar.xz.asc ... Skipped
:: (1/1) Parsing SRCINFO: sirikali
pub   rsa4096 2018-02-24 [SC]
      6855E493B5B2DF96E319BB6D16E2E1ACC6F51242
uid           [ unknown] Francis Banyikwa (A key for signing packages) <banyikwafb@gmail.com>
sub   rsa4096 2018-02-24 [E]

==> Making package: sirikali 1.6.0-2 (Mi 06 Nov 2024 19:29:21 CET)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Found SiriKali-1.6.0.tar.xz
  -> Found SiriKali-1.6.0.tar.xz.asc
==> Validating source files with sha256sums...
    SiriKali-1.6.0.tar.xz ... Passed
    SiriKali-1.6.0.tar.xz.asc ... Skipped
==> Verifying source file signatures with gpg...
    SiriKali-1.6.0.tar.xz ... Passed
==> Removing existing $srcdir/ directory...
==> Extracting sources...
  -> Extracting SiriKali-1.6.0.tar.xz with bsdtar
==> Starting prepare()...
==> Sources are ready.
==> Making package: sirikali 1.6.0-2 (Mi 06 Nov 2024 19:29:24 CET)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> WARNING: Using existing $srcdir/ tree
==> Starting build()...
CMake Warning:
  Ignoring extra path from command line:

   "/home/user/.cache/yay/sirikali/src/SiriKali-1.6.0/build"

CMake Warning:
  Ignoring extra path from command line:

   "."

-- The C compiler identification is GNU 14.2.1
-- The CXX compiler identification is GNU 14.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Setting C++ version to C++14
-- Found PkgConfig: /usr/bin/pkg-config (found version "2.1.1")
-- Checking for module 'pwquality'
--   Found pwquality, version 1.4.5
-- found gcrypt header file at: /usr/include/gcrypt.h
-- found gcrypt library at: /usr/lib/libgcrypt.so
-- adding library search path of: /usr/lib
CMake Error at CMakeLists.txt:149 (find_package):
  By not providing "FindQt5.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "Qt5", but
  CMake did not find one.

  Could not find a package configuration file provided by "Qt5" with any of
  the following names:

    Qt5Config.cmake
    qt5-config.cmake

  Add the installation prefix of "Qt5" to CMAKE_PREFIX_PATH or set "Qt5_DIR"
  to a directory containing one of the above files.  If "Qt5" provides a
  separate development package or SDK, be sure it has been installed.

-- Configuring incomplete, errors occurred!
==> ERROR: A failure occurred in build().
    Aborting...
 -> error making: sirikali-exit status 4
 -> Failed to install the following packages. Manual intervention is required:
sirikali - exit status 4
$
mhogomchungu commented 3 weeks ago

I made an update that solved the problem, it should have automatically switch to Qt6 build.

allergicapple commented 3 weeks ago

Yes, it compiles and works now, huge thanks!

allergicapple commented 3 weeks ago

I hope this was not too interrupting and just something you wanted to do anyway