1. 13 Sep, 2018 11 commits
  2. 08 Sep, 2018 1 commit
  3. 04 Sep, 2018 1 commit
    • Thomas Haller's avatar
      build: enable building both crypto backends for tests · e01f7f2c
      Thomas Haller authored
      If the library is available, let's at least compile both
      crypto backends.
      
      That is helpful when developing on crypto backends, so that
      one does not have to configure the build twice.
      
      With autotools, the build is only run during `make check`.
      Not for meson, but that is generally the case with our meson
      setup, that it also builds tests during the regular build step.
      e01f7f2c
  4. 27 Aug, 2018 2 commits
    • Thomas Haller's avatar
      build/meson: fix build options for suspend-resume · 1dd63580
      Thomas Haller authored
      suspend-resume must be selectable, out of for possible options.
      We can do auto-detection based on present libraries, but it
      shall be selectable. Like it is with autotools.
      1dd63580
    • Thomas Haller's avatar
      build: cleanup build defines for session-tracking · 1a9bc224
      Thomas Haller authored
      - always define the SESSION_TRACKING_* defines to replace
        "#ifdef" with "#if".
      
      - drop defining the consolekit database path CKDB_PATH in
        config.h. The path was not customizable via configure/meson.
      
      - fix meson build to enable consolekit support for session tracking
        without also enabling logind/elogind session tracking.
        logind/elogind is mutually exclusive, but consolekit session tracking
        goes together just fine.
      1a9bc224
  5. 15 Aug, 2018 1 commit
  6. 13 Aug, 2018 1 commit
  7. 25 Jul, 2018 1 commit
  8. 17 Jul, 2018 1 commit
    • Thomas Haller's avatar
      build: create "config-extra.h" header instead of passing directory variables via CFLAGS · a75ab799
      Thomas Haller authored
      1) the command line gets shorter. I frequently run `make V=1` to see
         the command line arguments for the compiler, and there is a lot
         of noise.
      
      2) define each of these variables at one place. This makes it easy
         to verify that for all compilation units, a particular
         define has the same value. Previously that was not obvious or
         even not the case (see commit e5d1a713
         and commit d63cf1ef).
         The point is to avoid redundancy.
      
      3) not all compilation units need all defines. In fact, most modules
         would only need a few of these defines. We aimed to pass the necessary
         minium of defines to each compilation unit, but that was non-obvious
         to get right and often we set a define that wasn't used. See for example
         "src_settings_plugins_ibft_cppflags" which needlessly had "-DSYSCONFDIR".
         This question is now entirely avoided by just defining all variables in
         a header. We don't care to find the minimum, because every component
         gets anyway all defines from the header.
      
      4) this also avoids the situation, where a module that previously did
         not use a particular define gets modified to require it. Previously,
         that would have required to identify the missing define, and add
         it to the CFLAGS of the complation unit. Since every compilation
         now includes "config-extra.h", all defines are available everywhere.
      
      5) the fact that each define is now available in all compilation units
         could be perceived as a downside. But it isn't, because these defines
         should have a unique name and one specific value. Defining the same
         name with different values, or refer to the same value by different
         names is a bug, not a desirable feature. Since these defines should
         be unique accross the entire tree, there is no problem in providing
         them to every compilation unit.
      
      6) the reason why we generate "config-extra.h" this way, instead of using
         AC_DEFINE() in configure.ac, is due to the particular handling of
         autoconf for directory variables. See [1].
         With meson, it would be trivial to put them into "config.h.meson".
         While that is not easy with autoconf, the "config-extra.h" workaround
         seems still preferable to me.
      
      [1] https://www.gnu.org/software/autoconf/manual/autoconf-2.63/html_node/Installation-Directory-Variables.html
      a75ab799
  9. 09 Jul, 2018 1 commit
  10. 29 Jun, 2018 1 commit
  11. 28 Jun, 2018 1 commit
  12. 15 Jun, 2018 2 commits
  13. 31 May, 2018 2 commits
  14. 14 May, 2018 1 commit
    • Lubomir Rintel's avatar
      build: qualify plugin dir name with a version string · 320422e4
      Lubomir Rintel authored
      This makes package updates more robust, avoiding in-place replaces of
      the plugins.
      
      Previously, if an upgrade transaction was terminated, NetworkManager
      library could end up being of a different version than the plugins.
      If the user was unfortunate enough to connect using a connection that
      required a plugin (say, Wi-Fi), he would be left without a network
      connection making it somewhat inconvenient to recover from the botched
      upgrade.
      
      This makes the whole situation a little bit less sad.
      
      The VPN plugins are kept where they always have been -- the path is not
      qualified with a version number.
      320422e4
  15. 11 May, 2018 2 commits
  16. 09 May, 2018 3 commits
    • Lubomir Rintel's avatar
      build: qualify plugin dir name with a version string · 6384ad4e
      Lubomir Rintel authored
      This makes package updates more robust, avoiding in-place replaces of
      the plugins.
      
      Previously, if an upgrade transaction was terminated, NetworkManager
      library could end up being of a different version than the plugins.
      If the user was unfortunate enough to connect using a connection that
      required a plugin (say, Wi-Fi), he would be left without a network
      connection making it somewhat inconvenient to recover from the botched
      upgrade.
      
      This makes the whole situation a little bit less sad.
      6384ad4e
    • Lubomir Rintel's avatar
      meson: distinguish arch specific and arch neutral lib dir · 6aac441f
      Lubomir Rintel authored
      Plugins go to the arch specific place while conf.d/ and VPN/ are in
      lib/. Use the same naming as is used with autoconf.
      6aac441f
    • Lubomir Rintel's avatar
      meson: quote dist_version properly · 84a60107
      Lubomir Rintel authored
      84a60107
  17. 23 Apr, 2018 1 commit
  18. 18 Apr, 2018 3 commits
  19. 13 Apr, 2018 1 commit
    • Thomas Haller's avatar
      auth-manager: always compile D-Bus calls to polkit · 41abf9f8
      Thomas Haller authored
      Supporting PolicyKit required no additional library, just extra code
      to handle the D-Bus calls. For that, there was a compile time option
      to even stip out that code. Note, that you could (and still can)
      configure the system not to use policy-kit. The point was to reduce
      the binary size in case you don't need it.
      
      Remove this. I guess, we we aim for such aggressive optimization of
      the binary size, we should instead make all device types disablable
      at configuration time. We don't do that either and other low hanging
      fruits, because it's better to always enable features, unless they
      require external dependencies.
      
      Also, the next commit will make more use of NMAuthManager. So, having
      it disabled at compile time, makes even less sense.
      41abf9f8
  20. 12 Apr, 2018 1 commit
  21. 15 Mar, 2018 1 commit
  22. 21 Feb, 2018 1 commit
    • Thomas Haller's avatar
      netlink: drop libnl3 dependency · 3fab322a
      Thomas Haller authored
      From libnl3, we only used the helper function to parse/generate netlink
      messages and the socket functions to send/receive messages. We don't
      need an external dependency to do that, it is simple enough.
      
      Drop the libnl3 dependency, and replace all missing code by directly
      copying it from libnl3 sources. At this point, I mostly tried to
      import the required bits to make it working with few modifications.
      
      Note that this increases the binary size of NetworkManager by 4736 bytes
      for contrib/rpm build on x86_64. In the future, we can simplify the code
      further.
      
      A few modifications from libnl3 are:
      
      - netlink errors NLE_* are now in the domain or regular errno.
        The distinction of having to bother with two kinds of error
        number domains was annoying.
      
      - parts of the callback handling is copied partially and unused parts
        are dropped. Especially, the verbose/debug handlers are not used.
        In following commits, the callback handling will be significantly
        simplified.
      
      - the complex handling of seleting ports was simplified. We now always
        let kernel choose the right port automatically.
      3fab322a