The iRODS Consortium and RENCI are pleased to announce iRODS 4.3.4.
This release primarily focuses on preparing the ground for the initial release of iRODS 5 by introducing more deprecations, fixing bugs, and cleaning up implementations.
The biggest news of this release is that imiscsvrinfo has been updated to report SSL/TLS certificate information, if in use.  This is made possible due to enhancements to the rcGetMiscSvrInfo API endpoint.  Keep in mind that this requires the client to have a proper client-side configuration.
This release consists of 94 commits from 6 contributors and closed 134 issues marked for 4.3.4.
The latest binary packages for AlmaLinux8, RockyLinux9, Ubuntu20, Ubuntu22, Ubuntu24, Debian11, and Debian12 are available at https://packages.irods.org/.
Changed
Improve documentation (#2600, #7622, #7701, #7784, #7952, #8000).
Return errors on one-sided encryption in parallel transfer (#4984).
Improve testing (#6421, #7412, #7491, #7795, #7990, #8046, #8047, #8183, #8185, #8247).
Clean up code (#5800, #6972).
Remove unnecessary code - source files, functions, declarations, header includes, etc (#6043, #6234, #6546, #7919, #7942, #8010, #8133, #8201, #8204).
Replace use of externals-provided libarchive with distro-provided libarchive (#6250, #7286).
Improve CMake (#6319, #6584).
Update clang-format / clang-tidy configuration (#6970, #7313, #7751, #7821, #7822).
Remove ACLs following removal of user (#7778).
Migrate GitHub workflows to Ubuntu 24.04 (#7823).
Expand permission levels supported by atomic ACL operations API (#7913).
Reduce log noise (#7953).
Remove installation of packedRei directory from CMakeLists.txt (#7993).
Install msiExecCmd_bin/hello script as a template (#7994).
Replace stacktrace with user-friendly error message in
itree(#8082).
Improve GenQuery2 parser's handling of whitespace sequences (#8182).
Add json_events.hpp header file to development package (#8200).
Removed
- Remove CentOS 7 build from GitHub workflows (#7968).
Deprecated
Deprecate
ilocate(#2524).
Deprecate
igetwild(#2525).
Deprecate creation or modification of user having rodsgroup type in GeneralAdmin API (#2978).
Deprecate modification of ACL policy (#6843).
Deprecate GeneralRowInsert and GeneralRowPurge (#7608).
Deprecate update_deprecated_database_columns.py (#7835).
Deprecate
imeta qu(#7959).
Deprecate
imetainteractive mode (#7961).
Deprecate server monitoring microservices (#7977).
Deprecate DataObjLock and DataObjUnlock (#7979).
Deprecate unused global variables in resource manager implementation. (#8042).
Deprecate
fillGenQueryInpFromStrCond(#8088).
Deprecate
forkAndExec(#8109).Fixed
Avoid SIGABRT by setting pointers to null after deallocation (#3581).
Use
ProcessTypeto detect server vs pure client (#6684).
Rework logic in
_cllExecSqlNoResultto return proper error codes (#7440, #7599).
Fix flex warning for GenQuery2 lexer rules (#7685).
Validate and reject invalid zone names (#7722).
Return non-zero exit code from
iadminon failure (#7734).
Remove undefined reference to variable in exception (#7752).
Ignore SIGPIPE so agents do not terminate immediately (#7933, #7934).
Change if-statement so ticket use-count is only updated on first pass (#7967).
Write client and proxy user info to
ipsdata file in correct order (#8001).
Modify JSON schema file to enforce required attributes of
controlled_user_connection_list(#8017).
Use
std::tolowerwithstd::transformcorrectly (#8045).
Fix error handling logic for heartbeat operation (#8050).
Return error on invalid GenQuery1 aggregate function (#8080).
Return error on nonexistent target for write functions in iRODS Rule Language (#8095).
Clean up memory in
rsDataObjChksum, various endpoints, and iCommands (#8106).
Correct narrowing of floating point values (#8110).
Remove constructor from
Cachedata type in iRODS Rule Language to allow formemset(#8111).
Avoid segfault in
rcDisconnect(#8120).
Fix libstdc++ linker error for
ienv,ierror, andipwdon EL8 (#8122).
Fix GenQuery2 column mappings for user zone (#8134).
Use correct GenQuery2 table aliases for permissions (#8135).
Fix
nullptrto function argument and unsigned overflow (#8153).
Fix read/write loop in
istream(#8166).
Clear
rodsPathInp_tinstead of freeing memory (#8221).
Add support for
order_asckeyword to GenQuery1 string parser (#8249).Added
Add dedicated keywords for creating groups via GeneralAdmin API (#2978).
Make checksum buffer size configurable (#7947).
Provide way for clients to obtain SSL/TLS certificate information (#7986).
Add support for Undefined Behavior Sanitizer (#8090).
Alongside the core packages included in 4.3.4, the following plugins have been updated for compatibility: