• Vasily Galkin's avatar
    gdbus, win32: autolaunch bus with gdbus.exe instead of rundll32 · 8c7670f0
    Vasily Galkin authored
    This is a bit of breaking change:
    After this commit the apps relying of win32 dbus autolaunching,
    need to install gdbus.exe alongside with libgio-2.0-0.dll.
    
    A new command for gdbus tool is used for running server:
    gdbus.exe _win32_run_session_bus
    
    To implement it gdbus.exe uses the same exported function
    g_win32_run_session_bus that earlier was used by rundll.
    So (private) ABI was not changed.
    
    It runs the bus syncronously, exiting after inactivity timeout -
    all exactly like it was runed earlier with the help of rundll32.
    
    While private exported function may have _some_
    version compatibility issues between gdbus.exe and libgio-2.0-0.dll
    compiling dbus server registration logic directly into gdbus.exe
    can lead to _more hidden and more complex_ compatibility issues
    since the names and behaviour of syncronization objects
    used to publish server address would be required compatible between
    gdbus.exe and libgio-2.0-0.dll.
    
    So using "private" exported function to call
    looks like more safe behaviour.
    
    gdbus.exe binary was selected for this task since
    it has corresponding name and at least for msys2 is shippied
    in same package with libgio-2.0-0.dll
    
    turn_off_the_starting_cursor function is also kept as is,
    however it is not obvious if it is still needed
    (by now I failed reproducing original issue).
    
    Explicit g_warnings added to help with possible
    problematic cases for absent or incompatible gdbus.exe
    
    Mainloop is created after successful daemon creation
    Before this change the function leaked mainloop on daemon creation fail
    8c7670f0
Name
Last commit
Last update
.gitlab-ci Loading commit data...
docs Loading commit data...
fuzzing Loading commit data...
gio Loading commit data...
glib Loading commit data...
gmodule Loading commit data...
gobject Loading commit data...
gthread Loading commit data...
m4macros Loading commit data...
po Loading commit data...
subprojects Loading commit data...
tests Loading commit data...
.dir-locals.el Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gitlab-ci.yml Loading commit data...
AUTHORS Loading commit data...
CONTRIBUTING.md Loading commit data...
COPYING Loading commit data...
HACKING Loading commit data...
INSTALL.in Loading commit data...
NEWS Loading commit data...
NEWS.pre-1-3 Loading commit data...
README Loading commit data...
README.md Loading commit data...
README.rationale Loading commit data...
README.win32 Loading commit data...
check-abis.sh Loading commit data...
glib-gettextize.in Loading commit data...
glib.doap Loading commit data...
glib.supp Loading commit data...
meson.build Loading commit data...
meson_options.txt Loading commit data...
msvc_recommended_pragmas.h Loading commit data...
sanity_check Loading commit data...
template-tap.test.in Loading commit data...
template.test.in Loading commit data...