Lennart Poettering [Thu, 19 Feb 2015 11:03:12 +0000 (12:03 +0100)]
nspawn: fix build on non-selinux systems
Lennart Poettering [Thu, 19 Feb 2015 10:30:18 +0000 (11:30 +0100)]
nspawn: add basic user namespacing support
(This is incomplete, /proc and /sys are still owned by root from outside
the container, not inside)
Martin Pitt [Thu, 19 Feb 2015 10:06:24 +0000 (11:06 +0100)]
sysv-generator: fix wrong "Overwriting existing symlink" warnings
Fix result testing of is_symlink() to ignore negative results, which happen if
the file name does not exist at all. In this case we do not want a warning and
unlink the non-existing link.
https://bugs.debian.org/778700
Martin Pitt [Thu, 19 Feb 2015 08:09:57 +0000 (09:09 +0100)]
systemd-sysv-generator test: Adjust to dropped runlevelN.target mapping
Commit
d5d8429a dropped the explicit runlevelN.target mapping. Adjust the tests
accordingly to explicitly state the expected targets instead of runlevels.
Lubomir Rintel [Wed, 18 Feb 2015 20:02:01 +0000 (21:02 +0100)]
hwdb: fix ThinkPad X* Tablet special keys
ThinkPad tablet firmware has DMI product name and version reversed:
Handle 0x0001, DMI type 1, 27 bytes
System Information
Manufacturer: LENOVO
Product Name: 7762AS1
Version: ThinkPad X61 Tablet
Serial Number: LKZCDH2
UUID:
6ADBC681-4FC9-11CB-844F-
B47CB9210BE2
Wake-up Type: Power Switch
SKU Number: Not Specified
Family: ThinkPad X61 Tablet
Sergey Ptashnick [Thu, 19 Feb 2015 00:32:42 +0000 (03:32 +0300)]
po: update Russian translation
Add strings for fsckd.
Lennart Poettering [Wed, 18 Feb 2015 22:35:51 +0000 (23:35 +0100)]
update TODO
Lennart Poettering [Wed, 18 Feb 2015 22:32:55 +0000 (23:32 +0100)]
nspawn: when connected to pipes for stdin/stdout, pass them as-is to PID 1
Previously we always invoked the container PID 1 on /dev/console of the
container. With this change we do so only if nspawn was invoked
interactively (i.e. its stdin/stdout was connected to a TTY). In all other
cases we directly pass through the fds unmodified.
This has the benefit that nspawn can be added into shell pipelines.
https://bugs.freedesktop.org/show_bug.cgi?id=87732
Thomas Hindoe Paaboel Andersen [Wed, 18 Feb 2015 21:18:12 +0000 (22:18 +0100)]
systemd-boot: fix alignment of version in table
Lennart Poettering [Wed, 18 Feb 2015 19:17:49 +0000 (20:17 +0100)]
everywhere: remove configurability of sysv runlevel to target mapping
With this change runlevel 2, 3, 4 are mapped to multi-user.target for
good, and 5 to graphical.target. This was already the previous mapping
but is now no longer reconfigurable, but hard-coded into the core.
This should generally simplify things, but also fix one bug: the
sysv-generator previously generated symlinks to runlevel[2-5].target
units, which possibly weren't picked up if these aliases were otherwise
only referenced by the real names "multi-user.target" and
"graphical.target".
We keep compat aliases "runlevel[2345].target" arround for cases where
this target name is explicitly requested.
Lennart Poettering [Wed, 18 Feb 2015 18:39:54 +0000 (19:39 +0100)]
update TODO
Lennart Poettering [Wed, 18 Feb 2015 18:39:40 +0000 (19:39 +0100)]
run: if we fail to set a property assignment then really fail
Lennart Poettering [Wed, 18 Feb 2015 18:38:55 +0000 (19:38 +0100)]
nspawn: add support for --property= to set scope properties
This is similar to systemd-run's --property= setting.
Lennart Poettering [Wed, 18 Feb 2015 18:20:47 +0000 (19:20 +0100)]
shared: introduce cmsg_close_all() call
The call iterates through cmsg list and closes all fds passed via
SCM_RIGHTS.
This patch also ensures the call is used wherever appropriate, where we
might get spurious fds sent and we should better close them, then leave
them lying around.
Lennart Poettering [Wed, 18 Feb 2015 17:54:38 +0000 (18:54 +0100)]
systemctl: allow interactive authorization for all bus calls
Make use of the new sd_bus_set_allow_interactive_authorization() call to
globally enable interactive authorization. Also, turn on PK agent for
more calls.
This allows us to make use of the sd_bus_call_method() convencience
helper at more places.
Lennart Poettering [Wed, 18 Feb 2015 17:27:32 +0000 (18:27 +0100)]
systemctl: let's make use of FOREACH_STRING() where we can
Lennart Poettering [Wed, 18 Feb 2015 16:40:57 +0000 (17:40 +0100)]
core: rework policykit hookup
- Always issue selinux access check as early as possible, and PK check
as late as possible.
- Introduce a new policykit action for altering environment
- Open most remaining bus calls to unprivileged clients via PK
Martin Pitt [Wed, 18 Feb 2015 16:09:15 +0000 (17:09 +0100)]
po: Update German translation
Didier Roche [Mon, 26 Jan 2015 16:46:36 +0000 (17:46 +0100)]
Add mock fsck process
Didier Roche [Mon, 26 Jan 2015 16:34:59 +0000 (17:34 +0100)]
Add man page and references to it.
Add man page explaining the plymouth theme protocol, usage of the daemon
as well as the socket activation part.
Adapt existing fsck man page.
Didier Roche [Mon, 26 Jan 2015 16:30:00 +0000 (17:30 +0100)]
Add fsckd service and socket, retarget systemd-fsck
systemd-fsckd can be socket-activated by systemd-fsck process. Reflect that
in the different unit files.
Didier Roche [Mon, 26 Jan 2015 16:23:08 +0000 (17:23 +0100)]
Refresh po files
Also, add new plymouth fsckd translated strings in french.
Refreshed with "make update-po".
Didier Roche [Mon, 26 Jan 2015 16:12:54 +0000 (17:12 +0100)]
Translate fsckd messages for plymouth
For plymouth themes not supporting i18n (like .script), send translated
messages to display to user, which is equivalent to the sent machine
readable data.
Didier Roche [Thu, 29 Jan 2015 15:12:58 +0000 (16:12 +0100)]
Add gettext support
Didier Roche [Thu, 5 Feb 2015 16:08:18 +0000 (17:08 +0100)]
Connect to plymouth and support cancellation of in progress fsck
Try to connect and send to plymouth (if running) some checked report progress,
using direct plymouth protocole.
Update message is the following:
fsckd:<num_devices>:<progress>:<string>
* num_devices corresponds to the current number of devices being checked (int)
* progress corresponds to the current minimum percentage of all devices being
checked (float, from 0 to 100)
* string is a translated message ready to be displayed by the plymouth theme
displaying the information above. It can be overriden by plymouth themes
supporting i18n.
Grab in fsckd plymouth watch key Control+C, and propagate this cancel request
to systemd-fsck which will terminate fsck.
Send a message to signal to user what key we are grabbing for fsck cancel.
Message is: fsckd-cancel-msg:<string>
Where string is a translated string ready to be displayed by the plymouth theme
indicating that Control+C can be used to cancel current checks. It can be
overriden (matching only fsckd-cancel-msg prefix) for themes supporting i18n.
Didier Roche [Mon, 26 Jan 2015 15:01:11 +0000 (16:01 +0100)]
systemd-fsck: always connect to systemd-fsckd
Remove the plymouth running or show-status checks from systemd-fsck. Instead,
always connect to systemd-fsckd socket, and let this one decide if we display
progress or not.
Didier Roche [Wed, 4 Feb 2015 15:42:47 +0000 (16:42 +0100)]
fsckd daemon for inter-fsckd communication
Add systemd-fsckd multiplexer which accepts multiple systemd-fsck
instances to connect to it and sends progress report. systemd-fsckd then
computes and writes to /dev/console the number of devices currently being
checked and the minimum fsck progress. This will be used for interactive
progress report and cancelling in plymouth.
systemd-fsckd stops on idle when no systemd-fsck is connected.
Make the necessary changes to systemd-fsck to connect to the systemd-fsckd
socket.
Tom Gundersen [Wed, 18 Feb 2015 13:33:50 +0000 (14:33 +0100)]
test: utf8 - fix utf16 tests on BE machines
Tom Gundersen [Tue, 17 Feb 2015 19:12:50 +0000 (20:12 +0100)]
gummiboot/sd-boot/systemd-boot: rename galore
What used to be gummiboot, was renamed sd-boot when it was merged into
systemd. Let's try to be a bit more consistent with the rest of systemd
and rename it again as follows:
The EFI bootloader is now called 'systemd-bootx64.efi', and its sources are in
'src/boot/efi/'. The drop-in directory where bootctl will find EFI loaders
is now /usr/lib/systemd/boot/efi/.
Harald Hoyer [Wed, 18 Feb 2015 13:45:12 +0000 (14:45 +0100)]
Makefile.am:efi_cflags compile with gcc v5
Set -std=gnu90 to let efibind.h define the standard types.
[tomegun: retyped the patch as the originl would not apply]
Lennart Poettering [Wed, 18 Feb 2015 12:08:23 +0000 (13:08 +0100)]
update TODO
Lennart Poettering [Wed, 18 Feb 2015 11:55:25 +0000 (12:55 +0100)]
logind: open up most bus calls for unpriviliged processes, using PolicyKit
Also, allow clients to alter their own objects without any further
priviliges. i.e. this allows clients to kill and lock their own sessions
without involving PK.
Lennart Poettering [Wed, 18 Feb 2015 10:42:03 +0000 (11:42 +0100)]
machinectl: issue all bus commands while allowing interactive auth
Lennart Poettering [Wed, 18 Feb 2015 10:41:28 +0000 (11:41 +0100)]
machined: open up most of machined's commands to unprivileged clients via PolicyKit
Lennart Poettering [Tue, 17 Feb 2015 19:30:33 +0000 (20:30 +0100)]
sd-bus: allow setting a per-connection default value for the "allow-interactive-authentication" message flag
Most of our client tools want to set this bit for all their method
calls, even though it defaults to off in sd-bus, and rightfully so.
Hence, to simplify thing, introduce a per sd_bus-object flag that sets
the default value for all messages created on the connection.
Thomas Hindoe Paaboel Andersen [Tue, 17 Feb 2015 19:06:13 +0000 (20:06 +0100)]
import: remove unused variable
Lennart Poettering [Tue, 17 Feb 2015 18:22:03 +0000 (19:22 +0100)]
machined: make "machinectl copy-to" and "machinectl copy-from" server side operations
This way, any bus client can make use of these calls.
Lennart Poettering [Tue, 17 Feb 2015 17:54:33 +0000 (18:54 +0100)]
machined: various simplifications
David Herrmann [Tue, 17 Feb 2015 17:05:32 +0000 (18:05 +0100)]
bus: sync with kdbus
Pull in new kdbus changes, namely:
- EOVERFLOW is replaces by KDBUS_RECV_RETURN_DROPPED_MSGS
- ENOMSG is merged with EAGAIN for consistency
David Herrmann [Tue, 17 Feb 2015 17:03:50 +0000 (18:03 +0100)]
bus: don't rely on static IDs in tests
We should never put any constraints on the IDs returned by the kernel. Use
sd_bus_get_unique_name() to retrieve the ID of a peer.
Kay Sievers [Tue, 17 Feb 2015 17:01:10 +0000 (18:01 +0100)]
build-sys: add missing HAVE_GNUEFI condition
Lennart Poettering [Tue, 17 Feb 2015 16:19:57 +0000 (17:19 +0100)]
machined: move logic for bind mounting into containers from machinectl to machined
This extends the bus interface, adding BindMountMachine() for bind
mounting directories from the host into the container.
Kay Sievers [Sun, 8 Feb 2015 16:18:30 +0000 (17:18 +0100)]
bootctl: add sd-boot support
Kay Sievers [Sun, 8 Feb 2015 11:25:35 +0000 (12:25 +0100)]
sd-boot: add EFI boot manager and stub loader
Martin Pitt [Tue, 17 Feb 2015 11:47:51 +0000 (12:47 +0100)]
tmpfiles: Fix parse_acl error message
parse_acl() returns the error instead of setting errno.
Michal Schmidt [Tue, 17 Feb 2015 09:36:57 +0000 (10:36 +0100)]
journal-remote: fix client_cert memory leak
Found by Valgrind while testing the previous memory leak fix.
Michal Schmidt [Tue, 17 Feb 2015 09:33:01 +0000 (10:33 +0100)]
journal-remote: fix certificate status memory leak
The output of gnutls_certificate_verification_status_print() needs to be
freed.
Noticed this while staring at verify_cert_authorized() to see what could
possibly confuse gcc5 on armv7hl to segfault during compilation.
Lennart Poettering [Mon, 16 Feb 2015 20:54:57 +0000 (21:54 +0100)]
update TODO
Michal Schmidt [Mon, 16 Feb 2015 20:17:48 +0000 (21:17 +0100)]
Revert "build-sys: re-add old symbols for abi compat"
This reverts commit
93a1e66efd4b0f4cda29c467d20d0f7510c0b3a8.
It broke the builds for Walters.
Kay hates it and "just knows" there are no actual users.
Thomas Hindoe Paaboel Andersen [Mon, 16 Feb 2015 20:21:16 +0000 (21:21 +0100)]
NEWS: typo fixes
Zbigniew Jędrzejewski-Szmek [Mon, 16 Feb 2015 19:04:36 +0000 (14:04 -0500)]
Transpose args in strv_fnmatch() to be more oo
Zbigniew Jędrzejewski-Szmek [Mon, 16 Feb 2015 18:56:31 +0000 (13:56 -0500)]
test-network: fix segfault with NULL dev_path/driver/type/name
Lennart Poettering [Mon, 16 Feb 2015 18:36:56 +0000 (19:36 +0100)]
update TODO
Lennart Poettering [Mon, 16 Feb 2015 18:36:51 +0000 (19:36 +0100)]
NEWS: fix typo
Zbigniew Jędrzejewski-Szmek [Fri, 13 Feb 2015 23:38:33 +0000 (18:38 -0500)]
analyze: change behaviour of combined --to/from--pattern
We would require a match against all three: patterns specified
with --to, with --from, and as positional arguments to show an
edge. This does not seem useful. Let instead the positional args
behave like they were specified in both --to and --from, which is
fairly intuitive and should be more useful.
Zbigniew Jędrzejewski-Szmek [Fri, 13 Feb 2015 23:38:22 +0000 (18:38 -0500)]
network-internal: chain matches with AND in net_match_config()
The test would treat the first non-empty set of matches in
match_paths, match_drivers, match_types, match_names as definitive
(essentially chaining them with OR). Make those tests instead match
like other tests and require all to pass if the set of patterns is
nonempty.
Zbigniew Jędrzejewski-Szmek [Fri, 13 Feb 2015 23:37:43 +0000 (18:37 -0500)]
Add helper for fnmatch over strv
Marcel Holtmann [Mon, 16 Feb 2015 18:10:39 +0000 (19:10 +0100)]
hwdb: Update database of Bluetooth company identifiers
Cristian Rodríguez [Mon, 16 Feb 2015 16:24:29 +0000 (13:24 -0300)]
timesync: Use UINT64_C for OFFSET_1900_1970
So it matches what the comment says in both 32 and 64 bit systems.
Lennart Poettering [Mon, 16 Feb 2015 17:41:49 +0000 (18:41 +0100)]
update TODO
Zbigniew Jędrzejewski-Szmek [Mon, 16 Feb 2015 17:13:20 +0000 (12:13 -0500)]
build-sys: re-add old symbols for abi compat
For two releases those exported with version 183 by mistake, and then
they were fixed to have version 215 (
015419c0df libudev: fix symbol
version for udev_queue_flush() and udev_queue_get_fd()). But that
breaks ABI compatibility for binaries compiled with udev from before
that commit. There most likely very few such binaries, if any, but as
a matter of principle we should export the old symbols too, in order
to keep full compatibility.
Lennart Poettering [Mon, 16 Feb 2015 16:28:35 +0000 (17:28 +0100)]
hwdb: update
Cristian Rodríguez [Mon, 16 Feb 2015 04:09:55 +0000 (01:09 -0300)]
sd-bus: add missing format attribute
Lennart Poettering [Mon, 16 Feb 2015 16:17:07 +0000 (17:17 +0100)]
update NEWS
Lennart Poettering [Mon, 16 Feb 2015 16:14:20 +0000 (17:14 +0100)]
hwdb: fix syntax
Lennart Poettering [Mon, 16 Feb 2015 14:59:45 +0000 (15:59 +0100)]
sd-bus: make sure we always serialize the reply cookie as 64bit on dbus2, and 32bit on dbus1
Lennart Poettering [Fri, 13 Feb 2015 16:32:38 +0000 (17:32 +0100)]
Revert "Revert "sd-bus: change serialization of kdbus messages to qualify in their entirety as gvariant objects""
This reverts commit
954871d8ba15911d014f76ed2c7a9492953cf39d.
Christian Kirbach [Sun, 15 Feb 2015 13:30:05 +0000 (14:30 +0100)]
po: Update German translation
https://bugs.freedesktop.org/show_bug.cgi?id=89154
Lukas Märdian [Sat, 14 Feb 2015 19:37:40 +0000 (14:37 -0500)]
hwdb: Microsoft Microsoft 3-Button Mouse
https://bugs.freedesktop.org/show_bug.cgi?id=89149
Zbigniew Jędrzejewski-Szmek [Sat, 14 Feb 2015 19:11:24 +0000 (14:11 -0500)]
core: make RuntimeDirectory honor SELinux labels
https://bugzilla.redhat.com/show_bug.cgi?id=1192726
David Herrmann [Sat, 14 Feb 2015 18:01:21 +0000 (19:01 +0100)]
bus-proxy: be more verbose if messages cannot be forwarded
If we cannot forward messages, include information on the peer and message
just like the xml-policy does. This helps debugging such situations and
figuring out what exactly is going wrong.
WaLyong Cho [Fri, 13 Feb 2015 05:59:39 +0000 (14:59 +0900)]
bootchart: display each CPU utilization/wait
David Herrmann [Sat, 14 Feb 2015 14:31:26 +0000 (15:31 +0100)]
network: fix 'LinkLocal' -> 'LinkLocalAddressing' in network files
'LinkLocal' was renamed to 'LinkLocalAddressing' in:
commit
56fd6bf795926409b087bce406ea851ad89f9fe8
Author: Tom Gundersen <teg@jklm.no>
Date: Sat Feb 14 00:32:26 2015 +0100
networkd: .network - rename LinkLocal to LinkLocalAddressing
..but apparently the network files were not updated. Fix this.
David Herrmann [Sat, 14 Feb 2015 14:13:38 +0000 (15:13 +0100)]
bus-proxy: don't fake data we don't have
UDS sockets transmit EUID+EGID only. Don't try to fake data we don't know!
Otherwise, this might be used to override user-limits by non-root setuid
programs (by faking UID==EUID).
Now that sd-bus is fixed to always use EUID even on UDS, we can safely set
all other UID/GID fields to INVALID.
Bruno Bottazzini [Fri, 13 Feb 2015 20:40:50 +0000 (18:40 -0200)]
util: use a shared lookup function for string tables
Macro DEFINE_STRING_TABLE_LOOKUP expands to a new function for each
of the almost 120 tables throghout the code.
Move the its implementation to a function (guaranteed to never be inlined),
and make the macro expand to an inlined function that calls this function.
This saves a few kilobytes from the systemd binary
(David: - fix coding-style
- use 'ssize_t' to fix 32bit to 64bit propagation
- use streq_ptr())
Tom Gundersen [Fri, 13 Feb 2015 23:32:56 +0000 (00:32 +0100)]
networkd: network - rename ipv6token parser
Too generic name.
Tom Gundersen [Fri, 13 Feb 2015 23:32:26 +0000 (00:32 +0100)]
networkd: .network - rename LinkLocal to LinkLocalAddressing
Makes it a bit less ambiguous.
Tom Gundersen [Fri, 13 Feb 2015 23:30:51 +0000 (00:30 +0100)]
man: systemd.network - document IPv6Token
Djalal Harouni [Fri, 13 Feb 2015 22:39:13 +0000 (23:39 +0100)]
sd-rtnl: add missing IFLA_INET6_ADDR_GEN_MODE definition
Add missing IFLA_INET6_ADDR_GEN_MODE definition so we can build with
kernel headers < 3.17
Tom Gundersen [Fri, 13 Feb 2015 23:14:52 +0000 (00:14 +0100)]
TODO
Lennart Poettering [Fri, 13 Feb 2015 16:17:45 +0000 (17:17 +0100)]
bus-proxy: ECONNRESET/ENOTCONN can hit us on every step, hence handle it on every step
Lennart Poettering [Fri, 13 Feb 2015 16:17:28 +0000 (17:17 +0100)]
bus-proxy: a few simplifications
Lennart Poettering [Fri, 13 Feb 2015 16:16:51 +0000 (17:16 +0100)]
sd-bus: initialize a few structs at time or declaration
Lennart Poettering [Fri, 13 Feb 2015 16:15:41 +0000 (17:15 +0100)]
bus-proxy: close each connection fd only once
After passing the fds over to the sd_bus object, we should forget them,
so that we don't close them a second time when the object goes away.
Lennart Poettering [Fri, 13 Feb 2015 15:11:45 +0000 (16:11 +0100)]
bus-proxy: also consider ENOTCONN a clean termination condition
Sometimes, when we try to reply to messages we don't check return
values. This means we might miss a ECONNRESET, and will get a ENOTCONN
on next command. Treat both the same hence.
Tom Gundersen [Fri, 13 Feb 2015 15:20:45 +0000 (16:20 +0100)]
exit-on-idle: only exit if actually idle
sd_event_wait() returning 0 usually means that it timed out, which means it must
have been idle. However, sd_event_wait() may return 0 in case an event was triggered
but it turned out there was nothing to do. Make the check for idle explicit to avoid
this edge-case.
Lennart Poettering [Fri, 13 Feb 2015 14:38:38 +0000 (15:38 +0100)]
bus-proxy: whenever we cannot forward a message, report this back to caller, but don't exit
Errors like EPERM from the kernel should certainly not be reason to
exit. Let's try to be defensive here, and try to continue on most send
errors, but possibly tell the sender about it.
Lennart Poettering [Fri, 13 Feb 2015 14:37:34 +0000 (15:37 +0100)]
bus-proxy: rename synthetic_reply_return_strv() to synthetic_reply_method_return_strv()
That way it matches more closely the nomenclature of our other
success reply calls.
Lennart Poettering [Fri, 13 Feb 2015 14:36:15 +0000 (15:36 +0100)]
bus-proxy: minor simplifications
Lennart Poettering [Fri, 13 Feb 2015 14:34:54 +0000 (15:34 +0100)]
sd-bus: export sd_bus_error_set_errnofv()
Lennart Poettering [Fri, 13 Feb 2015 14:34:11 +0000 (15:34 +0100)]
bus-proxy: no need to negate error codes, log_error_errno() already does it
Lennart Poettering [Fri, 13 Feb 2015 14:33:42 +0000 (15:33 +0100)]
bus-proxy: tell Coverity we don't care about these return values
Lennart Poettering [Fri, 13 Feb 2015 14:05:34 +0000 (15:05 +0100)]
bus-proxy: we don't pointlessly abbreviate function names
It's fine to abbreviate local variables, but it's not OK to abbreviate
function names needlessly. This is not an excercise in writing
unreadable code.
Daniel Mack [Fri, 13 Feb 2015 13:55:51 +0000 (14:55 +0100)]
sd-bus: sync kdbus.h (ABI break)
Another slice logic rework in kdbus made KDBUS_ITEM_PAYLOAD_OFF items
relative to the message header again. Catch up with that in sd-bus.
Lennart Poettering [Fri, 13 Feb 2015 13:35:50 +0000 (14:35 +0100)]
units: turn on --network-veth by default for systemd-nspawn@.service
Given the recent improvements in networkd, it's probably the better
default now.
Lennart Poettering [Fri, 13 Feb 2015 13:30:05 +0000 (14:30 +0100)]
units: fix systemd-networkd.service in containers lacking CAP_NET_ADMIN
Lennart Poettering [Fri, 13 Feb 2015 13:09:17 +0000 (14:09 +0100)]
hwdb: update name databases
Lennart Poettering [Fri, 13 Feb 2015 10:06:42 +0000 (11:06 +0100)]
build-sys: already bump package version in preparation for next release
(don't misunderstand this, the release is still out quite a bit...)
Lennart Poettering [Thu, 12 Feb 2015 19:49:22 +0000 (20:49 +0100)]
build-sys: bump sonames in preparation for next release
Lennart Poettering [Thu, 12 Feb 2015 19:45:19 +0000 (20:45 +0100)]
NEWS: add contributors list