compiling irods 4.2.8 in Redhat 8.5

274 views
Skip to first unread message

alsmith20000

unread,
Jan 27, 2022, 2:08:50 PM1/27/22
to iRODS-Chat
Hello,

I'm trying to install iRODS 4.2.8 on Redhat 8.5. I see there are no binaries for this so I'm looking at compilation.

I've checked out the relevant repo from github. I ran cmake and it looks like I need to build a package called externals.

I've cloned the git repo for externals and looked at the readme.md. The best match I think to RHEL is "AlmaLinux 8 and Rocky Linux 8" in terms of the guidance. 
I haven't been able to find an alternative for: centos-release-scl

regarding the centos-release-scl dependency, these packages are available:
scl-utils.x86_64 : Utilities for alternative packaging
scl-utils-build.x86_64 : RPM build macros for alternative packaging
Does Renci know if they would be a good alternative to centos-release-scl?
I've had a look here: https://github.com/sclorg/centos-release-scl
There are instructions that involve adding an epel6 or epel7 repo, which I would expect to have issues with redhat 8.

I've tried running ./install_prerequisites.py anyway but got the error:
INFO -   stderr: Error: Unable to find a match: centos-release-scl-rh
INFO -
ERROR - yum install failed

Can anyone advise me on the best way forwards?

Many thanks

Alastair

Terrell Russell

unread,
Jan 31, 2022, 10:08:38 AM1/31/22
to irod...@googlegroups.com
Hi Alastair,

We are not planning to support RHEL (or similar binary distributions) for iRODS 4.2.x.
  There are too many complications with Python2 and libssl.

We are targeting iRODS 4.3.0.

If you *are* going to try and build the externals for RHEL8, you should attempt to build the externals@4-2-stable branch rather than main.

Terrell




--
--
The Integrated Rule-Oriented Data System (iRODS) - https://irods.org
 
iROD-Chat: http://groups.google.com/group/iROD-Chat
---
You received this message because you are subscribed to the Google Groups "iRODS-Chat" group.
To unsubscribe from this group and stop receiving emails from it, send an email to irod-chat+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/irod-chat/184b7e8f-5d1f-4f5b-9c56-c893b3a52526n%40googlegroups.com.

alsmith20000

unread,
Jan 31, 2022, 1:24:59 PM1/31/22
to iRODS-Chat
Dear Terrell

Thanks for this feedback.

Could I ask if you have an expected release date for iRODS 4.3?

Many thanks

Alastair

Terrell Russell

unread,
Jan 31, 2022, 1:56:56 PM1/31/22
to irod...@googlegroups.com
A loaded question... that's like asking the PhD candidate how the dissertation is going...

We are aiming for Q1 this year - so that we have time for getting documentation/training ready/complete for the User Group Meeting in Belgium in July.

You can watch the progress here...

Terrell




alsmith20000

unread,
Feb 18, 2022, 8:38:45 AM2/18/22
to iRODS-Chat
Hi again Terrell
I've been pursuing this on and off (just trying to get the compilation done), by modifying scripts, or installing components when issues occur. Could you explain a bit more about the python2/libssl issues? Most pertinently, if I get this to compile, will I find that the resulting install is not working?

Many thanks
Alastair

Terrell Russell

unread,
Feb 18, 2022, 8:59:14 AM2/18/22
to irod...@googlegroups.com
Hi Alastair,

Yes, of course.

The currently supported platforms for iRODS 4.2.x are Ubuntu16, Ubuntu18, and CentOS7.   These all ship(ped) with Python2 and libssl1.0.x by default.

Ubuntu20 and CentOS/RHEL/Rocky/Alma8 and Debian10/11 all ship with Python3 and libssl1.1+ by default.
These two were the threshold for us to package and release the server - and why these distributions will be supported by iRODS 4.3.0.

There have been some workarounds in the community to get these newer OSs to build/run iRODS 4.2.x which you might find helpful.

To answer your last question: "if I get this to compile, will I find that the resulting install is not working?"
 - I expect that getting a newer libssl to compile/behave on iRODS 4.2.x will not cause any problems.
 - I do not expect you will find it worthwhile to attempt to build iRODS 4.2.x against Python3 (mostly because of the Python Rule Engine Plugin and Boost.Python)

Thanks,

Terrell







alsmith20000

unread,
Feb 25, 2022, 1:34:33 PM2/25/22
to iRODS-Chat
Hello again and thanks for previous advice.

I've tried pushing forwards a bit more with the compilation on Redhat 8.5.
I'm a bit confused though:
I tried a package managed install of the latest version of irods server on Redhat 7 and saw that only these external modules were installed as dependencies
irods-externals-avro1.9.0-0.x86_64 
irods-externals-boost1.67.0-0.x86_64
irods-externals-clang-runtime6.0-0.x86_64
irods-externals-fmt6.1.2-1.x86_64
irods-externals-libarchive3.3.2-1.x86_64
irods-externals-nanodbc2.13.0-1.x86_64
irods-externals-zeromq4-14.1.6-0.x86_64

On Redhat 8.5, I got the compilation to a certain point, and compiled these modules:
irods-externals-autoconf5ad3567c-0-1.0-1.x86_64.rpm
irods-externals-avro1.9.0-0-1.0-1.x86_64.rpm
irods-externals-aws-sdk-cpp1.4.89-1-1.0-1.x86_64.rpm
irods-externals-boost1.67.0-0-1.0-1.x86_64.rpm
irods-externals-catch22.3.0-0-1.0-1.x86_64.rpm
irods-externals-clang-runtime6.0-0-1.0-1.x86_64.rpm
irods-externals-clang6.0-0-1.0-1.x86_64.rpm
irods-externals-cmake3.11.4-0-1.0-1.x86_64.rpm
irods-externals-cppzmq4.2.3-0-1.0-1.x86_64.rpm
irods-externals-cpr1.3.0-1-1.0-1.x86_64.rpm
irods-externals-cpython2.7-0-1.0-1.x86_64.rpm   <- I'm suspicious of this one as it is 0 size, despite there being no errors.
irods-externals-elasticlient0.1.0-2-1.0-1.x86_64.rpm
irods-externals-fmt6.1.2-1-1.0-1.x86_64.rpm
irods-externals-imagemagick7.0.8-0-1.0-1.x86_64.rpm
irods-externals-jansson2.7-0-1.0-1.x86_64.rpm
irods-externals-json3.7.3-0-1.0-1.x86_64.rpm
irods-externals-libarchive3.3.2-1-1.0-1.x86_64.rpm
irods-externals-libs3e4674774-0-1.0-1.x86_64.rpm
irods-externals-zeromq4-14.1.6-0-1.0-1.x86_64.rpm

It failed compiling mungefs with this error:
INFO -   stderr: CMake Error at CMakeLists.txt:53 (message):
  Linux platform name detection failed
I had to fix a bunch of issues like this previously by modifying python scripts that differed in some way like:
'Red Hat Enterprise Linux Server' vs 'Red Hat Enterprise Linux' but I'm not sure where to look to fix this here but if you know then possibly I can get past?

In any case, this last one doesn't seem necessary, as according to the list at the top. It also looks like it isn't needed, but can you comment on this?

I'm trying compilation again of the externals module but with "make server". I think it compiles a subset:  "avro boost catch2 clang-runtime cppzmq fmt json libarchive nanodbc zeromq4-1". It's unclear what the other packages are for though. Do I actually need them?

Besides this, it looks like I will need: irods-database-plugin-postgres from somewhere but it isn't clear where it comes from?

Sorry for all the questions, as you might have surmised, I'm not very experienced in software building and it seems that iRODS is a complex case.
I'm perusing this in the RHEL7 direction also now.

Many thanks again

Alastair

Terrell Russell

unread,
Feb 25, 2022, 2:54:00 PM2/25/22
to irod...@googlegroups.com
You're getting very close...

You are correct - `make server` are the dependencies of the iRODS server itself.

We have other plugins and clients that need the other externals (e.g. mungefs is for testing purposes).

irods-database-plugin-postgres gets built by the main irods/irods repository build process (along with mysql and oracle).

Terrell




alsmith20000

unread,
Feb 27, 2022, 10:40:11 AM2/27/22
to iRODS-Chat
Thanks Terrell

I've got it to compile with make server
however, the cpython rpm is still of 0 file size.
In the output cpython.log i get:
INFO - /data/externals/cpython2.7-0_src/opt/irods-externals/cpython2.7-0
DEBUG - skipping cpython ... current python version 2.7.18 >= 2.7
DEBUG - linux distribution detected: Red Hat Enterprise Linux
DEBUG - package type detected: rpm
DEBUG - linux distribution detected: Red Hat Enterprise Linux
DEBUG - package type detected: rpm
Building [cpython]

It isn't exactly an error but I wonder if it is complaining about the Python sub-sub version (2.7.18>2.7)

Is this really a problem?

Do I need to go back and install some pre 2.7 version. The complaint was greater than or equal to?

It seems odd that the overall build said it succeeded though.

Many thanks

Alastair

Terrell Russell

unread,
Feb 27, 2022, 11:56:33 AM2/27/22
to irod...@googlegroups.com
No, that is just saying that you already have a Python that is new enough. 
Some early distributions we worked with had older versions.

It's creating the empty target file to satisfy the Make dependency.

Terrell



alsmith20000

unread,
Mar 4, 2022, 6:52:12 PM3/4/22
to iRODS-Chat
Thanks Terrell

So now I'm trying to install the various externals rpms that were created (excluding the cpython one on account of it's 0 size).

I'm finding that there is an issue with clang-runtime6 conflicting with clang6.

Dependencies resolved.
===============================================================================================================================================================================================================================================================================
 Package                                                                              Architecture                                             Version                                                    Repository                                                      Size
===============================================================================================================================================================================================================================================================================
Installing:
 irods-externals-clang-runtime6.0-0                                                   x86_64                                                   1.0-1                                                      @commandline                                                   379 k

Transaction Summary
===============================================================================================================================================================================================================================================================================
Install  1 Package

Total size: 379 k
Installed size: 1.2 M
Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Error: Transaction test error:
  file /usr/lib/.build-id/86/bfc271a9fd883f55cb1d686201edd914b49bee from install of irods-externals-clang-runtime6.0-0-1.0-1.x86_64 conflicts with file from package irods-externals-clang6.0-0-1.0-1.x86_64
  file /usr/lib/.build-id/fd/2b8d959c7577784655bd1adf2c62826574797f from install of irods-externals-clang-runtime6.0-0-1.0-1.x86_64 conflicts with file from package irods-externals-clang6.0-0-1.0-1.x86_64

I checked by running "cmake ../irods", to see that it does require this rpm

Thanks again for any guidance you can offer.

Alastair

Terrell Russell

unread,
Apr 8, 2022, 9:47:47 PM4/8/22
to irod...@googlegroups.com
Sorry, that was a quick month...

Alastair, I don't know what this error is - that collision is some kind of generated build file, not an explicit source or binary that we package/ship.

Seems surprising and something we've never encountered.  Also, we've never worked to build/support 4.2.x for CentOS8.

Terrell




Reply all
Reply to author
Forward
0 new messages