1
0
mirror of https://github.com/systemd/systemd.git synced 2024-11-07 01:27:11 +03:00
Commit Graph

868 Commits

Author SHA1 Message Date
Zbigniew Jędrzejewski-Szmek
5de0409e54 journal: add tool to extract coredumps
'systemd-coredumpctl' will list available coredumps:
   PID   UID   GID sig exe
 32452  500  500  11 /home/zbyszek/systemd/build/journalctl
 32666  500  500  11 /usr/lib64/valgrind/memcheck-amd64-linux
...

'systemd-coredumpctl dump PID' will write the coredump
to specified file or stdout.
2012-10-19 15:15:38 +00:00
Lennart Poettering
2087a7aff2 locale: add client tool localectl similar to hostnamectl/timedatectl 2012-10-19 04:55:49 +02:00
Lennart Poettering
3c1668da62 journal: add ability to list values a specified field can take in all entries of the journal
The new 'unique' API allows listing all unique field values that a field
specified by a field name can take in all entries of the journal. This
allows answering queries such as "What units logged to the journal?",
"What hosts have logged into the journal?", "Which boot IDs have logged
into the journal?".

Ultimately this allows implementation of tools similar to lastlog based
on journal data.

Note that listing these field values will not work for journal files
created with older journald, as the field values are not indexed in
older files.
2012-10-18 03:35:18 +02:00
Lennart Poettering
86b2e20a5e units: rework systemd-exit.service to terminate systemd via signal rather than bus
This should make session termination more reliable, as D-Bus doesn't
have to be around anymore for this to succeed.
2012-10-18 01:20:06 +02:00
Lennart Poettering
dbc4fbae58 hostname: add new hostnamectl tool as text client for hostnamed 2012-10-17 21:25:42 +02:00
Lennart Poettering
0ce8860a15 docs: install README files into /var/log and 7etc/rc.d/init.d
On systemd systems seasoned admins might be surprised to see that the
init scripts and log files are gone. To ease the transition let's place
some README files there, that hopefully help clearing up the situation.
2012-10-17 21:25:42 +02:00
Lennart Poettering
6d0274f115 timedatectl: introduce new command line client for timedated
Much like logind has a client in loginctl, and journald in journalctl
introduce timedatectl, to change the system time (incl. RTC), timezones
and related settings.
2012-10-17 21:25:42 +02:00
Lennart Poettering
183de6d7d9 id128: introduce new SD_ID128_CONST_STR() macro 2012-10-16 17:02:51 +02:00
Zbigniew Jędrzejewski-Szmek
e4d1062c05 build-sys: always distribute file 2012-10-13 14:54:56 +02:00
Zbigniew Jędrzejewski-Szmek
e88baee88f journald: properly update message size after stripping the identifier
Valgrind says:
==29176== Conditional jump or move depends on uninitialised value(s)
==29176==    at 0x412A85: cunescape_length_with_prefix (util.c:1565)
==29176==    by 0x40B351: dev_kmsg_record (journald-kmsg.c:301)
==29176==    by 0x40B653: server_read_dev_kmsg (journald-kmsg.c:347)
==29176==    by 0x40B701: server_flush_dev_kmsg (journald-kmsg.c:365)
==29176==    by 0x409DE7: main (journald.c:1535)
2012-10-13 14:40:32 +02:00
Kay Sievers
c0735bb218 build-sys: check - fix typo 2012-10-11 22:31:23 +02:00
Lennart Poettering
cfbc22abd0 journalctl: implement --since= and --until for filtering by time 2012-10-11 16:43:37 +02:00
Lennart Poettering
c6511e859c journal: when browsing the journal via browse.html allow clicking on entries to show their details 2012-10-10 22:41:03 +02:00
Lennart Poettering
96ede2601f detect-virt: install with fs caps by default to allow unprivileged access 2012-10-09 22:25:32 +02:00
Lennart Poettering
f9b557200b build-sys: prepare 194 2012-10-03 14:32:29 -04:00
Tom Gundersen
f51356b462 vconsole: default to the kernel compiled-in font
No longer override the default kernel font if nothing is specified in
vconsole.conf.

The default kernel font[0] provides ISO-8859-1 and box characters. Users
of Arabic, Cyrilic or Hebrew must set a different font manually as these
character sets were provided by the old default font [1], but are not
any longer.

Rationale:

 * it is counter-intuitive that an empty vconsole.conf file is different
   from adding FONT="";
 * the version of the default font shipped with Arch (which is the
   upstream one) behaves very badly during early boot[2] (which should
   admittedly be fixed in the font itself);
 * the kernel already supplies a default font, it seems reasonable to
   use that unless anything else is specified;
 * This also avoids a needless slow call to setfont; and
 * We don't want to work around problems in the kernel (in case the
   compiled-in font is not acceptable for whatever reason).

[0]: <https://dev.archlinux.org/~tomegun/kernel.bdf>
[1]: <https://dev.archlinux.org/~tomegun/latarcyrheb.bdf>
[2]: <http://i.imgur.com/J2tM4.jpg>
2012-10-03 15:42:19 +02:00
Lennart Poettering
c1165f822c audit: turn the audit fd into a static variable
As audit is pretty much just a special kind of logging we should treat
it similar, and manage the audit fd in a static variable.

This simplifies the audit fd sharing with the SELinux access checking
code quite a bit.
2012-10-02 17:40:09 -04:00
Lennart Poettering
cad45ba11e selinux: rework selinux access check logic
a) Instead of parsing the bus messages inside of selinux-access.c
simply pass everything pre-parsed in the functions

b) implement the access checking with a macro that resolves to nothing
on non-selinux builds

c) split out the selinux checks into their own sources
selinux-util.[ch]

d) this unifies the job creation code behind the D-Bus calls
Manager.StartUnit() and Unit.Start().
2012-10-02 17:07:00 -04:00
Lennart Poettering
597c52cfed build-sys: prepare 193 2012-09-28 01:34:38 +02:00
Lennart Poettering
7b17a7d72f journal: add minimal journal gateway daemon based on GNU libmicrohttpd
This minimal HTTP server can serve journal data via HTTP. Its primary
purpose is synchronization of journal data across the network. It serves
journal data in three formats:

       text/plain: the text format known from /var/log/messages
       application/json: the journal entries formatted as JSON
       application/vnd.fdo.journal: the binary export format of the journal

The HTTP server also serves a small HTML5 app that makes use of the JSON
serialization to present the journal data to the user.

Examples:

This downloads the journal in text format:

 # systemctl start systemd-journal-gatewayd.service
 # wget http://localhost:19531/entries

Same for JSON:

 # curl -H"Accept: application/json" http://localhost:19531/entries

Access via web browser:

 $ firefox http://localhost:19531/
2012-09-28 00:55:24 +02:00
Lennart Poettering
075d4ecb40 build-sys: prepare release 192 2012-09-25 22:23:57 +02:00
Lennart Poettering
8e41de0d2c Revert "comment out uncommitted test source code"
This reverts commit b8bc868009.

Added the test file now.
2012-09-24 10:19:23 +02:00
Kay Sievers
b8bc868009 comment out uncommitted test source code 2012-09-23 14:31:53 +02:00
Lennart Poettering
b6a867398d build-sys: prepare release 191 2012-09-21 23:37:06 +02:00
Lennart Poettering
f801968466 journal: completely rework the mmap cache as I too dumb to actually understand it
Instead of doing hand optimized fd bisect arrays just use plain old
hashmaps. Now I can understand my own code again. Yay!

As a side effect this should fix some bad memory accesses caused by
accesses after mmap(), introduced in 189.
2012-09-21 20:52:23 +02:00
Lennart Poettering
aaeef05886 multi-seat-x: drop a lot of unnecessary code 2012-09-21 17:03:40 +02:00
Lennart Poettering
ec29187225 Revert "multi-seat: drop multi-seat-x wrapper, as upstream X can handle multi-seat graphics on its own now"
This reverts commit 636d30a089.

Turns out we will need the multi-seat wrapper a bit longer, however
without the fb-specific bits in it.
2012-09-21 15:51:04 +02:00
Lennart Poettering
636d30a089 multi-seat: drop multi-seat-x wrapper, as upstream X can handle multi-seat graphics on its own now 2012-09-21 12:46:22 +02:00
Lennart Poettering
0c11f949db build-sys: prepare v190 2012-09-20 18:54:20 +02:00
Lennart Poettering
41f9172f42 unit: split unit_printf() and friends into its own .c file 2012-09-18 11:27:56 +02:00
Lennart Poettering
c309067483 selinux: use existing library calls for audit data 2012-09-18 01:55:49 +02:00
Daniel J Walsh
e2417e4143 selinux: add bus service access control
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

This patch adds the ability to look at the calling process that is trying to
do dbus calls into systemd, then it checks with the SELinux policy to see if
the calling process is allowed to do the activity.

The basic idea is we want to allow NetworkManager_t to be able to start and
stop ntpd.service, but not necessarly mysqld.service.

Similarly we want to allow a root admin webadm_t that can only manage the
apache environment.  systemctl enable httpd.service, systemctl disable
iptables.service bad.

To make this code cleaner, we really need to refactor the dbus-manager.c code.
 This has just become a huge if-then-else blob, which makes doing the correct
check difficult.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://www.enigmail.net/

iEYEARECAAYFAlBJBi8ACgkQrlYvE4MpobOzTwCdEUikbvRWUCwOb83KlVF0Nuy5
lRAAnjZZNuc19Z+aNxm3k3nwD4p/JYco
=yops
-----END PGP SIGNATURE-----
2012-09-18 01:21:17 +02:00
Kay Sievers
0bb91b5010 udev: add btrfs support
All "btrfs" file systems will be registered with the kernel when they
show up.

Incomplete multi-device volumes will set SYSTEMD_READY=0, to prevent
access until the volume is complete and fully registered.
2012-09-17 13:54:03 +02:00
Zbigniew Jędrzejewski-Szmek
f6c2e28b07 directive-index: journal directives 2012-09-17 12:42:22 +02:00
Zbigniew Jędrzejewski-Szmek
ffafe91b5a directive-index: system manager directives 2012-09-17 12:42:22 +02:00
Zbigniew Jędrzejewski-Szmek
e1abd3efab directive-index: add UDEV fields 2012-09-17 12:42:22 +02:00
Zbigniew Jędrzejewski-Szmek
d9cfd69403 man: generate an index of directives
Systemd has a large (and growing) number of manpages. Sometimes it's
not immediately obvious, where to look for a directive. Especially,
when something is described in more than one place. Making sense of
all the settings should be easier with an index.
2012-09-17 12:42:22 +02:00
Shawn Landden
608da9e9b5 man: remove timezone(5) and add localtime(5) 2012-09-14 19:27:59 +02:00
Lennart Poettering
a1d41e17a5 rpm: expose preset dir as rpm macro and in systemd.pc 2012-09-13 22:17:46 +02:00
Lennart Poettering
ff89a42a86 python: make gcc shut up 2012-09-13 19:34:09 +02:00
Lennart Poettering
0aee68ad02 python: reindent to follow coding style 2012-09-13 04:16:10 +02:00
Lennart Poettering
8d7e170a52 python: integrate David Strauss' python-systemd package 2012-09-13 04:01:18 +02:00
Dave Reisner
b51fc639f0 build-sys: perform autodetection of quota-tools binaries
Use AC_PATH_PROG to try and locate the quotaon and quotacheck binaries,
falling back on hardcoded defaults when they can't be found.
2012-09-11 01:43:48 +02:00
Lennart Poettering
b5b46d5995 when determining unit file list, include invalid unit names in an "invalid" state 2012-09-11 01:14:25 +02:00
Lennart Poettering
54aa25e63c build-sys: add libsystemd-id128-internal.la as dep to libsystemd-core.la
condition.c makes use of sd_id128_get_machine() after all.

Spotted by Khem Raj.
2012-09-10 09:28:42 +02:00
Lennart Poettering
a1a03e3075 journal: add call to determine current journal file disk usage 2012-09-07 23:20:28 +02:00
Lennart Poettering
cb7ed9dfca tmpfiles: don't attempt creation of device nodes when we run in a container 2012-09-05 23:42:05 -07:00
Lennart Poettering
ddffe89246 journal: don't pull in flush service from journald service
In the initrd we don't need the flush service hence don't attempt to
pull it in.
2012-09-03 18:59:05 -07:00
Lennart Poettering
877d54e9b0 journal: generate structured journal messages for a number of events 2012-09-03 18:59:04 -07:00
Zbigniew Jędrzejewski-Szmek
fe1fed02c7 build-sys: xsltproc is required for man pages and gtk-doc 2012-08-25 02:01:44 +02:00
Lennart Poettering
38a60d7112 build-sys: prepare release 189 2012-08-23 02:46:22 +02:00
Lennart Poettering
d2bd7630d7 journal: the ratelimiter is part of journald 2012-08-22 03:43:45 +02:00
Lennart Poettering
0153028ae3 journald: split off native protocol support into its own .c file 2012-08-22 03:42:23 +02:00
Lennart Poettering
3b7124a8db journald: split console transport stuff into its own file 2012-08-22 03:36:29 +02:00
Lennart Poettering
a45b9fca6b journald: move stream protocol into its own .c file 2012-08-22 03:32:41 +02:00
Lennart Poettering
35e2e347d3 journald: splitt of syslog protocol support into its own file 2012-08-22 03:21:03 +02:00
Lennart Poettering
ef63833d53 journald: split /dev/kmsg related stuff into its own .c file 2012-08-22 03:09:44 +02:00
Lennart Poettering
bdfb9e7f7c journald: augment journal entries from the kernel with data from udev 2012-08-22 02:49:17 +02:00
Lennart Poettering
2cfa886eb1 build-sys: fix ntp-units.d path creation
Spotted by Dave Reisner
2012-08-21 16:40:19 +02:00
Lennart Poettering
f6a971bc0b journalctl: output FSS key as QR code on generating 2012-08-20 22:02:19 +02:00
Lennart Poettering
feb12d3ed2 journal: make libgcrypt dependency optional 2012-08-20 16:51:46 +02:00
Kay Sievers
45b51b6b71 keymap: fix map name reference 2012-08-16 21:00:06 +02:00
Lennart Poettering
f5028bfaf0 journal: journal-send.h doesn't actually exist 2012-08-16 17:19:47 +02:00
Lennart Poettering
0284adc6a6 journal: split up journal-file.c 2012-08-16 17:10:57 +02:00
Lennart Poettering
beec008561 journal: implement basic journal file verification logic 2012-08-16 17:10:57 +02:00
Lennart Poettering
16e9f408fa journal: implement generic sharable mmap caching logic
instead of having one simple per-file cache implement an more
comprehensive one that works for multiple files and can actually
maintain multiple maps per file and per object type.
2012-08-16 17:10:56 +02:00
Lennart Poettering
7560fffcd2 journald: initial version of FSPRG hookup
This adds forward-secure authentication of journal files. This patch
includes key generation as well as tagging of journal files,
Verification of journal files will be added in a later patch.
2012-08-13 20:31:10 +02:00
Kay Sievers
dbf61afb29 udev: export udev_device_new_from_device_id() 2012-08-10 19:56:57 +02:00
Huang Hang
af18d7ca4b build-sys: use more generic regular expression to generate syscall-list.txt correctly
Currently MIPS and ARM define syscall numbers for multiple ABI in one
<asm/unistd.h>. The #define statments for each syscall are formated as:

 #define __NR_scname (BASE_OFFSET + sc_number)

Thus we need a more generic regular expression to match these in awk.
2012-08-09 12:21:04 +02:00
Lennart Poettering
c269cec334 build-sys: prepare release 188 2012-08-08 21:49:01 +02:00
Peter Alfredsen
276c54e799 build-sys: add CFLAGS to CPP calls
It changes the defines WORDSIZE and __I386, CFLAGS=-m32.
2012-08-08 21:33:42 +02:00
Kay Sievers
81311bbd12 build-sys: link internal selinux lib to systemd-remount-fs 2012-08-08 12:29:54 +02:00
Lennart Poettering
3984d657ff build-sys: typo fix 2012-08-08 12:27:10 +02:00
Lennart Poettering
5a45a93627 build-sys: enable a couple of security features
Most distributions enable these downstream anyway, but it probably makes
sense to enable them unconditionally upstream too.
2012-08-08 12:03:34 +02:00
Lennart Poettering
b2c9cbafb8 units: remove prefdm
It's time to get rid of prefdm. Distributions which still want to use
this should maintain this downstream, but it's probably better to just
provide proper units for the various display managers, like Fedora is
doing this, for example:

https://fedoraproject.org/wiki/Features/DisplayManagerRework
2012-08-07 17:08:31 +02:00
Simon Peeters
f9a3b83bf4 build-sys: do not link systemctl against journal-internal and id128-internal
systemctl does not need the internal journal and id128 libraries to
function, so don't link against them.
2012-08-03 18:20:09 +02:00
Lennart Poettering
18c7ed186b journal: add sd_journal_perror() to API 2012-08-01 19:53:23 +02:00
Zbigniew Jędrzejewski-Szmek
cd8654b13e build-sys: fix path to src/gudev/gudevenumtypes.h
This file is generated, so it should be referred to as
$(top_builddir)/src/gudev/gudevenumtypes.h. It could only appear in
$(top_srcdir) as a result of previous build in $(top_srcdir). Better
to just let automake add the prefix for us, so there's no need to
spell it out.

Remove the prefix from other source files too, $(top_srcdir) is the
default anyway.
2012-07-31 00:28:46 +02:00
Zbigniew Jędrzejewski-Szmek
bd923ff29e build-sys: always create the output directory first
$(MKDIR_P) is added where missing, and rules are standardized on one
form of $(MKDIR_P), to make it easier to spot when it is missing.
Single line $(MKDIR)&&command form is broken into two line form.

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

For compilation in a separate build directory to work, when a file is
generated, the rule must include an explicit mkdir first, unless the
file is created at the top level. Even when building in a separate
build-dir, automake would normally create all directories as a side
result of creating the dependencies files. Therefore the bug was only
visible with -C (turning off dependency generation).
2012-07-31 00:27:56 +02:00
Lennart Poettering
bad1837c18 Revert "man: ship systemd-udevd as the real manpage"
We want to keep things uniform, and hence treat udevd's man page like
any other in the repo. What matters is how users primarily interface
with a service, and that is not the binary path in /usr/lib/systemd but
the service name.

This reverts commit 6c1f3ba54a.
2012-07-29 11:58:41 +02:00
Dave Reisner
6c1f3ba54a man: ship systemd-udevd as the real manpage
Instead of making systemd-udevd a so-link to systemd-udevd.service,
ship the real page as systemd-udevd to integrate better with distros
where udevd might be run standalone.
2012-07-28 22:35:41 +02:00
Bryan Kadzban
299031ca8b build-sys: always populate EXTRA_DIST
"make dist" can build a different tarball depending on the flags passed
to ./configure and the (optional) dependencies found on the system.
Move all append-to-EXTRA_DIST operations out of automake conditionals to
fix this.

Introduce a polkitpolicy_files so that the policy files built still
correctly depend on the automake conditionals, but the .in files that
get distributed do not.
2012-07-28 22:35:26 +02:00
Peeters Simon
b5dd874dda build-sys: use correct cpp
this solves issues where $(CPP) has differend include paths than 'cpp'
2012-07-26 16:04:52 +02:00
Michal Schmidt
c37046cd3c build-sys: create ntp-units.d dropin directories on install 2012-07-26 07:47:12 +02:00
Kay Sievers
9bd4457cfa build-sys: man - add missing dependency 2012-07-23 01:58:24 +02:00
Zbigniew Jędrzejewski-Szmek
bf7410e4a7 build-sys: distribute a few more man pages 2012-07-22 23:34:31 +02:00
Zbigniew Jędrzejewski-Szmek
a804b788a8 build-sys: fix (again) index generation in subdir
make-man-index.py doesn't care about .html files, only .xml files, so
the source list was wrong. Also, $(XML_FILES) are specified without
prefix, so compilation in sepearate build-dir was broken:

  GEN    man/index.html
Traceback (most recent call last):
  File "../make-man-index.py", line 24, in <module>
    t = parse(p)
  File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1183, in parse
    tree.parse(source, parser)
  File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 647, in parse
    source = open(source, "rb")
IOError: [Errno 2] No such file or directory: 'man/systemd.xml'
2012-07-21 07:55:36 +02:00
Lennart Poettering
3fd8953688 build-sys: bump revision of libudev too 2012-07-20 00:40:32 +02:00
Lennart Poettering
c4f1b86299 build-sys: prepare 187 2012-07-20 00:38:02 +02:00
Lennart Poettering
4819ff0358 unit: split off KillContext from ExecContext containing only kill definitions 2012-07-20 00:10:31 +02:00
Kay Sievers
1d57af45cf build-sys: fix variable assignment 2012-07-19 23:07:23 +02:00
Lennart Poettering
57fb9fb56d nspawn: introduce new --link-journal= switch to link container journals into host 2012-07-19 02:02:39 +02:00
Zbigniew Jędrzejewski-Szmek
e5e25a6857 build-sys: put all BUILT_SOURCES in CLEANFILES
Since currently all items in BUILT_SOURCES are also in CLEANFILES,
we can reduce clutter by appending BUILT_SOURCES directly.
2012-07-18 01:36:39 +02:00
Zbigniew Jędrzejewski-Szmek
96bd03d5b8 build-sys: use .DELETE_ON_ERROR
All instances of "|| rm $@" are replaced with .DELETE_ON_ERROR, which
has a similar effect. One difference is that the return code is not
masked by rm return code.

.DELETE_ON_ERROR is GNU-Make specific, but -Wno-portability is already
defined, and it's unlikely that anyone would build systemd with a
shell not supporting .DELETE_ON_ERROR. If they did, then
.DELETE_ON_ERROR would be silently ignored, i.e. in the worst case a
garbage file wouldn't be deleted, which is not very serious.
2012-07-18 01:30:01 +02:00
Kay Sievers
ecca17f6ee man: html - cross-ref man page references and add Index link 2012-07-17 23:04:48 +02:00
Harald Hoyer
e4d9640961 Makefile.am: fixed dependencies for man/index.html 2012-07-17 20:45:20 +02:00
Harald Hoyer
b694b00b45 Makefile.am: MKDIR_P man for man/index.html 2012-07-17 16:42:42 +02:00
Kay Sievers
95769b329e build-sys: distcheck - add seccomp*.h to SOURCES 2012-07-17 16:04:58 +02:00
Lennart Poettering
bc76549dd6 build-sys: use C preprocessor for key list, too 2012-07-17 15:55:53 +02:00
Zbigniew Jędrzejewski-Szmek
cc9f61b815 build-sys: automake needs to know about generated files
CC     src/core/libsystemd_core_la-syscall-list.lo
src/core/syscall-list.c:31:29: fatal error: syscall-to-name.h: No such file or directory
2012-07-17 12:22:16 +02:00