[ANNOUNCE] libratbag 0.9.900

Peter Hutterer peter.hutterer at who-t.net
Fri Aug 25 04:24:24 UTC 2017

libratbag v0.9.900 is out. This is a development snapshot on the way to 0.10
and mostly just a status announcement that the project is still alive,
possibly kicking but definitely moving.

The largest change in this release is the disappearance of libratbag.so.
That's right, libratbag is not a library anymore. Instead, we merged the
ratbagd project into libratbag and the main way to interact with libratbag
is now via its DBus interface.

This decision was taken simply because anything using libratbag needs to run
as root to have the required permissions. So at that point you need some
abstraction daemon anyway to use it from a GUI app. Now you need IPC and
hello, DBus, here we come. Conveniently, we had a such a dbus daemon around
already (David Herrmann's ratbagd), so while David wasn't looking we quickly
merged it into libratbag and pretended this was the plan all along. Thank
him for the service, give him a pat on the schoulder, etc.

Based on the above, we've made some major changes for developers too,
specifically the ability to fire up devel versions of ratbagd without
interfering with the system ones. Look at the ratbagctl.devel tool for that.
ratbag-command is all but fully replaced with ratbagctl now and will
disappear from the tree soon.

Heaps of work has gone into piper [1], the GTK application. Jente Hidskes has
been working on it for this year's GSoC and quite a bit of that work has
trickled back into libratbag. Most importantly, libratbag's SVGs have
themeing support - currently we have the 'default' theme and the 'gnome'
theme that is used by piper.

The DBus interface, originally from ratbagd, has seen massive revamps and
it's likely that for the next snapshots it will change again.

Meanwhile, feel free to play with it, get involved, etc. Any of the things
that make life so exciting.


[1] http://github.com/libratbag/piper

Benjamin Tissoires (59):
      Add Readme and the policy file required
      README: Add instructions to have libsystemd >= 227
      ratbagd 0.3
      ratbagd 0.4
      Merge pull request #184 from whot/wip/ratbagd-merge
      Add circle.yml
      enhance circle.yml with workflows
      update circle CI link
      circle.yml: add install step
      circle.yml: uninstall and checks if there are any leftovers
      circle.yml: add workaround for meson upstream bug
      ratbagd: call the correct set_resolution based on the capabilities
      tools: import ratbagd.py from piper
      tools: add ratbagctl.devel to launch both ratbagd and ratbagctl
      hidpp20: shut one ratbagd warning
      ratbagd: add a test device while in developer mode
      drivers: add a fallback for fetching the SVG name
      tools: ratbagctl: sync ratbagd bindings with piper
      Fix flake-8 complains
      tools: ratbagctl: output device information like ratbag-command
      tools: add a test suite for ratbagctl
      ratbagd: add a method to reset the test device to its defaults
      ratabgctl.test: reset the test device before each test
      tools: ratbagctl: add missing capabilities strings
      tools: ratbagctl: Sync ratbagd.py with piper
      tools: ratbagctl tests: do not spawn a new process for each call
      tools: copy ratbagd.py from piper and integrate it in ratbagctl
      tools: ratbagctl: add missing commits
      tools: ratbag-command: fix enable/disable profiles
      ratbagd: implement enable/disable profile
      hidpp20: enable/disable profiles and report it correctly
      hidpp10: assign the active resolution when the profile is not active
      hidpp10: correctly retrieve the profile directory and use it
      hidpp10: implement commit API
      hidpp10: implement enable/disable profiles
      tools: ratbagctl: add support for separate X/Y resolutions
      tools: ratbagctl: do not use chevrons and report active profile
      tools: ratbagd.py: add readwrite=False when we are using explicit setters
      trivial flake8 fixes
      implement resolution active set (#249)
      tools: ratbagctl: fixes for specials
      Start dbus in the container for being able to run the test suite
      tools: ratbagctl: fix 'set' processing when the device is missing
      tools: ratbagctl: remove useless function
      hidpp20: fix resolution active set/get
      test: make sure the dbus daemon is available before starting the test suite
      tools: share the devel boiler plate in a separate python file
      tools: ratbagctl.devel: do not spawn a subprocess to run a python script
      tools: ratbagctl.devel: fix exception if the given arguments are wrong
      tools: ratbagctl.devel: honor --help too
      tools: ratbagctl: have the global options global
      tools: ratbagctl: rename .parse into add_to_subparsers
      tools: ratbagctl: shout the usage if the parsing is incomplete
      tools: ratbagctl: kill an infinite loop in parsing
      tools: ratbagctl: remove useless try/catch
      tools: rabtagctl.devel: only output the dbus name when using keepalive
      tools: ratbagctl: fixes for parsing arguments
      tools: ratbagctl: have a full description of the commands in the usage
      tools: ratbagctl: fix len(array) > 0 check

Christian Kellner (1):
      hwdb: add G403 entry

Clément Vuchener (5):
      data: add toned-down SVG for Logitech G500/G500s (#214)
      driver-hidpp20: do not divert button when remapping
      hidpp20: Fix changing flags in hidpp20_special_key_mouse_set_control
      hidpp: Distinguish 1.0 and 2.0 error codes
      hidpp: Fix error string array size

David Herrmann (34):
      Initialize ratbagd repository
      Import initial components
      build: be more consistent in variable names
      shared: add safe_close()
      ratbagd: keep libratbag context around
      ratbagd: ignore anything but event devices
      ratbagd: create libratbag_device contexts
      ratbagd: add basic device properties
      ratbagd: drop UNPRIVILEGED from properties
      ratbagd: split dbus handling from object handling
      ratbagd: move dbus device management
      ratbagd: expose profiles on the bus
      ratbagd: cache device path
      ratbagd: add ratbagd_device_get_path()
      ratbagd: add device iterator
      ratbagd: remove ratbagd_device_list()
      ratbagd: add manager interface
      ratbagd: add ratbagd_device_get_name()
      ratbagd: profile profile accessors
      ratbagd: simplify profile DBus paths
      ratbagd: ignore NULL profiles
      ratbagd: expose profile information
      ratbagctl: implement list-devices and show-device
      ratbagd: never return ENODATA for Get()
      ratbagd: expose 'DefaultProfile'
      ratbagctl: print the default profile
      ratbagd: add DBus methods to retrieve object paths
      ratbagd: expose resolutions on the bus
      ratbagctl: add show-profile verb
      ratbagctl: move get_profile_path()
      ratbagctl: split get_profile_path()
      ratbagctl: pick default device if none given for show-device
      Merge pull request #1 from bentiss/master
      Merge pull request #2 from whot/master

Jente Hidskes (38):
      python: catch more DBus exceptions
      python: replace == None with is None
      meson: correctly install service files
      meson: use join_paths with dbusdir for consistency
      README: small documentation fixes
      README: replace configure switches with mesonconf switches
      README: s/make install/ninja install/
      profile: add signal for active profile changes
      resolution: add signal for active resolution changes
      README: remove ambiguity in signal descriptions
      resolution: add set_default method
      Fix boolean instruction for Meson
      ratbagd-device: update for new capabilities in libratbag
      README: fix install instructions
      Add an API for LEDs
      RatbagdDevice: add commit method
      data: move default SVGs under `default/` subdirectory..
      Use toned-down device SVGs (#182)
      ratbagd-led: add error check for RGB 0-255 range
      ratbagd-led: mark DBus properties as EMITS_CHANGE
      RatbagdLed: emit DefaultResolutionChanged on the resolution's object
      data/gnome/logitech-502.svg: fix text alignment of button5-leader
      data/gnome/README: include note on z-ordering
      data/gnome/logitech-g700: fix overlapping paths
      DBusInterface: mark Resolution as read-write
      tools/ratbagd.py: sync with Piper
      ratbagd: change the special mapping to the enum
      ratbagd: change the led type to the enum
      ratbagctl: fix typo
      tools/ratbagd.py: sync with Piper
      DBusInterface: document Macro and SetMacro
      ratbagd_button: emit property changed on KeyMapping
      ratbagd_button: emit property changed on Macro
      ratbagd_button: emit property changed on ActionType when setting mappings
      ratbagd.c: unlink before emitting property changed
      RatbagdResolution: emit properties changed from resolution_set_active
      RatbagdResolution: emit properties changed from resolution_set_default
      RatbagdButton: make mapping properties writable

Peter Hutterer (186):
      Add missing attributes.m4
      Remove cleanup func define for sd_bus_message_unref
      device: drop default profile fetching, removed from libratbag
      device: add support for get-svg
      profile: add support for setting the active profile
      profile: prefix the profile object path with a 'p'
      resolutions: switch to using objects for resolutions
      profile: add GetResolutionByIndex
      profile: switch DefaultResolution/ActiveResolution over to an object path
      resolution: add support for setting resolutions and report rate
      device: switch active profile over to return an index only
      resolution: switch to an index for ActiveResolution/DefaultResolution
      Add a log_verbose logging function for debug output
      README: fix typo, this is ratbagd, not libratbag
      device: export all capabilities as dbus properties
      resolution: export capabilities as dbus properties
      resolution: remove unused variables
      Add rudimentary for buttons
      ratbagd: if --verbose is specified, set libratbag to verbose too
      Use streq over strcmp
      Replace fprintfs with a new log_error helper
      device: if we can't fetch the description or svg, return an empty string
      ratbagctl: drop DefaultProfile parsing
      ratbagctl: Switch ActiveProfile parsing to an integer
      ratbagctl: fix show-profile to handle the resolution objects
      ratbagctl: print all properties
      dbus: allow normal users to talk to ratbagd
      resolution: mark the dpi/rate as changable
      Export button mappings over dbus
      button: return -1 for invalid special values
      Add a systemd service file
      Require libratbag 0.2
      ratbagd 0.0.1
      button: emit property change events when we update a button
      Add a COPYING file
      button: use dash, not underscore, for button type names
      Add a python module to talk to ratbagd
      Replace ratbagctl with a python version
      device: export the full path to the SVG as well
      Fix distcheck
      ratbagd 0.0.2
      configure.ac: remove a couple of unused items
      Use PKG_CHECK_VAR to check for the pkgdatadir
      profile: free the buttons/resolutions on profile cleanup
      systemd: restart on abort
      systemd: fix typo in service file
      Change to a dbus-activated service
      Install the dbus config as well
      Create the dbus directory in $builddir
      Makefile: add a comment marker for the dbus/systemd config files
      Update gitignore for a few things
      README: update install instructions for dbus
      Spice up the README a bit
      ratbagd 0.1
      Skip the manual NULL assignment after unref
      configure.ac: fix dbus install directories
      Fix typo in README
      ratbagd 0.1.1
      configure.ac: add missing AC_SUBST for the dbus config dir
      ratbagd 0.1.2
      Document the DBus interface in the README
      Adjust for new libratbag 0.4 API
      ratbagctl: fix error when printing separate x/y resolutions
      device: switch the capabilities to an enum
      resolution: switch the capabilities to an enum
      device: use "Name" instead of "Description"
      manager: drop GetDeviceById
      device: add support for QUERY_CONFIGURATION device capability
      ratbagd 0.2
      Include config.h before anything else
      configure.ac: drop xslt check
      README: remove the compilation instructions for systemd
      Update for new caps in libratbag 0.6
      Change the sed replacement for meson's benefit
      Use automake to generate ratbagctl
      Add meson build file
      Drop autotools
      meson: use warning_level=2 instead of manual -Wall -Wextra
      meson: drop a bunch of compiler flags
      Mark the unknown button type as explicit fallthrough
      shared: relicense rbtree to MIT
      python: switch ratbagctl shebang to python3
      Drop the python bindings, move them into ratbagctl
      ratbagctl: default to list-devices without argv
      Group the the capabilities and provide some more generic topic-like caps
      Fix a doxygen reference
      Merge ratbagd into libratbag
      Merge ratbagd's meson file into libratbag's
      Move ratbagd dbus and tools to top-level directory
      Merge ratbagd README into libratbag
      Drop separate ratbagd COPYING file
      ratbagd: move the source from ratbagd/src to just ratbagd/
      meson: drop unused defines
      meson: drop the separate shared library for ratbagd
      hidpp10: fix a comment, dpi_table is not null-terminated
      hidpp20: use min/max macros over ternary condition
      Provide a min/max dpi for the resolutions
      Drop the semaphore status in the README and the build script
      README: cleanup, de-duplication, etc.
      README: move the dbus interface description out
      README: clean up the Running ratbagd section
      README: clarify the two developer-specific notes
      resolution: add support for min/max resolutions
      meson: hack around Fedora's systemd libdir confusion
      meson: fix svg data dir (#191)
      meson: drop invalid configuration: tag for install_data
      meson: fix valgrind setup
      ratbagd: drop the ActiveResolutionChanged signal generation (#208)
      tools: fix ratbagctl error when dbus isn't available (#210)
      ratbagd: add support for svg theming
      Fix device capability check
      Fix the various scan-build warnings for dead assignments
      hidpp10: error out if we deal with unsupported profiles
      ratbagd: fix a false-positive unused variable warning
      hidpp20: drop unused argument from the profile destroy function
      hidpp20: squash memory leak on profile initialization error
      Don't allocate zero-sized memory
      hidpp20: fix NULL-pointer dereference warning
      Change device name to use a stack buffer
      circle.yml: split fedora install out and make ninja more flexible
      circle.yml: add ninja scan-build to the jobs
      ratbagd: send property changed signals when we change the properties
      ratbagd: drop caching of libratbag variables (#222)
      Set the parent capabilities before setting any child ones (#223)
      circleci: use fedora-latest, not rawhide
      Add logitech G303 SVG for gnome theme (#228)
      Move the shared sources from ratbagd into src
      Include shared-macro.h from libratbag-util.h
      tools: include config.h from lur-command
      ratbagd: use strdup_safe for all string copies
      Move a few #defines over to shared-macro.h
      Move the _cleanup_ functions over to shared-macro.h
      ratbagd: use zalloc instead of calloc
      meson: add ratbagd.py as input source for merge_ratbagd.py
      tools: ratbagctl: compress two print statements into one
      tools: ratbagctl: hook up report rate argparsing
      ratbagd: change the led path to .../event4/p0/l0 (#240)
      Only reset the driver to NULL on unusual exits
      test: disable core dumps in the test suite
      tools: ratbagctl: remove duplicate subprocess.terminate() call
      tools: ratbagctl: don't start a shell for ratbagd's subprocess
      tools: ratbagctl: Fix typo in comment
      tools: ratbagctl: check ratbagd for immediate exit before continuing
      tools: ratbagd: throw an error if the system bus is unavailable
      meson: run ratbagctl.test as part of ninja test
      meson: reduce the valgrind test timeouts
      ratbagd: change the remote property value when writing a property
      ratbagd: send a PropertyChanged signal when modifying the device list
      Tidy up the dbus documentation
      ratbagd: remove DeviceNew/DeviceRemoved signals
      ratbagd: drop SvgPath property from device
      ratbagd: add 'IsActive' property to the profile
      ratbagd: drop 'GetProfileByIndex'
      ratbagd: add IsActive/IsDefault to Resolution
      ratbagd: remove GetResolutionByIndex
      ratbagd: make the resolution properties writable
      ratbagd: make the LED properties writable
      tools: ratbagd: don't silence UnknownProperty errors
      Drop libratbag as separate library
      Don't install ratbag-command
      tools: ratbagd: skip superfluous is None check
      ratbagd: fix resolution_set_default
      tools: ratbagctl: add support for resolution default set/get
      tools: fix typo - s/UNKOWN/UNKNOWN/
      Change enum value of the unknown value type
      ratbagd: change the key action types to enums
      tools: ratbagctl: fix printing of special key map
      driver-test: fix macro initialization
      ratbagd: add support for macros in the test device
      ratbagd: add macro support
      ratbagd: change the button type to the enum value
      ratbagd: rename test's button type to action_type
      ratbagd: add support for test device button types
      Reduce to one special->special string mapping dictionary
      ratbagd: remove devices before removing the context
      ratbagd: handle SIGINT for quitting
      ratbagd: fix return code for SetSpecialMapping (#262)
      doc: drop documentation
      ratbagctl: improve the top-level --help output
      tools: ratbagctl: skip on AttributeError exception handling for --help
      tools: add --keepalive option to ratbagd devel
      Add GNOME svg for Roccat Kone XTD
      tools: don't return a ratbagd_process if things failed
      DBusInterface: add missing 'Methods' header
      meson.build: libratbag 0.9.900

Raghavendra Kamath (2):
      Adjust text and resolution in svg.
      Add new artwork of Logitech G9

Stephen Kitt (1):
      Add manpages for ratbagctl and ratbagd

Thomas Hindoe Paaboel Andersen (1):
      meson: allow builddir other than 'build'

bentiss (5):
      Merge pull request #1 from whot/python-bindings
      Merge pull request #2 from whot/wip/pkg-cleanup
      Merge pull request #3 from whot/master
      Merge pull request #10 from whot/master
      Fix boolean instruction for Meson

git tag: v0.9.900

The libratbag project does not generate tarballs for releases, you can
grab one directly from github:


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 163 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/input-tools/attachments/20170825/f2535034/attachment.sig>

More information about the Input-tools mailing list