alces-software / forge-packages

Package descriptors for Alces Flight Forge
0 stars 0 forks source link

Fix bug where `nodeattr` still points to the /opt/clusterware #10

Closed WilliamMcCumstie closed 6 years ago

WilliamMcCumstie commented 6 years ago

The location of the default genders file is statically compiled into nodeattr. When the root changed from /opt/clusterware to /opt/flight-direct, it was not updated in the packages. The fix is to recompile genders with the updated path.

Both the pdsh and genders packages need to be recompiled as they both have independent version of nodeattr. Fixes #3 and part of the solution for #5

mjtko commented 6 years ago

nodeattr is only in genders. PDSH doesn't have its own. I think there are a number of issues, and I'm not sure which ones you've covered:

  1. genders package doesn't include our patch that allows the location of the genders file to be overridden by an environment variable. Solution: include our patch.
  2. genders package uses a default location that uses the older /opt/clusterware path scheme, rather than the newer /opt/flight-direct path scheme. Solution: recompile using the newer scheme. This will break usage (without an env var) on non-Flight Direct platforms, but that's fine.
  3. pdsh package hard-codes library paths into the binary, which means that when built using the older /opt/clusterware path scheme, the binary is non-functional when installed in the newer /opt/flight-direct path scheme. Solution A: remove hard-coded library path and make it work it out relative to the binary or similar; Solution B: (will generate a pdsh that's only functional on Flight Direct, which may be a reasonable compromise for now, but ideally it'd work anywhere -- for e.g. compiling it this way will make it non-functional for user-based installs) recompile the binary with the newer path scheme.

If this PR covers all those things, then great! Otherwise I think there's still some work to do here.

WilliamMcCumstie commented 6 years ago

The genders package has been updated to use the new /opt/flight path. I was confused at first, because pdsh is compiled with a genders path. As you said, it does not recompile genders.

The pdsh paths have been updated to use /opt/flight-direct instead of clusterware. Note: there is an issue where FL_ROOT was set to /opt/flight, this will be fixed in: https://github.com/alces-software/forge-packages/commit/f2708bfd7bdea2e912983bf2eb7a76fd011a3ce1

The packages have been rebuilt with the correct root.