June 8-11, 2021
iRODS User Group Meeting 2021
Virtual Event
Markus Kitsinger
github.com/SwooshyCueb
Software Engineer, iRODS Consortium
iCommands Userspace
Packaging
What is it?
Why is it?
It is common for shared systems (such as HPC environments) to be pretty locked down. Being able to use the iCommands in these environments without jumping through a bunch of hoops would be incredibly convenient, and is something that users have asked for.
iCommands Userspace Packaging - Overview
Goals and Needs
Our Solution - Overview
Other Details
Our Solution - Step-by-step - Phase 0:
Initial Preparation
Our Solution - Step-by-step - Phase 1:
Gathering iRODS components
Our Solution - Step-by-step - Strip and clean process
Our Solution - Step-by-step - Phase 2:
Gathering external libraries - Background
Our Solution - Step-by-step - Phase 2:
Gathering external libraries
If LIEF was not found or is not usable, an alternate process is used:
Our Solution - Step-by-step - Phase 2:
Gathering external libraries - Alternate
In order to eliminate the need to set the LD_LIBRARY_PATH environment variable, we need to set the RPATH or RUNPATH in as many of the binaries as possible.
* "$ORIGIN" is a substitution string in RPATHs and RUNPATHs for the directory in which the library or executable resides.
Our Solution - Step-by-step - Phase 3:
Setting RUNPATH/RPATH
Our Solution - Step-by-step - Phase 3:
Setting RUNPATH/RPATH - The Tools
Our Solution - Step-by-step - Phase 4:
Creating Final Package
Other solutions we considered
Our Solution - Other fun details
Challenges
TODO