Commit graph

1389 commits

Author SHA1 Message Date
Yuri Chornoivan 1c7ea45aaa po: update Ukrainian (uk) translation
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/388
2020-01-09 14:09:20 +01:00
Thomas Haller d964decbbd libnm/keyfile: build keyfile code as separate GPL licensed internal library
Keyfile support was initially added under GPL-2.0+ license as part of
core. It was moved to "libnm-core" in commit 59eb5312a5 ('keyfile: merge
branch 'th/libnm-keyfile-bgo744699'').

"libnm-core" is statically linked with by core and "libnm". In
the former case under terms of GPL-2.0+ (good) and in the latter case
under terms of LGPL-2.1+ (bad).

In fact, to this day, "libnm" doesn't actually use the code. The linker
will probably remove all the GPL-2.0+ symbols when compiled with
gc-sections or LTO. Still, linking them together in the first place
makes "libnm" only available under GPL code (despite the code
not actually being used).

Instead, move the GPL code to a separate static library
"shared/nm-keyfile/libnm-keyfile.la" and only link it to the part
that actually uses the code (and which is GPL licensed too).

This fixes the license violation.

Eventually, it would be very useful to be able to expose keyfile
handling via "libnm". However that is not straight forward due to the
licensing conflict.

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/381
2020-01-07 13:17:47 +01:00
Andika Triwidada 7bbccab4f2 po: update Indonesian (id) translation
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/376
2020-01-01 13:35:44 +01:00
Piotr Drąg a3c9dccfd0 po: update Polish (pl) translation
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/373
2019-12-22 08:03:03 +01:00
Thomas Haller 69f048bf0c cloud-setup: add tool for automatic IP configuration in cloud
This is a tool for automatically configuring networking in a cloud
environment.

Currently it only supports IPv4 on EC2, but it's intended for extending
to other cloud providers (Azure). See [1] and [2] for how to configure
secondary IP addresses on EC2. This is what the tool currently aims to
do (but in the future it might do more).

[1] https://aws.amazon.com/premiumsupport/knowledge-center/ec2-ubuntu-secondary-network-interface/

It is inspired by SuSE's cloud-netconfig ([1], [2]) and ec2-net-utils
package on Amazon Linux ([3], [4]).

[1] https://www.suse.com/c/multi-nic-cloud-netconfig-ec2-azure/
[2] https://github.com/SUSE-Enceladus/cloud-netconfig
[3] https://github.com/aws/ec2-net-utils
[4] https://github.com/lorengordon/ec2-net-utils.git

It is also intended to work without configuration. The main point is
that you boot an image with NetworkManager and nm-cloud-setup enabled,
and it just works.
2019-11-28 19:52:18 +01:00
Thomas Haller ce0e898fb4 libnm: refactor caching of D-Bus objects in NMClient
No longer use GDBusObjectMangaerClient and gdbus-codegen generated classes
for the NMClient cache. Instead, use GDBusConnection directly and a
custom implementation (NMLDBusObject) for caching D-Bus' ObjectManager
data.

CHANGES
-------

- This is a complete rework. I think the previous implementation was
difficult to understand. There were unfixed bugs and nobody understood
the code well enough to fix them. Maybe somebody out there understood the
code, but I certainly did not. At least nobody provided patches to fix those
issues. I do believe that this implementation is more straightforward and
easier to understand. It removes a lot of layers of code. Whether this claim
of simplicity is true, each reader must decide for himself/herself. Note
that it is still fairly complex.

- There was a lingering performance issue with large number of D-Bus
objects. The patch tries hard that the implementation scales well. Of
course, when we cache N objects that have N-to-M references to other,
we still are fundamentally O(N*M) for runtime and memory consumption (with
M being the number of references between objects). But each part should behave
efficiently and well.

- Play well with GMainContext. libnm code (NMClient) is generally not
thread safe. However, it should work to use multiple instances in
parallel, as long as each access to a NMClient is through the caller's
GMainContext. This follows glib's style and effectively allows to use NMClient
in a multi threaded scenario. This implies to stick to a main context
upon construction and ensure that callbacks are only invoked when
iterating that context. Also, NMClient itself shall never iterate the
caller's context. This also means, libnm must never use g_idle_add() or
g_timeout_add(), as those enqueue sources in the g_main_context_default()
context.

- Get ordering of messages right. All events are consistently enqueued
in a GMainContext and processed strictly in order. For example,
previously "nm-object.c" tried to combine signals and emit them on an
idle handler. That is wrong, signals must be emitted in the right order
and when they happen. Note that when using GInitable's synchronous initialization
to initialize the NMClient instance, NMClient internally still operates fully
asynchronously. In that case NMClient has an internal main context.

- NMClient takes over most of the functionality. When using D-Bus'
ObjectManager interface, one needs to handle basically the entire state
of the D-Bus interface. That cannot be separated well into distinct
parts, and even if you try, you just end up having closely related code
in different source files. Spreading related code does not make it
easier to understand, on the contrary. That means, NMClient is
inherently complex as it contains most of the logic. I think that is
not avoidable, but it's not as bad as it sounds.

- NMClient processes D-Bus messages and state changes in separate steps.
First NMClient unpacks the message (e.g. _dbus_handle_properties_changed()) and
keeps track of the changed data. Then we update the GObject instances
(_dbus_handle_obj_changed_dbus()) without emitting any signals yet. Finally,
we emit all signals and notifications that were collected
(_dbus_handle_changes_commit()). Note that for example during the initial
GetManagedObjects() reply, NMClient receive a large amount of state at once.
But we first apply all the changes to our GObject instances before
emitting any signals. The result is that signals are always emitted in a moment
when the cache is consistent. The unavoidable downside is that when you receive
a property changed signal, possibly many other properties changed
already and more signals are about to be emitted.

- NMDeviceWifi no longer modifies the content of the cache from client side
during poke_wireless_devices_with_rf_status(). The content of the cache
should be determined by D-Bus alone and follow what NetworkManager
service exposes. Local modifications should be avoided.

- This aims to bring no API/ABI change, though it does of course bring
various subtle changes in behavior. Those should be all for the better, but the
goal is not to break any existing clients. This does change internal
(albeit externally visible) API, like dropping NM_OBJECT_DBUS_OBJECT_MANAGER
property and NMObject no longer implementing GInitableIface and GAsyncInitableIface.

- Some uses of gdbus-codegen classes remain in NMVpnPluginOld, NMVpnServicePlugin
and NMSecretAgentOld. These are independent of NMClient/NMObject and
should be reworked separately.

- While we no longer use generated classes from gdbus-codegen, we don't
need more glue code than before. Also before we constructed NMPropertiesInfo and
a had large amount of code to propagate properties from NMDBus* to NMObject.
That got completely reworked, but did not fundamentally change. You still need
about the same effort to create the NMLDBusMetaIface. Not using
generated bindings did not make anything worse (which tells about the
usefulness of generated code, at least in the way it was used).

- NMLDBusMetaIface and other meta data is static and immutable. This
avoids copying them around. Also, macros like NML_DBUS_META_PROPERTY_INIT_U()
have compile time checks to ensure the property types matches. It's pretty hard
to misuse them because it won't compile.

- The meta data now explicitly encodes the expected D-Bus types and
makes sure never to accept wrong data. That would only matter when the
server (accidentally or intentionally) exposes unexpected types on
D-Bus. I don't think that was previously ensured in all cases.
For example, demarshal_generic() only cared about the GObject property
type, it didn't know the expected D-Bus type.

- Previously GDBusObjectManager would sometimes emit warnings (g_log()). Those
probably indicated real bugs. In any case, it prevented us from running CI
with G_DEBUG=fatal-warnings, because there would be just too many
unrelated crashes. Now we log debug messages that can be enabled with
"LIBNM_CLIENT_DEBUG=trace". Some of these messages can also be turned
into g_warning()/g_critical() by setting LIBNM_CLIENT_DEBUG=warning,error.
Together with G_DEBUG=fatal-warnings, this turns them into assertions.
Note that such "assertion failures" might also happen because of a server
bug (or change). Thus these are not common assertions that indicate a bug
in libnm and are thus not armed unless explicitly requested. In our CI we
should now always run with LIBNM_CLIENT_DEBUG=warning,error and
G_DEBUG=fatal-warnings and to catch bugs. Note that currently
NetworkManager has bugs in this regard, so enabling this will result in
assertion failures. That should be fixed first.

- Note that this changes the order in which we emit "notify:devices" and
"device-added" signals. I think it makes the most sense to emit first
"device-removed", then "notify:devices", and finally "device-added"
signals.
This changes behavior for commit 52ae28f6e5 ('libnm: queue
added/removed signals and suppress uninitialized notifications'),
but I don't think that users should actually rely on the order. Still,
the new order makes the most sense to me.

- In NetworkManager, profiles can be invisible to the user by setting
"connection.permissions". Such profiles would be hidden by NMClient's
nm_client_get_connections() and their "connection-added"/"connection-removed"
signals.
Note that NMActiveConnection's nm_active_connection_get_connection()
and NMDevice's nm_device_get_available_connections() still exposes such
hidden NMRemoteConnection instances. This behavior was preserved.

NUMBERS
-------

I compared 3 versions of libnm.

  [1] 962297f908, current tip of nm-1-20 branch
  [2] 4fad8c7c64, current master, immediate parent of this patch
  [3] this patch

All tests were done on Fedora 31, x86_64, gcc 9.2.1-1.fc31.
The libraries were build with

  $ ./contrib/fedora/rpm/build_clean.sh -g -w test -W debug

Note that RPM build already stripped the library.

---

N1) File size of libnm.so.0.1.0 in bytes. There currently seems to be a issue
  on Fedora 31 generating wrong ELF notes. Usually, libnm is smaller but
  in these tests it had large (and bogus) ELF notes. Anyway, the point
  is to show the relative sizes, so it doesn't matter).

  [1] 4075552 (102.7%)
  [2] 3969624 (100.0%)
  [3] 3705208 ( 93.3%)

---

N2) `size /usr/lib64/libnm.so.0.1.0`:

          text             data              bss                dec               hex   filename
  [1]  1314569 (102.0%)   69980 ( 94.8%)   10632 ( 80.4%)   1395181 (101.4%)   1549ed   /usr/lib64/libnm.so.0.1.0
  [2]  1288410 (100.0%)   73796 (100.0%)   13224 (100.0%)   1375430 (100.0%)   14fcc6   /usr/lib64/libnm.so.0.1.0
  [3]  1229066 ( 95.4%)   65248 ( 88.4%)   13400 (101.3%)   1307714 ( 95.1%)   13f442   /usr/lib64/libnm.so.0.1.0

---

N3) Performance test with test-client.py. With checkout of [2], run

```
prepare_checkout() {
    rm -rf /tmp/nm-test && \
    git checkout -B test 4fad8c7c64 && \
    git clean -fdx && \
    ./autogen.sh --prefix=/tmp/nm-test && \
    make -j 5 install && \
    make -j 5 check-local-clients-tests-test-client
}
prepare_test() {
    NM_TEST_REGENERATE=1 NM_TEST_CLIENT_BUILDDIR="/data/src/NetworkManager" NM_TEST_CLIENT_NMCLI_PATH=/usr/bin/nmcli python3 ./clients/tests/test-client.py -v
}
do_test() {
  for i in {1..10}; do
      NM_TEST_CLIENT_BUILDDIR="/data/src/NetworkManager" NM_TEST_CLIENT_NMCLI_PATH=/usr/bin/nmcli python3 ./clients/tests/test-client.py -v || return -1
  done
  echo "done!"
}
prepare_checkout
prepare_test
time do_test
```

  [1]  real 2m14.497s (101.3%)     user 5m26.651s (100.3%)     sys  1m40.453s (101.4%)
  [2]  real 2m12.800s (100.0%)     user 5m25.619s (100.0%)     sys  1m39.065s (100.0%)
  [3]  real 1m54.915s ( 86.5%)     user 4m18.585s ( 79.4%)     sys  1m32.066s ( 92.9%)

---

N4) Performance. Run NetworkManager from build [2] and setup a large number
of profiles (551 profiles and 515 devices, mostly unrealized). This
setup is already at the edge of what NetworkManager currently can
handle. Of course, that is a different issue. Here we just check how
long plain `nmcli` takes on the system.

```
do_cleanup() {
    for UUID in $(nmcli -g NAME,UUID connection show | sed -n 's/^xx-c-.*:\([^:]\+\)$/\1/p'); do
        nmcli connection delete uuid "$UUID"
    done
    for DEVICE in $(nmcli -g DEVICE device status | grep '^xx-i-'); do
        nmcli device delete "$DEVICE"
    done
}

do_setup() {
    do_cleanup
    for i in {1..30}; do
        nmcli connection add type bond autoconnect no con-name xx-c-bond-$i ifname xx-i-bond-$i ipv4.method disabled ipv6.method ignore
        for j in $(seq $i 30); do
            nmcli connection add type vlan autoconnect no con-name xx-c-vlan-$i-$j vlan.id $j ifname xx-i-vlan-$i-$j vlan.parent xx-i-bond-$i  ipv4.method disabled ipv6.method ignore
        done
    done
    systemctl restart NetworkManager.service
    sleep 5
}

do_test() {
    perf stat -r 50 -B nmcli 1>/dev/null
}

do_test
```

  [1]

   Performance counter stats for 'nmcli' (50 runs):

              456.33 msec task-clock:u              #    1.093 CPUs utilized            ( +-  0.44% )
                   0      context-switches:u        #    0.000 K/sec
                   0      cpu-migrations:u          #    0.000 K/sec
               5,900      page-faults:u             #    0.013 M/sec                    ( +-  0.02% )
       1,408,675,453      cycles:u                  #    3.087 GHz                      ( +-  0.48% )
       1,594,741,060      instructions:u            #    1.13  insn per cycle           ( +-  0.02% )
         368,744,018      branches:u                #  808.061 M/sec                    ( +-  0.02% )
           4,566,058      branch-misses:u           #    1.24% of all branches          ( +-  0.76% )

             0.41761 +- 0.00282 seconds time elapsed  ( +-  0.68% )

  [2]

   Performance counter stats for 'nmcli' (50 runs):

              477.99 msec task-clock:u              #    1.088 CPUs utilized            ( +-  0.36% )
                   0      context-switches:u        #    0.000 K/sec
                   0      cpu-migrations:u          #    0.000 K/sec
               5,948      page-faults:u             #    0.012 M/sec                    ( +-  0.03% )
       1,471,133,482      cycles:u                  #    3.078 GHz                      ( +-  0.36% )
       1,655,275,369      instructions:u            #    1.13  insn per cycle           ( +-  0.02% )
         382,595,152      branches:u                #  800.433 M/sec                    ( +-  0.02% )
           4,746,070      branch-misses:u           #    1.24% of all branches          ( +-  0.49% )

             0.43923 +- 0.00242 seconds time elapsed  ( +-  0.55% )

  [3]

   Performance counter stats for 'nmcli' (50 runs):

              352.36 msec task-clock:u              #    1.027 CPUs utilized            ( +-  0.32% )
                   0      context-switches:u        #    0.000 K/sec
                   0      cpu-migrations:u          #    0.000 K/sec
               4,790      page-faults:u             #    0.014 M/sec                    ( +-  0.26% )
       1,092,341,186      cycles:u                  #    3.100 GHz                      ( +-  0.26% )
       1,209,045,283      instructions:u            #    1.11  insn per cycle           ( +-  0.02% )
         281,708,462      branches:u                #  799.499 M/sec                    ( +-  0.01% )
           3,101,031      branch-misses:u           #    1.10% of all branches          ( +-  0.61% )

             0.34296 +- 0.00120 seconds time elapsed  ( +-  0.35% )

---

N5) same setup as N4), but run `PAGER= /bin/time -v nmcli`:

  [1]

        Command being timed: "nmcli"
        User time (seconds): 0.42
        System time (seconds): 0.04
        Percent of CPU this job got: 107%
        Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.43
        Average shared text size (kbytes): 0
        Average unshared data size (kbytes): 0
        Average stack size (kbytes): 0
        Average total size (kbytes): 0
        Maximum resident set size (kbytes): 34456
        Average resident set size (kbytes): 0
        Major (requiring I/O) page faults: 0
        Minor (reclaiming a frame) page faults: 6128
        Voluntary context switches: 1298
        Involuntary context switches: 1106
        Swaps: 0
        File system inputs: 0
        File system outputs: 0
        Socket messages sent: 0
        Socket messages received: 0
        Signals delivered: 0
        Page size (bytes): 4096
        Exit status: 0

  [2]
        Command being timed: "nmcli"
        User time (seconds): 0.44
        System time (seconds): 0.04
        Percent of CPU this job got: 108%
        Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.44
        Average shared text size (kbytes): 0
        Average unshared data size (kbytes): 0
        Average stack size (kbytes): 0
        Average total size (kbytes): 0
        Maximum resident set size (kbytes): 34452
        Average resident set size (kbytes): 0
        Major (requiring I/O) page faults: 0
        Minor (reclaiming a frame) page faults: 6169
        Voluntary context switches: 1849
        Involuntary context switches: 142
        Swaps: 0
        File system inputs: 0
        File system outputs: 0
        Socket messages sent: 0
        Socket messages received: 0
        Signals delivered: 0
        Page size (bytes): 4096
        Exit status: 0

  [3]

        Command being timed: "nmcli"
        User time (seconds): 0.32
        System time (seconds): 0.02
        Percent of CPU this job got: 102%
        Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.34
        Average shared text size (kbytes): 0
        Average unshared data size (kbytes): 0
        Average stack size (kbytes): 0
        Average total size (kbytes): 0
        Maximum resident set size (kbytes): 29196
        Average resident set size (kbytes): 0
        Major (requiring I/O) page faults: 0
        Minor (reclaiming a frame) page faults: 5059
        Voluntary context switches: 919
        Involuntary context switches: 685
        Swaps: 0
        File system inputs: 0
        File system outputs: 0
        Socket messages sent: 0
        Socket messages received: 0
        Signals delivered: 0
        Page size (bytes): 4096
        Exit status: 0

---

N6) same setup as N4), but run `nmcli monitor` and look at `ps aux` for
  the RSS size.

      USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
  [1] me     1492900 21.0  0.2 461348 33248 pts/10   Sl+  15:02   0:00 nmcli monitor
  [2] me     1490721  5.0  0.2 461496 33548 pts/10   Sl+  15:00   0:00 nmcli monitor
  [3] me     1495801 16.5  0.1 459476 28692 pts/10   Sl+  15:04   0:00 nmcli monitor
2019-11-25 15:08:00 +01:00
Rafael Fontenelle 52cd4878a6 po: update Brazilian Portuguese (pt_BR) translation
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/346
2019-11-25 10:24:42 +01:00
Yuri Chornoivan b1a997d6c5 po: update Ukrainian (uk) translation
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/332
2019-11-11 09:29:23 +01:00
Lubomir Rintel 9242b5ebc1 po/de: fix quoting 2019-10-31 07:23:24 +01:00
maxbachmann 777ccb79a4 fix translation 2019-10-30 16:54:41 +01:00
maxbachmann 5535dcf51b po/de: fix some spelling mistakes
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/320
2019-10-30 14:54:08 +01:00
scootergrisen fa8dc1c314 Fix missing \n 2019-10-23 05:07:14 +00:00
scootergrisen 03f51ef671 Update da.po 2019-10-23 03:20:00 +00:00
Thomas Haller 4154d9618c bluetooth: refactor BlueZ handling and let NMBluezManager cache ObjectManager data
This is a complete refactoring of the bluetooth code.

Now that BlueZ 4 support was dropped, the separation of NMBluezManager
and NMBluez5Manager makes no sense. They should be merged.

At that point, notice that BlueZ 5's D-Bus API is fully centered around
D-Bus's ObjectManager interface. Using that interface, we basically only
call GetManagedObjects() once and register to InterfacesAdded,
InterfacesRemoved and PropertiesChanged signals. There is no need to
fetch individual properties ever.

Note how NMBluezDevice used to query the D-Bus properties itself by
creating a GDBusProxy. This is redundant, because when using the ObjectManager
interfaces, we have all information already.

Instead, let NMBluezManager basically become the client-side cache of
all of BlueZ's ObjectManager interface. NMBluezDevice was mostly concerned
about caching the D-Bus interface's state, tracking suitable profiles
(pan_connection), and moderate between bluez and NMDeviceBt.
These tasks don't get simpler by moving them to a seprate file. Let them
also be handled by NMBluezManager.

I mean, just look how it was previously: NMBluez5Manager registers to
ObjectManager interface and sees a device appearing. It creates a
NMBluezDevice object and registers to its "initialized" and
"notify:usable" signal. In the meantime, NMBluezDevice fetches the
relevant information from D-Bus (although it was already present in the
data provided by the ObjectManager) and eventually emits these usable
and initialized signals.
Then, NMBlue5Manager emits a "bdaddr-added" signal, for which NMBluezManager
creates the NMDeviceBt instance. NMBluezManager, NMBluez5Manager and
NMBluezDevice are strongly cooperating to the point that it is simpler
to merge them.

This is not mere refactoring. This patch aims to make everything
asynchronously and always cancellable. Also, it aims to fix races
and inconsistencies of the state.

- Registering to a NAP server now waits for the response and delays
  activation of the NMDeviceBridge accordingly.

- For NAP connections we now watch the bnep0 interface in platform, and tear
  down the device when it goes away. Bluez doesn't send us a notification
  on D-Bus in that case.

- Rework establishing a DUN connection. It no longer uses blocking
  connect() and does not block until rfcomm device appears. It's
  all async now. It also watches the rfcomm file descriptor for
  POLLERR/POLLHUP to notice disconnect.

- drop nm_device_factory_emit_component_added() and instead let
  NMDeviceBt directly register to the WWan factory's "added" signal.
2019-09-23 12:47:37 +02:00
Davide Palma 6a7c2d44ae po: fixed typo in it.po
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/259
2019-09-03 16:04:03 +02:00
Lubomir Rintel 4534c6c366 core: fix a typo
s/grater/greater/
2019-09-03 11:43:56 +02:00
Ludek Janda ca8d54d5a1 po: RHEL 8.1 translations
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/242
(cherry picked from commit 9e57873e9c)
2019-08-15 14:41:39 +02:00
Yuri Chornoivan 1e3c359f72 po: update Ukrainian translation
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/240
2019-08-15 14:31:28 +02:00
Piotr Drąg a791dfba26 po: update Polish (pl) translation
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/239
2019-08-12 11:34:49 +02:00
Rafael Fontenelle da39bacd82 po: update Brazilian Portuguese (pt_BR) translation
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/204/
2019-07-15 09:55:09 +02:00
Luclu7 c11e3b6316 po: fix a typo in the French translation
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/200
2019-07-10 11:04:44 +02:00
Hsiu-Ming Chang 3698e24eba po: update Chinese Taiwan (zh_TW) translation
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/190
2019-06-29 09:15:27 +02:00
Thomas Haller 74641be816 settings: drop ibft settings plugin
The functionality of the ibft settings plugin is now handled by
nm-initrd-generator. There is no need for it anymore, drop it.

Note that ibft called iscsiadm, which requires CAP_SYS_ADMIN to work
([1]). We really want to drop this capability, so the current solution
of a settings plugin (as it is implemented) is wrong. The solution
instead is nm-initrd-generator.

Also, on Fedora the ibft was disabled and probably on most other
distributions as well. This was only used on RHEL.

[1] https://bugzilla.redhat.com/show_bug.cgi?id=1371201#c7
2019-06-20 16:06:44 +02:00
Thomas Haller c0e075c902 all: drop emacs file variables from source files
We no longer add these. If you use Emacs, configure it yourself.

Also, due to our "smart-tab" usage the editor anyway does a subpar
job handling our tabs. However, on the upside every user can choose
whatever tab-width he/she prefers. If "smart-tabs" are used properly
(like we do), every tab-width will work.

No manual changes, just ran commands:

    F=($(git grep -l -e '-\*-'))
    sed '1 { /\/\* *-\*-  *[mM]ode.*\*\/$/d }'     -i "${F[@]}"
    sed '1,4 { /^\(#\|--\|dnl\) *-\*- [mM]ode/d }' -i "${F[@]}"

Check remaining lines with:

    git grep -e '-\*-'

The ultimate purpose of this is to cleanup our files and eventually use
SPDX license identifiers. For that, first get rid of the boilerplate lines.
2019-06-11 10:04:00 +02:00
Ludek Janda f307034b91 po: RHEL 7.7 translations - fr,ja,zh-CN
[lkundrak@v3.sk: make update-po]

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/164

(cherry picked from commit 548bacd24e)
2019-05-28 14:37:30 +02:00
Lubomir Rintel a9da4f5180 po: update-po
(cherry picked from commit 9de7c0542c)
2019-05-28 14:37:14 +02:00
Rafael Fontenelle 8f1b542bd7 po: update Brazilian Portuguese (pt_BR) translation
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/165/commits
2019-05-27 11:03:53 +02:00
Thomas Haller 13f6f3a410 libnm: rework team handling of JSON config
Completely refactor the team/JSON handling in libnm's NMSettingTeam and
NMSettingTeamPort.

- team handling was added as rh#1398925. The goal is to have a more
  convenient way to set properties than constructing JSON. This requires
  libnm to implement the hard task of parsing JSON (and exposing well-understood
  properties) and generating JSON (based on these "artificial" properties).
  But not only libnm. In particular nmcli and the D-Bus API must make this
  "simpler" API accessible.

- since NMSettingTeam and NMSettingTeamPort are conceptually the same,
  add "libnm-core/nm-team-utils.h" and NMTeamSetting that tries to
  handle the similar code side-by-sdie.
  The setting classes now just delegate for everything to NMTeamSetting.

- Previously, there was a very fuzzy understanding of the provided
  JSON config. Tighten that up, when setting a JSON config it
  regenerates/parses all other properties and tries to make the
  best of it. When modifying any abstraction property, the entire
  JSON config gets regenerated. In particular, don't try to merge
  existing JSON config with the new fields. If the user uses the
  abstraction API, then the entire JSON gets replaced.

  For example note that nm_setting_team_add_link_watcher() would not
  be reflected in the JSON config (a bug). That only accidentally worked
  because client would serializing the changed link watcher to
  GVariant/D-Bus, then NetworkManager would set it via g_object_set(),
  which would renerate the JSON, and finally persist it to disk. But
  as far as libnm is concerned, nm_setting_team_add_link_watcher() would
  bring the settings instance in an inconsistent state where JSON and
  the link watcher property disagree. Setting any property must
  immediately update both the JSON and the abstraction API.

- when constucting a team setting from D-Bus, we would previously parse
  both "config" and abstraction properties. That is wrong. Since our
  settings plugins only support JSON, all information must be present
  in the JSON config anyway. So, when "config" is present, only the JSON
  must be parsed. In the best case, the other information is redudant and
  contributes nothing. In the worse case, they information differs
  (which might happen if the client version differs from the server
  version). As the settings plugin only supports JSON, it's wrong to
  consider redundant, differing information from D-Bus.

- we now only convert string to JSON or back when needed. Previously,
  setting a property resulted in parsing several JSON multiple times
  (per property). All operations should now scale well and be reasonably
  efficient.

- also the property-changed signals are now handled correctly. Since
  NMTeamSetting knows the current state of all attributes, it can emit
  the exact property changed signals for what changed.

- we no longer use libjansson to generate the JSON. JSON is supposed
  to be a machine readable exchange format, hence a major goal is
  to be easily handled by applications. While parsing JSON is not so
  trivial, writing a well-known set of values to JSON is.
  The advantage is that when you build libnm without libjansson support,
  then we still can convert the artificial properties to JSON.

- Requiring libjansson in libnm is a burden, because most of the time
  it is not needed (as most users don't create team configurations). With
  this change we only require it to parse the team settings (no longer to
  write them). It should be reasonably simple to use a more minimalistic
  JSON parser that is sufficient for us, so that we can get rid of the
  libjansson dependency (for libnm). This also avoids the pain that we have
  due to the symbol collision of libjansson and libjson-glib.

https://bugzilla.redhat.com/show_bug.cgi?id=1691619
2019-05-23 18:09:49 +02:00
Thomas Haller d31622a63e ifcfg-rh: don't check for errors reading team settings in ifcfg-rh
We have nm_setting_verify() for a purpose.

The checks that ifcfg-rh reader does are either

  - redundant (and thus unnecessary)

  - wrong (and thus we cannot read valid settings)

  - should belong to libnm's nm_setting_verify().

NMSettingTeam/NMSettingTeamPort are already very libraral and don't do
almost any strict validation. Previously, ifcfg reader would be even more
liberal. If there is totally invalid data in the profile, reading the profile
should fail.
2019-05-23 18:09:49 +02:00
Jose Riha dc2ef4250e po: update Slovak translation
https://github.com/NetworkManager/NetworkManager/pull/350
2019-05-15 19:56:13 +02:00
Lubomir Rintel 5d44db9108 po/sk: update-po 2019-05-15 19:55:58 +02:00
Rodrigo Lledó 79d7991eaf po: update Spanish (es) translation
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/135
2019-05-04 08:46:08 +02:00
Rodrigo Lledó 0a0a8706f8 po: update Spanish (es) translation
Changing "Token" translation from "identificador" to "testigo" as discussed
in the GNOME Spanish Translation Team's mailing list.

Special thanks to Daniel Mustieles our coordinator.

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/130
2019-05-01 13:59:19 +02:00
Yuri Chornoivan 4e1b1232d9 po: update Ukrainian (uk) translation
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/128
2019-05-01 13:56:30 +02:00
Thomas Haller a473ab431a cli: refactor team-link-watcher to/from strings
Stricter parsing of the string:

- reject attributes that don't make sense depending on the type.

- reject duplicate attributes.
2019-04-25 07:50:47 +02:00
A S Alam 0247c06d97 po: updated Panjabi (pa) Translation
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/120
2019-04-20 18:06:28 +02:00
Thomas Haller 80db06f768 shared: move most of "shared/nm-utils" to "shared/nm-glib-aux"
From the files under "shared/nm-utils" we build an internal library
that provides glib-based helper utilities.

Move the files of that basic library to a new subdirectory
"shared/nm-glib-aux" and rename the helper library "libnm-core-base.la"
to "libnm-glib-aux.la".

Reasons:

 - the name "utils" is overused in our code-base. Everything's an
   "utils". Give this thing a more distinct name.

 - there were additional files under "shared/nm-utils", which are not
   part of this internal library "libnm-utils-base.la". All the files
   that are part of this library should be together in the same
   directory, but files that are not, should not be there.

 - the new name should better convey what this library is and what is isn't:
   it's a set of utilities and helper functions that extend glib with
   funcitonality that we commonly need.

There are still some files left under "shared/nm-utils". They have less
a unifying propose to be in their own directory, so I leave them there
for now. But at least they are separate from "shared/nm-glib-aux",
which has a very clear purpose.
2019-04-18 18:59:09 +02:00
Rodrigo Lledó 0e7a5c7324 po: update Spanish (es) translation
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/116
2019-04-17 17:37:42 +02:00
Lubomir Rintel 5801f89f4d all: goodbye libnm-glib
This removes libnm-glib, libnm-glib-vpn, and libnm-util for good.
The it has been replaced with libnm since NetworkManager 1.0, disabled
by default since 1.12 and no up-to-date distributions ship it for years
now.

Removing the libraries allows us to:

* Remove the horrible hacks that were in place to deal with accidental use
  of both the new and old library in a single process.
* Relief the translators of maintenance burden of similar yet different
  strings.
* Get rid of known bad code without chances of ever getting fixed
  (libnm-glib/nm-object.c and libnm-glib/nm-object-cache.c)
* Generally lower the footprint of the releases and our workspace

If there are some really really legacy users; they can just build
libnm-glib and friends from the NetworkManager-1.16 distribution. The
D-Bus API is stable and old libnm-glib will keep working forever.

https://github.com/NetworkManager/NetworkManager/pull/308
2019-04-16 15:52:27 +02:00
Piotr Drąg f917fabde4 po: update Polish (pl) translation
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/111
2019-04-15 15:35:12 +02:00
Thomas Haller 7b6a3aaf29 cli: fix typo in nmcli usage output
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/issues/157
2019-04-12 09:56:51 +02:00
Rafael Fontenelle aae9f97e19 po: update Brazilian Portuguese (pt_BR) translation
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/104
2019-04-06 16:48:33 +02:00
Lubomir Rintel b027723e00 Revert "all: goodbye libnm-glib"
We need this for a little little longer :(

This reverts commit 1de8383ad9.
2019-04-03 08:52:38 +02:00
Milo Casagrande aba01d3d8a po: update Italian (it) translation
* Fixed translation errors.
  * Completed untranslated strings.

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/102
2019-04-02 16:52:11 +02:00
Lubomir Rintel 1de8383ad9 all: goodbye libnm-glib
This removes libnm-glib, libnm-glib-vpn, and libnm-util for good.
The it has been replaced with libnm since NetworkManager 1.0, disabled
by default since 1.12 and no up-to-date distributions ship it for years
now.

Removing the libraries allows us to:

* Remove the horrible hacks that were in place to deal with accidental use
  of both the new and old library in a single process.
* Relief the translators of maintenance burden of similar yet different
  strings.
* Get rid of known bad code without chances of ever getting fixed
  (libnm-glib/nm-object.c and libnm-glib/nm-object-cache.c)
* Generally lower the footprint of the releases and our workspace

If there are some really really legacy users; they can just build
libnm-glib and friends from the NetworkManager-1.16 distribution. The
D-Bus API is stable and old libnm-glib will keep working forever.

https://github.com/NetworkManager/NetworkManager/pull/308
2019-03-19 17:15:15 +01:00
Kristjan SCHMIDT ba209fc4ea po: update Esperanto (eo) translation
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/86
(cherry picked from commit da10058118)
2019-02-26 19:21:36 +01:00
Piotr Drąg 3089b7df52 po: update Polish (pl) translation
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/91
(cherry picked from commit 01b7b32afb)
2019-02-25 13:18:38 +01:00
Piotr Drąg a8b960aa57 Mark broken strings in translations as fuzzy
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/89
(cherry picked from commit bccf68da1b)
2019-02-25 13:11:03 +01:00
Thomas Haller b521f426ab libnm,cli: add NMSettingWireGuard
For now only add the core settings, no peers' data.

To support peers and the allowed-ips of the peers is more complicated
and will be done later. It's more complicated because these are nested
lists (allowed-ips) inside a list (peers). That is quite unusual and to
conveniently support that in D-Bus API, in keyfile format, in libnm,
and nmcli, is a effort.
Also, it's further complicated by the fact that each peer has a secret (the
preshared-key). Thus we probably need secret flags for each peer, which
is a novelty as well (until now we require a fixed set of secrets per
profile that is well known).
2019-02-22 11:00:10 +01:00
scootergrisen e390cc0529 po: update Danish (da) translation
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/82
2019-02-13 08:29:42 +01:00
Thomas Haller 0420fa1f2c wifi-p2p: rename files for consistent Wi-Fi P2P naming
We named the types inconsistently:

  - "p2p-wireless" ("libnm-core/nm-setting-p2p-wireless.h")

  - "p2p" ("libnm/nm-p2p-peer.h")

  - "p2p-wifi" ("src/devices/wifi/nm-device-p2p-wifi.h")

It seems to me, "libnm/nm-p2p-peer.h" should be qualified with a "Wi-Fi"
specific name. It's not just peer-to-peer, it's Wi-Fi P2P.
Yes, there is an inconsistency now, because there is already
"libnm/nm-access-point.h".

It seems to me (from looking at the internet), that the name "Wi-Fi P2P"
is more common than "P2P Wi-Fi" -- although both are used. There is also
the name "Wi-Fi Direct". But it's not clear which name should be
preferred here, so stick to "Wi-Fi P2P".

In this first commit only rename the files. The following commit will
rename the content.
2019-02-01 17:02:57 +01:00
Rafael Fontenelle 4cc54941cc po: update Brazilian Portuguese (pt_BR) translation
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/71
2019-01-29 12:44:03 +01:00
Benjamin Berg 6420a2c1fd libnm: Add NMDeviceP2PWifi 2019-01-27 23:45:12 +01:00
Benjamin Berg 42e60e327f core: Add basic P2P Wi-Fi Settings
The support is rather basic and only allows connecting to a specific
peer. However, this is actually already enough for many usecases.
2019-01-27 23:45:11 +01:00
Yuri Chornoivan d79ae0f149 Update Ukrainian translation 2019-01-24 15:25:43 +02:00
Dennis Brakhane 687be0d017 po/de: fix typo
https://github.com/NetworkManager/NetworkManager/pull/289
2019-01-24 08:32:48 +01:00
Lubomir Rintel c8560bcc4a po: translations from the Red Hat translators 2019-01-08 19:06:56 +01:00
Lubomir Rintel a8c58baffc po: update-po for the translations that are going to be updated
Just so that we get a nicer diff when pulling from the Red Hat Zanata.
2019-01-08 19:06:56 +01:00
Thomas Haller 70fab489db keyfile: add nm_keyfile_plugin_kf_get_int64() helper 2019-01-07 10:09:10 +01:00
Lubomir Rintel b385ad0159 all: say Wi-Fi instead of "wifi" or "WiFi"
Correct the spelling across the *entire* tree, including translations,
comments, etc. It's easier that way.

Even the places where it's not exposed to the user, such as tests, so
that we learn how is it spelled correctly.
2018-11-29 17:53:35 +01:00
garywill faba9b12de po: update zh_CN.po fix "Infra" translation
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/48
2018-11-16 08:07:58 +01:00
Yuri Chornoivan 60dda78b74 po: update Ukrainian (uk) translation (#36)
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/36
2018-10-26 12:34:31 +02:00
Lubomir Rintel 7b8510a7e8 po: update from Red Hat translators
https://bugzilla.redhat.com/show_bug.cgi?id=1608323
(cherry picked from commit d7d085a88d)
2018-10-16 16:48:27 +02:00
Rafael Fontenelle fea3d11883 po: update Brazilian Portuguese (pt_BR) translation
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/22
2018-10-01 11:08:42 +02:00
AsciiWolf b595232021 po: update Czech (cz) translation
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/18
2018-09-30 22:06:35 +02:00
AsciiWolf 210e28f7e9 po: update Czech (cz) translation
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/13
(cherry picked from commit 69b4b28bb8)
2018-09-13 17:07:46 +02:00
Thomas Haller 4106f2968d libnm/crypto: rename libnm's crypto files
"crypto.h" did not follow our common NM style naming. Rename
the files.
2018-09-04 07:38:30 +02:00
Dingzhong Chen dc4db093c7 po: update Chinese (zh_CN) translation
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/10
2018-08-30 07:35:17 +02:00
Christian K cd79a22d18 po: update German translation
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/9
2018-08-21 17:59:02 +02:00
Lubomir Rintel de615e3136 po: fix a typo in fr translation
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/5
2018-08-20 19:18:14 +02:00
Lubomir Rintel 0004404cb1 ip4-config: fix a typo
(cherry picked from commit 0550003ef0)
2018-08-19 13:56:14 +02:00
Lubomir Rintel 2d3d1bbc96 po/ja: translations from the Red Hat translators
(cherry picked from commit 7af38dc4fc)
2018-08-19 13:56:12 +02:00
Rafael Fontenelle 02c11bb349 po: update Brazilian Portuguese translation
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/3
2018-08-15 11:30:22 +02:00
Thomas Haller df30651b89 libnm, cli, ifcfg-rh: add NMSettingEthtool setting
Note that in NetworkManager API (D-Bus, libnm, and nmcli),
the features are called "feature-xyz". The "feature-" prefix
is used, because NMSettingEthtool possibly will gain support
for options that are not only -K|--offload|--features, for
example -C|--coalesce.

The "xzy" suffix is either how ethtool utility calls the feature
("tso", "rx"). Or, if ethtool utility specifies no alias for that
feature, it's the name from kernel's ETH_SS_FEATURES ("tx-tcp6-segmentation").
If possible, we prefer ethtool utility's naming.

Also note, how the features "feature-sg", "feature-tso", and
"feature-tx" actually refer to multiple underlying kernel features
at once. This too follows what ethtool utility does.

The functionality is not yet implemented server-side.
2018-08-10 10:38:19 +02:00
Yuri Chornoivan acb975043e po: update Ukrainian (uk) translation (bgo#796728)
https://bugzilla.gnome.org/show_bug.cgi?id=796728
2018-07-12 07:37:25 +02:00
Beniamino Galvani a9b4532fa7 libnm-core: add SR-IOV setting
Add a setting containing SR-IOV parameters.
2018-07-11 16:16:22 +02:00
Lubomir Rintel 3cd9322298 libnm: add support form 6LoWPAN devices 2018-06-26 16:21:55 +02:00
Lubomir Rintel b7173ad7a7 devices: add NMDevice6Lowpan 2018-06-26 16:21:55 +02:00
Lubomir Rintel 7c1f3650a1 core: add NMSetting6Lowpan 2018-06-26 16:21:55 +02:00
Lubomir Rintel a3baf1ca21 libnm: add support for WPAN devices 2018-06-26 16:21:55 +02:00
Lubomir Rintel 179909a4f2 devices: add NMDeviceWpan 2018-06-26 16:21:54 +02:00
Lubomir Rintel 8884b2cb5e core: add NMSettingWpan 2018-06-26 16:21:54 +02:00
Piotr Drąg f4bef9a12e po: update Polish (pl) translation (bgo #796610)
https://bugzilla.gnome.org/show_bug.cgi?id=796610
2018-06-19 16:55:39 +02:00
Piotr Drąg eb54fc0bef po: fix broken strings in Japanese translation (bgo#796611)
https://bugzilla.gnome.org/show_bug.cgi?id=796611
2018-06-19 16:53:20 +02:00
Thomas Haller 5975e4a39e cli: add helper methods for implementing NmcMetaGenericInfo's get_fcn() 2018-05-14 17:53:03 +02:00
Stas Solovey 416b2c020b po: updated Russian (ru) translation (bgo #794738)
https://bugzilla.gnome.org/show_bug.cgi?id=794738
2018-04-27 13:33:58 +02:00
Thomas Haller 21f6058cfe libnm/keyfile: merge keyfile sources (pt2, merge nm-keyfile-writer.c)
Splitting keyfile handling in two "reader.c" and "writer.c" files
is not helpful. What is most interesting, is to see how property XYZ
is serialized to keyfile, and to verify that the parser does the
inverse. For that, it's easier if both the write_xzy() and parse_xyz()
function are beside each other, and not split accross files.

The more important reason is, that both reader and writer have their
separate handler arrays, for special handling of certain properties:
@key_parsers and @key_writers. These two should not be separate but will
be merged. Since they reference static functions, these functions must
all be in the same source file (unless, we put them into headers, which
would be unnecessary complex).

No code was changed, only moved.
2018-04-19 09:36:41 +02:00
Thomas Haller f99dc6b936 libnm/keyfile: merge keyfile sources (pt1, rename nm-keyfile-reader.c)
I am going to merge the files for keyfile handling in libnm-core.
There is a reason for that, I'll tell you next.
2018-04-19 09:36:41 +02:00
Thomas Haller 684bf31150 all: unify spelling of translators hint in source code
Use the same form everywhere: "TRANSLATORS" instead of "Translators".
The manual also seems to prefer the upper-case form [1].

  $ sed 's/\<Translators\>: /TRANSLATORS: /g' $(git grep -l Translators) -i

[1] https://www.gnu.org/software/gettext/manual/gettext.html
2018-04-13 10:00:09 +02:00
AsciiWolf ddc2c5f215 po: update Czech translation
https://github.com/NetworkManager/NetworkManager/pull/84
2018-03-30 22:01:50 +02:00
Yuri Chornoivan 64cb0f5cfb po: update Ukrainian (uk) translation (bgo#794443)
https://bugzilla.gnome.org/show_bug.cgi?id=794443
2018-03-19 16:17:51 +01:00
Stas Solovey 371af1f8b9 po: updated Russian (ru) translation (bgo #794338)
https://bugzilla.gnome.org/show_bug.cgi?id=794338
2018-03-15 08:28:17 +01:00
Andika Triwidada e3214f8d95 po: updated Indonesian translation (bgo #794103)
https://bugzilla.gnome.org/show_bug.cgi?id=794103
2018-03-08 00:29:13 +01:00
Thomas Haller 49985a890f po: drop Changelog file
The file is badly outdated and obviously unused. Replace the existing entries
with a comment where to find the outdated changelog.
2018-02-07 13:32:01 +01:00
Piotr Drąg fa8a90a28e po: update Polish (pl) translation (bgo #792436)
https://bugzilla.gnome.org/show_bug.cgi?id=792436
2018-02-05 10:46:47 +01:00
Thomas Haller be13c75a3c po: skip translation for file in meson build directory
Otherwise, having a meson build directory along autotools,
lets `make check` fail with

    The following files contain translations and are currently not in use. Please
    consider adding these to the POTFILES.in file, located in the po/ directory.

    build/data/org.freedesktop.NetworkManager.policy.in

    If some of these files are left out on purpose then please add them to
    POTFILES.skip instead of POTFILES.in. A file 'missing' containing this list
    of left out files has been written in the current directory.
    Please report to http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager
    if [ -r missing -o -r notexist ]; then \
      exit 1; \
    fi

Yes, meson does not require that the build directory is named "build"
and this fix only works for the default case.
2018-01-12 09:51:12 +01:00
Iñigo Martínez 7b34c3cf3e build: Rename settings-docs.c file
The `settings-docs.c` file is generated by processing the
`nm-property-docs.xml` file. Although this works in autotools,
the `.c` extension makes meson not to handle it properly.

Given the fact that it only contains a number of defines it
makes sense to change its extension to `.h` an use it as a header.
This also makes meson to handle it properly and build it before
its used.

https://mail.gnome.org/archives/networkmanager-list/2018-January/msg00057.html
2018-01-12 09:39:06 +01:00
Iñigo Martínez 03637ad8b5 build: add initial support for meson build system
meson is a build system focused on speed an ease of use, which
helps speeding up the software development. This patch adds meson
support along autotools.

[thaller@redhat.com: rebased patch and adjusted for iwd support]

https://mail.gnome.org/archives/networkmanager-list/2017-December/msg00022.html
2017-12-13 15:48:50 +01:00
Lubomir Rintel f4419783b7 po: translations from the Red Hat translators 2017-12-12 10:49:37 +01:00
Lubomir Rintel 4103c72c15 po: update-po for the translations that are going to be updated
Just so that we get a nicer diff when pulling from the Red Hat Zanata.
2017-12-12 10:49:37 +01:00
Lubomir Rintel da13c7a1a4 libnm-core: add NMSettingTCConfig with qdisc support
Currently is only able to hold the queueing disciplines.
2017-12-11 10:52:22 +01:00
Josef Andersson 9b23f97290 po: update Swedish (sv) translation (bgo #791222)
https://bugzilla.gnome.org/show_bug.cgi?id=791222
2017-12-05 11:48:40 +01:00
Yuri Chornoivan 1e02ee4dc0 po: update Ukrainian (uk) translation (bgo#790215)
https://bugzilla.gnome.org/show_bug.cgi?id=790215
2017-11-13 12:36:42 +01:00
Josef Andersson 80687ed0ce po: update Swedish (sv) translation (bgo #790018)
Reviewed-by: Anders Jonsson <anders.jonsson@norsjovallen.se>

https://bugzilla.gnome.org/show_bug.cgi?id=790018
2017-11-07 19:26:07 +01:00
Piotr Drąg b7b052c41e po: update Polish (pl) translation (bgo #789874)
https://bugzilla.gnome.org/show_bug.cgi?id=789874
2017-11-06 12:28:23 +01:00
Thomas Haller d7d9759d56 docs: fix typo in NMSettingBridge:group-forward-mask doc
Fixes: 17ec3aef2f

https://bugzilla.gnome.org/show_bug.cgi?id=789662
2017-10-30 21:49:50 +01:00
Lubomir Rintel 3f74528a0b libnm: add support for ovs-bridge devices 2017-10-30 17:40:09 +01:00
Lubomir Rintel c536d7e666 libnm: add support for ovs-port devices 2017-10-30 17:40:09 +01:00
Lubomir Rintel e5c19377ec libnm: add support for ovs-interface devices 2017-10-30 17:40:08 +01:00
Lubomir Rintel cb9b024ddb libnm-core: add ovs-bridge setting 2017-10-30 17:40:08 +01:00
Lubomir Rintel 8a1ae40a80 libnm-core: add ovs-port setting 2017-10-30 17:40:08 +01:00
Lubomir Rintel 27790fa976 libnm-core: add ovs-interface setting 2017-10-30 17:40:08 +01:00
Lubomir Rintel d4a7fe4679 libnm-core: add ovs-patch setting 2017-10-30 17:40:08 +01:00
Christian Kirbach 2a5b04d06d po: update German (de) translation (bgo#788638)
https://bugzilla.gnome.org/show_bug.cgi?id=788638
2017-10-12 10:58:52 +02:00
Piotr Drąg 5ad6c8471d po: mark broken strings in Japanese translation as fuzzy (bgo#787382)
https://bugzilla.gnome.org/show_bug.cgi?id=787382
2017-09-07 12:22:44 +02:00
Piotr Drąg b13ba34acb po: update Polish (pl) translation (bgo #787380)
https://bugzilla.gnome.org/show_bug.cgi?id=787380
2017-09-07 12:19:45 +02:00
Thomas Haller 752afada0b docs: fix spelling errors in tranlated strings and documentation
https://bugzilla.gnome.org/show_bug.cgi?id=786131
2017-08-11 11:05:12 +02:00
Yuri Chornoivan b535ecc23a po: update Ukrainian (uk) translation (bgo#784529)
https://bugzilla.gnome.org/show_bug.cgi?id=784529
2017-07-07 13:28:50 +02:00
Yuri Chornoivan 5fad8aeb51 po: update Ukrainian (uk) translation (bgo#784166)
https://bugzilla.gnome.org/show_bug.cgi?id=784166
2017-06-29 09:34:36 +02:00
Lubomir Rintel 2a5076f9ee po: bring back Polish translation fixes
Zanata seems to corrupt the translations: https://zanata.atlassian.net/browse/ZNTA-2007
2017-05-29 19:00:58 +02:00
Lubomir Rintel 6b3c7b60c2 po: update Japanese translation
From the Red Hat translators. Fix up the bad msgmerge.
2017-05-29 17:45:11 +02:00
Lubomir Rintel 9d1bf05eda po: fix line ending in Japan translation 2017-05-29 17:40:20 +02:00
Lubomir Rintel 0fcae6c260 po: update translations from Zanata
And make -C po update-po to canonicalize them.
2017-05-29 17:36:32 +02:00
Adonis Papaderos 700c42fe1c po: small translation fix for the Greek language.
https://bugzilla.gnome.org/show_bug.cgi?id=783182
2017-05-29 17:17:15 +02:00
Lubomir Rintel 9c272e2612 po: update Japanese translation
From the Red Hat translators.
2017-05-29 16:25:37 +02:00
Lubomir Rintel c859caa520 po: update translations from Zanata 2017-05-29 16:24:42 +02:00
Adonis Papaderos 6b6d7e411a po: small translation fix for the Greek language.
https://bugzilla.gnome.org/show_bug.cgi?id=783182
2017-05-29 07:59:11 +02:00
Thomas Haller 4dc905a954 po: make update-po 2017-05-10 15:06:30 +02:00
Thomas Haller 8b3c35a13e po: make update-po 2017-04-23 23:51:32 +02:00
Thomas Haller 7aab314cef cli: fix marking settings docs for translation
Text for translation cannot contain defines (or variables). We must
generate the description docs with plain N_() values.
2017-04-23 23:45:02 +02:00
Piotr Drąg fbf40a23ad po: update Polish (pl) translation (bgo #780277)
https://bugzilla.gnome.org/show_bug.cgi?id=780277

[thaller@redhat.com: with `make -C po NetworkManager.pot update-po`]
2017-04-19 17:33:37 +02:00
Thomas Haller 4f5464a914 po: make update-po 2017-04-19 11:52:28 +02:00
Piotr Drąg 70eb4c3dba po: update Polish (pl) translation (bgo #780277)
https://bugzilla.gnome.org/show_bug.cgi?id=780277
2017-04-19 11:52:28 +02:00
Thomas Haller ef6787364a po: import Zanata translations 2017-04-19 11:52:27 +02:00
Thomas Haller ef25459377 po: make update-po 2017-04-19 11:52:26 +02:00
Thomas Haller 886dad49d4 cli: move parsing of meta data fields 2017-04-13 10:10:12 +02:00
Thomas Haller 23298bfc88 cli: move utils function from common.h to nm-meta-setting-desc.c
These functions are only used by nm-meta-setting-desc.c. Make them internal.
Unfortunately, they are part of "common.h" which cannot be used without
the rest of nmcli. Still todo.
2017-03-30 13:09:58 +02:00
Thomas Haller b5c8622ad3 cli: split nm-meta-setting-desc out of settings
This part contains static functions and variables to describe
settings. It is distinct from the mechanism to use them, or
access them.

Split it out.

It still uses clients/cli/common.h and clients/cli/utils.h
which shall be fixed next.
2017-03-30 13:09:58 +02:00
Thomas Haller 4ec7dd987e libnm: add NMSettingUser
This only adds new API for a NMSettingUser. The setting class
is still entirely unused.

The point is getting the new API into 1.8.0 release of libnm.
It's easier to backport the use of the API to a stable branch
then backporting public API.

https://bugzilla.gnome.org/show_bug.cgi?id=776276
https://bugzilla.redhat.com/show_bug.cgi?id=1421429
2017-03-28 14:58:21 +02:00
Thomas Haller 9749fdbf34 po: make update-po 2017-03-21 15:07:17 +01:00
Piotr Drąg 531b05f3d6 po: update Polish (pl) translation (bgo #780277)
https://bugzilla.gnome.org/show_bug.cgi?id=780277
2017-03-21 14:58:08 +01:00
Yuri Chornoivan e2c526f071 po: update Ukrainian (uk) translation (bgo#780201)
https://bugzilla.gnome.org/show_bug.cgi?id=780201
2017-03-21 14:55:24 +01:00
Thomas Haller 6c2895f875 po: import Zanata translations 2017-03-21 14:55:00 +01:00
Beniamino Galvani b42f780e04 core: add support for dummy devices
Add support for creating dummy devices. This commit adds a D-Bus
interface 'org.freedesktop.NetworkManager.Device.Dummy' which is used
primarily for determining the device type but does not carry any
properties.
2017-02-22 21:05:04 +01:00
Piotr Drąg 034d75fb79 po: update Polish (pl) translation (bgo #777402)
https://bugzilla.gnome.org/show_bug.cgi?id=777402
(cherry picked from commit 2131e98511)
2017-01-25 18:18:09 +01:00
Piotr Drąg e1d3759712 po: update Polish (pl) translation (bgo #777402)
https://bugzilla.gnome.org/show_bug.cgi?id=777402
(cherry picked from commit 39455bb99f)
2017-01-17 23:04:14 +01:00
Lubomir Rintel 40a5e845b8 po: import Zanata translations 2017-01-16 22:14:48 +01:00
Beniamino Galvani d252a99fa2 libnm-core: add NMSettingMacsec
The new NMSettingMacsec contains information necessary to establish a
MACsec connection. At the moment we support two different MACsec
modes, both using wpa_supplicant: PSK and EAP.

PSK mode is based on a static CAK key for the MACsec key agreement
protocol, while EAP mode derives keys from a 802.1x authentication and
thus requires the presence of a NMSetting8021x in the connection.
2017-01-16 17:37:14 +01:00
Piotr Drąg b08dd30b09 po: update Polish (pl) translation (bgo #775181)
https://bugzilla.gnome.org/show_bug.cgi?id=775181
2016-11-28 11:16:11 +01:00
Thomas Haller 62c2e6ccda build: rename "src/dns-manager" to "src/dns"
The dns directory does not only contain the manager
instance, but various files related to DNS.

Rename.
2016-11-21 14:07:47 +01:00
Thomas Haller e053996881 build: rename "src/dhcp-manager" to "src/dhcp"
The dhcp directory does not only contain the manager
instance, but various files related to DHCP.

Rename.
2016-11-21 14:07:47 +01:00
Mario Blättermann 167bddb333 po: update German (de) translation (bgo #774461)
https://bugzilla.gnome.org/show_bug.cgi?id=774461
2016-11-15 11:11:06 +01:00
Beniamino Galvani cd73f281cc tui: add support for IP tunnel connections 2016-11-09 17:45:39 +01:00
Thomas Haller 4be9b4a2cb build: move policy file from "policy/" to "data/" 2016-11-03 14:18:23 +01:00
Thomas Haller 254f892c9c ifcfg-rh: rename files 2016-10-11 11:37:46 +02:00
Thomas Haller 912526f543 ibft: rename files to "nms-ibft-*" 2016-10-11 11:37:46 +02:00
Thomas Haller 1213a47faf po: fix POTFILES.in after renaming "nm-wifi-ap-utils.c"
Fixes: 44b2044faa
2016-10-06 21:01:53 +02:00
Thomas Haller 0a9d1e001b po: translate libnm-core/nm-setting-proxy.c 2016-10-04 11:44:44 +02:00
Atul Anand 3ef7d316f6 TODO: Remove Proxies from the list of TODO
Remove Proxies from the list once proxy patches are successfully merged.
2016-10-04 11:44:44 +02:00
Thomas Haller 1a54ac0a1f po: fix adding libnm-core/nm-setting-team.c to po/POTFILES.in
Fixes: 146e0d23bc
2016-09-27 12:02:14 +02:00
Christian Kirbach 899d5e5c82 po: update German (de) translation (bgo#771732)
https://bugzilla.gnome.org/show_bug.cgi?id=771732
2016-09-21 11:24:27 +02:00
Lubomir Rintel 2724ec53b7 po: add translations from Red Hat
https://bugzilla.redhat.com/show_bug.cgi?id=887771
2016-09-06 15:38:38 +02:00
Yuri Chornoivan d1f1c2f18c po: update Ukrainian (uk) translation (bgo#770447)
https://bugzilla.gnome.org/show_bug.cgi?id=770447
2016-08-26 19:04:50 +02:00
Piotr Drąg 3d9a0fda33 po: update Polish (pl) translation (bgo #769463)
https://bugzilla.gnome.org/show_bug.cgi?id=769463
(cherry picked from commit 5e41e1634d)
2016-08-17 20:00:14 +02:00
Piotr Drąg c53eed13e9 po: update Polish (pl) translation (bgo #769463)
https://bugzilla.gnome.org/show_bug.cgi?id=769463
2016-08-15 14:41:59 +02:00
Christian Kirbach 86ad508534 po: update German (de) translation (bgo #766927)
https://bugzilla.gnome.org/show_bug.cgi?id=766927
2016-07-10 10:57:26 +02:00
Lubomir Rintel 1f6d060008 po: sync translations from Zanata 2016-06-22 15:03:22 +02:00
Thomas Haller 5d55492bac shared: add "nm-utils/nm-vpn-plugin-utils.h"
This file is only used by plugins and copied between them.

It's purpose is to contain general utility functions that are
only relevant for implementing NetworkManager's VPN plugins.

In principle the utility functions could be part of libnm, however,
there are a few problems with that:
  - if they are part of libnm, adding and using a new utility function
    requires the plugin to bump the required libnm version. Since you
    usally can work around/reimplement utility functions, this results
    in not using the API from libnm, not adding the API to libnm,
    and reimplementing it over and over in the plugin.
  - plugins compile both against libnm and libnm-glib. Thus, either
    the utility function would also be needed in libnm-glib, or again,
    it is not usable by the plugin.

We must avoid that the utility functions diverge and no local
modifications to these files should be made in the plugin.
Instead, one special location of the utility functions shall be
extended and re-imported (copied) to the plugin as needed.

Add the files to NetworkManager's repository. Although they are not
needed for NetworkManager itself, they are a different API provided
by NetworkManager. An API that is reused and shared by copying the files
around.
2016-06-16 10:45:54 +02:00
Thomas Haller 4b288136e1 shared: move shared files to subdirectory "shared/nm-utils/"
The "shared" directory contains files that are possibly used by all components
of NetworkManager repository.

Some of these files are even copied as-is to other projects (VPN plugins, nm-applet)
and used there without modification. Move those files to a separate directory.
By moving them to a common directory, it is clearer that they belong
together. Also, you can easier compare the copied versions to their
original via

  $ diff -r ./shared/nm-utils/ /path/to/nm-vpn-plugin/shared/nm-utils/
2016-06-16 10:45:53 +02:00
Thomas Haller cf34211c90 libnm/vpn: add nm_vpn_editor_plugin_load_vt()
Let VPN plugins return a virtual function table to extend
the API while bypassing libnm. This allows to add and use
new functionality to VPN plugins without updating libnm.

The actual definitions are in a header-only file
"nm-vpn-editor-plugin-call.h", which can be copied to the
caller/plugin.
2016-06-15 15:01:12 +02:00
Thomas Haller 1d0e0eeffd manager: add Reload() D-Bus command
Add new Reload D-Bus command to reload NetworkManager configuration.

For now, this is like sending SIGHUP to the process. There are several
advantages here:

  - it is guarded via PolicyKit authentication while signals
    can only be sent by root.

  - the user can wait for the reload to be complete instead of sending
    an asynchronous signal. For now, we operation completes after
    nm_config_reload() returns, but later we could delay the response
    further until specific parts are fully reloaded.

  - SIGHUP reloads everything including re-reading configuration from
    disk while SIGUSR1 reloads just certain parts such as writing out DNS
    configuration anew.
    Now, the Reload command has a flags argument which is more granular
    in selecting parts which are to be reloaded. For example, via
    signals the user can:

      1) send SIGUSR1: this writes out the DNS configuration to
         resolv.conf and possibly reloads other parts without
         re-reading configuration and without restarting the DNS plugin.
      2) send SIGHUP: this reloads configuration from disk,
         writes out resolv.conf and restarts the DNS plugin.

    There is no way, to only restart the DNS plugin without also reloading
    everything else.
2016-06-01 19:06:34 +02:00
Mingye Wang (Arthur2e5) e27b571081 po: update Simplified Chinese (zh_CN) translation (bgo #765787)
https://bugzilla.gnome.org/show_bug.cgi?id=765787
2016-05-10 19:41:43 +02:00
Rafael Fontenelle 2347ec762f po: update Brazilian Portuguese (pt_BR) translation (bgo#765974)
https://bugzilla.gnome.org/show_bug.cgi?id=765974
2016-05-10 19:12:36 +02:00
Piotr Drąg d5c192201a po: update Polish (pl) translation (bgo #765985)
https://bugzilla.gnome.org/show_bug.cgi?id=765985
2016-05-09 18:43:06 +02:00
Thomas Haller bf9a74c69f po: remove file "src/nm-sleep-monitor-systemd.c" from POTFILES.in as it has no translations
Fixes: 753f727af5
2016-04-28 13:00:11 +02:00
Francesco Giudici 3c67a1ec5e cli: remove version check against NM
When performing NM package upgrade the new version of nmcli will be immediately
available while NM daemon will not, as it would not restart in order to avoid
to disrupt connectivity. This could create issues with tools leveraging
on nmcli output (till reboot). As apart from this case it is very unlikely
that a user can have this nmcli / NM daemon version mismatch situation,
the check could cause more harm than benefit in real user case
scenarios.

https://bugzilla.redhat.com/show_bug.cgi?id=1291785
2016-04-28 09:35:20 +02:00
Anders Jonsson be34518dc1 po: update Swedish (sv) translation (bgo #764750)
https://bugzilla.gnome.org/show_bug.cgi?id=764750
2016-04-13 11:13:05 +02:00
Piotr Drąg ed9a25773a po: update Polish (pl) translation (bgo #764955)
https://bugzilla.gnome.org/show_bug.cgi?id=764955
2016-04-13 00:21:40 +02:00
Piotr Drąg 2cec85ed92 po: fix syntax error in Telugu (te) translation 2016-04-12 18:42:07 +02:00
Piotr Drąg 4eedbb067a po: fix syntax error in French (fr) translation 2016-04-12 18:41:39 +02:00
Rafael Fontenelle 2a485060c9 po: update Brazilian Portuguese (pt_BR) translation (bgo#764690)
https://bugzilla.gnome.org/show_bug.cgi?id=764690
2016-04-07 16:27:59 +02:00
Lubomir Rintel 9a68f12737 po: update Slovak translation 2016-04-05 15:29:11 +02:00
Lubomir Rintel b0862e759a po: fix line terminations
Seems like Zanata makes it easy to make this mistake if it's just a
warning.

Turn the string back to fuzzy if unsure.
2016-04-05 14:58:33 +02:00
Lubomir Rintel 23b39eb2da po: pull translations from Red Hat 2016-04-05 14:35:53 +02:00
Lubomir Rintel 89d035d061 po: pull translations from Fedora Zanata 2016-04-05 14:35:52 +02:00
Lubomir Rintel 41de730d23 po: update-po 2016-04-05 14:35:52 +02:00
Lubomir Rintel 6701cb8f23 po: remove bad character from Italian translation 2016-04-05 14:35:51 +02:00
Piotr Drąg 743107e163 po: update Polish (pl) translation (bgo #764317)
https://bugzilla.gnome.org/show_bug.cgi?id=764317
2016-03-29 18:20:30 +02:00
Thomas Haller 88655999df shared: add nm_g_object_set_property() 2016-03-26 12:10:54 +01:00
Christian Kirbach 96f937bb3d po: update German (de) translation (bgo #764175)
https://bugzilla.gnome.org/show_bug.cgi?id=764175
2016-03-25 21:04:09 +01:00
Piotr Drąg 634888aff8 po: update Polish (pl) translation (bgo #763327)
https://bugzilla.gnome.org/show_bug.cgi?id=763327
2016-03-08 16:40:28 +01:00
Jiří Klimeš 0f4ddf7882 po: update translations for "m[monitor]" -> "m[onitor]" change 2016-02-03 10:16:24 +01:00
GunChleoc 4441dbf3f3 po: add Gaelic (gd) translation (bgo #761282)
https://bugzilla.gnome.org/show_bug.cgi?id=761282
2016-01-31 22:14:47 +01:00
Piotr Drąg 9cbf3be779 po: update Polish (pl) translation (bgo #761367)
https://bugzilla.gnome.org/show_bug.cgi?id=761367
2016-01-31 19:19:22 +01:00
Christian Kirbach 9e0ca0058b po: update German (de) translation (bgo #760806)
https://bugzilla.gnome.org/show_bug.cgi?id=760806
2016-01-19 12:04:28 +01:00
Jordi Mas d85b57946a ca: update Catalan (ca) translation (bgo #760147)
https://bugzilla.gnome.org/show_bug.cgi?id=760147
2016-01-08 15:09:43 +01:00
Lubomir Rintel dff1829c99 po: fix some typos in Galician translation 2015-12-23 14:40:47 +01:00
Lubomir Rintel aa10b4233f po: update Brazilian Portuguese translation
https://bugzilla.gnome.org/show_bug.cgi?id=759747
2015-12-23 14:38:54 +01:00
Lubomir Rintel 6e98dab526 po: merge in nm-1-0 translations 2015-12-23 14:38:54 +01:00
Lubomir Rintel 7015932e90 po: update-po 2015-12-23 14:38:53 +01:00