Compare commits

..

18 Commits

Author SHA1 Message Date
Kevin Yue
8ca2610550 Release 1.4.9 2023-01-08 20:58:32 +08:00
Kevin Yue
acf184134a Updated VERSION, Bumped 1.4.8 –> 1.4.9 2023-01-08 20:58:21 +08:00
Kevin Yue
4a3f74f1c3
fix: update cmake version 2023-01-08 20:25:11 +08:00
Kevin Yue
b39983a0f8
fix: correct the package name 2023-01-08 19:57:36 +08:00
Kevin Yue
d6fa32d95d
fix: correct the package name 2023-01-08 19:48:48 +08:00
Kevin Yue
7c299f6e68
fix: correct the package name 2023-01-08 19:42:12 +08:00
Kevin Yue
25e8ccd07e fix: use the dev package 2023-01-08 19:25:43 +08:00
Kevin Yue
092123b075 fix: use qtkeychain package 2023-01-08 19:21:44 +08:00
Kevin Yue
feb2956cc1 fix: add qt5-tools 2023-01-08 17:44:56 +08:00
Kevin Yue
d356839859
fix: add libsecret-1-dev 2023-01-03 12:25:55 +08:00
Kevin Yue
2ff39fd14e
fix: add pkg-config 2023-01-03 11:39:35 +08:00
Kevin Yue
c3d300c807
fix: use cmake 3.16 2023-01-03 10:43:51 +08:00
Kevin Yue
ef43d10a70 fix: add missing build dependency 2023-01-02 20:27:52 +08:00
Kevin Yue
bd73466e48 ci: fix CI 2023-01-02 20:10:35 +08:00
Kevin Yue
cc2c0ae34e ci: fix CI 2023-01-02 19:56:45 +08:00
Kevin Yue
9207f7a798 Merge branch 'master' into develop 2023-01-02 19:47:58 +08:00
Kevin Yue
0adeaf9c28 fix: improve the cli support 2022-06-14 21:21:11 +08:00
Kevin Yue
fe64b2cd19 feat: add --reset option to gpclient 2022-06-14 21:14:16 +08:00
17 changed files with 101 additions and 57 deletions

View File

@ -30,6 +30,8 @@ find_package(Qt5 REQUIRED COMPONENTS
DBus
)
find_package(Qt5Keychain REQUIRED)
add_subdirectory(3rdparty/qt-unix-signals)
add_subdirectory(3rdparty/inih)
add_subdirectory(GPService)

View File

@ -64,17 +64,6 @@ add_3rdparty(
-DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE}
)
add_3rdparty(
qtkeychain
GIT_REPOSITORY https://github.com/frankosterfeld/qtkeychain.git
GIT_TAG master
CMAKE_ARGS
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE}
-DCMAKE_FIND_ROOT_PATH=${CMAKE_FIND_ROOT_PATH}
-DCMAKE_PREFIX_PATH=$ENV{CMAKE_PREFIX_PATH}
)
ExternalProject_Get_Property(SingleApplication-${PROJECT_NAME} SOURCE_DIR BINARY_DIR)
set(SingleApplication_INCLUDE_DIR ${SOURCE_DIR})
set(SingleApplication_LIBRARY ${BINARY_DIR}/libSingleApplication.a)
@ -82,15 +71,9 @@ set(SingleApplication_LIBRARY ${BINARY_DIR}/libSingleApplication.a)
ExternalProject_Get_Property(plog-${PROJECT_NAME} SOURCE_DIR)
set(plog_INCLUDE_DIR "${SOURCE_DIR}/include")
ExternalProject_Get_Property(qtkeychain-${PROJECT_NAME} SOURCE_DIR BINARY_DIR)
set(qtkeychain_INCLUDE_DIR "${SOURCE_DIR}")
set(qtkeychain_BINARY_DIR "${BINARY_DIR}")
set(qtkeychain_LIBRARY ${BINARY_DIR}/libqt5keychain.so)
add_dependencies(gpclient
SingleApplication-${PROJECT_NAME}
plog-${PROJECT_NAME}
qtkeychain-${PROJECT_NAME}
)
target_include_directories(gpclient PRIVATE
@ -99,13 +82,11 @@ target_include_directories(gpclient PRIVATE
${CMAKE_CURRENT_BINARY_DIR}
${SingleApplication_INCLUDE_DIR}
${plog_INCLUDE_DIR}
${qtkeychain_INCLUDE_DIR}
${qtkeychain_BINARY_DIR}
${QTKEYCHAIN_INCLUDE_DIRS}/qt5keychain
)
target_link_libraries(gpclient
${SingleApplication_LIBRARY}
${qtkeychain_LIBRARY}
Qt5::Widgets
Qt5::Network
Qt5::WebSockets
@ -113,6 +94,7 @@ target_link_libraries(gpclient
Qt5::WebEngineWidgets
Qt5::DBus
QtSignals
${QTKEYCHAIN_LIBRARIES}
)
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 8.0 AND CMAKE_BUILD_TYPE STREQUAL Release)

View File

@ -40,14 +40,6 @@ GPClient::GPClient(QWidget *parent, IVpn *vpn)
initVpnStatus();
}
GPClient::~GPClient()
{
delete ui;
delete vpn;
delete settingsDialog;
delete settingsButton;
}
void GPClient::setupSettings()
{
settingsButton = new QPushButton(this);
@ -114,7 +106,7 @@ void GPClient::initSystemTrayIcon()
connectAction = contextMenu->addAction(QIcon::fromTheme("preferences-system-network"), "Connect", this, &GPClient::doConnect);
contextMenu->addMenu(gatewaySwitchMenu);
contextMenu->addSeparator();
clearAction = contextMenu->addAction(QIcon::fromTheme("edit-clear"), "Reset", this, &GPClient::clearSettings);
clearAction = contextMenu->addAction(QIcon::fromTheme("edit-clear"), "Reset", this, &GPClient::reset);
quitAction = contextMenu->addAction(QIcon::fromTheme("application-exit"), "Quit", this, &GPClient::quit);
systemTrayIcon->show();
@ -487,7 +479,7 @@ void GPClient::setCurrentGateway(const GPGateway gateway)
populateGatewayMenu();
}
void GPClient::clearSettings()
void GPClient::reset()
{
settings::clear();
populateGatewayMenu();

View File

@ -21,7 +21,6 @@ class GPClient : public QMainWindow
public:
GPClient(QWidget *parent, IVpn *vpn);
~GPClient();
void activate();
void quit();
@ -33,6 +32,7 @@ public:
void setCurrentGateway(const GPGateway gateway);
void doConnect();
void reset();
private slots:
void onSettingsButtonClicked();
@ -81,8 +81,6 @@ private:
SettingsDialog *settingsDialog;
QPushButton *settingsButton;
GatewayAuthenticator *gatewayAuthenticator;
bool isQuickConnect { false };
bool isSwitchingGateway { false };
PortalConfigResponse portalConfig;
@ -102,7 +100,5 @@ private:
QList<GPGateway> allGateways() const;
void setAllGateways(QList<GPGateway> gateways);
void clearSettings();
};
#endif // GPCLIENT_H

View File

@ -46,6 +46,7 @@ int main(int argc, char *argv[])
{"json", "Write the result of the handshake with the GlobalConnect server to stdout as JSON and terminate. Useful for scripting."},
{"now", "Do not show the dialog with the connect button; connect immediately instead."},
{"start-minimized", "Launch the client minimized."},
{"reset", "Reset the client's settings."},
});
parser.process(app);
@ -55,7 +56,6 @@ int main(int argc, char *argv[])
? static_cast<IVpn*>(new VpnJson(nullptr)) // Print to stdout and exit
: static_cast<IVpn*>(new VpnDbus(nullptr)); // Contact GPService daemon via dbus
GPClient w(nullptr, vpn);
parser.isSet("start-minimized") ? w.showMinimized() : w.show();
if (positional.size() > 0) {
w.portal(positional.at(0));
@ -76,11 +76,20 @@ int main(int argc, char *argv[])
sigwatch.watchForSignal(SIGHUP);
QObject::connect(&sigwatch, &UnixSignalWatcher::unixSignal, &w, &GPClient::quit);
if (parser.isSet("json")) {
QObject::connect(static_cast<VpnJson*>(vpn), &VpnJson::connected, &w, &GPClient::quit);
}
if (parser.isSet("reset")) {
w.reset();
}
if (parser.isSet("now")) {
w.doConnect();
}
if (parser.isSet("json")) {
QObject::connect(static_cast<VpnJson*>(vpn), &VpnJson::connected, &w, &GPClient::quit);
} else if (parser.isSet("start-minimized")) {
w.showMinimized();
} else {
w.show();
}
return app.exec();

View File

@ -1 +1 @@
1.4.8
1.4.9

31
debian/changelog vendored
View File

@ -1,3 +1,34 @@
globalprotect-openconnect (1.4.9-1) unstable; urgency=medium
* Updated VERSION, Bumped 1.4.8 > 1.4.9
* fix: update cmake version
* fix: correct the package name
* fix: use the dev package
* fix: use qtkeychain package
* fix: add qt5-tools
* fix: add libsecret-1-dev
* fix: add pkg-config
* fix: use cmake 3.16
* fix: add missing build dependency
* ci: fix CI
* Merge branch 'master' into develop
* feat: expose os-version to settings
* Add two missing dependencies for building on debian (#198)
* ci: assert no library missing
* fix: update qtkeychain
* ci: run gpclient after build
* fix: add qtkeychain
* chore: update CMake file
* Added install instructions for MX Linux. (#190)
* Credentials autocompleting (secure version) (#179)
* Read all saved Gateways (for selecting in Systray) (#181)
* copy install script for debian (#180)
* add es and pt support to shange status when connected to vpn (#162)
* fix: improve the cli support
* feat: add --reset option to gpclient
-- Kevin Yue <k3vinyue@gmail.com> Sun, 08 Jan 2023 20:58:32 +0800
globalprotect-openconnect (1.4.8-1) unstable; urgency=medium
* Updated VERSION, Bumped 1.4.7 > 1.4.8

4
debian/control vendored
View File

@ -2,12 +2,12 @@ Source: globalprotect-openconnect
Section: net
Priority: optional
Maintainer: Kevin Yue <k3vinyue@gmail.com>
Build-Depends: cmake (>=3.10), debhelper (>=11~), qtbase5-dev, libqt5websockets5-dev (>=5.9), qtwebengine5-dev (>=5.9)
Build-Depends: cmake (>=3.10), pkg-config, debhelper (>=11~), qtbase5-dev, qttools5-dev, libqt5websockets5-dev (>=5.9), qtwebengine5-dev (>=5.9), qt5keychain-dev
Standards-Version: 4.1.4
Homepage: https://github.com/yuezk/GlobalProtect-openconnect
Package: globalprotect-openconnect
Architecture: any
Multi-Arch: foreign
Depends: ${misc:Depends}, ${shlibs:Depends}, openconnect (>=8.0), libqt5websockets5 (>=5.9), libqt5webengine5 (>=5.9)
Depends: ${misc:Depends}, ${shlibs:Depends}, openconnect (>=8.0), libqt5websockets5 (>=5.9), libqt5webengine5 (>=5.9), libqt5keychain1
Description: A GlobalProtect VPN client (GUI) based on OpenConnect.

View File

@ -1,7 +1,7 @@
# Maintainer: Keinv Yue <yuezk001@gmail.com>
_pkgver="1.4.8"
_commit="3559834762c1e450887e40c70ed6f775f5421903"
_pkgver="1.4.9"
_commit="acf184134a2ff19e4a39528bd6a7fbbafa4cf017"
pkgname=globalprotect-openconnect-git
pkgver=${_pkgver}
pkgrel=1
@ -13,7 +13,7 @@ backup=(
etc/gpservice/gp.conf
)
install=gp.install
depends=('openconnect>=8.0.0' qt5-base qt5-webengine qt5-websockets)
depends=('openconnect>=8.0.0' qt5-base qt5-webengine qt5-websockets qt5-tools qtkeychain-qt5)
makedepends=(git cmake)
conflicts=('globalprotect-openconnect')
provides=('globalprotect-openconnect' 'gpclient' 'gpservice')

View File

@ -13,7 +13,7 @@ backup=(
etc/gpservice/gp.conf
)
install=gp.install
depends=('openconnect>=8.0.0' qt5-base qt5-webengine qt5-websockets)
depends=('openconnect>=8.0.0' qt5-base qt5-webengine qt5-websockets qt5-tools qtkeychain-qt5)
makedepends=(git cmake)
conflicts=('globalprotect-openconnect')
provides=('globalprotect-openconnect' 'gpclient' 'gpservice')

View File

@ -1,3 +1,34 @@
-------------------------------------------------------------------
Sun Jan 8 12:58:32 UTC 2023 - k3vinyue@gmail.com - 1.4.9
- Update to 1.4.9
* Updated VERSION, Bumped 1.4.8 > 1.4.9
* fix: update cmake version
* fix: correct the package name
* fix: use the dev package
* fix: use qtkeychain package
* fix: add qt5-tools
* fix: add libsecret-1-dev
* fix: add pkg-config
* fix: use cmake 3.16
* fix: add missing build dependency
* ci: fix CI
* Merge branch 'master' into develop
* feat: expose os-version to settings
* Add two missing dependencies for building on debian (#198)
* ci: assert no library missing
* fix: update qtkeychain
* ci: run gpclient after build
* fix: add qtkeychain
* chore: update CMake file
* Added install instructions for MX Linux. (#190)
* Credentials autocompleting (secure version) (#179)
* Read all saved Gateways (for selecting in Systray) (#181)
* copy install script for debian (#180)
* add es and pt support to shange status when connected to vpn (#162)
* fix: improve the cli support
* feat: add --reset option to gpclient
-------------------------------------------------------------------
Sun Jun 12 12:28:58 UTC 2022 - k3vinyue@gmail.com - 1.4.8

View File

@ -1,5 +1,5 @@
Name: globalprotect-openconnect
Version: 1.4.8
Version: 1.4.9
Release: 1
Summary: A GlobalProtect VPN client powered by OpenConnect
Group: Productivity/Networking/PPP
@ -8,7 +8,7 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build
License: GPL-3.0
URL: https://github.com/yuezk/GlobalProtect-openconnect
Source0: %{name}.tar.gz
BuildRequires: cmake cmake(Qt5) cmake(Qt5Gui) cmake(Qt5WebEngine) cmake(Qt5WebSockets) cmake(Qt5DBus)
BuildRequires: cmake cmake(Qt5) cmake(Qt5Gui) cmake(Qt5WebEngine) cmake(Qt5WebSockets) cmake(Qt5DBus) cmake(Qt5Keychain)
BuildRequires: systemd-rpm-macros
Requires: openconnect >= 8.0
Conflicts: globalprotect-openconnect-snapshot

View File

@ -7,8 +7,7 @@ sudo apt-get install -y \
libqt5websockets5-dev \
qtwebengine5-dev \
qttools5-dev \
libsecret-1-dev \
qt5keychain-dev \
openconnect \
libqt5keychain1
./scripts/install.sh

View File

@ -4,7 +4,7 @@ sudo dnf install -y \
qt5-qtbase-devel \
qt5-qtwebengine-devel \
qt5-qtwebsockets-devel \
openconnect \
qtkeychain
qtkeychain-qt5-devel \
openconnect
./scripts/install.sh

View File

@ -4,7 +4,7 @@ sudo zypper install -y \
libqt5-qtbase-devel \
libqt5-qtwebsockets-devel \
libqt5-qtwebengine-devel \
openconnect \
qtkeychain-qt5
qtkeychain-qt5-devel \
openconnect
./scripts/install.sh

View File

@ -6,8 +6,8 @@ sudo apt-get install -y \
qtbase5-dev \
libqt5websockets5-dev \
qtwebengine5-dev \
qttools5-dev \
openconnect \
libqt5keychain1
qttools5-dev \
qt5keychain-dev \
openconnect
./scripts/install.sh

View File

@ -6,7 +6,9 @@ sudo apt-get install -y \
qtbase5-dev \
libqt5websockets5-dev \
qtwebengine5-dev \
qt5keychain-dev \
cmake \
qttools5-dev \
debhelper
mkdir -p build