OSC / ood-ansible

An ansible role for Open Ondemand
MIT License
30 stars 31 forks source link

libnsl not found when building OOD from source on CentOS 7.9 #146

Closed xpillons closed 1 year ago

xpillons commented 2 years ago

TASK [ood-ansible : install the os dependencies] ***************************************************************************************************************************** Monday 30 May 2022 17:58:50 +0200 (0:00:00.053) 0:00:26.618 ************ failed: [ondemand] (item=['redhat-rpm-config', 'libnsl']) => {"ansible_loop_var": "item", "changed": false, "item": ["redhat-rpm-config", "libnsl"], "msg": "No package matching 'libnsl' found available, installed or updated", "rc": 126, "results": ["No package matching 'libnsl' found available, installed or updated"]}

johrstrom commented 2 years ago

I didn't really mean to support building RHEL packages from the source. Indeed even for Ubuntu we'll stop for 20 and 22 (we're shipping .deb files soon).

I mean there's no real point to when you have RPMs available. Is there a reason why you're building from source instead of pulling an RPM (or a nightly RPM?).

xpillons commented 2 years ago

Building from source will allows us to add our private ood_core project

johrstrom commented 2 years ago

Do you have somewhere where you can host an RPM, (nexus or similar, ansible may just respond to a local file too).

I'd suggest building an RPM with your updates and stashing that somewhere.

xpillons commented 2 years ago

yes that was my first attempt. It's not really clear which branch to use and the version appears to be 2.0.0 and not the latest 2.0.x one. This is the github repo and workflow doing it https://github.com/xpillons/ondemand/blob/azhop/release_2.0/.github/workflows/build_rpms.yml

johrstrom commented 2 years ago

Yea we're changing the packaging a bit from 2.1 to 2.0. So you have to be careful when looking at both of them, because packaging has changed significantly from then to now.

If you want something that's strictly 2.0+ you have to keep everything on and from the release_2.0 branch. That means updating it, tagging off of it, and reviewing CI from it (gitlab or github) and not the master (2,1) updates.

Also check for environment variables you can overload. Out Gitlab CI does the RPM building for us (in both master and 2.0). In 2.0 if you specify these you won't check git for the version.

https://github.com/OSC/ondemand/blob/688611550c698dbe46887c815fbf45a2005d95b9/lib/tasks/packaging.rb#L63

xpillons commented 2 years ago

ok, I didn't wanted to move on 2.1 as there are no official release of it, and I haven't found the file that does the RPM build so I had to reverse engineer it.

treydock commented 2 years ago

The 2.0 branch of packaging is here: https://github.com/OSC/ondemand-packaging/tree/2.0. You use the build.sh which if you want there are Rake tasks in the main ondemand repo to build using that ondemand-packaging repo.

johrstrom commented 1 year ago

Building from the source is deprecated now. I think the preferred way to do this would be to build a package (RPM in this case) from the fork then use this role to install that package.