platform/upstream/systemd.git
10 years agotests: fix some tests to pass in koji
Zbigniew Jędrzejewski-Szmek [Sun, 12 Oct 2014 20:05:49 +0000 (16:05 -0400)]
tests: fix some tests to pass in koji

FAIL: test-engine
=================
Cannot find cgroup mount point: No such file or directory
Assertion 'r >= 0' failed at ../src/test/test-engine.c:46, function main(). Aborting.

FAIL: test-sched-prio
=====================
Cannot find cgroup mount point: No such file or directory
Assertion 'r >= 0' failed at ../src/test/test-sched-prio.c:42, function main(). Aborting.

FAIL: test-bus-cleanup
======================
Assertion 'sd_bus_open_system(&bus) >= 0' failed at ../src/libsystemd/sd-bus/test-bus-cleanup.c:40, function test_bus_open(). Aborting.
after new: refcount 1

10 years agoSet $NOTIFY_SOCKET for control procs if NotifyAccess=all
Brandon L Black [Sat, 11 Oct 2014 23:36:06 +0000 (23:36 +0000)]
Set $NOTIFY_SOCKET for control procs if NotifyAccess=all

10 years agoModernization
Zbigniew Jędrzejewski-Szmek [Sat, 11 Oct 2014 15:37:37 +0000 (11:37 -0400)]
Modernization

10 years agoNEWS: don't mention noinst_* debug programs
David Herrmann [Sat, 11 Oct 2014 16:53:26 +0000 (18:53 +0200)]
NEWS: don't mention noinst_* debug programs

systemd-evcat and systemd-modeset are not installed systemd wide and
should really just be used by developers to test the libsystemd-terminal
features. No reason to mention it in NEWS.. despite the undulating
rainbows..

10 years agoterminal/grdrm: force deep modeset on enter
David Herrmann [Sat, 11 Oct 2014 16:49:20 +0000 (18:49 +0200)]
terminal/grdrm: force deep modeset on enter

Usually, when our session is activated (or re-configurated) we should be
able to try a page-flip to our buffer. The kernel driver should reject it
if it is incompatible. As it turns out, drivers don't do this. Therefore,
we now force a deep modeset if we're not sure what mode is set.

This has the side-effect that we might get glitches on session-switches
(depending on driver behavior). However, there's no way around this and it
is what everyone does so far. Most drivers still detect if we keep the
mode and so don't touch the clocks. Therefore, we just get a regular async
flip.

10 years agosd-dhcp-client: support non-Ethernet hardware addresses
Dan Williams [Wed, 8 Oct 2014 19:15:45 +0000 (14:15 -0500)]
sd-dhcp-client: support non-Ethernet hardware addresses

Like Infiniband.  See RFC 4390 section 2.1 for details on DHCP
and Infiniband; chaddr is zeroed, hlen is set to 0, and htype
is set to ARPHRD_INFINIBAND because IB hardware addresses
are 20 bytes in length.

10 years agoReport aa_change_onexec error code
Michael Scherer [Sat, 11 Oct 2014 08:13:43 +0000 (04:13 -0400)]
Report aa_change_onexec error code

Since aa_change_onexec return the error code in errno, and return
-1, the current code do not give any useful information when
something fail. This make apparmor easier to debug, as seen on
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=760526

10 years agobus-proxyd: fix compatibility with old dbus-1
Lukasz Skalski [Fri, 10 Oct 2014 14:42:19 +0000 (16:42 +0200)]
bus-proxyd: fix compatibility with old dbus-1

'ListQueuedOwners' method should return 'NameHasNoOwner' error
if chosen name is not available on bus.

10 years agomount-setup: skip relabelling when SELinux and SMACK not supported
Emil Renner Berthing [Thu, 18 Sep 2014 13:24:55 +0000 (15:24 +0200)]
mount-setup: skip relabelling when SELinux and SMACK not supported

This is also the only place where FTW_ACTIONRETVAL is used, so
this makes systemd compile without SELinux or SMACK support
when the standard library doesn't support this extension.

10 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).

10 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.

10 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

10 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

10 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)

10 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.

10 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.

10 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.

10 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

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

10 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

10 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

10 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

10 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

10 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.

10 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.

10 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

10 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.

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

10 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.

10 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)

10 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.

10 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.

10 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

10 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

10 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().

10 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

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

10 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

10 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>
10 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

10 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

10 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.

10 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.

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

10 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)

10 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).

10 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

10 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

10 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

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

10 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

10 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

10 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.

10 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

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

10 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

10 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.

10 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.

10 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.

10 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.

10 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.

10 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

10 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.

10 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

10 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.

10 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.

10 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

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

10 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.]

10 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.

10 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.

10 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.

10 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.

10 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)

10 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.

10 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.

10 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.

10 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

10 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

10 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.

10 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.

10 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

10 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

10 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

10 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.

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

10 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.

10 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.

10 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.

10 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.

10 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)

10 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.

10 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).

10 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.

10 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.

10 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.

10 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.

10 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.

10 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!

10 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.