[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.
Cheers,
Peter
[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
Drop AM_MAINTAINER_MODE
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:
https://github.com/libratbag/libratbag/archive/v0.9.900/libratbag-0.9.900.tar.gz
-------------- 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