summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #3384 from keszybz/localed-keymapLennart Poettering2016-06-136-742/+1088
|\ | | | | More verbose logging in localed, unit tests, and a few tweaks to keymap conversions
| * test-keymap-util: use kbd-model-map/language-fallback-map from $(srcdir)Zbigniew Jędrzejewski-Szmek2016-06-113-28/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds (undocumented) environment variables SYSTEMD_KBD_MODEL_MAP and SYSTEMD_LANGUAGE_FALLBACK_MAP, which, if set, override compiled-in locations of those two files. Instead of skipping tests when the maps are not installed, just use the one from the source dir. We still cannot do the mappings the other way if /usr/lib/kbd/keymaps is not present, so truncate the tests in that case. Also tweak the debug messages a bit to make it easier to see which function is failing.
| * keymap-util: also "convert" 'ru' to 'ru'Zbigniew Jędrzejewski-Szmek2016-06-062-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | As discovered by Adam Williamson in https://bugzilla.redhat.com/show_bug.cgi?id=1333998#c32, after the changes in 81fd105a5f9 we would only match compound layouts, i.e. a comma would be required after 'ru' to match. This seems wrong, and we should match single layouts like too. So 'ru', 'ru,us' now both match. startswith_comma is changed to not require a comma, i.e. check that the prefix matches until a comma or the end of the string. Note that startswith_comma is called twice. At the first site, we check that strings are not equal beforehand, so this change to startswith_comma has no effect. At the second site, it does have an effect, as described above.
| * localed: also report when we couldn't convert X11→consoleZbigniew Jędrzejewski-Szmek2016-06-062-7/+16
| | | | | | | | | | | | | | | | | | | | | | Rework the code a bit where find_converted_keymap cannot (and should not) be called with a null layout, so streq can be used instead of streq_ptr, etc. Note that the behaviour of vconsole_convert_to_x11 and x11_convert_to_vconsole is not symmetrical. When the latter cannot find a match, it simply makes the vconsole mapping empty. But vconsole_convert_to_x11 leaves the x11 layout unchanged. I don't know what the proper solution is here, so I'm just adding more verbose logging without changing the logic.
| * localed: be more verbose when keymap conversion to X11 failsZbigniew Jędrzejewski-Szmek2016-06-061-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | I was puzzled why "localectl set-keymap pl" does not change the X11 keymap. Output a message at notice level, becuase not converting the X11 keymap is most likely an error. We usually do not output non-debug messages from "library" code, but this isn't really library code, it's split out to a separate file only to allow it to be called from tests. (pl is not converted because we only have a mapping for pl2. This is intentional, even though we might want to change this. In any case, the conversion code works correctly.)
| * keymap-util: add tests and fix one small bugZbigniew Jędrzejewski-Szmek2016-06-065-2/+233
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When converting an empty x11 variant, we would not delete vconsole mapping properly. find_legacy_keymap() is made non-static. I think it's important to be able to test it. In principle we could also test it through the higher-level interface of x11_convert_to_vconsole, but x11_convert_to_vconsole also uses find_converted_keymap, and it's better to test at this lower level. Note that find_legacy_keymap might be a bit of a misnomer, because we'd probably want to keep kbd-model-map even if the "legacy" layouts went away. So we might want to change this name, but I'm leaving that for another commit.
| * localed: split out keymap parsing to a separate fileZbigniew Jędrzejewski-Szmek2016-06-064-687/+772
| | | | | | | | | | This way the dbus and management logic is seperated from the business logic and we can write test cases for the mapping functionality.
| * localed: get rid of duplicated enum and string tableZbigniew Jędrzejewski-Szmek2016-06-061-85/+68
| |
* | resolved: use single message for both dbus and signal calls (#3515)Zbigniew Jędrzejewski-Szmek2016-06-131-1/+2
| | | | | | Follow-up for #3502.
* | Merge pull request #3520 from keszybz/add-release.mdLennart Poettering2016-06-132-17/+21
|\ \ | | | | | | Add RELEASE.md
| * | Add RELEASE.md file which lists the steps needed for releaseZbigniew Jędrzejewski-Szmek2016-06-121-0/+12
| | | | | | | | | | | | | | | I put it in .github, so it doesn't stand out too much; after all it's not interesting to most people.
| * | CONTRIBUTING: ask people to comment after after force-pushZbigniew Jędrzejewski-Szmek2016-06-121-0/+1
| | |
| * | CONTRIBUTING: remove line wrappingZbigniew Jędrzejewski-Szmek2016-06-121-17/+8
| | | | | | | | | | | | | | | GitHub displays this file poorly, because it preserves the newlines. Let's try how things look without any wrapping.
* | | Merge pull request #3518 from keszybz/test-process-utilLennart Poettering2016-06-132-41/+41
|\ \ \ | | | | | | | | Enhance test-process-util to take the PID to look at
| * | | process-util: remove broken support for pid==0Zbigniew Jędrzejewski-Szmek2016-06-121-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Our functions that query /proc/pid/ support using pid==0 to mean self. get_process_id also seemed to support that, but it was not implemented correctly: the result should be in *uid, not returned, and also it gave completely bogus result when called from get_process_gid(). But afaict, get_process_{uid,gid} were never called with pid==0, so it's not an actual bug. Remove the broken code to avoid confusion.
| * | | test-process-util: allow pid to be specified on the command lineZbigniew Jędrzejewski-Szmek2016-06-121-2/+11
| | | | | | | | | | | | | | | | | | | | This makes it easy to test the query code on "ssh localhost" and similar.
| * | | test-process-util: rework the test function to take pid as argumentZbigniew Jędrzejewski-Szmek2016-06-121-38/+32
| |/ / | | | | | | | | | This fixes a bunch of copy&paste errors in the output.
* | | networkd: fix NULL pointer (#3523)Susant Sahani2016-06-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Not every link has kind associated with it. (gdb) r Starting program: /home/sus/tt/systemd/systemd-networkd Missing separate debuginfos, use: dnf debuginfo-install glibc-2.23.1-7.fc24.x86_64 [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". vboxnet0: Gained IPv6LL wlp3s0: Gained IPv6LL enp0s25: Gained IPv6LL Enumeration completed Program received signal SIGSEGV, Segmentation fault. 0x00007ffff6e27ade in __strcmp_sse2_unaligned () from /lib64/libc.so.6 (gdb) bt src/network/networkd-link.c:2008 src/network/networkd-link.c:2059 src/network/networkd-link.c:2442 m=0x555555704a30, userdata=0x55555570bfe0) at src/network/networkd-link.c:2497 at src/libsystemd/sd-netlink/sd-netlink.c:347 src/libsystemd/sd-netlink/sd-netlink.c:402 src/libsystemd/sd-netlink/sd-netlink.c:432 userdata=0x5555556f7470) at src/libsystemd/sd-netlink/sd-netlink.c:739 src/libsystemd/sd-event/sd-event.c:2275 src/libsystemd/sd-event/sd-event.c:2626 timeout=18446744073709551615) at src/libsystemd/sd-event/sd-event.c:2685 bus=0x5555556f9af0, name=0x555555692315 "org.freedesktop.network1", timeout=30000000, check_idle=0x55555556ac84 <manager_check_idle>, userdata=0x5555556f6b20) at src/shared/bus-util.c:134 src/network/networkd-manager.c:1128 src/network/networkd.c:127 (gdb) f 1 src/network/networkd-link.c:2008 2008 if (link->network->bridge || streq("bridge", link->kind)) { (gdb) p link->kind $1 = 0x0
* | | networkd: route priority replace parsing config_parse_uint32 with ↵Susant Sahani2016-06-131-5/+8
| | | | | | | | | | | | safe_atou32 (#3522)
* | | core/execute: pass env vars to PAM session setup (#3503)Jouke Witteveen2016-06-131-34/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | Move the merger of environment variables before setting up the PAM session and pass the aggregate environment to PAM setup. This allows control over the PAM session hooks through environment variables. PAM session initiation may update the environment. On successful initiation of a PAM session, we adopt the environment of the PAM context.
* | | systemctl: disallow systemctl --user reboot (#3519)Zbigniew Jędrzejewski-Szmek2016-06-131-65/+77
|/ / | | | | | | | | | | | | | | ... as well as halt/poweroff/kexec/suspend/hibernate/hybrid-sleep. Running those commands will fail in user mode, but we try to set the wall message first, which might even succeed for privileged users. Best to nip the whole sequence in the bud. https://github.com/systemd/systemd/pull/3453#issuecomment-225455156
* | util-lib: drop trailing non-printable characters from cmdline (#3512)Max Prokhorov2016-06-121-4/+12
| | | | | | | | | | | | | | | | If max_length is equal or greater than cmdline length all trailing non-printable characters are dropped. If max_length is 0 it should do the same. This should also fix cmdline truncation if the last character is not '\0'. Fixes #3469.
* | hwdb: change the Logitech MX500 to 1100 dpi (#3517)Peter Hutterer2016-06-121-2/+4
| | | | | | | | | | https://bugs.freedesktop.org/show_bug.cgi?id=96225 and specifically the tech specs here: http://support.logitech.com/en_us/product/corded-mouse-m500
* | Merge pull request #3502 from poettering/resolved-flush-cacheZbigniew Jędrzejewski-Szmek2016-06-128-22/+146
|\ \ | | | | | | resolved: allow clients request cache flushes
| * | resolved: move verification that link is unmanaged into the proper bus callsLennart Poettering2016-06-102-21/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, we checked only for the various SetLinkXYZ() calls on the Manager object exposed on the bus if the specified interface is managed/unmanaged by networkd (as we don't permit overriding DNS configuration via bus calls if networkd owns the device), but the equivalent SetXYZ() calls on the Link object did not have such a check. Fix that by moving the appropriate check into the latter, as the former just calls that anyway.
| * | resolved: also add a way to flush all caches via the busLennart Poettering2016-06-105-4/+67
| | | | | | | | | | | | And expose it in "resolve-tool --flush-caches".
| * | man: document what SIGUSR1 and SIGUSR2 do to resolvedLennart Poettering2016-06-101-0/+22
| | |
| * | resolved: flush all caches if SIGUSR2 is receivedLennart Poettering2016-06-103-1/+19
| | |
* | | Merge pull request #3453 from poettering/fix-3353Zbigniew Jędrzejewski-Szmek2016-06-122-36/+83
|\ \ \ | | | | | | | | Fixes #3353.
| * | | update TODOLennart Poettering2016-06-101-0/+2
| | | |
| * | | systemctl: prolong timeout of "systemctl daemon-reload"Lennart Poettering2016-06-101-32/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reloading or reexecuting PID 1 means the unit generators are rerun, which are timed out at 90s. Make sure the method call asking for the reload is timed out at twice that, so that the generators have 90s and the reload operation has 90s too. This reworks the daemon_reload() call in systemctl, and makes it exclusively about reloading/reexecing. Previously it was used for other trivial method calls too, which didn't really help readability. As the code paths are now sufficiently different, split out the old code into a new function trivial_method(). This call also does a similar change as c8ad4efb277c3235d58789170af11bb3c847d655 but for the reload/reexec operation. Fixes: #3353
| * | | systemctl: don't suppress error code when handling legacy commandsLennart Poettering2016-06-101-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For legacy commands such as /sbin/halt or /sbin/poweroff we support legacy fallbacks that talk via traditional SysV way with PID 1 to issue the desired operation. We do this on any kind of error if the primary method of operation fails. When this is the case we suppress any error message that is normally generated, in order to not confuse the user. When suppressing this log message, don't suppress the original error code, because there's really no reason to.
* | | | networkd: more vlan cleanup (#3506)Tobias Jungel2016-06-121-3/+4
| | | | | | | | | | | | use config_parse_vlanid to parse vlan for BridgeFDB entries
* | | | networkd: cleanup of bridge vlan code (#3505)Tobias Jungel2016-06-122-12/+5
| | | | | | | | | | | | cleanup minor nitpicks mentioned in #3428
* | | | Fixed a small typo in a comment (#3514)Alex Gaynor2016-06-121-1/+1
| |/ / |/| |
* | | networkd: fix bad memory access for routes that are note attached to a link ↵Lennart Poettering2016-06-101-1/+1
|/ / | | | | | | | | | | | | yet (#3499) Corrects: 1b566071 Also see: https://github.com/systemd/systemd/pull/3478#issuecomment-225008542
* | core: disable colors when displaying cylon when systemd.log_color=off (#3495)Franck Bui2016-06-101-5/+10
| |
* | update TODOLennart Poettering2016-06-101-0/+3
| |
* | core/execute: add the magic character '!' to allow privileged execution (#3493)Alessandro Puccetti2016-06-105-24/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch implements the new magic character '!'. By putting '!' in front of a command, systemd executes it with full privileges ignoring paramters such as User, Group, SupplementaryGroups, CapabilityBoundingSet, AmbientCapabilities, SecureBits, SystemCallFilter, SELinuxContext, AppArmorProfile, SmackProcessLabel, and RestrictAddressFamilies. Fixes partially https://github.com/systemd/systemd/issues/3414 Related to https://github.com/coreos/rkt/issues/2482 Testing: 1. Create a user 'bob' 2. Create the unit file /etc/systemd/system/exec-perm.service (You can use the example below) 3. sudo systemctl start ext-perm.service 4. Verify that the commands starting with '!' were not executed as bob, 4.1 Looking to the output of ls -l /tmp/exec-perm 4.2 Each file contains the result of the id command. ````````````````````````````````````````````````````````````````` [Unit] Description=ext-perm [Service] Type=oneshot TimeoutStartSec=0 User=bob ExecStartPre=!/usr/bin/sh -c "/usr/bin/rm /tmp/exec-perm*" ; /usr/bin/sh -c "/usr/bin/id > /tmp/exec-perm-start-pre" ExecStart=/usr/bin/sh -c "/usr/bin/id > /tmp/exec-perm-start" ; !/usr/bin/sh -c "/usr/bin/id > /tmp/exec-perm-star-2" ExecStartPost=/usr/bin/sh -c "/usr/bin/id > /tmp/exec-perm-start-post" ExecReload=/usr/bin/sh -c "/usr/bin/id > /tmp/exec-perm-reload" ExecStop=!/usr/bin/sh -c "/usr/bin/id > /tmp/exec-perm-stop" ExecStopPost=/usr/bin/sh -c "/usr/bin/id > /tmp/exec-perm-stop-post" [Install] WantedBy=multi-user.target] `````````````````````````````````````````````````````````````````
* | rules: block - add scm block devices to whitelist (#3494)Lennart Poettering2016-06-101-1/+1
| | | | | | | | | | | | | | | | Since the introduction of the whitelist in 60-persistent-storage.rules block device symlinks are no longer created for scm block devices. Add scm to the whitelist. Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
* | nspawn: introduce --notify-ready=[no|yes] (#3474)Alessandro Puccetti2016-06-105-8/+214
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This the patch implements a notificaiton mechanism from the init process in the container to systemd-nspawn. The switch --notify-ready=yes configures systemd-nspawn to wait the "READY=1" message from the init process in the container to send its own to systemd. --notify-ready=no is equivalent to the previous behavior before this patch, systemd-nspawn notifies systemd with a "READY=1" message when the container is created. This notificaiton mechanism uses socket file with path relative to the contanier "/run/systemd/nspawn/notify". The default values it --notify-ready=no. It is also possible to configure this mechanism from the .nspawn files using NotifyReady. This parameter takes the same options of the command line switch. Before this patch, systemd-nspawn notifies "ready" after the inner child was created, regardless the status of the service running inside it. Now, with --notify-ready=yes, systemd-nspawn notifies when the service is ready. This is really useful when there are dependencies between different contaniers. Fixes https://github.com/systemd/systemd/issues/1369 Based on the work from https://github.com/systemd/systemd/pull/3022 Testing: Boot a OS inside a container with systemd-nspawn. Note: modify the commands accordingly with your filesystem. 1. Create a filesystem where you can boot an OS. 2. sudo systemd-nspawn -D ${HOME}/distros/fedora-23/ sh 2.1. Create the unit file /etc/systemd/system/sleep.service inside the container (You can use the example below) 2.2. systemdctl enable sleep 2.3 exit 3. sudo systemd-run --service-type=notify --unit=notify-test ${HOME}/systemd/systemd-nspawn --notify-ready=yes -D ${HOME}/distros/fedora-23/ -b 4. In a different shell run "systemctl status notify-test" When using --notify-ready=yes the service status is "activating" for 20 seconds before being set to "active (running)". Instead, using --notify-ready=no the service status is marked "active (running)" quickly, without waiting for the 20 seconds. This patch was also test with --private-users=yes, you can test it just adding it at the end of the command at point 3. ------ sleep.service ------ [Unit] Description=sleep After=network.target [Service] Type=oneshot ExecStart=/bin/sleep 20 [Install] WantedBy=multi-user.target ------------ end ------------
* | Merge pull request #3428 from toanju/networkd/brvlanLennart Poettering2016-06-1011-2/+486
|\ \ | | | | | | networkd: add support to configure VLAN on bridge ports
| * | networkd: add support to configure VLAN on bridge portsTobias Jungel2016-06-1010-1/+466
| | |
| * | networkd-link: parse linkinfo to get kindTobias Jungel2016-06-092-1/+20
| | |
* | | l10n: update belarusian translation (#3482)Viktar Vaŭčkievič2016-06-104-116/+249
| | |
* | | networkd: fix dbus matchmac interface (#3485)Andrew Jeddeloh2016-06-101-1/+1
|/ / | | | | | | | | Fix issue where the *Network passed via userdata is being offset by offsetof(Network, matchmac) leading to incorrect values being exposed in dbus.
* | Merge pull request #3456 from poettering/ipv6-ra-renameTom Gundersen2016-06-094-10/+13
|\ \ | | | | | | networkd: rename IPv6AcceptRouterAdvertisements to IPv6AcceptRA
| * | networkd: rename IPv6AcceptRouterAdvertisements to IPv6AcceptRALennart Poettering2016-06-074-10/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The long name is just too hard to type. We generally should avoid using acronyms too liberally, if they aren't established enough, but it appears that "RA" is known well enough. Internally we call the option "ipv6_accept_ra" anyway, and the kernel also exposes it under this name. Hence, let's rename the IPv6AcceptRouterAdvertisements= setting and the [IPv6AcceptRouterAdvertisements] section to IPv6AcceptRA= and [IPv6AcceptRA]. The old setting IPv6AcceptRouterAdvertisements= is kept for compatibility with older configuration. (However the section [IPv6AcceptRouterAdvertisements] is not, as it was never available in a published version of systemd.
* | | networkd: clean up vlan handling a bit (#3478)Lennart Poettering2016-06-096-13/+117
| | | | | | | | | | | | | | | | | | | | | | | | | | | Let's add a generic parser for VLAN ids, which should become handy as preparation for PR #3428. Let's also make sure we use uint16_t for the vlan ID type everywhere, and that validity checks are already applied at the time of parsing, and not only whne we about to prepare a netdev. Also, establish a common definition VLANID_INVALID we can use for non-initialized VLAN id fields.
* | | Updated Turkish translation (#3477)Muhammet Kara2016-06-091-49/+61
| | |