update packaging

This commit is contained in:
Kevin Yue 2021-09-12 11:15:41 +08:00
parent a70340ce55
commit 2cbce0be3f
5 changed files with 73 additions and 197 deletions

View File

@ -3,6 +3,7 @@
#include "enhancedwebview.h"
#include <QStandardPaths>
#include <QProcessEnvironment>
#include <plog/Log.h>
#include <plog/Appenders/ColorConsoleAppender.h>
@ -28,6 +29,8 @@ int main(int argc, char *argv[])
qputenv(ENV_CDP_PORT, "12315");
}
PLOGI << "ENV: " << QProcessEnvironment::systemEnvironment().toStringList().join("\n");
SingleApplication app(argc, argv);
app.setQuitOnLastWindowClosed(false);

View File

@ -1,6 +1,6 @@
TARGET = gpservice
QT += dbus
#QT += dbus
QT -= gui
CONFIG += c++11 console
@ -21,32 +21,32 @@ DEFINES += QT_DEPRECATED_WARNINGS
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
HEADERS += \
gpservice.h \
# gpservice.h \
sigwatch.h
SOURCES += \
gpservice.cpp \
# gpservice.cpp \
main.cpp \
sigwatch.cpp
DBUS_ADAPTORS += gpservice.xml
#DBUS_ADAPTORS += gpservice.xml
# Default rules for deployment.
target.path = /usr/bin
INSTALLS += target
DISTFILES += \
dbus/com.yuezk.qt.GPService.conf \
dbus/com.yuezk.qt.GPService.service \
systemd/gpservice.service
#DISTFILES += \
# dbus/com.yuezk.qt.GPService.conf \
# dbus/com.yuezk.qt.GPService.service \
# systemd/gpservice.service
dbus_config.path = /usr/share/dbus-1/system.d/
dbus_config.files = dbus/com.yuezk.qt.GPService.conf
#dbus_config.path = /usr/share/dbus-1/system.d/
#dbus_config.files = dbus/com.yuezk.qt.GPService.conf
dbus_service.path = /usr/share/dbus-1/system-services/
dbus_service.files = dbus/com.yuezk.qt.GPService.service
#dbus_service.path = /usr/share/dbus-1/system-services/
#dbus_service.files = dbus/com.yuezk.qt.GPService.service
systemd_service.path = /etc/systemd/system/
systemd_service.files = systemd/gpservice.service
#systemd_service.path = /etc/systemd/system/
#systemd_service.files = systemd/gpservice.service
INSTALLS += dbus_config dbus_service systemd_service
#INSTALLS += dbus_config dbus_service systemd_service

View File

@ -5,6 +5,7 @@
#include <QtDBus>
#include <QDateTime>
#include <QVariant>
#include <QProcessEnvironment>
GPService::GPService(QObject *parent)
: QObject(parent)
@ -99,22 +100,16 @@ void GPService::connect(QString server, QString username, QString passwd, QStrin
return;
}
log("Before findBinary");
// QString bin = findBinary();
// log("After findBinary");
// if (bin == nullptr) {
// log("Could not find openconnect binary, make sure openconnect is installed, exiting.");
// emit error("The OpenConect CLI was not found, make sure it has been installed!");
// return;
// }
QString bin = findBinary();
if (bin == nullptr) {
log("Could not find openconnect binary, make sure openconnect is installed, exiting.");
emit error("The OpenConect CLI was not found, make sure it has been installed!");
return;
}
QStringList args;
args << QCoreApplication::arguments().mid(1)
<< "--protocol=gp"
<< "-s" << qgetenv("VPNC_SCRIPT")
<< splitCommand(extraArgs)
<< "-u" << username
<< "-C" << passwd
@ -122,7 +117,9 @@ void GPService::connect(QString server, QString username, QString passwd, QStrin
log("Start process with arugments: " + args.join(" "));
openconnect->start("openconnect", args);
log("ENV for OC: " + openconnect->environment().join("\n"));
log("ENV for gpservice: " + QProcessEnvironment::systemEnvironment().toStringList().join("\n"));
openconnect->start(bin, args);
}
void GPService::disconnect()

View File

@ -1,26 +1,33 @@
#include <QtDBus>
#include "gpservice.h"
//#include "gpservice.h"
#include "singleapplication.h"
#include "sigwatch.h"
#include "iostream"
//#include <QtDBus>
#include <QProcessEnvironment>
int main(int argc, char *argv[])
{
SingleApplication app(argc, argv);
if (!QDBusConnection::systemBus().isConnected()) {
qWarning("Cannot connect to the D-Bus session bus.\n"
"Please check your system settings and try again.\n");
return 1;
}
// if (!QDBusConnection::systemBus().isConnected()) {
// qWarning("Cannot connect to the D-Bus session bus.\n"
// "Please check your system settings and try again.\n");
// return 1;
// }
GPService service;
// GPService service;
QString env = "ENV: " + QProcessEnvironment::systemEnvironment().toStringList().join("\n");
std::cout << env.toStdString();
UnixSignalWatcher sigwatch;
sigwatch.watchForSignal(SIGINT);
sigwatch.watchForSignal(SIGTERM);
sigwatch.watchForSignal(SIGQUIT);
sigwatch.watchForSignal(SIGHUP);
QObject::connect(&sigwatch, &UnixSignalWatcher::unixSignal, &service, &GPService::quit);
// QObject::connect(&sigwatch, &UnixSignalWatcher::unixSignal, &service, &GPService::quit);
return app.exec();
}

View File

@ -8,7 +8,15 @@ description: |
grade: devel
confinement: devmode # use 'strict' once you have the right plugs and slots
package-repositories:
- type: apt
ppa: dwmw2/openconnect
layout:
/usr/share/vpnc-scripts:
bind: $SNAP/usr/share/vpnc-scripts
/usr/local/sbin:
bind: $SNAP/usr/local/sbin
/usr/share/qt5:
bind: $SNAP/usr/share/qt5
@ -26,11 +34,12 @@ plugs:
apps:
gpservice:
daemon: simple
# daemon: simple
command: usr/bin/gpservice
extensions:
- kde-neon
environment:
LANG: en_US.utf8
VPNC_SCRIPT: $SNAP/usr/share/vpnc-scripts/vpnc-script
plugs:
- network
slots:
@ -39,12 +48,9 @@ apps:
gpclient:
common-id: com.yuezk.qt.gpclient
command: usr/bin/gpclient
desktop: usr/share/applications/com.yuezk.qt.gpclient.desktop
extensions:
- kde-neon
desktop: usr/share/applications/com.yuezk.qt.gpclient.desktop
environment:
# QT_PLUGIN_PATH: $SNAP/opt/qt512/plugins
QT_PLUGIN_PATH: $SNAP/usr/lib/x86_64-linux-gnu/qt5/plugins
plugs:
- desktop
- desktop-legacy
@ -55,162 +61,25 @@ apps:
- gpservice-plug
parts:
gmplib:
plugin: autotools
source: https://gmplib.org/download/gmp/gmp-6.2.1.tar.xz
nettle:
plugin: autotools
source: https://ftp.gnu.org/gnu/nettle/nettle-3.7.3.tar.gz
configflags:
- --disable-openssl
- --disable-documentation
after:
- gmplib
tpm2-tss:
plugin: autotools
source: https://github.com/tpm2-software/tpm2-tss.git
source-depth: 1
source-tag: 3.1.0
build-packages:
- autoconf-archive
- libcmocka-dev
- build-essential
- pkg-config
- libtool
- automake
- libssl-dev
- autoconf
- libjson-c-dev
- libini-config-dev
- libcurl4-openssl-dev
- acl
stage-packages:
- libasn1-8-heimdal
- libcurl4
- libgssapi3-heimdal
- libhcrypto4-heimdal
- libheimbase1-heimdal
- libheimntlm0-heimdal
- libhx509-5-heimdal
- libkrb5-26-heimdal
- libldap-2.4-2
- libnghttp2-14
- libpsl5
- libroken18-heimdal
- librtmp1
- libsasl2-2
- libwind0-heimdal
configflags:
- --disable-doxygen-doc
gnutls:
plugin: autotools
source: http://mirrors.dotsrc.org/gcrypt/gnutls/v3.7/gnutls-3.7.2.tar.xz
build-packages:
- wget
- build-essential
- autoconf
- libtool
- gettext
- autopoint
- automake
- autogen
- libp11-kit-dev
- libtspi-dev
- libunistring-dev
- guile-2.2-dev
- libtasn1-6-dev
- libidn2-0-dev
- gperf
- libunbound-dev
- bison
stage-packages:
- guile-2.2-libs
- libgc1c2
- libltdl7
- libopts25
- libunbound2
configflags:
- --disable-doc
- --disable-full-test-suite
after:
- gmplib
- nettle
libpskc:
plugin: autotools
source: https://download.savannah.nongnu.org/releases/oath-toolkit/oath-toolkit-2.6.7.tar.gz
source-subdir: libpskc
build-packages:
- build-essential
- autoconf
- automake
- libtool
- bison
- gengetopt
- libxmlsec1-dev
- libxml2-utils
openconnect:
plugin: autotools
source: https://github.com/openconnect/openconnect.git
source-depth: 1
source-tag: v8.10
build-packages:
- build-essential
- gettext
- autoconf
- automake
- libtool
- libxml2-dev
- zlib1g-dev
- pkg-config
- libp11-kit-dev
- libproxy-dev
- trousers
- libtasn1-6-dev
- libstoken-dev
- libpcsclite-dev
- vpnc-scripts
stage-packages:
- vpnc-scripts
- libp11-kit0
- libproxy1v5
- libstoken1
- libpcsclite1
- libxml2
- zlib1g
after:
- gnutls
- tpm2-tss
- libpskc
application:
plugin: qmake
build-attributes:
- keep-execstack
plugin: nil
source: .
build-packages:
- qt5-default
- qtwebengine5-dev
- libqt5websockets5-dev
build-snaps:
- kde-frameworks-5-core18-sdk
stage-snaps:
- kde-frameworks-5-core18
stage-packages:
- libqt5printsupport5
- libqt5gui5
- libqt5network5
- libqt5svg5
- libqt5webengine5
- libqt5websockets5
- libqt5quickwidgets5
- libqt5webenginewidgets5
- libqt5dbus5
- libatm1
- libtspi1
- libxmlsec1
- libxmlsec1-openssl
options:
- CONFIG+=release
- openconnect
override-build: |
KF5_DIR=/snap/kde-frameworks-5-core18-sdk/current
export QTDIR=$KF5_DIR/usr/lib/qt5
export PATH=$QTDIR/bin:$KF5_DIR/usr/bin:$PATH
export LD_LIBRARY_PATH=$KF5_DIR/usr/lib/$SNAPCRAFT_ARCH_TRIPLET:$QTDIR/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=$QTDIR/lib/pkgconfig:$PKG_CONFIG_PATH
export QMAKESPEC=$KF5_DIR/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/qt5/mkspecs/linux-g++
# export QT_SELECT=qt5
qmake CONFIG+=release # -qtconf $KF5_DIR/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/qt5/qt.conf
make -j$(nproc)
make INSTALL_ROOT=$SNAPCRAFT_PART_INSTALL install