chiark / gitweb /
Lennart Poettering [Tue, 3 Apr 2012 20:31:48 +0000 (22:31 +0200)]
man: document special journal fields
Lennart Poettering [Tue, 3 Apr 2012 17:25:29 +0000 (19:25 +0200)]
logind: log with AUTH facility
Lennart Poettering [Tue, 3 Apr 2012 17:24:12 +0000 (19:24 +0200)]
fix a couple of AF_UNIX connect() calls
Lennart Poettering [Tue, 3 Apr 2012 16:15:28 +0000 (18:15 +0200)]
journal: in json and export mode use double underscores to prefix location fields
Many programming languages don't allow variable names beginning in dots,
hence let's use double underscores for the location fields instead. This
gets us the simple rule:
__ is the prefix for location fields (i.e. fields that are used to
identify entries, rather than part of the entries)
_ is the prefix for trusted fields (i.e. those fields journald itself
adds to all entries)
no prefix for unrusted fields (i.e. all fields normal client code sends
us)
Lennart Poettering [Tue, 3 Apr 2012 12:43:48 +0000 (14:43 +0200)]
systemctl: make -f short for both --follow and --force
Lennart Poettering [Tue, 3 Apr 2012 12:25:51 +0000 (14:25 +0200)]
update TODO
David Ward [Tue, 3 Apr 2012 03:45:35 +0000 (23:45 -0400)]
service: schedule JOB_RESTART from SERVICE_AUTO_RESTART state
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=45511
Colin Guthrie [Mon, 2 Apr 2012 10:08:20 +0000 (11:08 +0100)]
analyze: Cosmetic exit when the bootup is not yet complete when plotting.
This is just a nicer message than a python traceback.
Michal Schmidt [Mon, 2 Apr 2012 19:49:00 +0000 (21:49 +0200)]
Revert "socket: if we fail to create an instantiated service for a socket, don't put the socket in failure mode"
This reverts commit
9586cdfab6a2638078702b7fea7e16b3a71899e2.
(but not the TODO hunk).
The bug was already fixed by
1a710b43. And if other errors occur, we
don't want to leave the socket active in order to avoid having socket
tarpits.
Dave Reisner [Mon, 2 Apr 2012 13:08:35 +0000 (09:08 -0400)]
install: check for proper return from dirent_ensure_type
Fixes 'systemctl list-unit-files', which previously returned only:
Failed to issue method call: No such file or directory
Lennart Poettering [Mon, 2 Apr 2012 18:54:15 +0000 (20:54 +0200)]
update TODO
Lennart Poettering [Mon, 2 Apr 2012 17:24:30 +0000 (19:24 +0200)]
journal: implicitly add code location to all messages logged with the native interface
This logic can be turned off by defining SD_JOURNAL_SUPPRESS_LOCATION
before including sd-journal.h.
This also saves/restores errno in all logging functions, in order to be
useful as logging calls without side-effects.
This also adds a couple of __unlikely__ around the early checks in the
logging calls, in order to minimize the runtime impact.
Lennart Poettering [Mon, 2 Apr 2012 17:04:56 +0000 (19:04 +0200)]
journal: decrease default mmap window size to allow a bigger number of journals to be traversed in parallel
Dave Reisner [Sun, 1 Apr 2012 23:04:23 +0000 (19:04 -0400)]
bash-completion: update naming of loginctl
18b754d3 changed the name of systemd-loginctl to loginctl, but didn't
update the bash-completion to match.
Kay Sievers [Fri, 30 Mar 2012 21:18:33 +0000 (23:18 +0200)]
rename /etc/systemd/systemd-{login,journal}d.conf to {login,journal}d.conf
Michal Schmidt [Tue, 27 Mar 2012 23:26:04 +0000 (01:26 +0200)]
job: add debug prints where job type gets changed
Michal Schmidt [Tue, 27 Mar 2012 22:42:27 +0000 (00:42 +0200)]
job: fix loss of ordering with restart jobs
Suppose that foo.service/start is a job waiting on other job bar.service/start
to finish. And then foo.service/restart is enqueued (not using
--ignore-dependencies).
Currently this makes foo.service start immediately, forgetting about the
ordering to bar.service.
The runnability check for JOB_RESTART jobs looks only at dependencies for
stopping. That's actually correct, because restart jobs should be treated the
same as stop jobs at first. The bug is that job_run_and_invalidate() does not
treat them exactly the same as stop jobs. unit_start() gets called without
checking for the runnability of the converted JOB_START job.
The fix is to simplify the switch in job_run_and_invalidate(). Handle
JOB_RESTART identically to JOB_STOP.
Also simplify the handling of JOB_TRY_RESTART - just convert it to JOB_RESTART
if the unit is active and let it fall through to the JOB_RESTART case.
Similarly for JOB_RELOAD_OR_START - have a fall through to JOB_START.
In job_finish_and_invalidate() it's not necessary to check for JOB_TRY_RESTART
with JOB_DONE, because JOB_TRY_RESTART jobs will have been converted to
JOB_RESTART already.
Speeding up the restart of services in "auto-restart" state still works as
before.
Improves: https://bugzilla.redhat.com/show_bug.cgi?id=753586
but it's still not perfect. With this fix the try-restart action will wait for
the restart to complete in the right order, but the optimal behaviour would be
to finish quickly (without disturbing the start job).
Lennart Poettering [Tue, 27 Mar 2012 16:50:34 +0000 (18:50 +0200)]
journal: properly handle if we interleave files with different boot ids
If we try to locate a monotonic time in a file that doesn't have any
entries with the matching boot id, then don't fail on it, simply
fall back to calendar time.
Kay Sievers [Tue, 27 Mar 2012 15:13:05 +0000 (17:13 +0200)]
units: mount /tmp as tmpfs
The default setups should be a stateless as possible. /tmp as tmpfs is
the intended default for general purpose systems.
Small temporary files should not be stored on disk; lager files, or
files which should potentially survive a reboot, belong into /var/tmp.
Also catch up with some good old UNIX history.
More details are here:
https://fedoraproject.org/wiki/Features/tmp-on-tmpfs
Lennart Poettering [Tue, 27 Mar 2012 15:11:00 +0000 (17:11 +0200)]
units: get rid of var-run.mount and var-lock.mount
Since a number of distribitions don't need this compat glue anymore drop
it from systemd upstream. Distributions which still haven't converted
to /run can steal these unit files from the git history if they need to.
Lennart Poettering [Tue, 27 Mar 2012 15:04:22 +0000 (17:04 +0200)]
units: don't mount tmpfs on /media anymore
udisks2 doesn't use /media anymore, instead mounts removable media in a
user-private directory beneath /run. /media is hence mostly obsolete and
hence it makes little sense to continue to mount a tmpfs to it.
Distributions should consider dropping the mount point entirely since
nothing uses it anymore.
Lennart Poettering [Mon, 26 Mar 2012 22:20:48 +0000 (00:20 +0200)]
cat: fix priority type
Needs to be "int", not "char". Spotted by Frederic Crozat.
Lennart Poettering [Mon, 26 Mar 2012 22:14:29 +0000 (00:14 +0200)]
journalctl: add --local switch
Lennart Poettering [Mon, 26 Mar 2012 21:51:56 +0000 (23:51 +0200)]
man: don't claim -f was short for --follow
Lucas De Marchi [Mon, 19 Mar 2012 16:20:43 +0000 (13:20 -0300)]
build-sys: separate ldflags from cflags
Lucas De Marchi [Mon, 19 Mar 2012 16:20:42 +0000 (13:20 -0300)]
build-sys: do not set CFLAGS directly
Set a separate variable for adding warning flags. Build systems are not
supposed to change CFLAGS and LDFLAGS, these are user variables.
Reference: http://www.gnu.org/software/automake/manual/html_node/Flag-Variables-Ordering.html
Lennart Poettering [Mon, 26 Mar 2012 18:58:47 +0000 (20:58 +0200)]
journalctl,loginctl: drop systemd- prefix in binary names
Let's make things a bit easier to type, drop the systemd- prefix for
journalctl and loginctl, but provide the old names for compat.
All systemd binaries are hence now prefixed with "systemd-" with the
exception of the three primary user interface binaries:
systemctl
loginctl
journalctl
For those three we do provide systemd-xyz names as well, via symlinks:
systemd-systemctl → systemctl
systemd-loginctl → loginctl
systemd-journalctl → journalctl
We do this only for the *primary* user tools, in order to avoid
unnecessary namespace problems. That means tools like systemd-notify
stay the way they are.
Lennart Poettering [Mon, 26 Mar 2012 18:56:54 +0000 (20:56 +0200)]
build-sys: fix make dist-check
Elan Ruusamäe [Sat, 24 Mar 2012 13:06:00 +0000 (15:06 +0200)]
man: minor typo in reference to manual page
Lennart Poettering [Thu, 22 Mar 2012 01:06:40 +0000 (02:06 +0100)]
logind: close FIFO before ending sessions cleanly
For clean session endings ask logind explicitly to get rid of the FIFO
before closing it so that the FIFO logic doesn't result in su/sudo to be
terminated immediately.
Lennart Poettering [Thu, 22 Mar 2012 00:43:36 +0000 (01:43 +0100)]
logind: extend comment about X11 socket symlink
Lennart Poettering [Thu, 22 Mar 2012 00:42:34 +0000 (01:42 +0100)]
update TODO
Frederic Crozat [Fri, 16 Mar 2012 10:59:04 +0000 (11:59 +0100)]
add sparse support to detect endianness bug
le16/32/64_t type should be used when storing little-endian value
header to integrate with sparse from Josh Triplett <josh@joshtriplett.org>
Lennart Poettering [Wed, 21 Mar 2012 23:35:42 +0000 (00:35 +0100)]
binfmt: fix apply loop
Noticed by Sergey Ptashnick
Lennart Poettering [Wed, 21 Mar 2012 23:35:19 +0000 (00:35 +0100)]
man: systemd-cat(1) typo fix
Noticed by Sergey Ptashnick
Roberto Sassu [Thu, 15 Mar 2012 18:06:11 +0000 (19:06 +0100)]
main: added support for loading IMA custom policies
This is an S/MIME signed message
The new function ima_setup() loads an IMA custom policy from a file in the
default location '/etc/ima/ima-policy', if present, and writes it to the
path 'ima/policy' in the security filesystem. This function is executed
at early stage in order to avoid that some file operations are not measured
by IMA and it is placed after the initialization of SELinux because IMA
needs the latter (or other security modules) to understand LSM-specific
rules. This feature is enabled by default and can be disabled by providing
the option '--disable-ima' to the configure script.
Signed-off-by: Roberto Sassu <roberto.sassu@polito.it>
Acked-by: Gianluca Ramunno <ramunno@polito.it>
Roberto Sassu [Thu, 15 Mar 2012 18:06:10 +0000 (19:06 +0100)]
systemd: mount the securityfs filesystem at early stage
This is an S/MIME signed message
The mount of the securityfs filesystem is now performed in the main systemd
executable as it is used by IMA to provide the interface for loading custom
policies. The unit file 'units/sys-kernel-security.mount' has been removed
because it is not longer necessary.
Signed-off-by: Roberto Sassu <roberto.sassu@polito.it>
Acked-by: Gianluca Ramunno <ramunno@polito.it>
Lennart Poettering [Wed, 21 Mar 2012 22:47:44 +0000 (23:47 +0100)]
journal: PAGE_SIZE is not known on ppc and other archs
Let's use NAME_MAX, as suggested by Dan Walsh
Lennart Poettering [Wed, 21 Mar 2012 22:40:51 +0000 (23:40 +0100)]
journal: react with immediate rotation to a couple of more errors
Lennart Poettering [Wed, 21 Mar 2012 22:32:02 +0000 (23:32 +0100)]
man: updates to sysctl.d(5)
Lennart Poettering [Tue, 20 Mar 2012 14:31:09 +0000 (15:31 +0100)]
sysctl: accept multiple passed configuration files
Lennart Poettering [Tue, 20 Mar 2012 14:30:42 +0000 (15:30 +0100)]
modules-load: drop /lib from search path if we don't have it split off
Lennart Poettering [Tue, 20 Mar 2012 14:29:49 +0000 (15:29 +0100)]
bmfmt: allow passing more than one config file name
Lennart Poettering [Tue, 20 Mar 2012 14:28:35 +0000 (15:28 +0100)]
man: fix parameter name for sd_uid_xxx()
Michal Schmidt [Tue, 20 Mar 2012 12:06:03 +0000 (13:06 +0100)]
remove GTK pieces
They've moved to systemd-ui.
Michal Schmidt [Fri, 2 Mar 2012 09:39:10 +0000 (10:39 +0100)]
util: never follow symlinks in rm_rf_children()
The function checks if the entry is a directory before recursing, but
there is a window between the check and the open, during which the
directory could be replaced with a symlink.
CVE-2012-1174
https://bugzilla.redhat.com/show_bug.cgi?id=803358
Lennart Poettering [Fri, 16 Mar 2012 00:57:47 +0000 (01:57 +0100)]
build-sys: prepare release 44
Lennart Poettering [Fri, 16 Mar 2012 00:44:16 +0000 (01:44 +0100)]
build-sys: don't build distcheck version with split /usr
Lennart Poettering [Fri, 16 Mar 2012 00:25:32 +0000 (01:25 +0100)]
man: make sure we ship HTML versions of the man pages in the tarball
Lennart Poettering [Fri, 16 Mar 2012 00:00:23 +0000 (01:00 +0100)]
man: document journal features of systemctl(1)
Lennart Poettering [Thu, 15 Mar 2012 23:50:52 +0000 (00:50 +0100)]
man: document systemd-journalctl(1)
Lennart Poettering [Thu, 15 Mar 2012 22:25:14 +0000 (23:25 +0100)]
man: document systemd-journald.conf(5)
Lennart Poettering [Thu, 15 Mar 2012 21:36:33 +0000 (22:36 +0100)]
man: document systemd-machine-id-setup(1)
Lennart Poettering [Thu, 15 Mar 2012 21:19:36 +0000 (22:19 +0100)]
man: document systemd-cat(1)
Frederic Crozat [Thu, 15 Mar 2012 16:50:03 +0000 (17:50 +0100)]
journal: only use uint8_t for state
Lennart Poettering [Thu, 15 Mar 2012 19:49:25 +0000 (20:49 +0100)]
a couple of fixes to make llvm-analyze quiet
Tero Roponen [Thu, 15 Mar 2012 06:26:55 +0000 (08:26 +0200)]
journalctl: add a missing 'break'
There is a 'break' missing in the -q handling
so, for example, 'systemd-journalctl --new-id128 -q'
does nothing.
This patch fixes the problem.
Kay Sievers [Thu, 15 Mar 2012 11:43:53 +0000 (12:43 +0100)]
update TODO
Lennart Poettering [Thu, 15 Mar 2012 02:00:54 +0000 (03:00 +0100)]
journald: don't try to roatet corrupted files when we open read-only anyway
Lennart Poettering [Thu, 15 Mar 2012 02:00:31 +0000 (03:00 +0100)]
journald: adjust permissions for rotated files
Lennart Poettering [Thu, 15 Mar 2012 02:00:11 +0000 (03:00 +0100)]
journald: take corrupted files into account when calculating disk space
Lennart Poettering [Thu, 15 Mar 2012 01:59:43 +0000 (02:59 +0100)]
journald: be a bit more verbose
Lennart Poettering [Thu, 15 Mar 2012 01:59:10 +0000 (02:59 +0100)]
journald: fix calculation of disk space
Lennart Poettering [Thu, 15 Mar 2012 01:58:27 +0000 (02:58 +0100)]
journald: copy metrics/compression state from template when rotating
Lennart Poettering [Thu, 15 Mar 2012 01:57:39 +0000 (02:57 +0100)]
journald: increase max file size to 128MB
Lennart Poettering [Thu, 15 Mar 2012 00:35:03 +0000 (01:35 +0100)]
journal: vacuum corrupted files, too
Lennart Poettering [Thu, 15 Mar 2012 00:13:01 +0000 (01:13 +0100)]
journal: if we encounter a corrupted file, rotate and go on
Lennart Poettering [Wed, 14 Mar 2012 23:45:02 +0000 (00:45 +0100)]
nspawn: mount /etc/timezone into nspawn environment too
Lennart Poettering [Wed, 14 Mar 2012 23:44:26 +0000 (00:44 +0100)]
journald: fix typo
Lennart Poettering [Wed, 14 Mar 2012 23:44:10 +0000 (00:44 +0100)]
journalctl: suppress messages about adm group if ACL support is not enabled
Lennart Poettering [Wed, 14 Mar 2012 23:43:47 +0000 (00:43 +0100)]
virt: the pidns controller does not exist anymore
Lennart Poettering [Wed, 14 Mar 2012 19:07:50 +0000 (20:07 +0100)]
journald: set SO_PASSEC only if selinux is enabled
Lennart Poettering [Wed, 14 Mar 2012 18:54:22 +0000 (19:54 +0100)]
journalctl: warn if the user is not in the adm group
Lennart Poettering [Wed, 14 Mar 2012 18:10:29 +0000 (19:10 +0100)]
update TODO
Lennart Poettering [Wed, 14 Mar 2012 17:31:38 +0000 (18:31 +0100)]
journal: fix memory leak
Marti Raudsepp [Fri, 9 Mar 2012 14:45:36 +0000 (16:45 +0200)]
journal: Don't hold pointers to journal while remapping
Hi!
I was trying out the journal and the journalctl utility sometimes
crashed on me. After some debugging, I tracked it down to the fact
that next_with_matches() holds the "c" object pointer through the
journal_file_next_entry_for_data() call -- which apparently may re-map
the journal file, invalidating the pointer.
The attached patch fixes this crash for me, but being unfamiliar with
the code, I don't know if I'm doing the right thing.
This patch is also available from my github repository:
git://github.com/intgr/systemd.git
https://github.com/intgr/systemd
Regards,
Marti
For the record, here's the original stack trace at the time of remapping:
ret=0x7fff1d5cdec0) at src/journal/journal-file.c:330
ret=0x7fff1d5cdf28) at src/journal/journal-file.c:414
ret=0x7fff1d5ce0a0, offset=0x7fff1d5ce098) at
src/journal/journal-file.c:1101
i=5705, ret=0x7fff1d5ce0a0, offset=0x7fff1d5ce098) at
src/journal/journal-file.c:1147
p=
6413608, data_offset=66600, direction=DIRECTION_DOWN,
ret=0x7fff1d5ce0a0, offset=0x7fff1d5ce098) at
src/journal/journal-file.c:1626
direction=DIRECTION_DOWN, ret=0x7fff1d5ce120, offset=0x7fff1d5ce128)
at src/journal/sd-journal.c:533
direction=DIRECTION_DOWN, ret=0x7fff1d5ce170, offset=0x7fff1d5ce178)
at src/journal/sd-journal.c:595
src/journal/sd-journal.c:651
From
9266fc6a58065a7c5dab67430fd78925e519dce9 Mon Sep 17 00:00:00 2001
From: Marti Raudsepp <marti@juffo.org>
Date: Fri, 9 Mar 2012 16:23:00 +0200
Subject: [PATCH] journal: Don't hold pointers to journal while remapping
This would cause a segfault otherwise.
Lennart Poettering [Wed, 14 Mar 2012 16:23:43 +0000 (17:23 +0100)]
update TODO
Lennart Poettering [Wed, 14 Mar 2012 13:54:41 +0000 (14:54 +0100)]
log: introduce log_metav
Lennart Poettering [Wed, 14 Mar 2012 13:37:49 +0000 (14:37 +0100)]
update TODO
Lennart Poettering [Wed, 14 Mar 2012 13:31:57 +0000 (14:31 +0100)]
pkg-config: bring unit search path order in sync with the code
Lennart Poettering [Wed, 14 Mar 2012 13:31:50 +0000 (14:31 +0100)]
path-lookup: rearrange things so that the system path order follows the user path order
Lennart Poettering [Wed, 14 Mar 2012 13:25:05 +0000 (14:25 +0100)]
conf: when looking for configurations look in /etc first, in /run second
After long consideration we came to the conclusion that user
configuration in /etc should always override the (generally computer
generated) configuration in /run. User configuration should always be
what matters over anything else. Hence rearrange the search orders
accordingly.
In general this should change very little as overriding like this is
seldomn done so far, and the order between /etc and /usr stays the same.
Lennart Poettering [Wed, 14 Mar 2012 13:13:12 +0000 (14:13 +0100)]
man: document where we read kernel cmdline options from
Lennart Poettering [Wed, 14 Mar 2012 13:06:42 +0000 (14:06 +0100)]
machine-id: initialize from $container_uuid if not set otherwise
This is a result of the discussions on
https://bugs.freedesktop.org/show_bug.cgi?id=46894
Lennart Poettering [Wed, 14 Mar 2012 02:39:15 +0000 (03:39 +0100)]
journald: allocate PAGE_SIZE bytes for selinux label length
As suggested in https://bugzilla.redhat.com/show_bug.cgi?id=798760
Lennart Poettering [Wed, 14 Mar 2012 02:07:26 +0000 (03:07 +0100)]
socket: make sure that the name for per-connection services are unique
If a client connects to us repeatedly always using the same source port
and we instantiate a service for the incoming connection this might
clash with an old instance. Hence, include the connection number, the
same way we do it for AF_UNIX to make connections unique.
https://bugs.freedesktop.org/show_bug.cgi?id=45297
Lennart Poettering [Wed, 14 Mar 2012 02:01:27 +0000 (03:01 +0100)]
socket: if we fail to create an instantiated service for a socket, don't put the socket in failure mode
An incoming connection that is immediately terminated might result in
getpeername() or a similar call failing. Hence it is quite possible that
while we are setting up an instantiated service for a socket we might
get an error and we shouldn't take this as hint to take the listening
socket down.
https://bugs.freedesktop.org/show_bug.cgi?id=45297
https://bugzilla.novell.com/show_bug.cgi?id=741590
Lennart Poettering [Tue, 13 Mar 2012 12:44:47 +0000 (13:44 +0100)]
update TODO
Lennart Poettering [Tue, 13 Mar 2012 02:34:42 +0000 (03:34 +0100)]
mount: fix assertion
https://bugzilla.redhat.com/show_bug.cgi?id=768523
Lennart Poettering [Tue, 13 Mar 2012 01:41:29 +0000 (02:41 +0100)]
conf-parser: warn if an assignment is place outside of a section
https://bugzilla.redhat.com/show_bug.cgi?id=783134
Lennart Poettering [Tue, 13 Mar 2012 01:29:27 +0000 (02:29 +0100)]
util: add brute-force fallback for close_all_fds()
If /proc is not available (i.e. in chroot envs) let's fall back to brute
forcing our way through the fd table.
https://bugzilla.redhat.com/show_bug.cgi?id=784921
Lennart Poettering [Tue, 13 Mar 2012 01:21:59 +0000 (02:21 +0100)]
journald: use SCM_SECURITY to race-freely determine peer SELinux label
https://bugzilla.redhat.com/show_bug.cgi?id=798760
Lennart Poettering [Mon, 12 Mar 2012 23:00:27 +0000 (00:00 +0100)]
socket: add option for SO_PASSEC
https://bugzilla.redhat.com/show_bug.cgi?id=798760
(Note that this work is not complete yet, as the kernel seems to send us
useless data with SCM_SECURITY enabled)
Shawn Landden [Mon, 12 Mar 2012 19:48:52 +0000 (12:48 -0700)]
login: tag the Mimo 720 ID_AUTOSEAT
This device is a combination USB hub, displaylink graphics, and e2i touchscreen
Bus 001 Device 005: ID 058f:6254 Alcor Micro Corp. USB Hub
Bus 001 Device 006: ID 17e9:401a Newnham Research
Bus 001 Device 007: ID 1ac7:0001
|__ Port 1: Dev 5, If 0, Class=hub, Driver=hub/4p, 480M
|__ Port 2: Dev 6, If 0, Class=vend., Driver=udlfb, 480M
|__ Port 2: Dev 6, If 1, Class=HID, Driver=usbhid, 480M
|__ Port 3: Dev 7, If 0, Class=vend., Driver=usbtouchscreen, 12M
Lennart Poettering [Mon, 12 Mar 2012 21:22:16 +0000 (22:22 +0100)]
conf: enforce UTF8 validty everywhere
we need to make sure that configuration data we expose via the bus ends
up in using getting an assert(). Even though configuration data is only
parsed from trusted sources we should be more careful with what we read.
Lennart Poettering [Mon, 12 Mar 2012 20:51:39 +0000 (21:51 +0100)]
man: reword tmpfiles selinux bits
Lennart Poettering [Mon, 12 Mar 2012 13:01:27 +0000 (14:01 +0100)]
update TODO
Lennart Poettering [Tue, 6 Mar 2012 17:17:07 +0000 (18:17 +0100)]
man: clarify that applications must ignore unknown fields
Lennart Poettering [Tue, 6 Mar 2012 17:14:06 +0000 (18:14 +0100)]
man: document how os-release(5) may be extended by OS vendors
Lennart Poettering [Tue, 6 Mar 2012 16:58:27 +0000 (17:58 +0100)]
man: fix typo