chiark / gitweb /
elogind.git
9 years agofstab-generator: Honor mount.usr*= on kernel command line
Tobias Hunger [Thu, 9 Oct 2014 19:37:17 +0000 (21:37 +0200)]
fstab-generator: Honor mount.usr*= on kernel command line

This allows to configure boot loader entries for systems where the
root and usr filesystems are in different subvolumes (or even on
different drives).

9 years agokdbus: fix buffer overflow in bus_get_owner_kdbus() function
Lukasz Skalski [Fri, 10 Oct 2014 10:29:04 +0000 (12:29 +0200)]
kdbus: fix buffer overflow in bus_get_owner_kdbus() function

Commit 710fc9779b7c (kdbus repo) introduced attaching items[]
instead of name[] in kdbus_cmd_conn_info struct. Commit 581fe6c81
(systemd repo) caught up with this change, but item size was not
properly calculated.

9 years agoman: reference table in systemd-detect-virt(1) from ConditionVirtualization= document...
Lennart Poettering [Fri, 10 Oct 2014 10:37:21 +0000 (12:37 +0200)]
man: reference table in systemd-detect-virt(1) from ConditionVirtualization= documentation

9 years agoman: include zVM in systemd-detect-virt list
Lennart Poettering [Fri, 10 Oct 2014 10:36:57 +0000 (12:36 +0200)]
man: include zVM in systemd-detect-virt list

9 years agoman: rework VM/container identifier list into a table, and include descriptions for...
Lennart Poettering [Fri, 10 Oct 2014 10:29:08 +0000 (12:29 +0200)]
man: rework VM/container identifier list into a table, and include descriptions for all entries

(also remove chroot from the list, we don't detect that anymore)

9 years agonspawn: actually allow access to /dev/net/tun in the container
Lennart Poettering [Fri, 10 Oct 2014 09:11:25 +0000 (11:11 +0200)]
nspawn: actually allow access to /dev/net/tun in the container

It's not sufficient to just copy the device node over, we need to update
the policy for it too.

9 years agosystemd-hibernate-resume@.service: remove unnecessary ordering
Ivan Shapovalov [Fri, 10 Oct 2014 03:52:26 +0000 (23:52 -0400)]
systemd-hibernate-resume@.service: remove unnecessary ordering

They were left from an early review iteration, when hibernate-resume
functionality was intended to work also outside of initramfs.
Now this is not the case, and these dependencies became redundant
as systemd-fsck-root.service can never be part of initramfs, and
systemd-remount-fs.service makes little sense in it.

9 years agobuild-sys: use -Wno-gnu-variable-sized-type-not-at-end under clang
Zbigniew Jędrzejewski-Szmek [Fri, 10 Oct 2014 03:30:45 +0000 (22:30 -0500)]
build-sys: use -Wno-gnu-variable-sized-type-not-at-end under clang

Otherwise we get useless warnings about journal code.

9 years agobuild-sys: use -Wno-typedef-redefinition only for clang
Zbigniew Jędrzejewski-Szmek [Fri, 10 Oct 2014 03:25:01 +0000 (22:25 -0500)]
build-sys: use -Wno-typedef-redefinition only for clang

Our checks for -Wno-xxx switches do not work with gcc [1].

[1] https://gcc.gnu.org/wiki/FAQ#wnowarning

9 years agoUpdate TODO
Zbigniew Jędrzejewski-Szmek [Wed, 8 Oct 2014 00:01:02 +0000 (20:01 -0400)]
Update TODO

9 years agoman: clarify what "microsoft" and "oracle" stand for
Rahul Sundaram [Fri, 10 Oct 2014 02:14:36 +0000 (22:14 -0400)]
man: clarify what "microsoft" and "oracle" stand for

https://bugzilla.redhat.com/show_bug.cgi?id=1150477

9 years agosystemctl: remove casts in formatting
Zbigniew Jędrzejewski-Szmek [Fri, 10 Oct 2014 02:57:56 +0000 (22:57 -0400)]
systemctl: remove casts in formatting

9 years agojournalctl: use pager for --list-boots
Zbigniew Jędrzejewski-Szmek [Thu, 9 Oct 2014 23:52:31 +0000 (19:52 -0400)]
journalctl: use pager for --list-boots

9 years agosd-journal: fix sd_journal_enumerate_unique skipping values
Jan Janssen [Sat, 6 Sep 2014 08:36:34 +0000 (10:36 +0200)]
sd-journal: fix sd_journal_enumerate_unique skipping values

sd_journal_enumerate_unique will lock its mmap window to prevent it
from being released by calling mmap_cache_get with keep_always=true.
This call may return windows that are wider, but compatible with the
parameters provided to it.

This can result in a mismatch where the window to be released cannot
properly be selected, because we have more than one window matching the
parameters of mmap_cache_release. Therefore, introduce a release_cookie
to be used when releasing the window.

https://bugs.freedesktop.org/show_bug.cgi?id=79380

9 years agosd-journal: change check to assert
Zbigniew Jędrzejewski-Szmek [Fri, 10 Oct 2014 02:51:35 +0000 (22:51 -0400)]
sd-journal: change check to assert

As of 0f99f74a14 'sd-journal: verify that object start with the field
name' this condition should never happen.

9 years agosd-journal: do not reset sd_j_enumerate_unique position on error
Zbigniew Jędrzejewski-Szmek [Fri, 10 Oct 2014 02:44:29 +0000 (22:44 -0400)]
sd-journal: do not reset sd_j_enumerate_unique position on error

systemctl would call sd_j_enumerate_unique() interleaved with
sd_j_next(). But the latter can remove a file if it detects an
error in it. In those circumstances sd_j_enumerate_unique would
restart with the first file in hashmap. With many corrupted files
sd_j_enumerate_unique might iterate over the list multiple times.

Avoid this by jumping to the next file in unique list if possible,
or setting a flag that tells sd_j_enumerate_unique that it is done
otherwise.

9 years agoman: document the new "rescue" kernel command line option
Lennart Poettering [Thu, 9 Oct 2014 16:26:47 +0000 (18:26 +0200)]
man: document the new "rescue" kernel command line option

9 years agoservice: enter SERVICE_STOP_SIGTERM state after getting "STOPPING=1"
Michal Schmidt [Thu, 9 Oct 2014 15:27:57 +0000 (17:27 +0200)]
service: enter SERVICE_STOP_SIGTERM state after getting "STOPPING=1"

SERVICE_STOP would mean we're running the ExecStop command. That's not
the case with "STOPPING=1".
Instead we should enter the same state as if we just told the service
to stop, i.e. SERVICE_STOP_SIGTERM.

This fixes a bug where voluntarily exiting services would hang around in
deactivating state until timeout.

9 years agoupdate TODO
Lennart Poettering [Thu, 9 Oct 2014 14:51:31 +0000 (16:51 +0200)]
update TODO

9 years agobus-proxy: allow getpeersec() to fail
Daniel Mack [Thu, 9 Oct 2014 13:40:17 +0000 (15:40 +0200)]
bus-proxy: allow getpeersec() to fail

getpeersec() will fail for non-SELinux enabled machines, so don't make that
a hard error.

9 years agosocket-proxyd: Unchecked return value from library
Susant Sahani [Thu, 9 Oct 2014 13:31:11 +0000 (19:01 +0530)]
socket-proxyd: Unchecked return value from library

CID 1237543 (#1 of 1): Unchecked return value from library
(CHECKED_RETURN)

9 years agosd-dhcp6-lease: Name the structure containing IAADDR data
Patrik Flykt [Wed, 8 Oct 2014 08:00:07 +0000 (11:00 +0300)]
sd-dhcp6-lease: Name the structure containing IAADDR data

With this change the DHCP6_OPTION_IAADDR_LEN define can be removed in
favor of using sizeof(). Using the name of the struct and sizeof()
makes it clearer how much and what data is being copied from the
DHCPv6 message.

9 years agobus-policy: move name list iteration to policy users
Daniel Mack [Thu, 9 Oct 2014 11:26:53 +0000 (13:26 +0200)]
bus-policy: move name list iteration to policy users

We need to figure out which of the possible names satisfied the policy,
so we cannot do the iteration in check_policy_item() but have to leave it
to the users.

Test cases amended accordingly.

9 years agologind: mount per-user tmpfs with 'smackfsroot=*' for smack enabled systems
Lukasz Skalski [Thu, 9 Oct 2014 09:02:47 +0000 (11:02 +0200)]
logind: mount per-user tmpfs with 'smackfsroot=*' for smack enabled systems

9 years agoman: SyslogIdentifier= has an effect on journal logging too
Lennart Poettering [Thu, 9 Oct 2014 09:36:34 +0000 (11:36 +0200)]
man: SyslogIdentifier= has an effect on journal logging too

9 years agosd-bus: check return value of asprintf()
Daniel Mack [Thu, 9 Oct 2014 09:26:09 +0000 (11:26 +0200)]
sd-bus: check return value of asprintf()

Check for OOM conditions of asprintf() in bus_set_address_user().

9 years agosystemctl: suggest -xe not -xn
Zbigniew Jędrzejewski-Szmek [Thu, 9 Oct 2014 00:22:51 +0000 (20:22 -0400)]
systemctl: suggest -xe not -xn

https://bugzilla.redhat.com/show_bug.cgi?id=1150289

9 years agoupdate TODO
Lennart Poettering [Wed, 8 Oct 2014 23:46:31 +0000 (01:46 +0200)]
update TODO

9 years agosd-event: also update signal mask when disconnecting sources
Zbigniew Jędrzejewski-Szmek [Sun, 5 Oct 2014 03:17:45 +0000 (23:17 -0400)]
sd-event: also update signal mask when disconnecting sources

9 years agosd-event: be more careful when enabling/disabling signals
Zbigniew Jędrzejewski-Szmek [Sun, 5 Oct 2014 02:57:43 +0000 (22:57 -0400)]
sd-event: be more careful when enabling/disabling signals

When a child event is disabled (in order to be freed) and there is no
SIGCHLD signal event, sd_event_source_set_enabled will disable SIGCHLD
even if there are other child events.

Also remove some unneeded signalfd updates.

https://bugs.freedesktop.org/show_bug.cgi?id=84659

Based-on-a-patch-by: Hristo Venev <mustrumr97@gmail.com>
9 years agoman/systemctl: document enable on masked units
Jan Synacek [Wed, 8 Oct 2014 06:04:52 +0000 (08:04 +0200)]
man/systemctl: document enable on masked units

9 years agoutil: avoid double close of fd
Thomas Hindoe Paaboel Andersen [Wed, 8 Oct 2014 21:57:32 +0000 (23:57 +0200)]
util: avoid double close of fd

We could end with a double close if we close the fd loop and flush_fd
fails. That would make us goto fail and there we close the fd once
again. This patch sets the fd to the return value for safe_close: -1
A fd with negative value will be ignored by the next call to
safe_close.

CID#996223

9 years agotime: functions named "internal" really shouldn't be exported
Lennart Poettering [Wed, 8 Oct 2014 20:37:45 +0000 (22:37 +0200)]
time: functions named "internal" really shouldn't be exported

Also, let's try to make function names descriptive, instead of using
bools for flags.

9 years agocore: map the 'rescue' argument to rescue.target
Mantas Mikulėnas [Tue, 7 Oct 2014 11:55:21 +0000 (14:55 +0300)]
core: map the 'rescue' argument to rescue.target

Even though the 'emergency' and 'single' aliases come from sysvinit, the
lack of 'rescue' is still quite confusing (caught me by surprise for the
9th time yet) and inconsistent with `systemctl rescue` as well.

9 years agoUpdate TODO
Lennart Poettering [Wed, 8 Oct 2014 19:32:30 +0000 (21:32 +0200)]
Update TODO

9 years agosd-bus: sync kdbus.h (ABI break)
Daniel Mack [Wed, 8 Oct 2014 13:32:41 +0000 (15:32 +0200)]
sd-bus: sync kdbus.h (ABI break)

Sync kdbus.h once again. Two thing have changed:

 a) KDBUS_CMD_EP_* was renamed to KDBUS_CMD_ENDPOINT_*
 b) struct kdbus_cmd_hello and struct kdbus_cmd_make gained a
    'features' bitfield (which is currently unused)

9 years agonspawn: copy /dev/net/tun from host
Tom Gundersen [Wed, 8 Oct 2014 13:01:07 +0000 (15:01 +0200)]
nspawn: copy /dev/net/tun from host

This enables tuntap support in the container (assumning the necessary capabilities are in place).

9 years agonote on relative symlink in os-release
Rahul Sundaram [Wed, 8 Oct 2014 05:42:59 +0000 (01:42 -0400)]
note on relative symlink in os-release

9 years agosystemctl: add add-wants and add-requires verbs
Lukas Nykryn [Wed, 8 Oct 2014 09:59:46 +0000 (11:59 +0200)]
systemctl: add add-wants and add-requires verbs

9 years agounit: move UnitDependency to unit-name
Lukas Nykryn [Wed, 8 Oct 2014 09:58:57 +0000 (11:58 +0200)]
unit: move UnitDependency to unit-name

9 years agoNEWS: update for 217
Zbigniew Jędrzejewski-Szmek [Wed, 8 Oct 2014 02:01:37 +0000 (22:01 -0400)]
NEWS: update for 217

9 years agoman: mention docker as type of virtualization
Zbigniew Jędrzejewski-Szmek [Wed, 8 Oct 2014 01:41:14 +0000 (21:41 -0400)]
man: mention docker as type of virtualization

9 years agocore: don't allow enabling if unit is masked
Jan Synacek [Tue, 7 Oct 2014 11:35:41 +0000 (13:35 +0200)]
core: don't allow enabling if unit is masked

9 years agobus-proxyd: assorted cleanups and fixes
Daniel Mack [Tue, 7 Oct 2014 15:58:29 +0000 (17:58 +0200)]
bus-proxyd: assorted cleanups and fixes

Just some cleanups around policy checks that came up during review.
The code is still not productive.

9 years ago/proc/sys prefixes are not necessary for sysctl anymore
Zbigniew Jędrzejewski-Szmek [Tue, 7 Oct 2014 06:02:59 +0000 (02:02 -0400)]
/proc/sys prefixes are not necessary for sysctl anymore

9 years agoUpdate TODO
Zbigniew Jędrzejewski-Szmek [Tue, 7 Oct 2014 13:11:03 +0000 (09:11 -0400)]
Update TODO

9 years agoman: document stripping of quotes
Zbigniew Jędrzejewski-Szmek [Tue, 7 Oct 2014 13:19:41 +0000 (09:19 -0400)]
man: document stripping of quotes

9 years agoman: move commandline parsing to a separate section
Zbigniew Jędrzejewski-Szmek [Tue, 7 Oct 2014 13:19:24 +0000 (09:19 -0400)]
man: move commandline parsing to a separate section

It is very long already, and obscures the description of
ExecStart, and it is about to get longer.

9 years agobus-proxyd: check return values of getpeercred() and getpeersec()
Daniel Mack [Tue, 7 Oct 2014 10:36:09 +0000 (12:36 +0200)]
bus-proxyd: check return values of getpeercred() and getpeersec()

If we can't get the remote peer or security creds, bail out.

Spotted by coverity.

9 years agosd-bus: check return value of vasprintf
Daniel Mack [Tue, 7 Oct 2014 10:10:06 +0000 (12:10 +0200)]
sd-bus: check return value of vasprintf

Check for OOM situations when vasprintf() returns < 0 in bus_error_setfv().

Spotted by coverity.

9 years agosd-bus: fix KDBUS_CMD_FREE user
Daniel Mack [Tue, 7 Oct 2014 10:02:04 +0000 (12:02 +0200)]
sd-bus: fix KDBUS_CMD_FREE user

Fix a user of the KDBUS_CMD_FREE ioctl that was missed in the transition.

9 years agosd-bus: fix use-after-free in close_kdbus_msg()
Daniel Mack [Tue, 7 Oct 2014 09:32:07 +0000 (11:32 +0200)]
sd-bus: fix use-after-free in close_kdbus_msg()

Walk the items first, then free the memory of the message.

Also, while at it, make coverity happy with an explicit (void) prefix.
We intentionally ignore the return value here.

9 years agokeymap: Fix touchpad toggle key on Asus laptops
Martin Pitt [Tue, 7 Oct 2014 09:22:31 +0000 (11:22 +0200)]
keymap: Fix touchpad toggle key on Asus laptops

https://launchpad.net/bugs/1377352

9 years agokeymap: Fix touchpad toggle on Toshiba Satellite P75-A7200
Martin Pitt [Tue, 7 Oct 2014 09:20:04 +0000 (11:20 +0200)]
keymap: Fix touchpad toggle on Toshiba Satellite P75-A7200

Just like everywhere else we use KEY_F21 instead of KEY_TOUCHPAD_TOGGLE for X
friendliness.

9 years agosd-bus: remove unused variable
Thomas Hindoe Paaboel Andersen [Mon, 6 Oct 2014 21:58:46 +0000 (23:58 +0200)]
sd-bus: remove unused variable

It is no longer used after d663f1b1a92a778bcdc68f29b8c08cb49431b4f7

9 years agosd-bus: sync kdbus.h (ABI break)
Daniel Mack [Mon, 6 Oct 2014 16:36:16 +0000 (18:36 +0200)]
sd-bus: sync kdbus.h (ABI break)

The KDBUS_CMD_FREE ioctl now uses a struct rather than a direct pointer
to the offset to free.

The KDBUS_CMD_MSG_CANCEL ioctl has also changes, but there's no user of
it yet in systemd.

9 years agobuild-sys: use linux/memfd.h if available
Zbigniew Jędrzejewski-Szmek [Sun, 5 Oct 2014 22:41:31 +0000 (18:41 -0400)]
build-sys: use linux/memfd.h if available

linux/memfd.h was added linux 3.17, so it might not be widely
available for a while.

Also, check if memfd_create is defined, for the HAVE_LINUX_MEMFD_H
check to have a chance of succeeding.

Also, collapse all ifdefs for memfd-related stuff, because they
were all added together so there's no need to check separately.

9 years agoterminal: remove an unused initialization
Thomas Hindoe Paaboel Andersen [Sun, 5 Oct 2014 20:33:20 +0000 (22:33 +0200)]
terminal: remove an unused initialization

9 years agoUpdate TODO
Zbigniew Jędrzejewski-Szmek [Sun, 5 Oct 2014 19:29:20 +0000 (15:29 -0400)]
Update TODO

9 years agoask-password: Add --echo to enable echoing the user input
David Sommerseth [Fri, 3 Oct 2014 13:53:45 +0000 (15:53 +0200)]
ask-password: Add --echo to enable echoing the user input

Programs such as OpenVPN may use ask-password for not only retrieving
passwords, but also usernames.  Masking usernames with * seems just silly.

 v2 - Don't mess with termios flags, instead print the input
      instead of an asterix.  Resolves issues with backspace
      and TAB input.

 v3 - Renamed 'do_echo' variables and argument to 'echo'.  Also
      modified the ask_password_{tty,agent,auto} API instead of
      additional wrapper functions.

[zj: undo changes to ask_password_auto, since no callers were using
     the new argument.]

9 years agobus: add assert to check that we're not freeing a static structure
Zbigniew Jędrzejewski-Szmek [Sun, 5 Oct 2014 18:04:02 +0000 (14:04 -0400)]
bus: add assert to check that we're not freeing a static structure

CID #996315.

9 years agoterminal/idev: don't remove consumed-mods from kbd-matches
David Herrmann [Sun, 5 Oct 2014 15:44:09 +0000 (17:44 +0200)]
terminal/idev: don't remove consumed-mods from kbd-matches

XKB consumed mods include modifiers that *didn't* affect the translation,
but might affect it if used. This is very misleading, given that we are
usually not interested in that information. Therefore, keep them in real
mods to behave like X11 does. Maybe at some point, XKB introduces proper
shortcut matching...

Also make evcat display consumed modifiers so we can better debug those
situations.

9 years agoterminal/screen: perform bold->light conversion only on foreground
David Herrmann [Sun, 5 Oct 2014 13:49:26 +0000 (15:49 +0200)]
terminal/screen: perform bold->light conversion only on foreground

Bold glyphs always use light colors. However, this color conversion is
limited to the foreground color, so skip it for backgrounds.

9 years agoterminal/subterm: leave bold-light conversion to parent
David Herrmann [Sun, 5 Oct 2014 13:48:32 +0000 (15:48 +0200)]
terminal/subterm: leave bold-light conversion to parent

We rely on the parent terminal to do color conversion, so also leave
bold->light conversion to the parent. Otherwise, it will be performed
twice and we might apply it on the wrong color.

9 years agoterminal/screen: add support for alternate screen buffers
Tom Gundersen [Sun, 5 Oct 2014 13:26:54 +0000 (15:26 +0200)]
terminal/screen: add support for alternate screen buffers

Hook up SM/RM 47/1047-1049 and enable alternate screen buffers for term
applications.

(David: rebased on top of -git, renamed helpers and added docs)

9 years agoterminal/screen: save state in separate object
David Herrmann [Sun, 5 Oct 2014 12:53:18 +0000 (14:53 +0200)]
terminal/screen: save state in separate object

Terminal state can be saved/restored by applications. To simplify our
internal handling, put all affected state into a separate object.
Especially with alternate screen buffers, this will simplify our code
significantly.

9 years agoterminal/subterm: skip setting parent's cursor
David Herrmann [Sun, 5 Oct 2014 12:47:57 +0000 (14:47 +0200)]
terminal/subterm: skip setting parent's cursor

We draw our own cursor in subterm now, so there's no reason to update the
cursor-position of the parent terminal on each frame. The parent's cursor
is hidden, anyway.

9 years agoterminal: fix TERM_FLAG_* comment
David Herrmann [Sun, 5 Oct 2014 12:45:33 +0000 (14:45 +0200)]
terminal: fix TERM_FLAG_* comment

7BIT mode is enabled by default. Fix the comment to state this correctly.

9 years agoterminal: fix restoring of screen flags
Tom Gundersen [Sat, 4 Oct 2014 21:03:15 +0000 (23:03 +0200)]
terminal: fix restoring of screen flags

9 years agotest: only use assert_se
Thomas Hindoe Paaboel Andersen [Sat, 4 Oct 2014 21:51:45 +0000 (23:51 +0200)]
test: only use assert_se

The asserts used in the tests should never be allowed to be
optimized away

9 years agoconsoled: add a unit file
Tom Gundersen [Sat, 4 Oct 2014 11:10:41 +0000 (13:10 +0200)]
consoled: add a unit file

The unit file is statically enabled, but still requires --enable-terminal
to actually get installed.

9 years agoconsoled: move from /bin to /lib/systemd
Tom Gundersen [Sat, 4 Oct 2014 11:12:49 +0000 (13:12 +0200)]
consoled: move from /bin to /lib/systemd

This should not normally be run manually, but rather through systemd.

9 years agosystemd-bus-proxyd: distribute the .in file also for the user version
Tom Gundersen [Sat, 4 Oct 2014 11:11:40 +0000 (13:11 +0200)]
systemd-bus-proxyd: distribute the .in file also for the user version

9 years agobuild-sys: fix make distcheck
Zbigniew Jędrzejewski-Szmek [Sat, 4 Oct 2014 02:08:23 +0000 (22:08 -0400)]
build-sys: fix make distcheck

9 years agoman: say that SecureBits= are space separated
Zbigniew Jędrzejewski-Szmek [Sat, 4 Oct 2014 01:06:52 +0000 (21:06 -0400)]
man: say that SecureBits= are space separated

9 years agosd-id128: do stricter checking of random boot id
Zbigniew Jędrzejewski-Szmek [Sat, 4 Oct 2014 00:57:30 +0000 (20:57 -0400)]
sd-id128: do stricter checking of random boot id

If we are bothering to check whether the kernel is not feeding us
bad data, we might as well do it properly.

CID #1237692.

9 years agofstab-generator: Small cleanup
Tobias Hunger [Sat, 4 Oct 2014 00:41:43 +0000 (20:41 -0400)]
fstab-generator: Small cleanup

9 years agosd-bus: split out cleanup into separate function
Zbigniew Jędrzejewski-Szmek [Fri, 3 Oct 2014 23:47:47 +0000 (19:47 -0400)]
sd-bus: split out cleanup into separate function

m is always non-null at this point. This function is too long anyway.

9 years agocore/namespace: remove invalid check
Zbigniew Jędrzejewski-Szmek [Fri, 3 Oct 2014 23:17:56 +0000 (19:17 -0400)]
core/namespace: remove invalid check

dir cannot be NULL here, because it was allocated with alloca.

CID #1237768.

9 years agocore/namespace: remove invalid check
Zbigniew Jędrzejewski-Szmek [Fri, 3 Oct 2014 23:16:11 +0000 (19:16 -0400)]
core/namespace: remove invalid check

root cannot be NULL here, because it was allocated with alloca.

CID #1237769.

9 years agosd-event: check the value of received signal
Zbigniew Jędrzejewski-Szmek [Fri, 3 Oct 2014 22:49:45 +0000 (18:49 -0400)]
sd-event: check the value of received signal

Appease coverity report #1237775.

Also rename ss to n, to make it visually different from ss.

9 years agoman: use more markup in daemon(7)
Zbigniew Jędrzejewski-Szmek [Fri, 3 Oct 2014 21:44:23 +0000 (17:44 -0400)]
man: use more markup in daemon(7)

9 years agoconsole: add user console daemon
David Herrmann [Fri, 3 Oct 2014 13:58:44 +0000 (15:58 +0200)]
console: add user console daemon

This adds a first draft of systemd-consoled. This is still missing a lot
of features and does some rather primitive rendering. However, it shows
the direction this code is going and serves as basis for further testing.

The systemd-consoled binary should be run as `systemd --user' unit. It
automatically picks up any session marked as Desktop=SYSTEMD-CONSOLE.
Therefore, you can use any login-manager you want (ranging from /bin/login
to gdm) to create sessions for systemd-consoled. However, the sessions
managers must be prepared to set the Desktop= variable properly.

The user-session is called `systemd-console', only the daemon providing
the terminal environment is called `systemd-consoled' (mind the 'd').

So far, only a single terminal session is provided on each opened
user-session. However, we support multiple user-sessions (even across
multiple seats) just fine. In the future, the workspace logic will get
extended so you can have multiple terminal sessions in a single
user-session for easier access.

Note that this is still experimental! Instructions on how to run it will
follow shortly.

9 years agopty: optimize read loop
David Herrmann [Fri, 3 Oct 2014 13:54:21 +0000 (15:54 +0200)]
pty: optimize read loop

As it turns out, I can actually send data to the pty faster than the
terminal can read. Therefore, make sure we read as much data as possible
but bail out early enough to not cause starvation.

Kernel TTY buffers are 4k, so reduce the overall buffer size, but read
more than once if possible (up to 8 times sounds reasonable).

9 years agoterminal/screen: adjust screen age only on update
David Herrmann [Fri, 3 Oct 2014 13:27:25 +0000 (15:27 +0200)]
terminal/screen: adjust screen age only on update

Instead of increasing the screen-age on redraw, we now increase it only on
real updates. This is effectively the same, but avoids increased age
counters on backbuffer rendering. Therefore, we can now check age counters
against fronbuffers safely, while rendering frames in background.

9 years agoterminal/screen: add color converter
David Herrmann [Fri, 3 Oct 2014 12:44:41 +0000 (14:44 +0200)]
terminal/screen: add color converter

Terminals use pseudo color-codes mixed with 8bit and 24bit colors. Provide
a color-converter so external renderers only have to deal with ARGB32
colors.

This requires a color-palette as input as there's no fixed mapping. We
provide a default, but maybe we wanna support external palettes in the
future.

9 years agoterminal/screen: add cursor rendering
David Herrmann [Fri, 3 Oct 2014 12:42:42 +0000 (14:42 +0200)]
terminal/screen: add cursor rendering

This is the most simple way to render cursors: flip attr->inverse of the
cursor cell. This causes the background and foreground colors of the
cursor-cell to be inversed.

Now that we render cursors ourselves, make subterm not call into the
parent terminal to render cursors.

9 years agoterminal/screen: mark cursor dirty on enabled/disable
David Herrmann [Fri, 3 Oct 2014 12:30:37 +0000 (14:30 +0200)]
terminal/screen: mark cursor dirty on enabled/disable

If we hide or show the cursor, we change visual attributes and have to
mark the underlying cell as dirty. Otherwise, the terminal will not be
redrawn.

9 years agoterminal/idev: add helper to match keyboard shortcuts
David Herrmann [Fri, 3 Oct 2014 11:11:08 +0000 (13:11 +0200)]
terminal/idev: add helper to match keyboard shortcuts

Matching keyboard shortcuts on internationalized keyboards is actually
non-trivial. Matching the actual key is easy, but the modifiers can be
used by both, the matching and the translation step. Therefore, XKB
exports "consumed-modifiers" that we use to figure out whether a modifier
was already used by the translation step.

The new IDEV_KBDMATCH() helper can be used to match on any keyboard
shortcut and it will do the right thing.

9 years agoterminal/screen: add keyboard mapping
David Herrmann [Fri, 3 Oct 2014 10:50:41 +0000 (12:50 +0200)]
terminal/screen: add keyboard mapping

Implement the feed_keyboard() handling by mapping XKB keys according to
DEC-VT behavior.

Public information on terminal key-mappings is pretty scarce. We only
implement the most basic mapping for now. Further improvements welcome!

9 years agoterminal/idev: don't map XKB_KEY_NoSymbol as ASCII 0
David Herrmann [Fri, 3 Oct 2014 10:48:36 +0000 (12:48 +0200)]
terminal/idev: don't map XKB_KEY_NoSymbol as ASCII 0

XKB_KEY_NoSymbol is defined as 0 but does not correspond to a VT key with
ASCII value 0. No such key exists, so don't try to find such a key.

9 years agoterminal/unifont: add built-in fallback glyph
David Herrmann [Thu, 2 Oct 2014 17:47:21 +0000 (19:47 +0200)]
terminal/unifont: add built-in fallback glyph

In case we cannot render a glyph, we want a fallback we can display
instead. If we rely on the font itself to provide the fallback character,
we have nothing to display if that character is not available. Therefore,
add a static fallback that we can use at any time.

9 years agoterminal/subterm: use screen renderer
David Herrmann [Thu, 2 Oct 2014 17:34:14 +0000 (19:34 +0200)]
terminal/subterm: use screen renderer

Don't hard-code the screen renderer but use the newly introduced
term_screen_draw() helper.

9 years agoterminal: add screen renderer
David Herrmann [Thu, 2 Oct 2014 17:31:43 +0000 (19:31 +0200)]
terminal: add screen renderer

We don't want to expose the term_screen internals for rendering.
Therefore, provide an iterator that allows external renderers to draw
terminals.

9 years agoterminal/drm: clear 'applied' flag when changing state
David Herrmann [Thu, 2 Oct 2014 16:51:29 +0000 (18:51 +0200)]
terminal/drm: clear 'applied' flag when changing state

If a pipe is enabled/disabled, we have to clear crtc->applied of the
linked CRTC. Otherwise, we will not run a deep modeset, but leave the crtc
in the pre-configured state.

9 years agoterminal/grdev: allow arbitrary fb-age contexts
David Herrmann [Thu, 2 Oct 2014 16:47:01 +0000 (18:47 +0200)]
terminal/grdev: allow arbitrary fb-age contexts

Instead of limiting fb-aging to 64bit integers, allow any arbitrary
context together with a release function to free it once the FB is
destroyed.

9 years agoterminal/grdev: provide front and back buffer to renderers
David Herrmann [Thu, 2 Oct 2014 16:26:06 +0000 (18:26 +0200)]
terminal/grdev: provide front and back buffer to renderers

We really want more sophisticated aging than just 64bit integers. So
always provide front *and* back buffers to renderers so they can compare
arbitrary aging information and decide whether to re-render.

9 years agoterminal/drm: provide pipe->target() callback
David Herrmann [Thu, 2 Oct 2014 15:59:26 +0000 (17:59 +0200)]
terminal/drm: provide pipe->target() callback

Instead of looking for available back-buffers on each operation, set it to
NULL and wait for the next frame request. It will call back into the pipe
to request the back-buffer via ->target(), where we can do the same and
look for an available backbuffer.

This simplifies the code and avoids double lookups if we run short of
buffers.

9 years agoterminal/grdev: simplify DRM event parsing
David Herrmann [Thu, 2 Oct 2014 15:09:05 +0000 (17:09 +0200)]
terminal/grdev: simplify DRM event parsing

Coverity complained about this code and is partially right. We are not
really protected against integer overflows. Sure, unlikely, but lets just
avoid any overflows and properly protect our parser loop.

9 years agoterminal: make utf8 decoder return length
David Herrmann [Thu, 2 Oct 2014 14:36:09 +0000 (16:36 +0200)]
terminal: make utf8 decoder return length

Lets return the parsed length in term_utf8_decode() instead of a buffer
pointer. Store the pointer in the passed argument.

This makes it adhere to the systemd coding-style, were we always avoid
returning pointers, but store them in output arguments. In this case, the
storage is not allocated, so it doesn't fit 100% to this idiom, but still
looks much nicer.