Releases: Seagate/openSeaChest
v26.03.1-Beta4
Attempting to change SLSA generator back to tag as their documentation requires
v26.03.1-Beta3
- More attempts to fix release CI steps by moving them outside of docker containers.
- Fixing uploading provenance on release by providing the tag correctly to that action
- Pulled in zizmor CI/CD security scanning and all related changes it suggests from PR #315
v26.03.1-Beta2
Merging missing option to build using system json-c for #299
More little fixes in opensea-common library
v26.03.1-Beta1
Patches so far for v26.03.x series
- Added build option to support using system json-c library per #299
- Fix out of bounds read while reading Linux OS information for --version option (1 byte overread)
- Fix possible out of bounds issue reading SCSI defect list if the list is extremely large. Unconfirmed for v26.03.0, but additional checks added to mitigate the issue. Issue could happen in v25.05.x and earlier builds
- Fix for NVMe deallocate out of bounds write. The code was sometimes writing one extra descriptor past the end of the allocated stack array
- Ensured out of bounds write based on number of NVMe formats supported cannot happen. Should not have affected v26.03.0 builds, but additional checks were made to make sure this value is within range before writing the "current format" boolean in the internal strucuture. A maliciously crafted NVMe device could trigger an out of bounds write in v25.05.3 and earlier builds
- Added support to disable SATA power consumption feature
- Moved power consumption feature help text out of SAS only section.
- Improved temperature unit conversion to include better rounding handling for conversions to Fahrenheit (not widely used within openSeaChest since most is in Celsius or Kelvin).
- Fixed possible bugs while trimming whitespace around model number, serial number, or firmware revisions for all drives. No known issues, but some edge cases were found and resolved.
v26.03.0
openSeaChest v26.03.0 Release Notes
Major New Features
Calendar Versioning (CalVer)
Utilities now use calendar versioning synchronized with library releases and unified package versioning. This aligns the utility version with the released package containing all tools, simplifying version tracking and release coordination for both developers and users.
JSON Output Support
Added JSON output support for device information (-i), diagnostics reporting (--scan, --showDSTLog, --smartAttributes, --deviceStatistics, --showSCSIDefects, --showFARM), and CDL settings. More options coming in future releases.
Bug Fixes & Improvements
- Fixed possible bug opening drive handle in Linux when scanning /sys for low-level file information like PCI/USB vendor ID, driver information, etc
- Fixed issue with NVMe set features command in Windows that could affect some feature configuration operations
- Improved USB device compatibility, particularly with older USB adapter chipsets
- Fixed CISS RAID scanning and device handling
- Fixed potential crash when displaying ATA SMART error logs with unclassifiable error codes
- Fixed possible memory reading issue in certain diagnostic output where string parsing could read beyond the intended string boundary
- Improved SCSI defect list reporting accuracy
- Improved text output speed (convert from
printf()for everything to aprint_str()which is similar toputs()in std C) - More changes to --setSectorSize to add more possible recovery methods when interrupted by hard-coding Seagate's descriptor codes on SATA drives.
- Moved MBR erase in --setSectorSize to after the change to try and further reduce the chance of the OS, HBA, driver, or anything below the software layer introducing a reset on the bus during this operation to minimize the chance the drive may become unusable.
- MBR erase in --setSectorSize is now attempted with the ATA Write Zeros command or the SCT Write same feature before a "normal" write command to see if this can bypass whatever seems to monitor the disk for changes to the boot table (MBR/GPT).
Expanded Platform Support
New OS Support (Via CI builds)
DragonFlyBSD, FreeBSD (15.0, 14.3, 13.5), NetBSD, OpenBSD, OmniOS, and Solaris/Illumos now fully supported with automated testing.
Quality & Reliability
✅ Reproducible Builds Certified: Full compliance with reproducible-builds.org standards and setting the build timestamp
Documentation & Resources
Enhanced project wiki with expanded guides, detailed usage examples, and comprehensive feature documentation. We encourage users to check out the wiki for in-depth information on all utilities and their capabilities.
Testing Release publication from VMActions v1
This is a test of integrating the VMActions for OmniOS, Solaris, FreeBSD, OpenBSD, NetBSD, and DragonFly BSD into one CI build script.
The old vmactions script is removed in this tag to simplify everything.
If this works correctly, then builds from all of these OS's and supported CPU architectures will be uploaded and SLSA verifiable.
Some of these VMActions builds are slow, so it may take some time to complete and upload.
Consider the builds in this tag an alpha and untested.
A discussion has been created for this release. Please leave any feedback you would like on things that work, don't work, are missing, etc. This would be especially helpful on the VMActions builds being added, but feedback on any build is always appreciated!
v25.05.3
This is another patch release for v25.05 builds to fix some issues we found and had reported internally.
Fixes:
- Fixed incorrect null pointer check in TRIM function that caused the operation to exit with an error despite valid inputs
- Fixed incorrect SCSI operation code lookup for pulling SCSI Defect lists
- Fixed out of bounds access for FARM combined log pull. This wrote a null terminator one byte outside of the allocated memory. This can cause memory corruption, but no known impact otherwise.
- Changed when the filesystem rescan or reread of the partition table happens to minimize cases where a drive may be disconnected from the OS due to being in an unreadable state. Examples: Sanitize failed state & ATA security locked & sector size change will put the drive into a different state that blocks media access or with different attributes that the OS does not know have changed. Attempting this rescan in this cases causes the drive to disconnect from the system and may have other side affects as well. All cases where this occurs not make sure the drive is in a state that it can complete this operation successfully.
- Fixed logic in read/write testing (openSeaChest_Generic) for some USB devices that report an ATA passthrough maxlba of 0. Previous versions will always fail on these devices even if they are otherwise working properly.
- Added tracking of when file locks/unlocks are requested on the device handle to keep things better synchronized between operations.
- Fixed a crash that occurs in Windows for NVMe devices using an openfabrics NVMe compatible driver.
- Rewrote logic to select SCSI media access commands with retries for reads, writes, verify, and synchronize cache (10byte vs 16byte versions)
- Added detecting and selecting a compatible firmware update transfer length to improve compatibility with various devices that have limitations they can report. Default behavior was previously to download in 32k segments, but now it checks if this is compatible and selects a compatible size if limitations are reported. Users can still override this and select a segment size as needed.
- Removed implied
--disableImmediateResponseoption when--fastformat xpassed during--formatUnit y. This behavior can be selected as needed still, but it is no longer the default. This improves compatibility with some systems. - Fixed copyright date in the banner being dynamically set at compile time. This should be constant to when code was written/modified, not when it was compiled.
Compile time changes:
- Fixed usage for GNU access attributes which were sometimes applied incorrectly. This can cause warnings or incorrect optimizations, however no known issues have been reported for this.
- Increased usage of
constfortDevicestructures to be more clear about when modifications are being done or not. This did find a couple minor code bugs, but no known case of causing incorrect runtime issues. - Fixed compatibility with some newer C23 capable compilers
- Fixed compatibility with msys2 mingw and clang environments. cygwin environment is not currently supported.
v25.05.2
This release patches the following issues:
- Win11 NVMe firmware update failing (Seagate/ToolBin#39, #198)
- Incorrect protocol for SATA PIO download in passthrough SAT command which may cause failures for devices that do not support the DMA version of the download command (#196)
- Write overrun when passing certain patterns with the
--pattern:repeatoption in openSeaChest_Erase and openSeaChest_Format. - Disabling some CSMI lookup in Windows that hangs some systems
- Adding more USB Adapters to list for legacy passthrough types
- Bug looking up supported SCSI Sanitize support on some drives that only support specific erases without AUSE support.
- Fix crash when reading SCSI supported sector sizes
- Added new exit code and more verbose message for insecure file paths. (#161)
- Fixing a crash that could occur when using the --farmCombined option to pull the combined farm log to a binary file
- Fixed when to rescan for partition changes after sanitize completion so that this only runs after successful completion
- Initial support for LaCie Rugged SSD4 drive
- Updated exclusive access API to be separate from locking/unlocking API on the file handles. This reduced the chance of weird behavior during something like sanitize overwrite
- Made Seagate external drive SN cleanup available on all interfaces, not only USB
- Fixed scan not outputting anything in certain scenarios where the number of successfully scanned drives is equivalent to the number that failed to scan.
- Fixing not setting flags in internal SCSI structure on firmware update for beginning/ending segment info when translating from ATA passthrough command.
- Fixed missing CPU name in certain cross-compiled builds not being set
- Added option to run zoned device version of depopulate to openSeaChest_Format: --removeElementModifyZones
v25.05.2-beta1
This beta release patches the following issues:
- Win11 NVMe firmware update failing (Seagate/ToolBin#39, #198)
- Incorrect protocol for SATA PIO download in passthrough SAT command which may cause failures for devices that do not support the DMA version of the download command (#196)
- Write overrun when passing certain patterns with the
--pattern:repeatoption in openSeaChest_Erase and openSeaChest_Format. - Disabling some CSMI lookup in Windows that hangs some systems
- Adding more USB Adapters to list for legacy passthrough types
- Bug looking up supported SCSI Sanitize support on some drives that only support specific erases without AUSE support.
- Fix crash when reading SCSI supported sector sizes
- Added new exit code and more verbose message for insecure file paths. (#161)
v25.05.1
rel: Finish v25.05.1 Fixes a debug print from secure file API in opensea-common by removing this print.