Skip to content

Releases: osdp-dev/libosdp

Release v3.1.2

14 Jun 10:28
v3.1.2

Choose a tag to compare

Point fix for #298; cherry-picks b922873

Fixes:

  • CP: Fix bug in sequence number progression
  • ci: Trigger PyPI publish on tag push instead of workflow_run
  • API: Undefine API_DEPRECATED to fix macos build issue
  • ci: Replace deprecated macos-13 runner with macos-15-intel
  • Update macos runners that were deprecated

Release v3.2.2

09 Jun 06:57
v3.2.2

Choose a tag to compare

Point release for Apache Mynewt platform support

Fixes:

  • Update cibuildwheel version to 3.4.0
  • Fix test build failure on windows platforms
  • Enable MSVC's conformwat /Zc:preprocessor
  • utils: Bump submodule pointer for Apache Mynewt fix
  • API: Undefine API_DEPRECATED to fix macos build issue

Release v3.1.1

18 May 07:29
v3.1.1

Choose a tag to compare

Point release to fix #298

Fixes:

  • unit-tests: Remove CRC tests now that the source patch is reverted
  • Revert "CP: Add adaptive checksum/CRC-16 support with automatic fallback"

Release v3.2.1

19 Mar 10:11
v3.2.1

Choose a tag to compare

A point release to fix rust builds

Fixes:

  • utils: Bump submodule to pull in fix for slab_t packing issue

Release v3.2.0

16 Mar 09:55

Choose a tag to compare

This marks the last release for v3 of LibOSDP as v4 will break a few API to switch
to a new "one channel per osdp_t" data model.

Enhancements:

  • Python: Enable support for app owned queue data
  • API: Add app-owned queue mode with completion callbacks
  • Add some quality of life improvements for Zephyr
  • chore: Add macro guards around config.h.in entries
  • Add python support for zero-coppy and add a pytest
  • API: Add support for a new zero-copy RX path
  • allow REPLAY_OSTATR as reply for CMD_OUT
  • Add helper methods to read/write from buffers
  • cp: Remove unused flag PD_FLAG_HAS_SCBK
  • LibOSDP: Decouple OSDP_FLAG_XXX and PD_FLAG_XXX
  • Add static inline helpers for various OSDP_FLAG_* macros
  • API: Reorder attribute macros for Clang compatibility
  • PD: Add internal command validation

Fixes:

  • Fix build git version tags
  • tests: Fix broken command unit tests
  • Fix docs build
  • test: Fix failure due to capabilities
  • tests: Fix warning about unused functions
  • python: Fix deadlocks by using with statement in locks
  • pyosdp: Fix error propagation to help debugging
  • fixup! Initialize command and event structs before the are used
  • Initialize command and event structs before the are used
  • pyosdp: Fix status command event and struct builders
  • fix Stat Decode error in file transfer keep alive mode
  • Avoid unused variable warnings in case __ASSERT evaluates to NOP.
  • PD: Fix warning about unhandled cases in validate_command
  • CP: Fix un‑annotated fall‑through in notify_command_status
  • fixup! PD: Add internal command validation
  • CP: Fix bug in sequence number progression
  • PD: Fix non-compliant REPLY_RMAC_I status byte
  • Remove redundant pd->reply_id sets and add missing javadoc entry

Release v3.1.0

25 Sep 07:19
v3.1.0

Choose a tag to compare

This release introduces hotplug support, adaptive CRC handling, improved
sequnce number handling, and several CP/PD enhancements. It also includes
critical bug fixes for MFG commands, memory leaks (python), and protocol
stability.

Enhancements:

  • API: Add support for PD hot-plug/unplug
  • unit-tests: Add coverage for commands and events
  • tests: Fix and enhance Python OSDP test infrastructure
  • unit-tests: Add CP/PD startup time fuzzers
  • CP: Improve sequence number NAK handling and recovery
  • unit-tests: Add more phy layer tests
  • CP: Add adaptive checksum/CRC-16 support with automatic fallback
  • CI: Add support for more python platforms
  • API: provide export macros locally
  • Add initial support to build LibOSDP as a Zephyr module
  • cmake: Add option to enable bare metal builds
  • cmake: Rename CONFIG_XXX with OPT_XXX
  • cp: Reset retry_count when PD responds
  • pd: Add missing call to osdp_sc_init()
  • API: Rename cp_send_command and pd_notify_event
  • API: Add channel close callback
  • API: CP: Add support for command broadcast
  • CP: Extend debug logging for events
  • API: PD: Add new COMESET_DONE command
  • API: Extend PD status report mask to byte array
  • API: Deprecate OSDP_CARD_FMT_ASCII
  • API: Add new PD capabilities introduced in OSDP v2.2
  • API: Add support to include PDs after osdp_cp_setup

Fixes:

  • MFG: remove command field on OSDP 2.2
  • Fix manufacturer command callback return value handling
  • python: Fix a plethora of memory leaks and other issues
  • Fix Wireshark Lua dissector issue on newer Lua versions
  • PD: Initialize event objects to prevent undefined behavior
  • pd: Fix bug in MFGREP events from application
  • build: Fix breakage due to CRC16 re-org
  • Fix platformio CP example
  • Phy: Fix packet header scan
  • pytest: skip broken test test_command_status()
  • PD: Fix some random cases where pd->reply_id could be invlaid
  • pd: Fix do_command_complete callback handling
  • crypto/tinyaes: Typecast RAND_MAX to float to fix warning
  • fix offline notification

Release v3.0.8

12 Nov 01:28
v3.0.8

Choose a tag to compare

A quick re-relase of v3.0.7 with 2 critical fixes needed for Rust and
PlatformIO. Refer to previous relase for actual change log.

Fixes:

  • utils: Bump submodule to get BARE_METAL target fix
  • scripts: Fix make-release.sh after PlatformIO changes

Release v3.0.7

12 Nov 00:22
v3.0.7

Choose a tag to compare

This release has been long overdue, bringing in a lot of enhancements and
stability fixes. Most notable change include PlatformIO support.

Enhancements:

  • CI: Fix PlatformIO publish workflow
  • scripts: Add release hooks for platformio
  • PlatformIO: check-in a cached copy of generated headers
  • PlatformIO: Add initial port for PlatformIO
  • doc: Split osdp_pd_into_t into it's own section
  • cmake: Always export compile_commands.json
  • ci: Move to actions/upload-artifact@v4 to fix CI builds
  • build: Make changes to allow nix/nixos builds
  • libosdp: Make a copy of PD name from pd_info_t
  • file: Add support various flow control flags
  • API: Add support for PD status change events.
  • file: Add support for keep alive messages
  • cp: Add support for delaying file transfer
  • file: Switch to using to BYTES to/from unsigned types macros
  • file: Fix multiple assumptions about target endianess
  • crypto: Anotate panic method with 'noreturn' attribute
  • cmake: Add more sanitizers and rename the config key for it
  • scripts: run_tests.sh: Switch to cmake based build and run invocations
  • cmake, make: generate osdp_config.h in build/include dir
  • doc: Update packet and data trace documentation
  • Rename osdp_pcap.* as osdp_diag.* to allow for future enhancements
  • examples/python: PD: Add singal handler to exit the script
  • python: Enable packet trace builds by default
  • API: Add a flag to enable packet trace at runtime
  • scripts: Update run_tests.sh to call functions for different test suites
  • cp: phy: Allow plaintext NACKs when SC is active
  • cp: Add a log line when retrying SC after timeout
  • cp: keyset complete don't request SC restart if PD is not online
  • Prefix CP/PD tags to setup log line
  • cp: Add entry for handling OSDP_ERR_PKT_NACK to add comments
  • cp: Set reply_id to REPLY_INVALID before sending a command
  • cp: Introduce "probe" state for PDs that don't respond
  • doc: Update cmake invocations for cross-platform builds
  • api: Remove OSDP_EXPORT decorations in declarations
  • cmake: Exclude targets that cannot be built when using MSVC
  • doc: Add section about vcpkg usage
  • API: Add new setup flag to guard notification events
  • API: Add support notification events
  • scripts: Add a tests runner scripts
  • doc: Add deprecation notice for osdpctl
  • pytest: Add tests for pd_id and pd_cap API
  • test: Add some info message when invoked with -n flag
  • python: osdp: Add method in KeyStore to persisting a key
  • python: osdp: Consume and export pd_id and pd_cap getters
  • python: osdp_sys: Enable pd_cap and pd_id getters
  • phy: Lower log level for packet_scan_sckip reports
  • phy: Allow multiple mark bytes before SOM

Fixes:

  • Fix handling of empty SCS17/SCS18 messages
  • Annotate osdp_millis_now definition with __weak atrribute
  • python: Fix LED commands with temporary and permanent records
  • Copied osdp_export.h from correct location on install
  • cp: Fix 'REPLY_BUSY' handling logic
  • pd: Don't discard SC before acknowledging keyset command
  • cp: Move cp_cmd_free() out of cp_translate_cmd()
  • cp: Fix typo in flag CP_REQ_OFFLINE value
  • file: Fix bug in the exclusive flag collection
  • libosdp: Fix memory leak when file ops is registered
  • cp: Fix loss of tamper bit when saving power bit in status event
  • utils: Pull in fixes for loging and make
  • utils: Bump submodule for windows build fix
  • cp: Fix segfault in osdp_cp_teardown()
  • python: Fix broken build due to wrong return type
  • python: Fix potential null-ptr-deref during event callback
  • Bump utils and fix some typos in osdp.h
  • examples: Fix makefile and some minor udpates
  • pd: Fix firmware_version reports in PD_ID

Release v3.0.6

10 May 10:43

Choose a tag to compare

Patch release to address rust build failure issue.

Fixes:

  • examples: python: Fix pyserial read timeout
  • Continue normally on successful command callback on status commands
  • phy: Enhance package scan logging by printing mark-byte
  • ci: Exclude cpp sample from all and build explicitly in build-ci
  • ci: Fix broken release action

v3.0.5

23 Mar 10:19

Choose a tag to compare

More vcpkg integration issue fixes. This relaese is also about more platform suppport.

See full changelog here.

Enhancements:

  • ci: Enhance to run on different platforms; start doc builds
  • cmake: Add options to disable shared/static builds

Fixes:

  • examples: cpp: Use std::this_thread::sleep_for instead of usleep
  • doc: Fix doxygen build by copying and patching osdp.h
  • api: Fix some more doxygen formatting issues
  • doc: Remove deprecated doxygen config entries
  • cmake: cpack: Fix package definitions
  • crypto: openssl: Remove call to ERR_print_errors_fp()
  • crypo: Add missing headers for openssl.c
  • api: Add OSDP_EXPORT to exported methods in osdp.h
  • python: example: Update README.md with socat link option
  • ci: Fix cross-platform build and change cpack artifact path
  • cmake: Fix MSVC OSDP_EXPORT macro issue
  • cmake: Fix MSVC compiler flag issue
  • CI: Add an on-demand cross platform build check runner
  • cmake: Fix broken CI build due utils build