Amended configuration to ensure openvpn can be executed as root, using a
authorDavid <david@flypig.co.uk>
Wed, 19 Mar 2014 23:12:28 +0000 (23:12 +0000)
committerDavid <david@flypig.co.uk>
Wed, 19 Mar 2014 23:12:28 +0000 (23:12 +0000)
setuid wrapper for openvpn.

OpenVPNUI.pro
OpenVPNUI.pro.user
bin/ovpnpermit [new file with mode: 0755]
rpm/OpenVPNUI.spec
rpm/OpenVPNUI.yaml
src/vpncontrol.cpp

index 6457ec7..b0eed47 100644 (file)
@@ -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
+
index 3f36955..864be9f 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE QtCreatorProject>
-<!-- Written by QtCreator 2.8.1, 2014-03-17T10:17:25. -->
+<!-- Written by QtCreator 2.8.1, 2014-03-19T20:38:31. -->
 <qtcreator>
  <data>
   <variable>ProjectExplorer.Project.ActiveTarget</variable>
     <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">OpenVPNUI (on Remote Device)</value>
     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MerRunConfiguration:/home/flypig/Documents/Development/SailfishOS/OpenVPNUI/OpenVPNUI.pro</value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MerRunConfiguration:/home/flypig/Documents/Development/SailfishOS/ovpnui/OpenVPNUI/OpenVPNUI.pro</value>
     <value type="QString" key="Qt4ProjectManager.MaemoRunConfiguration.Arguments"></value>
     <value type="QString" key="Qt4ProjectManager.MaemoRunConfiguration.ProFile">OpenVPNUI.pro</value>
     <value type="QString" key="RemoteLinux.RunConfig.AlternateRemoteExecutable"></value>
     <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">OpenVPNUI (on Remote Device)</value>
     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MerRunConfiguration:/home/flypig/Documents/Development/SailfishOS/OpenVPNUI/OpenVPNUI.pro</value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MerRunConfiguration:/home/flypig/Documents/Development/SailfishOS/ovpnui/OpenVPNUI/OpenVPNUI.pro</value>
     <value type="QString" key="Qt4ProjectManager.MaemoRunConfiguration.Arguments"></value>
     <value type="QString" key="Qt4ProjectManager.MaemoRunConfiguration.ProFile">OpenVPNUI.pro</value>
     <value type="QString" key="RemoteLinux.RunConfig.AlternateRemoteExecutable"></value>
diff --git a/bin/ovpnpermit b/bin/ovpnpermit
new file mode 100755 (executable)
index 0000000..2edc848
Binary files /dev/null and b/bin/ovpnpermit differ
index 5ee1235..0052ffd 100644 (file)
@@ -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
index daa3264..80d30b6 100644 (file)
@@ -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
index 3383dcc..d0d411b 100644 (file)
@@ -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)));