Storaged originally started as a fork of udisks project in 2015 and had a lot of attention and development since then. Storaged even replaced UDisks in Fedora 25 providing backwards compatible API and new features.
At the beginning of this year we met with Martin Pitt (upstream maintainer of UDisks) and decided of merging both projects back. UDisks upstream was more or less inactive (with just occasional bugfix releases) so it made sense to merge it with the “more active” fork. So after some discussions we have decided to merge both projects using the “old” name UDisks — we have just renamed everything in Storaged repository to UDisks and released a new version of “Storaged” now called UDisks 2.6.42.
What’s new since UDisks 2.1.8
UDisks 2.1.8 is the latest release of UDisks before merging with Storaged and your distribution might only have this version in its repositories. There are a lot of changes since this version, most of them were developed during the “storaged era”. The biggest and most visible change are new modules. UDisks originally supported only standard partitions and software RAID. Storaged added new modules that enable creation and management storage using technologies like LVM, Btrfs, Bcache, ZRAM and iSCSI. There were much more changes, you can check a list of them for every release on our GitHub.
What’s new since Storaged 2.6.3
Storaged 2.6.3 is the latests release of Storaged before renaming the project back to UDisks. We have released two new minor versions since then. Latest version is now UDisks 2.6.5 (from May 2017). There are just a few new features since this release like controlling SCSI enclosure disk LEDs or support for LUKS devices using binary data as passphrases. We have mostly focused on cleaning the code, writing new tests and fixing bugs. UDisks now has nearly 200 unit and integration tests running in our Jenkins CI on multiple versions of Fedora (we plan to add more distributions too) and multiple architectures.
New UDisks is now available only in Fedora, Gentoo and Archlinux (and Debian is in progress), but we hope this will change soon (so if you are a UDisks package maintainer please package our new shiny UDisks).
Our biggest plan for the future is using the libblockdev library in UDisks. libblockdev is a C library that provides a simple API for manipulating block devices. Because most of the storage technologies supported by UDisks don’t have their own libraries, UDisks has to use the command line tools and that is not really easy and “programmer friendly” (especially in C). Replacing these command line calls with libblockdev will make the code much cleaner, more understandable and (in some cases) also faster.
We have been working on this change for a long time on a special branch and we are now ready to merge the changes to our master branch. We have a pull request for this change with more than 100 commits and 4500 changed lines. This doesn’t change UDisks API, but it might change its behaviour in some ways and it might introduce some bugs (although we are running tests on the branch with libblockdev changes and we haven’t noticed any regressions). So if you are using UDisks in your applications you might want to check the changes and provide some feedback. You don’t have to review the code changes (though it would be definitely great) but we would like to hear some feedback on this proposed change.
If you’d like to participate in UDisks development, improve our documentation, help translating UDisks3 to your language or just report a bug you can find us on GitHub — feel free to create new issue or a pull request. If you want to use UDisks for your application, check the latest API documentation here.
1. The project is called UDisks but packages are sometimes called udisks2 because we now have second version of the API.↩
2. We have actually already released a new version since that, so the newest version is now UDisks 2.6.5.↩
3. UDisks localization is done in the Zanata translation platform. Check our guide for translators.↩