1
0
mirror of https://github.com/systemd/systemd.git synced 2024-11-02 10:51:20 +03:00
Commit Graph

1728 Commits

Author SHA1 Message Date
WaLyong Cho
da64a1fc41 bootchart: add standalone bootchart service 2014-12-04 01:55:01 +01:00
Michael Biebl
3b0ed75c35 vconsole: don't hard-code systemd-vconsole-setup binary path 2014-12-04 00:05:04 +01:00
Lennart Poettering
e9140aff75 nss-myhostname: always resolve the host name "gateway" to the local default gateway
This is useful inside of containers or local networks to intrdouce a
stable name of the default gateway host (in case of containers usually
the host, in case of LANs usually local router).
2014-12-03 21:48:45 +01:00
Didier Roche
a1405db67c machine-id-commit: add unit file
The unit file only active the machine-id-commit helper if /etc is mounted
writable and /etc/machine-id is an independant mount point (should be a tmpfs).
2014-12-03 03:41:19 +01:00
Didier Roche
3fb394369c machine-id-commit: Introduce machine-id-commit binary
This binary enables to commit transient machine-id on disk if it becomes
writable.
2014-12-03 03:41:19 +01:00
Tom Gundersen
d8500c5378 shared: add format helpers for printing MAC addresses
Use these in networctl.
2014-12-02 14:31:16 +01:00
Łukasz Stelmach
5a16bc264c build-sys: configure the list of system users, files and directories
Choose which system users defined in sysusers.d/systemd.conf and files
or directories in tmpfiles.d/systemd.conf, should be provided depending
on comile-time configuration.
2014-11-30 23:50:19 -05:00
Ronny Chevalier
34029ff146 build-sys: add missing tests files to EXTRA_DIST 2014-11-30 03:18:54 +01:00
Chris Leech
8d3ae2bd4c mount: use libmount to enumerate /proc/self/mountinfo
This lets libmount add in user options from /run/mount/utab, like
_netdev which is needed to get proper ordering against remote-fs.target
2014-11-28 14:30:50 -05:00
Peter Hutterer
0213a26f65 hwdb: add a new db for the DPI/frequency settings of mice
Pointer acceleration for relative input devices (mice, trackballs, etc.)
applies to the deltas of the device. Alas, those deltas have no physical
reference point - a delta of 10 may be caused by a large movement of a
low-dpi mouse or by a minute movement of a high-dpi mouse.
Which makes pointer acceleration a bit useless and high-dpi devices
essentially unusable.

In an ideal world, we could read the DPI from the device directly and work
with that. In the world we actually live in, we need to compile this list
manually. This patch introduces the database, with the usual match formats
and a single property to be set on a device: MOUSE_DPI

That is either a single value for most mice, or a list of values for mice
that can change resolution at runtime. The exact format is detailed in the
hwdb file.

Note that we're explicitly overshooting the requirements we have for
libinput atm. Frequency could be detected in software and we don't
actually use the list of multiple resolutions (because we can't detect
when they change anyway). However, we might as well collect those values
from the get-go, adding/modifying what will eventually amount to hundreds
of entries is a bit cumbersome.

Note: we rely on the input_id builtin to tag us as mouse first, ordering
of the rules is important.

(David: fixed up typos and moved hwdb file into ./hwdb/)
2014-11-27 12:30:08 +01:00
Łukasz Stelmach
bedd083aae build-sys: do not install tmpfiles and sysusers files by default 2014-11-27 00:24:52 -05:00
Lennart Poettering
55e189007c bus-policy: also add in other bus policy tests from dbus1
dbus1 only checks if these files parse correctly so let's do the same for now.
2014-11-26 20:58:34 +01:00
Lennart Poettering
3a9cca1104 bus-policy: steal a test case for prefix ownership from dbus1, and make sure it passes with the bus proxy enforcement 2014-11-26 20:22:22 +01:00
Zbigniew Jędrzejewski-Szmek
d6170d27b2 udevadm: split out find_device helper
The idea is to unify the way that devices can be specified.
2014-11-25 21:16:47 -05:00
David Herrmann
d4f5a1f47d localed: validate xkb keymaps
Introduce a new optional dependency on libxkbcommon for systemd-localed.
Whenever the x11 keymap settings are changed, use libxkbcommon to compile
the keymap. If the compilation fails, print a warning so users will get
notified.

On compilation failure, we still update the keymap settings for now. This
patch just introduces the xkbcommon infrastructure to have keymap
validation in place. We can later decide if/how we want to enforce this.
2014-11-24 15:16:33 +01:00
Lennart Poettering
a1ad376761 busctl: split out introspection parser from tree logic so that we can reuse it for a future "busctl introspect" command 2014-11-20 00:01:05 +01:00
Lennart Poettering
f84f9974d8 kmod: move #ifdef checks for kmod-setup out of main.c into kmod-setup.c 2014-11-14 17:58:32 +01:00
Ronny Chevalier
281e05b6cb tests: add test-execute
add tests for the following directives:
- WorkingDirectory
- Personality
- IgnoreSIGPIPE
- PrivateTmp
- SystemCallFilter: It makes test/TEST-04-SECCOMP obsolete, so it has
  been removed.
- SystemCallErrorNumber
- User
- Group
- Environment
2014-11-13 10:39:51 +01:00
Kay Sievers
0b906b8d6f build-sys: move libsystemd-capability into libsystemd-shared 2014-11-11 16:27:42 +01:00
Kay Sievers
657bf5a162 build-sys: do not use "label" functions in libsystemd-shared 2014-11-10 18:59:03 +01:00
Kay Sievers
87cfe63da1 build-sys: test-fdset - add libsystemd-internal 2014-11-10 18:22:44 +01:00
Kay Sievers
7680857ab8 build-sys: add libcap to libsystemd-shared 2014-11-10 17:32:29 +01:00
Ronny Chevalier
5445c7a002 build-sys: do not include tests in code coverage 2014-11-08 22:48:17 +01:00
Ronny Chevalier
ad02805f85 build-sys: link to libsystemd-core only when needed
Multiple executables do not need libsystemd-core
2014-11-08 22:48:17 +01:00
Ronny Chevalier
b36bf0f361 build-sys: avoid duplication of macro definition
TEST_DIR is already defined in AM_CFLAGS
2014-11-08 22:48:17 +01:00
Ronny Chevalier
bc9992978c tests: add test-path
It tests all available directives of Path units:
- PathChanged
- PathModified
- PathExists
- PathExisysGlob
- DirectoryNotEmpty
- MakeDirectory
- DirectoryMode
- Unit
2014-11-08 22:45:56 +01:00
Lennart Poettering
134e56dcc5 shared: rename condition-util.[ch] to condition.[ch]
Now that we only have one file with condition implementations around, we
can drop the -util suffix and simplify things a bit.
2014-11-06 14:21:11 +01:00
Lennart Poettering
493657337a core: get rid of condition.c and move the remaining call into util.c
That way only one file with condition code remaining, in src/shared/,
rather than src/core/.

Next step: dropping the "-util" suffix from condition-util.[ch].
2014-11-06 14:21:11 +01:00
Lennart Poettering
a4705396ad condition: internalize condition test functions
Also, implement the negation check inside of condition_test() instead of
individually in each test function.
2014-11-06 14:21:10 +01:00
Lennart Poettering
d1bddcec98 condition: unify condition logic in one file 2014-11-06 14:21:10 +01:00
Ray Strode
f6ba8671d8 login: rerun vconsole-setup when switching from vgacon to fbcon
The initialization performed by systemd-vconsole-setup is reset
when changing console drivers (say from vgacon to fbcon), so we
need to run it in that case.

See
http://lists.freedesktop.org/archives/systemd-devel/2014-October/023919.html
http://lists.freedesktop.org/archives/systemd-devel/2014-October/024423.html
http://lists.freedesktop.org/archives/systemd-devel/2014-November/024881.html

This commit adds a udev rule to make systemd-vconsole-setup get run when
the fbcon device becomes available.

(david: moved into new file 90-vconsole.rules instead of 71-seats.rules;
        build-failures are on me, not on Ray)
2014-11-06 10:56:52 +01:00
Cristian Rodríguez
01acf6c3b7 buildsys: test-util needs -lm for fabs() 2014-11-05 12:58:10 +01:00
Lennart Poettering
875c2e220e journald: if available pull audit messages from the kernel into journal logs 2014-11-03 21:51:28 +01:00
Tom Gundersen
cda391c3f9 libsystemd-networkd: introduce sd-pppoe library
This library negotiates a PPPoE channel. It handles the discovery stage and
leaves the session stage to the kernel. A further PPP library is needed to
actually set up a PPP unit (negotatie LCP, IPCP and do authentication), so in
isolation this is not yet very useful.

The test program has two modes:

  # ./test-pppoe

will create a veth tunnel in a new network namespace, start pppoe-server on one
end and this client library on the other. The pppd server will time out as no
LCP is performed, and the client will then shut down gracefully.

  # ./test-pppoe eth0

will run the client on eth0 (or any other netdev), and requires a PPPoE server
to be reachable on the local link.
2014-11-01 22:31:40 +01:00
Tom Gundersen
f089257d7b shared: add helpers for unaligend BE read/write 2014-11-01 15:36:29 +01:00
Ronny Chevalier
641d1f99b8 tests: add test-copy 2014-10-31 10:57:22 +01:00
Ronny Chevalier
2b89a96060 tests: add test-locale-util 2014-10-31 10:57:21 +01:00
Zbigniew Jędrzejewski-Szmek
7358dc029a Convert the rest to sd_bus_errnomap
I tried to preserve most errno values, but in some cases they were
inconsistent (different errno values for the same error name) or just
mismatched.
2014-10-30 20:38:28 -04:00
Zbigniew Jędrzejewski-Szmek
4a0a74179f bus: add sd_bus_errnomap section
This allows custom "name" ↔ errno mappings to be registered.
Tables from all compilation units are concatenated.
2014-10-30 20:31:48 -04:00
Michal Schmidt
2ea8c08306 tools: add gdb command to dump hashmap information
$ sudo gdb -p 1
...
(gdb) source gdb-sd_dump_hashmaps.py
(gdb) sd_dump_hashmaps
  ... lists allocated hashmaps ...
(gdb) sd_dump_hashmaps 1
  ... lists allocated hashmaps, their DIB histograms and contiguous
      blocks statistics ...
2014-10-30 19:50:51 +01:00
Michal Schmidt
89439d4fc0 hashmap: rewrite the implementation
This is a rewrite of the hashmap implementation. Its advantage is lower
memory usage.

It uses open addressing (entries are stored in an array, as opposed to
linked lists). Hash collisions are resolved with linear probing and
Robin Hood displacement policy. See the references in hashmap.c.

Some fun empirical findings about hashmap usage in systemd on my laptop:
  - 98 % of allocated hashmaps are Sets.
  - Sets contain 78 % of all entries, plain Hashmaps 17 %, and
    OrderedHashmaps 5 %.
  - 60 % of allocated hashmaps contain only 1 entry.
  - 90 % of allocated hashmaps contain 5 or fewer entries.
  - 75 % of all entries are in hashmaps that use trivial_hash_ops.

Clearly it makes sense to:
  - store entries in distinct entry types. Especially for Sets - their
    entries are the most numerous and they require the least information
    to store an entry.
  - have a way to store small numbers of entries directly in the hashmap
    structs, and only allocate the usual entry arrays when the direct
    storage is full.

The implementation has an optional debugging feature (enabled by
defining the ENABLE_HASHMAP_DEBUG macro), where it:
  - tracks all allocated hashmaps in a linked list so that one can
    easily find them in gdb,
  - tracks which function/line allocated a given hashmap, and
  - checks for invalid mixing of hashmap iteration and modification.

Since entries are not allocated one-by-one anymore, mempools are not
used for entries. Originally I meant to drop mempools entirely, but it's
still worth it to use them for the hashmap structs. My testing indicates
that it makes loading of units about 5 % faster (a test with 10000 units
where more than 200000 hashmaps are allocated - pure malloc: 449±4 ms,
mempools: 427±7 ms).

Here are some memory usage numbers, taken on my laptop with a more or
less normal Fedora setup after booting with SELinux disabled (SELinux
increases systemd's memory usage significantly):

systemd (PID 1)                            Original   New    Change
dirty memory (from pmap -x 1) [KiB]            2152  1264     -41 %
total heap allocations (from gdb-heap) [KiB]   1623   756     -53 %
2014-10-30 19:50:51 +01:00
Lennart Poettering
a09abc4ae0 memfd: rename memfd.h to memfd-util.h to avoid any confusion with any libc provided headers 2014-10-30 18:32:37 +01:00
Kay Sievers
941a643569 build-sys: do not use "label" functions in libsystemd_shared 2014-10-28 18:46:53 +01:00
Lennart Poettering
cfc59d713d build-sys: bump library versions in preparation for 217 release 2014-10-28 15:29:36 +01:00
Timofey Titovets
3769415e65 login: remove multi-seat-x 2014-10-28 02:24:46 +01:00
Michal Schmidt
b3dcf58e28 shared: split mempool implementation from hashmaps 2014-10-23 17:38:02 +02:00
Michal Schmidt
32a4456cc2 test: generate tests for OrderedHashmap from Hashmap tests
test-hashmap-ordered.c is generated from test-hashmap-plain.c simply by
substituting "ordered_hashmap" for "hashmap" etc.

In the cases where tests rely on the order of entries, a distinction
between plain and ordered hashmaps is made using the ORDERED macro,
which is defined only for test-hashmap-ordered.c.
2014-10-23 17:38:02 +02:00
Zbigniew Jędrzejewski-Szmek
c7e4a7bece missing: remove fanotify
It was only used in readahead.
2014-10-17 08:55:42 -04:00
Tom Gundersen
2355af60dc consoled: add a unit file
The unit file is statically enabled, but still requires --enable-terminal
to actually get installed.
2014-10-04 13:19:18 +02:00
Tom Gundersen
10595afb4c consoled: move from /bin to /lib/systemd
This should not normally be run manually, but rather through systemd.
2014-10-04 13:18:47 +02:00