Gpclient for PureOS

This came to a dead end because it needs rust 1.75 while we only have 1.48.0:

$ apt info rustc
Package: rustc
Version: 1.48.0+dfsg1-2
Priority: optional
Section: rust
Maintainer: Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net>
Installed-Size: 5,079 kB
Depends: libc6 (>= 2.17), libgcc-s1 (>= 3.0), libstd-rust-dev (= 1.48.0+dfsg1-2), gcc, libc-dev, binutils (>= 2.26)
Recommends: cargo (>= 0.49.0~~), cargo (<< 0.50.0~~), rust-gdb | rust-lldb
Suggests: rust-doc, rust-src, lld-11
Breaks: libstd-rust-dev (<< 1.25.0+dfsg1-2~~)
Replaces: libstd-rust-dev (<< 1.25.0+dfsg1-2~~)
Homepage: http://www.rust-lang.org/
Download-Size: 1,846 kB
APT-Manual-Installed: yes
APT-Sources: https://repo.pureos.net/pureos byzantium/main arm64 Packages
2 Likes

I guess the question would be … what version of rust comes with crimson? In other words, when crimson gets released, is it worth having another go? Maybe @FranklyFlawless can provide that version info.

1 Like
sudo apt list rustc
[sudo] password for purism:

Listing... Done
rustc/landing 1.63.0+dfsg1-2 arm64

In the chat in the issue tracker I said:

On my FreeBSD laptop I have:

globalprotect-openconnect-1.4.9_1.pkg
rust-1.72.0.pkg

gpclient --version
2024-06-26 07:11:14.174 INFO  [100698] ***@***.*** GlobalProtect started, version: 1.4.9

Why we’re even with crimson so far behind?

A side question: Why is the uname -m aarch64 and the packages are for arm64?

1 Like

Not sure, but @yuezk provided a suggestion to manually install the openconnect binary with a later version. Did you try it yet?

I tried a lot of installing from the PPA or even downloading and install, but all failed. See here: installing with add-apt-repository ppa:yuezk/globalprotect-openconnect uses wrong pubring · Issue #380 · yuezk/GlobalProtect-openconnect · GitHub

Maybe because I’m not used to the apt-get and/or dpkg tools. Someone else should give it a go.

In general, I would prefer an installation from byzantium’s repositories or a compilation from source, as we talk about security related software.

1 Like

@yuezk commented in building from source on PureOS (Debian) · Issue #382 · yuezk/GlobalProtect-openconnect · GitHub :slight_smile:

1.4.9 was written in C++, while 2.x was refactored using Rust. 
And the Rust version is at least 1.75.

Said that and looking at our version of rust, the only option is compiling this older version from source (as also FreeBSD does)

1 Like

Compiling from C++ sources needs cmake 3.21.2 and some other stuff to build from:

itay-grudev-SingleApplication-v3.3.0_GH0.tar.gz
SergiusTheBest-plog-1.1.6_GH0.tar.gz
yuezk-GlobalProtect-openconnect-v1.4.9_GH0.tar.gz

At least this way it is build in FreeBSD and could be checked there. The cmake in our L5 is only

$ cmake --version
cmake version 3.18.4

CMake suite maintained and supported by Kitware (kitware.com/cmake).
1 Like

Running cmake it stops with

purism@pureos:~/FreeBSD/GlobalProtect-openconnect-1.4.9$ ./scripts/install.sh
-- CMAKE_INSTALL_PREFIX was set to: /usr
CMake Error at /usr/lib/aarch64-linux-gnu/cmake/Qt5/Qt5Config.cmake:28 (find_package):
  Could not find a package configuration file provided by "Qt5WebEngine" with
  any of the following names:

    Qt5WebEngineConfig.cmake
    qt5webengine-config.cmake

  Add the installation prefix of "Qt5WebEngine" to CMAKE_PREFIX_PATH or set
  "Qt5WebEngine_DIR" to a directory containing one of the above files.  If
  "Qt5WebEngine" provides a separate development package or SDK, be sure it
  has been installed.
Call Stack (most recent call first):
  CMakeLists.txt:23 (find_package)


-- Configuring incomplete, errors occurred!

I’ve install everything which smells of qt5webengine*:

sudo apt install qtbase5-dev
sudo apt install qtdeclarative5-dev
sudo apt install libqt5websockets5
sudo apt install libqt5websockets5-dev
sudo apt install libqt5webengine5
sudo apt install libqt5webchannel5-dev
sudo apt install libqt5webenginewidgets5
sudo apt install libqt5webkit5-dev
sudo apt install libqt5webview5-dev

apt search qt5web* | grep byzantium | grep  installed
libqt5webchannel5/byzantium,now 5.15.2-2 arm64 [installed,automatic]
libqt5webchannel5-dev/byzantium,now 5.15.2-2 arm64 [installed]
libqt5webengine-data/byzantium,now 5.15.2+dfsg-3 all [installed,automatic]
libqt5webengine5/byzantium,now 5.15.2+dfsg-3 arm64 [installed]
libqt5webenginecore5/byzantium,now 5.15.2+dfsg-3 arm64 [installed,automatic]
libqt5webenginewidgets5/byzantium,now 5.15.2+dfsg-3 arm64 [installed]
libqt5webkit5/byzantium,now 5.212.0~alpha4-11 arm64 [installed,automatic]
libqt5webkit5-dev/byzantium,now 5.212.0~alpha4-11 arm64 [installed]
libqt5websockets5/byzantium,now 5.15.2-2 arm64 [installed]
libqt5websockets5-dev/byzantium,now 5.15.2-2 arm64 [installed]
libqt5webview5/byzantium,now 5.15.2-2 arm64 [installed,automatic]
libqt5webview5-dev/byzantium,now 5.15.2-2 arm64 [installed]


ls -C1d /usr/lib/aarch64-linux-gnu/cmake/Qt5Web*
/usr/lib/aarch64-linux-gnu/cmake/Qt5WebChannel
/usr/lib/aarch64-linux-gnu/cmake/Qt5WebKit
/usr/lib/aarch64-linux-gnu/cmake/Qt5WebKitWidgets
/usr/lib/aarch64-linux-gnu/cmake/Qt5WebSockets
/usr/lib/aarch64-linux-gnu/cmake/Qt5WebView

How could I get:

    Qt5WebEngineConfig.cmake
    qt5webengine-config.cmake
1 Like

@FranklyFlawless , what gives this search in crimson:

apt search qt5webengine
1 Like
purism@pureos:~$ apt search qt5webengine
Sorting... Done
Full Text Search... Done
libqt5webengine-data/landing 5.15.16+dfsg-5 all
  Web content engine library for Qt - Data

libqt5webengine5/landing 5.15.16+dfsg-5 arm64
  Web content engine library for Qt

libqt5webenginecore5/landing 5.15.16+dfsg-5 arm64
  Web content engine library for Qt - Core

libqt5webenginewidgets5/landing 5.15.16+dfsg-5 arm64
  Web content engine library for Qt - Widget
1 Like

Globalprotect gives me so many issues at work lol. Not related to your topic other than this being GlobalProtect

1 Like

@dos , do you have an idea from where to get those missing package?

1 Like

https://packages.debian.org/search?suite=bullseye&arch=any&mode=exactfilename&searchon=contents&keywords=Qt5WebEngineConfig.cmake

1 Like

Thank you! With this and another pkg I’ve got it made:

sudo apt install qtwebengine5-dev
sudo apt install qt5keychain-dev



...
[ 98%] Building CXX object GPClient/CMakeFiles/gpclient.dir/gpclient_autogen/EWIEGA46WW/qrc_resources.cpp.o
[100%] Linking CXX executable gpclient
[100%] Built target gpclient
-- Install configuration: "Release"
-- Installing: /usr/bin/gpservice
-- Installing: /usr/share/dbus-1/system.d/com.yuezk.qt.GPService.conf
-- Installing: /usr/share/dbus-1/system-services/com.yuezk.qt.GPService.service
-- Installing: /etc/gpservice/gp.conf
-- Installing: /usr/lib/systemd/system/gpservice.service
-- Installing: /usr/bin/gpclient
...

and it works fine, see attached screen; I can SSH into my company’s network directly from the L5.

3 Likes

The installation process install something to launch the app gpclient from the desktop the usual way and the icon with a question mark launches the app fine. But, why it does nos show the prepared icon:

purism@pureos:~$ grep 'Icon=' /usr/share/applications/com.yuezk.qt.gpclient.desktop
Icon=com.yuezk.qt.gpclient
purism@pureos:~$ ls -l /usr/share/icons/hicolor/scalable/apps/com.yuezk.qt.gpclient.svg
-rw-r--r-- 1 root root 6885 Jan  8  2023 /usr/share/icons/hicolor/scalable/apps/com.yuezk.qt.gpclient.svg

The file /usr/share/icons/hicolor/scalable/apps/com.yuezk.qt.gpclient.svg is fine, see attachment (I converted it to JPEG for the forum here):

[guru@c720-1400094 ~]$ convert com.yuezk.qt.gpclient.svg com.yuezk.qt.gpclient.jpg
[guru@c720-1400094 ~]$

com.yuezk.qt.gpclient

I copied the desktop file to .local and the icon shows up nicely:

$ cat .local/share/applications/com.yuezk.qt.gpclient.desktop 
[Desktop Entry]

Type=Application
Version=1.0
Name=GlobalProtect VPN
Comment=A GlobalProtect VPN client (GUI) for Linux based on OpenConnect and built with Qt5, supports SAML auth mode.
GenericName=GlobalProtect VPN client, supports SAML auth mode
Categories=Network;Dialup;
Exec=env QT_AUTO_SCREEN_SCALE_FACTOR=1 /usr/bin/gpclient
Icon=/usr/share/icons/hicolor/scalable/apps/com.yuezk.qt.gpclient.svg
Keywords=GlobalProtect;Openconnect;SAML;connection;VPN;
StartupWMClass=gpclient
1 Like