hercules-390 / hyperion

Hercules 390
Other
246 stars 69 forks source link

DYNMOD Path changed from lib64/hercules to lib64/hercv4 #215

Closed fbi-ranger closed 7 years ago

fbi-ranger commented 7 years ago

Dynamic modules under LINUX such as hdt3270.la, hdtqeth.so are put to a sub directory under lib64 such as /lib64/hercules. The search path is specified in the config file under directive MODPATH.

With the current installation procedures this path is now changed to /lib64/hercv4.

For a new build of Hercules config file and actual location of the modules do not match any more. Modules are not found and therefore affected devices are not recognized.

Documentation needs either to be updated or the directory should be changed back to /lib64/hercules .

jphartmann commented 7 years ago

The configuration statement MODPATH (and the accompanying runtime switch -p) are used when the modules are not at the default path. Omit them when taking the default and you'll be alright.

Documentation (hercconf.html) currently says incorrectly:

 MODPATH    /usr/local/hercules
    LDMOD      dyncrypt

In fact, the default module path depends on the --prefix= configuration option.

Crypto is now loaded automatically, at least in default scenarios, so the LDMOD should not be required. Another matter is that crypto ought to be in the main source directory; I'll deal with that some day.

I configured Hyperion to install in /home/john/projects/hyperion. This created the following directory tree (forgive markdown for mangling this):

[/home/john/projects/hyperion] tree -d
.
├── bin
├── lib
│   └── hercv4
└── share
    ├── hercv4
    │   ├── images
    │   └── include
    └── man
        ├── man1
        ├── man4
        └── mana

Be sure that LD_LIBRARY_PATH is unset; it confuses autotools no end.

Please do make clean in the build directory and rebuild Hyperion.

jphartmann commented 7 years ago

Before changing any documentation, please confirm that you followed the link from e.g., MODPATH to the actual text for the option.

srorso commented 7 years ago

I have removed the string hercv4 from the AC_INIT macro. According to autotools documentation for AC_INIT, the positional parameter named the tarfile build from the the distribution.

Whether as a result of an archaism in Hercules' configure.ac or an error in GNU autotools documentation, that parameter is used for other things as well.

jphartmann commented 7 years ago

Florian, you write "The search path is specified in the config file under directive MODPATH."

This is not necesary; the default LOADPATH is set from the configuration options. Neither is ldmod required for crypto, though this is comparatively recent. And this goes for running out of the build directory, as for out of the install directory.

If the install directory is not in your PATH, you must invoke the Hercules executable by its absolute path, but you don't need to worry about the module path.

fbi-ranger commented 7 years ago

John, It must be that there was a problem in the past with Hercules finding the modules. I use always the same script to compile it, so I do not change the configure options. I put a new build to a new directory and then I change a symbolic link to point on the new version to activate it. But I never changed the sub-directories inside the built. Once the LMODs were not found and because of this I coded the MODPATH statement. But it is long time ago. Since that I use the hercules.cnf file and up to the time I opened the issue, it caused never a problem.

According to your recommendation, I droped now the MODPATH from the configuration.

I will close the issue.

Thank you all for your support.