diff options
86 files changed, 665 insertions, 413 deletions
diff --git a/Makefile.am b/Makefile.am index 1cc657acca..4ba230569a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -2816,9 +2816,6 @@ systemd_detect_virt_SOURCES = \ systemd_detect_virt_LDADD = \ libsystemd-shared.la -INSTALL_EXEC_HOOKS += \ - systemd-detect-virt-install-hook - # ------------------------------------------------------------------------------ systemd_delta_SOURCES = \ src/delta/delta.c @@ -2982,28 +2979,35 @@ if ARCH_AARCH64 efi_ldflags += --defsym=EFI_SUBSYSTEM=0xa EFI_FORMAT = -O binary else +if ARCH_ARM +efi_ldflags += --defsym=EFI_SUBSYSTEM=0xa +EFI_FORMAT = -O binary +else EFI_FORMAT = --target=efi-app-$(EFI_ARCH) endif endif endif +endif # ------------------------------------------------------------------------------ -systemd_boot_headers = \ - src/boot/efi/util.h \ +efi_headers = \ src/boot/efi/console.h \ + src/boot/efi/disk.h \ src/boot/efi/graphics.h \ - src/boot/efi/pefile.h \ + src/boot/efi/linux.h \ src/boot/efi/measure.h \ - src/boot/efi/disk.h + src/boot/efi/pefile.h \ + src/boot/efi/splash.h \ + src/boot/efi/util.h systemd_boot_sources = \ - src/boot/efi/util.c \ + src/boot/efi/boot.c \ src/boot/efi/console.c \ - src/boot/efi/graphics.c \ - src/boot/efi/pefile.c \ src/boot/efi/disk.c \ + src/boot/efi/graphics.c \ src/boot/efi/measure.c \ - src/boot/efi/boot.c + src/boot/efi/pefile.c \ + src/boot/efi/util.c EXTRA_DIST += $(systemd_boot_sources) $(systemd_boot_headers) @@ -3015,7 +3019,7 @@ if ENABLE_EFI if HAVE_GNUEFI bootlib_DATA = $(systemd_boot) -$(top_builddir)/src/boot/efi/%.o: $(top_srcdir)/src/boot/efi/%.c $(addprefix $(top_srcdir)/,$(systemd_boot_headers)) +$(top_builddir)/src/boot/efi/%.o: $(top_srcdir)/src/boot/efi/%.c $(addprefix $(top_srcdir)/,$(efi_headers)) @$(MKDIR_P) $(top_builddir)/src/boot/efi/ $(AM_V_CC)$(EFI_CC) $(efi_cppflags) $(efi_cflags) -c $< -o $@ @@ -3033,24 +3037,15 @@ endif CLEANFILES += $(systemd_boot_objects) $(systemd_boot_solib) $(systemd_boot) # ------------------------------------------------------------------------------ -stub_headers = \ - src/boot/efi/util.h \ - src/boot/efi/pefile.h \ - src/boot/efi/disk.h \ - src/boot/efi/graphics.h \ - src/boot/efi/splash.h \ - src/boot/efi/measure.h \ - src/boot/efi/linux.h - stub_sources = \ - src/boot/efi/util.c \ - src/boot/efi/pefile.c \ src/boot/efi/disk.c \ src/boot/efi/graphics.c \ - src/boot/efi/splash.c \ src/boot/efi/linux.c \ src/boot/efi/measure.c \ - src/boot/efi/stub.c + src/boot/efi/pefile.c \ + src/boot/efi/splash.c \ + src/boot/efi/stub.c \ + src/boot/efi/util.c EXTRA_DIST += \ $(stub_sources) \ @@ -3065,10 +3060,6 @@ if ENABLE_EFI if HAVE_GNUEFI bootlib_DATA += $(stub) -$(top_builddir)/src/boot/efi/%.o: $(top_srcdir)/src/boot/efi/%.c $(addprefix $(top_srcdir)/,$(stub_headers)) - @$(MKDIR_P) $(top_builddir)/src/boot/efi/ - $(AM_V_CC)$(EFI_CC) $(efi_cppflags) $(efi_cflags) -c $< -o $@ - $(stub_solib): $(stub_objects) $(AM_V_CCLD)$(LD) $(efi_ldflags) $(stub_objects) \ -o $@ -lefi -lgnuefi $(shell $(CC) -print-libgcc-file-name); \ @@ -3610,9 +3601,9 @@ test_resolve_LDADD = \ libsystemd-shared.la busctl_SOURCES = \ - src/libsystemd/sd-bus/busctl.c \ - src/libsystemd/sd-bus/busctl-introspect.c \ - src/libsystemd/sd-bus/busctl-introspect.h + src/busctl/busctl.c \ + src/busctl/busctl-introspect.c \ + src/busctl/busctl-introspect.h busctl_LDADD = \ libsystemd-shared.la @@ -3881,7 +3872,7 @@ src/udev/keyboard-keys-list.txt: $(AM_V_GEN)$(CPP) $(CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) -dM -include linux/input.h - < /dev/null | $(AWK) '/^#define[ \t]+KEY_[^ ]+[ \t]+[0-9K]/ { if ($$2 != "KEY_MAX") { print $$2 } }' > $@ src/udev/keyboard-keys-from-name.gperf: src/udev/keyboard-keys-list.txt - $(AM_V_GEN)$(AWK) 'BEGIN{ print "struct key { const char* name; unsigned short id; };"; print "%null-strings"; print "%%";} { print tolower(substr($$1 ,5)) ", " $$1 }' < $< > $@ + $(AM_V_GEN)$(AWK) 'BEGIN{ print "struct key_name { const char* name; unsigned short id; };"; print "%null-strings"; print "%%";} { print tolower(substr($$1 ,5)) ", " $$1 }' < $< > $@ src/udev/keyboard-keys-from-name.h: src/udev/keyboard-keys-from-name.gperf $(AM_V_GPERF)$(GPERF) -L ANSI-C -t -N keyboard_lookup_key -H hash_key_name -p -C < $< > $@ @@ -5024,10 +5015,6 @@ systemd_localed_LDADD = \ libsystemd-shared.la \ -ldl -systemd_localed_CFLAGS = \ - $(AM_CFLAGS) \ - $(XKBCOMMON_CFLAGS) - nodist_systemunit_DATA += \ units/systemd-localed.service @@ -5084,8 +5071,6 @@ dist_zshcompletion_data += \ shell-completion/zsh/_localectl endif -.PHONY: update-kbd-model-map - polkitpolicy_in_files += \ src/locale/org.freedesktop.locale1.policy.in @@ -5937,10 +5922,8 @@ dist_dbuspolicy_DATA += \ GENERAL_ALIASES += \ $(systemunitdir)/systemd-networkd.socket $(pkgsysconfdir)/system/sockets.target.wants/systemd-networkd.socket \ $(systemunitdir)/systemd-networkd.service $(pkgsysconfdir)/system/multi-user.target.wants/systemd-networkd.service \ - $(systemunitdir)/systemd-networkd-wait-online.service $(pkgsysconfdir)/system/network-online.target.wants/systemd-networkd-wait-online.service - -SYSTEM_UNIT_ALIASES += \ - systemd-networkd.service dbus-org.freedesktop.network1.service + $(systemunitdir)/systemd-networkd-wait-online.service $(pkgsysconfdir)/system/network-online.target.wants/systemd-networkd-wait-online.service \ + $(systemunitdir)/systemd-networkd.service $(pkgsysconfdir)/system/dbus-org.freedesktop.network1.service BUSNAMES_TARGET_WANTS += \ org.freedesktop.network1.busname @@ -6275,7 +6258,6 @@ substitutions = \ '|exec_prefix=$(exec_prefix)|' \ '|libdir=$(libdir)|' \ '|includedir=$(includedir)|' \ - '|VERSION=$(VERSION)|' \ '|rootprefix=$(rootprefix)|' \ '|udevlibexecdir=$(udevlibexecdir)|' \ '|SUSHELL=$(SUSHELL)|' \ @@ -6406,7 +6388,7 @@ XSLTPROC_FLAGS = \ --stringparam funcsynopsis.style ansi \ --stringparam man.authors.section.enabled 0 \ --stringparam man.copyright.section.enabled 0 \ - --stringparam systemd.version $(VERSION) \ + --stringparam systemd.version $(PACKAGE_VERSION) \ --path '$(builddir)/man:$(srcdir)/man' XSLT = $(if $(XSLTPROC), $(XSLTPROC), xsltproc) @@ -6640,11 +6622,11 @@ built-sources: $(BUILT_SOURCES) .PHONY: git-tag git-tag: - git tag -s "v$(VERSION)" -m "systemd $(VERSION)" + git tag -s "v$(PACKAGE_VERSION)" -m "systemd $(PACKAGE_VERSION)" .PHONY: git-tar git-tar: - git archive -o systemd-$(VERSION).tar.gz --prefix=systemd-$(VERSION)/ HEAD + git archive -o systemd-$(PACKAGE_VERSION).tar.gz --prefix=systemd-$(PACKAGE_VERSION)/ HEAD %.asc: % gpg2 --detach-sign -a -o $@ $< @@ -3318,7 +3318,7 @@ CHANGES WITH 216: like Cockpit which register web clients as PAM sessions. * timer units with at least one OnCalendar= setting will now - be started only after timer-sync.target has been + be started only after time-sync.target has been reached. This way they will not elapse before the system clock has been corrected by a local NTP client or similar. This is particular useful on RTC-less embedded diff --git a/configure.ac b/configure.ac index cf37ca6493..13e758331e 100644 --- a/configure.ac +++ b/configure.ac @@ -57,6 +57,7 @@ AS_IF([test "x$enable_largefile" = "xno"], [AC_MSG_ERROR([--disable-largefile is SET_ARCH(X86_64, x86_64*) SET_ARCH(IA32, i*86*) SET_ARCH(MIPS, mips*) +SET_ARCH(ARM, arm*) SET_ARCH(AARCH64, aarch64*) # i18n stuff for the PolicyKit policy files, heck whether intltool can be found, disable NLS otherwise @@ -327,7 +328,6 @@ AC_CHECK_DECLS([ pivot_root, name_to_handle_at, setns, - getrandom, renameat2, kcmp, keyctl, @@ -342,6 +342,13 @@ AC_CHECK_DECLS([ #include <sched.h> #include <string.h> #include <linux/loop.h> +]]) + +AC_CHECK_DECLS([getrandom], + [AC_DEFINE([USE_SYS_RANDOM_H], [], [sys/random.h is usable])], + [AC_CHECK_DECLS([getrandom], [], [], [[ +#include <sys/random.h> +]])], [[ #include <linux/random.h> ]]) @@ -398,6 +405,16 @@ AS_IF([test "x$enable_dbus" != "xno"], [ AM_CONDITIONAL(HAVE_DBUS, [test "$have_dbus" = "yes"]) # ------------------------------------------------------------------------------ +have_glib=no +AC_ARG_ENABLE(glib, AS_HELP_STRING([--disable-glib], [disable usage of glib,gobject,gio in tests])) +AS_IF([test "x$enable_glib" != "xno"], [ + PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.22.0 gobject-2.0 >= 2.22.0 gio-2.0], + [AC_DEFINE(HAVE_GLIB, 1, [Define if glib,gobject,gio are available]) have_glib=yes], + [have_glib=no]) + AS_IF([test "x$have_glib" = "xno" -a "x$enable_glib" = "xyes"], + [AC_MSG_ERROR([*** glib support requested but libraries not found])])]) + +# ------------------------------------------------------------------------------ have_utmp=yes AC_ARG_ENABLE([utmp], AS_HELP_STRING([--disable-utmp], [disable utmp/wtmp log handling]), AS_CASE("x${enableval}", @@ -1113,7 +1130,7 @@ if test "x$enable_logind" != "xno"; then have_logind=yes fi AM_CONDITIONAL(ENABLE_LOGIND, [test "$have_logind" = "yes"]) -AS_IF([test "$have_logind" = "yes"], [ AC_DEFINE(HAVE_LOGIND, [1], [Logind support available]) ]) +AS_IF([test "$have_logind" = "yes"], [ AC_DEFINE(ENABLE_LOGIND, [1], [Logind support available]) ]) AC_ARG_WITH([kill-user-processes], [AS_HELP_STRING([--without-kill-user-processes], [set logind's KillUserProcesses=no by default])]) @@ -1313,6 +1330,9 @@ AM_COND_IF(ARCH_IA32, [ AM_COND_IF(ARCH_X86_64, [ EFI_MACHINE_TYPE_NAME=x64]) +AM_COND_IF(ARCH_ARM, [ + EFI_MACHINE_TYPE_NAME=arm]) + AM_COND_IF(ARCH_AARCH64, [ EFI_MACHINE_TYPE_NAME=aa64]) @@ -1322,7 +1342,13 @@ AC_SUBST([EFI_MACHINE_TYPE_NAME]) have_gnuefi=no AC_ARG_ENABLE(gnuefi, AS_HELP_STRING([--enable-gnuefi], [enable optional gnuefi support])) AS_IF([test "x$enable_gnuefi" != "xno"], [ - AC_CHECK_HEADERS(efi/${EFI_ARCH}/efibind.h, + AC_ARG_WITH(efi-includedir, + AS_HELP_STRING([--with-efi-includedir=PATH], [path to EFI include directory]), + [EFI_INC_DIR="$withval"], [EFI_INC_DIR="/usr/include"] + ) + AC_SUBST([EFI_INC_DIR]) + + AC_CHECK_HEADERS(${EFI_INC_DIR}/efi/${EFI_ARCH}/efibind.h, [AC_DEFINE(HAVE_GNUEFI, 1, [Define if gnuefi is available]) have_gnuefi=yes], [AS_IF([test "x$enable_gnuefi" = xyes], @@ -1351,12 +1377,6 @@ AS_IF([test "x$enable_gnuefi" != "xno"], [ [AS_IF([test "x$enable_gnuefi" = xyes], [AC_MSG_ERROR([*** gnuefi support requested but files not found])], [have_gnuefi=no])]) - - AC_ARG_WITH(efi-includedir, - AS_HELP_STRING([--with-efi-includedir=PATH], [path to EFI include directory]), - [EFI_INC_DIR="$withval"], [EFI_INC_DIR="/usr/include"] - ) - AC_SUBST([EFI_INC_DIR]) ]) AM_CONDITIONAL(HAVE_GNUEFI, [test "x$have_gnuefi" = xyes]) @@ -1674,7 +1694,7 @@ AC_CONFIG_FILES([ AC_OUTPUT AC_MSG_RESULT([ - $PACKAGE_NAME $VERSION + $PACKAGE_NAME $PACKAGE_VERSION libcryptsetup: ${have_libcryptsetup} PAM: ${have_pam} @@ -1737,6 +1757,7 @@ AC_MSG_RESULT([ blkid: ${have_blkid} libmount: ${have_libmount} dbus: ${have_dbus} + glib: ${have_glib} nss-myhostname: ${have_myhostname} hwdb: ${enable_hwdb} tpm: ${have_tpm} diff --git a/hwdb/60-keyboard.hwdb b/hwdb/60-keyboard.hwdb index 795e15ddaa..c35b90707d 100644 --- a/hwdb/60-keyboard.hwdb +++ b/hwdb/60-keyboard.hwdb @@ -97,6 +97,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pn* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnGateway*:pnA0A1*:pvr* evdev:atkbd:dmi:bvn*:bvr*:bd*:svneMachines:pneMachines*E725:pvr* + KEYBOARD_KEY_86=wlan # Fn+F3 or Fn+Q for comunication key KEYBOARD_KEY_a5=help # Fn+F1 KEYBOARD_KEY_a6=setup # Fn+F2 Acer eSettings KEYBOARD_KEY_a7=battery # Fn+F3 Power Management @@ -118,6 +119,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svneMachines:pneMachines*E725:pvr* KEYBOARD_KEY_f3=prog2 # "P2" programmable button KEYBOARD_KEY_f4=prog1 # "P1" programmable button KEYBOARD_KEY_f5=presentation + KEYBOARD_KEY_f6=power # Power button KEYBOARD_KEY_f8=fn KEYBOARD_KEY_f9=prog1 # Launch NTI shadow @@ -157,6 +159,10 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*C3[01]0*:pvr* KEYBOARD_KEY_6b=fn KEYBOARD_KEY_6c=screenlock # FIXME: lock tablet device/buttons +# Travelmate P648-G2-MG +evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*P648-G2-MG*:pvr* + KEYBOARD_KEY_8a=f20 # Microphone mute button; should be micmute + # on some models this isn't brightnessup evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pn*5210*:pvr* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pn*5220*:pvr* @@ -171,6 +177,10 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire*1640:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnAOA*:pvr* KEYBOARD_KEY_a9=!switchvideomode # Fn+F5 +# Easynote models +evdev:atkbd:dmi:bvn*:bvr*:bd*:svnPackard*Bell*:pnEasynote*:pvr* + KEYBOARD_KEY_86=wlan # Fn+F3 or Fn+Q for comunication key + ########################################################### # Alienware ########################################################### @@ -304,6 +314,10 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnPrecision*:pvr* KEYBOARD_KEY_88=! # wireless switch KEYBOARD_KEY_9e=!f21 +# Dell Latitude E7* +evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude*E7*:pvr* + KEYBOARD_KEY_88=unknown # Fn-PrtScr rfkill - handled in HW + # Dell XPS evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnXPS*:pvr* KEYBOARD_KEY_8c=!unknown diff --git a/hwdb/70-touchpad.hwdb b/hwdb/70-touchpad.hwdb index 82a4b7a575..12d97de69b 100644 --- a/hwdb/70-touchpad.hwdb +++ b/hwdb/70-touchpad.hwdb @@ -53,3 +53,10 @@ touchpad:usb:v05ac* ########################################################### touchpad:usb:v056a* ID_INPUT_TOUCHPAD_INTEGRATION=external + +########################################################### +# Microsoft (Surface Type Covers) +########################################################### +touchpad:usb:v045ep07* + ID_INPUT_TOUCHPAD_INTEGRATION=internal + diff --git a/man/sd_journal_get_catalog.xml b/man/sd_journal_get_catalog.xml index 604deb4e8c..92ed0dea06 100644 --- a/man/sd_journal_get_catalog.xml +++ b/man/sd_journal_get_catalog.xml @@ -114,7 +114,7 @@ <para>Function <function>sd_journal_get_catalog()</function> is thread-agnostic and only a single thread may operate on a given <structname>sd_journal</structname> object. Function - <function>sd_journal_get_catalog_for_message_id() is thread-safe.</function></para> + <function>sd_journal_get_catalog_for_message_id()</function> is thread-safe.</para> <para>The <function>sd_journal_get_catalog()</function> and <function>sd_journal_get_catalog_for_message_id()</function> diff --git a/man/systemd.exec.xml b/man/systemd.exec.xml index fb64cd6d8e..8c4988abe7 100644 --- a/man/systemd.exec.xml +++ b/man/systemd.exec.xml @@ -352,7 +352,7 @@ assignments have no effect. Variable expansion is not performed inside the strings, however, specifier expansion is possible. The $ character has no special meaning. If you need - to assign a value containing spaces to a variable, use double + to assign a value containing spaces or the equals sign to a variable, use double quotes (") for the assignment.</para> <para>Example: diff --git a/man/systemd.netdev.xml b/man/systemd.netdev.xml index de22a6d49e..4ec672fe51 100644 --- a/man/systemd.netdev.xml +++ b/man/systemd.netdev.xml @@ -399,8 +399,15 @@ This option is compulsory.</para> </listitem> </varlistentry> + <varlistentry> + <term><varname>GVRP=</varname></term> + <listitem> + <para>The Generic VLAN Registration Protocol (GVRP) is a protocol that + allows automatic learning of VLANs on a network. A boolean. When unset, + the kernel's default setting applies.</para> + </listitem> + </varlistentry> </variablelist> - </refsect1> <refsect1> diff --git a/man/systemd.network.xml b/man/systemd.network.xml index 61bed263e5..fdf7d5caaf 100644 --- a/man/systemd.network.xml +++ b/man/systemd.network.xml @@ -809,6 +809,16 @@ <para>As in the <literal>[Network]</literal> section.</para> </listitem> </varlistentry> + <varlistentry> + <term><varname>GatewayOnlink=</varname></term> + <listitem> + <para>The <literal>GatewayOnlink</literal> option tells the kernel that it does not have + to check if the gateway is reachable directly by the current machine (i.e., the kernel does + not need to check if the gateway is attached to the local network), so that we can insert the + route in the kernel table without it being complained about. A boolean, defaults to <literal>no</literal>. + </para> + </listitem> + </varlistentry> <varlistentry> <term><varname>Destination=</varname></term> <listitem> @@ -1257,7 +1267,18 @@ <para>Sets the "cost" of sending packets of this interface. Each port in a bridge may have a different speed and the cost is used to decide which link to use. Faster interfaces - should have lower costs.</para> + should have lower costs. It is an interger value between 1 and + 65535.</para> + </listitem> + </varlistentry> + <varlistentry> + <term><varname>Priority=</varname></term> + <listitem> + <para>Sets the "priority" of sending packets on this interface. + Each port in a bridge may have a different priority which is used + to decide which link to use. Lower value means higher priority. + It is an interger value between 0 to 63. Networkd does not set any + default, meaning the kernel default value of 32 is used.</para> </listitem> </varlistentry> </variablelist> diff --git a/man/systemd.timer.xml b/man/systemd.timer.xml index 4fe140e4bc..7102d626e1 100644 --- a/man/systemd.timer.xml +++ b/man/systemd.timer.xml @@ -93,7 +93,7 @@ on <filename>timers.target</filename>, as well as <varname>Conflicts=</varname> and <varname>Before=</varname> on <filename>shutdown.target</filename> to ensure that they are stopped cleanly prior to system shutdown. Timer units with at least one <varname>OnCalendar=</varname> directive will have an additional <varname>After=</varname> - dependency on <filename>timer-sync.target</filename> to avoid being started before the system clock has been + dependency on <filename>time-sync.target</filename> to avoid being started before the system clock has been correctly set. Only timer units involved with early boot or late system shutdown should disable the <varname>DefaultDependencies=</varname> option.</para> </refsect1> @@ -1,15 +1,15 @@ # Czech translation for systemd. -# Copyright (C) 2016 systemd's author and translators. +# Copyright (C) 2016-2017 systemd's author and translators. # This file is distributed under the same license as the systemd package. -# Daniel Maixner <xskipy@gmail.com>, 2016 -# Daniel Rusek <mail@asciiwolf.com>, 2016 +# Daniel Maixner <xskipy@gmail.com>, 2016. +# Daniel Rusek <mail@asciiwolf.com>, 2016, 2017. # msgid "" msgstr "" "Project-Id-Version: systemd master\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-04-23 14:24+0200\n" -"PO-Revision-Date: 2017-02-07 18:38+0100\n" +"PO-Revision-Date: 2017-04-20 23:00+0200\n" "Last-Translator: Daniel Rusek <mail@asciiwolf.com>\n" "Language: cs\n" "MIME-Version: 1.0\n" @@ -26,36 +26,35 @@ msgstr "Odeslat heslo zpět do systému" #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:2 msgid "Authentication is required to send the entered passphrase back to the system." -msgstr "Autentizace je vyžadována pro odeslání zadaného hesla do systému." +msgstr "Pro odeslání zadaného hesla do systému je vyžadováno ověření." #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:3 msgid "Manage system services or other units" -msgstr "Správa systémových služeb nebo dalších jednotek" +msgstr "Spravovat systémové služby nebo další jednotky" #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:4 msgid "Authentication is required to manage system services or other units." -msgstr "" -"Autentizace je vyžadována pro správu systémových služeb nebo dalších jednotek." +msgstr "Pro správu systémových služeb nebo dalších jednotek je vyžadováno ověření." #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:5 msgid "Manage system service or unit files" -msgstr "Správa systémové služby nebo souborů jednotky" +msgstr "Spravovat systémové služby nebo soubory jednotek" #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:6 msgid "Authentication is required to manage system service or unit files." -msgstr "Autentizace je vyžadována pro správu systémové služby nebo souborů jednotky." +msgstr "Pro správu systémových služeb nebo souborů jednotek je vyžadováno ověření." #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:7 msgid "Set or unset system and service manager environment variables" -msgstr "Nastavení nebo rušení proměnných správce systému a služeb" +msgstr "Nastavit nebo rušit proměnné správce systému a služeb" #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:8 msgid "" "Authentication is required to set or unset system and service manager environment " "variables." msgstr "" -"Autentizace je vyžadována pro nastavení nebo rušení proměnných správce systému a " -"služeb." +"Pro nastavení nebo rušení proměnných správce systému a služeb je vyžadováno " +"ověření." #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:9 msgid "Reload the systemd state" @@ -63,53 +62,51 @@ msgstr "Znovu načíst stav systemd" #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:10 msgid "Authentication is required to reload the systemd state." -msgstr "Autentizace je vyžadována pro znovu načtení stavu systemd." +msgstr "Pro znovu načtení stavu systemd je vyžadováno ověření." #: ../src/hostname/org.freedesktop.hostname1.policy.in.h:1 msgid "Set host name" -msgstr "Nastavení názvu stroje" +msgstr "Nastavit název stroje" #: ../src/hostname/org.freedesktop.hostname1.policy.in.h:2 msgid "Authentication is required to set the local host name." -msgstr "Autentizace je vyžadována pro nastavení lokálního názvu stroje." +msgstr "Pro nastavení lokálního názvu stroje je vyžadováno ověření." #: ../src/hostname/org.freedesktop.hostname1.policy.in.h:3 msgid "Set static host name" -msgstr "Nastavení statického názvu stoje" +msgstr "Nastavit statický název stoje" #: ../src/hostname/org.freedesktop.hostname1.policy.in.h:4 msgid "" "Authentication is required to set the statically configured local host name, as " "well as the pretty host name." msgstr "" -"Autentizace je vyžadována pro nastavení staticky konfigurovaného názvu lokálního " -"stroje, stejně tak pro změnu uživatelsky přívětivého jména." +"Pro nastavení staticky konfigurovaného názvu lokálního stroje, stejně tak pro " +"změnu uživatelsky přívětivého jména je vyžadováno ověření." #: ../src/hostname/org.freedesktop.hostname1.policy.in.h:5 msgid "Set machine information" -msgstr "Nastavení informací o stroji" +msgstr "Nastavit informace o stroji" #: ../src/hostname/org.freedesktop.hostname1.policy.in.h:6 msgid "Authentication is required to set local machine information." -msgstr "Autentizace je vyžadována pro nastavení informací o stroji." +msgstr "Pro nastavení informací o stroji je vyžadováno ověření." #: ../src/import/org.freedesktop.import1.policy.in.h:1 msgid "Import a VM or container image" -msgstr "Import obrazu virtuální stroje nebo kontejneru" +msgstr "Importovat obraz virtuální stroje nebo kontejneru" #: ../src/import/org.freedesktop.import1.policy.in.h:2 msgid "Authentication is required to import a VM or container image" -msgstr "" -"Autentizace je vyžadována pro import obrazu virtuálního stroje nebo kontejneru" +msgstr "Pro import obrazu virtuálního stroje nebo kontejneru je vyžadováno ověření" #: ../src/import/org.freedesktop.import1.policy.in.h:3 msgid "Export a VM or container image" -msgstr "Export obrazu virtuálního stroje nebo kontejneru" +msgstr "Exportovat obraz virtuálního stroje nebo kontejneru" #: ../src/import/org.freedesktop.import1.policy.in.h:4 msgid "Authentication is required to export a VM or container image" -msgstr "" -"Autentizace je vyžadována pro export obrazu virtuálního stroje nebo kontejneru" +msgstr "Pro export obrazu virtuálního stroje nebo kontejneru je vyžadováno ověření" #: ../src/import/org.freedesktop.import1.policy.in.h:5 msgid "Download a VM or container image" @@ -117,24 +114,23 @@ msgstr "Stáhnout obraz virtuálního stroje nebo kontejneru" #: ../src/import/org.freedesktop.import1.policy.in.h:6 msgid "Authentication is required to download a VM or container image" -msgstr "" -"Autentizace je vyžadována pro stažení obrazu virtuálního stroje nebo kontejneru" +msgstr "Pro stažení obrazu virtuálního stroje nebo kontejneru je vyžadováno ověření" #: ../src/locale/org.freedesktop.locale1.policy.in.h:1 msgid "Set system locale" -msgstr "Nastavení lokalizace systému" +msgstr "Nastavit lokalizaci systému" #: ../src/locale/org.freedesktop.locale1.policy.in.h:2 msgid "Authentication is required to set the system locale." -msgstr "Autentizace je vyžadována pro nastavení lokalizace systému." +msgstr "Pro nastavení lokalizace systému je vyžadováno ověření." #: ../src/locale/org.freedesktop.locale1.policy.in.h:3 msgid "Set system keyboard settings" -msgstr "Nastavení systémové konfigurace klávesnice" +msgstr "Nastavit systémovou konfiguraci klávesnice" #: ../src/locale/org.freedesktop.locale1.policy.in.h:4 msgid "Authentication is required to set the system keyboard settings." -msgstr "Autentizace je vyžadována pro nastavení systémové konfigurace klávesnice." +msgstr "Pro nastavení systémové konfigurace klávesnice je vyžadováno ověření." #: ../src/login/org.freedesktop.login1.policy.in.h:1 msgid "Allow applications to inhibit system shutdown" @@ -142,7 +138,7 @@ msgstr "Povolit aplikacím zakázat vypnutí systému" #: ../src/login/org.freedesktop.login1.policy.in.h:2 msgid "Authentication is required for an application to inhibit system shutdown." -msgstr "Autentizace je vyžadována pro povolení aplikacím zakázat vypnutí systému." +msgstr "Pro povolení aplikacím zakázat vypnutí systému je vyžadováno ověření." #: ../src/login/org.freedesktop.login1.policy.in.h:3 msgid "Allow applications to delay system shutdown" @@ -150,7 +146,7 @@ msgstr "Povolit aplikacím odložit vypnutí systému" #: ../src/login/org.freedesktop.login1.policy.in.h:4 msgid "Authentication is required for an application to delay system shutdown." -msgstr "Autentizace je vyžadována pro povolení aplikacím odložit vypnutí systému." +msgstr "Pro povolení aplikacím odložit vypnutí systému je vyžadováno ověření." #: ../src/login/org.freedesktop.login1.policy.in.h:5 msgid "Allow applications to inhibit system sleep" @@ -158,7 +154,7 @@ msgstr "Povolit aplikacím zakázat uspání systému" #: ../src/login/org.freedesktop.login1.policy.in.h:6 msgid "Authentication is required for an application to inhibit system sleep." -msgstr "Autentizace je vyžadována pro povolení aplikacím zakázat uspání systému." +msgstr "Pro povolení aplikacím zakázat uspání systému je vyžadováno ověření." #: ../src/login/org.freedesktop.login1.policy.in.h:7 msgid "Allow applications to delay system sleep" @@ -166,7 +162,7 @@ msgstr "Povolit aplikacím odložit uspání systému" #: ../src/login/org.freedesktop.login1.policy.in.h:8 msgid "Authentication is required for an application to delay system sleep." -msgstr "Autentizace je vyžadována pro povolení aplikacím odložit uspání systému." +msgstr "Pro povolení aplikacím odložit uspání systému je vyžadováno ověření." #: ../src/login/org.freedesktop.login1.policy.in.h:9 msgid "Allow applications to inhibit automatic system suspend" @@ -176,8 +172,7 @@ msgstr "Povolit aplikacím zakázat automatické vypnutí systému" msgid "" "Authentication is required for an application to inhibit automatic system suspend." msgstr "" -"Autentizace je vyžadována pro povolení aplikacím zakázat automatické vypnutí " -"systému." +"Pro povolení aplikacím zakázat automatické vypnutí systému je vyžadováno ověření." #: ../src/login/org.freedesktop.login1.policy.in.h:11 msgid "Allow applications to inhibit system handling of the power key" @@ -188,8 +183,8 @@ msgid "" "Authentication is required for an application to inhibit system handling of the " "power key." msgstr "" -"Autentizace je vyžadována pro povolení aplikacím zakázat chovaní systému na " -"stisknutí vypínacího tlačítka." +"Pro povolení aplikacím zakázat chovaní systému na stisknutí vypínacího tlačítka je " +"vyžadováno ověření." #: ../src/login/org.freedesktop.login1.policy.in.h:13 msgid "Allow applications to inhibit system handling of the suspend key" @@ -200,8 +195,8 @@ msgid "" "Authentication is required for an application to inhibit system handling of the " "suspend key." msgstr "" -"Autentizace je vyžadována pro povolení aplikacím zakázat chovaní systému na " -"stisknutí uspávacího tlačítka." +"Pro povolení aplikacím zakázat chovaní systému na stisknutí uspávacího tlačítka je " +"vyžadováno ověření." #: ../src/login/org.freedesktop.login1.policy.in.h:15 msgid "Allow applications to inhibit system handling of the hibernate key" @@ -212,8 +207,8 @@ msgid "" "Authentication is required for an application to inhibit system handling of the " "hibernate key." msgstr "" -"Autentizace je vyžadována pro povolení aplikacím zakázat chovaní systému na " -"stisknutí tlačítka hibernace." +"Pro povolení aplikacím zakázat chovaní systému na stisknutí tlačítka hibernace je " +"vyžadováno ověření." #: ../src/login/org.freedesktop.login1.policy.in.h:17 msgid "Allow applications to inhibit system handling of the lid switch" @@ -224,8 +219,8 @@ msgid "" "Authentication is required for an application to inhibit system handling of the " "lid switch." msgstr "" -"Autentizace je vyžadována pro povolení aplikacím zakázat chovaní systému na " -"zavření víka." +"Pro povolení aplikacím zakázat chovaní systému na zavření víka je vyžadováno " +"ověření." #: ../src/login/org.freedesktop.login1.policy.in.h:19 msgid "Allow non-logged-in user to run programs" @@ -234,7 +229,7 @@ msgstr "Povolit nepřihlášenému uživateli spouštět programy" #: ../src/login/org.freedesktop.login1.policy.in.h:20 msgid "Explicit request is required to run programs as a non-logged-in user." msgstr "" -"Speciální požadavek je třeba ke spuštění programů jako nepřihlášený uživatel." +"Ke spuštění programů jako nepřihlášený uživatel je třeba speciální požadavek." #: ../src/login/org.freedesktop.login1.policy.in.h:21 msgid "Allow non-logged-in users to run programs" @@ -242,33 +237,33 @@ msgstr "Povolit nepřihlášeným uživatelům spouštět programy" #: ../src/login/org.freedesktop.login1.policy.in.h:22 msgid "Authentication is required to run programs as a non-logged-in user." -msgstr "Autentizace je vyžadována ke spuštění programů jako nepřihlášený uživatel." +msgstr "Ke spuštění programů jako nepřihlášený uživatel je vyžadováno ověření." #: ../src/login/org.freedesktop.login1.policy.in.h:23 msgid "Allow attaching devices to seats" -msgstr "Povolit připojování zařízení ke stanovišti" +msgstr "Povolit připojování zařízení ke stanovištím" #: ../src/login/org.freedesktop.login1.policy.in.h:24 msgid "Authentication is required for attaching a device to a seat." -msgstr "Autentizace je vyžadována pro připojování zařízení ke stanovišti." +msgstr "Pro připojování zařízení ke stanovišti je vyžadováno ověření." #: ../src/login/org.freedesktop.login1.policy.in.h:25 msgid "Flush device to seat attachments" -msgstr "Odstranění přiřazení zařízení ke stanovištím" +msgstr "Odstranit přiřazení zařízení ke stanovištím" #: ../src/login/org.freedesktop.login1.policy.in.h:26 msgid "Authentication is required for resetting how devices are attached to seats." msgstr "" -"Autentizace je vyžadována pro reset způsobu jak jsou zařízení přiřazována ke " -"stanovištím." +"Pro reset způsobu jak jsou zařízení přiřazována ke stanovištím je vyžadováno " +"ověření." #: ../src/login/org.freedesktop.login1.policy.in.h:27 msgid "Power off the system" -msgstr "Vypnutí systému" +msgstr "Vypnout systém" #: ../src/login/org.freedesktop.login1.policy.in.h:28 msgid "Authentication is required for powering off the system." -msgstr "Autentizace je vyžadována pro vypnutí systému." +msgstr "Pro vypnutí systému je vyžadováno ověření." #: ../src/login/org.freedesktop.login1.policy.in.h:29 msgid "Power off the system while other users are logged in" @@ -279,8 +274,7 @@ msgid "" "Authentication is required for powering off the system while other users are " "logged in." msgstr "" -"Autentizace je vyžadována pro vypnutí systému, když jsou přihlášeni další " -"uživatelé." +"Pro vypnutí systému, když jsou přihlášeni další uživatelé je vyžadováno ověření." #: ../src/login/org.freedesktop.login1.policy.in.h:31 msgid "Power off the system while an application asked to inhibit it" @@ -291,8 +285,7 @@ msgid "" "Authentication is required for powering off the system while an application asked " "to inhibit it." msgstr "" -"Autentizace je vyžadována pro vypnutí systému, když aplikace požádala o zákaz " -"vypnutí." +"Pro vypnutí systému, když aplikace požádala o zákaz vypnutí je vyžadováno ověření." #: ../src/login/org.freedesktop.login1.policy.in.h:33 msgid "Reboot the system" @@ -300,7 +293,7 @@ msgstr "Restartovat systém" #: ../src/login/org.freedesktop.login1.policy.in.h:34 msgid "Authentication is required for rebooting the system." -msgstr "Autentizace je vyžadována pro restartovaní systému." +msgstr "Pro restartování systému je vyžadováno ověření." #: ../src/login/org.freedesktop.login1.policy.in.h:35 msgid "Reboot the system while other users are logged in" @@ -311,8 +304,8 @@ msgid "" "Authentication is required for rebooting the system while other users are logged " "in." msgstr "" -"Autentizace je vyžadována pro restart systému, když jsou přihlášeni další " -"uživatelé." +"Pro restartování systému, když jsou přihlášeni další uživatelé je vyžadováno " +"ověření." #: ../src/login/org.freedesktop.login1.policy.in.h:37 msgid "Reboot the system while an application asked to inhibit it" @@ -323,16 +316,16 @@ msgid "" "Authentication is required for rebooting the system while an application asked to " "inhibit it." msgstr "" -"Autentizace je vyžadována pro restart systému, když aplikace požádala o zákaz " -"restartu." +"Pro restartování systému, když aplikace požádala o zákaz restartu je vyžadováno " +"ověření." #: ../src/login/org.freedesktop.login1.policy.in.h:39 msgid "Suspend the system" -msgstr "Uspání systému" +msgstr "Uspat systém" #: ../src/login/org.freedesktop.login1.policy.in.h:40 msgid "Authentication is required for suspending the system." -msgstr "Autentizace je vyžadována pro uspání systému." +msgstr "Pro uspání systému je vyžadováno ověření." #: ../src/login/org.freedesktop.login1.policy.in.h:41 msgid "Suspend the system while other users are logged in" @@ -343,7 +336,7 @@ msgid "" "Authentication is required for suspending the system while other users are logged " "in." msgstr "" -"Autentizace je vyžadována pro uspání systému, když jsou přihlášeni další uživatelé." +"Pro uspání systému, když jsou přihlášeni další uživatelé je vyžadováno ověření." #: ../src/login/org.freedesktop.login1.policy.in.h:43 msgid "Suspend the system while an application asked to inhibit it" @@ -354,16 +347,15 @@ msgid "" "Authentication is required for suspending the system while an application asked to " "inhibit it." msgstr "" -"Autentizace je vyžadována pro uspání systému, když aplikace požádala o zákaz " -"uspání." +"Pro uspání systému, když aplikace požádala o zákaz uspání je vyžadováno ověření." #: ../src/login/org.freedesktop.login1.policy.in.h:45 msgid "Hibernate the system" -msgstr "Hibernace systému" +msgstr "Hibernovat systém" #: ../src/login/org.freedesktop.login1.policy.in.h:46 msgid "Authentication is required for hibernating the system." -msgstr "Autentizace je vyžadována k hibernaci systému." +msgstr "Pro hibernaci systému je vyžadováno ověření." #: ../src/login/org.freedesktop.login1.policy.in.h:47 msgid "Hibernate the system while other users are logged in" @@ -374,37 +366,35 @@ msgid "" "Authentication is required for hibernating the system while other users are logged " "in." msgstr "" -"Autentizace je vyžadována pro hibernaci systému, když jsou přihlášeni další " -"uživatelé." +"Pro hibernaci systému, když jsou přihlášeni další uživatelé je vyžadováno ověření." #: ../src/login/org.freedesktop.login1.policy.in.h:49 msgid "Hibernate the system while an application asked to inhibit it" -msgstr "Hibernace systému, i když aplikace požádala o zákaz hibernace" +msgstr "Hibernovat systém, i když aplikace požádala o zákaz hibernace" #: ../src/login/org.freedesktop.login1.policy.in.h:50 msgid "" "Authentication is required for hibernating the system while an application asked " "to inhibit it." msgstr "" -"Autentizace je vyžadována pro hibernaci systému, když aplikace požádala o zákaz " -"hibernace." +"Pro hibernaci systému, když aplikace požádala o zákaz hibernace je vyžadováno " +"ověření." #: ../src/login/org.freedesktop.login1.policy.in.h:51 msgid "Manage active sessions, users and seats" -msgstr "Správa aktivních sezení, uživatelů a stanovišť" +msgstr "Spravovat aktivní sezení, uživatele a stanoviště" #: ../src/login/org.freedesktop.login1.policy.in.h:52 msgid "Authentication is required for managing active sessions, users and seats." -msgstr "" -"Autentizace je vyžadována pro správu aktivních sezení, uživatelů a stanovišť." +msgstr "Pro správu aktivních sezení, uživatelů a stanovišť je vyžadováno ověření." #: ../src/login/org.freedesktop.login1.policy.in.h:53 msgid "Lock or unlock active sessions" -msgstr "Zamčení nebo odemčení aktivních sezení" +msgstr "Zamknout nebo odemknout aktivní sezení" #: ../src/login/org.freedesktop.login1.policy.in.h:54 msgid "Authentication is required to lock or unlock active sessions." -msgstr "Autentizace je vyžadována pro zamčení nebo odemčení aktivních sezení." +msgstr "Pro zamčení nebo odemčení aktivních sezení je vyžadováno ověření." #: ../src/login/org.freedesktop.login1.policy.in.h:55 msgid "Allow indication to the firmware to boot to setup interface" @@ -414,8 +404,7 @@ msgstr "Povolit indikaci firmwaru bootovat instalační prostředí" msgid "" "Authentication is required to indicate to the firmware to boot to setup interface." msgstr "" -"Autentizace je vyžadována k povolení indikace firmwaru bootovat instalační " -"prostředí." +"K povolení indikace firmwaru bootovat instalační prostředí je vyžadováno ověření." #: ../src/login/org.freedesktop.login1.policy.in.h:57 msgid "Set a wall message" @@ -423,7 +412,7 @@ msgstr "Nastavit zprávu všem uživatelům" #: ../src/login/org.freedesktop.login1.policy.in.h:58 msgid "Authentication is required to set a wall message" -msgstr "Autentizace je vyžadována k nastavení zprávy všem uživatelům" +msgstr "K nastavení zprávy všem uživatelům je vyžadováno ověření" #: ../src/machine/org.freedesktop.machine1.policy.in.h:1 msgid "Log into a local container" @@ -431,7 +420,7 @@ msgstr "Přihlásit se do lokálního kontejneru" #: ../src/machine/org.freedesktop.machine1.policy.in.h:2 msgid "Authentication is required to log into a local container." -msgstr "Autentizace je vyžadována pro přihlášení do lokálního kontejneru." +msgstr "Pro přihlášení do lokálního kontejneru je vyžadováno ověření." #: ../src/machine/org.freedesktop.machine1.policy.in.h:3 msgid "Log into the local host" @@ -439,39 +428,39 @@ msgstr "Přihlásit se na lokální stroj" #: ../src/machine/org.freedesktop.machine1.policy.in.h:4 msgid "Authentication is required to log into the local host." -msgstr "Autentizace je vyžadována pro přihlášení k lokálnímu stroji." +msgstr "Pro přihlášení k lokálnímu stroji je vyžadováno ověření." #: ../src/machine/org.freedesktop.machine1.policy.in.h:5 msgid "Acquire a shell in a local container" -msgstr "Získání shellu v lokálním kontejneru" +msgstr "Získat shell v lokálním kontejneru" #: ../src/machine/org.freedesktop.machine1.policy.in.h:6 msgid "Authentication is required to acquire a shell in a local container." -msgstr "Autentizace je vyžadována pro získání shellu v lokálním kontejneru." +msgstr "Pro získání shellu v lokálním kontejneru je vyžadováno ověření." #: ../src/machine/org.freedesktop.machine1.policy.in.h:7 msgid "Acquire a shell on the local host" -msgstr "Získání shellu na lokálním stroji" +msgstr "Získat shell na lokálním stroji" #: ../src/machine/org.freedesktop.machine1.policy.in.h:8 msgid "Authentication is required to acquire a shell on the local host." -msgstr "Autentizace je vyžadována pro získání shellu na lokálním stroji." +msgstr "Pro získání shellu na lokálním stroji je vyžadováno ověření." #: ../src/machine/org.freedesktop.machine1.policy.in.h:9 msgid "Acquire a pseudo TTY in a local container" -msgstr "Získání Pseudo TTY v lokálním kontejneru" +msgstr "Získat pseudo TTY v lokálním kontejneru" #: ../src/machine/org.freedesktop.machine1.policy.in.h:10 msgid "Authentication is required to acquire a pseudo TTY in a local container." -msgstr "Autentizace je vyžadována pro získání pseudo TTY v lokálním kontejneru." +msgstr "Pro získání pseudo TTY v lokálním kontejneru je vyžadováno ověření." #: ../src/machine/org.freedesktop.machine1.policy.in.h:11 msgid "Acquire a pseudo TTY on the local host" -msgstr "Získání pseudo TTY na lokálním stroji" +msgstr "Získat pseudo TTY na lokálním stroji" #: ../src/machine/org.freedesktop.machine1.policy.in.h:12 msgid "Authentication is required to acquire a pseudo TTY on the local host." -msgstr "Autentizace je vyžadována pro získání pseudo TTY na lokálním stroji." +msgstr "Pro získání pseudo TTY na lokálním stroji je vyžadováno ověření." #: ../src/machine/org.freedesktop.machine1.policy.in.h:13 msgid "Manage local virtual machines and containers" @@ -479,8 +468,7 @@ msgstr "Spravovat lokální virtuální stroje a kontejnery" #: ../src/machine/org.freedesktop.machine1.policy.in.h:14 msgid "Authentication is required to manage local virtual machines and containers." -msgstr "" -"Autentizace je vyžadována pro správu lokálních virtuálních strojů a kontejnerů." +msgstr "Pro správu lokálních virtuálních strojů a kontejnerů je vyžadováno ověření." #: ../src/machine/org.freedesktop.machine1.policy.in.h:15 msgid "Manage local virtual machine and container images" @@ -489,7 +477,8 @@ msgstr "Spravovat lokální obrazy virtuálních strojů a kontejnerů" #: ../src/machine/org.freedesktop.machine1.policy.in.h:16 msgid "" "Authentication is required to manage local virtual machine and container images." -msgstr "Autentizace je vyžadována ke správě obrazů virtuálních strojů a kontejnerů." +msgstr "" +"Pro správu obrazů lokálních virtuálních strojů a kontejnerů je vyžadováno ověření." #: ../src/timedate/org.freedesktop.timedate1.policy.in.h:1 msgid "Set system time" @@ -497,7 +486,7 @@ msgstr "Nastavit systémový čas" #: ../src/timedate/org.freedesktop.timedate1.policy.in.h:2 msgid "Authentication is required to set the system time." -msgstr "Autentizace je vyžadována pro nastavení systémového času." +msgstr "Pro nastavení systémového času je vyžadováno ověření." #: ../src/timedate/org.freedesktop.timedate1.policy.in.h:3 msgid "Set system timezone" @@ -505,7 +494,7 @@ msgstr "Nastavit systémovou časovou zónu" #: ../src/timedate/org.freedesktop.timedate1.policy.in.h:4 msgid "Authentication is required to set the system timezone." -msgstr "Autentizace je vyžadována pro nastavení systémové časové zóny." +msgstr "Pro nastavení systémové časové zóny je vyžadováno ověření." #: ../src/timedate/org.freedesktop.timedate1.policy.in.h:5 msgid "Set RTC to local timezone or UTC" @@ -515,8 +504,8 @@ msgstr "Nastavit RTC na lokální časovou zónu nebo UTC" msgid "" "Authentication is required to control whether the RTC stores the local or UTC time." msgstr "" -"Autentizace je vyžadována pro kontrolu jestli RTC ukládá lokální časovou zónu nebo " -"UTC čas." +"Pro kontrolu jestli RTC ukládá lokální časovou zónu nebo UTC čas je vyžadováno " +"ověření." #: ../src/timedate/org.freedesktop.timedate1.policy.in.h:7 msgid "Turn network time synchronization on or off" @@ -526,32 +515,32 @@ msgstr "Zapnout nebo vypnout synchronizaci s časem ze sítě" msgid "" "Authentication is required to control whether network time synchronization shall " "be enabled." -msgstr "Autentizace je vyžadována pro kontrolu synchronizace času ze sítě." +msgstr "Pro kontrolu synchronizace času ze sítě je vyžadováno ověření." #: ../src/core/dbus-unit.c:459 msgid "Authentication is required to start '$(unit)'." -msgstr "Autentizace je vyžadována pro spuštění „$(unit)”." +msgstr "Pro spuštění „$(unit)” je vyžadováno ověření." #: ../src/core/dbus-unit.c:460 msgid "Authentication is required to stop '$(unit)'." -msgstr "Autentizace je vyžadována pro vypnutí „$(unit)”." +msgstr "Pro vypnutí „$(unit)” je vyžadováno ověření." #: ../src/core/dbus-unit.c:461 msgid "Authentication is required to reload '$(unit)'." -msgstr "Autentizace je vyžadována pro znovu načtení „$(unit)”." +msgstr "Pro znovu načtení „$(unit)” je vyžadováno ověření." #: ../src/core/dbus-unit.c:462 ../src/core/dbus-unit.c:463 msgid "Authentication is required to restart '$(unit)'." -msgstr "Autentizace je vyžadována pro restart „$(unit)”." +msgstr "Pro restart „$(unit)” je vyžadováno ověření." #: ../src/core/dbus-unit.c:570 msgid "Authentication is required to kill '$(unit)'." -msgstr "Autentizace je vyžadována pro ukončení „$(unit)”." +msgstr "Pro ukončení „$(unit)” je vyžadováno ověření." #: ../src/core/dbus-unit.c:601 msgid "Authentication is required to reset the \"failed\" state of '$(unit)'." -msgstr "Autentizace je vyžadována pro resetování chybného stavu „$(unit)”." +msgstr "Pro resetování chybného stavu „$(unit)” je vyžadováno ověření." #: ../src/core/dbus-unit.c:634 msgid "Authentication is required to set properties on '$(unit)'." -msgstr "Autentizace je vyžadována pro nastavení vlastností na „$(unit)”." +msgstr "Pro nastavení vlastností na „$(unit)” je vyžadováno ověření." diff --git a/po/pt_BR.po b/po/pt_BR.po index 2a11371f97..a087a4786b 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -1,23 +1,22 @@ # Brazilian Portuguese translation for systemd. -# Copyright (C) 2015 systemd's COPYRIGHT HOLDER +# Copyright (C) 2017 systemd's COPYRIGHT HOLDER # This file is distributed under the same license as the systemd package. -# Rafael Ferreira <rafael.f.f1@gmail.com>, 2014. # Enrico Nicoletto <liverig@gmail.com>, 2014. -# +# Rafael Fontenelle <rafaelff@gnome.org>, 2015, 2017. msgid "" msgstr "" "Project-Id-Version: systemd master\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-11-22 16:37+0100\n" -"PO-Revision-Date: 2015-01-10 12:23-0300\n" -"Last-Translator: Rafael Ferreira <rafael.f.f1@gmail.com>\n" +"Report-Msgid-Bugs-To: https://github.com/systemd/systemd/issues\n" +"POT-Creation-Date: 2016-11-17 03:29+0000\n" +"PO-Revision-Date: 2017-04-03 14:25-0200\n" +"Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n" "Language-Team: Brazilian Portuguese <gnome-pt_br-list@gnome.org>\n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Generator: Poedit 1.7.1\n" +"X-Generator: Virtaal 1.0.0-beta1\n" #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:1 msgid "Send passphrase back to system" @@ -31,15 +30,14 @@ msgstr "" "sistema." #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:3 -#, fuzzy msgid "Manage system services or other units" -msgstr "Gerenciar unidades e serviços do sistema" +msgstr "Gerenciar serviços do sistema e outras unidades" #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:4 -#, fuzzy msgid "Authentication is required to manage system services or other units." msgstr "" -"É necessária autenticação para gerenciar unidades e serviços do sistema." +"É necessária autenticação para gerenciar serviços do sistema ou outras " +"unidades." #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:5 msgid "Manage system service or unit files" @@ -52,18 +50,18 @@ msgstr "" "sistema." #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:7 -#, fuzzy msgid "Set or unset system and service manager environment variables" -msgstr "Acesso privilegiado ao gerenciador de serviço e de sistema" +msgstr "" +"Definir ou retirar definição de variáveis de ambiente de gerenciador de " +"serviço e sistema" #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:8 -#, fuzzy msgid "" "Authentication is required to set or unset system and service manager " "environment variables." msgstr "" -"É necessária autenticação para gerenciar arquivos \"unit\" e \"service\" do " -"sistema." +"É necessária autenticação para definir ou retirar definição de variáveis de " +"ambiente de gerenciador de serviço e sistema." #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:9 msgid "Reload the systemd state" @@ -103,30 +101,27 @@ msgstr "É necessária autenticação para definir informações de máquina loc #: ../src/import/org.freedesktop.import1.policy.in.h:1 msgid "Import a VM or container image" -msgstr "" +msgstr "Importar uma VM ou imagem contêiner" #: ../src/import/org.freedesktop.import1.policy.in.h:2 -#, fuzzy msgid "Authentication is required to import a VM or container image" -msgstr "É necessária autenticação para se conectar a um contêiner local." +msgstr "É necessária autenticação para importar uma VM ou imagem contêiner" #: ../src/import/org.freedesktop.import1.policy.in.h:3 msgid "Export a VM or container image" -msgstr "" +msgstr "Exportar uma VM ou imagem contêiner" #: ../src/import/org.freedesktop.import1.policy.in.h:4 -#, fuzzy msgid "Authentication is required to export a VM or container image" -msgstr "É necessária autenticação para se conectar a um contêiner local." +msgstr "É necessária autenticação para exportar uma VM ou imagem contêiner" #: ../src/import/org.freedesktop.import1.policy.in.h:5 msgid "Download a VM or container image" -msgstr "" +msgstr "Baixar uma VM ou imagem contêiner" #: ../src/import/org.freedesktop.import1.policy.in.h:6 -#, fuzzy msgid "Authentication is required to download a VM or container image" -msgstr "É necessária autenticação para se conectar a um contêiner local." +msgstr "É necessária autenticação para baixar uma VM ou imagem contêiner" #: ../src/locale/org.freedesktop.locale1.policy.in.h:1 msgid "Set system locale" @@ -254,48 +249,61 @@ msgstr "" "sistema sobre o interruptor da tela." #: ../src/login/org.freedesktop.login1.policy.in.h:19 +#| msgid "Allow non-logged-in users to run programs" +msgid "Allow non-logged-in user to run programs" +msgstr "" +"Permitir que programas sejam executados por usuário que não possui sessão" + +#: ../src/login/org.freedesktop.login1.policy.in.h:20 +#| msgid "Authentication is required to run programs as a non-logged-in user." +msgid "Explicit request is required to run programs as a non-logged-in user." +msgstr "" +"É necessária requisição explícita para executar programas como usuário sem " +"sessão aberta." + +#: ../src/login/org.freedesktop.login1.policy.in.h:21 msgid "Allow non-logged-in users to run programs" msgstr "" "Permitir que programas sejam executados por usuários que não possuem sessão" -#: ../src/login/org.freedesktop.login1.policy.in.h:20 +#: ../src/login/org.freedesktop.login1.policy.in.h:22 msgid "Authentication is required to run programs as a non-logged-in user." msgstr "" "É necessária autenticação para executar programas como usuário sem sessão " "aberta." -#: ../src/login/org.freedesktop.login1.policy.in.h:21 +#: ../src/login/org.freedesktop.login1.policy.in.h:23 msgid "Allow attaching devices to seats" msgstr "Permitir conectar dispositivos em estações" -#: ../src/login/org.freedesktop.login1.policy.in.h:22 +#: ../src/login/org.freedesktop.login1.policy.in.h:24 msgid "Authentication is required for attaching a device to a seat." msgstr "É necessária autenticação para conectar um dispositivo em uma estação." -#: ../src/login/org.freedesktop.login1.policy.in.h:23 +#: ../src/login/org.freedesktop.login1.policy.in.h:25 msgid "Flush device to seat attachments" msgstr "Liberar dispositivo para conexões da estação" -#: ../src/login/org.freedesktop.login1.policy.in.h:24 +#: ../src/login/org.freedesktop.login1.policy.in.h:26 msgid "" "Authentication is required for resetting how devices are attached to seats." msgstr "" "É necessária autenticação para redefinir a quantidade de dispositivos " "conectados na estação." -#: ../src/login/org.freedesktop.login1.policy.in.h:25 +#: ../src/login/org.freedesktop.login1.policy.in.h:27 msgid "Power off the system" msgstr "Desligar o sistema" -#: ../src/login/org.freedesktop.login1.policy.in.h:26 +#: ../src/login/org.freedesktop.login1.policy.in.h:28 msgid "Authentication is required for powering off the system." msgstr "É necessária autenticação para desligar o sistema." -#: ../src/login/org.freedesktop.login1.policy.in.h:27 +#: ../src/login/org.freedesktop.login1.policy.in.h:29 msgid "Power off the system while other users are logged in" msgstr "Desligar o sistema enquanto outros usuários estão conectados" -#: ../src/login/org.freedesktop.login1.policy.in.h:28 +#: ../src/login/org.freedesktop.login1.policy.in.h:30 msgid "" "Authentication is required for powering off the system while other users are " "logged in." @@ -303,11 +311,11 @@ msgstr "" "É necessária autenticação para desligar o sistema enquanto outros usuários " "estão conectados." -#: ../src/login/org.freedesktop.login1.policy.in.h:29 +#: ../src/login/org.freedesktop.login1.policy.in.h:31 msgid "Power off the system while an application asked to inhibit it" msgstr "Desligar o sistema enquanto um aplicativo solicitou inibição" -#: ../src/login/org.freedesktop.login1.policy.in.h:30 +#: ../src/login/org.freedesktop.login1.policy.in.h:32 msgid "" "Authentication is required for powering off the system while an application " "asked to inhibit it." @@ -315,19 +323,19 @@ msgstr "" "É necessária autenticação para desligar o sistema enquanto um aplicativo " "solicitou inibição." -#: ../src/login/org.freedesktop.login1.policy.in.h:31 +#: ../src/login/org.freedesktop.login1.policy.in.h:33 msgid "Reboot the system" msgstr "Reiniciar o sistema" -#: ../src/login/org.freedesktop.login1.policy.in.h:32 +#: ../src/login/org.freedesktop.login1.policy.in.h:34 msgid "Authentication is required for rebooting the system." msgstr "É necessária autenticação para reiniciar o sistema." -#: ../src/login/org.freedesktop.login1.policy.in.h:33 +#: ../src/login/org.freedesktop.login1.policy.in.h:35 msgid "Reboot the system while other users are logged in" msgstr "Reiniciar o sistema enquanto outros usuários estiverem conectados" -#: ../src/login/org.freedesktop.login1.policy.in.h:34 +#: ../src/login/org.freedesktop.login1.policy.in.h:36 msgid "" "Authentication is required for rebooting the system while other users are " "logged in." @@ -335,11 +343,11 @@ msgstr "" "É necessária autenticação para reiniciar o sistema enquanto outros usuários " "estiverem conectados." -#: ../src/login/org.freedesktop.login1.policy.in.h:35 +#: ../src/login/org.freedesktop.login1.policy.in.h:37 msgid "Reboot the system while an application asked to inhibit it" msgstr "Reiniciar o sistema enquanto um aplicativo solicitou inibição" -#: ../src/login/org.freedesktop.login1.policy.in.h:36 +#: ../src/login/org.freedesktop.login1.policy.in.h:38 msgid "" "Authentication is required for rebooting the system while an application " "asked to inhibit it." @@ -347,19 +355,19 @@ msgstr "" "É necessária autenticação para reiniciar o sistema enquanto um aplicativo " "solicitou inibição." -#: ../src/login/org.freedesktop.login1.policy.in.h:37 +#: ../src/login/org.freedesktop.login1.policy.in.h:39 msgid "Suspend the system" msgstr "Suspender o sistema" -#: ../src/login/org.freedesktop.login1.policy.in.h:38 +#: ../src/login/org.freedesktop.login1.policy.in.h:40 msgid "Authentication is required for suspending the system." msgstr "É necessária autenticação para suspender o sistema." -#: ../src/login/org.freedesktop.login1.policy.in.h:39 +#: ../src/login/org.freedesktop.login1.policy.in.h:41 msgid "Suspend the system while other users are logged in" msgstr "Suspender o sistema enquanto outros usuários estiverem conectados" -#: ../src/login/org.freedesktop.login1.policy.in.h:40 +#: ../src/login/org.freedesktop.login1.policy.in.h:42 msgid "" "Authentication is required for suspending the system while other users are " "logged in." @@ -367,11 +375,11 @@ msgstr "" "É necessária autenticação para suspender o sistema enquanto outros usuários " "estiverem conectados." -#: ../src/login/org.freedesktop.login1.policy.in.h:41 +#: ../src/login/org.freedesktop.login1.policy.in.h:43 msgid "Suspend the system while an application asked to inhibit it" msgstr "Suspender o sistema enquanto um aplicativo solicitou inibição" -#: ../src/login/org.freedesktop.login1.policy.in.h:42 +#: ../src/login/org.freedesktop.login1.policy.in.h:44 msgid "" "Authentication is required for suspending the system while an application " "asked to inhibit it." @@ -379,19 +387,19 @@ msgstr "" "É necessária autenticação para suspender o sistema enquanto um aplicativo " "solicitou inibição." -#: ../src/login/org.freedesktop.login1.policy.in.h:43 +#: ../src/login/org.freedesktop.login1.policy.in.h:45 msgid "Hibernate the system" msgstr "Hibernar o sistema" -#: ../src/login/org.freedesktop.login1.policy.in.h:44 +#: ../src/login/org.freedesktop.login1.policy.in.h:46 msgid "Authentication is required for hibernating the system." msgstr "É necessária autenticação para hibernar o sistema." -#: ../src/login/org.freedesktop.login1.policy.in.h:45 +#: ../src/login/org.freedesktop.login1.policy.in.h:47 msgid "Hibernate the system while other users are logged in" msgstr "Hibernar o sistema enquanto outros usuários estiverem conectados" -#: ../src/login/org.freedesktop.login1.policy.in.h:46 +#: ../src/login/org.freedesktop.login1.policy.in.h:48 msgid "" "Authentication is required for hibernating the system while other users are " "logged in." @@ -399,11 +407,11 @@ msgstr "" "É necessária autenticação para hibernar o sistema enquanto outros usuários " "estiverem conectados." -#: ../src/login/org.freedesktop.login1.policy.in.h:47 +#: ../src/login/org.freedesktop.login1.policy.in.h:49 msgid "Hibernate the system while an application asked to inhibit it" msgstr "Hibernar o sistema enquanto um aplicativo solicitou inibição" -#: ../src/login/org.freedesktop.login1.policy.in.h:48 +#: ../src/login/org.freedesktop.login1.policy.in.h:50 msgid "" "Authentication is required for hibernating the system while an application " "asked to inhibit it." @@ -411,123 +419,121 @@ msgstr "" "É necessária autenticação para hibernar o sistema enquanto um aplicativo " "solicitou inibição." -#: ../src/login/org.freedesktop.login1.policy.in.h:49 +#: ../src/login/org.freedesktop.login1.policy.in.h:51 msgid "Manage active sessions, users and seats" -msgstr "" +msgstr "Gerenciar estações, usuários e sessões ativas" -#: ../src/login/org.freedesktop.login1.policy.in.h:50 -#, fuzzy +#: ../src/login/org.freedesktop.login1.policy.in.h:52 msgid "" "Authentication is required for managing active sessions, users and seats." -msgstr "É necessária autenticação para conectar um dispositivo em uma estação." +msgstr "" +"É necessária autenticação para gerenciar estações, usuários e sessões ativas." -#: ../src/login/org.freedesktop.login1.policy.in.h:51 +#: ../src/login/org.freedesktop.login1.policy.in.h:53 msgid "Lock or unlock active sessions" -msgstr "" +msgstr "Travar ou destravar sessões ativas" -#: ../src/login/org.freedesktop.login1.policy.in.h:52 -#, fuzzy +#: ../src/login/org.freedesktop.login1.policy.in.h:54 msgid "Authentication is required to lock or unlock active sessions." -msgstr "É necessária autenticação para se conectar a um contêiner local." +msgstr "É necessária autenticação para travar ou destravar sessões ativas." -#: ../src/login/org.freedesktop.login1.policy.in.h:53 +#: ../src/login/org.freedesktop.login1.policy.in.h:55 msgid "Allow indication to the firmware to boot to setup interface" msgstr "" +"Permitir indicação para o firmware inicializar para a interface de " +"configuração" -#: ../src/login/org.freedesktop.login1.policy.in.h:54 -#, fuzzy +#: ../src/login/org.freedesktop.login1.policy.in.h:56 msgid "" "Authentication is required to indicate to the firmware to boot to setup " "interface." -msgstr "É necessária autenticação para definir nome de máquina local." +msgstr "" +"É necessária autenticação para indicar para o firmware inicializar para a " +"interface de configuração." -#: ../src/login/org.freedesktop.login1.policy.in.h:55 +#: ../src/login/org.freedesktop.login1.policy.in.h:57 msgid "Set a wall message" -msgstr "" +msgstr "Definir uma mensagem de parede" -#: ../src/login/org.freedesktop.login1.policy.in.h:56 -#, fuzzy +#: ../src/login/org.freedesktop.login1.policy.in.h:58 msgid "Authentication is required to set a wall message" -msgstr "É necessária autenticação para definir nome de máquina local." +msgstr "É necessária autenticação para definir uma mensagem de parede" #: ../src/machine/org.freedesktop.machine1.policy.in.h:1 msgid "Log into a local container" msgstr "Conectar a um contêiner local" #: ../src/machine/org.freedesktop.machine1.policy.in.h:2 -#, fuzzy msgid "Authentication is required to log into a local container." msgstr "É necessária autenticação para se conectar a um contêiner local." #: ../src/machine/org.freedesktop.machine1.policy.in.h:3 -#, fuzzy msgid "Log into the local host" -msgstr "Conectar a um contêiner local" +msgstr "Conectar a uma máquina local" #: ../src/machine/org.freedesktop.machine1.policy.in.h:4 -#, fuzzy msgid "Authentication is required to log into the local host." -msgstr "É necessária autenticação para se conectar a um contêiner local." +msgstr "É necessária autenticação para se conectar a uma máquina local." #: ../src/machine/org.freedesktop.machine1.policy.in.h:5 -#, fuzzy msgid "Acquire a shell in a local container" -msgstr "Conectar a um contêiner local" +msgstr "Adquirir uma shell em um contêiner local" #: ../src/machine/org.freedesktop.machine1.policy.in.h:6 -#, fuzzy msgid "Authentication is required to acquire a shell in a local container." -msgstr "É necessária autenticação para se conectar a um contêiner local." +msgstr "" +"É necessária autenticação para adquirir uma shell em um contêiner local." #: ../src/machine/org.freedesktop.machine1.policy.in.h:7 msgid "Acquire a shell on the local host" -msgstr "" +msgstr "Adquirir uma shell na máquina local" #: ../src/machine/org.freedesktop.machine1.policy.in.h:8 -#, fuzzy msgid "Authentication is required to acquire a shell on the local host." -msgstr "É necessária autenticação para definir nome de máquina local." +msgstr "" +"É necessária autenticação para adquirir uma shell em uma máquina local." #: ../src/machine/org.freedesktop.machine1.policy.in.h:9 -#, fuzzy msgid "Acquire a pseudo TTY in a local container" -msgstr "Conectar a um contêiner local" +msgstr "Adquirir um pseudo TTY em um contêiner local" #: ../src/machine/org.freedesktop.machine1.policy.in.h:10 -#, fuzzy msgid "" "Authentication is required to acquire a pseudo TTY in a local container." -msgstr "É necessária autenticação para se conectar a um contêiner local." +msgstr "" +"É necessária autenticação para adquirir um pseudo TTY em um contêiner local." #: ../src/machine/org.freedesktop.machine1.policy.in.h:11 msgid "Acquire a pseudo TTY on the local host" -msgstr "" +msgstr "Adquiri um pseudo TTY na máquina local" #: ../src/machine/org.freedesktop.machine1.policy.in.h:12 -#, fuzzy msgid "Authentication is required to acquire a pseudo TTY on the local host." -msgstr "É necessária autenticação para definir nome de máquina local." +msgstr "" +"É necessária autenticação para adquirir um pseudo TTY em um máquina local." #: ../src/machine/org.freedesktop.machine1.policy.in.h:13 msgid "Manage local virtual machines and containers" -msgstr "" +msgstr "Gerenciar máquinas virtuais locais e contêineres" #: ../src/machine/org.freedesktop.machine1.policy.in.h:14 -#, fuzzy msgid "" "Authentication is required to manage local virtual machines and containers." -msgstr "É necessária autenticação para definir informações de máquina local." +msgstr "" +"É necessária autenticação para gerenciar máquinas virtuais locais e " +"contêineres." #: ../src/machine/org.freedesktop.machine1.policy.in.h:15 msgid "Manage local virtual machine and container images" -msgstr "" +msgstr "Gerenciar máquinas virtuais locais e imagens contêineres" #: ../src/machine/org.freedesktop.machine1.policy.in.h:16 -#, fuzzy msgid "" "Authentication is required to manage local virtual machine and container " "images." -msgstr "É necessária autenticação para definir informações de máquina local." +msgstr "" +"É necessária autenticação para gerenciar máquinas virtuais locais e imagens " +"contêineres." #: ../src/timedate/org.freedesktop.timedate1.policy.in.h:1 msgid "Set system time" @@ -569,37 +575,31 @@ msgstr "" "É necessária autenticação para controlar se deve ser habilitada, ou não, a " "sincronização de horário através de rede." -#: ../src/core/dbus-unit.c:428 -#, fuzzy +#: ../src/core/dbus-unit.c:457 msgid "Authentication is required to start '$(unit)'." -msgstr "É necessária autenticação para definir o horário do sistema." +msgstr "É necessária autenticação para iniciar '$(unit)'." -#: ../src/core/dbus-unit.c:429 -#, fuzzy +#: ../src/core/dbus-unit.c:458 msgid "Authentication is required to stop '$(unit)'." -msgstr "É necessária autenticação para definir o horário do sistema." +msgstr "É necessária autenticação para parar '$(unit)'." -#: ../src/core/dbus-unit.c:430 -#, fuzzy +#: ../src/core/dbus-unit.c:459 msgid "Authentication is required to reload '$(unit)'." -msgstr "É necessária autenticação para recarregar o estado do sistema." +msgstr "É necessária autenticação para recarregar '$(unit)'." -#: ../src/core/dbus-unit.c:431 ../src/core/dbus-unit.c:432 -#, fuzzy +#: ../src/core/dbus-unit.c:460 ../src/core/dbus-unit.c:461 msgid "Authentication is required to restart '$(unit)'." -msgstr "É necessária autenticação para definir o horário do sistema." +msgstr "É necessária autenticação para reiniciar '$(unit)'." -#: ../src/core/dbus-unit.c:535 -#, fuzzy +#: ../src/core/dbus-unit.c:568 msgid "Authentication is required to kill '$(unit)'." -msgstr "É necessária autenticação para se conectar a um contêiner local." +msgstr "É necessária autenticação para matar '$(unit)'." -#: ../src/core/dbus-unit.c:565 -#, fuzzy +#: ../src/core/dbus-unit.c:599 msgid "Authentication is required to reset the \"failed\" state of '$(unit)'." -msgstr "É necessária autenticação para definir nome de máquina local." +msgstr "" +"É necessária autenticação para reiniciar o estado \"failed\" de '$(unit)'." -#: ../src/core/dbus-unit.c:597 -#, fuzzy +#: ../src/core/dbus-unit.c:632 msgid "Authentication is required to set properties on '$(unit)'." -msgstr "É necessária autenticação para definir o horário do sistema." +msgstr "É necessária autenticação para definir propriedades em '$(unit)'." diff --git a/src/analyze/analyze.c b/src/analyze/analyze.c index ac0470b20d..1eb2ca0ccf 100644 --- a/src/analyze/analyze.c +++ b/src/analyze/analyze.c @@ -627,7 +627,7 @@ static int analyze_plot(sd_bus *bus) { "<!-- that render these files properly but much slower are ImageMagick, -->\n" "<!-- gimp, inkscape, etc. To display the files on your system, just -->\n" "<!-- point your browser to this file. -->\n\n" - "<!-- This plot was generated by systemd-analyze version %-16.16s -->\n\n", VERSION); + "<!-- This plot was generated by systemd-analyze version %-16.16s -->\n\n", PACKAGE_VERSION); /* style sheet */ svg("<defs>\n <style type=\"text/css\">\n <![CDATA[\n" diff --git a/src/basic/blkid-util.h b/src/basic/blkid-util.h index 7aa75eb091..1b9cace040 100644 --- a/src/basic/blkid-util.h +++ b/src/basic/blkid-util.h @@ -20,7 +20,7 @@ ***/ #ifdef HAVE_BLKID -#include <blkid/blkid.h> +#include <blkid.h> #endif #include "util.h" diff --git a/src/basic/def.h b/src/basic/def.h index 200ea973c1..b1a3bc190b 100644 --- a/src/basic/def.h +++ b/src/basic/def.h @@ -67,10 +67,6 @@ .un.sun_path = "\0/org/freedesktop/plymouthd", \ } -#ifndef TTY_GID -#define TTY_GID 5 -#endif - #define NOTIFY_FD_MAX 768 #define NOTIFY_BUFFER_MAX PIPE_BUF diff --git a/src/basic/missing.h b/src/basic/missing.h index 284cbaffc0..e860fa7c2c 100644 --- a/src/basic/missing.h +++ b/src/basic/missing.h @@ -68,8 +68,6 @@ struct sockaddr_vm { }; #endif /* !HAVE_LINUX_VM_SOCKETS_H */ -#include "macro.h" - #ifndef RLIMIT_RTTIME #define RLIMIT_RTTIME 15 #endif diff --git a/src/basic/random-util.c b/src/basic/random-util.c index ad7b3eedf2..b216be579d 100644 --- a/src/basic/random-util.c +++ b/src/basic/random-util.c @@ -27,7 +27,13 @@ #include <stdint.h> #ifdef HAVE_SYS_AUXV_H -#include <sys/auxv.h> +# include <sys/auxv.h> +#endif + +#ifdef USE_SYS_RANDOM_H +# include <sys/random.h> +#else +# include <linux/random.h> #endif #include "fd-util.h" diff --git a/src/boot/bootctl.c b/src/boot/bootctl.c index 155bf278b2..3358dc32a5 100644 --- a/src/boot/bootctl.c +++ b/src/boot/bootctl.c @@ -19,7 +19,7 @@ ***/ #include <assert.h> -#include <blkid/blkid.h> +#include <blkid.h> #include <ctype.h> #include <dirent.h> #include <errno.h> diff --git a/src/boot/efi/boot.c b/src/boot/efi/boot.c index 681e783f2e..f5b39342b7 100644 --- a/src/boot/efi/boot.c +++ b/src/boot/efi/boot.c @@ -29,7 +29,7 @@ #endif /* magic string to find in the binary image */ -static const char __attribute__((used)) magic[] = "#### LoaderInfo: systemd-boot " VERSION " ####"; +static const char __attribute__((used)) magic[] = "#### LoaderInfo: systemd-boot " PACKAGE_VERSION " ####"; static const EFI_GUID global_guid = EFI_GLOBAL_VARIABLE; @@ -363,7 +363,7 @@ static VOID print_status(Config *config, CHAR16 *loaded_image_path) { uefi_call_wrapper(ST->ConOut->SetAttribute, 2, ST->ConOut, EFI_LIGHTGRAY|EFI_BACKGROUND_BLACK); uefi_call_wrapper(ST->ConOut->ClearScreen, 1, ST->ConOut); - Print(L"systemd-boot version: " VERSION "\n"); + Print(L"systemd-boot version: " PACKAGE_VERSION "\n"); Print(L"architecture: " EFI_MACHINE_TYPE_NAME "\n"); Print(L"loaded image: %s\n", loaded_image_path); Print(L"UEFI specification: %d.%02d\n", ST->Hdr.Revision >> 16, ST->Hdr.Revision & 0xffff); @@ -781,7 +781,7 @@ static BOOLEAN menu_run(Config *config, ConfigEntry **chosen_entry, CHAR16 *load break; case KEYPRESS(0, 0, 'v'): - status = PoolPrint(L"systemd-boot " VERSION " (" EFI_MACHINE_TYPE_NAME "), UEFI Specification %d.%02d, Vendor %s %d.%02d", + status = PoolPrint(L"systemd-boot " PACKAGE_VERSION " (" EFI_MACHINE_TYPE_NAME "), UEFI Specification %d.%02d, Vendor %s %d.%02d", ST->Hdr.Revision >> 16, ST->Hdr.Revision & 0xffff, ST->FirmwareVendor, ST->FirmwareRevision >> 16, ST->FirmwareRevision & 0xffff); break; @@ -1718,7 +1718,7 @@ EFI_STATUS efi_main(EFI_HANDLE image, EFI_SYSTEM_TABLE *sys_table) { InitializeLib(image, sys_table); init_usec = time_usec(); efivar_set_time_usec(L"LoaderTimeInitUSec", init_usec); - efivar_set(L"LoaderInfo", L"systemd-boot " VERSION, FALSE); + efivar_set(L"LoaderInfo", L"systemd-boot " PACKAGE_VERSION, FALSE); s = PoolPrint(L"%s %d.%02d", ST->FirmwareVendor, ST->FirmwareRevision >> 16, ST->FirmwareRevision & 0xffff); efivar_set(L"LoaderFirmwareInfo", s, FALSE); FreePool(s); diff --git a/src/boot/efi/stub.c b/src/boot/efi/stub.c index b7d5d3cdae..98730a5d3d 100644 --- a/src/boot/efi/stub.c +++ b/src/boot/efi/stub.c @@ -23,7 +23,7 @@ #include "measure.h" /* magic string to find in the binary image */ -static const char __attribute__((used)) magic[] = "#### LoaderInfo: systemd-stub " VERSION " ####"; +static const char __attribute__((used)) magic[] = "#### LoaderInfo: systemd-stub " PACKAGE_VERSION " ####"; static const EFI_GUID global_guid = EFI_GLOBAL_VARIABLE; diff --git a/src/libsystemd/sd-bus/busctl-introspect.c b/src/busctl/busctl-introspect.c index a05794941f..a05794941f 100644 --- a/src/libsystemd/sd-bus/busctl-introspect.c +++ b/src/busctl/busctl-introspect.c diff --git a/src/libsystemd/sd-bus/busctl-introspect.h b/src/busctl/busctl-introspect.h index d922e352db..d922e352db 100644 --- a/src/libsystemd/sd-bus/busctl-introspect.h +++ b/src/busctl/busctl-introspect.h diff --git a/src/libsystemd/sd-bus/busctl.c b/src/busctl/busctl.c index 9dd3828364..9dd3828364 100644 --- a/src/libsystemd/sd-bus/busctl.c +++ b/src/busctl/busctl.c diff --git a/src/core/dbus-execute.c b/src/core/dbus-execute.c index 7df4cab3f6..0454a28e12 100644 --- a/src/core/dbus-execute.c +++ b/src/core/dbus-execute.c @@ -710,7 +710,7 @@ static int property_get_bind_paths( c->bind_mounts[i].source, c->bind_mounts[i].destination, c->bind_mounts[i].ignore_enoent, - c->bind_mounts[i].recursive ? MS_REC : 0); + c->bind_mounts[i].recursive ? (uint64_t) MS_REC : (uint64_t) 0); if (r < 0) return r; } diff --git a/src/core/dbus.c b/src/core/dbus.c index 065f2d81d6..cfc045d282 100644 --- a/src/core/dbus.c +++ b/src/core/dbus.c @@ -753,13 +753,13 @@ int manager_sync_bus_names(Manager *m, sd_bus *bus) { /* If it is, determine its current owner */ r = sd_bus_get_name_creds(bus, name, SD_BUS_CREDS_UNIQUE_NAME, &creds); if (r < 0) { - log_error_errno(r, "Failed to get bus name owner %s: %m", name); + log_full_errno(r == -ENXIO ? LOG_DEBUG : LOG_ERR, r, "Failed to get bus name owner %s: %m", name); continue; } r = sd_bus_creds_get_unique_name(creds, &unique); if (r < 0) { - log_error_errno(r, "Failed to get unique name for %s: %m", name); + log_full_errno(r == -ENXIO ? LOG_DEBUG : LOG_ERR, r, "Failed to get unique name for %s: %m", name); continue; } diff --git a/src/core/execute.c b/src/core/execute.c index 29988c22ae..2056e2273c 100644 --- a/src/core/execute.c +++ b/src/core/execute.c @@ -2989,6 +2989,14 @@ int exec_spawn(Unit *unit, error_message), "EXECUTABLE=%s", command->path, NULL); + else if (r == -ENOENT && command->ignore) + log_struct_errno(LOG_INFO, r, + "MESSAGE_ID=" SD_MESSAGE_SPAWN_FAILED_STR, + LOG_UNIT_ID(unit), + LOG_UNIT_MESSAGE(unit, "Skipped spawning %s: %m", + command->path), + "EXECUTABLE=%s", command->path, + NULL); else log_struct_errno(LOG_ERR, r, "MESSAGE_ID=" SD_MESSAGE_SPAWN_FAILED_STR, diff --git a/src/core/ima-setup.c b/src/core/ima-setup.c index 94ae429f46..7b5c98a57c 100644 --- a/src/core/ima-setup.c +++ b/src/core/ima-setup.c @@ -49,6 +49,11 @@ int ima_setup(void) { return 0; } + if (access(IMA_POLICY_PATH, F_OK) < 0) { + log_debug("No IMA custom policy file "IMA_POLICY_PATH", ignoring."); + return 0; + } + imafd = open(IMA_SECFS_POLICY, O_WRONLY|O_CLOEXEC); if (imafd < 0) { log_error_errno(errno, "Failed to open the IMA kernel interface "IMA_SECFS_POLICY", ignoring: %m"); @@ -62,8 +67,7 @@ int ima_setup(void) { /* fall back to copying the policy line-by-line */ input = fopen(IMA_POLICY_PATH, "re"); if (!input) { - log_full_errno(errno == ENOENT ? LOG_DEBUG : LOG_WARNING, errno, - "Failed to open the IMA custom policy file "IMA_POLICY_PATH", ignoring: %m"); + log_warning_errno(errno, "Failed to open the IMA custom policy file "IMA_POLICY_PATH", ignoring: %m"); return 0; } diff --git a/src/core/target.c b/src/core/target.c index ff0d764fb5..2a58dd394d 100644 --- a/src/core/target.c +++ b/src/core/target.c @@ -63,6 +63,9 @@ static int target_add_default_dependencies(Target *t) { assert(t); + if (!UNIT(t)->default_dependencies) + return 0; + /* Imply ordering for requirement dependencies on target * units. Note that when the user created a contradicting * ordering manually we won't add anything in here to make @@ -93,7 +96,7 @@ static int target_load(Unit *u) { return r; /* This is a new unit? Then let's add in some extras */ - if (u->load_state == UNIT_LOADED && u->default_dependencies) { + if (u->load_state == UNIT_LOADED) { r = target_add_default_dependencies(t); if (r < 0) return r; diff --git a/src/coredump/coredump.c b/src/coredump/coredump.c index e9ada8e6db..a2c62e55a5 100644 --- a/src/coredump/coredump.c +++ b/src/coredump/coredump.c @@ -144,10 +144,10 @@ static int parse_config(void) { }; return config_parse_many_nulstr(PKGSYSCONFDIR "/coredump.conf", - CONF_PATHS_NULSTR("systemd/coredump.conf.d"), - "Coredump\0", - config_item_table_lookup, items, - false, NULL); + CONF_PATHS_NULSTR("systemd/coredump.conf.d"), + "Coredump\0", + config_item_table_lookup, items, + false, NULL); } static inline uint64_t storage_size_max(void) { diff --git a/src/gpt-auto-generator/gpt-auto-generator.c b/src/gpt-auto-generator/gpt-auto-generator.c index 80f676e477..3578e2513c 100644 --- a/src/gpt-auto-generator/gpt-auto-generator.c +++ b/src/gpt-auto-generator/gpt-auto-generator.c @@ -17,7 +17,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. ***/ -#include <blkid/blkid.h> +#include <blkid.h> #include <stdlib.h> #include <sys/statfs.h> #include <unistd.h> diff --git a/src/hwdb/hwdb.c b/src/hwdb/hwdb.c index a23b614791..a9539c812a 100644 --- a/src/hwdb/hwdb.c +++ b/src/hwdb/hwdb.c @@ -390,7 +390,7 @@ static int trie_store(struct trie *trie, const char *filename) { int64_t size; struct trie_header_f h = { .signature = HWDB_SIG, - .tool_version = htole64(atoi(VERSION)), + .tool_version = htole64(atoi(PACKAGE_VERSION)), .header_size = htole64(sizeof(struct trie_header_f)), .node_size = htole64(sizeof(struct trie_node_f)), .child_entry_size = htole64(sizeof(struct trie_child_entry_f)), diff --git a/src/journal-remote/journal-remote.c b/src/journal-remote/journal-remote.c index 202a5a3f97..36c1a32dcd 100644 --- a/src/journal-remote/journal-remote.c +++ b/src/journal-remote/journal-remote.c @@ -529,7 +529,7 @@ static int process_http_upload( log_warning("Failed to process data for connection %p", connection); if (r == -E2BIG) return mhd_respondf(connection, - r, MHD_HTTP_REQUEST_ENTITY_TOO_LARGE, + r, MHD_HTTP_PAYLOAD_TOO_LARGE, "Entry is too large, maximum is " STRINGIFY(DATA_SIZE_MAX) " bytes."); else return mhd_respondf(connection, @@ -1200,9 +1200,9 @@ static int parse_config(void) { {}}; return config_parse_many_nulstr(PKGSYSCONFDIR "/journal-remote.conf", - CONF_PATHS_NULSTR("systemd/journal-remote.conf.d"), - "Remote\0", config_item_table_lookup, items, - false, NULL); + CONF_PATHS_NULSTR("systemd/journal-remote.conf.d"), + "Remote\0", config_item_table_lookup, items, + false, NULL); } static void help(void) { diff --git a/src/journal-remote/journal-upload.c b/src/journal-remote/journal-upload.c index 371b6acc64..e0858dda7b 100644 --- a/src/journal-remote/journal-upload.c +++ b/src/journal-remote/journal-upload.c @@ -541,9 +541,9 @@ static int parse_config(void) { {}}; return config_parse_many_nulstr(PKGSYSCONFDIR "/journal-upload.conf", - CONF_PATHS_NULSTR("systemd/journal-upload.conf.d"), - "Upload\0", config_item_table_lookup, items, - false, NULL); + CONF_PATHS_NULSTR("systemd/journal-upload.conf.d"), + "Upload\0", config_item_table_lookup, items, + false, NULL); } static void help(void) { diff --git a/src/journal-remote/microhttpd-util.h b/src/journal-remote/microhttpd-util.h index 49def4f630..7f88c2cb7d 100644 --- a/src/journal-remote/microhttpd-util.h +++ b/src/journal-remote/microhttpd-util.h @@ -31,14 +31,21 @@ # define MHD_HTTP_NOT_ACCEPTABLE MHD_HTTP_METHOD_NOT_ACCEPTABLE #endif +/* Renamed in µhttpd 0.9.51 */ +#ifndef MHD_USE_PIPE_FOR_SHUTDOWN +# define MHD_USE_ITC MHD_USE_PIPE_FOR_SHUTDOWN +#endif + /* Renamed in µhttpd 0.9.52 */ #ifndef MHD_USE_EPOLL_LINUX_ONLY # define MHD_USE_EPOLL MHD_USE_EPOLL_LINUX_ONLY #endif -/* Renamed in µhttpd 0.9.51 */ -#ifndef MHD_USE_PIPE_FOR_SHUTDOWN -# define MHD_USE_ITC MHD_USE_PIPE_FOR_SHUTDOWN +/* Both the old and new names are defines, check for the new one. */ + +/* Renamed in µhttpd 0.9.53 */ +#ifndef MHD_HTTP_PAYLOAD_TOO_LARGE +# define MHD_HTTP_PAYLOAD_TOO_LARGE MHD_HTTP_REQUEST_ENTITY_TOO_LARGE #endif #if MHD_VERSION < 0x00094203 diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c index 6466e46ccc..667dfa00ff 100644 --- a/src/journal/journald-server.c +++ b/src/journal/journald-server.c @@ -1637,10 +1637,10 @@ static int server_parse_config_file(Server *s) { assert(s); return config_parse_many_nulstr(PKGSYSCONFDIR "/journald.conf", - CONF_PATHS_NULSTR("systemd/journald.conf.d"), - "Journal\0", - config_item_perf_lookup, journald_gperf_lookup, - false, s); + CONF_PATHS_NULSTR("systemd/journald.conf.d"), + "Journal\0", + config_item_perf_lookup, journald_gperf_lookup, + false, s); } static int server_dispatch_sync(sd_event_source *es, usec_t t, void *userdata) { diff --git a/src/journal/test-compress-benchmark.c b/src/journal/test-compress-benchmark.c index 6f6d71435d..4fb93ded73 100644 --- a/src/journal/test-compress-benchmark.c +++ b/src/journal/test-compress-benchmark.c @@ -30,6 +30,8 @@ typedef int (compress_t)(const void *src, uint64_t src_size, void *dst, typedef int (decompress_t)(const void *src, uint64_t src_size, void **dst, size_t *dst_alloc_size, size_t* dst_size, size_t dst_max); +#if defined(HAVE_XZ) || defined(HAVE_LZ4) + static usec_t arg_duration = 2 * USEC_PER_SEC; static size_t arg_start; @@ -151,8 +153,10 @@ static void test_compress_decompress(const char* label, const char* type, 100 - compressed * 100. / total, skipped); } +#endif int main(int argc, char *argv[]) { +#if defined(HAVE_XZ) || defined(HAVE_LZ4) const char *i; log_set_max_level(LOG_INFO); @@ -177,4 +181,7 @@ int main(int argc, char *argv[]) { #endif } return 0; +#else + return EXIT_TEST_SKIP; +#endif } diff --git a/src/journal/test-compress.c b/src/journal/test-compress.c index 44a2cf5217..92108a84b3 100644 --- a/src/journal/test-compress.c +++ b/src/journal/test-compress.c @@ -54,6 +54,7 @@ typedef int (decompress_sw_t)(const void *src, uint64_t src_size, typedef int (compress_stream_t)(int fdf, int fdt, uint64_t max_bytes); typedef int (decompress_stream_t)(int fdf, int fdt, uint64_t max_size); +#if defined(HAVE_XZ) || defined(HAVE_LZ4) static void test_compress_decompress(int compression, compress_blob_t compress, decompress_blob_t decompress, @@ -203,6 +204,7 @@ static void test_compress_stream(int compression, assert_se(unlink(pattern) == 0); assert_se(unlink(pattern2) == 0); } +#endif #ifdef HAVE_LZ4 static void test_lz4_decompress_partial(void) { @@ -247,6 +249,7 @@ static void test_lz4_decompress_partial(void) { #endif int main(int argc, char *argv[]) { +#if defined(HAVE_XZ) || defined(HAVE_LZ4) const char text[] = "text\0foofoofoofoo AAAA aaaaaaaaa ghost busters barbarbar FFF" "foofoofoofoo AAAA aaaaaaaaa ghost busters barbarbar FFF"; @@ -312,4 +315,7 @@ int main(int argc, char *argv[]) { #endif return 0; +#else + return EXIT_TEST_SKIP; +#endif } diff --git a/src/kernel-install/50-depmod.install b/src/kernel-install/50-depmod.install index 68c24bed7a..56925c8a5d 100644 --- a/src/kernel-install/50-depmod.install +++ b/src/kernel-install/50-depmod.install @@ -2,7 +2,15 @@ # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- # ex: ts=8 sw=4 sts=4 et filetype=sh -[[ $1 == "add" ]] || exit 0 [[ $2 ]] || exit 1 -exec depmod -a "$2" +case "$1" in + add) + exec depmod -a "$2" + ;; + remove) + exec rm -f /lib/modules/"$2"/modules.{alias{,.bin},builtin.bin,dep{,.bin},devname,softdep,symbols{,.bin}} + ;; + *) + exit 0 +esac diff --git a/src/libsystemd/sd-bus/test-bus-track.c b/src/libsystemd/sd-bus/test-bus-track.c index 4beb61f05a..06c6167511 100644 --- a/src/libsystemd/sd-bus/test-bus-track.c +++ b/src/libsystemd/sd-bus/test-bus-track.c @@ -17,7 +17,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. ***/ -#include <sd-bus.h> +#include "sd-bus.h" #include "macro.h" diff --git a/src/libudev/libudev.pc.in b/src/libudev/libudev.pc.in index 770c92209e..1becae45fd 100644 --- a/src/libudev/libudev.pc.in +++ b/src/libudev/libudev.pc.in @@ -12,6 +12,6 @@ includedir=@includedir@ Name: libudev Description: Library to access udev device information -Version: @VERSION@ +Version: @PACKAGE_VERSION@ Libs: -L${libdir} -ludev Cflags: -I${includedir} diff --git a/src/login/loginctl.c b/src/login/loginctl.c index 7dea5c0859..68cac4cb08 100644 --- a/src/login/loginctl.c +++ b/src/login/loginctl.c @@ -929,7 +929,7 @@ static int show_session(int argc, char *argv[], void *userdata) { _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL; _cleanup_free_ char *path = NULL; - r = get_session_path(bus, argv[1], &error, &path); + r = get_session_path(bus, argv[i], &error, &path); if (r < 0) { log_error("Failed to get session path: %s", bus_error_message(&error, r)); return r; diff --git a/src/login/logind-inhibit.c b/src/login/logind-inhibit.c index 5ca42b1ca2..1e6f383738 100644 --- a/src/login/logind-inhibit.c +++ b/src/login/logind-inhibit.c @@ -347,7 +347,7 @@ InhibitWhat manager_inhibit_what(Manager *m, InhibitMode mm) { assert(m); HASHMAP_FOREACH(i, m->inhibitors, j) - if (i->mode == mm) + if (i->mode == mm && i->started) what |= i->what; return what; @@ -388,6 +388,9 @@ bool manager_is_inhibited( assert(w > 0 && w < _INHIBIT_WHAT_MAX); HASHMAP_FOREACH(i, m->inhibitors, j) { + if (!i->started) + continue; + if (!(i->what & w)) continue; diff --git a/src/login/logind.c b/src/login/logind.c index 19bae294a4..1e2acc838b 100644 --- a/src/login/logind.c +++ b/src/login/logind.c @@ -1004,10 +1004,10 @@ static int manager_parse_config_file(Manager *m) { assert(m); return config_parse_many_nulstr(PKGSYSCONFDIR "/logind.conf", - CONF_PATHS_NULSTR("systemd/logind.conf.d"), - "Login\0", - config_item_perf_lookup, logind_gperf_lookup, - false, m); + CONF_PATHS_NULSTR("systemd/logind.conf.d"), + "Login\0", + config_item_perf_lookup, logind_gperf_lookup, + false, m); } static int manager_dispatch_reload_signal(sd_event_source *s, const struct signalfd_siginfo *si, void *userdata) { diff --git a/src/network/netdev/netdev-gperf.gperf b/src/network/netdev/netdev-gperf.gperf index 925af1c579..077fbc1d5c 100644 --- a/src/network/netdev/netdev-gperf.gperf +++ b/src/network/netdev/netdev-gperf.gperf @@ -36,6 +36,7 @@ NetDev.Kind, config_parse_netdev_kind, 0, NetDev.MTUBytes, config_parse_iec_size, 0, offsetof(NetDev, mtu) NetDev.MACAddress, config_parse_hwaddr, 0, offsetof(NetDev, mac) VLAN.Id, config_parse_vlanid, 0, offsetof(VLan, id) +VLAN.GVRP, config_parse_tristate, 0, offsetof(VLan, gvrp) MACVLAN.Mode, config_parse_macvlan_mode, 0, offsetof(MacVlan, mode) MACVTAP.Mode, config_parse_macvlan_mode, 0, offsetof(MacVlan, mode) IPVLAN.Mode, config_parse_ipvlan_mode, 0, offsetof(IPVlan, mode) diff --git a/src/network/netdev/vlan.c b/src/network/netdev/vlan.c index 28c061fa4f..718b627b2b 100644 --- a/src/network/netdev/vlan.c +++ b/src/network/netdev/vlan.c @@ -17,12 +17,14 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. ***/ +#include <linux/if_vlan.h> #include <net/if.h> #include "netdev/vlan.h" #include "vlan-util.h" static int netdev_vlan_fill_message_create(NetDev *netdev, Link *link, sd_netlink_message *req) { + struct ifla_vlan_flags flags = {}; VLan *v; int r; @@ -38,6 +40,19 @@ static int netdev_vlan_fill_message_create(NetDev *netdev, Link *link, sd_netlin if (r < 0) return log_netdev_error_errno(netdev, r, "Could not append IFLA_VLAN_ID attribute: %m"); + if (v->gvrp != -1) { + flags.mask |= VLAN_FLAG_GVRP; + + if (v->gvrp) + flags.flags |= VLAN_FLAG_GVRP; + else + flags.flags &= ~VLAN_FLAG_GVRP; + } + + r = sd_netlink_message_append_data(req, IFLA_VLAN_FLAGS, &flags, sizeof(struct ifla_vlan_flags)); + if (r < 0) + return log_netdev_error_errno(netdev, r, "Could not append IFLA_VLAN_FLAGS attribute: %m"); + return 0; } @@ -66,6 +81,7 @@ static void vlan_init(NetDev *netdev) { assert(v); v->id = VLANID_INVALID; + v->gvrp = -1; } const NetDevVTable vlan_vtable = { diff --git a/src/network/netdev/vlan.h b/src/network/netdev/vlan.h index fade899997..19a62b76c1 100644 --- a/src/network/netdev/vlan.h +++ b/src/network/netdev/vlan.h @@ -27,6 +27,8 @@ struct VLan { NetDev meta; uint16_t id; + + int gvrp; }; DEFINE_NETDEV_CAST(VLAN, VLan); diff --git a/src/network/networkd-conf.c b/src/network/networkd-conf.c index aaa27f311d..e28e018116 100644 --- a/src/network/networkd-conf.c +++ b/src/network/networkd-conf.c @@ -32,10 +32,10 @@ int manager_parse_config_file(Manager *m) { assert(m); return config_parse_many_nulstr(PKGSYSCONFDIR "/networkd.conf", - CONF_PATHS_NULSTR("systemd/networkd.conf.d"), - "DHCP\0", - config_item_perf_lookup, networkd_gperf_lookup, - false, m); + CONF_PATHS_NULSTR("systemd/networkd.conf.d"), + "DHCP\0", + config_item_perf_lookup, networkd_gperf_lookup, + false, m); } static const char* const duid_type_table[_DUID_TYPE_MAX] = { diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c index 0c1229336b..1797f144b6 100644 --- a/src/network/networkd-link.c +++ b/src/network/networkd-link.c @@ -1325,6 +1325,11 @@ static int link_set_bridge(Link *link) { if (r < 0) return log_link_error_errno(link, r, "Could not append IFLA_BRPORT_COST attribute: %m"); } + if (link->network->priority != LINK_BRIDGE_PORT_PRIORITY_INVALID) { + r = sd_netlink_message_append_u16(req, IFLA_BRPORT_PRIORITY, link->network->priority); + if (r < 0) + return log_link_error_errno(link, r, "Could not append IFLA_BRPORT_PRIORITY attribute: %m"); + } r = sd_netlink_message_close_container(req); if (r < 0) diff --git a/src/network/networkd-link.h b/src/network/networkd-link.h index e6190fbe57..010b38248a 100644 --- a/src/network/networkd-link.h +++ b/src/network/networkd-link.h @@ -33,6 +33,8 @@ #include "list.h" #include "set.h" +#define LINK_BRIDGE_PORT_PRIORITY_INVALID 128 + typedef enum LinkState { LINK_STATE_PENDING, LINK_STATE_ENSLAVING, diff --git a/src/network/networkd-network-gperf.gperf b/src/network/networkd-network-gperf.gperf index 68052ba544..abd921ee1a 100644 --- a/src/network/networkd-network-gperf.gperf +++ b/src/network/networkd-network-gperf.gperf @@ -86,6 +86,7 @@ Route.Metric, config_parse_route_priority, Route.Scope, config_parse_route_scope, 0, 0 Route.PreferredSource, config_parse_preferred_src, 0, 0 Route.Table, config_parse_route_table, 0, 0 +Route.GatewayOnlink, config_parse_gateway_onlink, 0, 0 DHCP.ClientIdentifier, config_parse_dhcp_client_identifier, 0, offsetof(Network, dhcp_client_identifier) DHCP.UseDNS, config_parse_bool, 0, offsetof(Network, dhcp_use_dns) DHCP.UseNTP, config_parse_bool, 0, offsetof(Network, dhcp_use_ntp) @@ -119,12 +120,13 @@ DHCPServer.EmitTimezone, config_parse_bool, DHCPServer.Timezone, config_parse_timezone, 0, offsetof(Network, dhcp_server_timezone) DHCPServer.PoolOffset, config_parse_uint32, 0, offsetof(Network, dhcp_server_pool_offset) DHCPServer.PoolSize, config_parse_uint32, 0, offsetof(Network, dhcp_server_pool_size) -Bridge.Cost, config_parse_unsigned, 0, offsetof(Network, cost) +Bridge.Cost, config_parse_uint32, 0, offsetof(Network, cost) Bridge.UseBPDU, config_parse_bool, 0, offsetof(Network, use_bpdu) Bridge.HairPin, config_parse_bool, 0, offsetof(Network, hairpin) Bridge.FastLeave, config_parse_bool, 0, offsetof(Network, fast_leave) Bridge.AllowPortToBeRoot, config_parse_bool, 0, offsetof(Network, allow_port_to_be_root) Bridge.UnicastFlood, config_parse_bool, 0, offsetof(Network, unicast_flood) +Bridge.Priority, config_parse_uint16, 0, offsetof(Network, priority) BridgeFDB.MACAddress, config_parse_fdb_hwaddr, 0, 0 BridgeFDB.VLANId, config_parse_fdb_vlan_id, 0, 0 BridgeVLAN.PVID, config_parse_brvlan_pvid, 0, 0 diff --git a/src/network/networkd-network.c b/src/network/networkd-network.c index fac42d8478..dd29b4ca48 100644 --- a/src/network/networkd-network.c +++ b/src/network/networkd-network.c @@ -165,6 +165,7 @@ static int network_load_one(Manager *manager, const char *filename) { network->use_bpdu = true; network->allow_port_to_be_root = true; network->unicast_flood = true; + network->priority = LINK_BRIDGE_PORT_PRIORITY_INVALID; network->lldp_mode = LLDP_MODE_ROUTERS_ONLY; diff --git a/src/network/networkd-network.h b/src/network/networkd-network.h index 4ce066a764..d6f418d521 100644 --- a/src/network/networkd-network.h +++ b/src/network/networkd-network.h @@ -163,7 +163,8 @@ struct Network { bool fast_leave; bool allow_port_to_be_root; bool unicast_flood; - unsigned cost; + uint32_t cost; + uint16_t priority; bool use_br_vlan; uint16_t pvid; diff --git a/src/network/networkd-route.c b/src/network/networkd-route.c index 570083f180..e2a5c77ed1 100644 --- a/src/network/networkd-route.c +++ b/src/network/networkd-route.c @@ -939,3 +939,44 @@ int config_parse_route_table(const char *unit, return 0; } + +int config_parse_gateway_onlink(const char *unit, + const char *filename, + unsigned line, + const char *section, + unsigned section_line, + const char *lvalue, + int ltype, + const char *rvalue, + void *data, + void *userdata) { + Network *network = userdata; + _cleanup_route_free_ Route *n = NULL; + int r; + + assert(filename); + assert(section); + assert(lvalue); + assert(rvalue); + assert(data); + + r = route_new_static(network, filename, section_line, &n); + if (r < 0) + return r; + + r = parse_boolean(rvalue); + if (r < 0) { + log_syntax(unit, LOG_ERR, filename, line, r, + "Could not parse gateway onlink \"%s\", ignoring assignment: %m", rvalue); + return 0; + } + + if (r) + n->flags |= RTNH_F_ONLINK; + else + n->flags &= ~RTNH_F_ONLINK; + + n = NULL; + + return 0; +} diff --git a/src/network/networkd-route.h b/src/network/networkd-route.h index 4ebfa0f0bd..e2446b3e92 100644 --- a/src/network/networkd-route.h +++ b/src/network/networkd-route.h @@ -75,3 +75,4 @@ int config_parse_destination(const char *unit, const char *filename, unsigned li int config_parse_route_priority(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); int config_parse_route_scope(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); int config_parse_route_table(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); +int config_parse_gateway_onlink(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c index bce26a383b..fd00d0957a 100644 --- a/src/nspawn/nspawn.c +++ b/src/nspawn/nspawn.c @@ -18,7 +18,7 @@ ***/ #ifdef HAVE_BLKID -#include <blkid/blkid.h> +#include <blkid.h> #endif #include <errno.h> #include <getopt.h> diff --git a/src/rc-local-generator/rc-local-generator.c b/src/rc-local-generator/rc-local-generator.c index b704ca3b4b..db3bf5bd21 100644 --- a/src/rc-local-generator/rc-local-generator.c +++ b/src/rc-local-generator/rc-local-generator.c @@ -28,14 +28,6 @@ #include "string-util.h" #include "util.h" -#ifndef RC_LOCAL_SCRIPT_PATH_START -#define RC_LOCAL_SCRIPT_PATH_START "/etc/rc.d/rc.local" -#endif - -#ifndef RC_LOCAL_SCRIPT_PATH_STOP -#define RC_LOCAL_SCRIPT_PATH_STOP "/sbin/halt.local" -#endif - static const char *arg_dest = "/tmp"; static int add_symlink(const char *service, const char *where) { diff --git a/src/resolve/resolved-conf.c b/src/resolve/resolved-conf.c index abf3263178..97334a0af7 100644 --- a/src/resolve/resolved-conf.c +++ b/src/resolve/resolved-conf.c @@ -233,10 +233,10 @@ int manager_parse_config_file(Manager *m) { assert(m); r = config_parse_many_nulstr(PKGSYSCONFDIR "/resolved.conf", - CONF_PATHS_NULSTR("systemd/resolved.conf.d"), - "Resolve\0", - config_item_perf_lookup, resolved_gperf_lookup, - false, m); + CONF_PATHS_NULSTR("systemd/resolved.conf.d"), + "Resolve\0", + config_item_perf_lookup, resolved_gperf_lookup, + false, m); if (r < 0) return r; diff --git a/src/resolve/resolved-dns-server.c b/src/resolve/resolved-dns-server.c index 5498f7b9cb..63cb6a5bda 100644 --- a/src/resolve/resolved-dns-server.c +++ b/src/resolve/resolved-dns-server.c @@ -17,7 +17,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. ***/ -#include <sd-messages.h> +#include "sd-messages.h" #include "alloc-util.h" #include "resolved-dns-server.h" diff --git a/src/resolve/resolved-dns-transaction.c b/src/resolve/resolved-dns-transaction.c index ff2ad9c1de..3075f62b5e 100644 --- a/src/resolve/resolved-dns-transaction.c +++ b/src/resolve/resolved-dns-transaction.c @@ -17,7 +17,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. ***/ -#include <sd-messages.h> +#include "sd-messages.h" #include "af-list.h" #include "alloc-util.h" diff --git a/src/resolve/resolved-dns-trust-anchor.c b/src/resolve/resolved-dns-trust-anchor.c index 7e9f9e5a20..dda9875063 100644 --- a/src/resolve/resolved-dns-trust-anchor.c +++ b/src/resolve/resolved-dns-trust-anchor.c @@ -17,7 +17,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. ***/ -#include <sd-messages.h> +#include "sd-messages.h" #include "alloc-util.h" #include "conf-files.h" diff --git a/src/shared/cgroup-show.c b/src/shared/cgroup-show.c index 8765cf2f49..436130edea 100644 --- a/src/shared/cgroup-show.c +++ b/src/shared/cgroup-show.c @@ -24,8 +24,6 @@ #include <stdlib.h> #include <string.h> -#include <systemd/sd-bus.h> - #include "alloc-util.h" #include "bus-error.h" #include "bus-util.h" diff --git a/src/shared/cgroup-show.h b/src/shared/cgroup-show.h index 736f0f34c8..1764f76744 100644 --- a/src/shared/cgroup-show.h +++ b/src/shared/cgroup-show.h @@ -22,7 +22,7 @@ #include <stdbool.h> #include <sys/types.h> -#include <systemd/sd-bus.h> +#include "sd-bus.h" #include "logs-show.h" #include "output-mode.h" diff --git a/src/shared/dissect-image.c b/src/shared/dissect-image.c index 1c9d21566f..163995c1e5 100644 --- a/src/shared/dissect-image.c +++ b/src/shared/dissect-image.c @@ -42,7 +42,7 @@ #include "udev-util.h" #include "xattr-util.h" -static int probe_filesystem(const char *node, char **ret_fstype) { +_unused_ static int probe_filesystem(const char *node, char **ret_fstype) { #ifdef HAVE_BLKID _cleanup_blkid_free_probe_ blkid_probe b = NULL; const char *fstype; @@ -951,7 +951,7 @@ int dissected_image_decrypt( * * = 0 → There was nothing to decrypt * > 0 → Decrypted successfully - * -ENOKEY → There's some to decrypt but no key was supplied + * -ENOKEY → There's something to decrypt but no key was supplied * -EKEYREJECTED → Passed key was not correct */ diff --git a/src/shared/sleep-config.c b/src/shared/sleep-config.c index ed31a80c8d..8c1624ff46 100644 --- a/src/shared/sleep-config.c +++ b/src/shared/sleep-config.c @@ -59,9 +59,9 @@ int parse_sleep_config(const char *verb, char ***_modes, char ***_states) { }; config_parse_many_nulstr(PKGSYSCONFDIR "/sleep.conf", - CONF_PATHS_NULSTR("systemd/sleep.conf.d"), - "Sleep\0", config_item_table_lookup, items, - false, NULL); + CONF_PATHS_NULSTR("systemd/sleep.conf.d"), + "Sleep\0", config_item_table_lookup, items, + false, NULL); if (streq(verb, "suspend")) { /* empty by default */ diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c index cb9ca9ae1e..64945121f7 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c @@ -3191,8 +3191,8 @@ static int start_unit(int argc, char *argv[], void *userdata) { return r; } +#ifdef ENABLE_LOGIND static int logind_set_wall_message(void) { -#ifdef HAVE_LOGIND _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL; sd_bus *bus; _cleanup_free_ char *m = NULL; @@ -3220,15 +3220,14 @@ static int logind_set_wall_message(void) { if (r < 0) return log_warning_errno(r, "Failed to set wall message, ignoring: %s", bus_error_message(&error, r)); - -#endif return 0; } +#endif /* Ask systemd-logind, which might grant access to unprivileged users * through PolicyKit */ static int logind_reboot(enum action a) { -#ifdef HAVE_LOGIND +#ifdef ENABLE_LOGIND _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL; const char *method, *description; sd_bus *bus; @@ -3291,7 +3290,7 @@ static int logind_reboot(enum action a) { } static int logind_check_inhibitors(enum action a) { -#ifdef HAVE_LOGIND +#ifdef ENABLE_LOGIND _cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL; _cleanup_strv_free_ char **sessions = NULL; const char *what, *who, *why, *mode; @@ -3410,7 +3409,7 @@ static int logind_check_inhibitors(enum action a) { } static int logind_prepare_firmware_setup(void) { -#ifdef HAVE_LOGIND +#ifdef ENABLE_LOGIND _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL; sd_bus *bus; int r; @@ -8281,7 +8280,7 @@ static int halt_now(enum action a) { static int logind_schedule_shutdown(void) { -#ifdef HAVE_LOGIND +#ifdef ENABLE_LOGIND _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL; char date[FORMAT_TIMESTAMP_MAX]; const char *action; @@ -8409,7 +8408,7 @@ static int runlevel_main(void) { } static int logind_cancel_shutdown(void) { -#ifdef HAVE_LOGIND +#ifdef ENABLE_LOGIND _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL; sd_bus *bus; int r; diff --git a/src/test/test-exec-util.c b/src/test/test-exec-util.c index 482b0751b9..30c92019d9 100644 --- a/src/test/test-exec-util.c +++ b/src/test/test-exec-util.c @@ -223,7 +223,7 @@ static int gather_stdout_three(int fd, void *arg) { return 0; } -const gather_stdout_callback_t const gather_stdout[] = { +const gather_stdout_callback_t gather_stdout[] = { gather_stdout_one, gather_stdout_two, gather_stdout_three, diff --git a/src/test/test-libudev.c b/src/test/test-libudev.c index e28de9b37b..0f71c18b65 100644 --- a/src/test/test-libudev.c +++ b/src/test/test-libudev.c @@ -392,7 +392,7 @@ int main(int argc, char *argv[]) { return EXIT_SUCCESS; case 'V': - printf("%s\n", VERSION); + printf("%s\n", PACKAGE_VERSION); return EXIT_SUCCESS; case 'm': diff --git a/src/test/test-udev.c b/src/test/test-udev.c index e965b4494a..c84bd8991e 100644 --- a/src/test/test-udev.c +++ b/src/test/test-udev.c @@ -88,7 +88,7 @@ int main(int argc, char *argv[]) { if (udev == NULL) return EXIT_FAILURE; - log_debug("version %s", VERSION); + log_debug("version %s", PACKAGE_VERSION); mac_selinux_init(); action = argv[1]; diff --git a/src/timesync/timesyncd-conf.c b/src/timesync/timesyncd-conf.c index bf25b112e1..99bdb55e98 100644 --- a/src/timesync/timesyncd-conf.c +++ b/src/timesync/timesyncd-conf.c @@ -99,8 +99,8 @@ int manager_parse_config_file(Manager *m) { assert(m); return config_parse_many_nulstr(PKGSYSCONFDIR "/timesyncd.conf", - CONF_PATHS_NULSTR("systemd/timesyncd.conf.d"), - "Time\0", - config_item_perf_lookup, timesyncd_gperf_lookup, - false, m); + CONF_PATHS_NULSTR("systemd/timesyncd.conf.d"), + "Time\0", + config_item_perf_lookup, timesyncd_gperf_lookup, + false, m); } diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c index 7326597b8c..ed6a9adaa6 100644 --- a/src/tmpfiles/tmpfiles.c +++ b/src/tmpfiles/tmpfiles.c @@ -973,7 +973,7 @@ static int path_set_attribute(Item *item, const char *path) { r = chattr_fd(fd, f, item->attribute_mask); if (r < 0) - log_full_errno(r == -ENOTTY ? LOG_DEBUG : LOG_WARNING, + log_full_errno(r == -ENOTTY || r == -EOPNOTSUPP ? LOG_DEBUG : LOG_WARNING, r, "Cannot set file attribute for '%s', value=0x%08x, mask=0x%08x: %m", path, item->attribute_value, item->attribute_mask); diff --git a/src/udev/scsi_id/scsi_id.c b/src/udev/scsi_id/scsi_id.c index 4655691642..eba382a82d 100644 --- a/src/udev/scsi_id/scsi_id.c +++ b/src/udev/scsi_id/scsi_id.c @@ -391,7 +391,7 @@ static int set_options(struct udev *udev, break; case 'V': - printf("%s\n", VERSION); + printf("%s\n", PACKAGE_VERSION); exit(0); case 'x': diff --git a/src/udev/udev-builtin-blkid.c b/src/udev/udev-builtin-blkid.c index 9037aa1304..6319403620 100644 --- a/src/udev/udev-builtin-blkid.c +++ b/src/udev/udev-builtin-blkid.c @@ -18,7 +18,7 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include <blkid/blkid.h> +#include <blkid.h> #include <errno.h> #include <fcntl.h> #include <getopt.h> diff --git a/src/udev/udev-builtin-input_id.c b/src/udev/udev-builtin-input_id.c index 51f364bf94..4303b2593d 100644 --- a/src/udev/udev-builtin-input_id.c +++ b/src/udev/udev-builtin-input_id.c @@ -44,6 +44,27 @@ #define LONG(x) ((x)/BITS_PER_LONG) #define test_bit(bit, array) ((array[LONG(bit)] >> OFF(bit)) & 1) +/* available as of kernel 3.11 */ +#ifndef BTN_DPAD_UP +#define BTN_DPAD_UP 0x220 +#endif /* BTN_DPAD_UP */ + +/* available as of kernel 3.13 */ +#ifndef KEY_ALS_TOGGLE +#define KEY_ALS_TOGGLE 0x230 +#endif /* KEY_ALS_TOGGLE */ + +struct range { + unsigned start; + unsigned end; +}; + +/* key code ranges above BTN_MISC (start is inclusive, stop is exclusive)*/ +static const struct range high_key_blocks[] = { + { KEY_OK, BTN_DPAD_UP }, + { KEY_ALS_TOGGLE, BTN_TRIGGER_HAPPY } +}; + static inline int abs_size_mm(const struct input_absinfo *absinfo) { /* Resolution is defined to be in units/mm for ABS_X/Y */ return (absinfo->maximum - absinfo->minimum) / absinfo->resolution; @@ -260,13 +281,16 @@ static bool test_key(struct udev_device *dev, found |= bitmask_key[i]; log_debug("test_key: checking bit block %lu for any keys; found=%i", (unsigned long)i*BITS_PER_LONG, found > 0); } - /* If there are no keys in the lower block, check the higher block */ + /* If there are no keys in the lower block, check the higher blocks */ if (!found) { - for (i = KEY_OK; i < BTN_TRIGGER_HAPPY; ++i) { - if (test_bit(i, bitmask_key)) { - log_debug("test_key: Found key %x in high block", i); - found = 1; - break; + unsigned block; + for (block = 0; block < (sizeof(high_key_blocks) / sizeof(struct range)); ++block) { + for (i = high_key_blocks[block].start; i < high_key_blocks[block].end; ++i) { + if (test_bit(i, bitmask_key)) { + log_debug("test_key: Found key %x in high block", i); + found = 1; + break; + } } } } diff --git a/src/udev/udev-builtin-keyboard.c b/src/udev/udev-builtin-keyboard.c index 09024116f2..07a2f94197 100644 --- a/src/udev/udev-builtin-keyboard.c +++ b/src/udev/udev-builtin-keyboard.c @@ -29,7 +29,7 @@ #include "string-util.h" #include "udev.h" -static const struct key *keyboard_lookup_key(const char *str, GPERF_LEN_TYPE len); +static const struct key_name *keyboard_lookup_key(const char *str, GPERF_LEN_TYPE len); #include "keyboard-keys-from-name.h" static int install_force_release(struct udev_device *dev, const unsigned *release, unsigned release_count) { @@ -76,7 +76,7 @@ static void map_keycode(int fd, const char *devnode, int scancode, const char *k unsigned key; } map; char *endptr; - const struct key *k; + const struct key_name *k; unsigned keycode_num; /* translate identifier to key code */ diff --git a/src/udev/udev-ctrl.c b/src/udev/udev-ctrl.c index dbefbbe175..92e4f8d9c0 100644 --- a/src/udev/udev-ctrl.c +++ b/src/udev/udev-ctrl.c @@ -239,7 +239,7 @@ static int ctrl_send(struct udev_ctrl *uctrl, enum udev_ctrl_msg_type type, int int err = 0; memzero(&ctrl_msg_wire, sizeof(struct udev_ctrl_msg_wire)); - strcpy(ctrl_msg_wire.version, "udev-" VERSION); + strcpy(ctrl_msg_wire.version, "udev-" PACKAGE_VERSION); ctrl_msg_wire.magic = UDEV_CTRL_MAGIC; ctrl_msg_wire.type = type; diff --git a/src/udev/udev.pc.in b/src/udev/udev.pc.in index a0c2e82d47..e384a6f7c9 100644 --- a/src/udev/udev.pc.in +++ b/src/udev/udev.pc.in @@ -1,5 +1,5 @@ Name: udev Description: udev -Version: @VERSION@ +Version: @PACKAGE_VERSION@ udevdir=@udevlibexecdir@ diff --git a/src/udev/udevadm-hwdb.c b/src/udev/udevadm-hwdb.c index 70a5fa4d7a..69b0b9025c 100644 --- a/src/udev/udevadm-hwdb.c +++ b/src/udev/udevadm-hwdb.c @@ -352,7 +352,7 @@ static int trie_store(struct trie *trie, const char *filename) { int64_t size; struct trie_header_f h = { .signature = HWDB_SIG, - .tool_version = htole64(atoi(VERSION)), + .tool_version = htole64(atoi(PACKAGE_VERSION)), .header_size = htole64(sizeof(struct trie_header_f)), .node_size = htole64(sizeof(struct trie_node_f)), .child_entry_size = htole64(sizeof(struct trie_child_entry_f)), diff --git a/src/udev/udevadm-info.c b/src/udev/udevadm-info.c index 90cdfa16c7..16b2aab0a1 100644 --- a/src/udev/udevadm-info.c +++ b/src/udev/udevadm-info.c @@ -376,7 +376,7 @@ static int uinfo(struct udev *udev, int argc, char *argv[]) { export_prefix = optarg; break; case 'V': - printf("%s\n", VERSION); + printf("%s\n", PACKAGE_VERSION); return 0; case 'h': help(); diff --git a/src/udev/udevadm-test.c b/src/udev/udevadm-test.c index 07b667f131..e8ffe2f309 100644 --- a/src/udev/udevadm-test.c +++ b/src/udev/udevadm-test.c @@ -59,7 +59,7 @@ static int adm_test(struct udev *udev, int argc, char *argv[]) { {} }; - log_debug("version %s", VERSION); + log_debug("version %s", PACKAGE_VERSION); while ((c = getopt_long(argc, argv, "a:N:h", options, NULL)) >= 0) switch (c) { diff --git a/src/udev/udevadm.c b/src/udev/udevadm.c index a6a873e5de..492b2f4c25 100644 --- a/src/udev/udevadm.c +++ b/src/udev/udevadm.c @@ -25,7 +25,7 @@ #include "udev.h" static int adm_version(struct udev *udev, int argc, char *argv[]) { - printf("%s\n", VERSION); + printf("%s\n", PACKAGE_VERSION); return 0; } diff --git a/src/udev/udevd.c b/src/udev/udevd.c index ce2ff89b85..56b8c1ec55 100644 --- a/src/udev/udevd.c +++ b/src/udev/udevd.c @@ -1492,7 +1492,7 @@ static int parse_argv(int argc, char *argv[]) { help(); return 0; case 'V': - printf("%s\n", VERSION); + printf("%s\n", PACKAGE_VERSION); return 0; case '?': return -EINVAL; @@ -1740,7 +1740,7 @@ int main(int argc, char *argv[]) { if (arg_daemonize) { pid_t pid; - log_info("starting version " VERSION); + log_info("starting version " PACKAGE_VERSION); /* connect /dev/null to stdin, stdout, stderr */ if (log_get_max_level() < LOG_DEBUG) { diff --git a/test/TEST-12-ISSUE-3171/test.sh b/test/TEST-12-ISSUE-3171/test.sh index e20f470143..c252bdfbad 100755 --- a/test/TEST-12-ISSUE-3171/test.sh +++ b/test/TEST-12-ISSUE-3171/test.sh @@ -67,23 +67,23 @@ EOL systemctl start test.socket systemctl is-active test.socket [[ "$(stat --format='%G' /run/test.socket)" == adm ]] -echo A | nc -U /run/test.socket +echo A | nc -w1 -U /run/test.socket mv $U ${U}.disabled systemctl daemon-reload systemctl is-active test.socket [[ "$(stat --format='%G' /run/test.socket)" == adm ]] -echo B | nc -U /run/test.socket && exit 1 +echo B | nc -w1 -U /run/test.socket && exit 1 mv ${U}.disabled $U systemctl daemon-reload systemctl is-active test.socket -echo C | nc -U /run/test.socket && exit 1 +echo C | nc -w1 -U /run/test.socket && exit 1 [[ "$(stat --format='%G' /run/test.socket)" == adm ]] systemctl restart test.socket systemctl is-active test.socket -echo D | nc -U /run/test.socket +echo D | nc -w1 -U /run/test.socket [[ "$(stat --format='%G' /run/test.socket)" == adm ]] diff --git a/test/networkd-test.py b/test/networkd-test.py index e0dddeb053..eee8b65ec0 100755 --- a/test/networkd-test.py +++ b/test/networkd-test.py @@ -96,10 +96,20 @@ class NetworkdTestingUtilities: dropin_path = os.path.join(dropin_dir, "%s.conf" % dropin_name) os.makedirs(dropin_dir, exist_ok=True) + self.addCleanup(os.rmdir, dropin_dir) with open(dropin_path, 'w') as dropin: dropin.write(contents) self.addCleanup(os.remove, dropin_path) + def read_attr(self, link, attribute): + """Read a link attributed from the sysfs.""" + # Note we we don't want to check if interface `link' is managed, we + # want to evaluate link variable and pass the value of the link to + # assert_link_states e.g. eth0=managed. + self.assert_link_states(**{link:'managed'}) + with open(os.path.join('/sys/class/net', link, attribute)) as f: + return f.readline().strip() + def assert_link_states(self, **kwargs): """Match networkctl link states to the given ones. @@ -140,6 +150,74 @@ class NetworkdTestingUtilities: self.fail("Missing links in status output: %s" % interfaces) +class BridgeTest(NetworkdTestingUtilities, unittest.TestCase): + """Provide common methods for testing networkd against servers.""" + + def setUp(self): + self.write_network('port1.netdev', '''\ +[NetDev] +Name=port1 +Kind=dummy +MACAddress=12:34:56:78:9a:bc''') + self.write_network('port2.netdev', '''\ +[NetDev] +Name=port2 +Kind=dummy +MACAddress=12:34:56:78:9a:bd''') + self.write_network('mybridge.netdev', '''\ +[NetDev] +Name=mybridge +Kind=bridge''') + self.write_network('port1.network', '''\ +[Match] +Name=port1 +[Network] +Bridge=mybridge''') + self.write_network('port2.network', '''\ +[Match] +Name=port2 +[Network] +Bridge=mybridge''') + self.write_network('mybridge.network', '''\ +[Match] +Name=mybridge +[Network] +DNS=192.168.250.1 +Address=192.168.250.33/24 +Gateway=192.168.250.1''') + subprocess.check_call(['systemctl', 'start', 'systemd-networkd']) + + def tearDown(self): + subprocess.check_call(['systemctl', 'stop', 'systemd-networkd']) + subprocess.check_call(['ip', 'link', 'del', 'mybridge']) + subprocess.check_call(['ip', 'link', 'del', 'port1']) + subprocess.check_call(['ip', 'link', 'del', 'port2']) + + def test_bridge_init(self): + self.assert_link_states( + port1='managed', + port2='managed', + mybridge='managed') + + def test_bridge_port_priority(self): + self.assertEqual(self.read_attr('port1', 'brport/priority'), '32') + self.write_network_dropin('port1.network', 'priority', '''\ +[Bridge] +Priority=28 +''') + subprocess.check_call(['systemctl', 'restart', 'systemd-networkd']) + self.assertEqual(self.read_attr('port1', 'brport/priority'), '28') + + def test_bridge_port_priority_set_zero(self): + """It should be possible to set the bridge port priority to 0""" + self.assertEqual(self.read_attr('port2', 'brport/priority'), '32') + self.write_network_dropin('port2.network', 'priority', '''\ +[Bridge] +Priority=0 +''') + subprocess.check_call(['systemctl', 'restart', 'systemd-networkd']) + self.assertEqual(self.read_attr('port2', 'brport/priority'), '0') + class ClientTestBase(NetworkdTestingUtilities): """Provide common methods for testing networkd against servers.""" diff --git a/units/systemd-journald.service.in b/units/systemd-journald.service.in index 64253f59d4..66b7c6a48e 100644 --- a/units/systemd-journald.service.in +++ b/units/systemd-journald.service.in @@ -19,7 +19,6 @@ Sockets=systemd-journald.socket systemd-journald-dev-log.socket systemd-journald ExecStart=@rootlibexecdir@/systemd-journald Restart=always RestartSec=0 -NotifyAccess=all StandardOutput=null WatchdogSec=3min FileDescriptorStoreMax=1024 diff --git a/units/systemd-networkd.service.m4.in b/units/systemd-networkd.service.m4.in index 5811b00819..15e6ad99d8 100644 --- a/units/systemd-networkd.service.m4.in +++ b/units/systemd-networkd.service.m4.in @@ -42,6 +42,7 @@ ReadWritePaths=/run/systemd [Install] WantedBy=multi-user.target Also=systemd-networkd.socket +Alias=dbus-org.freedesktop.network1.service # We want to enable systemd-networkd-wait-online.service whenever this service # is enabled. systemd-networkd-wait-online.service has diff --git a/units/systemd-resolved.service.m4.in b/units/systemd-resolved.service.m4.in index 70491e0751..6c22893ed7 100644 --- a/units/systemd-resolved.service.m4.in +++ b/units/systemd-resolved.service.m4.in @@ -12,6 +12,8 @@ Documentation=http://www.freedesktop.org/wiki/Software/systemd/resolved Documentation=http://www.freedesktop.org/wiki/Software/systemd/writing-network-configuration-managers Documentation=http://www.freedesktop.org/wiki/Software/systemd/writing-resolver-clients After=systemd-networkd.service network.target +Before=network-online.target nss-lookup.target +Wants=nss-lookup.target # On kdbus systems we pull in the busname explicitly, because it # carries policy that allows the daemon to acquire its name. |