Releases: osdp-dev/libosdp
Release v3.1.2
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
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
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
A point release to fix rust builds
Fixes:
- utils: Bump submodule to pull in fix for slab_t packing issue
Release v3.2.0
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
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
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
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
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
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