-
-
Notifications
You must be signed in to change notification settings - Fork 360
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix ci_build.sh
auto-detection of paths and flags for trickier distros
#2781
Merged
jimklimov
merged 25 commits into
networkupstools:master
from
jimklimov:fix-ci-build-autodetect
Jan 25, 2025
Merged
Fix ci_build.sh
auto-detection of paths and flags for trickier distros
#2781
jimklimov
merged 25 commits into
networkupstools:master
from
jimklimov:fix-ci-build-autodetect
Jan 25, 2025
Conversation
This file contains 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
Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
…tion (least priority) Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
…sent Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
…usable methods * ensure_CI_CCACHE_SYMLINKDIR_envvar() * optional_prepare_ccache() * optional_prepare_compiler_family() and helpers is_gnucc(), is_clang(), filter_version(), ver_gnucc(), ver_clang() * optional_ensure_ccache() * detect_platform_CANBUILD_LIBGD_CGI() * detect_platform_PKG_CONFIG_PATH_and_FLAGS() Signed-off-by: Jim Klimov <jim@jimklimov.com>
When BUILD_TYPE=="" or "inplace", make use of newly separated methods like optional_ensure_ccache(), optional_prepare_compiler_family(), detect_platform_PKG_CONFIG_PATH_and_FLAGS() Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
… many logic paths on Solaris/illumos Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
…h normalize_path() Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
…h normalize_path() even more Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
…k and before build Signed-off-by: Jim Klimov <jimklimov@gmail.com>
…platform_PKG_CONFIG_PATH_and_FLAGS() in BUILD_TYPE=""/inplace cases Signed-off-by: Jim Klimov <jimklimov@gmail.com>
jimklimov
added
CI
Entries related to continuous integration infrastructure (historically also recipes like Makefiles)
macOS
Solaris/illumos
Solaris and illumos systems (OpenIndiana, OmniOS, SmartOS, TribbliX...)
portability
We want NUT to build and run everywhere possible
labels
Jan 23, 2025
Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
❌ Build nut 2.8.2.2679-master failed (commit 70f7bfa507 by @jimklimov) |
…native builds with ccache Nothing wrong in theory, but in practice either autotools or ccache build on that platform handles the expanded flags as if they were a path to non-existing location of a source file :\ Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
✅ Build nut 2.8.2.2681-master completed (commit b513212c28 by @jimklimov) |
…ent LTS 151046 Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
❌ Build nut 2.8.2.2682-master failed (commit 8a315cfb99 by @jimklimov) |
…ng troubles with OOCE (Extra repo) [networkupstools#2782] Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
…CONFIGURE_FLAGS Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
jimklimov
force-pushed
the
fix-ci-build-autodetect
branch
from
January 24, 2025 13:42
3c2c940
to
21b61f3
Compare
✅ Build nut 2.8.2.2683-master completed (commit 65045ca86d by @jimklimov) |
…ling sub-"make distcheck" [networkupstools#2541, fixes networkupstools#2542 fallout] Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
…RSION_DEFAULT3 and thus NUT_SOURCE_GITREV_IS_RELEASE in configure.ac (for distcheck or tarball builds) [networkupstools#1949] Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
…values used by configure of the main build (e.g. passed some time ago from ci_build.sh or user), add CPPFLAGS and LDFLAGS to the mix Signed-off-by: Jim Klimov <jimklimov@gmail.com>
Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
jimklimov
force-pushed
the
fix-ci-build-autodetect
branch
from
January 24, 2025 19:19
dec587a
to
6a14151
Compare
…e, and not only with C++ builds Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
jimklimov
force-pushed
the
fix-ci-build-autodetect
branch
from
January 25, 2025 11:21
043aafb
to
5012f42
Compare
Merged
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
CI
Entries related to continuous integration infrastructure (historically also recipes like Makefiles)
macOS
portability
We want NUT to build and run everywhere possible
Solaris/illumos
Solaris and illumos systems (OpenIndiana, OmniOS, SmartOS, TribbliX...)
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.
Previously there was a lot of smart guesswork applied to
PKG_CONFIG_PATH
on illumos/Solaris, and various tuning aroundHOMEBREW_PREFIX
with MacOS, done inBUILD_TYPE=default*
test cases, but not in developer-oriented build with an emptyBUILD_TYPE
or in-place builds for end users.This PR moves into methods and revises that guesswork logic, allowing its re-use in both major use-cases.
As a practical benefit, builds on OmniOS where most of the non-core software is in "Extra" package repository installed under
/opt/ooce
, dependencies such aslibusb-1
are much easier to find and actually use. Similar approach might apply to pkgsrc or similar popular alternative ecosystems.UPDATE: Notes below are off-loaded into issue #2782 to address separately.
Note this does not at the moment solve run-time detection of dependencies outside of
LD_LIBRARY_PATH
:or
For the latter, notably, the driver got built right as a program, not as a libtool wrapper script. This may be a deficiency of OmniOS libtools build, as it impacts installed programs as well:
The NUT library client programs do work in the build area, where they do have libtool wrappers:
Probably hacking around with
LD_LIBRARY_PATH
(frowned upon) orcrle
(orcrle -c
) can help, but the correct way would be for the binaries to be linked the right way.Similar issue happens with the installation in OpenIndiana, although its third-party dependencies like
libusb
are in common paths so work:Such paths are well built into the programs on other platforms, even non-default paths, e.g.