Update autotools, add Travis-CI support, and remove some unused code#93
Merged
Conversation
Add /.libs to path for PDSH_MODULE_DIR in tests, so that we find and load the .so files instead of .la libtool archives.
Set pdsh_module_dir to src/modules/.libs so that we load .so module files, instead of attempting to load the libtool archive .la files.
Maintaining the autotools generated files in version control is a huge pain in the rear end. Every time someone runs ./bootstrap on a new system they create huge amounts of unnecessary churn. Yes, this requires that all developers and users working from a git checkout have compatible autotools installed on their system, so that they can successfully run ./bootstrap and ./configure. However, the alternative is a big mess and who knows how many years of therapist payments.
In the slurm and torque modules, the ltdl.h header is included but not used. Remove it in preparation for removal of libltdl.
Dump libltdl in favor of straight dlopen/dlsym for pdsh modules. The new libltdl wrapper is a whole thing of its own and a big burden to use (it wants to be installed as a subproject inside of the project which uses it) This likely means pdsh dynamic modules are no longer supported on systems. Likely those systems don't work now anyway. In the future if an unlikely port is needed to a system requiring libltdl, it should be possible to tackle re-implementation of libltdl (or some other portability layer) at that time.
Fix most autotools warnings by pushing the result of `autoupdate` plus some other various fixes by hand.
Remove non-portable use of $(wildcard) in test/Makefile.am. Just explicitly list the tests instead. This works better for newer automake parallel-tests anyway.
Remove support for launching jobs on older Quadrics/Elan HW via the old (m)qcmd rcmd modules. There are very likely no more users of this interface.
The etc/ subdir only had files related to Qsw/elan services, which are no longer supported, so remove them.
chu11
reviewed
Jun 21, 2017
| AC_HELP_STRING([--without-pam], | ||
| [Do not build qshell/mqshell with pam support]), | ||
| AS_HELP_STRING([--without-pam],[Do not build qshell/mqshell with pam support]), | ||
| [ case "$withval" in |
Member
There was a problem hiding this comment.
we can probably remove ac_pam? It appears to be specific to qshell/mqshell?
Member
Author
There was a problem hiding this comment.
Good catch forgot about that one.
PAM checks were only required by qshell/mqshell daemons, so the autoconf tests can now be removed.
Remove support for querying WCOLL from RMS resource manager via the rms misc module. There are likely no current users of this interface.
Remove the SDR module, which queried the SDR on IBM SP machines using a call to SDRGetObjects. There are likely no users of this module anymore.
Remove the nodeattr module. All users should be using the genders module instead.
The xpopen() call is no longer used after removal of the nodeattr module. Remove the unused code from the source.
Udpate pdsh manpage to remove modules that are deprecated or no longer included in the distribution.
Remove unsupported modules from the static modules macros.
Remove qsw modules from rcmd_rank_list used for default rcmd module priority.
Remove reference to unsupported modules from README and README.modules
Detect pdsh version from output of git describe.
Simplify the bootstrap file after autotools updates.
Fix make check for cases where builddir != srcdir
Add scripts/travis-ci-deps.sh script to download and build extra travis-ci build and test dependencies. For now this is only the updated autotools versions that have not made it into travis.
Remove unused variable `q` in pipecmd_format_arg() to silence warning on GCC 6.
Add missing return code checks for all write(2) calls to silence compiler warnings.
Add checks for return codes from write(2) to silence compiler warnings.
Fix compiler warning in _read_netgroup (suggested parenthesis)
Check return code of system(3) in interactive dsh to silence compiler warnings.
Silence compiler warning by checking return code of setuid(2) in interactive dsh, even though setuid(2) is probably not necessary here anymore since pdsh is using privilege separation.
remove unused variable in pcptest_argv_create
Check return codes on all write(2) calls to silence compiler warnings.
Fix compiler warning for failing to check return code of setuid, even though likely these calls are not used.
Fix compiler warning for unchecked return code of setXid calls.
Using the ax_code_coverage.m4 macro, enable a --enable-code-coverage option for ./configure which activates a `make check-code-coverage` target that builds an integrated code coverage report using lcov(1) when available.
Member
|
There are a ton of great cleanups here. Thanks for doing all this painful work! Good riddance to the outdated modules too. |
Member
|
FWIW I had zero issues bootstrapping, building, and checking this branch from a freshly cloned repo on c9.io. |
Member
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The initial objective of these changes was to be able to update autotools for pdsh and remove autotools products from version control, in order to make addition of new modules much easier on the developer (e.g. see #91).
To make this easier, the use of libltdl was dropped in favor of straight
dlopen(3)anddlsym(3), which should be fine for most if not all pdsh users nowadays.Along the way many modules that were presumed unused were dropped, including
nodeattrmodule (everyone uses libgenders now)After this work, the
xpopen()function had no users so it was removed.The use of META and config/ac_meta.m4 were removed.
Finally, support for Travis-CI was added, and many compiler warnings were fixed along the way.
Support for
--enable-code-coverageandmake check-code-coveragewas also added, but I couldn't get this working in Travis yet to send results to codecov.io.@garlick, @chu11, happy to take any feedback here.
@tabaer, you might want to rebase #91 on this and see how it goes -- it should be much smoother.
Fixes #79