Compare commits

..

No commits in common. "1f667d8a7cff4355cd23ebebeb4d7179e3498eb8" and "dca352245b0dcacce8ca5fb5a0b69c00e32de25a" have entirely different histories.

14 changed files with 32 additions and 160 deletions

View File

@ -528,13 +528,6 @@ evdev:name:SynPS/2 Synaptics TouchPad:dmi:*:svnLENOVO:*pvrThinkPadT490:*
EVDEV_ABS_35=::57 EVDEV_ABS_35=::57
EVDEV_ABS_36=::33 EVDEV_ABS_36=::33
# Lenovo Legion Y9000X2020
evdev:name:MSFT0001:02 04F3:304B Touchpad:dmi:*svnLENOVO:*pvrLenovoLegionY9000X2020*
EVDEV_ABS_00=::31
EVDEV_ABS_01=::30
EVDEV_ABS_35=::31
EVDEV_ABS_36=::30
######################################### #########################################
# Razer # Razer
######################################### #########################################

View File

@ -808,15 +808,6 @@ evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO*:pn*IdeaPad*Z370*:pvr*
KEYBOARD_KEY_ae=!volumedown KEYBOARD_KEY_ae=!volumedown
KEYBOARD_KEY_b0=!volumeup KEYBOARD_KEY_b0=!volumeup
# Fix for volume keys on Lenovo Yoga S940
# For 10th gen it should be pn81Q8 instead of pn81Q7 but
# I don't have a device to test
# perhaps pn81Q* would work for both generations
evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO:pn81Q7*:pvrLenovoYogaS940*
KEYBOARD_KEY_a0=!mute
KEYBOARD_KEY_ae=!volumedown
KEYBOARD_KEY_b0=!volumeup
# Lenovo Y50-70 # Lenovo Y50-70
evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO*:pn*20378*:pvr* evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO*:pn*20378*:pvr*
KEYBOARD_KEY_f3=f21 # Fn+F6 (toggle touchpad) KEYBOARD_KEY_f3=f21 # Fn+F6 (toggle touchpad)

View File

@ -1474,13 +1474,7 @@
"link" scope will be used. For anything else, scope defaults to "global".</para> "link" scope will be used. For anything else, scope defaults to "global".</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry>
<term><varname>UseGateway=</varname></term>
<listitem>
<para>When true (the default), the gateway will be requested from the DHCP server and added to the
routing table with a metric of 1024, and a scope of "link".</para>
</listitem>
</varlistentry>
<varlistentry> <varlistentry>
<term><varname>UseTimezone=</varname></term> <term><varname>UseTimezone=</varname></term>

View File

@ -71,10 +71,7 @@
<literal>disable</literal> followed by a space and a unit name <literal>disable</literal> followed by a space and a unit name
(possibly with shell style wildcards), separated by newlines. (possibly with shell style wildcards), separated by newlines.
Empty lines and lines whose first non-whitespace character is <literal>#</literal> or Empty lines and lines whose first non-whitespace character is <literal>#</literal> or
<literal>;</literal> are ignored. Multiple instance names for unit <literal>;</literal> are ignored.</para>
templates may be specified as a space separated list at the end of
the line instead of the customary position between <literal>@</literal>
and the unit suffix.</para>
<para>Presets must refer to the "real" unit file, and not to any aliases. See <para>Presets must refer to the "real" unit file, and not to any aliases. See
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry> <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
@ -126,17 +123,6 @@ disable *</programlisting>
<literal>99-</literal>, it will be read last and hence can easily <literal>99-</literal>, it will be read last and hence can easily
be overridden by spin or administrator preset policy.</para> be overridden by spin or administrator preset policy.</para>
<example>
<title>Enable multiple template instances</title>
<programlisting># /usr/lib/systemd/system-preset/80-dirsrv.preset
enable dirsrv@.service foo bar baz</programlisting>
</example>
<para>This enables all three of <filename>dirsrv@foo.service</filename>,
<filename>dirsrv@bar.service</filename> and <filename>dirsrv@baz.service</filename>.</para>
<example> <example>
<title>A GNOME spin</title> <title>A GNOME spin</title>

View File

@ -6,8 +6,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: systemd\n" "Project-Id-Version: systemd\n"
"Report-Msgid-Bugs-To: https://github.com/systemd/systemd/issues\n" "Report-Msgid-Bugs-To: https://github.com/systemd/systemd/issues\n"
"POT-Creation-Date: 2020-03-07 03:28+0000\n" "POT-Creation-Date: 2020-02-29 15:12+0000\n"
"PO-Revision-Date: 2020-03-15 13:13+0100\n" "PO-Revision-Date: 2020-03-01 14:45+0100\n"
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n" "Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
"Language-Team: Polish <trans-pl@lists.fedoraproject.org>\n" "Language-Team: Polish <trans-pl@lists.fedoraproject.org>\n"
"Language: pl\n" "Language: pl\n"
@ -776,35 +776,26 @@ msgid "Authentication is required to reset DNS settings."
msgstr "Wymagane jest uwierzytelnienie, aby przywrócić ustawienia DNS." msgstr "Wymagane jest uwierzytelnienie, aby przywrócić ustawienia DNS."
#: src/network/org.freedesktop.network1.policy:143 #: src/network/org.freedesktop.network1.policy:143
msgid "DHCP server sends force renew message"
msgstr "Serwer DHCP wysyła komunikat wymuszonego odnowienia"
#: src/network/org.freedesktop.network1.policy:144
msgid "Authentication is required to send force renew message."
msgstr ""
"Wymagane jest uwierzytelnienie, aby wysłać komunikat wymuszonego odnowienia."
#: src/network/org.freedesktop.network1.policy:154
msgid "Renew dynamic addresses" msgid "Renew dynamic addresses"
msgstr "Odnowienie adresów dynamicznych" msgstr "Odnowienie adresów dynamicznych"
#: src/network/org.freedesktop.network1.policy:155 #: src/network/org.freedesktop.network1.policy:144
msgid "Authentication is required to renew dynamic addresses." msgid "Authentication is required to renew dynamic addresses."
msgstr "Wymagane jest uwierzytelnienie, aby odnowić adresy dynamiczne." msgstr "Wymagane jest uwierzytelnienie, aby odnowić adresy dynamiczne."
#: src/network/org.freedesktop.network1.policy:165 #: src/network/org.freedesktop.network1.policy:154
msgid "Reload network settings" msgid "Reload network settings"
msgstr "Ponowne wczytanie ustawień sieci" msgstr "Ponowne wczytanie ustawień sieci"
#: src/network/org.freedesktop.network1.policy:166 #: src/network/org.freedesktop.network1.policy:155
msgid "Authentication is required to reload network settings." msgid "Authentication is required to reload network settings."
msgstr "Wymagane jest uwierzytelnienie, aby ponownie wczytać ustawienia sieci." msgstr "Wymagane jest uwierzytelnienie, aby ponownie wczytać ustawienia sieci."
#: src/network/org.freedesktop.network1.policy:176 #: src/network/org.freedesktop.network1.policy:165
msgid "Reconfigure network interface" msgid "Reconfigure network interface"
msgstr "Ponowna konfiguracja interfejsu sieciowego" msgstr "Ponowna konfiguracja interfejsu sieciowego"
#: src/network/org.freedesktop.network1.policy:177 #: src/network/org.freedesktop.network1.policy:166
msgid "Authentication is required to reconfigure network interface." msgid "Authentication is required to reconfigure network interface."
msgstr "" msgstr ""
"Wymagane jest uwierzytelnienie, aby ponownie skonfigurować interfejs " "Wymagane jest uwierzytelnienie, aby ponownie skonfigurować interfejs "

View File

@ -318,6 +318,7 @@ static int set_machine_id(const char *m) {
} }
static int parse_proc_cmdline_item(const char *key, const char *value, void *data) { static int parse_proc_cmdline_item(const char *key, const char *value, void *data) {
int r; int r;
assert(key); assert(key);
@ -329,8 +330,10 @@ static int parse_proc_cmdline_item(const char *key, const char *value, void *dat
if (!unit_name_is_valid(value, UNIT_NAME_PLAIN|UNIT_NAME_INSTANCE)) if (!unit_name_is_valid(value, UNIT_NAME_PLAIN|UNIT_NAME_INSTANCE))
log_warning("Unit name specified on %s= is not valid, ignoring: %s", key, value); log_warning("Unit name specified on %s= is not valid, ignoring: %s", key, value);
else if (in_initrd() == !!startswith(key, "rd.")) else if (in_initrd() == !!startswith(key, "rd.")) {
return free_and_strdup_warn(&arg_default_unit, value); if (free_and_strdup(&arg_default_unit, value) < 0)
return log_oom();
}
} else if (proc_cmdline_key_streq(key, "systemd.dump_core")) { } else if (proc_cmdline_key_streq(key, "systemd.dump_core")) {
@ -507,7 +510,7 @@ static int parse_proc_cmdline_item(const char *key, const char *value, void *dat
/* SysV compatibility */ /* SysV compatibility */
target = runlevel_to_target(key); target = runlevel_to_target(key);
if (target) if (target)
return free_and_strdup_warn(&arg_default_unit, target); return free_and_strdup(&arg_default_unit, target);
} }
return 0; return 0;
@ -984,9 +987,11 @@ static int parse_argv(int argc, char *argv[]) {
case 'b': case 'b':
case 's': case 's':
case 'z': case 'z':
/* Just to eat away the sysvinit kernel cmdline args that we'll parse in /* Just to eat away the sysvinit kernel
* parse_proc_cmdline_item() or ignore, without any getopt() error messages. * cmdline args without getopt() error
*/ * messages that we'll parse in
* parse_proc_cmdline_word() or ignore. */
case '?': case '?':
if (getpid_cached() != 1) if (getpid_cached() != 1)
return -EINVAL; return -EINVAL;

View File

@ -323,9 +323,6 @@ static int link_set_dhcp_routes(Link *link) {
} }
} }
if (!link->network->dhcp_use_gateway)
return 0;
r = sd_dhcp_lease_get_router(link->dhcp_lease, &router); r = sd_dhcp_lease_get_router(link->dhcp_lease, &router);
if (IN_SET(r, 0, -ENODATA)) if (IN_SET(r, 0, -ENODATA))
log_link_info(link, "DHCP: No gateway received from DHCP server."); log_link_info(link, "DHCP: No gateway received from DHCP server.");
@ -454,7 +451,7 @@ static int dhcp_remove_router(Link *link, sd_dhcp_lease *lease, const struct in_
assert(link); assert(link);
assert(address); assert(address);
if (!link->network->dhcp_use_gateway) if (!link->network->dhcp_use_routes)
return 0; return 0;
r = sd_dhcp_lease_get_router(lease, &router); r = sd_dhcp_lease_get_router(lease, &router);

View File

@ -163,7 +163,6 @@ DHCPv4.UseMTU, config_parse_bool,
DHCPv4.UseHostname, config_parse_bool, 0, offsetof(Network, dhcp_use_hostname) DHCPv4.UseHostname, config_parse_bool, 0, offsetof(Network, dhcp_use_hostname)
DHCPv4.UseDomains, config_parse_dhcp_use_domains, 0, offsetof(Network, dhcp_use_domains) DHCPv4.UseDomains, config_parse_dhcp_use_domains, 0, offsetof(Network, dhcp_use_domains)
DHCPv4.UseRoutes, config_parse_bool, 0, offsetof(Network, dhcp_use_routes) DHCPv4.UseRoutes, config_parse_bool, 0, offsetof(Network, dhcp_use_routes)
DHCPv4.UseGateway, config_parse_bool, 0, offsetof(Network, dhcp_use_gateway)
DHCPv4.RequestOptions, config_parse_dhcp_request_options, 0, 0 DHCPv4.RequestOptions, config_parse_dhcp_request_options, 0, 0
DHCPv4.Anonymize, config_parse_bool, 0, offsetof(Network, dhcp_anonymize) DHCPv4.Anonymize, config_parse_bool, 0, offsetof(Network, dhcp_anonymize)
DHCPv4.SendHostname, config_parse_bool, 0, offsetof(Network, dhcp_send_hostname) DHCPv4.SendHostname, config_parse_bool, 0, offsetof(Network, dhcp_send_hostname)

View File

@ -384,7 +384,6 @@ int network_load_one(Manager *manager, OrderedHashmap **networks, const char *fi
.dhcp_use_dns = true, .dhcp_use_dns = true,
.dhcp_use_hostname = true, .dhcp_use_hostname = true,
.dhcp_use_routes = true, .dhcp_use_routes = true,
.dhcp_use_gateway = true,
/* NOTE: this var might be overwritten by network_apply_anonymize_if_set */ /* NOTE: this var might be overwritten by network_apply_anonymize_if_set */
.dhcp_send_hostname = true, .dhcp_send_hostname = true,
.dhcp_send_release = true, .dhcp_send_release = true,

View File

@ -109,7 +109,6 @@ struct Network {
bool dhcp_use_sip; bool dhcp_use_sip;
bool dhcp_use_mtu; bool dhcp_use_mtu;
bool dhcp_use_routes; bool dhcp_use_routes;
bool dhcp_use_gateway;
bool dhcp_use_timezone; bool dhcp_use_timezone;
bool rapid_commit; bool rapid_commit;
bool dhcp_use_hostname; bool dhcp_use_hostname;

View File

@ -2065,55 +2065,22 @@ static int list_machines(int argc, char *argv[], void *userdata) {
return rc; return rc;
} }
static int parse_proc_cmdline_item(const char *key, const char *value, void *data) { static int get_default(int argc, char *argv[], void *userdata) {
char **ret = data; _cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
_cleanup_free_ char *_path = NULL;
if (streq(key, "systemd.unit")) { const char *path;
if (proc_cmdline_value_missing(key, value))
return 0;
if (!unit_name_is_valid(value, UNIT_NAME_PLAIN|UNIT_NAME_INSTANCE))
return log_warning("Unit name specified on %s= is not valid, ignoring: %s", key, value);
return free_and_strdup_warn(ret, key);
} else if (!value) {
if (runlevel_to_target(key))
return free_and_strdup_warn(ret, key);
}
return 0;
}
static void emit_cmdline_warning(void) {
if (arg_quiet || arg_root)
/* don't bother checking the commandline if we're operating on a container */
return;
_cleanup_free_ char *override = NULL;
int r;
r = proc_cmdline_parse(parse_proc_cmdline_item, &override, 0);
if (r < 0)
log_debug_errno(r, "Failed to parse kernel command line, ignoring: %m");
if (override)
log_notice("Note: found \"%s\" on the kernel commandline, which overrides the default unit.",
override);
}
static int determine_default(char **ret_name) {
int r; int r;
if (install_client_side()) { if (install_client_side()) {
r = unit_file_get_default(arg_scope, arg_root, ret_name); r = unit_file_get_default(arg_scope, arg_root, &_path);
if (r < 0) if (r < 0)
return log_error_errno(r, "Failed to get default target: %m"); return log_error_errno(r, "Failed to get default target: %m");
return 0; path = _path;
r = 0;
} else { } else {
sd_bus *bus;
_cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL; _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
const char *name; sd_bus *bus;
r = acquire_bus(BUS_MANAGER, &bus); r = acquire_bus(BUS_MANAGER, &bus);
if (r < 0) if (r < 0)
@ -2131,25 +2098,13 @@ static int determine_default(char **ret_name) {
if (r < 0) if (r < 0)
return log_error_errno(r, "Failed to get default target: %s", bus_error_message(&error, r)); return log_error_errno(r, "Failed to get default target: %s", bus_error_message(&error, r));
r = sd_bus_message_read(reply, "s", &name); r = sd_bus_message_read(reply, "s", &path);
if (r < 0) if (r < 0)
return bus_log_parse_error(r); return bus_log_parse_error(r);
return free_and_strdup_warn(ret_name, name);
}
} }
static int get_default(int argc, char *argv[], void *userdata) { if (path)
_cleanup_free_ char *name = NULL; printf("%s\n", path);
int r;
r = determine_default(&name);
if (r < 0)
return r;
printf("%s\n", name);
emit_cmdline_warning();
return 0; return 0;
} }
@ -2209,19 +2164,6 @@ static int set_default(int argc, char *argv[], void *userdata) {
r = 0; r = 0;
} }
emit_cmdline_warning();
if (!arg_quiet) {
_cleanup_free_ char *final = NULL;
r = determine_default(&final);
if (r < 0)
return r;
if (!streq(final, unit))
log_notice("Note: \"%s\" is the default unit (possibly a runtime override).", final);
}
finish: finish:
unit_file_changes_free(changes, n_changes); unit_file_changes_free(changes, n_changes);

View File

@ -73,7 +73,6 @@ UseDNS=
RoutesToDNS= RoutesToDNS=
UseDomains= UseDomains=
UseRoutes= UseRoutes=
UseGateway=
IAID= IAID=
UserClass= UserClass=
UseNTP= UseNTP=

View File

@ -1,9 +0,0 @@
[Match]
Name=veth99
[Network]
DHCP=ipv4
IPv6AcceptRA=false
[DHCPv4]
UseGateway=no

View File

@ -2921,7 +2921,6 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities):
'dhcp-client-ipv4-dhcp-settings.network', 'dhcp-client-ipv4-dhcp-settings.network',
'dhcp-client-ipv4-only-ipv6-disabled.network', 'dhcp-client-ipv4-only-ipv6-disabled.network',
'dhcp-client-ipv4-only.network', 'dhcp-client-ipv4-only.network',
'dhcp-client-ipv4-use-gateway-no.network',
'dhcp-client-ipv4-use-routes-no.network', 'dhcp-client-ipv4-use-routes-no.network',
'dhcp-client-ipv6-only.network', 'dhcp-client-ipv6-only.network',
'dhcp-client-ipv6-rapid-commit.network', 'dhcp-client-ipv6-rapid-commit.network',
@ -3041,19 +3040,6 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities):
self.assertRegex(output, r'default via 192.168.5.1 proto dhcp src 192.168.5.181 metric 1024') self.assertRegex(output, r'default via 192.168.5.1 proto dhcp src 192.168.5.181 metric 1024')
self.assertRegex(output, r'192.168.5.1 proto dhcp scope link src 192.168.5.181 metric 1024') self.assertRegex(output, r'192.168.5.1 proto dhcp scope link src 192.168.5.181 metric 1024')
def test_dhcp_client_ipv4_use_gateway_no(self):
copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-server-veth-peer.network', 'dhcp-client-ipv4-use-gateway-no.network')
start_networkd()
self.wait_online(['veth-peer:carrier'])
start_dnsmasq(additional_options='--dhcp-option=option:dns-server,192.168.5.6,192.168.5.7', lease_time='2m')
self.wait_online(['veth99:routable', 'veth-peer:routable'])
output = check_output('ip route show dev veth99')
print(output)
self.assertRegex(output, r'192.168.5.0/24 via 192.168.5.5 proto dhcp src 192.168.5.181 metric 1024')
self.assertNotRegex(output, r'default via 192.168.5.1')
def test_dhcp_client_ipv4_ipv6(self): def test_dhcp_client_ipv4_ipv6(self):
copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-server-veth-peer.network', 'dhcp-client-ipv6-only.network', copy_unit_to_networkd_unit_path('25-veth.netdev', 'dhcp-server-veth-peer.network', 'dhcp-client-ipv6-only.network',
'dhcp-client-ipv4-only.network') 'dhcp-client-ipv4-only.network')