Skip to content
This repository was archived by the owner on Jan 27, 2023. It is now read-only.
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: seveas/python-networkmanager
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: main
Choose a base ref
...
head repository: panoai/python-networkmanager
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 8 commits
  • 3 files changed
  • 2 contributors

Commits on Mar 4, 2026

  1. Update makeconstants.py for modern libnm header paths

    Skip missing headers instead of crashing, and add modern libnm
    paths for VPN and error constants that moved from the deprecated
    libnm-glib and NetworkManager includes.
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
    kergoth and claude committed Mar 4, 2026
    Configuration menu
    Copy the full SHA
    7a57e79 View commit details
    Browse the repository at this point in the history
  2. Regenerate constants and add loopback device type

    Newer NetworkManager versions introduce device types absent from
    the static mapping (Loopback 32, HSR 33, IPVLAN 34, …).
    Add a Loopback subclass for the common case and fall back to
    Generic for any unmapped type so device_class() never raises
    KeyError on newer NM releases.
    
    Constants regenerated from NM 1.52.1 headers with backward-compat
    aliases for constants renamed in 1.48+ (master/slave to
    controller/port).  Safe on kirkstone (1.36.2) and scarthgap
    (1.46.0) — unused constants are harmless integer variables.
    
    Replaces the monkeypatch in pano-ec nm_manager.py (RD-13115).
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
    kergoth and claude committed Mar 4, 2026
    Configuration menu
    Copy the full SHA
    e6d3ec4 View commit details
    Browse the repository at this point in the history
  3. Pass explicit D-Bus signature in generated method calls

    make_method already has the input arg signatures from class-level
    introspection. Pass them through to dbus-python so it doesn't need
    per-proxy introspection to determine argument types.
    
    Examples: ActivateConnection gets signature='ooo',
    GetSettings gets signature='' (no input args).
    kergoth committed Mar 4, 2026
    Configuration menu
    Copy the full SHA
    6ca7cd6 View commit details
    Browse the repository at this point in the history
  4. Add explicit signature='ssv' to Properties.Set calls

    The third argument to Properties.Set is a D-Bus variant ('v').
    dbus-python cannot infer variant type signatures without
    introspection data, so an explicit signature='ssv' is required
    for correct marshalling when introspection is disabled.
    kergoth committed Mar 4, 2026
    Configuration menu
    Copy the full SHA
    9a11eb8 View commit details
    Browse the repository at this point in the history
  5. Add explicit signature='ss' to Properties.Get calls

    Completes the explicit-signatures approach: Get calls now pass
    signature='ss' instead of relying on dbus-python to infer it from
    the Python str arguments.  Matches the existing signature='ssv' on
    Properties.Set.
    kergoth committed Mar 4, 2026
    Configuration menu
    Copy the full SHA
    a06b0de View commit details
    Browse the repository at this point in the history
  6. Disable per-proxy D-Bus introspection (introspect=False)

    With explicit signatures in make_method and make_property setter,
    dbus-python no longer needs per-proxy introspection.
    
    Eliminates the _introspect_block() cost (~1-5ms per proxy) and stops
    signal match rule accumulation for callers which do not run a glib main
    loop.
    
    Also removes follow_name_owner_changes=True from proxy creation.
    This parameter registered a D-Bus match rule to track NM name
    ownership changes per-proxy; it is redundant because
    SignalDispatcher.handle_restart() already handles NM restarts by
    re-creating all proxies centrally.
    kergoth committed Mar 4, 2026
    Configuration menu
    Copy the full SHA
    d25372e View commit details
    Browse the repository at this point in the history
  7. Add unit tests for introspect=False code generation

    Verify that make_method, make_property, and proxy creation produce
    the correct explicit signatures and introspect=False flags, catching
    regressions without requiring a live D-Bus environment.
    kergoth committed Mar 4, 2026
    Configuration menu
    Copy the full SHA
    cbded0d View commit details
    Browse the repository at this point in the history
  8. Guard optional dns keys in connection fixups

    Connections without DNS configured lack a 'dns' key when
    introspect=False, causing KeyError in to_python(). Unlike
    addresses/routes (always present), dns is genuinely optional.
    
    Based on the fix by Sean Donohue in meta-pano 0001-nm-fix.patch.
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
    kergoth and claude committed Mar 4, 2026
    Configuration menu
    Copy the full SHA
    b40d3df View commit details
    Browse the repository at this point in the history
Loading