Releases: goToMain/libosdp
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
Release v3.0.1
A quick follow up release adding a few key features that got left out in 3.0.0.
Most notably, packet trace and data trace infrastructure has been reworked and
a custom Wireshark protocol dissector for OSDP was added. Additionally, Some
efforts has been made to support Windows as a build platform.
Enhancements:
- libosdp: Add Packet scan skipped bytes instrumentation
- pcap: Move declarations to a separate header
- doc: Update info about dissector loading on windows
- libosdp: Add support for windows builds
- dissector: Append command/reply name to tree view for better analysis
- libosdp: Migrate rust code to a dedicated repo
- misc: dissector: Add support for data tracer
- libosdp: data_trace: Fix bug in packet length passed to tracer
- libosdp: pcap: Log the number of packets captured
- libosdp: pcap: Bump utils submodule to fix issues
- libosdp: Extend tracing infrastructure to DATA_TRACE
- libosdp: Add timestamp to trace files for uniqueness
- libosdp: Add a custom protocol disector for WireShark
- libosdp: Switch to pcap based packet tracing
Fixes:
- libosdp: Fix packet scan skipped bytes instrumentation
- Repaired references to osdp_millis_now()
- doc: Update debugging.rst and README.md with new tracing changes
- examples: python: Fixup some more minor issues
- libosdp: Rename samples/ as examples/ as it sounds better
- examples: python: Fix CP and PD examples for the higher level osdp module
- CI: Allow publish-pypi.yml to be activated on manual triggers
- CI: Update python publishing to multilinux
Release v3.0.0
This Major release bring rust support, CP state machine cleanups, API cleanups,
and many other enhancemtns and fixes.
Enhancements:
- Add rust support (single entry for 80+ patches)
- Rewrite osdpctl in rust (single entry for many patches)
- chore: Update copyright year to 2024
- python: vendor LibOSDP sources when packaging
- python: Remove code referring to CMakeLists.txt version
- API, python: Add LED color constants from v2.2 of the spec
- doc: Update top-level README.md
- libosdp: cp: Move keyset completion handler to get_next_ok_state()
- tests: pytest: Add install_mode SCBK set test
- libosdp: Unify StatusReport query and event structs
- libosdp: cp: Move functionality away from command builders
- pytests: Remove timeout from CP status test
- python: Adapt to changes to status event/command handling
- libosdp: Rework status command and event handling
- libosdp: cp: Reword event callback mechanism to use requests
- libosdp: Permit REPLY_COM response for CMD_COMSET
- rust: Add method to make a pair of unix channels
- libosdp: Split events data maxlen macro as we have for commands
- libosdp: Reduce command/event pool size
- python: Add a get_file_tx_status() for PD
- test: unit-test: Add command and event callback logging for file tx command
- pyosdp: Move set_log_level() to be module method
- tests: unit-tests: Add initial skeleton for command test
- libosdp: cp: Rework CP state machine
- libosdp: cp: Remove some more master key related code
- libosdp: cp: Move call to cp_cmd_free into cp_translate_cmd
- libosdp: cp: Add BUG() macro and call for file TX cmd translate
- libosdp: cp: Decouple internal and external command queue
- cmake: utils,samples: Bump minimum required version
- libosdp: CP: Lower comeset reply log level to info
- libosdp: API: Do not indiate SC active when using SCBK-D
- libosdp: phy: Also ignore commands with PD address.MSB set
- libosdp: phy: Ignore reply with PD address.MSB cleared
- Increasing the max data contained in an OSDP enevt to 128bytes
- utils: Bump submodule to latest commit
- doc: Add some notes about make build
- libosdp: API: Remove osdp_set_command_complete_callback
- libosdp: Set PD address to 0x7F for broadcast packets
- libosdp: API: common: Increase PD offline status timeout to 600ms
- scripts: Unify release generation scripts into one place
- rust: Add workaround for osdp_config.h.in copy to OUT_DIR
- rust: cp: Add support for the new status command
- libosdp: cp: Add different query options for OSDP_CMD_STATUS
- libosdp: cp: Refactor API command handling (translating) logic
- python: Update README.me and samples after testing
- python: osdp: pd: Add support sc_wait() method
- python: osdp: Add support for non-blocking get_{command,event}
- cmake: Remove python/ subdirectory from chain
- python: Merge test/pytest/testlib as main python package
- libosdp: const-annotate some more public API
- libosdp: Const-ize parameters of exposed methods
- libosdp: Remove deprecated methods tree-wide
- libosdp: Add support for Magenta and Cyan LED colors
- libosdp: Demote osdp_logger_init to a macro alias
Fixes:
- utils: Bump submodule to fix build failure due to VLA
- Fix regression in Rust binding. Commit
51b626c increased buffer size to 128
bytes. Adjust binding accordingly. - make: Fix configure.sh for linux
- libosdp: Fix warnings that break rust build
- utils: Bump submodule to fix log line termination issue
- libosdp: phy: Fix PACKET_TRACE command byte offset
- libosdp: phy: Fix packet trace mark byte logging
- doc: security: Update doc to have latest info; fix a typo
- libosdp: cp: Fix broken keyset for an install_mode PD
- CP: API: Fix callback signature in cpp header
- python: osdp_sys: fix memory leak in pyosdp_add_pd_cap
- pytest: Fix run.sh to be invokable from other dirs
- python: Fix pd_info builder after const qualification of info->cap
- src/osdp_common.c: waring: _GNU_SOURCE redefined
- utils: version bump - pickup fixes for gcc warnings/errors
- unit-test: Fix broken build due to old API drop changes
- Fix potential null pointer deref at LOG_* call site
- cp: disallow unexpected SC responses
Release v2.4.0
This release bring some minor updates and fixes. It also marks the end of 2.x version of libosdp. A stable branch v2.4.x is created from this tip to backport critical fixes for the time being.
Enhancements:
- libosdp: Add new API to set a log callback function
- unit-test: Add line noise simulation methods
- pytest: Add new test for CP/PD status reports
- pyosdp: pd: Expose a new API to check online status
- libosdp: Update to new logger API
- Expose new configure time macro REPO_ROOT
- configure: Add new option --debug to enable debug symbols
- make: Don't remove and rebuild unit-test target each time
- cmake: Add hook to checkout submodules
- pd: Use teardown in peripheral destructor only if context exists
- cp: Use teardown in control panel destructor only if context exists
Fixes:
- libosdp: Fix stable API change violation
- unit-tests: Fix warning due to change of fclose sinature
- libosdp: cmake: Fix static builds with local openssl
- c++: add header guards
- pytest: testlib: Fix bug in retry count
- pytest: Make CP and PD restart-able
- API: common: Fix osdp_get_status_mask for PD mode
- Fix null pointer deref issue osdp_reply_name
- doc: Update domain name to sidcha.dev as gotomain.io has expired
- Update copyright year to 2023
- Remove obsolete travis CI config file and it's refs
- check osdp close file status (according prototype function comments)
- save PD Local Status
Release v2.3.0
A standard mid-year release with accumulated fixes and enhancements.
Interestingly, this release has a high number of community contributions :)
Enhancements:
- Add support for additional baud rate 57600
- Add deprecation notice for command_complete_callback API
- pyosdp: refactor make_(struct|dict) methods into translators
- pyosdp: Move similar methods closer for maintainability
- pyosdp: Refactor event handling method names
- pyosdp: refactor command handling method names
- pytest: Add tests for IO and status events
- pyosdp: export IO and status events to use in pytests
- libosdp: Add support for tamper and power status events
- phy: Allow sequence repeat packets
- libosdp: Limit max packet size to reported peer RX size
- pd: Add support for handling multiple records in output command
- pytest: More multidrop test related changes
- zephyr: Refactor command_callback into a method
- PD: Reset phy state when ignoring a packet
- libosdp: file: Promote to be a fist-class citizen
- libosdp: Allow file transfers to be aborted
- pd: Handle OSDP_EVENT_MFGREP case in pd_translate_event
- pyosdp, pytests: Add test case for mfgrep event
Fixes:
- pyosdp: Hoist cmd->id set in pyosdp_make_struct_cmd
- fix LED & Buzzer repeated command
- mbedtls: fix incorrect mode in ecb encryption
- fix: converts uint64 to uint32 for arm device capability.
- Disable FindMbedTLS.cmake to fix issue in #108
- Fix typos in secure channel docs
- Make installation with cmake happier
- pd: Fix CMD_ABORT length check
- cp: Add support for local status query command
- Fix sequence reversing issue during phy_reset()
- libosdp: Fix plethora of bugs in input/output events
- pyosdp: Drop Py_TPFLAGS_HAVE_GC flags on osdp class
- Fix issues in configure.sh
- corrected typo in doxygen documentation
- file: Fix bug in return value processing in build_command
- libosdp: raw loops to memcpy and other zephyr review fixes
- fixup! libosdp: file: Promote to be a fist-class citizen
- pytest: Add file transfer abort test
- unit-test: Fix test failure due to missing extern
- unit-test: Fix a use-after-free bug in test async runner
- fixup! pd: Handle OSDP_EVENT_MFGREP case in pd_translate_event
Release v2.2.0
Yet another minor release with accumulated fixes and enhancements. Notable
changes since last release include,
Enhancements:
- pd: add method to flush event queue
- Enable REPLY_ISTATR and REPLY_OSTATR support
- libosdp: Added opaque argument to command_complete_callback
- pytest: Add events tests
- phy: Only flush channel on errors in osdp_phy_state_reset
- phy: Don't attempt to send a NACK for some early failures
- libosdp: Make osdp_cmd_mfg and osdp_mfgrep identical
- cp: Do not propagate PHY errors as-is
- libosdp: Add a ring buffer to store the RX data
- libosdp: Move channel read/writes into phy layer
- unit-tests: Resurrect the old unit-tests modules
- libosdp: Add a softname for PDs in the info struct
- Avoid one ifdef by reorg and static inline-ing
- libosdp: Add support for I/O status monitoring/reporting
- Enable address sanitizer enabled builds
Fixes:
- libosdp: Fix CMD_ABORT's assigned command code
- cp: Fix cardread and keypress event decode cases
- unit-tests: Add a test case to validate the mark-byte skip
- pytest: Fix is_sc_active() to return boolean
- fixup: libosdp: Add support for I/O status monitoring/reporting
- Fix build failure
- Fix OSDP_QUEUE_SLAB_SIZE defintion and some typos
- Fix a heap-buffer-overflow in __cp_setup()