File layout reorg

As a complete reorganisation idea, based on the FS hierarchy standards:

  • what's currently in $PREFIX/bin to go into $PREFIX/libexec/openmolcas
  • what's currently in $PREFIX/sbin to go into $PREFIX/bin
  • what's currently in $PREFIX/lib to stay in $PREFIX/lib
  • what's currently in $PREFIX/data to go into $PREFIX/share/openmolcas/data
  • what's currently in $PREFIX/basis_library to go into $PREFIX/share/openmolcas/basis_library
  • $PREFIX/molcas.rte to go into maybe $PREFIX/share/molcas/molcas.rte
  • $PREFIX/.molcasversion to go into then $PREFIX/share/molcas/version
  • $PREFIX/CONTRIBUTORS.md to go into $PREFIX/share/openmolcas/CONTRIBUTORS.md
  • $PREFIX/LICENSE to go into $PREFIX/share/LICENSE

Or, in tree form, something like:

/some/prefix
├── bin
│   ├── pymolcas
│   ├── help_basis
│   └── help_doc
├── lib
│   ├── libmolcas.a
│   └── libmolcas.so
├── libexec
│   └── molcas
│       ├── alaska.exe
│       ├── averd.exe
│       └── ...
└── share
    └── molcas
        ├── basis_library
        │   ├── 3-21G
        │   ├── 4-31G
        │   │   └── TZVP
        │   └── ...
        ├── data
        │   ├── abdata
        │   ├── alaska.prgm
        │   └── ...
        ├── CONTRIBUTORS.md
        ├── molcas.rte
        ├── LICENSE
        └── version

I'm not sure what .molcashome is for, so I don't know where that should go or whether it would still exist?

Then keep the $MOLCAS environment variable which would contain /some/prefix and default to /usr.

Does this make sense? It's mostly just that programs designed only to be run by other programs generally go in subdirs of libexec, and architecture-agnostic data and information generally goes in subdirs of share. Then you can add bin to your PATH (or if installed into /usr it'll already be there) and you'll just get the driver script and the help scripts. (Maybe help_* would have slightly different names to make it more clear they're Molcas scripts.)

I know rearranging all of this could be a fair amount of work, I'm not in any way suggesting this is as easy to make happen in a complex code-base as it is to write down.