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
.
Dockerfile
s 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?