diff --git a/PKGBUILD-qt4 b/PKGBUILD-qt4 new file mode 100644 index 0000000..6f6cb65 --- /dev/null +++ b/PKGBUILD-qt4 @@ -0,0 +1,39 @@ +# Maintainer: Evgeniy "arcanis" Alexeev + +pkgname=netctl-gui-qt4 +_pkgname=netctl-gui +pkgver=1.0.4 +pkgrel=1 +pkgdesc="Qt4 graphical front-end for netctl. A part of netctl-gui" +arch=('i686' 'x86_64') +url="http://arcanis.name/projects/netctl-gui" +license=('GPLv3') +depends=('netctl' 'qt4') +makedepends=('automoc4' 'cmake' 'desktop-file-utils' 'xdg-utils') +optdepends=('kdebase-runtime: sudo support' + 'kdeplasma-applets-netctl-gui: KDE widget' + 'sudo: sudo support' + 'wpa_supplicant: wifi support') +provides=('netctl-gui') +conflicts=('netctl-gui') +source=("https://github.com/arcan1s/netctl-gui/releases/download/V.${pkgver}/${_pkgname}-${pkgver}-src.tar.xz") +install="${_pkgname}.install" +md5sums=('04ec09228a54fa4fe9e13a7a8e325bcb') + +_cmakekeys="-DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DUSE_QT5:BOOL=0 -DBUILD_DATAENGINE:BOOL=0 -DBUILD_PLASMOID:BOOL=0" + +prepare() { + rm -rf "${srcdir}/build" + mkdir "${srcdir}/build" +} + +build() { + cd "${srcdir}/build" + cmake ${_cmakekeys} "../${_pkgname}" + make +} + +package() { + cd "${srcdir}/build" + make DESTDIR="${pkgdir}" install +} diff --git a/PKGBUILD b/PKGBUILD-qt5 similarity index 56% rename from PKGBUILD rename to PKGBUILD-qt5 index 081c123..cc987cf 100644 --- a/PKGBUILD +++ b/PKGBUILD-qt5 @@ -1,35 +1,23 @@ # Maintainer: Evgeniy "arcanis" Alexeev -# comment out needed line if you dont need this component -#_use_qt5=0 -#_build_gui=0 -#_build_plasmoid=0 - pkgname=netctl-gui pkgver=1.0.4 -pkgrel=3 -pkgdesc="Qt4/Qt5 GUI for netctl. Provides a plasmoid for KDE4" +pkgrel=4 +pkgdesc="Qt5 graphical front-end for netctl. A part of netctl-gui" arch=('i686' 'x86_64') url="http://arcanis.name/projects/netctl-gui" license=('GPLv3') depends=('netctl' 'qt5-base') makedepends=('automoc4' 'cmake' 'qt5-tools') optdepends=('kdebase-runtime: sudo support' + 'kdeplasma-applets-netctl-gui: KDE widget' 'sudo: sudo support' 'wpa_supplicant: wifi support') source=("https://github.com/arcan1s/netctl-gui/releases/download/V.${pkgver}/${pkgname}-${pkgver}-src.tar.xz") install="${pkgname}.install" -md5sums=('110dc309d0b35df8a9801ac3f4ffd931') +md5sums=('04ec09228a54fa4fe9e13a7a8e325bcb') -# flags -_cmakekeys="-DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release" -if [[ ${_use_qt5} == 0 ]]; then - _cmakekeys=${_cmakekeys}" -DUSE_QT5:BOOL=0" - depends=('netctl' 'qt4') - makedepends=('automoc4' 'cmake' 'desktop-file-utils' 'xdg-utils') -fi -[[ ${_build_gui} == 0 ]] && _cmakekeys=${_cmakekeys}" -DBUILD_GUI:BOOL=0" -[[ ${_build_plasmoid} == 0 ]] && _cmakekeys=${_cmakekeys}" -DBUILD_DATAENGINE:BOOL=0 -DBUILD_PLASMOID:BOOL=0" || depends+=('kdebase-workspace') +_cmakekeys="-DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DBUILD_DATAENGINE:BOOL=0 -DBUILD_PLASMOID:BOOL=0" prepare() { rm -rf "${srcdir}/build" diff --git a/PKGBUILD-widget b/PKGBUILD-widget new file mode 100644 index 0000000..e80e552 --- /dev/null +++ b/PKGBUILD-widget @@ -0,0 +1,36 @@ +# Maintainer: Evgeniy "arcanis" Alexeev + +pkgname=kdeplasma-applets-netctl-gui +_pkgname=netctl-gui +pkgver=1.0.4 +pkgrel=1 +pkgdesc="A plasmoid for KDE4 whih interacts with netctl. A part of netctl-gui" +arch=('i686' 'x86_64') +url="http://arcanis.name/projects/netctl-gui" +license=('GPLv3') +depends=('netctl' 'kdebase-workspace') +makedepends=('automoc4' 'cmake') +optdepends=('kdebase-runtime: sudo support' + 'netctl-gui: graphical front-end' + 'sudo: sudo support') +source=("https://github.com/arcan1s/netctl-gui/releases/download/V.${pkgver}/${_pkgname}-${pkgver}-src.tar.xz") +install="${_pkgname}.install" +md5sums=('04ec09228a54fa4fe9e13a7a8e325bcb') + +_cmakekeys="-DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DBUILD_GUI:BOOL=0" + +prepare() { + rm -rf "${srcdir}/build" + mkdir "${srcdir}/build" +} + +build() { + cd "${srcdir}/build" + cmake ${_cmakekeys} "../${_pkgname}" + make +} + +package() { + cd "${srcdir}/build" + make DESTDIR="${pkgdir}" install +} diff --git a/create_archive.sh b/create_archive.sh index 39869e8..e730c46 100755 --- a/create_archive.sh +++ b/create_archive.sh @@ -17,5 +17,9 @@ tar cJf "${ARCHIVE}-${VERSION}-src.tar.xz" "${ARCHIVE}" rm -rf "${ARCHIVE}" # update md5sum MD5SUMS=$(md5sum ${ARCHIVE}-${VERSION}-src.tar.xz | awk '{print $1}') -sed -i "/md5sums=('[0-9A-Fa-f]*/s/[^'][^)]*/md5sums=('${MD5SUMS}'/" PKGBUILD -sed -i "s/pkgver=[0-9.]*/pkgver=${VERSION}/" PKGBUILD +sed -i "/md5sums=('[0-9A-Fa-f]*/s/[^'][^)]*/md5sums=('${MD5SUMS}'/" PKGBUILD-qt4 +sed -i "s/pkgver=[0-9.]*/pkgver=${VERSION}/" PKGBUILD-qt4 +sed -i "/md5sums=('[0-9A-Fa-f]*/s/[^'][^)]*/md5sums=('${MD5SUMS}'/" PKGBUILD-qt5 +sed -i "s/pkgver=[0-9.]*/pkgver=${VERSION}/" PKGBUILD-qt5 +sed -i "/md5sums=('[0-9A-Fa-f]*/s/[^'][^)]*/md5sums=('${MD5SUMS}'/" PKGBUILD-widget +sed -i "s/pkgver=[0-9.]*/pkgver=${VERSION}/" PKGBUILD-widget diff --git a/sources/dataengine/netctl.cpp b/sources/dataengine/netctl.cpp index fc1f32f..0a80030 100644 --- a/sources/dataengine/netctl.cpp +++ b/sources/dataengine/netctl.cpp @@ -18,6 +18,8 @@ #include "netctl.h" #include +#include +#include #include #include #include @@ -49,40 +51,60 @@ QStringList Netctl::sources() const } -bool Netctl::readConfiguration() +void Netctl::readConfiguration() { // default configuration - configuration[QString("CMD")] = QString("/usr/bin/netctl"); - configuration[QString("EXTIP")] = QString("false"); - configuration[QString("EXTIPCMD")] = QString("wget -qO- http://ifconfig.me/ip"); - configuration[QString("IPCMD")] = QString("/usr/bin/ip"); - configuration[QString("NETDIR")] = QString("/sys/class/net/"); + QMap rawConfig; + rawConfig[QString("CMD")] = QString("/usr/bin/netctl"); + rawConfig[QString("EXTIP")] = QString("false"); + rawConfig[QString("EXTIPCMD")] = QString("wget -qO- http://ifconfig.me/ip"); + rawConfig[QString("IPCMD")] = QString("/usr/bin/ip"); + rawConfig[QString("NETDIR")] = QString("/sys/class/net/"); - QString fileStr; - // FIXME: define configuration file - QFile confFile(QString(getenv("HOME")) + QString("/.kde4/share/config/netctl.conf")); - bool exists = confFile.open(QIODevice::ReadOnly); - if (!exists) { - confFile.setFileName("/usr/share/config/netctl.conf"); - exists = confFile.open(QIODevice::ReadOnly); - if (!exists) - return false; + QString fileName = KGlobal::dirs()->findResource("config", "netctl.conf"); + QFile confFile(fileName); + bool ok = confFile.open(QIODevice::ReadOnly); + if (!ok) { + configuration = updateConfiguration(rawConfig); + return; } - + QString fileStr; + QStringList value; while (true) { - fileStr = QString(confFile.readLine()); - if (fileStr[0] != '#') { - if (fileStr.contains(QString("="))) - configuration[fileStr.split(QString("="))[0]] = fileStr.split(QString("="))[1] - .remove(QString(" ")) - .trimmed(); + fileStr = QString(confFile.readLine()).trimmed(); + if (fileStr[0] == QChar('#')) continue; + if (fileStr[0] == QChar(';')) continue; + if (fileStr.contains(QChar('='))) { + value.clear(); + for (int i=1; i Netctl::updateConfiguration(const QMap rawConfig) +{ + QMap config; + QString key, value; + // remove spaces and copy source map + for (int i=0; i configuration; + void readConfiguration(); + QMap updateConfiguration(const QMap rawConfig); }; diff --git a/sources/dataengine/plasma-engine-netctl.desktop b/sources/dataengine/plasma-engine-netctl.desktop index b62bd1f..00b6fb2 100644 --- a/sources/dataengine/plasma-engine-netctl.desktop +++ b/sources/dataengine/plasma-engine-netctl.desktop @@ -4,7 +4,7 @@ Name=Netctl Comment=Data engine for netctl ServiceTypes=Plasma/DataEngine Type=Service -Icon=netctl-gui +Icon=netctl-gui-widget X-KDE-ServiceTypes=Plasma/DataEngine X-KDE-Library=plasma_engine_netctl diff --git a/sources/icons/CMakeLists.txt b/sources/icons/CMakeLists.txt index 1b35153..fe0ca0c 100644 --- a/sources/icons/CMakeLists.txt +++ b/sources/icons/CMakeLists.txt @@ -2,6 +2,11 @@ set (SUBPROJECT netctl-gui-icons) message (STATUS "Subproject ${SUBPROJECT}") -install (FILES network-idle-64x64.png DESTINATION share/icons/hicolor/64x64/apps RENAME netctl-idle.png) -install (FILES network-offline-64x64.png DESTINATION share/icons/hicolor/64x64/apps RENAME netctl-offline.png) -install (FILES network-idle-128-128.png DESTINATION share/pixmaps RENAME netctl-gui.png) +if (BUILD_GUI) + install (FILES network-idle-128-128.png DESTINATION share/pixmaps RENAME netctl-gui.png) +endif () +if (BUILD_DATAENGINE OR BUILD_PLASMOID) + install (FILES network-idle-128-128.png DESTINATION share/pixmaps RENAME netctl-gui-widget.png) + install (FILES network-idle-64x64.png DESTINATION share/icons/hicolor/64x64/apps RENAME netctl-idle.png) + install (FILES network-offline-64x64.png DESTINATION share/icons/hicolor/64x64/apps RENAME netctl-offline.png) +endif () diff --git a/sources/plasmoid/plasma-applet-netctl.desktop b/sources/plasmoid/plasma-applet-netctl.desktop index ca4d72a..543c0e0 100644 --- a/sources/plasmoid/plasma-applet-netctl.desktop +++ b/sources/plasmoid/plasma-applet-netctl.desktop @@ -3,7 +3,7 @@ Encoding=UTF-8 Name=Netctl Comment=Plasmoid for netctl Type=Service -Icon=netctl-gui +Icon=netctl-gui-widget X-KDE-ServiceTypes=Plasma/Applet X-KDE-Library=plasma_applet_netctl