Markus Kitsinger
Software Developer and Build Engineer
iRODS Consortium
iRODS Build and Packaging:
2024 Update
May 28-31, 2024
iRODS User Group Meeting 2024
Amsterdam, Netherlands
libstdc++Overview
Versioning changes - iRODS 4.4 is now 5.0
Recap of Plans
dpkg-buildpackage and rpmbuild) for packaging
git-buildpackage will be used to maintain debian packages, Salsa-style
libstdc++libstdc++ before moving away from fpm/CPack.
libstdc++.find_package.mungefs buildsystem completely decoupled from externals.Current Progress
libstdc++, externals needs to build against libstdc++ as well.libc++, so we have to support both until 4.3 is EOL.libstdc+++ and one for libc++.Externals - libstdc++
Externals - New and Removed Packages
jwt-cpp - Added for HTTP API provider clientcpr - no single version compatible with all versions of curl we must supportelasticlient - built on top of cpr
jansson - replaced by nlohmann-json (json)pistache - only used by one project, which has now been sunsetlibs3 - all relevant code has been merged into the s3 resource pluginaws-sdk-cpp - originally added for s3 resource plugin, but was never usedlibarchive - distro-provided packages should be sufficient once EL7 is dropped (#7286)redis - distro-provided packages should be sufficient once EL7 is dropped (#7478)zeromq4-1 - distro-provided packages should be sufficient once EL7 is dropped (#7479)json - distro-provided packages may be sufficient already (#7726)Externals - New Features
clang required changes a little too complex for basic shell scripting to handle.Externals - Version Freezes
We want to transition to distro-provided packages where possible. In order to facilitate this, we have implemented a soft version freeze on most of our externals.
jwt-cpp) are free from this restriction.clang externals package supports C++ coroutines, but we cannot use them due to an incompatibility with libstdc++.cmake externals package does not support the newer versions of Python used on some distributions.Other Things That Happened
libs3.
Dockerfiles use new Dockerfile syntax.ccache.Notable Yaks In Need of Shaving (that we know about)
make install should be enough
Other Considerations
Thank you!
Questions?