Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

greeter: clock not updated in some themes #665

Closed
pmattern opened this issue Aug 9, 2016 · 3 comments
Closed

greeter: clock not updated in some themes #665

pmattern opened this issue Aug 9, 2016 · 3 comments
Labels
Milestone

Comments

@pmattern
Copy link

pmattern commented Aug 9, 2016

The clock displayed by the greeter isn't updated in some themes but stuck at the time when the greeter was launched.

Problem affects e. g. stock theme elarun and thunderstruck of Siduction while stock maldives and maui are unaffected.

Seen running bf64c93 on Arch Linux (maui untested due to #632) and release 0.13.0 on Arch Linux and Debian.

@hhl
Copy link
Contributor

hhl commented Aug 18, 2016

hi, i fixed it for elarun.
See pull request.
The sddm-theme-thunderstruck is a siduction theme and we have to fix it by our own and not the sddm team!
(the fix is on the run and a bit different to the fix for sddm-theme-elarun, because of the design of the theme)

hhl added a commit to siduction/sddm-theme-deepspace that referenced this issue Aug 18, 2016
hhl added a commit to siduction/sddm-theme-deepspace that referenced this issue Aug 18, 2016
hhl added a commit to siduction/sddm-theme-deepspace that referenced this issue Aug 18, 2016
hhl added a commit to siduction/sddm-theme-deepspace that referenced this issue Aug 18, 2016
@pmattern
Copy link
Author

pmattern commented Aug 18, 2016

The sddm-theme-thunderstruck is a siduction theme and we have to fix it by our own and not the sddm team!

Nobody said it should by fixed by the SDDM devs. It was only mentioned to help tracking down the underlying problem. Something like "Themes elarun and thunderstruck share features foo and bar so...".

@hhl
Copy link
Contributor

hhl commented Aug 24, 2016

all previous changes are working, but the design doesn't fit, so i closed the pull request and added a working patch that fixes that issue and fit to the design..
Okay the font is not 12pixel and bold , but hey, that is my taste, you can change it..

I removed it, because, see #698
https://github.com/sddm/sddm/pull/698/files

@plfiorini plfiorini added this to the 0.15 milestone Sep 24, 2016
plfiorini pushed a commit that referenced this issue Aug 31, 2017
[ChangeLog][Themes] Update date and time in the "elarun" theme

Closes: #665
leuqarte added a commit to leuqarte/sddm that referenced this issue Aug 27, 2018
* Add some messages to PAM close session

* Specify arguments of SessionCommand in manpage

* Improve SessionCommand man

* helper: Delete credentials after closing the session

The credentials should be deleted after the session has
been closed with pam_close_session.

* Fix loading the embedded theme and error reporting

We now handle correctly the following situations:

- Empty theme in the settings: fallback to the embedded theme.
- Selected theme doesn't exist: load the first one in alphabetical order like
  before, in addition to that fallback to the embedded theme if there are no
  themes at all.
- Selected theme has QML errors: fallback to the embedded theme and display
  the errors prompting the user to select another one.

This means that in any case we always let the user log in with a theme
embedded into the executable in order to be sure it always exist.

Closes: sddm#551
Closes: sddm#632

* Do not recreated ThemeMetadata and ThemeConfig

Just reload the configuration.

* Update maldives screenshot

Closes sddm#585

* Clean password when authentication fails

Closes sddm#320

* Add Indian flag (sddm#678)

Scaled from an SVG created exclusively for the purpose.

Signed-off-by: Sanjeev Premi <spremi@ymail.com>

* Update ChangeLog

* Mention "maui" in the ChangeLog

* Use embedded theme when the configured one doesn't exist

Using the first alphabetical theme is confusing because it is
just random for the user, fallback to the embedded theme instead.

* Bump version to 0.14.0

* Fix display of user avatars. (sddm#684)

QFile::exists("...") does not understand file:// URLs, at least in Qt
5.7.0 and Qt 4.8.7.

* Remove quotes from ServerArguments (sddm#696)

Remove quotes from ServerArguments since it goes directly in the command line:
Running: /usr/bin/X "-nolisten tcp -dpi 192" -auth /var/run/sddm/{...}  -background none -noreset -displayfd 21 vt1

* Add a config option to enable high-DPI scaling (sddm#701)

The new EnableHiDPI boolean option permits to enable or not the
activation of Qt::AA_EnableHighDpiScaling attribute.

The default is enabled.

[ChangeLog][Greeter] Enable Qt's automatic high dpi scaling based on
configuration

Signed-off-by: Stany MARCEL <stanypub@gmail.com>

* Make the default cursor themed (sddm#705)

The X root window uses an "X" as the default cursor. To use a themed one,
it has to be set explicitly, e.g. by QML MouseAreas. For themes which do
not have a MouseArea that spans the entire screen, the "X" cursor would
be visible. By setting a cursor in the root QML object, the themed cursor
will be used by default. (https://bugs.kde.org/show_bug.cgi?id=337083)

[ChangeLog][Greeter] Fix default cursor appearance

* elarun: Update date and time

[ChangeLog][Themes] Update date and time in the "elarun" theme

Closes: sddm#665

* Add Hindi translations (sddm#706)


[ChangeLog][Translations] Add Hindi

Signed-off-by: Sanjeev Premi <spremi@ymail.com>

* Completed translation to Swedish (sddm#709)


[ChangeLog][Translations] Complete Swedish

Signed-off-by: Kristoffer Grundström <hamnisdude@gmail.com>

* Support Non-Latin characters in theme settings (sddm#708)

By default, QSettings doesn't support non-lating characters in config file.
However, KCM will write background path into theme config file without escape.
That means, we need to read UTF-8 strings.

[ChangeLog][Themes] Support UTF-8 in theme configuration

* Update fr.ts (sddm#710)

A better translation for the term "Layout" which corresponds in this
context to "keyboard".

Le "Layout" dans ce contexte correspond à la disposition du clavier.
Ce terme me semble plus parlant que "Configuration" qui est très général.

[ChangeLog][Translations] Improved French translation

* add fish shell specific commands to Xsession and wayland-session
to get the fish-specific login environment instead of the catchall /etc/profile environment.

* Unlock Gnome keyring on login (sddm#711)

Gnome's keyring stores user keys (eg: wifi passwords) encrypted, and uses
a pam module to unlock them at login.

This patch adds `optional` support for the gnome_keyring pam module, so
Gnome can be launched successfully from SDDM. Without this, Gnome will
ask for the users password again after logging in, the first time it needs
to access the keyring, in order to unlock it.

Other display managers as the Gnome Display Manger [1], LightDM [2] and
Enlightment's Entrance [3] already do this.

[1] https://github.com/GNOME/gdm/blob/master/data/pam-arch/gdm-password.pam
[2] http://bazaar.launchpad.net/~lightdm-team/lightdm/trunk/view/head:/debian/lightdm.pam
[3] https://git.enlightenment.org/misc/entrance.git/tree/data/entrance

[ChangeLog][Pam] Unlock GNOME keyring on login

* releng: Update create_changelog.pl

* releng: Fix Perl errors

* releng: Support GitHub issue references

* Fix manual for Current theme setting

* add kwallet5 support

Add kwallet-pam support for the plasma5 desktop

* Implemented kwallet5 for autologon as well

Note: It is only working with an empty kwallet password.

* Failure log messages if gnome keyring is not installed.

If gnome keyring is not installed pam will log an error in the system log.  In order to supress the message a dash in front of the entry is required.

* Cleanup dangling pointer in SocketServer (sddm#725)

This fixes SDDM crashing if xorg fails to load

[ChangeLog][Auth] Fix crash if Xorg fails to load

* Fix all incorrect use of QStringLiteral

* Fix QStringLiteral

* autologin: try last successful session if no autologin session is set

* By this the user can decide which session to select for autologin without
  touching priviledged configuration file.
* If session is set in configuration, the behaviour is same as before

Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>

* Don’t install themes Main.qml/metadata.desktop twice, in some conditions they don’t get configured

* Add danish (da) translation (sddm#766)

* Simple theme 'maya' (sddm#717)

Add Maya theme

Signed-off-by: Sanjeev Premi <spremi@ymail.com>

* Update mailmap

* Install maya theme

* ThemeComponents: Make 'enabled'-property of Button functional

This commit makes it possible to actually disable Buttons.
Previously they were only displayed as disabled but could still be
triggered.

Signed-off-by: Thomas Preisner <thomas.preisner@fau.de>
Signed-off-by: Milan Stephan <milan.stephan@fau.de>

* Also set QT_IM_MODULE in non testing mode

QT_IM_MODULE is set from a config value, however it currently is only
set in testing mode

* Load configuration information from config directories

Our configuration generally consists of user set config options and
distro defined options.

For example, a distro might want to specify a custom theme, but the
user's autostart name can't come from the distro.

Using the same config file leads to problems when upgrading.

This loads configuration from all files in a directory
(/etc/sddm/conf.d) as well as the main config file /etc/sddm.conf
The latter has priority and all writes occur in that file.

* Move EnableHiDPI setting to X11 and Wayland sections

Let's have a different setting depending on the display server.

On Wayland we might have a chance to circumvent bad physical size reported
by some screen while on X11 it's harder because we cannot do that from
QPA, hence a user might want to disable HiDPI on X11 and enable it on
Wayland.

* Document EnableHiDPI setting

* sddm-helper: x11: fix unsupported number of arguements error for unity session

Currently AFAICT the /etc/X11/Xsession script in Ubuntu is expecting 1 and only 1 arguments as the running command, as showed as the following fraction of /etc/X11/Xsession.d/20x11-common_process-args:

```sh
case $# in
  0)
    # No arguments given; use default behavior.
    ;;
  1)
    # One argument given; see what it was.
    case "$1" in
      failsafe)
        # Failsafe session was requested.
        if has_option allow-failsafe; then
          if [ -e /usr/bin/x-terminal-emulator ]; then
            if [ -x /usr/bin/x-terminal-emulator ]; then
              exec x-terminal-emulator -geometry +1+1
            else
              # fatal error
              errormsg "unable to launch failsafe X session ---" \
                       "x-terminal-emulator not executable; aborting."
            fi
          else
            # fatal error
            errormsg "unable to launch failsafe X session ---" \
                     "x-terminal-emulator not found; aborting."
          fi
        fi
        ;;
      default)
        # Default behavior was requested.
        ;;
      *)
        # Specific program was requested.
        STARTUP_FULL_PATH=$(/usr/bin/which "${1%% *}" || true)
        if [ -n "$STARTUP_FULL_PATH" ] && [ -e "$STARTUP_FULL_PATH" ]; then
          if [ -x "$STARTUP_FULL_PATH" ]; then
            STARTUP="$1"
          else
            message "unable to launch \"$1\" X session ---" \
                    "\"$1\" not executable; falling back to default session."
          fi
        else
          message "unable to launch \"$1\" X session ---" \
                  "\"$1\" not found; falling back to default session."
        fi
        ;;
    esac
    ;;
  *)
    # More than one argument given; we don't know what to do.
    message "unsupported number of arguments ($#); falling back to default" \
            "session."
    ;;
esac
```

Currently SDDM runs the Xsession script without quoting the second argument, which causes all xsessions that Exec key contains command-line arguments(like Unity(gnome-session --session=ubuntu)) causes Xsession to bail out with message "Xsession: unsupported number of arguments (2); falling back to default session."

This patch fixes the issue by quoting the %2 argument in the SessionCommand.

Signed-off-by: 林博仁 <Buo.Ren.Lin@gmail.com>

* Parse desktop file sections

Some desktop files have multiple sections, but for now we're only
interested in [Desktop Entry]. Without this patch, every entry was seen
as part of the [Desktop Entry] session, resulting in values getting
overwritten.

* Ignore session desktop files with the Hidden property set to true

They are still read in the autologin case.

Fixes issue sddm#820

* updated Polish translation

Signed-off-by: Marcin Mikołajczak <me@m4sk.in>

* Support elogind as an alterantive session tracker for systemd-logind.

For users who do not want to run the full systemd suite, but do not
want to patch sddm to use ck-launch-session either, elogind can be
used as an alternative session tracker via its PAM module.

* Fix session selection in Elarun

* UserModel: Check for duplicates from getpwent()

* Corrections in Lithuanian language

Corrected some words.

* Include errno.h and string.h where needed.

Do not rely on them being implicitly included by other headers; include
errno.h and string.h whenever errno and strerror(3) are used.

* Also theme the default cursor for the root window

The root window is still accessible in some cases, like context menu overlays.

* Load config from /usr/lib/sddm/sddm.conf.d before /etc/sddm/sddm.conf.d

* Add LIBXCB_INCLUDE_DIR to the list of include directories.

The daemon and the greeter include xcb/xcb.h, but they were relying on xcb's
include directory being implicitly added by the compiler instead of making
sure it was always passed to the compiler.

* Improve Catalan translation

* Wipe the config before creating an example one

* Improve Catalan translation

* Fix format of uk.ts

Fixes sddm#765

* Utilize all the included translations

Fixes sddm#778

* Do not truncate XAUTHORITY file on login

xauth gets used to edit the file, so do not truncate the file with
QIODevice::WriteOnly before.

* Include <unistd.h> for crypt(3), not <crypt.h>

<crypt.h> is part of glibc and other libc implementations, and not available
on systems such as FreeBSD.

We can just drop the include and use <unistd.h> instead, which is the header
POSIX specifies that defines crypt(3).

* Added possibility to change color of dropdown menu.

* Changed menuColor of ComboBoxes.

* Bump version to 0.15.0

* Update changelog

* elarun: Update date and time

[ChangeLog][Themes] Update date and time in the "elarun" theme

Closes: sddm#665

* Make the default cursor themed (sddm#705)

The X root window uses an "X" as the default cursor. To use a themed one,
it has to be set explicitly, e.g. by QML MouseAreas. For themes which do
not have a MouseArea that spans the entire screen, the "X" cursor would
be visible. By setting a cursor in the root QML object, the themed cursor
will be used by default. (https://bugs.kde.org/show_bug.cgi?id=337083)

[ChangeLog][Greeter] Fix default cursor appearance

* Add Hindi translations (sddm#706)


[ChangeLog][Translations] Add Hindi

Signed-off-by: Sanjeev Premi <spremi@ymail.com>

* Completed translation to Swedish (sddm#709)


[ChangeLog][Translations] Complete Swedish

Signed-off-by: Kristoffer Grundström <hamnisdude@gmail.com>

* Support Non-Latin characters in theme settings (sddm#708)

By default, QSettings doesn't support non-lating characters in config file.
However, KCM will write background path into theme config file without escape.
That means, we need to read UTF-8 strings.

[ChangeLog][Themes] Support UTF-8 in theme configuration

* Update fr.ts (sddm#710)

A better translation for the term "Layout" which corresponds in this
context to "keyboard".

Le "Layout" dans ce contexte correspond à la disposition du clavier.
Ce terme me semble plus parlant que "Configuration" qui est très général.

[ChangeLog][Translations] Improved French translation

* add fish shell specific commands to Xsession and wayland-session
to get the fish-specific login environment instead of the catchall /etc/profile environment.

* Unlock Gnome keyring on login (sddm#711)

Gnome's keyring stores user keys (eg: wifi passwords) encrypted, and uses
a pam module to unlock them at login.

This patch adds `optional` support for the gnome_keyring pam module, so
Gnome can be launched successfully from SDDM. Without this, Gnome will
ask for the users password again after logging in, the first time it needs
to access the keyring, in order to unlock it.

Other display managers as the Gnome Display Manger [1], LightDM [2] and
Enlightment's Entrance [3] already do this.

[1] https://github.com/GNOME/gdm/blob/master/data/pam-arch/gdm-password.pam
[2] http://bazaar.launchpad.net/~lightdm-team/lightdm/trunk/view/head:/debian/lightdm.pam
[3] https://git.enlightenment.org/misc/entrance.git/tree/data/entrance

[ChangeLog][Pam] Unlock GNOME keyring on login

* releng: Update create_changelog.pl

* releng: Fix Perl errors

* releng: Support GitHub issue references

* Move EnableHiDPI setting to X11 and Wayland sections

Let's have a different setting depending on the display server.

On Wayland we might have a chance to circumvent bad physical size reported
by some screen while on X11 it's harder because we cannot do that from
QPA, hence a user might want to disable HiDPI on X11 and enable it on
Wayland.

* Document EnableHiDPI setting

* Fix manual for Current theme setting

* add kwallet5 support

Add kwallet-pam support for the plasma5 desktop

* Implemented kwallet5 for autologon as well

Note: It is only working with an empty kwallet password.

* Failure log messages if gnome keyring is not installed.

If gnome keyring is not installed pam will log an error in the system log.  In order to supress the message a dash in front of the entry is required.

* Cleanup dangling pointer in SocketServer (sddm#725)

This fixes SDDM crashing if xorg fails to load

[ChangeLog][Auth] Fix crash if Xorg fails to load

* Fix all incorrect use of QStringLiteral

* Fix QStringLiteral

* autologin: try last successful session if no autologin session is set

* By this the user can decide which session to select for autologin without
  touching priviledged configuration file.
* If session is set in configuration, the behaviour is same as before

Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>

* Support elogind as an alterantive session tracker for systemd-logind.

For users who do not want to run the full systemd suite, but do not
want to patch sddm to use ck-launch-session either, elogind can be
used as an alternative session tracker via its PAM module.

* Don’t install themes Main.qml/metadata.desktop twice, in some conditions they don’t get configured

* Add danish (da) translation (sddm#766)

* Simple theme 'maya' (sddm#717)

Add Maya theme

Signed-off-by: Sanjeev Premi <spremi@ymail.com>

* Update mailmap

* Install maya theme

* Also set QT_IM_MODULE in non testing mode

QT_IM_MODULE is set from a config value, however it currently is only
set in testing mode

* sddm-helper: x11: fix unsupported number of arguements error for unity session

Currently AFAICT the /etc/X11/Xsession script in Ubuntu is expecting 1 and only 1 arguments as the running command, as showed as the following fraction of /etc/X11/Xsession.d/20x11-common_process-args:

```sh
case $# in
  0)
    # No arguments given; use default behavior.
    ;;
  1)
    # One argument given; see what it was.
    case "$1" in
      failsafe)
        # Failsafe session was requested.
        if has_option allow-failsafe; then
          if [ -e /usr/bin/x-terminal-emulator ]; then
            if [ -x /usr/bin/x-terminal-emulator ]; then
              exec x-terminal-emulator -geometry +1+1
            else
              # fatal error
              errormsg "unable to launch failsafe X session ---" \
                       "x-terminal-emulator not executable; aborting."
            fi
          else
            # fatal error
            errormsg "unable to launch failsafe X session ---" \
                     "x-terminal-emulator not found; aborting."
          fi
        fi
        ;;
      default)
        # Default behavior was requested.
        ;;
      *)
        # Specific program was requested.
        STARTUP_FULL_PATH=$(/usr/bin/which "${1%% *}" || true)
        if [ -n "$STARTUP_FULL_PATH" ] && [ -e "$STARTUP_FULL_PATH" ]; then
          if [ -x "$STARTUP_FULL_PATH" ]; then
            STARTUP="$1"
          else
            message "unable to launch \"$1\" X session ---" \
                    "\"$1\" not executable; falling back to default session."
          fi
        else
          message "unable to launch \"$1\" X session ---" \
                  "\"$1\" not found; falling back to default session."
        fi
        ;;
    esac
    ;;
  *)
    # More than one argument given; we don't know what to do.
    message "unsupported number of arguments ($#); falling back to default" \
            "session."
    ;;
esac
```

Currently SDDM runs the Xsession script without quoting the second argument, which causes all xsessions that Exec key contains command-line arguments(like Unity(gnome-session --session=ubuntu)) causes Xsession to bail out with message "Xsession: unsupported number of arguments (2); falling back to default session."

This patch fixes the issue by quoting the %2 argument in the SessionCommand.

Signed-off-by: 林博仁 <Buo.Ren.Lin@gmail.com>

* Also theme the default cursor for the root window

The root window is still accessible in some cases, like context menu overlays.

* Ignore session desktop files with the Hidden property set to true

They are still read in the autologin case.

Fixes issue sddm#820

* Parse desktop file sections

Some desktop files have multiple sections, but for now we're only
interested in [Desktop Entry]. Without this patch, every entry was seen
as part of the [Desktop Entry] session, resulting in values getting
overwritten.

* updated Polish translation

Signed-off-by: Marcin Mikołajczak <me@m4sk.in>

* UserModel: Check for duplicates from getpwent()

* Corrections in Lithuanian language

Corrected some words.

* Add LIBXCB_INCLUDE_DIR to the list of include directories.

The daemon and the greeter include xcb/xcb.h, but they were relying on xcb's
include directory being implicitly added by the compiler instead of making
sure it was always passed to the compiler.

* Include errno.h and string.h where needed.

Do not rely on them being implicitly included by other headers; include
errno.h and string.h whenever errno and strerror(3) are used.

* Improve Catalan translation

* Bump version to 0.15.0

* Update changelog

* Stop assuming shadow(5) support is always available.

shadow and getspnam(3) are Linux-specific. Add a check for getspnam(3) to
CMake and only use the shadow functions if they exist, otherwise just use
getpwnam(), which on systems such as FreeBSD already performs the same
things shadow does on Linux.

* Update config docs

* Re-use existing sessions

Most desktop environments don't support logging in as the same user
twice, especially with system changes that means the DBUS session bus is
the same.

With this patch if a user tries to log in as a user that is already
logged in we unlock and activate that session rather than creating a new
session.

This behaviour is configurable with a config option. The default matches
the current behaviour.

* Add logind/CK2 seat support

This monitors for new seats using the standardised seat manager provided by:
systemd, standalone logind, systembsd, consolekit2, or any other implementation.

In none of the myriad of options are available, a single seat, seat0, is created
(which is the current behaviour)

* Fix typos in config documentation

Mentions wrong path.

* Explicity set XDG_SEAT env var when starting the user session.

* Added posibility to change border width of ComboBox widget.

* Exclude .gitattributes from themes

Do not install .gitattributes when installing a theme.

* Log theme configuration path

This helps debugging problems.

* Fix theme metadata default values

Default values where wrong resulting in theme configuration not
being loaded by Display.

[ChangeLog][ThemeMetadata] Fix default values

* Don't log an error if elogind is not present (sddm#884)

* Prevent errors when pam_systemd is not available

Don't print errors on elogind systems.

*  remove unnecessary indentation (sddm#899)

* Update translations

Update .ts files and CMakeLists.txt, and fix Ukrainian.

Signed-off-by: Marcin Mikołajczak <me@m4sk.in>

* Remove duplicate translations

* Update change log

Add separator in change log, reformat v0.15.0 and add v0.16.0 items.

* Bump version to 0.16.0

* Add configuration directory to change log

* 0.16.0 (sddm#900)

Merge develop into master.

* Update release notes

* man: sddm.conf.rst.in fix syntax error

- missing *

* man: update for the new configuration dirs and files

* Update zh_TW translations.

* Fix ComboBox

This fixes a duplicate which qml doesn't allow.

* Adjust order of components in the default PATH

There is no reason to prefer executables in /bin over others, this has
in fact caused issues on a system where /bin is a symlink to usr/bin
(https://gitlab.kitware.com/cmake/cmake/issues/17330).

This order also matches systemd's default for bin (see systemd.exec(5)).

* helper: Declare dependency on Qt5::Qml.

Authrequest.h includes <QtQml>, so make sure it's found on systems
where it exists in a different directory from the rest of Qt.

* Update lt.ts

* Update de.ts

* Fix connection of PropertiesChanged event for LogindSeat

SDDM fails to start properly because the seat0 changes the property
canGraphical after SDDM is started and the connection to watch the
PropertiesChanged event didn't work.

* Added missing utmp/wtmp/btmp handling

* Make greeter see icons set by AccountsServices. Resolves sddm#683

* man: sddm.greeter.rst.in fix syntax error 

missing *

* Set a default InputMethod

Otherwise we choke by default when importing QtVirtualKeyboard

* Refactor setupDisplay() to use two distinct processes to avoid race conditions. Fixes Xsetup script.

* Update contributors list

* Update change log

* Bump version to 0.17.0

* Update Korean translations

* Update Catalan translation

* add --example-config to man page

* Fix race between sddm and logind

Make sure sddm is run after logind.
An explicit dependency will make sddm run after logind every time.

Closes: sddm#978

* Add .gitattributes

Some files shouldn't be exported with git archive.

* Don't use QMap with a pointer key (sddm#971)

QMap sorts it's keys, but sorting by memory address makes little sense.
Using QHash instead, which provides faster lookups and don't sort the keys.

The same rationale applies to QMultiMap which is just a  is a convenience
QMap subclass that provides multi-valued maps.

* Fix error when session command has multiple arguments (sddm#732)

* Don't quit on SIGHUP

SIGHUP is sent to daemons on reload, so they should reread their configuration.
Currently sddm would just quit on reload, which is very unexpected.

* Add SOCK_CLOEXEC to signal handling sockets

SDDM is currennty leaking 8 sockets file descriptors to the user session.
Adding the CLOEXEC flag to the fd to avoid thoses leaks.

* Support for theme supplied default avatars

This patch adds support for custom default avatars
under $ThemeDir/themeName/faces.

This will make sddm use an avatar icon that is provided by
the theme and is consistent with its look.

* Remove COMPONENTS_VERSION

We only have SDDM components version 2.0 and no longer maintain
two versions at the same time like we used to do before.

* Set default options value

* Do not load both systemd and elogind PAM modules

Select which one needs to be loaded based on configure options.

* Bump Qt requirement to 5.8.0

Require Qt 5.8.0 so we are all set for QtQuick Controls 2
and QtWayland Compositor.

* If there is still a session running on some display,
switch to last display in display vector.

VirtualTerminal::chVt code inspired by chvt utility.

This fixes the following bug:
1. Login user A
2. Switch user
3. New session: login user B
4. Switch to user A
5. Logout user A
=> Virtual terminal is not switched to session of user B,
   but shows a text terminal login or is blank.

This code works with Xorg sessions. Wayland sessions seem
to have other problems when logging out, this fix does not
address these.

* Integrate the VT switching fix into existing jumpToVt():
Do not handle the VT switching yourself by setting VT_PROCESS,
but let the kernel switch VTs automatically (VT_AUTO).
After session end there is no controlling process anymore
which could send the VT_RELDISP ioctl to release the switch.

* Check for getpwnam_r error status. Fixes sddm#489

* greeter: Use Qt command line parser

Do not reinvent the wheel with a command line parser.
Restructure the code so that GreeterApp no longer need to
parse arguments itself.

* Add Namespaces setting

This option holds a comma-separated list of paths bound to Linux namespaces to
enter with setns() before starting the user session.

The main intention is to let user sessions start in a protected network
namespace, while the display server remains in the initial network namespace to
talk to udev, and udev remains in the initial network namespace to talk to
systemd.

[ChangeLog][General] Add "Namespaces" setting under "General" to enter specified
Linux namespaces before starting the user session

* Update man page about default path

Closes: sddm#958

* Fix platform detection for EnableHiDPI

We can't use QGuiApplication before it's constructed, so find out which
platform is requested ourselves.

Fixes sddm#894

* Remove trailing spaces

* Fix build

* Fix build

* UserModel: optimize filtering out duplicate users (sddm#995)

Instead of using naive approach of trying to detect duplicates when
inserting a new user into the list of users, which is O(n^2) complexity,
let's filter them out after the fact, which is much more efficient on
real-world data.

With this change time to load user list in our environment (over 500000
account entries) is reduced from over 1 hour to about 2 seconds.

* UserModel: fix filtering out duplicate users (sddm#998)

std::unique() is "interesting": it modifies the container, rearranging
elements in it, but does not reduce the size of the container, so there
are invalid elements at the end that have to be erased explicitly.

* Do not install sddm.conf by default (sddm#996)

sddm.conf overrides the configuration from the conf.d
directories and we don't want that.

SDDM still reads it if users keep the file after an
upgrade, but since the introduction of conf.d directories
we shouldn't install sddm.conf by default.

[ChangeLog][Daemon] Do not install /etc/sddm.conf anymore

* Fix build with Qt < 5.10: Use QString instead of QLatin1String (sddm#1001)

QLatin1String only got more QString-like with Qt 5.10, so we can't use
those methods.

* Add Icelandic Translations (sddm#1002)

Add Icelandic translation file.

[ChangeLog][Translations] Add Icelandic

* UserModel: optimize setting of default user icon (sddm#999)

Instead of checking for existence of theme-specific icon and re-creating
string literals every time we add a new user to the list, do it once.
It helps in large organizations with a lot of users.

* adding Bangla translation (sddm#1006)

Signed-off-by: now-im <now.im.627@gmail.com>

* Skip theme for greeter call if none is set

- fix loading default theme if none is set

* Honor PAM's ambient supplemental groups. (sddm#834)

When compiled with USE_PAM, prefer a combination of
getgroups(3) and getgrouplist(3) for ambient and user
groups, respectively, to initgroups(3).

This way, groups injected into the PAM environment
by means of pam_groups.so aren't ignored.

Signed-off-by: J. Konrad Tegtmeier-Rottach <jktr@0x16.de>

* XorgDisplayServer.cpp: Check pipe output if there is nothing (sddm#1021)

X server may break down without writing a display number
to the pipe specified by '-displayfd'. SDDM should exit explictly
in such cases. Otherwise, it will get a null string for display number,
which leads /usr/bin/xauth gets bad parameters, i.e.

    /usr/bin/xauth: (stdin):1:  bad "remove" command line
    /usr/bin/xauth: (stdin):2:  bad "add" command line

* Update Korean translations (sddm#1025)

* Fix build with Qt 5.11 (sddm#1024)

qt5_use_modules was deprecated for quite some time and got finally removed.

* Fix sddm-greeter exit if it can't connect to the daemon (sddm#1016)

* Fixed typo that prevents ConsoleKit to be detected (sddm#1027)

* Don't add session files with NoDisplay=true to SessionModel (sddm#1029)

Same treatment as for Hidden. SessionModel is not used for autologin,
so for all intents and purposes it's the same. If a user logged in with
a NoDisplay=true session, the last session index will be incorrect, but
IMO that's the intended behaviour of NoDisplay.

* Fix missing include in HelperApp.cpp

SDDM did not compile on musl libc, since HelperApp.cpp was using
gettimeofday(), which is defined in <sys/time.h>, without importing it.

[ChangeLog][Helper] Fix build with musl libc.

* add new translations

translated hibernate and suspend
add  enter your password/ username for to use with tooltips

* add new translation

add translation for hibernate and suspend
add translation toenter username/ password for to use with tooltips

* Fix authentication when reusing an existing session

- Check the success value before unlocking the session
- Don't attempt to use the nonexistant "sddm-check" PAM service

* Adds sourcing of /etc/profile to fish

This ensures the right paths are set by upstream apps that use the
/etc/profile(.d) method for setting paths, for example xdg or snap.

Signed-off-by: James Turnbull <james@lovedthanlost.net>

[ChangeLog][Xsession] Source /etc/profile for fish too

Closes: sddm#879

* Fix switchToGreeter not available without logind

Seats can't be created until SeatManager's signals are
connected to the DisplayManager, or the latter won't see
them and switchToGreeter doesn't work. So split SeatManager
initialization from its constructor and call initialize it
only after all connections have been set up in DaemonApp's
constructor.

With logind there may have been enough delay before seats
got actually added so things would work, but it's still
cleaner to fix the order.

Fixes: https://bugs.gentoo.org/644718
Fixes: sddm#824

* Remove correct view when a screen is removed

This connect was done for all views so previously when any screen was
removed all views would be.

* Bump to 0.18.0

* Handle session re-use in the same slot as everything else

m_auth is connected to ::authentication in the constructor so use of a
second connect is really weird and runs in an undetermined order
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants