Cherry-picking new upstream version 0.11.0

* Bumped compat to 10
* Bumped minimum version debhelper (>= 10)
* Bumped minimum version liblxqt0-dev (>= 0.11.0)
* Bumped minimum version libqt5xdg-dev (>= 2.0.0)
* Bumped minimum version libqt5xdgiconloader-dev (>= 2.0.0)
* Added build dependency libqt5svg5-dev
* Really close the liboobs bug (Closes: #821864)
* Removed --parallel from rules, standard in compat 10
This commit is contained in:
Alf Gaida 2016-09-25 11:22:59 +02:00
parent f76ff3edf3
commit bab24c3770
16 changed files with 274 additions and 30 deletions

3
.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
build
lxqt-admin.kdev4
*/translations/lxqt-admin

99
CHANGELOG Normal file
View File

@ -0,0 +1,99 @@
lxqt-admin-0.11.0 / 2016-09-24
==============================
* user: Add failure message box
* user: Provide icon name in polkit policy
* Update README.md
* Add Catalan translations
* Add copyright headers
* Add Arabic Translations for Desktop Files
* lxqt-admin-user: Fix a change password crash
* lxqt-admin-user: Makes the Refresh toolbar button visible
* lxqt-admin-time: Adjust dialog size on startup
* Update openSUSE section in README
* Update README.md
* Support NTP and Local RTC settings with timedated provided by systemd. Code cleanup.
* Replace calling timedatectl command with calling its dbus interface instead and provide proper error messages.
* Use dbus interface of timedate systemd daemon instead of timedatectl command.
* Add the ability to update group members.
* Support changing of user password.
* Show group members.
* Try to use a helper script and polkit policy configurations to do user admin.
* Remove liboobs dependency from lxqt-admin-time and use timedatectl to handle all time configurations.
* Try to handle timezones with timedatectl provided by systemd instead of liboobs.
* Add groupmod
* Try to remove liboobs dependency.
* Add README.md
* build: Use external translations
* ts-files removal (#32)
* Bump years to 2016
* Don't track IDE settings
* Italian translation update
* Russian translations update Remove duplicated ru_RU translations
* updated: *_hu.ts
0.10.0 / 2015-10-31
===================
* Fix license file
* Add Greek (el) translation
* Rename LxQt to LXQt everywhere
* Removed invisible dialog titles. Updated template. Added german translation.
* Handles CMake policy CMP0063
* Initialize in the same order of declaration in the class definition
* Use the LXQtCompilerSettings CMake module
* Updates the build system to use the Targets infrastructure
* Remove trailing whitespaces
* Create lxqt-admin-time_hr.ts
* Create lxqt-admin-user_hr.ts
* Hungarian translations added
* Create lxqt-admin-time_it.desktop
* Create lxqt-admin-user_it.desktop
* Initial Polish translation
* Create lxqt-admin-user_it.desktop
* lxqt-admin-user: set minimum default GID value for new group to 1000
* Initial Polish translation
0.9.0 / 2015-01-25
==================
* Create lxqt-admin-user_it.desktop
* Create lxqt-admin-user_it.ts
* Create lxqt-admin-time_it.ts
* Add Portuguese language
* Added Japanese translation
* Unify naming for a unique lxqt. No more suffixes
* Update Russian translation
* Updates translations sources
* Whole GUI of time/date setup has been rewritten from scratch the app has now style of LXQT config dialogs based on LxQt::ConfigDialog the time and date setting is divided into one configuration widget and timezone selection is divided into second config widget
* Add icon to config window
* Add .gitignore
* Make use of QApplication::exec()
* Use the new LxQt::SingleApplication
* CMakeLists.txt maintenance.
* Update translation a little more
* Add Russian translation
* updates Translations
* Updates the translations infrastructure
* Drop Qt4 support in CMakeLists.txt in subfolders
* Drop Qt4 support in code
* Clean up CMakeLists.txt and drop Qt 4
0.8.0 / 2014-06-21
==================
* simplify Qt version switching
* Support build with Qt5.
* Use new LXQt header files.
* Update copyright notice.
* Support changing group members.
* Support adding/removing/editing users and groups.
* Redesign the UI.
* Add a group configuration dialog.
* Improve user dialog.
* Add a user config dialog.
* Update time every seconds unless it's changed manually by the user.
* Add basic skeleton for lxqt-admin-user tool.
* Add a very basic time config tool, lxqt-admin-time.
* Initial commit.

View File

@ -4,42 +4,37 @@
This repository is providing two GUI tools to adjust settings of the operating system LXQt is running on. This repository is providing two GUI tools to adjust settings of the operating system LXQt is running on.
"Time and date configuration", binary `lxqt-admin-time`, can adjust system time and timezone. Both are using [polkit](https://www.freedesktop.org/wiki/Software/polkit/) to handle permissions.
In contrast to the specific backends described below earlier versions of lxqt-admin were relying on [system-tools-backends](http://system-tools-backends.freedesktop.org) and their wrapper [liboobs](https://github.com/GNOME/liboobs). These were replaced as both go unmaintained for years and were hence dropped from many distributions heavily restricting the usage of lxqt-admin. As long as they can be built it should still be possible to compile lxqt-admin release ≤ 0.10 against them in order to make use of it on platforms lacking systemd like BSD.
### Time and date configuration
Adjusts time and date. Binary is `lxqt-admin-time`.
![lxqt-admin-time](lxqt-admin-time.png) ![lxqt-admin-time](lxqt-admin-time.png)
It is using `systemd-timedated` as backend which is accessed by its D-Bus interface. Among other this means the option It is using `systemd-timedated` as backend which is accessed by its D-Bus interface. Among other this means the option
to sync the system time by NTP is relying on `systemd-timesyncd` as backend. to sync the system time by NTP is relying on `systemd-timesyncd` as backend.
In "User and Group Settings", binary `lxqt-admin-user`, users and groups of the operating system can be modified. ### User and Group Settings
Management of users and groups. Binary is `lxqt-admin-user`.
![lxqt-admin-user](lxqt-admin-user.png) ![lxqt-admin-user](lxqt-admin-user.png)
The backend is a script `lxqt-admin-user-helper`. By default it is in turn using the shadow tools to do the actual work. The backend is a script `lxqt-admin-user-helper`. By default it is in turn using the shadow tools to do the actual work.
The script can be modified to use different tools, though. The script can be modified to use different tools, though.
Both are using [polkit](https://www.freedesktop.org/wiki/Software/polkit/) to handle permissions. So polkit and a corresponding
authentication agent are needed at runtime. As for LXQt sessions [lxqt-policykit](https://github.com/lxde/lxqt-policykit/)
is the first choice.
Earlier versions of lxqt-admin were relying on [system-tools-backends](http://system-tools-backends.freedesktop.org)
and their wrapper [liboobs](https://github.com/GNOME/liboobs). These were replaced as both go unmaintained for years and
were hence dropped from many distributions heavily restricting the usage of lxqt-admin.
As long as they can be built it should still be possible to compile lxqt-admin release ≤ 0.10 against them in order
to make use of it on platforms lacking systemd like BSD.
## Installing ## Installing
### Compiling sources ### Compiling sources
Build dependencies are Git, CMake, qttools to handle localization as well as library [liblxqt](https://github.com/lxde/liblxqt) Runtime dependencies are polkit and [liblxqt](https://github.com/lxde/liblxqt). A polkit agent should be available with [lxqt-policykit](https://github.com/lxde/lxqt-policykit/) representing the first choice in LXQt.
and its dependency [libqtxdg](https://github.com/lxde/libqtxdg). Additional build dependencies are CMake and optionally Git to pull latest VCS checkouts. The localization files were outsourced to repository [lxqt-l10n](https://github.com/lxde/lxqt-l10n) so the corresponding dependencies are needed, too. Please refer to this repository's `README.md` for further information.
By default lxqt-admin is pulling translations from repository [translations](https://github.com/lxde/translations/) at
compile time, see file README.md of the latter.
To compile, run `cmake`, `make` and `make install`. Code configuration is handled by CMake. CMake variable `CMAKE_INSTALL_PREFIX` will normally have to be set to `/usr`.
`cmake` can be invoked in an out of source build directory and will normally need variable `-DCMAKE_INSTALL_PREFIX=/usr`.
`make install` can be invoked with `DESTDIR=<some path>`. To build run `make`, to install `make install` which accepts variable `DESTDIR` as usual.
### Binary packages ### Binary packages
@ -66,8 +61,7 @@ However it is still possible to install it on openSUSE. The package and its depe
## Usage ## Usage
Both GUIs can be launched from GUI "Configuration Center" of [lxqt-config](https://github.com/lxde/lxqt-config) and are available Much like similar tools provided by [lxqt-config](https://github.com/lxde/lxqt-config) the tools of lxqt-admin can be launched from the [Configuration Center](https://github.com/lxde/lxqt-config#configuration-center) as well as from the panel's main menu - Preferences - LXQt settings.
in LXQt panel's main menu at Preferences - LXQt settings as well.
The actual usage should be self-explanatory. To apply settings the GUI of the polkit authentication agent that's in use is The actual usage should be self-explanatory. To apply settings the GUI of the polkit authentication agent that's in use is
launched to acquire the root password. launched to acquire the root password.

1
debian/.gitignore vendored
View File

@ -1,6 +1,7 @@
/*.debhelper /*.debhelper
/*.log /*.log
/*.substvars /*.substvars
/debhelper-build-stamp
/files /files
/lxqt-admin/ /lxqt-admin/

14
debian/changelog vendored
View File

@ -1,3 +1,17 @@
lxqt-admin (0.11.0-1) experimental; urgency=medium
* Cherry-picking new upstream version 0.11.0
* Bumped compat to 10
* Bumped minimum version debhelper (>= 10)
* Bumped minimum version liblxqt0-dev (>= 0.11.0)
* Bumped minimum version libqt5xdg-dev (>= 2.0.0)
* Bumped minimum version libqt5xdgiconloader-dev (>= 2.0.0)
* Added build dependency libqt5svg5-dev
* Really close the liboobs bug (Closes: #821864)
* Removed --parallel from rules, standard in compat 10
-- Alf Gaida <agaida@siduction.org> Sun, 25 Sep 2016 11:23:41 +0200
lxqt-admin (0.10.96~24-gd87b750-3) experimental; urgency=medium lxqt-admin (0.10.96~24-gd87b750-3) experimental; urgency=medium
* Fixed two typos in changelog * Fixed two typos in changelog

9
debian/control vendored
View File

@ -8,16 +8,17 @@ Priority: optional
Build-Depends: debhelper (>= 10), Build-Depends: debhelper (>= 10),
cmake (>= 3.0.2), cmake (>= 3.0.2),
libkf5windowsystem-dev, libkf5windowsystem-dev,
liblxqt0-dev (>= 0.10.96~), liblxqt0-dev (>= 0.11.0),
libqt5svg5-dev,
libqt5x11extras5-dev, libqt5x11extras5-dev,
libqt5xdg-dev (>= 1.3.1~), libqt5xdg-dev (>= 2.0.0),
libqt5xdgiconloader-dev (>= 1.3.1~), libqt5xdgiconloader-dev (>= 2.0.0),
libx11-dev, libx11-dev,
pkg-config, pkg-config,
qttools5-dev, qttools5-dev,
qttools5-dev-tools qttools5-dev-tools
Standards-Version: 3.9.8 Standards-Version: 3.9.8
Vcs-Browser: https://anonscm.debian.org/git/pkg-lxqt/lxqt-admin.git/?h=debian/experimental Vcs-Browser: https://anonscm.debian.org/cgit/pkg-lxqt/lxqt-admin.git/?h=debian/experimental
Vcs-Git: https://anonscm.debian.org/git/pkg-lxqt/lxqt-admin.git -b debian/experimental Vcs-Git: https://anonscm.debian.org/git/pkg-lxqt/lxqt-admin.git -b debian/experimental
Homepage: https://github.com/lxde/lxqt-admin Homepage: https://github.com/lxde/lxqt-admin

3
debian/rules vendored
View File

@ -6,8 +6,7 @@ export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
export DEB_BUILD_MAINT_OPTIONS = hardening=+all export DEB_BUILD_MAINT_OPTIONS = hardening=+all
%: %:
dh ${@} --buildsystem cmake\ dh ${@} --buildsystem cmake
--parallel
override_dh_auto_configure: override_dh_auto_configure:
dh_auto_configure -- \ dh_auto_configure -- \

View File

@ -1,3 +1,30 @@
/* BEGIN_COMMON_COPYRIGHT_HEADER
* (c)LGPL2+
*
* LXQt - a lightweight, Qt based, desktop toolset
* http://lxqt.org
*
* Copyright: 2016 LXQt team
* Authors:
* Hong Jen Yee (PCMan) <pcman.tw@gmail.com>
*
* This program or library is free software; you can redistribute it
* and/or modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
* You should have received a copy of the GNU Lesser General
* Public License along with this library; if not, write to the
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA
*
* END_COMMON_COPYRIGHT_HEADER */
#include "timedatectl.h" #include "timedatectl.h"
#include <QProcess> #include <QProcess>
#include <QDebug> #include <QDebug>

View File

@ -1,3 +1,30 @@
/* BEGIN_COMMON_COPYRIGHT_HEADER
* (c)LGPL2+
*
* LXQt - a lightweight, Qt based, desktop toolset
* http://lxqt.org
*
* Copyright: 2016 LXQt team
* Authors:
* Hong Jen Yee (PCMan) <pcman.tw@gmail.com>
*
* This program or library is free software; you can redistribute it
* and/or modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
* You should have received a copy of the GNU Lesser General
* Public License along with this library; if not, write to the
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA
*
* END_COMMON_COPYRIGHT_HEADER */
#ifndef TIMEDATECTL_H #ifndef TIMEDATECTL_H
#define TIMEDATECTL_H #define TIMEDATECTL_H

View File

@ -0,0 +1,4 @@
#TRANSLATIONS
Name[ar]=التّاريخ والوقت
GenericName[ar]=إعدادات التّاريخ والوقت
Comment[ar]=اضبط تاريخ النّظام ووقته

View File

@ -0,0 +1,3 @@
Name[ca]=Data i hora
GenericName[ca]=Ajusts de la data i l'hora
Comment[ca]=Configureu la data i l'hora del vostre sistema

View File

@ -6,7 +6,7 @@
<action id="org.lxqt.lxqt-admin-user"> <action id="org.lxqt.lxqt-admin-user">
<message>Authentication is required for user administration</message> <message>Authentication is required for user administration</message>
<icon_name></icon_name> <icon_name>preferences-system</icon_name>
<defaults> <defaults>
<allow_any>auth_admin</allow_any> <allow_any>auth_admin</allow_any>
<allow_inactive>auth_admin</allow_inactive> <allow_inactive>auth_admin</allow_inactive>

View File

@ -0,0 +1,4 @@
#TRANSLATIONS
Name[ar]=المستخدمون والمجموعات
GenericName[ar]=إعدادات المستخدمون والمجموعات
Comment[ar]=اضبط مستخدمو النّظام ومجموعاته

View File

@ -0,0 +1,3 @@
Name[ca]=Usuaris i grups
GenericName[ca]=Ajusts dels usuaris i dels grups
Comment[ca]=Configureu els usuaris i els grups del vostre sistema

View File

@ -1,3 +1,30 @@
/* BEGIN_COMMON_COPYRIGHT_HEADER
* (c)LGPL2+
*
* LXQt - a lightweight, Qt based, desktop toolset
* http://lxqt.org
*
* Copyright: 2016 LXQt team
* Authors:
* Hong Jen Yee (PCMan) <pcman.tw@gmail.com>
*
* This program or library is free software; you can redistribute it
* and/or modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
* You should have received a copy of the GNU Lesser General
* Public License along with this library; if not, write to the
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA
*
* END_COMMON_COPYRIGHT_HEADER */
#include "usermanager.h" #include "usermanager.h"
#include <QDebug> #include <QDebug>
#include <algorithm> #include <algorithm>
@ -5,6 +32,7 @@
#include <QTimer> #include <QTimer>
#include <QProcess> #include <QProcess>
#include <QFile> #include <QFile>
#include <QMessageBox>
#include <unistd.h> #include <unistd.h>
static const QString PASSWD_FILE = QStringLiteral("/etc/passwd"); static const QString PASSWD_FILE = QStringLiteral("/etc/passwd");
@ -166,6 +194,7 @@ void UserManager::onFileChanged(const QString &path) {
} }
bool UserManager::pkexec(const QStringList& command, const QByteArray& stdinData) { bool UserManager::pkexec(const QStringList& command, const QByteArray& stdinData) {
Q_ASSERT(!command.isEmpty());
QProcess process; QProcess process;
qDebug() << command; qDebug() << command;
QStringList args; QStringList args;
@ -180,8 +209,17 @@ bool UserManager::pkexec(const QStringList& command, const QByteArray& stdinData
process.closeWriteChannel(); process.closeWriteChannel();
} }
process.waitForFinished(-1); process.waitForFinished(-1);
qDebug() << process.readAllStandardError(); QByteArray pkexec_error = process.readAllStandardError();
return process.exitCode() == 0; qDebug() << pkexec_error;
const bool succeeded = process.exitCode() == 0;
if (!succeeded)
{
QMessageBox * msg = new QMessageBox{QMessageBox::Critical, tr("lxqt-admin-user")
, tr("<strong>Action (%1) failed:</strong><br/><pre>%2</pre>").arg(command[0]).arg(pkexec_error.constData())};
msg->setAttribute(Qt::WA_DeleteOnClose, true);
msg->show();
}
return succeeded;
} }
bool UserManager::addUser(UserInfo* user) { bool UserManager::addUser(UserInfo* user) {

View File

@ -1,3 +1,30 @@
/* BEGIN_COMMON_COPYRIGHT_HEADER
* (c)LGPL2+
*
* LXQt - a lightweight, Qt based, desktop toolset
* http://lxqt.org
*
* Copyright: 2016 LXQt team
* Authors:
* Hong Jen Yee (PCMan) <pcman.tw@gmail.com>
*
* This program or library is free software; you can redistribute it
* and/or modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
* You should have received a copy of the GNU Lesser General
* Public License along with this library; if not, write to the
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA
*
* END_COMMON_COPYRIGHT_HEADER */
#ifndef USERMANAGER_H #ifndef USERMANAGER_H
#define USERMANAGER_H #define USERMANAGER_H