diff --git a/.gitlab-ci/run-test.sh b/.gitlab-ci/run-test.sh index 18038304f8..c8c26f0815 100755 --- a/.gitlab-ci/run-test.sh +++ b/.gitlab-ci/run-test.sh @@ -2,6 +2,8 @@ set -ex +export PAGER=cat + IS_FEDORA=0 IS_CENTOS=0 IS_ALPINE=0 diff --git a/Makefile.am b/Makefile.am index 60a171f528..a9f028dcf9 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1691,7 +1691,6 @@ libnm_lib_h_pub_real = \ src/libnm-client-public/nm-object.h \ src/libnm-client-public/nm-remote-connection.h \ src/libnm-client-public/nm-secret-agent-old.h \ - src/libnm-client-public/nm-types.h \ src/libnm-client-public/nm-vpn-connection.h \ src/libnm-client-public/nm-vpn-editor.h \ src/libnm-client-public/nm-vpn-plugin-old.h \ @@ -2329,12 +2328,8 @@ src_libnm_systemd_core_libnm_systemd_core_la_libadd = \ src_libnm_systemd_core_libnm_systemd_core_la_SOURCES = \ src/libnm-systemd-core/nm-default-systemd-core.h \ - src/libnm-systemd-core/nm-sd-utils-core.c \ - src/libnm-systemd-core/nm-sd-utils-core.h \ src/libnm-systemd-core/nm-sd.c \ src/libnm-systemd-core/nm-sd.h \ - src/libnm-systemd-core/nm-sd-utils-dhcp.h \ - src/libnm-systemd-core/nm-sd-utils-dhcp.c \ src/libnm-systemd-core/sd-adapt-core/condition.h \ src/libnm-systemd-core/sd-adapt-core/conf-parser.h \ src/libnm-systemd-core/sd-adapt-core/device-util.h \ @@ -2345,16 +2340,8 @@ src_libnm_systemd_core_libnm_systemd_core_la_SOURCES = \ src/libnm-systemd-core/sd-adapt-core/sd-daemon.h \ src/libnm-systemd-core/sd-adapt-core/sd-device.h \ src/libnm-systemd-core/sd-adapt-core/udev-util.h \ - src/libnm-systemd-core/src/libsystemd-network/arp-util.c \ - src/libnm-systemd-core/src/libsystemd-network/arp-util.h \ src/libnm-systemd-core/src/libsystemd-network/dhcp-identifier.c \ src/libnm-systemd-core/src/libsystemd-network/dhcp-identifier.h \ - src/libnm-systemd-core/src/libsystemd-network/dhcp-internal.h \ - src/libnm-systemd-core/src/libsystemd-network/dhcp-lease-internal.h \ - src/libnm-systemd-core/src/libsystemd-network/dhcp-network.c \ - src/libnm-systemd-core/src/libsystemd-network/dhcp-option.c \ - src/libnm-systemd-core/src/libsystemd-network/dhcp-packet.c \ - src/libnm-systemd-core/src/libsystemd-network/dhcp-protocol.h \ src/libnm-systemd-core/src/libsystemd-network/dhcp6-internal.h \ src/libnm-systemd-core/src/libsystemd-network/dhcp6-lease-internal.h \ src/libnm-systemd-core/src/libsystemd-network/dhcp6-network.c \ @@ -2369,10 +2356,6 @@ src_libnm_systemd_core_libnm_systemd_core_la_SOURCES = \ src/libnm-systemd-core/src/libsystemd-network/lldp-rx-internal.h \ src/libnm-systemd-core/src/libsystemd-network/network-common.c \ src/libnm-systemd-core/src/libsystemd-network/network-common.h \ - src/libnm-systemd-core/src/libsystemd-network/network-internal.c \ - src/libnm-systemd-core/src/libsystemd-network/network-internal.h \ - src/libnm-systemd-core/src/libsystemd-network/sd-dhcp-client.c \ - src/libnm-systemd-core/src/libsystemd-network/sd-dhcp-lease.c \ src/libnm-systemd-core/src/libsystemd-network/sd-dhcp6-client.c \ src/libnm-systemd-core/src/libsystemd-network/sd-dhcp6-lease.c \ src/libnm-systemd-core/src/libsystemd-network/sd-lldp-rx.c \ @@ -2384,9 +2367,6 @@ src_libnm_systemd_core_libnm_systemd_core_la_SOURCES = \ src/libnm-systemd-core/src/libsystemd/sd-id128/id128-util.h \ src/libnm-systemd-core/src/libsystemd/sd-id128/sd-id128.c \ src/libnm-systemd-core/src/systemd/_sd-common.h \ - src/libnm-systemd-core/src/systemd/sd-dhcp-client.h \ - src/libnm-systemd-core/src/systemd/sd-dhcp-lease.h \ - src/libnm-systemd-core/src/systemd/sd-dhcp-option.h \ src/libnm-systemd-core/src/systemd/sd-dhcp6-client.h \ src/libnm-systemd-core/src/systemd/sd-dhcp6-lease.h \ src/libnm-systemd-core/src/systemd/sd-dhcp6-option.h \ @@ -2547,8 +2527,6 @@ src_core_libNetworkManager_la_SOURCES = \ src/core/dns/nm-dns-dnsmasq.h \ src/core/dns/nm-dns-systemd-resolved.c \ src/core/dns/nm-dns-systemd-resolved.h \ - src/core/dns/nm-dns-unbound.c \ - src/core/dns/nm-dns-unbound.h \ \ src/core/dnsmasq/nm-dnsmasq-manager.c \ src/core/dnsmasq/nm-dnsmasq-manager.h \ @@ -5337,6 +5315,7 @@ EXTRA_DIST += \ src/tests/client/test-client.check-on-disk/test_002.expected \ src/tests/client/test-client.check-on-disk/test_003.expected \ src/tests/client/test-client.check-on-disk/test_004.expected \ + src/tests/client/test-client.check-on-disk/test_offline.expected \ \ src/tests/client/meson.build \ $(NULL) diff --git a/NEWS b/NEWS index 8aae2324dc..b01faa063c 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,22 @@ +============================================= +NetworkManager-1.40 +Overview of changes since NetworkManager-1.38 +============================================= + +This is a snapshot of NetworkManager development. The API is +subject to change and not guaranteed to be compatible with +the later release. +USE AT YOUR OWN RISK. NOT RECOMMENDED FOR PRODUCTION USE! + +* Drop unused, internal systemd DHCPv4 client. This is long + replaced by nettools' n-dhcp4 implementation. +* The nmcli command now supports --offline argument with "add" and + "modify" commands, allowing operation on keyfile-formatted connection + profiles without the service running (e.g. during system provisioning). +* The device state file /run/NetworkManager/devices/$ifindex now has + new sections [dhcp4] and [dhcp6] containing the DHCP options for the + current lease. + ============================================= NetworkManager-1.38 Overview of changes since NetworkManager-1.36 diff --git a/config.h.meson b/config.h.meson index 7d1feb53ad..7337165082 100644 --- a/config.h.meson +++ b/config.h.meson @@ -13,9 +13,6 @@ /* Define to path of dnsmasq binary */ #mesondefine DNSMASQ_PATH -/* Define to path of unbound dnssec-trigger-script */ -#mesondefine DNSSEC_TRIGGER_PATH - /* Gettext package */ #mesondefine GETTEXT_PACKAGE diff --git a/configure.ac b/configure.ac index 09c69720c3..8e00da68b0 100644 --- a/configure.ac +++ b/configure.ac @@ -7,8 +7,8 @@ dnl - add corresponding NM_VERSION_x_y_z macros in dnl "shared/nm-version-macros.h.in" dnl - update number in meson.build m4_define([nm_major_version], [1]) -m4_define([nm_minor_version], [38]) -m4_define([nm_micro_version], [0]) +m4_define([nm_minor_version], [39]) +m4_define([nm_micro_version], [4]) m4_define([nm_version], [nm_major_version.nm_minor_version.nm_micro_version]) @@ -306,11 +306,12 @@ AC_ARG_WITH(udev-dir, [Absolute path of the udev base directory. Set to 'no' not to install the udev rules]), [], [with_udev_dir="yes"]) if test "$with_udev_dir" != 'no'; then - if test "$with_udev_dir" != 'yes' && printf '%s' "$with_udev_dir" | grep -v -q '^/'; then - AC_MSG_ERROR([--with-udev-dir must be an absolute path or 'yes' or 'no'. Instead it is '$with_udev_dir']) - fi - if test "$with_udev_dir" = 'yes'; then - with_udev_dir="\$(prefix)/lib/udev" + if test "$with_udev_dir" = 'yes' -o "$with_udev_dir" = "" ; then + with_udev_dir="\${prefix}/lib/udev" + else + if printf '%s' "$with_udev_dir" | grep -v -q '^/'; then + AC_MSG_ERROR([--with-udev-dir must be an absolute path or 'yes' or 'no'. Instead it is '$with_udev_dir']) + fi fi UDEV_DIR="$with_udev_dir" AC_SUBST(UDEV_DIR) @@ -745,7 +746,6 @@ AC_SUBST(GLIB_MKENUMS) AC_ARG_WITH(dbus-sys-dir, AS_HELP_STRING([--with-dbus-sys-dir=DIR], [where D-BUS system.d directory is])) - if test -n "$with_dbus_sys_dir" ; then DBUS_SYS_DIR="$with_dbus_sys_dir" else @@ -1006,18 +1006,6 @@ fi AC_DEFINE_UNQUOTED(DNSMASQ_PATH, "$DNSMASQ_PATH", [Define to path of dnsmasq binary]) AC_SUBST(DNSMASQ_PATH) -# dnssec-trigger-script path -AC_ARG_WITH(dnssec_trigger, - AS_HELP_STRING([--with-dnssec-trigger=/path/to/dnssec-trigger-script], [path to unbound dnssec-trigger-script])) -if test "x${with_dnssec_trigger}" = x; then - AC_PATH_PROG(DNSSEC_TRIGGER_PATH, dnssec-trigger-script, /usr/libexec/dnssec-trigger-script, - /usr/local/libexec:/usr/local/lib:/usr/local/lib/dnssec-trigger:/usr/libexec:/usr/lib:/usr/lib/dnssec-trigger) -else - DNSSEC_TRIGGER_PATH="$with_dnssec_trigger" -fi -AC_DEFINE_UNQUOTED(DNSSEC_TRIGGER_PATH, "$DNSSEC_TRIGGER_PATH", [Define to path of unbound dnssec-trigger-script]) -AC_SUBST(DNSSEC_TRIGGER_PATH) - # system CA certificates path AC_ARG_WITH(system-ca-path, AS_HELP_STRING([--with-system-ca-path=/path/to/ssl/certs], [path to system CA certificates])) @@ -1374,8 +1362,10 @@ echo " exec_prefix: $exec_prefix" echo " sysconfdir: $sysconfdir" echo " localstatedir: $localstatedir" echo " runstatedir: $runstatedir" +echo " datarootdir: $datarootdir" echo " datadir: $datadir" echo " systemdunitdir: $with_systemdsystemunitdir" +echo " udev-dir: $with_udev_dir" echo " nmbinary: $nmbinary" echo " nmconfdir: $nmconfdir" echo " nmlibdir: $nmlibdir" @@ -1383,6 +1373,7 @@ echo " nmdatadir: $nmdatadir" echo " nmstatedir: $nmstatedir" echo " nmrundir: $nmrundir" echo " system-ca-path: $with_system_ca_path" +echo " dbus-sys-dir: $DBUS_SYS_DIR" echo echo "Platform:" diff --git a/contrib/fedora/rpm/NetworkManager.spec b/contrib/fedora/rpm/NetworkManager.spec index 50d5d31ae8..779b71ba2a 100644 --- a/contrib/fedora/rpm/NetworkManager.spec +++ b/contrib/fedora/rpm/NetworkManager.spec @@ -13,8 +13,8 @@ %global glib2_version %(pkg-config --modversion glib-2.0 2>/dev/null || echo bad) %global epoch_version 1 -%global rpm_version __VERSION__ %global real_version __VERSION__ +%global rpm_version %{real_version} %global release_version __RELEASE_VERSION__ %global snapshot __SNAPSHOT__ %global git_sha __COMMIT__ diff --git a/contrib/fedora/rpm/release.sh b/contrib/fedora/rpm/release.sh index 9b2ba5ea8c..e653509869 100755 --- a/contrib/fedora/rpm/release.sh +++ b/contrib/fedora/rpm/release.sh @@ -548,9 +548,13 @@ done do_command git push "$ORIGIN" "${BRANCHES[@]}" || die "failed to to push branches ${BRANCHES[@]} to $ORIGIN" +FAIL=0 for r in "${RELEASE_FILES[@]}"; do - do_command ssh master.gnome.org ftpadmin install --unattended "$r" || die "ftpadmin install failed" + do_command ssh master.gnome.org ftpadmin install --unattended "$r" || FAIL=1 done +if [ "$FAIL" = 1 ]; then + die "ftpadmin install failed. This was the last step. Invoke the command manually" +fi CLEANUP_CHECKOUT_BRANCH= if [ "$DRY_RUN" = 0 ]; then diff --git a/contrib/fedora/utils/makerepo.sh b/contrib/fedora/utils/makerepo.sh index 7f471f75c6..47778b405b 100755 --- a/contrib/fedora/utils/makerepo.sh +++ b/contrib/fedora/utils/makerepo.sh @@ -70,7 +70,7 @@ git_remote_add_gnome() { } git_remote_add_github() { - git remote add "${2-origin}" "git://github.com/$1.git" + git remote add "${2-origin}" "https://github.com/$1.git" git remote 'set-url' --push "${2-origin}" "git@github.com:$1.git" } @@ -319,16 +319,25 @@ MAKEREPO_GIT_IGNORE_LAST="makerepo.gitignore.last-$CURRENT_BRANCH" get_local_mirror() { local URL="$1" + local DIRNAME + local FULLNAME if [[ -z "$URL" ]]; then return fi - local DIRNAME="$(echo $URL.git | sed -e 's#^.*/\([^/]\+\)$#\1#' -e 's/\(.*\)\.git$/\1/')" - local FULLNAME="$srcdir/.git/.makerepo-${DIRNAME}.git" - [[ -n "$NO_REMOTE" ]] && return + DIRNAME="${URL##*/}" + DIRNAME="${DIRNAME%.git}" + FULLNAME="$srcdir/.git/.makerepo-${DIRNAME}.git" + + if [ ! -d "$FULLNAME" ] && [ -d "$FULLNAME.git" ]; then + # due to a bug, old versions of the script might have created "*.git.git/" directories. + # rename. + mv "$FULLNAME.git" "$FULLNAME" + fi + if [[ ! -d "$FULLNAME" ]]; then if [[ -f "$FULLNAME" ]]; then # create a file with name $FULLNAME, to suppress local mirroring diff --git a/contrib/scripts/nm-in-container.d/data-nm-env-prepare.sh b/contrib/scripts/nm-in-container.d/data-nm-env-prepare.sh index 61cee0371c..49c91d3ff8 100755 --- a/contrib/scripts/nm-in-container.d/data-nm-env-prepare.sh +++ b/contrib/scripts/nm-in-container.d/data-nm-env-prepare.sh @@ -11,6 +11,9 @@ do_cleanup() { local IDX="$1" local NAME_PREFIX="${2:-net}" local PEER_PREFIX="${3:-d_}" + local NETNS_PREFIX="${4:-tt}" + + logger --id "nm-env-prepare-$IDX" "cleanup start # $@" pkill -F "/tmp/nm-dnsmasq-$PEER_PREFIX$IDX.pid" dnsmasq &>/dev/null || : rm -rf "/tmp/nm-dnsmasq-$PEER_PREFIX$IDX.pid" @@ -24,40 +27,60 @@ do_cleanup() { rm -rf "/tmp/nm-radvd-$PEER_PREFIX$IDX.conf" - ip link del "$PEER_PREFIX$IDX" &>/dev/null || : + ip -netns "$NETNS_PREFIX$IDX" link del "$PEER_PREFIX$IDX" &>/dev/null || : + + ip netns del "$NETNS_PREFIX$IDX" &>/dev/null || : + + logger --id "nm-env-prepare-$IDX" "cleanup complete # $@" } do_setup() { local IDX="$1" local NAME_PREFIX="${2:-net}" local PEER_PREFIX="${3:-d_}" + local NETNS_PREFIX="${4:-tt}" - do_cleanup "$IDX" + logger --id "nm-env-prepare-$IDX" "setup start # $@" - ip link add "$NAME_PREFIX$IDX" type veth peer "$PEER_PREFIX$IDX" - ip link set "$PEER_PREFIX$IDX" up + ip netns add "$NETNS_PREFIX$IDX" + ip -netns "$NETNS_PREFIX$IDX" link set lo up - ip addr add "192.168.$((120 + IDX)).1/23" dev "$PEER_PREFIX$IDX" - ip addr add "192:168:$((120 + IDX))::1/64" dev "$PEER_PREFIX$IDX" + ip -netns "$NETNS_PREFIX$IDX" link add "$NAME_PREFIX$IDX" type veth peer "$PEER_PREFIX$IDX" + ip -netns "$NETNS_PREFIX$IDX" link set "$PEER_PREFIX$IDX" up + + ip -netns "$NETNS_PREFIX$IDX" addr add "192.168.$((120 + IDX)).1/23" dev "$PEER_PREFIX$IDX" + ip -netns "$NETNS_PREFIX$IDX" addr add "192:168:$((120 + IDX))::1/64" dev "$PEER_PREFIX$IDX" # PPPoE inside the rootless container is not actually working, because # /dev/ppp is not accessible. Still start it, so that we at least can # test how far it goes... echo "192.168.$((120 + $IDX)).180-200" > "/tmp/nm-pppoe-allip-$PEER_PREFIX$IDX" - pppoe-server -X "/tmp/nm-pppoe-$PEER_PREFIX$IDX.pid" -S isp -C isp -L "192.168.$((120 + IDX)).1" -p "/tmp/nm-pppoe-allip-$PEER_PREFIX$IDX" -I "$PEER_PREFIX$IDX" & + ip netns exec "$NETNS_PREFIX$IDX" \ + pppoe-server \ + -X "/tmp/nm-pppoe-$PEER_PREFIX$IDX.pid" \ + -S isp \ + -C isp \ + -L "192.168.$((120 + IDX)).1" \ + -p "/tmp/nm-pppoe-allip-$PEER_PREFIX$IDX" \ + -I "$PEER_PREFIX$IDX" \ + & - dnsmasq \ - --conf-file=/dev/null \ - --pid-file="/tmp/nm-dnsmasq-$PEER_PREFIX$IDX.pid" \ - --no-hosts \ - --keep-in-foreground \ - --bind-interfaces \ - --except-interface=lo \ - --clear-on-reload \ - --listen-address="192.168.$((120 + $IDX)).1" \ - --dhcp-range="192.168.$((120 + $IDX)).100,192.168.$((120 + $IDX)).150" \ - --no-ping \ - & + ip netns exec "$NETNS_PREFIX$IDX" \ + dnsmasq \ + --conf-file=/dev/null \ + --pid-file="/tmp/nm-dnsmasq-$PEER_PREFIX$IDX.pid" \ + --no-hosts \ + --keep-in-foreground \ + --bind-interfaces \ + --log-debug \ + --log-queries \ + --log-dhcp \ + --except-interface=lo \ + --clear-on-reload \ + --listen-address="192.168.$((120 + $IDX)).1" \ + --dhcp-range="192.168.$((120 + $IDX)).100,192.168.$((120 + $IDX)).150" \ + --no-ping \ + & cat < "/tmp/nm-radvd-$PEER_PREFIX$IDX.conf" interface $PEER_PREFIX$IDX @@ -70,10 +93,17 @@ interface $PEER_PREFIX$IDX }; EOF - radvd \ - --config "/tmp/nm-radvd-$PEER_PREFIX$IDX.conf" \ - --pidfile "/tmp/nm-radvd-$PEER_PREFIX$IDX.pid" \ - & + ip netns exec "$NETNS_PREFIX$IDX" \ + radvd \ + --config "/tmp/nm-radvd-$PEER_PREFIX$IDX.conf" \ + --pidfile "/tmp/nm-radvd-$PEER_PREFIX$IDX.pid" \ + --logmethod syslog \ + -d 5 \ + & + + ip -netns ""$NETNS_PREFIX$IDX"" link set "$NAME_PREFIX$IDX" netns $$ + + logger --id "nm-env-prepare-$IDX" "setup complete: netns=$NETNS_PREFIX$IDX, iface=$NAME_PREFIX$IDX, peer=$PEER_PREFIX$IDX # $@" } do_redo() { @@ -81,8 +111,27 @@ do_redo() { do_setup "$@" } +do_one_time_setup() { + if [ ! -d /tmp/sys2 ]; then + # `ip -netns t exec ...` will try to mount sysfs. But kernel rejects that in + # the container, unless a writable sysfs is already mounted. Due to --priviledged, + # we have /sys mounted rw, however, ip will first unmount /sys before trying to + # remount it. We thus need it mounted as rw one additional time. + # + # Let's do this setup step once, and never clean it up. + # https://github.com/containers/podman/issues/11887#issuecomment-938706628 + mkdir /tmp/sys2 + mount -t sysfs --make-private /tmp/sys2 + fi +} + ############################################################################### +# We do this one-time-setup always when the script runs, and never clean it +# up. +do_one_time_setup + + IDX=1 NAME_PREFIX=net PEER_PREFIX= diff --git a/contrib/scripts/nm-in-container.sh b/contrib/scripts/nm-in-container.sh index e4dda6d384..02a16e9da3 100755 --- a/contrib/scripts/nm-in-container.sh +++ b/contrib/scripts/nm-in-container.sh @@ -109,7 +109,54 @@ find NetworkManager bind mounted at $BASEDIR_NM run \`nm-env-prepare.sh setup --idx 1\` to setup test interfaces Configure NetworkManager with - \$ ./configure --enable-maintainer-mode --enable-more-warnings=error --with-more-asserts="\${NM_BUILD_MORE_ASSERTS:-1000}" --with-nm-cloud-setup=yes --prefix=/opt/test --localstatedir=/var --sysconfdir=/etc --enable-gtk-doc --enable-introspection --with-ofono=yes --with-dhclient=yes --with-dhcpcanon=yes --with-dhcpcd=yes --enable-more-logging --enable-compile-warnings=yes --enable-address-sanitizer=no --enable-undefined-sanitizer=no --with-valgrind=yes --enable-concheck --enable-wimax --enable-ifcfg-rh=yes --enable-config-plugin-ibft=yes --enable-ifcfg-suse --enable-ifupdown=yes --enable-ifnet --enable-vala=yes --enable-polkit=yes --with-libnm-glib=yes --with-nmcli=yes --with-nmtui=yes --with-modem-manager-1 --with-suspend-resume=systemd --enable-teamdctl=yes --enable-ovs=yes --enable-tests="\${NM_BUILD_TESTS:-yes}" --with-netconfig=/bin/nowhere/netconfig --with-resolvconf=/bin/nowhere/resolvconf --with-crypto=nss --with-session-tracking=systemd --with-consolekit=yes --with-systemd-logind=yes --with-iwd=yes --enable-json-validation=yes --with-consolekit=yes --with-config-dns-rc-manager-default=auto --with-config-dhcp-default=internal "\${NM_CONFIGURE_OTPS[@]}" + \$ ./configure \ + --enable-address-sanitizer=no \ + --enable-compile-warnings=yes \ + --enable-concheck \ + --enable-config-plugin-ibft=yes \ + --enable-gtk-doc \ + --enable-ifcfg-rh=yes \ + --enable-ifcfg-suse \ + --enable-ifnet \ + --enable-ifupdown=yes \ + --enable-introspection \ + --enable-json-validation=yes \ + --enable-maintainer-mode \ + --enable-more-logging \ + --enable-more-warnings=error \ + --enable-ovs=yes \ + --enable-polkit=yes \ + --enable-teamdctl=yes \ + --enable-undefined-sanitizer=no \ + --enable-vala=yes \ + --enable-wimax \ + --localstatedir=/var \ + --prefix=/opt/test \ + --sysconfdir=/etc \ + --with-config-dhcp-default=internal \ + --with-config-dns-rc-manager-default=auto \ + --with-consolekit=yes \ + --with-consolekit=yes \ + --with-crypto=nss \ + --with-dhclient=yes \ + --with-dhcpcanon=yes \ + --with-dhcpcd=yes \ + --with-iwd=yes \ + --with-libnm-glib=yes \ + --with-modem-manager-1 \ + --with-netconfig=/bin/nowhere/netconfig \ + --with-nm-cloud-setup=yes \ + --with-nmcli=yes \ + --with-nmtui=yes \ + --with-ofono=yes \ + --with-resolvconf=/bin/nowhere/resolvconf \ + --with-session-tracking=systemd \ + --with-suspend-resume=systemd \ + --with-systemd-logind=yes \ + --with-valgrind=yes \ + --enable-tests="\${NM_BUILD_TESTS:-yes}" \ + --with-more-asserts="\${NM_BUILD_MORE_ASSERTS:-1000}" \ + "\${NM_CONFIGURE_OTPS[@]}" Test with: \$ systemctl stop NetworkManager; /opt/test/sbin/NetworkManager --debug 2>&1 | tee -a /tmp/nm-log.txt EOF @@ -249,6 +296,8 @@ RUN dnf install -y \\ mlocate \\ mobile-broadband-provider-info-devel \\ newt-devel \\ + nispor \\ + nmstate \\ nss-devel \\ polkit-devel \\ ppp \\ diff --git a/examples/python/gi/checkpoint.py b/examples/python/gi/checkpoint.py index b63b1c37a4..6f3194cdb1 100755 --- a/examples/python/gi/checkpoint.py +++ b/examples/python/gi/checkpoint.py @@ -71,11 +71,11 @@ def find_checkpoint(nmc, path): def find_checkpoint_last(nmc): - l = [c.get_path() for c in nmc.get_checkpoints()] - if not l: - return None - l.sort(key=checkpoint_path_to_num) - return l[-1] + return max( + nmc.get_checkpoints(), + key=lambda c: checkpoint_path_to_num(c.get_path()), + default=None, + ) def validate_path(path, nmc): diff --git a/man/NetworkManager.conf.xml b/man/NetworkManager.conf.xml index cb6b40afa0..18b25d9370 100644 --- a/man/NetworkManager.conf.xml +++ b/man/NetworkManager.conf.xml @@ -345,19 +345,12 @@ no-auto-default=* systemd-resolved: NetworkManager will push the DNS configuration to systemd-resolved - unbound: NetworkManager will talk - to unbound and dnssec-triggerd, using "Conditional Forwarding" - with DNSSEC support. /etc/resolv.conf - will be managed by dnssec-trigger daemon. This option is - deprecated. Note that dnssec-trigger ships a NetworkManager dispatcher - script so this DNS plugin is not necessary. - none: NetworkManager will not modify resolv.conf. This implies rc-manager unmanaged - Note that the plugins dnsmasq, systemd-resolved - and unbound are caching local nameservers. + Note that the plugins dnsmasq and systemd-resolved + are caching local nameservers. Hence, when NetworkManager writes &nmrundir;/resolv.conf and /etc/resolv.conf (according to rc-manager setting below), the name server there will be localhost only. diff --git a/man/nmcli-examples.xml b/man/nmcli-examples.xml index 5744ad12bb..0afa9797a3 100644 --- a/man/nmcli-examples.xml +++ b/man/nmcli-examples.xml @@ -614,6 +614,32 @@ Connection 'ethernet-4' (de89cdeb-a3e1-4d53-8fa0-c22546c775f4) successfully $ nmcli connection add type bluetooth con-name "My Bluetooth Hotspot" autoconnect no ifname btnap0 bluetooth.type nap ipv4.method shared ipv6.method shared + Offline use +$ nmcli --offline con add type ethernet ' + conn.id eth0 \ + conn.interface-name eth0 \ + >/sysroot/etc/NetworkManager/system-connections/eth0.nmconnection + + Creates a connection file in keyfile format without using the NetworkManager service. + This allows for use of familiar nmcli syntax in situations + where the service is not running, such as during system installation of image + provisioning and ensures the resulting file is correctly formatted. + +$ nmcli --offline con modify type ethernet ' + conn.id eth0-ipv6 \ + ipv4.method disabled \ + </sysroot/etc/NetworkManager/system-connections/eth0.nmconnection \ + >/sysroot/etc/NetworkManager/system-connections/eth0-ipv6.nmconnection + + Read and write a connection file without using the NetworkManager service, modifying + some properties along the way. + + + This allows templating of the connection profiles using familiar + nmcli syntax in situations where the service is not running. + + + diff --git a/man/nmcli.xml b/man/nmcli.xml index d4f27b0b37..ba89b29112 100644 --- a/man/nmcli.xml +++ b/man/nmcli.xml @@ -314,6 +314,23 @@ + + + + + + + Work without a daemon. Makes connection add and + connection modify commands accept and produce connection + data via standard input/output. Ordinarily, nmcli would communicate with + the NetworkManager service. + + The connection data format (keyfile) is described in + nm-settings-keyfile5 + manual. + + + @@ -928,7 +945,7 @@ - ID + ID option value @@ -962,7 +979,14 @@ The connection is identified by its name, UUID or D-Bus path. If ID is ambiguous, a keyword , - or can be used. + or can be used. + The ID is not used with the global + option. + + When the global is used, the + command reads the connection from the standard input and prints the + modified connection to standard output instead of making the + the NetworkManager daemon act upon specified connection. @@ -1096,6 +1120,10 @@ + + When the global is used, the + command prints the resulting connection to standard output instead of + actually adding the connection via the NetworkManager daemon. diff --git a/meson.build b/meson.build index 7a7eb176ae..4058e05f88 100644 --- a/meson.build +++ b/meson.build @@ -6,7 +6,7 @@ project( # - add corresponding NM_VERSION_x_y_z macros in # "src/libnm-core-public/nm-version-macros.h.in" # - update number in configure.ac - version: '1.38.0', + version: '1.39.4', license: 'GPL2+', default_options: [ 'buildtype=debugoptimized', @@ -353,10 +353,14 @@ if enable_introspection endif udev_udevdir = get_option('udev_dir') -install_udevdir = (udev_udevdir != 'no') - -if install_udevdir and udev_udevdir == '' - udev_udevdir = dependency('udev').get_pkgconfig_variable('udevdir') +if udev_udevdir == 'no' + install_udevdir = false +else + install_udevdir = true + if (udev_udevdir == '' or udev_udevdir == 'yes') + udev_udevdir = join_paths(nm_prefix, 'lib/udev') + endif + assert(udev_udevdir.startswith('/'), 'udev_dir must be an absolute path, but is ' + udev_udevdir) endif systemd_systemdsystemunitdir = get_option('systemdsystemunitdir') @@ -364,7 +368,7 @@ install_systemdunitdir = (systemd_systemdsystemunitdir != 'no') if install_systemdunitdir and systemd_systemdsystemunitdir == '' assert(systemd_dep.found(), 'systemd required but not found, please provide a valid systemd user unit dir or disable it') - systemd_systemdsystemunitdir = systemd_dep.get_pkgconfig_variable('systemdsystemunitdir') + systemd_systemdsystemunitdir = systemd_dep.get_pkgconfig_variable('systemdsystemunitdir', define_variable: ['rootprefix', nm_prefix]) endif enable_systemd_journal = get_option('systemd_journal') @@ -551,7 +555,7 @@ endif dbus_conf_dir = get_option('dbus_conf_dir') if dbus_conf_dir == '' assert(dbus_dep.found(), 'D-Bus required but not found, please provide a valid system bus config dir') - dbus_conf_dir = join_paths(dbus_dep.get_pkgconfig_variable('datadir'), 'dbus-1', 'system.d') + dbus_conf_dir = join_paths(dbus_dep.get_pkgconfig_variable('datarootdir', define_variable: ['prefix', nm_prefix]), 'dbus-1', 'system.d') endif dbus_interfaces_dir = dbus_dep.get_pkgconfig_variable('interfaces_dir', define_variable: ['datadir', nm_datadir]) @@ -683,18 +687,11 @@ endforeach # external misc tools paths default_paths = ['/sbin', '/usr/sbin'] -dnssec_ts_paths = ['/usr/local/libexec', - '/usr/local/lib', - '/usr/local/lib/dnssec-trigger', - '/usr/libexec', - '/usr/lib', - '/usr/lib/dnssec-trigger'] # 0: cmdline option, 1: paths, 2: fallback -progs = [['iptables', default_paths, '/usr/sbin/iptables'], - ['nft', default_paths, '/usr/sbin/nft'], - ['dnsmasq', default_paths, ''], - ['dnssec_trigger', dnssec_ts_paths, join_paths(nm_libexecdir, 'dnssec-trigger-script') ], +progs = [['iptables', default_paths, '/usr/sbin/iptables'], + ['nft', default_paths, '/usr/sbin/nft'], + ['dnsmasq', default_paths, ''], ] foreach prog : progs @@ -1020,6 +1017,7 @@ output = '\nSystem paths:\n' output += ' prefix: ' + nm_prefix + '\n' output += ' exec_prefix: ' + nm_prefix + '\n' output += ' systemdunitdir: ' + systemd_systemdsystemunitdir + '\n' +output += ' udev_dir: ' + udev_udevdir + '\n' output += ' nmbinary: ' + nm_pkgsbindir + '\n' output += ' nmconfdir: ' + nm_pkgconfdir + '\n' output += ' nmlibdir: ' + nm_pkglibdir + '\n' @@ -1028,7 +1026,8 @@ output += ' nmstatedir: ' + nm_pkgstatedir + '\n' output += ' nmrundir: ' + nm_pkgrundir + '\n' output += ' nmvpndir: ' + nm_vpndir + '\n' output += ' nmplugindir: ' + nm_plugindir + '\n' -output += ' system-ca-path: ' + system_ca_path + '\n' +output += ' system_ca_path: ' + system_ca_path + '\n' +output += ' dbus_conf_dir: ' + dbus_conf_dir + '\n' output += '\nPlatform:\n' output += ' session tracking: ' + ','.join(session_trackers) + '\n' output += ' suspend/resume: ' + suspend_resume + '\n' diff --git a/meson_options.txt b/meson_options.txt index 42f84711d0..cec0664186 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -7,7 +7,6 @@ option('kernel_firmware_dir', type: 'string', value: '/lib/firmware', descriptio option('iptables', type: 'string', value: '', description: 'path to iptables') option('nft', type: 'string', value: '', description: 'path to nft') option('dnsmasq', type: 'string', value: '', description: 'path to dnsmasq') -option('dnssec_trigger', type: 'string', value: '', description: 'path to unbound dnssec-trigger-script') # platform option('dist_version', type: 'string', value: '', description: 'Define the NM\'s distribution version string') diff --git a/po/uk.po b/po/uk.po index 04bfd76314..b93d2f8a27 100644 --- a/po/uk.po +++ b/po/uk.po @@ -10,8 +10,8 @@ msgstr "" "Project-Id-Version: NetworkManager\n" "Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/NetworkManager/NetworkMan" "ager/issues\n" -"POT-Creation-Date: 2022-03-31 15:26+0000\n" -"PO-Revision-Date: 2022-04-04 11:36+0300\n" +"POT-Creation-Date: 2022-05-12 15:26+0000\n" +"PO-Revision-Date: 2022-05-16 08:58+0300\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "Language: uk\n" @@ -193,7 +193,7 @@ msgstr "" #. * as "Wired Connection" or "VPN Connection". The %d is a number #. * that is combined with the first argument to create a unique #. * connection id. -#: ../src/core/NetworkManagerUtils.c:120 +#: ../src/core/NetworkManagerUtils.c:119 #, c-format msgctxt "connection id fallback" msgid "%s %u" @@ -261,7 +261,7 @@ msgstr "З'єднання 6LOWPAN" msgid "Bond connection" msgstr "Прив'язане з'єднання" -#: ../src/core/devices/nm-device-bridge.c:154 +#: ../src/core/devices/nm-device-bridge.c:161 msgid "Bridge connection" msgstr "З'єднання містка" @@ -596,7 +596,7 @@ msgstr "" msgid "Could not daemonize: %s [error %u]\n" msgstr "Не вдалося створити фонову службу: %s [помилка %u]\n" -#: ../src/core/nm-config.c:542 +#: ../src/core/nm-config.c:544 #: ../src/libnm-core-impl/nm-setting-ovs-bridge.c:187 #: ../src/libnmc-setting/nm-meta-setting-desc.c:2181 #: ../src/libnmc-setting/nm-meta-setting-desc.c:4242 @@ -604,93 +604,93 @@ msgstr "Не вдалося створити фонову службу: %s [по msgid "'%s' is not valid" msgstr "«%s» не є коректним" -#: ../src/core/nm-config.c:564 +#: ../src/core/nm-config.c:566 #, c-format msgid "Bad '%s' option: " msgstr "Помилковий параметр «%s»: " -#: ../src/core/nm-config.c:581 +#: ../src/core/nm-config.c:583 msgid "Config file location" msgstr "Розташування файла налаштувань" -#: ../src/core/nm-config.c:588 +#: ../src/core/nm-config.c:590 msgid "Config directory location" msgstr "Розташування каталогу налаштувань" -#: ../src/core/nm-config.c:595 +#: ../src/core/nm-config.c:597 msgid "System config directory location" msgstr "Розташування загальносистемного каталогу налаштувань" -#: ../src/core/nm-config.c:602 +#: ../src/core/nm-config.c:604 msgid "Internal config file location" msgstr "Розташування внутрішнього файла налаштувань" -#: ../src/core/nm-config.c:609 +#: ../src/core/nm-config.c:611 msgid "State file location" msgstr "Розташування файла стану" -#: ../src/core/nm-config.c:616 +#: ../src/core/nm-config.c:618 msgid "State file for no-auto-default devices" msgstr "" "Файл станів для пристроїв без автоматичних типових параметрів (no-auto-" "default)" -#: ../src/core/nm-config.c:623 +#: ../src/core/nm-config.c:625 msgid "List of plugins separated by ','" msgstr "Список додатків, відокремлених комами («,»)" -#: ../src/core/nm-config.c:630 +#: ../src/core/nm-config.c:632 msgid "Quit after initial configuration" msgstr "Вийти після початкового налаштовування" -#: ../src/core/nm-config.c:637 +#: ../src/core/nm-config.c:639 msgid "Don't become a daemon, and log to stderr" msgstr "" "Не переходити у стан фонової служби і записувати повідомлення журналу до " "stderr" -#: ../src/core/nm-config.c:646 +#: ../src/core/nm-config.c:648 msgid "An http(s) address for checking internet connectivity" msgstr "Адреса http(s) для спроб перевірки можливості встановлення з'єднання" -#: ../src/core/nm-config.c:653 +#: ../src/core/nm-config.c:655 msgid "The interval between connectivity checks (in seconds)" msgstr "Інтервал між перевірками можливості з'єднання (у секундах)" -#: ../src/core/nm-config.c:660 +#: ../src/core/nm-config.c:662 msgid "The expected start of the response" msgstr "Очікуваний початок відповіді" -#: ../src/core/nm-config.c:669 +#: ../src/core/nm-config.c:671 msgid "NetworkManager options" msgstr "Параметри NetworkManager" -#: ../src/core/nm-config.c:670 +#: ../src/core/nm-config.c:672 msgid "Show NetworkManager options" msgstr "Показати параметри NetworkManager" -#: ../src/core/nm-manager.c:6121 +#: ../src/core/nm-manager.c:6146 #: ../src/libnmc-setting/nm-meta-setting-desc.c:8243 msgid "VPN connection" msgstr "З'єднання VPN" #: ../src/core/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c:5545 #: ../src/libnm-client-impl/nm-device.c:1779 -#: ../src/libnm-core-impl/nm-connection.c:3111 +#: ../src/libnm-core-impl/nm-connection.c:3172 #: ../src/nmtui/nm-editor-utils.c:196 msgid "Bond" msgstr "Прив'язка" #: ../src/core/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c:5616 #: ../src/libnm-client-impl/nm-device.c:1781 -#: ../src/libnm-core-impl/nm-connection.c:3113 +#: ../src/libnm-core-impl/nm-connection.c:3174 #: ../src/nmtui/nm-editor-utils.c:214 msgid "Team" msgstr "Команда" #: ../src/core/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c:5953 #: ../src/libnm-client-impl/nm-device.c:1783 -#: ../src/libnm-core-impl/nm-connection.c:3115 +#: ../src/libnm-core-impl/nm-connection.c:3176 #: ../src/nmtui/nm-editor-utils.c:205 msgid "Bridge" msgstr "Місток" @@ -823,7 +823,7 @@ msgstr "З'єднання не є коректним модемним з'єдн msgid "The device is lacking capabilities required by the connection." msgstr "У пристрою немає можливостей, потрібних з'єднанню." -#: ../src/libnm-client-impl/nm-device-olpc-mesh.c:102 +#: ../src/libnm-client-impl/nm-device-olpc-mesh.c:103 msgid "The connection was not an OLPC Mesh connection." msgstr "З'єднання не є з'єднанням OLPC Mesh." @@ -936,13 +936,13 @@ msgid "Mobile Broadband" msgstr "Мобільна радіомережа" #: ../src/libnm-client-impl/nm-device.c:1777 -#: ../src/libnm-core-impl/nm-connection.c:3119 +#: ../src/libnm-core-impl/nm-connection.c:3180 #: ../src/nmtui/nm-editor-utils.c:169 msgid "InfiniBand" msgstr "InfiniBand" #: ../src/libnm-client-impl/nm-device.c:1785 -#: ../src/libnm-core-impl/nm-connection.c:3117 +#: ../src/libnm-core-impl/nm-connection.c:3178 #: ../src/nmtui/nm-editor-utils.c:223 ../src/nmtui/nmt-page-vlan.c:57 msgid "VLAN" msgstr "VLAN" @@ -992,7 +992,7 @@ msgid "6LoWPAN" msgstr "6LoWPAN" #: ../src/libnm-client-impl/nm-device.c:1809 -#: ../src/libnm-core-impl/nm-connection.c:3125 +#: ../src/libnm-core-impl/nm-connection.c:3186 #: ../src/nmtui/nm-editor-utils.c:263 ../src/nmtui/nmt-page-wireguard.c:57 msgid "WireGuard" msgstr "WireGuard" @@ -1138,36 +1138,36 @@ msgstr "містить UUID, який потребує нормалізації" msgid "has duplicate UUIDs" msgstr "містить дублікати UUID" -#: ../src/libnm-core-impl/nm-connection.c:1745 +#: ../src/libnm-core-impl/nm-connection.c:1805 msgid "setting not found" msgstr "параметра не знайдено" -#: ../src/libnm-core-impl/nm-connection.c:1799 -#: ../src/libnm-core-impl/nm-connection.c:1824 -#: ../src/libnm-core-impl/nm-connection.c:1849 +#: ../src/libnm-core-impl/nm-connection.c:1859 +#: ../src/libnm-core-impl/nm-connection.c:1884 +#: ../src/libnm-core-impl/nm-connection.c:1909 msgid "setting is required for non-slave connections" msgstr "для непідлеглих з'єднань потрібен параметр" -#: ../src/libnm-core-impl/nm-connection.c:1812 -#: ../src/libnm-core-impl/nm-connection.c:1837 -#: ../src/libnm-core-impl/nm-connection.c:1862 +#: ../src/libnm-core-impl/nm-connection.c:1872 +#: ../src/libnm-core-impl/nm-connection.c:1897 +#: ../src/libnm-core-impl/nm-connection.c:1922 msgid "setting not allowed in slave connection" msgstr "параметр не можна використовувати у підлеглому з'єднанні" -#: ../src/libnm-core-impl/nm-connection.c:1971 +#: ../src/libnm-core-impl/nm-connection.c:2032 msgid "Unexpected failure to normalize the connection" msgstr "Неочікувана помилка під час спроби нормалізувати з'єднання" -#: ../src/libnm-core-impl/nm-connection.c:2032 +#: ../src/libnm-core-impl/nm-connection.c:2093 msgid "Unexpected failure to verify the connection" msgstr "Неочікувана помилка під час спроби перевірити з'єднання" -#: ../src/libnm-core-impl/nm-connection.c:2069 +#: ../src/libnm-core-impl/nm-connection.c:2130 #, c-format msgid "unexpected uuid %s instead of %s" msgstr "неочікуваний UUID %s замість %s" -#: ../src/libnm-core-impl/nm-connection.c:2970 +#: ../src/libnm-core-impl/nm-connection.c:3031 #: ../src/libnm-core-impl/nm-setting-8021x.c:2607 #: ../src/libnm-core-impl/nm-setting-8021x.c:2644 #: ../src/libnm-core-impl/nm-setting-8021x.c:2662 @@ -1193,10 +1193,14 @@ msgstr "неочікуваний UUID %s замість %s" msgid "property is missing" msgstr "не вказано властивості" -#: ../src/libnm-core-impl/nm-connection.c:3123 +#: ../src/libnm-core-impl/nm-connection.c:3184 msgid "IP Tunnel" msgstr "IP-тунель" +#: ../src/libnm-core-impl/nm-connection.c:3188 +msgid "TUN/TAP" +msgstr "TUN/TAP" + #: ../src/libnm-core-impl/nm-dbus-utils.c:181 #, c-format msgid "Method returned type '%s', but expected '%s'" @@ -1212,239 +1216,239 @@ msgstr "Значення не може бути оброблено як спис msgid "value is not an integer in range [%lld, %lld]" msgstr "значення не є цілим числом у діапазоні [%lld, %lld]" -#: ../src/libnm-core-impl/nm-keyfile.c:332 +#: ../src/libnm-core-impl/nm-keyfile.c:331 msgid "ignoring missing number" msgstr "ігноруємо пропущене число" -#: ../src/libnm-core-impl/nm-keyfile.c:344 +#: ../src/libnm-core-impl/nm-keyfile.c:343 #, c-format msgid "ignoring invalid number '%s'" msgstr "ігноруємо некоректне число «%s»" -#: ../src/libnm-core-impl/nm-keyfile.c:373 +#: ../src/libnm-core-impl/nm-keyfile.c:372 #, c-format msgid "ignoring invalid %s address: %s" msgstr "ігноруємо некоректну адресу %s: %s" -#: ../src/libnm-core-impl/nm-keyfile.c:419 +#: ../src/libnm-core-impl/nm-keyfile.c:418 #, c-format msgid "ignoring invalid gateway '%s' for %s route" msgstr "ігноруємо некоректний шлюз «%s» для маршруту %s" -#: ../src/libnm-core-impl/nm-keyfile.c:441 +#: ../src/libnm-core-impl/nm-keyfile.c:440 #, c-format msgid "ignoring invalid %s route: %s" msgstr "ігноруємо некоректний маршрут %s: %s" -#: ../src/libnm-core-impl/nm-keyfile.c:619 +#: ../src/libnm-core-impl/nm-keyfile.c:618 #, c-format msgid "unexpected character '%c' for address %s: '%s' (position %td)" msgstr "неочікуваний символ «%c» для адреси %s: «%s» (позиція %td)" -#: ../src/libnm-core-impl/nm-keyfile.c:635 +#: ../src/libnm-core-impl/nm-keyfile.c:634 #, c-format msgid "unexpected character '%c' for %s: '%s' (position %td)" msgstr "неочікуваний символ «%c» для %s: «%s» (позиція %td)" -#: ../src/libnm-core-impl/nm-keyfile.c:651 +#: ../src/libnm-core-impl/nm-keyfile.c:650 #, c-format msgid "unexpected character '%c' in prefix length for %s: '%s' (position %td)" msgstr "неочікуваний символ «%c» у префіксі довжини для %s: «%s» (позиція %td)" -#: ../src/libnm-core-impl/nm-keyfile.c:668 +#: ../src/libnm-core-impl/nm-keyfile.c:667 #, c-format msgid "garbage at the end of value %s: '%s'" msgstr "зайві дані наприкінці значення %s: «%s»" -#: ../src/libnm-core-impl/nm-keyfile.c:678 +#: ../src/libnm-core-impl/nm-keyfile.c:677 #, c-format msgid "deprecated semicolon at the end of value %s: '%s'" msgstr "застаріла крапка з комою наприкінці значення %s: «%s»" -#: ../src/libnm-core-impl/nm-keyfile.c:697 +#: ../src/libnm-core-impl/nm-keyfile.c:696 #, c-format msgid "invalid prefix length for %s '%s', defaulting to %d" msgstr "некоректний префікс довжини для %s «%s», повертаємося до типового, %d" -#: ../src/libnm-core-impl/nm-keyfile.c:709 +#: ../src/libnm-core-impl/nm-keyfile.c:708 #, c-format msgid "missing prefix length for %s '%s', defaulting to %d" msgstr "пропущено префікс довжини для %s «%s», повертаємося до типового, %d" -#: ../src/libnm-core-impl/nm-keyfile.c:1052 +#: ../src/libnm-core-impl/nm-keyfile.c:1051 #: ../src/libnm-core-impl/nm-setting-ovs-external-ids.c:320 #: ../src/libnm-core-impl/nm-setting-user.c:364 #, c-format msgid "invalid value for \"%s\": %s" msgstr "некоректне значення для «%s»: %s" -#: ../src/libnm-core-impl/nm-keyfile.c:1130 +#: ../src/libnm-core-impl/nm-keyfile.c:1129 #, c-format msgid "ignoring invalid DNS server IPv%c address '%s'" msgstr "ігноруємо некоректну адресу IPv%c сервера DNS «%s»" -#: ../src/libnm-core-impl/nm-keyfile.c:1167 +#: ../src/libnm-core-impl/nm-keyfile.c:1166 #: ../src/libnmc-setting/nm-meta-setting-desc.c:1666 #, c-format msgid "invalid option '%s', use one of [%s]" msgstr "" "некоректний параметр «%s», скористайтеся одним із таких параметрів [%s]" -#: ../src/libnm-core-impl/nm-keyfile.c:1229 +#: ../src/libnm-core-impl/nm-keyfile.c:1228 msgid "ignoring invalid MAC address" msgstr "ігноруємо некоректну MAC-адресу" -#: ../src/libnm-core-impl/nm-keyfile.c:1305 +#: ../src/libnm-core-impl/nm-keyfile.c:1304 #, c-format msgid "ignoring invalid bond option %s%s%s = %s%s%s: %s" msgstr "ігноруємо некоректний параметр bond %s%s%s = %s%s%s: %s" -#: ../src/libnm-core-impl/nm-keyfile.c:1495 +#: ../src/libnm-core-impl/nm-keyfile.c:1494 msgid "ignoring invalid SSID" msgstr "ігноруємо некоректний SSID" -#: ../src/libnm-core-impl/nm-keyfile.c:1513 +#: ../src/libnm-core-impl/nm-keyfile.c:1512 msgid "ignoring invalid raw password" msgstr "ігноруємо некоректний необроблений пароль" -#: ../src/libnm-core-impl/nm-keyfile.c:1658 +#: ../src/libnm-core-impl/nm-keyfile.c:1657 msgid "invalid key/cert value" msgstr "некоректне значення ключа/сертифіката" -#: ../src/libnm-core-impl/nm-keyfile.c:1673 +#: ../src/libnm-core-impl/nm-keyfile.c:1672 #, c-format msgid "invalid key/cert value path \"%s\"" msgstr "некоректний шлях до ключа/сертифіката, «%s»" -#: ../src/libnm-core-impl/nm-keyfile.c:1698 -#: ../src/libnm-core-impl/nm-keyfile.c:1795 +#: ../src/libnm-core-impl/nm-keyfile.c:1697 +#: ../src/libnm-core-impl/nm-keyfile.c:1794 #, c-format msgid "certificate or key file '%s' does not exist" msgstr "файла сертифіката або ключа «%s» не існує" -#: ../src/libnm-core-impl/nm-keyfile.c:1711 +#: ../src/libnm-core-impl/nm-keyfile.c:1710 #, c-format msgid "invalid PKCS#11 URI \"%s\"" msgstr "некоректна адреса PKCS#11 «%s»" -#: ../src/libnm-core-impl/nm-keyfile.c:1757 +#: ../src/libnm-core-impl/nm-keyfile.c:1756 msgid "invalid key/cert value data:;base64, is not base64" msgstr "некоректні дані значення ключа/сертифіката data:;base64, не є base64" -#: ../src/libnm-core-impl/nm-keyfile.c:1770 +#: ../src/libnm-core-impl/nm-keyfile.c:1769 msgid "invalid key/cert value data:;base64,file://" msgstr "некоректне значення ключа/сертифіката data:;base64,file://" -#: ../src/libnm-core-impl/nm-keyfile.c:1811 +#: ../src/libnm-core-impl/nm-keyfile.c:1810 msgid "invalid key/cert value is not a valid blob" msgstr "" "некоректне значення ключа/сертифіката, не є коректним значення «%s» не є " "коректним великим бінарним об'єктом" -#: ../src/libnm-core-impl/nm-keyfile.c:1913 +#: ../src/libnm-core-impl/nm-keyfile.c:1912 #, c-format msgid "invalid parity value '%s'" msgstr "некоректне значення парності, «%s»" -#: ../src/libnm-core-impl/nm-keyfile.c:1935 -#: ../src/libnm-core-impl/nm-keyfile.c:3427 +#: ../src/libnm-core-impl/nm-keyfile.c:1934 +#: ../src/libnm-core-impl/nm-keyfile.c:3426 #, c-format msgid "invalid setting: %s" msgstr "некоректний параметр: %s" -#: ../src/libnm-core-impl/nm-keyfile.c:1955 +#: ../src/libnm-core-impl/nm-keyfile.c:1954 #, c-format msgid "ignoring invalid team configuration: %s" msgstr "ігноруємо некоректне налаштування команди: %s" -#: ../src/libnm-core-impl/nm-keyfile.c:2038 +#: ../src/libnm-core-impl/nm-keyfile.c:2037 #, c-format msgid "invalid qdisc: %s" msgstr "некоректний qdisc: %s" -#: ../src/libnm-core-impl/nm-keyfile.c:2088 +#: ../src/libnm-core-impl/nm-keyfile.c:2087 #, c-format msgid "invalid tfilter: %s" msgstr "некоректний tfilter: %s" -#: ../src/libnm-core-impl/nm-keyfile.c:3252 +#: ../src/libnm-core-impl/nm-keyfile.c:3251 #, c-format msgid "error loading setting value: %s" msgstr "помилка під час завантаження значення параметра: %s" -#: ../src/libnm-core-impl/nm-keyfile.c:3283 -#: ../src/libnm-core-impl/nm-keyfile.c:3295 -#: ../src/libnm-core-impl/nm-keyfile.c:3314 -#: ../src/libnm-core-impl/nm-keyfile.c:3326 -#: ../src/libnm-core-impl/nm-keyfile.c:3338 -#: ../src/libnm-core-impl/nm-keyfile.c:3400 -#: ../src/libnm-core-impl/nm-keyfile.c:3412 +#: ../src/libnm-core-impl/nm-keyfile.c:3282 +#: ../src/libnm-core-impl/nm-keyfile.c:3294 +#: ../src/libnm-core-impl/nm-keyfile.c:3313 +#: ../src/libnm-core-impl/nm-keyfile.c:3325 +#: ../src/libnm-core-impl/nm-keyfile.c:3337 +#: ../src/libnm-core-impl/nm-keyfile.c:3399 +#: ../src/libnm-core-impl/nm-keyfile.c:3411 msgid "value cannot be interpreted as integer" msgstr "значення не може бути оброблено як ціле число" -#: ../src/libnm-core-impl/nm-keyfile.c:3368 +#: ../src/libnm-core-impl/nm-keyfile.c:3367 #, c-format msgid "ignoring invalid byte element '%u' (not between 0 and 255 inclusive)" msgstr "" "ігноруємо некоректний байтовий елемент «%u» (не у діапазоні від 0 до 255, " "включно)" -#: ../src/libnm-core-impl/nm-keyfile.c:3452 +#: ../src/libnm-core-impl/nm-keyfile.c:3451 #, c-format msgid "invalid setting name '%s'" msgstr "некоректна назва параметра, «%s»" -#: ../src/libnm-core-impl/nm-keyfile.c:3499 +#: ../src/libnm-core-impl/nm-keyfile.c:3498 #, c-format msgid "invalid key '%s.%s'" msgstr "некоректний ключ «%s.%s»" -#: ../src/libnm-core-impl/nm-keyfile.c:3515 +#: ../src/libnm-core-impl/nm-keyfile.c:3514 #, c-format msgid "key '%s.%s' is not boolean" msgstr "ключ «%s.%s» не є булевим значенням" -#: ../src/libnm-core-impl/nm-keyfile.c:3532 +#: ../src/libnm-core-impl/nm-keyfile.c:3531 #, c-format msgid "key '%s.%s' is not a uint32" msgstr "ключ «%s.%s» не є значенням uint32" -#: ../src/libnm-core-impl/nm-keyfile.c:3589 +#: ../src/libnm-core-impl/nm-keyfile.c:3588 #, c-format msgid "invalid peer public key in section '%s'" msgstr "некоректний відкритий ключ вузла у розділі «%s»" -#: ../src/libnm-core-impl/nm-keyfile.c:3604 +#: ../src/libnm-core-impl/nm-keyfile.c:3603 #, c-format msgid "key '%s.%s' is not a valid 256 bit key in base64 encoding" msgstr "ключ «%s.%s» не є коректним 256-бітовим ключем у кодуванні base64" -#: ../src/libnm-core-impl/nm-keyfile.c:3627 +#: ../src/libnm-core-impl/nm-keyfile.c:3626 #, c-format msgid "key '%s.%s' is not a valid secret flag" msgstr "ключ «%s.%s» не є коректним прапорцем реєстраційних даних" -#: ../src/libnm-core-impl/nm-keyfile.c:3650 +#: ../src/libnm-core-impl/nm-keyfile.c:3649 #, c-format msgid "key '%s.%s' is not a integer in range 0 to 2^32" msgstr "ключ «%s.%s» не є цілими числом у діапазоні від 0 до 2^32" -#: ../src/libnm-core-impl/nm-keyfile.c:3666 +#: ../src/libnm-core-impl/nm-keyfile.c:3665 #, c-format msgid "key '%s.%s' is not a valid endpoint" msgstr "ключ «%s.%s» не є коректною кінцевою точкою" -#: ../src/libnm-core-impl/nm-keyfile.c:3692 +#: ../src/libnm-core-impl/nm-keyfile.c:3691 #, c-format msgid "key '%s.%s' has invalid allowed-ips" msgstr "для ключа «%s.%s» вказано некоректне значення allowed-ips" -#: ../src/libnm-core-impl/nm-keyfile.c:3707 +#: ../src/libnm-core-impl/nm-keyfile.c:3706 #, c-format msgid "peer '%s' is invalid: %s" msgstr "вузол «%s» є некоректним: %s" -#: ../src/libnm-core-impl/nm-keyfile.c:4235 +#: ../src/libnm-core-impl/nm-keyfile.c:4234 #, c-format msgid "unsupported option \"%s.%s\" of variant type %s" msgstr "непідтримуваний параметр «%s.%s» типу варіанта %s" @@ -1518,9 +1522,16 @@ msgstr "" "підтримки паролів не передбачено, якщо сертифікат не міститься у ключі " "PKCS#11" +#. normalizable warnings from here on. #: ../src/libnm-core-impl/nm-setting-8021x.c:2612 #: ../src/libnm-core-impl/nm-setting-8021x.c:2652 #: ../src/libnm-core-impl/nm-setting-8021x.c:2671 +#: ../src/libnm-core-impl/nm-setting-8021x.c:2838 +#: ../src/libnm-core-impl/nm-setting-8021x.c:2858 +#: ../src/libnm-core-impl/nm-setting-8021x.c:2878 +#: ../src/libnm-core-impl/nm-setting-8021x.c:2919 +#: ../src/libnm-core-impl/nm-setting-8021x.c:2939 +#: ../src/libnm-core-impl/nm-setting-8021x.c:2995 #: ../src/libnm-core-impl/nm-setting-adsl.c:181 #: ../src/libnm-core-impl/nm-setting-cdma.c:149 #: ../src/libnm-core-impl/nm-setting-cdma.c:159 @@ -1542,6 +1553,7 @@ msgstr "" #: ../src/libnm-core-impl/nm-setting-wireless-security.c:972 #: ../src/libnm-core-impl/nm-setting-wireless-security.c:1000 #: ../src/libnm-core-impl/nm-setting.c:2396 +#, c-format msgid "property is empty" msgstr "властивість є порожньою" @@ -1582,15 +1594,15 @@ msgstr "можна вмикати лише для з'єднань Ethernet" #: ../src/libnm-core-impl/nm-setting-wireless.c:945 #: ../src/libnm-core-impl/nm-setting-wireless.c:958 #: ../src/libnm-core-impl/nm-setting-wpan.c:161 -#: ../src/libnm-core-impl/nm-utils.c:4152 +#: ../src/libnm-core-impl/nm-utils.c:4151 msgid "property is invalid" msgstr "властивість є некоректною" -#: ../src/libnm-core-impl/nm-setting-8021x.c:2831 -#: ../src/libnm-core-impl/nm-setting-8021x.c:2844 -#: ../src/libnm-core-impl/nm-setting-8021x.c:2857 -#: ../src/libnm-core-impl/nm-setting-8021x.c:2891 -#: ../src/libnm-core-impl/nm-setting-8021x.c:2904 +#: ../src/libnm-core-impl/nm-setting-8021x.c:2832 +#: ../src/libnm-core-impl/nm-setting-8021x.c:2852 +#: ../src/libnm-core-impl/nm-setting-8021x.c:2872 +#: ../src/libnm-core-impl/nm-setting-8021x.c:2913 +#: ../src/libnm-core-impl/nm-setting-8021x.c:2933 #: ../src/libnm-core-impl/nm-setting-adsl.c:193 #: ../src/libnm-core-impl/nm-setting-adsl.c:206 #: ../src/libnm-core-impl/nm-setting-bluetooth.c:145 @@ -1599,7 +1611,7 @@ msgstr "властивість є некоректною" msgid "'%s' is not a valid value for the property" msgstr "«%s» не є коректним значенням властивості" -#: ../src/libnm-core-impl/nm-setting-8021x.c:2870 +#: ../src/libnm-core-impl/nm-setting-8021x.c:2891 msgid "invalid auth flags" msgstr "некоректні прапорці розпізнавання" @@ -1629,95 +1641,95 @@ msgid "A connection with a '%s' setting must have the slave-type set to '%s'" msgstr "" "Для з'єднання з параметром «%s» має бути встановлено тип підлеглості «%s»" -#: ../src/libnm-core-impl/nm-setting-bond.c:513 +#: ../src/libnm-core-impl/nm-setting-bond.c:504 #, c-format msgid "'%s' option is empty" msgstr "параметр «%s» є порожнім" -#: ../src/libnm-core-impl/nm-setting-bond.c:522 +#: ../src/libnm-core-impl/nm-setting-bond.c:513 #, c-format msgid "'%s' is not a valid IPv4 address for '%s' option" msgstr "«%s» не є припустимою адресою IPv4 для параметра «%s»" -#: ../src/libnm-core-impl/nm-setting-bond.c:549 +#: ../src/libnm-core-impl/nm-setting-bond.c:540 #, c-format msgid "missing option name" msgstr "не вказано назви параметра" -#: ../src/libnm-core-impl/nm-setting-bond.c:554 +#: ../src/libnm-core-impl/nm-setting-bond.c:545 #, c-format msgid "invalid option '%s'" msgstr "некоректний параметр «%s»" -#: ../src/libnm-core-impl/nm-setting-bond.c:590 +#: ../src/libnm-core-impl/nm-setting-bond.c:581 #, c-format msgid "invalid value '%s' for option '%s'" msgstr "некоректне значення «%s» для параметра «%s»" -#: ../src/libnm-core-impl/nm-setting-bond.c:837 +#: ../src/libnm-core-impl/nm-setting-bond.c:828 #, c-format msgid "mandatory option '%s' is missing" msgstr "пропущено обов'язковий параметр «%s»" -#: ../src/libnm-core-impl/nm-setting-bond.c:847 +#: ../src/libnm-core-impl/nm-setting-bond.c:838 #, c-format msgid "'%s' is not a valid value for '%s'" msgstr "«%s» не є коректним значенням «%s»" -#: ../src/libnm-core-impl/nm-setting-bond.c:860 +#: ../src/libnm-core-impl/nm-setting-bond.c:851 #, c-format msgid "'%s=%s' is incompatible with '%s > 0'" msgstr "«%s=%s» є несумісним з «%s > 0»" -#: ../src/libnm-core-impl/nm-setting-bond.c:877 +#: ../src/libnm-core-impl/nm-setting-bond.c:868 #, c-format msgid "'%s' is not valid for the '%s' option: %s" msgstr "«%s» є некоректним для параметра «%s»: %s" -#: ../src/libnm-core-impl/nm-setting-bond.c:889 +#: ../src/libnm-core-impl/nm-setting-bond.c:880 #, c-format msgid "'%s' option is only valid for '%s=%s'" msgstr "параметр «%s» можна використовувати, лише якщо «%s=%s»" -#: ../src/libnm-core-impl/nm-setting-bond.c:902 +#: ../src/libnm-core-impl/nm-setting-bond.c:893 #, c-format msgid "'%s=%s' is not a valid configuration for '%s'" msgstr "«%s=%s» не є коректним налаштуванням для «%s»" -#: ../src/libnm-core-impl/nm-setting-bond.c:917 -#: ../src/libnm-core-impl/nm-setting-bond.c:928 -#: ../src/libnm-core-impl/nm-setting-bond.c:941 +#: ../src/libnm-core-impl/nm-setting-bond.c:908 +#: ../src/libnm-core-impl/nm-setting-bond.c:919 +#: ../src/libnm-core-impl/nm-setting-bond.c:932 #, c-format msgid "'%s' option requires '%s' option to be enabled" msgstr "використання параметра «%s» вимагає вмикання параметра «%s»" -#: ../src/libnm-core-impl/nm-setting-bond.c:958 +#: ../src/libnm-core-impl/nm-setting-bond.c:949 #, c-format msgid "'%s' option needs to be a value multiple of '%s' value" msgstr "значенням параметр «%s» має бути значення, кратне до значення «%s»" -#: ../src/libnm-core-impl/nm-setting-bond.c:975 -#: ../src/libnm-core-impl/nm-setting-bond.c:986 +#: ../src/libnm-core-impl/nm-setting-bond.c:966 +#: ../src/libnm-core-impl/nm-setting-bond.c:977 #, c-format msgid "'%s' option requires '%s' option to be set" msgstr "використання параметра «%s» вимагає встановлення параметра «%s»" -#: ../src/libnm-core-impl/nm-setting-bond.c:999 +#: ../src/libnm-core-impl/nm-setting-bond.c:990 #, c-format msgid "'%s' option is only valid with mode '%s'" msgstr "параметр «%s» є коректним лише у режимі «%s»" -#: ../src/libnm-core-impl/nm-setting-bond.c:1012 +#: ../src/libnm-core-impl/nm-setting-bond.c:1003 #, c-format msgid "'%s' and '%s' cannot have different values" msgstr "Значення «%s» і «%s» не можуть бути різними" -#: ../src/libnm-core-impl/nm-setting-bond.c:1035 +#: ../src/libnm-core-impl/nm-setting-bond.c:1026 #, c-format msgid "'%s' option should be string" msgstr "параметр «%s» має бути рядком" -#: ../src/libnm-core-impl/nm-setting-bond.c:1048 +#: ../src/libnm-core-impl/nm-setting-bond.c:1039 #, c-format msgid "'%s' option is not valid with mode '%s'" msgstr "параметр «%s» є коректним з режимом «%s»" @@ -1764,6 +1776,11 @@ msgstr "не є коректним параметром" msgid "'%s' option must be a power of 2" msgstr "Значенням параметра «%s» має бути степінь 2" +#: ../src/libnm-core-impl/nm-setting-bridge.c:1318 +#| msgid "vlan setting should have a ethernet setting as well" +msgid "bridge connection should have a ethernet setting as well" +msgstr "з'єднання містка має супроводжуватися параметром ethernet" + #: ../src/libnm-core-impl/nm-setting-connection.c:1005 #, c-format msgid "setting required for connection of type '%s'" @@ -1945,7 +1962,11 @@ msgstr "" "У записі з'єднання закритого ключа InfiniBand не вказано назви батьківського " "інтерфейсу" -#: ../src/libnm-core-impl/nm-setting-infiniband.c:264 +#: ../src/libnm-core-impl/nm-setting-infiniband.c:248 +msgid "the values 0 and 0x8000 are not allowed" +msgstr "не можна використовувати значення 0 і 0x8000" + +#: ../src/libnm-core-impl/nm-setting-infiniband.c:274 #, c-format msgid "" "interface name of software infiniband device must be '%s' or unset (instead " @@ -1954,7 +1975,19 @@ msgstr "" "назвою інтерфейсу програмного пристрою infiniband має бути «%s» або назву " "має бути не встановлено (замість неї має бути «%s»)" -#: ../src/libnm-core-impl/nm-setting-infiniband.c:292 +#: ../src/libnm-core-impl/nm-setting-infiniband.c:282 +#, c-format +#| msgid "" +#| "interface name of software infiniband device must be '%s' or unset " +#| "(instead it is '%s')" +msgid "" +"interface name of software infiniband device with MAC address must be unset " +"(instead it is '%s')" +msgstr "" +"назву інтерфейсу програмного пристрою infiniband з MAC-адресою має бути не" +" встановлено (замість неї має бути «%s»)" + +#: ../src/libnm-core-impl/nm-setting-infiniband.c:310 #, c-format msgid "mtu can be at most %u but it is %u" msgstr "mtu не може перевищувати %u, але маємо %u" @@ -3132,230 +3165,230 @@ msgstr "некоректний тип D-Bus «%s»" msgid "invalid link-watchers: %s" msgstr "некоректне значення link-watchers: %s" -#: ../src/libnm-core-impl/nm-utils.c:2256 +#: ../src/libnm-core-impl/nm-utils.c:2255 #, c-format msgid "'%s' is not a valid handle." msgstr "«%s» не є коректним дескриптором." -#: ../src/libnm-core-impl/nm-utils.c:2404 +#: ../src/libnm-core-impl/nm-utils.c:2403 #, c-format msgid "'%s' unexpected: parent already specified." msgstr "Неочікуване «%s»: батьківський запис вже вказано." -#: ../src/libnm-core-impl/nm-utils.c:2422 +#: ../src/libnm-core-impl/nm-utils.c:2421 #, c-format msgid "invalid handle: '%s'" msgstr "некоректний дескриптор: «%s»" -#: ../src/libnm-core-impl/nm-utils.c:2444 +#: ../src/libnm-core-impl/nm-utils.c:2443 msgid "parent not specified." msgstr "не вказано батьківський запис." -#: ../src/libnm-core-impl/nm-utils.c:2508 +#: ../src/libnm-core-impl/nm-utils.c:2507 #, c-format msgid "unsupported qdisc option: '%s'." msgstr "непідтримуваний параметр qdisc: «%s»." -#: ../src/libnm-core-impl/nm-utils.c:2638 +#: ../src/libnm-core-impl/nm-utils.c:2637 msgid "action name missing." msgstr "не вказано назви дії." -#: ../src/libnm-core-impl/nm-utils.c:2663 +#: ../src/libnm-core-impl/nm-utils.c:2662 #, c-format msgid "unsupported action option: '%s'." msgstr "непідтримуваний параметр дії: «%s»." -#: ../src/libnm-core-impl/nm-utils.c:2800 +#: ../src/libnm-core-impl/nm-utils.c:2799 msgid "invalid action: " msgstr "некоректна дія: " -#: ../src/libnm-core-impl/nm-utils.c:2804 +#: ../src/libnm-core-impl/nm-utils.c:2803 #, c-format msgid "unsupported tfilter option: '%s'." msgstr "непідтримуваний параметр tfilter: «%s»." -#: ../src/libnm-core-impl/nm-utils.c:3104 +#: ../src/libnm-core-impl/nm-utils.c:3103 #, c-format msgid "failed stat file %s: %s" msgstr "не вдалося отримати статистичні дані щодо файла %s: %s" -#: ../src/libnm-core-impl/nm-utils.c:3115 +#: ../src/libnm-core-impl/nm-utils.c:3114 #, c-format msgid "not a file (%s)" msgstr "не є файлом (%s)" -#: ../src/libnm-core-impl/nm-utils.c:3126 +#: ../src/libnm-core-impl/nm-utils.c:3125 #, c-format msgid "invalid file owner %d for %s" msgstr "некоректний власник файла, %d, %s" -#: ../src/libnm-core-impl/nm-utils.c:3138 +#: ../src/libnm-core-impl/nm-utils.c:3137 #, c-format msgid "file permissions for %s" msgstr "файлові права доступу до %s" -#: ../src/libnm-core-impl/nm-utils.c:3148 +#: ../src/libnm-core-impl/nm-utils.c:3147 #, c-format msgid "reject %s" msgstr "відмовити %s" -#: ../src/libnm-core-impl/nm-utils.c:3168 +#: ../src/libnm-core-impl/nm-utils.c:3167 #, c-format msgid "path is not absolute (%s)" msgstr "шлях не є абсолютним (%s)" -#: ../src/libnm-core-impl/nm-utils.c:3183 +#: ../src/libnm-core-impl/nm-utils.c:3182 #, c-format msgid "Plugin file does not exist (%s)" msgstr "Файла додатка не існує (%s)" -#: ../src/libnm-core-impl/nm-utils.c:3192 +#: ../src/libnm-core-impl/nm-utils.c:3191 #, c-format msgid "Plugin is not a valid file (%s)" msgstr "Додаток не є коректним файлом (%s)" -#: ../src/libnm-core-impl/nm-utils.c:3203 +#: ../src/libnm-core-impl/nm-utils.c:3202 #, c-format msgid "libtool archives are not supported (%s)" msgstr "Підтримки архівів libtool не передбачено (%s)" -#: ../src/libnm-core-impl/nm-utils.c:3280 +#: ../src/libnm-core-impl/nm-utils.c:3279 #, c-format msgid "Could not find \"%s\" binary" msgstr "Не вдалося знайти виконуваний файл «%s»" -#: ../src/libnm-core-impl/nm-utils.c:4103 +#: ../src/libnm-core-impl/nm-utils.c:4102 msgid "unknown secret flags" msgstr "невідомі прапорці реєстраційних даних" -#: ../src/libnm-core-impl/nm-utils.c:4113 +#: ../src/libnm-core-impl/nm-utils.c:4112 msgid "conflicting secret flags" msgstr "конфлікт прапорців реєстраційних даних" -#: ../src/libnm-core-impl/nm-utils.c:4124 +#: ../src/libnm-core-impl/nm-utils.c:4123 msgid "secret flags must not be \"not-required\"" msgstr "прапорці реєстраційних даних не можуть бути «not-required»" -#: ../src/libnm-core-impl/nm-utils.c:4132 +#: ../src/libnm-core-impl/nm-utils.c:4131 msgid "unsupported secret flags" msgstr "непідтримувані прапорці реєстраційних даних" -#: ../src/libnm-core-impl/nm-utils.c:4162 +#: ../src/libnm-core-impl/nm-utils.c:4161 msgid "can't be simultaneously disabled and enabled" msgstr "не може бути одночасно вимкнено і увімкнено" -#: ../src/libnm-core-impl/nm-utils.c:4170 +#: ../src/libnm-core-impl/nm-utils.c:4169 msgid "WPS is required" msgstr "Потрібна WPS" -#: ../src/libnm-core-impl/nm-utils.c:4238 +#: ../src/libnm-core-impl/nm-utils.c:4237 #, c-format msgid "not a valid ethernet MAC address for mask at position %lld" msgstr "некоректна адреса MAC ethernet для маски у позиції %lld" -#: ../src/libnm-core-impl/nm-utils.c:4257 +#: ../src/libnm-core-impl/nm-utils.c:4256 #, c-format msgid "not a valid ethernet MAC address #%u at position %lld" msgstr "некоректна адреса MAC ethernet #%u у позиції %lld" -#: ../src/libnm-core-impl/nm-utils.c:4889 +#: ../src/libnm-core-impl/nm-utils.c:4888 msgid "not valid utf-8" msgstr "некоректні дані UTF-8" -#: ../src/libnm-core-impl/nm-utils.c:4910 -#: ../src/libnm-core-impl/nm-utils.c:4963 +#: ../src/libnm-core-impl/nm-utils.c:4909 +#: ../src/libnm-core-impl/nm-utils.c:4962 msgid "is not a JSON object" msgstr "не є об'єктом JSON" -#: ../src/libnm-core-impl/nm-utils.c:4939 +#: ../src/libnm-core-impl/nm-utils.c:4938 msgid "value is NULL" msgstr "значенням є NULL" -#: ../src/libnm-core-impl/nm-utils.c:4939 +#: ../src/libnm-core-impl/nm-utils.c:4938 msgid "value is empty" msgstr "порожнє значення" -#: ../src/libnm-core-impl/nm-utils.c:4951 +#: ../src/libnm-core-impl/nm-utils.c:4950 #, c-format msgid "invalid JSON at position %d (%s)" msgstr "некоректний код JSON на позиції %d (%s)" -#: ../src/libnm-core-impl/nm-utils.c:5079 -#: ../src/libnm-core-impl/nm-utils.c:5099 +#: ../src/libnm-core-impl/nm-utils.c:5078 +#: ../src/libnm-core-impl/nm-utils.c:5098 msgid "unterminated escape sequence" msgstr "незавершена екранована послідовність" -#: ../src/libnm-core-impl/nm-utils.c:5125 +#: ../src/libnm-core-impl/nm-utils.c:5124 #, c-format msgid "unknown attribute '%s'" msgstr "невідомий атрибут «%s»" -#: ../src/libnm-core-impl/nm-utils.c:5143 +#: ../src/libnm-core-impl/nm-utils.c:5142 #, c-format msgid "missing key-value separator '%c' after '%s'" msgstr "пропущено роздільник пар ключ-значення «%c» після «%s»" -#: ../src/libnm-core-impl/nm-utils.c:5163 +#: ../src/libnm-core-impl/nm-utils.c:5162 #, c-format msgid "invalid uint32 value '%s' for attribute '%s'" msgstr "некоректне значення uint32 «%s» атрибута «%s»" -#: ../src/libnm-core-impl/nm-utils.c:5177 +#: ../src/libnm-core-impl/nm-utils.c:5176 #, c-format msgid "invalid int32 value '%s' for attribute '%s'" msgstr "некоректне значення int32 «%s» атрибута «%s»" -#: ../src/libnm-core-impl/nm-utils.c:5190 +#: ../src/libnm-core-impl/nm-utils.c:5189 #, c-format msgid "invalid uint64 value '%s' for attribute '%s'" msgstr "некоректне значення uint64 «%s» атрибута «%s»" -#: ../src/libnm-core-impl/nm-utils.c:5203 +#: ../src/libnm-core-impl/nm-utils.c:5202 #, c-format msgid "invalid uint8 value '%s' for attribute '%s'" msgstr "некоректне значення uint8 «%s» атрибута «%s»" -#: ../src/libnm-core-impl/nm-utils.c:5217 +#: ../src/libnm-core-impl/nm-utils.c:5216 #, c-format msgid "invalid boolean value '%s' for attribute '%s'" msgstr "некоректне булеве значення «%s» атрибута «%s»" -#: ../src/libnm-core-impl/nm-utils.c:5231 +#: ../src/libnm-core-impl/nm-utils.c:5230 #, c-format msgid "unsupported attribute '%s' of type '%s'" msgstr "непідтримуваний атрибут «%s» типу «%s»" -#: ../src/libnm-core-impl/nm-utils.c:5532 +#: ../src/libnm-core-impl/nm-utils.c:5531 #, c-format msgid "Bridge VLANs %d and %d are not sorted by ascending vid" msgstr "VLAN містка %d і %d не упорядковано за зростанням vid" -#: ../src/libnm-core-impl/nm-utils.c:5556 +#: ../src/libnm-core-impl/nm-utils.c:5555 #, c-format msgid "duplicate bridge VLAN vid %u" msgstr "дублікат містка vid VLAN %u" -#: ../src/libnm-core-impl/nm-utils.c:5568 +#: ../src/libnm-core-impl/nm-utils.c:5567 msgid "only one VLAN can be the PVID" msgstr "лише одна з VLAN може бути PVID" -#: ../src/libnm-core-impl/nm-utils.c:5613 +#: ../src/libnm-core-impl/nm-utils.c:5612 #, c-format msgid "unknown flags 0x%x" msgstr "невідомі прапорці 0x%x" -#: ../src/libnm-core-impl/nm-utils.c:5625 +#: ../src/libnm-core-impl/nm-utils.c:5624 msgid "" "'fqdn-no-update' and 'fqdn-serv-update' flags cannot be set at the same time" msgstr "" "не можна одночасно встановлювати прапорці «fqdn-no-update» і «fqdn-serv-" "update»" -#: ../src/libnm-core-impl/nm-utils.c:5636 +#: ../src/libnm-core-impl/nm-utils.c:5635 msgid "'fqdn-clear-flags' flag is incompatible with other FQDN flags" msgstr "прапорець «fqdn-clear-flags» є несумісним із іншими прапорцями FQDN" -#: ../src/libnm-core-impl/nm-utils.c:5644 +#: ../src/libnm-core-impl/nm-utils.c:5643 msgid "DHCPv6 does not support the E (encoded) FQDN flag" msgstr "у DHCPv6 не передбачено підтримки прапорця E (закодовано) FQDN" @@ -3772,36 +3805,36 @@ msgstr "Не вдалося розпізнати сертифікат" msgid "not a valid private key" msgstr "не є коректним закритим ключем" -#: ../src/libnm-glib-aux/nm-shared-utils.c:2669 +#: ../src/libnm-glib-aux/nm-shared-utils.c:2667 #, c-format msgid "object class '%s' has no property named '%s'" msgstr "у класі об'єктів «%s» немає властивості із назвою «%s»" -#: ../src/libnm-glib-aux/nm-shared-utils.c:2678 +#: ../src/libnm-glib-aux/nm-shared-utils.c:2676 #, c-format msgid "property '%s' of object class '%s' is not writable" msgstr "властивість «%s» класу об'єктів «%s» є непридатною до запису" -#: ../src/libnm-glib-aux/nm-shared-utils.c:2687 +#: ../src/libnm-glib-aux/nm-shared-utils.c:2685 #, c-format msgid "" "construct property \"%s\" for object '%s' can't be set after construction" msgstr "" "властивість construct «%s» об'єкта «%s» не можна встановлювати після побудови" -#: ../src/libnm-glib-aux/nm-shared-utils.c:2698 +#: ../src/libnm-glib-aux/nm-shared-utils.c:2696 #, c-format msgid "'%s::%s' is not a valid property name; '%s' is not a GObject subtype" msgstr "«%s::%s» не є коректною назвою властивості; «%s» не є підтипом GObject" -#: ../src/libnm-glib-aux/nm-shared-utils.c:2711 +#: ../src/libnm-glib-aux/nm-shared-utils.c:2709 #, c-format msgid "unable to set property '%s' of type '%s' from value of type '%s'" msgstr "" "не вдалося встановити значення властивості «%s» типу «%s» на основі значення " "типу «%s»" -#: ../src/libnm-glib-aux/nm-shared-utils.c:2723 +#: ../src/libnm-glib-aux/nm-shared-utils.c:2721 #, c-format msgid "" "value \"%s\" of type '%s' is invalid or out of range for property '%s' of " @@ -3810,48 +3843,48 @@ msgstr "" "значення «%s» типу «%s» є некоректним для властивості «%s» типу «%s» або не " "належить до припустимого діапазону значень" -#: ../src/libnm-glib-aux/nm-shared-utils.c:5688 +#: ../src/libnm-glib-aux/nm-shared-utils.c:5687 msgid "interface name is missing" msgstr "пропущено назву інтерфейсу" -#: ../src/libnm-glib-aux/nm-shared-utils.c:5696 +#: ../src/libnm-glib-aux/nm-shared-utils.c:5695 msgid "interface name is too short" msgstr "назва інтерфейсу є надто короткою" -#: ../src/libnm-glib-aux/nm-shared-utils.c:5704 +#: ../src/libnm-glib-aux/nm-shared-utils.c:5703 msgid "interface name is reserved" msgstr "таку назву інтерфейсу зарезервовано" -#: ../src/libnm-glib-aux/nm-shared-utils.c:5717 +#: ../src/libnm-glib-aux/nm-shared-utils.c:5716 msgid "interface name contains an invalid character" msgstr "назва інтерфейсу містить некоректний символ" -#: ../src/libnm-glib-aux/nm-shared-utils.c:5725 +#: ../src/libnm-glib-aux/nm-shared-utils.c:5724 msgid "interface name is longer than 15 characters" msgstr "назва інтерфейсу є довшою за 15 символів" -#: ../src/libnm-glib-aux/nm-shared-utils.c:5750 +#: ../src/libnm-glib-aux/nm-shared-utils.c:5749 #, c-format msgid "'%%' is not allowed in interface names" msgstr "«%%» не можна використовувати у назвах інтерфейсів" -#: ../src/libnm-glib-aux/nm-shared-utils.c:5762 +#: ../src/libnm-glib-aux/nm-shared-utils.c:5761 #, c-format msgid "'%s' is not allowed as interface name" msgstr "«%s» не можна використовувати як назву інтерфейсу" -#: ../src/libnm-glib-aux/nm-shared-utils.c:5784 +#: ../src/libnm-glib-aux/nm-shared-utils.c:5783 msgid "" "interface name must be alphanumerical with no forward or backward slashes" msgstr "" "назва інтерфейсу має складатися з літер і цифр без початкового і " "завершального символів похилої риски" -#: ../src/libnm-glib-aux/nm-shared-utils.c:5801 +#: ../src/libnm-glib-aux/nm-shared-utils.c:5800 msgid "interface name must not be empty" msgstr "назва інтерфейсу не може бути порожньою" -#: ../src/libnm-glib-aux/nm-shared-utils.c:5809 +#: ../src/libnm-glib-aux/nm-shared-utils.c:5808 msgid "interface name must be UTF-8 encoded" msgstr "назва інтерфейсу має бути набором символів у кодуванні UTF-8" @@ -3894,8 +3927,8 @@ msgstr "«%s» є неоднозначним: %s" msgid "missing name, try one of [%s]" msgstr "пропущено назву, спробуйте одну з таких назв: [%s]" -#: ../src/libnmc-base/nm-client-utils.c:248 ../src/nmcli/connections.c:3612 -#: ../src/nmcli/connections.c:3670 +#: ../src/libnmc-base/nm-client-utils.c:248 ../src/nmcli/connections.c:3734 +#: ../src/nmcli/connections.c:3792 #, c-format msgid "'%s' not among [%s]" msgstr "«%s» немає серед [%s]" @@ -3907,8 +3940,8 @@ msgstr "«%s» немає серед [%s]" #: ../src/libnmc-setting/nm-meta-setting-desc.c:1837 #: ../src/libnmc-setting/nm-meta-setting-desc.c:1868 #: ../src/libnmc-setting/nm-meta-setting-desc.c:2832 -#: ../src/libnmc-setting/nm-meta-setting-desc.c:2890 ../src/nmcli/common.c:1477 -#: ../src/nmcli/connections.c:77 ../src/nmcli/connections.c:87 +#: ../src/libnmc-setting/nm-meta-setting-desc.c:2890 ../src/nmcli/common.c:1625 +#: ../src/nmcli/connections.c:78 ../src/nmcli/connections.c:88 #: ../src/nmcli/devices.c:484 ../src/nmcli/devices.c:591 #: ../src/nmcli/devices.c:597 ../src/nmcli/general.c:30 #: ../src/nmcli/general.c:85 ../src/nmcli/general.c:91 @@ -3955,7 +3988,7 @@ msgstr "з'єднання (встановлення другорядних з'є msgid "connected" msgstr "з'єднано" -#: ../src/libnmc-base/nm-client-utils.c:303 ../src/nmcli/connections.c:80 +#: ../src/libnmc-base/nm-client-utils.c:303 ../src/nmcli/connections.c:81 msgid "deactivating" msgstr "деактивація" @@ -3984,8 +4017,8 @@ msgstr "деактивація (ззовні)" #: ../src/libnmc-base/nm-client-utils.c:342 #: ../src/libnmc-setting/nm-meta-setting-desc.c:883 #: ../src/libnmc-setting/nm-meta-setting-desc.c:2824 -#: ../src/nmcli/connections.c:5381 ../src/nmcli/connections.c:7326 -#: ../src/nmcli/connections.c:7327 ../src/nmcli/devices.c:590 +#: ../src/nmcli/connections.c:5491 ../src/nmcli/connections.c:7446 +#: ../src/nmcli/connections.c:7447 ../src/nmcli/devices.c:590 #: ../src/nmcli/devices.c:596 ../src/nmcli/devices.c:1382 #: ../src/nmcli/general.c:92 ../src/nmcli/utils.h:313 msgid "yes" @@ -3994,8 +4027,8 @@ msgstr "так" #: ../src/libnmc-base/nm-client-utils.c:343 #: ../src/libnmc-setting/nm-meta-setting-desc.c:883 #: ../src/libnmc-setting/nm-meta-setting-desc.c:2827 -#: ../src/nmcli/connections.c:5380 ../src/nmcli/connections.c:7326 -#: ../src/nmcli/connections.c:7327 ../src/nmcli/devices.c:590 +#: ../src/nmcli/connections.c:5490 ../src/nmcli/connections.c:7446 +#: ../src/nmcli/connections.c:7447 ../src/nmcli/devices.c:590 #: ../src/nmcli/devices.c:596 ../src/nmcli/devices.c:1382 #: ../src/nmcli/general.c:93 ../src/nmcli/utils.h:313 msgid "no" @@ -4014,8 +4047,8 @@ msgid "No reason given" msgstr "Причину не вказано" #. We should not really come here -#: ../src/libnmc-base/nm-client-utils.c:354 ../src/nmcli/connections.c:3632 -#: ../src/nmcli/connections.c:3691 +#: ../src/libnmc-base/nm-client-utils.c:354 ../src/nmcli/connections.c:3754 +#: ../src/nmcli/connections.c:3813 #, c-format msgid "Unknown error" msgstr "Невідома помилка" @@ -4412,7 +4445,7 @@ msgstr "Користувач" #: ../src/libnmc-base/nm-vpn-helpers.c:143 #: ../src/libnmc-base/nm-vpn-helpers.c:147 #: ../src/libnmc-base/nm-vpn-helpers.c:153 -#: ../src/libnmc-base/nm-vpn-helpers.c:158 ../src/nmcli/devices.c:4662 +#: ../src/libnmc-base/nm-vpn-helpers.c:158 ../src/nmcli/devices.c:4668 #: ../src/nmtui/nmt-page-dsl.c:64 ../src/nmtui/nmt-page-wifi.c:271 #: ../src/nmtui/nmt-page-wifi.c:305 ../src/nmtui/nmt-page-wifi.c:344 msgid "Password" @@ -9313,16 +9346,23 @@ msgstr "" "на тимчасові адреси, які налаштовано за допомогою відповідної властивості." #: ../src/libnmc-setting/settings-docs.h.in:258 +#| msgid "" +#| "A list of IPv6 addresses and their prefix length. Multiple addresses can " +#| "be separated by comma. For example \"2001:db8:85a3::8a2e:370:7334/64, " +#| "2001:db8:85a3::5/64\". The addresses are listed in increasing priority, " +#| "meaning the last address will be the primary address." msgid "" "A list of IPv6 addresses and their prefix length. Multiple addresses can be " "separated by comma. For example \"2001:db8:85a3::8a2e:370:7334/64, 2001:" -"db8:85a3::5/64\". The addresses are listed in increasing priority, meaning " -"the last address will be the primary address." +"db8:85a3::5/64\". The addresses are listed in decreasing priority, meaning " +"the first address will be the primary address. This can make a difference " +"with IPv6 source address selection (RFC 6724, section 5)." msgstr "" -"Список адрес IPv46та їхніх довжин префікса. Декілька адрес можна " +"Список адрес IPv6 та їхніх довжин префікса. Декілька адрес можна " "відокремлювати комами. Приклад: \"2001:db8:85a3::8a2e:370:7334/64, 2001:" -"db8:85a3::5/64\". Список адрес складається за збільшенням пріоритетності, " -"тобто остання адреса буде основною." +"db8:85a3::5/64\". Список адрес складається за зменшенням пріоритетності, " +"тобто перша адреса буде основною. Це може вплинути на вибір початкової адреси" +" при використанні IPv6 (RFC 6724, розділ 5)." #: ../src/libnmc-setting/settings-docs.h.in:260 msgid "" @@ -10810,28 +10850,28 @@ msgstr "nmcli успішно зареєстровано як агент polkit.\ msgid "Error: polkit agent initialization failed: %s" msgstr "Помилка: не вдалося ініціалізувати агент polkit: %s" -#: ../src/nmcli/common.c:360 ../src/nmcli/common.c:361 -#: ../src/nmcli/common.c:391 ../src/nmcli/common.c:392 -#: ../src/nmcli/connections.c:1621 +#: ../src/nmcli/common.c:362 ../src/nmcli/common.c:363 +#: ../src/nmcli/common.c:393 ../src/nmcli/common.c:394 +#: ../src/nmcli/connections.c:1737 msgid "GROUP" msgstr "ГРУПА" -#: ../src/nmcli/common.c:639 +#: ../src/nmcli/common.c:642 #, c-format msgid "Error: openconnect failed: %s\n" msgstr "Помилка: не вдалося виконати openconnect: %s\n" -#: ../src/nmcli/common.c:646 +#: ../src/nmcli/common.c:649 #, c-format msgid "Error: openconnect failed with status %d\n" msgstr "Помилка: виконання openconnect завершилося невдало зі станом %d\n" -#: ../src/nmcli/common.c:648 +#: ../src/nmcli/common.c:651 #, c-format msgid "Error: openconnect failed with signal %d\n" msgstr "Помилка: виконання openconnect завершилося невдало із сигналом %d\n" -#: ../src/nmcli/common.c:740 +#: ../src/nmcli/common.c:743 #, c-format msgid "" "Warning: password for '%s' not given in 'passwd-file' and nmcli cannot ask " @@ -10840,132 +10880,141 @@ msgstr "" "Попередження: у «passwd-file» не вказано пароля до «%s», а nmcli не може " "запитати про пароль без параметра «--ask».\n" -#: ../src/nmcli/common.c:1261 +#: ../src/nmcli/common.c:1264 #, c-format msgid "Error: Could not create NMClient object: %s." msgstr "Помилка: не вдалося створити об'єкт NMClient: %s." -#: ../src/nmcli/common.c:1287 +#: ../src/nmcli/common.c:1395 +msgid "Error: command doesn't support --offline mode." +msgstr "Помилка: у команді не передбачено підтримки режиму --offline." + +#: ../src/nmcli/common.c:1435 msgid "Error: NetworkManager is not running." msgstr "Помилка: NetworkManager не працює." -#: ../src/nmcli/common.c:1390 +#: ../src/nmcli/common.c:1538 #, c-format msgid "Error: argument '%s' not understood. Try passing --help instead." msgstr "" "Помилка: параметр «%s» є невідомим. Спробуйте скористатися параметром --help." -#: ../src/nmcli/common.c:1401 +#: ../src/nmcli/common.c:1549 msgid "Error: missing argument. Try passing --help." msgstr "Помилка: пропущено параметр. Спробуйте скористатися параметром --help." -#: ../src/nmcli/common.c:1466 +#: ../src/nmcli/common.c:1614 msgid "access denied" msgstr "доступ заборонено" -#: ../src/nmcli/common.c:1468 +#: ../src/nmcli/common.c:1616 msgid "NetworkManager is not running" msgstr "NetworkManager не запущено" -#: ../src/nmcli/common.c:1478 +#: ../src/nmcli/common.c:1626 msgid "none" msgstr "немає" -#: ../src/nmcli/common.c:1479 +#: ../src/nmcli/common.c:1627 msgid "portal" msgstr "портал" -#: ../src/nmcli/common.c:1480 +#: ../src/nmcli/common.c:1628 msgid "limited" msgstr "обмежена" -#: ../src/nmcli/common.c:1481 +#: ../src/nmcli/common.c:1629 msgid "full" msgstr "повна" #. define some prompts for connection editor -#: ../src/nmcli/connections.c:59 +#: ../src/nmcli/connections.c:60 msgid "Setting name? " msgstr "Назва параметра? " -#: ../src/nmcli/connections.c:60 +#: ../src/nmcli/connections.c:61 msgid "Property name? " msgstr "Назва властивості? " -#: ../src/nmcli/connections.c:61 +#: ../src/nmcli/connections.c:62 msgid "Enter connection type: " msgstr "Вкажіть тип з'єднання: " #. define some other prompts -#: ../src/nmcli/connections.c:65 +#: ../src/nmcli/connections.c:66 msgid "Connection (name, UUID, or path): " msgstr "З'єднання (назва, UUID або шлях):" -#: ../src/nmcli/connections.c:66 +#: ../src/nmcli/connections.c:67 msgid "VPN connection (name, UUID, or path): " msgstr "З'єднання VPN (назва, UUID або шлях):" -#: ../src/nmcli/connections.c:67 +#: ../src/nmcli/connections.c:68 msgid "Connection(s) (name, UUID, or path): " msgstr "З'єднання (назва, UUID або шлях):" -#: ../src/nmcli/connections.c:68 +#: ../src/nmcli/connections.c:69 msgid "Connection(s) (name, UUID, path or apath): " msgstr "З'єднання (назва, UUID, шлях або apath):" -#: ../src/nmcli/connections.c:78 +#: ../src/nmcli/connections.c:79 msgid "activating" msgstr "активація" -#: ../src/nmcli/connections.c:79 +#: ../src/nmcli/connections.c:80 msgid "activated" msgstr "активовано" -#: ../src/nmcli/connections.c:81 +#: ../src/nmcli/connections.c:82 msgid "deactivated" msgstr "вимкнено" -#: ../src/nmcli/connections.c:88 +#: ../src/nmcli/connections.c:89 msgid "VPN connecting (prepare)" msgstr "З'єднання VPN (приготування)" -#: ../src/nmcli/connections.c:90 +#: ../src/nmcli/connections.c:91 msgid "VPN connecting (need authentication)" msgstr "З'єднання VPN (потрібне розпізнавання)" -#: ../src/nmcli/connections.c:91 +#: ../src/nmcli/connections.c:92 msgid "VPN connecting" msgstr "З'єднання VPN" -#: ../src/nmcli/connections.c:93 +#: ../src/nmcli/connections.c:94 msgid "VPN connecting (getting IP configuration)" msgstr "З'єднання VPN (отримання налаштувань IP)" -#: ../src/nmcli/connections.c:94 +#: ../src/nmcli/connections.c:95 msgid "VPN connected" msgstr "VPN з'єднано" -#: ../src/nmcli/connections.c:95 +#: ../src/nmcli/connections.c:96 msgid "VPN connection failed" msgstr "Невдала спроба з'єднання VPN" -#: ../src/nmcli/connections.c:96 +#: ../src/nmcli/connections.c:97 msgid "VPN disconnected" msgstr "VPN роз'єднано" -#: ../src/nmcli/connections.c:526 +#: ../src/nmcli/connections.c:172 ../src/nmcli/connections.c:232 +#, c-format +msgid "Error: Error writting connection: %s" +msgstr "Помилка: помилка під час запису з'єднання: %s" + +#: ../src/nmcli/connections.c:652 msgid "WiMax is no longer supported" msgstr "Підтримку WiMax припинено" -#: ../src/nmcli/connections.c:532 +#: ../src/nmcli/connections.c:658 msgid "WEP encryption is known to be insecure" msgstr "Відомо, що шифрування WEP не є безпечним" -#: ../src/nmcli/connections.c:614 +#: ../src/nmcli/connections.c:740 msgid "never" msgstr "ніколи" -#: ../src/nmcli/connections.c:965 +#: ../src/nmcli/connections.c:1089 #, c-format msgid "" "Usage: nmcli connection { COMMAND | help }\n" @@ -11043,7 +11092,7 @@ msgstr "" " export [id | uuid | path] <ідентифікатор> [<файл результатів>]\n" "\n" -#: ../src/nmcli/connections.c:991 +#: ../src/nmcli/connections.c:1115 #, c-format msgid "" "Usage: nmcli connection show { ARGUMENTS | help }\n" @@ -11091,7 +11140,7 @@ msgstr "" "Якщо вказано параметр «--active», братимуться до уваги лише активні профілі. " "Загальний параметр --show-secrets покаже також пов'язані паролі.\n" -#: ../src/nmcli/connections.c:1012 +#: ../src/nmcli/connections.c:1136 #, c-format msgid "" "Usage: nmcli connection up { ARGUMENTS | help }\n" @@ -11137,7 +11186,7 @@ msgstr "" "passwd-file - файл з паролями, потрібними для активації з'єднання\n" "\n" -#: ../src/nmcli/connections.c:1035 +#: ../src/nmcli/connections.c:1159 #, c-format msgid "" "Usage: nmcli connection down { ARGUMENTS | help }\n" @@ -11159,7 +11208,7 @@ msgstr "" "назвою, UUID або шляхом D-Bus.\n" "\n" -#: ../src/nmcli/connections.c:1047 +#: ../src/nmcli/connections.c:1171 #, c-format msgid "" "Usage: nmcli connection add { ARGUMENTS | help }\n" @@ -11487,7 +11536,7 @@ msgstr "" " [ip6 <адреса IPv6>] [gw6 <шлюз IPv6>]\n" "\n" -#: ../src/nmcli/connections.c:1177 +#: ../src/nmcli/connections.c:1301 #, c-format msgid "" "Usage: nmcli connection modify { ARGUMENTS | help }\n" @@ -11544,7 +11593,7 @@ msgstr "" "nmcli con mod em1-1 remove sriov\n" "\n" -#: ../src/nmcli/connections.c:1205 +#: ../src/nmcli/connections.c:1329 #, c-format msgid "" "Usage: nmcli connection clone { ARGUMENTS | help }\n" @@ -11567,7 +11616,7 @@ msgstr "" "ідентифікатора (задається параметром <нова назва>).\n" "\n" -#: ../src/nmcli/connections.c:1217 +#: ../src/nmcli/connections.c:1341 #, c-format msgid "" "Usage: nmcli connection edit { ARGUMENTS | help }\n" @@ -11595,7 +11644,7 @@ msgstr "" "Додати новий профіль з'єднання за допомогою інтерактивного редактора.\n" "\n" -#: ../src/nmcli/connections.c:1232 +#: ../src/nmcli/connections.c:1356 #, c-format msgid "" "Usage: nmcli connection delete { ARGUMENTS | help }\n" @@ -11614,7 +11663,7 @@ msgstr "" "Профілі можна вказати за допомогою назв, UUID або шляху D-Bus.\n" "\n" -#: ../src/nmcli/connections.c:1243 +#: ../src/nmcli/connections.c:1367 #, c-format msgid "" "Usage: nmcli connection monitor { ARGUMENTS | help }\n" @@ -11636,7 +11685,7 @@ msgstr "" "Стежить за усіма профілями з'єднань, якщо конкретний профіль не вказано.\n" "\n" -#: ../src/nmcli/connections.c:1255 +#: ../src/nmcli/connections.c:1379 #, c-format msgid "" "Usage: nmcli connection reload { help }\n" @@ -11649,7 +11698,7 @@ msgstr "" "Перезавантажити усіх файли з'єднань з диска.\n" "\n" -#: ../src/nmcli/connections.c:1263 +#: ../src/nmcli/connections.c:1387 #, c-format msgid "" "Usage: nmcli connection load { ARGUMENTS | help }\n" @@ -11672,7 +11721,7 @@ msgstr "" "того, щоб завантажити до NetworkManager найсвіжіші налаштування.\n" "\n" -#: ../src/nmcli/connections.c:1276 +#: ../src/nmcli/connections.c:1400 #, c-format msgid "" "Usage: nmcli connection import { ARGUMENTS | help }\n" @@ -11697,7 +11746,7 @@ msgstr "" "імпортуються додатками VPN NetworkManager.\n" "\n" -#: ../src/nmcli/connections.c:1289 +#: ../src/nmcli/connections.c:1413 #, c-format msgid "" "Usage: nmcli connection export { ARGUMENTS | help }\n" @@ -11717,7 +11766,7 @@ msgstr "" "Дані спрямовуватимуться до стандартного виведення або до вказаного файла.\n" "\n" -#: ../src/nmcli/connections.c:1300 +#: ../src/nmcli/connections.c:1424 #, c-format msgid "" "Usage: nmcli connection migrate { ARGUMENTS | help }\n" @@ -11736,329 +11785,329 @@ msgstr "" "зокрема «keyfile» (типовий) або «ifcfg-rh».\n" "\n" -#: ../src/nmcli/connections.c:1391 +#: ../src/nmcli/connections.c:1507 #, c-format msgid "Error updating secrets for %s: %s\n" msgstr "Помилка під час проби оновлення паролів для %s: %s\n" -#: ../src/nmcli/connections.c:1442 +#: ../src/nmcli/connections.c:1558 msgid "Connection profile details" msgstr "Параметри профілю з'єднання" -#: ../src/nmcli/connections.c:1460 ../src/nmcli/connections.c:1567 +#: ../src/nmcli/connections.c:1576 ../src/nmcli/connections.c:1683 #, c-format msgid "Error: 'connection show': %s" msgstr "Помилка: «connection show»: %s" -#: ../src/nmcli/connections.c:1549 +#: ../src/nmcli/connections.c:1665 msgid "Active connection details" msgstr "Активувати параметри з'єднання" -#: ../src/nmcli/connections.c:1678 ../src/nmcli/devices.c:1637 +#: ../src/nmcli/connections.c:1794 ../src/nmcli/devices.c:1637 #: ../src/nmcli/devices.c:1654 ../src/nmcli/devices.c:1672 #: ../src/nmcli/devices.c:1691 ../src/nmcli/devices.c:1755 #: ../src/nmcli/devices.c:1884 msgid "NAME" msgstr "НАЗВА" -#: ../src/nmcli/connections.c:1778 +#: ../src/nmcli/connections.c:1894 #, c-format msgid "invalid field '%s'; allowed fields: %s and %s, or %s,%s" msgstr "некоректне поле «%s»; дозволені поля: %s і %s або %s,%s" -#: ../src/nmcli/connections.c:1795 ../src/nmcli/connections.c:1806 +#: ../src/nmcli/connections.c:1911 ../src/nmcli/connections.c:1922 #, c-format msgid "'%s' has to be alone" msgstr "«%s» має бути єдиним" -#: ../src/nmcli/connections.c:2061 +#: ../src/nmcli/connections.c:2178 #, c-format msgid "incorrect string '%s' of '--order' option" msgstr "помилковий рядок «%s» у параметрі «--order»" -#: ../src/nmcli/connections.c:2085 +#: ../src/nmcli/connections.c:2202 #, c-format msgid "incorrect item '%s' in '--order' option" msgstr "помилковий пункт «%s» у параметрі «--order»" -#: ../src/nmcli/connections.c:2125 +#: ../src/nmcli/connections.c:2247 msgid "No connection specified" msgstr "Не вказано з'єднання" -#: ../src/nmcli/connections.c:2138 +#: ../src/nmcli/connections.c:2260 #, c-format msgid "%s argument is missing" msgstr "пропущено аргумент %s" -#: ../src/nmcli/connections.c:2159 +#: ../src/nmcli/connections.c:2281 #, c-format msgid "unknown connection '%s'" msgstr "невідоме з'єднання «%s»" -#: ../src/nmcli/connections.c:2188 +#: ../src/nmcli/connections.c:2310 msgid "'--order' argument is missing" msgstr "пропущено аргумент «--order»" -#: ../src/nmcli/connections.c:2252 +#: ../src/nmcli/connections.c:2374 msgid "NetworkManager active profiles" msgstr "Активні профілі NetworkManager" -#: ../src/nmcli/connections.c:2253 +#: ../src/nmcli/connections.c:2375 msgid "NetworkManager connection profiles" msgstr "Профілі з'єднань NetworkManager" -#: ../src/nmcli/connections.c:2309 ../src/nmcli/connections.c:3030 -#: ../src/nmcli/connections.c:3042 ../src/nmcli/connections.c:3054 -#: ../src/nmcli/connections.c:3290 ../src/nmcli/connections.c:9448 -#: ../src/nmcli/connections.c:9470 ../src/nmcli/devices.c:3317 -#: ../src/nmcli/devices.c:3330 ../src/nmcli/devices.c:3342 -#: ../src/nmcli/devices.c:3646 ../src/nmcli/devices.c:3657 -#: ../src/nmcli/devices.c:3676 ../src/nmcli/devices.c:3685 -#: ../src/nmcli/devices.c:3707 ../src/nmcli/devices.c:3718 -#: ../src/nmcli/devices.c:3739 ../src/nmcli/devices.c:4303 -#: ../src/nmcli/devices.c:4314 ../src/nmcli/devices.c:4323 -#: ../src/nmcli/devices.c:4337 ../src/nmcli/devices.c:4355 -#: ../src/nmcli/devices.c:4364 ../src/nmcli/devices.c:4520 -#: ../src/nmcli/devices.c:4531 ../src/nmcli/devices.c:4750 -#: ../src/nmcli/devices.c:4929 +#: ../src/nmcli/connections.c:2431 ../src/nmcli/connections.c:3152 +#: ../src/nmcli/connections.c:3164 ../src/nmcli/connections.c:3176 +#: ../src/nmcli/connections.c:3412 ../src/nmcli/connections.c:9579 +#: ../src/nmcli/connections.c:9601 ../src/nmcli/devices.c:3323 +#: ../src/nmcli/devices.c:3336 ../src/nmcli/devices.c:3348 +#: ../src/nmcli/devices.c:3652 ../src/nmcli/devices.c:3663 +#: ../src/nmcli/devices.c:3682 ../src/nmcli/devices.c:3691 +#: ../src/nmcli/devices.c:3713 ../src/nmcli/devices.c:3724 +#: ../src/nmcli/devices.c:3745 ../src/nmcli/devices.c:4309 +#: ../src/nmcli/devices.c:4320 ../src/nmcli/devices.c:4329 +#: ../src/nmcli/devices.c:4343 ../src/nmcli/devices.c:4361 +#: ../src/nmcli/devices.c:4370 ../src/nmcli/devices.c:4526 +#: ../src/nmcli/devices.c:4537 ../src/nmcli/devices.c:4756 +#: ../src/nmcli/devices.c:4935 #, c-format msgid "Error: %s argument is missing." msgstr "Помилка: пропущено аргумент %s." -#: ../src/nmcli/connections.c:2344 +#: ../src/nmcli/connections.c:2466 #, c-format msgid "Error: %s - no such connection profile." msgstr "Помилка: профілю з'єднання %s не існує." -#: ../src/nmcli/connections.c:2436 ../src/nmcli/connections.c:3016 -#: ../src/nmcli/connections.c:3090 ../src/nmcli/connections.c:8948 -#: ../src/nmcli/connections.c:9038 ../src/nmcli/connections.c:9577 -#: ../src/nmcli/devices.c:1984 ../src/nmcli/devices.c:2254 -#: ../src/nmcli/devices.c:2427 ../src/nmcli/devices.c:2551 -#: ../src/nmcli/devices.c:2738 ../src/nmcli/devices.c:3517 -#: ../src/nmcli/devices.c:4484 ../src/nmcli/devices.c:4936 +#: ../src/nmcli/connections.c:2558 ../src/nmcli/connections.c:3138 +#: ../src/nmcli/connections.c:3212 ../src/nmcli/connections.c:9085 +#: ../src/nmcli/connections.c:9169 ../src/nmcli/connections.c:9708 +#: ../src/nmcli/devices.c:1984 ../src/nmcli/devices.c:2260 +#: ../src/nmcli/devices.c:2433 ../src/nmcli/devices.c:2557 +#: ../src/nmcli/devices.c:2744 ../src/nmcli/devices.c:3523 +#: ../src/nmcli/devices.c:4490 ../src/nmcli/devices.c:4942 #: ../src/nmcli/general.c:1067 #, c-format msgid "Error: %s." msgstr "Помилка: %s." -#: ../src/nmcli/connections.c:2528 ../src/nmcli/devices.c:4703 +#: ../src/nmcli/connections.c:2650 ../src/nmcli/devices.c:4709 #, c-format msgid "no active connection on device '%s'" msgstr "на пристрої «%s» немає активних з'єднань" -#: ../src/nmcli/connections.c:2536 +#: ../src/nmcli/connections.c:2658 msgid "no active connection or device" msgstr "немає активних з'єднань або пристроїв" -#: ../src/nmcli/connections.c:2559 +#: ../src/nmcli/connections.c:2681 #, c-format msgid "device '%s' not compatible with connection '%s': " msgstr "пристрій «%s» несумісний зі з'єднанням «%s»: " -#: ../src/nmcli/connections.c:2597 +#: ../src/nmcli/connections.c:2719 #, c-format msgid "device '%s' not compatible with connection '%s'" msgstr "пристрій «%s» несумісний зі з'єднанням «%s»" -#: ../src/nmcli/connections.c:2604 +#: ../src/nmcli/connections.c:2726 #, c-format msgid "device '%s' not found for connection '%s'" msgstr "не знайдено пристрою «%s» для з'єднання «%s»" -#: ../src/nmcli/connections.c:2612 +#: ../src/nmcli/connections.c:2734 #, c-format msgid "no device found for connection '%s'" msgstr "не виявлено пристрою для з'єднання «%s»" -#: ../src/nmcli/connections.c:2663 +#: ../src/nmcli/connections.c:2785 #, c-format msgid "Hint: use '%s' to get more details." msgstr "Підказка: скористайтеся «%s», щоб ознайомитися із подробицями." -#: ../src/nmcli/connections.c:2681 +#: ../src/nmcli/connections.c:2803 #, c-format msgid "Connection successfully activated (%s) (D-Bus active path: %s)\n" msgstr "З'єднання успішно задіяно (%s) (активний шлях D-Bus: %s)\n" -#: ../src/nmcli/connections.c:2685 ../src/nmcli/connections.c:2836 -#: ../src/nmcli/connections.c:7218 +#: ../src/nmcli/connections.c:2807 ../src/nmcli/connections.c:2958 +#: ../src/nmcli/connections.c:7338 #, c-format msgid "Connection successfully activated (D-Bus active path: %s)\n" msgstr "З'єднання успішно задіяно (активний шлях D-Bus: %s)\n" -#: ../src/nmcli/connections.c:2692 ../src/nmcli/connections.c:2815 +#: ../src/nmcli/connections.c:2814 ../src/nmcli/connections.c:2937 #, c-format msgid "Error: Connection activation failed: %s" msgstr "Помилка: не вдалося активувати з'єднання: %s" -#: ../src/nmcli/connections.c:2728 +#: ../src/nmcli/connections.c:2850 #, c-format msgid "Error: Timeout expired (%d seconds)" msgstr "Помилка: перевищено час очікування (%d секунд)." -#: ../src/nmcli/connections.c:2910 +#: ../src/nmcli/connections.c:3032 #, c-format msgid "unknown device '%s'." msgstr "невідомий пристрій, «%s»." -#: ../src/nmcli/connections.c:2918 +#: ../src/nmcli/connections.c:3040 msgid "neither a valid connection nor device given" msgstr "не вказано ні коректного з'єднання, ні пристрою" -#: ../src/nmcli/connections.c:2933 +#: ../src/nmcli/connections.c:3055 #, c-format msgid "invalid passwd-file '%s' at line %zd: %s" msgstr "некоректний файл passwd «%s» у рядку %zd: %s" -#: ../src/nmcli/connections.c:2941 +#: ../src/nmcli/connections.c:3063 #, c-format msgid "invalid passwd-file '%s': %s" msgstr "некоректний файл passwd «%s»: %s" -#: ../src/nmcli/connections.c:3064 ../src/nmcli/connections.c:9481 +#: ../src/nmcli/connections.c:3186 ../src/nmcli/connections.c:9612 #: ../src/nmcli/devices.c:1941 ../src/nmcli/devices.c:1990 -#: ../src/nmcli/devices.c:2433 ../src/nmcli/devices.c:3377 -#: ../src/nmcli/devices.c:3755 ../src/nmcli/devices.c:4374 -#: ../src/nmcli/devices.c:4537 ../src/nmcli/devices.c:4758 -#: ../src/nmcli/devices.c:4941 +#: ../src/nmcli/devices.c:2439 ../src/nmcli/devices.c:3383 +#: ../src/nmcli/devices.c:3761 ../src/nmcli/devices.c:4380 +#: ../src/nmcli/devices.c:4543 ../src/nmcli/devices.c:4764 +#: ../src/nmcli/devices.c:4947 #, c-format msgid "Error: invalid extra argument '%s'." msgstr "Помилка: некоректний додатковий аргумент, «%s»." -#: ../src/nmcli/connections.c:3098 +#: ../src/nmcli/connections.c:3220 msgid "preparing" msgstr "приготування" -#: ../src/nmcli/connections.c:3206 +#: ../src/nmcli/connections.c:3328 #, c-format msgid "Connection '%s' (%s) successfully deleted.\n" msgstr "Запис з'єднання «%s» (%s) успішно вилучено.\n" -#: ../src/nmcli/connections.c:3222 +#: ../src/nmcli/connections.c:3344 #, c-format msgid "Connection '%s' successfully deactivated (D-Bus active path: %s)\n" msgstr "З'єднання «%s» успішно вимкнено (активний шлях D-Bus: %s)\n" -#: ../src/nmcli/connections.c:3271 ../src/nmcli/connections.c:9134 -#: ../src/nmcli/connections.c:9169 ../src/nmcli/connections.c:9358 +#: ../src/nmcli/connections.c:3393 ../src/nmcli/connections.c:9265 +#: ../src/nmcli/connections.c:9300 ../src/nmcli/connections.c:9489 #, c-format msgid "Error: No connection specified." msgstr "Помилка: не вказано з'єднання." -#: ../src/nmcli/connections.c:3303 +#: ../src/nmcli/connections.c:3425 #, c-format msgid "Error: '%s' is not an active connection.\n" msgstr "Помилка: «%s» не є активним з'єднанням.\n" -#: ../src/nmcli/connections.c:3304 +#: ../src/nmcli/connections.c:3426 #, c-format msgid "Error: not all active connections found." msgstr "Помилка: не усі активні з'єднання знайдено." -#: ../src/nmcli/connections.c:3312 +#: ../src/nmcli/connections.c:3434 #, c-format msgid "Error: no active connection provided." msgstr "Помилка: не надано активного з'єднання." -#: ../src/nmcli/connections.c:3344 +#: ../src/nmcli/connections.c:3466 #, c-format msgid "Connection '%s' deactivation failed: %s\n" msgstr "Невдала спроба вимкнути з'єднання «%s»: %s\n" -#: ../src/nmcli/connections.c:3825 +#: ../src/nmcli/connections.c:3947 #, c-format msgid "Warning: master='%s' doesn't refer to any existing profile.\n" msgstr "" "Попередження: master='%s' не посилається ні на один з наявних профілів.\n" -#: ../src/nmcli/connections.c:4200 +#: ../src/nmcli/connections.c:4322 #, c-format msgid "Error: invalid property '%s': %s." msgstr "Помилка: некоректна властивість, «%s»: %s." -#: ../src/nmcli/connections.c:4217 +#: ../src/nmcli/connections.c:4339 #, c-format msgid "Error: failed to %s %s.%s: %s." msgstr "Помилка: не вдалося %s %s.%s: %s." -#: ../src/nmcli/connections.c:4298 +#: ../src/nmcli/connections.c:4420 #, c-format msgid "Error: invalid slave type; %s." msgstr "Помилка: некоректний тип підлеглого; %s." -#: ../src/nmcli/connections.c:4309 +#: ../src/nmcli/connections.c:4431 #, c-format msgid "Error: invalid connection type; %s." msgstr "Помилка: некоректний тип з'єднання; %s." -#: ../src/nmcli/connections.c:4400 +#: ../src/nmcli/connections.c:4522 #, c-format msgid "Error: bad connection type: %s" msgstr "Помилка: помилковий тип з'єднання: %s" -#: ../src/nmcli/connections.c:4486 +#: ../src/nmcli/connections.c:4608 msgid "Error: master is required" msgstr "Помилка: слід вказати значення параметра «master»" -#: ../src/nmcli/connections.c:4587 +#: ../src/nmcli/connections.c:4709 #, c-format msgid "Error: '%s' is not a valid monitoring mode; use '%s' or '%s'.\n" msgstr "" "Помилка: «%s» не є коректним режимом спостереження; скористайтеся «%s» або " "«%s».\n" -#: ../src/nmcli/connections.c:4626 +#: ../src/nmcli/connections.c:4748 #, c-format msgid "Error: 'bt-type': '%s' not valid; use [%s, %s, %s (%s), %s]." msgstr "" "Помилка: «bt-type»: «%s» є некоректним; скористайтеся значенням з переліку " "[%s, %s, %s (%s), %s]." -#: ../src/nmcli/connections.c:4973 +#: ../src/nmcli/connections.c:5095 #, c-format msgid "Error: setting '%s' is mandatory and cannot be removed." msgstr "Помилка: параметр «%s» є обов'язковим, його не можна вилучати." -#: ../src/nmcli/connections.c:4989 +#: ../src/nmcli/connections.c:5111 #, c-format msgid "Error: value for '%s' is missing." msgstr "Помилка: не вказано значення «%s»." -#: ../src/nmcli/connections.c:5040 +#: ../src/nmcli/connections.c:5162 msgid "Error: . argument is missing." msgstr "Помилка: пропущено аргумент <параметр>.<властивість>." -#: ../src/nmcli/connections.c:5082 +#: ../src/nmcli/connections.c:5204 msgid "Error: missing setting." msgstr "Помилка: пропущено параметр." -#: ../src/nmcli/connections.c:5096 +#: ../src/nmcli/connections.c:5218 #, c-format msgid "Error: invalid setting argument '%s'." msgstr "Помилка: некоректний аргумент параметра, «%s»." -#: ../src/nmcli/connections.c:5127 +#: ../src/nmcli/connections.c:5249 #, c-format msgid "Error: invalid or not allowed setting '%s': %s." msgstr "Помилка: некоректний або заборонений параметр, «%s»: %s." -#: ../src/nmcli/connections.c:5186 ../src/nmcli/connections.c:5207 +#: ../src/nmcli/connections.c:5308 ../src/nmcli/connections.c:5329 #, c-format msgid "Error: '%s' is ambiguous (%s.%s or %s.%s)." msgstr "Помилка: «%s» є неоднозначним (%s.%s або %s.%s)." -#: ../src/nmcli/connections.c:5231 +#: ../src/nmcli/connections.c:5353 #, c-format msgid "Error: invalid . '%s'." msgstr "Помилка: некоректний аргумент <параметр>.<властивість>, «%s»." -#: ../src/nmcli/connections.c:5265 +#: ../src/nmcli/connections.c:5387 ../src/nmcli/devices.c:2159 #, c-format msgid "Warning: %s.\n" msgstr "Попередження: %s.\n" -#: ../src/nmcli/connections.c:5284 +#: ../src/nmcli/connections.c:5403 #, c-format msgid "" "Warning: There is another connection with the name '%1$s'. Reference the " @@ -12079,7 +12128,7 @@ msgstr[3] "" "Попередження: існує інше з'єднання з назвою «%1$s». Посилайтеся на з'єднання " "за його UUID, «%2$s»\n" -#: ../src/nmcli/connections.c:5306 ../src/nmcli/connections.c:8986 +#: ../src/nmcli/connections.c:5425 ../src/nmcli/connections.c:9117 #, c-format msgid "Error: Failed to add '%s' connection: %s" msgstr "Помилка: не вдалося додати з'єднання «%s»: %s" @@ -12093,12 +12142,12 @@ msgstr "Помилка: не вдалося додати з'єднання «%s #. * #. * This is true for many messages that the user might parse. But this one #. * seems in particular interesting for a user to parse. -#: ../src/nmcli/connections.c:5323 +#: ../src/nmcli/connections.c:5442 #, c-format msgid "Connection '%s' (%s) successfully added.\n" msgstr "Запис з'єднання «%s» (%s) успішно додано.\n" -#: ../src/nmcli/connections.c:5467 +#: ../src/nmcli/connections.c:5577 #, c-format msgid "" "You can specify this option more than once. Press when you're done.\n" @@ -12107,7 +12156,7 @@ msgstr "" "завершите.\n" #. Ask for optional arguments. -#: ../src/nmcli/connections.c:5567 +#: ../src/nmcli/connections.c:5677 #, c-format msgid "There is %d optional setting for %s.\n" msgid_plural "There are %d optional settings for %s.\n" @@ -12116,7 +12165,7 @@ msgstr[1] "Для «%2$s» передбачено %1$d додатковий па msgstr[2] "Для з'єднань типу «%2$s» передбачено %1$d додаткових аргументів.\n" msgstr[3] "Для з'єднань типу «%2$s» передбачено %1$d додатковий аргумент.\n" -#: ../src/nmcli/connections.c:5574 +#: ../src/nmcli/connections.c:5684 #, c-format msgid "Do you want to provide it? %s" msgid_plural "Do you want to provide them? %s" @@ -12125,22 +12174,22 @@ msgstr[1] "Хочете вказати їх? %s" msgstr[2] "Хочете вказати їх? %s" msgstr[3] "Хочете вказати його? %s" -#: ../src/nmcli/connections.c:5701 ../src/nmcli/utils.c:280 +#: ../src/nmcli/connections.c:5825 ../src/nmcli/utils.c:280 #, c-format msgid "Error: value for '%s' argument is required." msgstr "Помилка: слід вказати значення «%s» аргументу." -#: ../src/nmcli/connections.c:5708 +#: ../src/nmcli/connections.c:5832 #, c-format msgid "Error: 'save': %s." msgstr "Помилка: «save»: %s." -#: ../src/nmcli/connections.c:5793 ../src/nmcli/connections.c:5806 +#: ../src/nmcli/connections.c:5917 ../src/nmcli/connections.c:5930 #, c-format msgid "Error: '%s' argument is required." msgstr "Помилка: слід вказати параметр «%s»." -#: ../src/nmcli/connections.c:6767 +#: ../src/nmcli/connections.c:6887 #, c-format msgid "['%s' setting values]\n" msgstr "['%s' значення параметра]\n" @@ -12148,7 +12197,7 @@ msgstr "['%s' значення параметра]\n" #. TRANSLATORS: do not translate command names and keywords before :: #. * However, you should translate terms enclosed in <>. #. -#: ../src/nmcli/connections.c:6878 +#: ../src/nmcli/connections.c:6998 #, c-format msgid "" "---[ Main menu ]---\n" @@ -12182,7 +12231,7 @@ msgstr "" "nmcli <параметр-налашт.> <знач.> :: налаштовування nmcli\n" "quit :: завершити роботу nmcli\n" -#: ../src/nmcli/connections.c:6905 +#: ../src/nmcli/connections.c:7025 #, c-format msgid "" "goto [.] | :: enter setting/property for editing\n" @@ -12203,7 +12252,7 @@ msgstr "" " nmcli connection> goto secondaries\n" " nmcli> goto ipv4.addresses\n" -#: ../src/nmcli/connections.c:6913 +#: ../src/nmcli/connections.c:7033 #, c-format msgid "" "remove [.] :: remove setting or reset property value\n" @@ -12225,7 +12274,7 @@ msgstr "" "Приклади: nmcli> remove wifi-sec\n" " nmcli> remove eth.mtu\n" -#: ../src/nmcli/connections.c:6920 +#: ../src/nmcli/connections.c:7040 #, c-format msgid "" "set [. ] :: set property value\n" @@ -12241,7 +12290,7 @@ msgstr "" "\n" "Приклад: nmcli> s con.id My connection\n" -#: ../src/nmcli/connections.c:6925 +#: ../src/nmcli/connections.c:7045 #, c-format msgid "" "add [. ] :: add property value\n" @@ -12256,7 +12305,7 @@ msgstr "" "\n" "Приклад: nmcli> add ipv4.addresses 192.168.1.1/24\n" -#: ../src/nmcli/connections.c:6930 +#: ../src/nmcli/connections.c:7050 #, c-format msgid "" "describe [.] :: describe property\n" @@ -12269,7 +12318,7 @@ msgstr "" "Показує опис властивості. Список усіх параметрів і властивостей NM можна " "знайти на сторінці довідника (man) nm-settings(5).\n" -#: ../src/nmcli/connections.c:6935 +#: ../src/nmcli/connections.c:7055 #, c-format msgid "" "print [all] :: print setting or connection values\n" @@ -12284,7 +12333,7 @@ msgstr "" "\n" "Приклад: nmcli ipv4> print all\n" -#: ../src/nmcli/connections.c:6941 +#: ../src/nmcli/connections.c:7061 #, c-format msgid "" "verify [all | fix] :: verify setting or connection validity\n" @@ -12309,7 +12358,7 @@ msgstr "" " nmcli> verify fix\n" " nmcli bond> verify\n" -#: ../src/nmcli/connections.c:6951 +#: ../src/nmcli/connections.c:7071 #, c-format msgid "" "save [persistent|temporary] :: save the connection\n" @@ -12336,7 +12385,7 @@ msgstr "" "потрібно\n" "повністю вилучити постійне з'єднання, вам доведеться вилучити його профіль.\n" -#: ../src/nmcli/connections.c:6962 +#: ../src/nmcli/connections.c:7082 #, c-format msgid "" "activate [] [/|] :: activate the connection\n" @@ -12357,7 +12406,7 @@ msgstr "" "/| - AP (Wi-Fi) або NSP (WiMAX) (додайте на початку «/», якщо не " "вказано <інтерфейс>)\n" -#: ../src/nmcli/connections.c:6970 ../src/nmcli/connections.c:7129 +#: ../src/nmcli/connections.c:7090 ../src/nmcli/connections.c:7249 #, c-format msgid "" "back :: go to upper menu level\n" @@ -12366,7 +12415,7 @@ msgstr "" "back :: піднятися у меню на один рівень\n" "\n" -#: ../src/nmcli/connections.c:6973 +#: ../src/nmcli/connections.c:7093 #, c-format msgid "" "help/? [] :: help for the nmcli commands\n" @@ -12375,7 +12424,7 @@ msgstr "" "help/? [<команда>] :: довідка з команди nmcli\n" "\n" -#: ../src/nmcli/connections.c:6976 +#: ../src/nmcli/connections.c:7096 #, c-format msgid "" "nmcli [ ] :: nmcli configuration\n" @@ -12402,7 +12451,7 @@ msgstr "" " nmcli> nmcli save-confirmation no\n" " nmcli> nmcli prompt-color 3\n" -#: ../src/nmcli/connections.c:6998 ../src/nmcli/connections.c:7135 +#: ../src/nmcli/connections.c:7118 ../src/nmcli/connections.c:7255 #, c-format msgid "" "quit :: exit nmcli\n" @@ -12416,8 +12465,8 @@ msgstr "" "запис з'єднання не було збережено, користувачеві буде запропоновано " "підтвердити дію з виходу з програми.\n" -#: ../src/nmcli/connections.c:7003 ../src/nmcli/connections.c:7140 -#: ../src/nmcli/connections.c:7528 ../src/nmcli/connections.c:8556 +#: ../src/nmcli/connections.c:7123 ../src/nmcli/connections.c:7260 +#: ../src/nmcli/connections.c:7648 ../src/nmcli/connections.c:8680 #, c-format msgid "Unknown command: '%s'\n" msgstr "Невідома команда «%s».\n" @@ -12425,7 +12474,7 @@ msgstr "Невідома команда «%s».\n" #. TRANSLATORS: do not translate command names and keywords before :: #. * However, you should translate terms enclosed in <>. #. -#: ../src/nmcli/connections.c:7068 +#: ../src/nmcli/connections.c:7188 #, c-format msgid "" "---[ Property menu ]---\n" @@ -12452,7 +12501,7 @@ msgstr "" "help/? [<команда>] :: вивести цю довідку або опис команди\n" "quit :: вийти з nmcli\n" -#: ../src/nmcli/connections.c:7092 +#: ../src/nmcli/connections.c:7212 #, c-format msgid "" "set [] :: set new value\n" @@ -12464,7 +12513,7 @@ msgstr "" "За допомогою цієї команди можна змінити значення властивості на вказане " "<значення>\n" -#: ../src/nmcli/connections.c:7096 +#: ../src/nmcli/connections.c:7216 #, c-format msgid "" "add [] :: append new value to the property\n" @@ -12479,7 +12528,7 @@ msgstr "" "якщо властивість належить до типу контейнерів. Якщо властивість складається " "лише з одного значення, це значення буде замінено (те саме, що і «set»).\n" -#: ../src/nmcli/connections.c:7102 +#: ../src/nmcli/connections.c:7222 #, c-format msgid "" "change :: change current value\n" @@ -12490,7 +12539,7 @@ msgstr "" "\n" "Показує поточне значення і надає змогу його редагувати.\n" -#: ../src/nmcli/connections.c:7107 +#: ../src/nmcli/connections.c:7227 #, c-format msgid "" "remove [||