From: David Date: Wed, 19 Mar 2014 23:12:28 +0000 (+0000) Subject: Amended configuration to ensure openvpn can be executed as root, using a X-Git-Url: https://www.flypig.org.uk/git/?p=openvpnui.git;a=commitdiff_plain;h=998d9a10d91bc558ba91c3f35c1c9e19ef788c63 Amended configuration to ensure openvpn can be executed as root, using a setuid wrapper for openvpn. --- diff --git a/OpenVPNUI.pro b/OpenVPNUI.pro index 6457ec7..b0eed47 100644 --- a/OpenVPNUI.pro +++ b/OpenVPNUI.pro @@ -69,7 +69,8 @@ OTHER_FILES += qml/OpenVPNUI.qml \ qml/filebrowse/components/DoubleMenuItem.qml \ qml/filebrowse/components/DirPopup.qml \ qml/filebrowse/components/CenteredField.qml \ - qml/components/ValueButtonAlignRight.qml + qml/components/ValueButtonAlignRight.qml \ + bin/ovpnpermit HEADERS += \ src/vpncontrol.h \ @@ -82,3 +83,9 @@ HEADERS += \ src/filebrowse/engine.h INCLUDEPATH += src/filebrowse + +bin.files = bin +bin.path = /usr/share/$${TARGET} + +INSTALLS += bin + diff --git a/OpenVPNUI.pro.user b/OpenVPNUI.pro.user index 3f36955..864be9f 100644 --- a/OpenVPNUI.pro.user +++ b/OpenVPNUI.pro.user @@ -1,6 +1,6 @@ - + ProjectExplorer.Project.ActiveTarget @@ -268,7 +268,7 @@ OpenVPNUI (on Remote Device) - Qt4ProjectManager.MerRunConfiguration:/home/flypig/Documents/Development/SailfishOS/OpenVPNUI/OpenVPNUI.pro + Qt4ProjectManager.MerRunConfiguration:/home/flypig/Documents/Development/SailfishOS/ovpnui/OpenVPNUI/OpenVPNUI.pro OpenVPNUI.pro @@ -498,7 +498,7 @@ OpenVPNUI (on Remote Device) - Qt4ProjectManager.MerRunConfiguration:/home/flypig/Documents/Development/SailfishOS/OpenVPNUI/OpenVPNUI.pro + Qt4ProjectManager.MerRunConfiguration:/home/flypig/Documents/Development/SailfishOS/ovpnui/OpenVPNUI/OpenVPNUI.pro OpenVPNUI.pro diff --git a/bin/ovpnpermit b/bin/ovpnpermit new file mode 100755 index 0000000..2edc848 Binary files /dev/null and b/bin/ovpnpermit differ diff --git a/rpm/OpenVPNUI.spec b/rpm/OpenVPNUI.spec index 5ee1235..0052ffd 100644 --- a/rpm/OpenVPNUI.spec +++ b/rpm/OpenVPNUI.spec @@ -67,6 +67,8 @@ desktop-file-install --delete-original \ %{_datadir}/%{name}/qml %{_datadir}/applications/%{name}.desktop %{_datadir}/icons/hicolor/86x86/apps/%{name}.png +%{_datadir}/%{name}/bin +%attr(4755,root,root) %{_datadir}/%{name}/bin/ovpnpermit /usr/bin /usr/share/OpenVPNUI /usr/share/applications diff --git a/rpm/OpenVPNUI.yaml b/rpm/OpenVPNUI.yaml index daa3264..80d30b6 100644 --- a/rpm/OpenVPNUI.yaml +++ b/rpm/OpenVPNUI.yaml @@ -23,6 +23,8 @@ Files: - '%{_datadir}/%{name}/qml' - '%{_datadir}/applications/%{name}.desktop' - '%{_datadir}/icons/hicolor/86x86/apps/%{name}.png' +- '%{_datadir}/%{name}/bin' +- '%attr(2755,root,root) %{_datadir}/%{name}/bin/ovpnpermit' - /usr/bin - /usr/share/OpenVPNUI - /usr/share/applications diff --git a/src/vpncontrol.cpp b/src/vpncontrol.cpp index 3383dcc..d0d411b 100644 --- a/src/vpncontrol.cpp +++ b/src/vpncontrol.cpp @@ -211,7 +211,7 @@ void VPNControl::vpnConnect() { } else { vpnProcess = new QProcess(); - QString program = "openvpn"; + QString program = "/usr/share/OpenVPNUI/bin/ovpnpermit"; collectArguments (); vpnProcess->setReadChannel(QProcess::StandardOutput); connect(vpnProcess, SIGNAL(error(QProcess::ProcessError)), this, SLOT(readError(QProcess::ProcessError)));