Releases: goToMain/libosdp
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
Release v3.0.4
A release to patch cmkae issues found during vcpkg integration. This version
will be pegged to the first vcpkg release.
Fixes:
- cmake: Fix issues found when integrating with vcpkg
- Fix input_check() macros for windows builds
- api: Fixup comamnd queue flush function name
Release v3.0.3
Minor release with a few fixes required for rust development to progress
Enhancements:
- make: Add support for make install
- api: cp: Add method to flush command queue
- python: osdp_sys: Add some error context for public API
- doc: Add libosdp/compatibility to top level index.rst
Fixes:
- doc: Fixup doc in multiple places
- api: More doxygen fixups
- cmake: Fix packet trace and data trace linkage
- api: Fix regression caused by doxygen formatting commit
- api: Fix doxygen comments style all over osdp.h
- Fix minor typos in the Wireshark payload dissector
- doc: More README updates
- doc: Update README; fix compatibility table
- libosdp: Fix issue with SC retry timer
- utils: Pull in fix for time usage on Windows
Release v3.0.2
Yet another minor release to address some of the issues that were identified in
3.0.0 release. With this release, LibOSDP supports Windows as a first-class
citizen.
Enhancements:
- pytest: run.sh: Add an option to skip running the tests
- doc: Add LibOSDP compatibility table
- publish-pypi: Enable windows build/publish
- doc: Update security.md
- python: example: Add some CLI args and add a README.md
- pytest: Add some stage info for run.sh
- libosdp: phy: some minor houekeeping
- python: Deprecate master key based key derivation
- python: Remove concrete "channel" implementations
- libosdp: file: Make impossible conditions as BUG_ON()
- libosdp: file: Do not disrupt SC when file TX fails
- pcap: Replace ':' with '_' in pcap file name timestamp
- utils: bump submodule to fix __weak warning
Fixes:
- Fix bug in SC setup due to missing call to cp_keyset_complete
- python: Fix buggy call to PyArg_Parse due to type of len
- python: fix some minor issues for MSVC to build libosdp
- pcap: Fix file name character replacement bug
- dissector: Remove extra space in command ID text
- libosdp: Fix broken SC due to missing sc_init call