Skip to content

Commit

Permalink
Merge branch 'master' into issue-1279
Browse files Browse the repository at this point in the history
  • Loading branch information
jimklimov authored Aug 13, 2023
2 parents d78e005 + 3a11558 commit 5871147
Show file tree
Hide file tree
Showing 238 changed files with 2,076 additions and 559 deletions.
5 changes: 5 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@
as for which text documents to update. See also docs/developer-guide.txt
for general points on NUT architecture and design.
* Please note that we require "Signed-Off-By" tags in each Git Commit
message, to conform to the common DCO (Developer Certificate of Origin)
as posted in LICENSE-DCO at root of NUT codebase as well as published
at https://developercertificate.org/
* The checklist below is more of a reminder of steps to take and "dangers"
to look out for. PRs to update this template are also welcome :)
Expand Down
2 changes: 1 addition & 1 deletion AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ D: Provided a Best Fortress for development of a Best driver (bestups)

N: Russell Kroll
E: [email protected]
W: http://www.networkupstools.org/
W: https://www.networkupstools.org/
D: Original NUT author and coordinator
P: 1024D/9DC0E77E 6A5C 7D2D 7945 C022 6104 D421 D61D C97F 9DC0 E77E

Expand Down
6 changes: 6 additions & 0 deletions COPYING
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,9 @@
To the best of our knowledge, conditions of the 2/3-clause BSD, MIT, curl and
CC BY-SA licenses allow redistribution and reuse of the codebase in projects
made available under GPL license terms, as long as attribution is provided.

NUT contributors are encouraged to "sign off" their git commits as a conscious
act done under Developer's Certificate of Origin. See the copy of "LICENSE-DCO"
in the root of this distribution, but please note that it is not a "license" on
its own - rather a proclamation that work was done and submitted according to
applicable open-source licenses.
64 changes: 33 additions & 31 deletions Jenkinsfile-dynamatrix
Original file line number Diff line number Diff line change
Expand Up @@ -240,12 +240,13 @@ import org.nut.dynamatrix.*;
//dynacfgPipeline.buildSystem = 'ci_build.sh'

//dynacfgPipeline.slowBuildDefaultBody = { echo "Running default custom build" }
dynacfgPipeline.slowBuildDefaultBody_autotools = { delegate -> setDelegate(delegate)
dynacfgPipeline.slowBuildDefaultBody_autotools = { def delegate -> setDelegate(delegate)
// Be sure to have a fixed resolved String here ASAP:
String stageNameClone = "${stageName}"
def dsbcClone = dsbc.clone()
def stageNameClone = "${stageName}"

stage('Investigate envvars (Autotools DEBUG)') {
echo "Running default custom build for '${stageName}' ==> ${dsbc.toString()}"
echo "Running default custom build for '${stageNameClone}' ==> ${dsbcClone.toString()}"
// Trick about endianness via ELF binary header picked up from https://serverfault.com/a/749469/490516
sh label: 'Inspect initial envvars', script: """ hostname; date -u; uname -a
echo "LONG_BIT:`getconf LONG_BIT` WORD_BIT:`getconf WORD_BIT`" || true
Expand All @@ -261,19 +262,20 @@ set | sort -n """
}
}

infra.withEnvOptional(dynacfgPipeline.defaultTools) {
withEnvOptional(dynacfgPipeline.defaultTools) {
unstashCleanSrc(dynacfgPipeline.stashnameSrc)
buildMatrixCellCI(dynacfgPipeline, dsbcClone, stageNameClone)
//buildMatrixCellCI(dynacfgPipeline, dsbc, stageName)
}
}

dynacfgPipeline.slowBuildDefaultBody_ci_build = { delegate -> setDelegate(delegate)
dynacfgPipeline.slowBuildDefaultBody_ci_build = { def delegate -> setDelegate(delegate)
// Be sure to have a fixed resolved String here ASAP:
String stageNameClone = "${stageName}"
def dsbcClone = dsbc.clone()
def stageNameClone = "${stageName}"

stage('Investigate envvars (CI_Build DEBUG)') {
echo "Running default custom build for '${stageName}' ==> ${dsbc.toString()}"
echo "Running default custom build for '${stageNameClone}' ==> ${dsbcClone.toString()}"
// Trick about endianness via ELF binary header picked up from https://serverfault.com/a/749469/490516
sh label: 'Inspect initial envvars', script: """ hostname; date -u; uname -a
echo "LONG_BIT:`getconf LONG_BIT` WORD_BIT:`getconf WORD_BIT`" || true
Expand All @@ -289,7 +291,7 @@ set | sort -n """
}
}

infra.withEnvOptional(dynacfgPipeline.defaultTools) {
withEnvOptional(dynacfgPipeline.defaultTools) {
unstashCleanSrc(dynacfgPipeline.stashnameSrc)
def dynacfgPipeline_ciBuild = dynacfgPipeline.clone()
dynacfgPipeline_ciBuild.buildSystem = 'ci_build.sh'
Expand Down Expand Up @@ -321,7 +323,7 @@ set | sort -n """
//branchRegexTarget: dynacfgPipeline.branchStableRegex,
branchRegexTarget: ~/fightwarn/,
appliesToChangedFilesRegex: dynacfgPipeline.appliesToChangedFilesRegex_C,
'getParStages': { dynamatrix, Closure body ->
'getParStages': { def dynamatrix, Closure body ->
return dynamatrix.generateBuild([
//commonLabelExpr: dynacfgBase.commonLabelExpr,
//defaultDynamatrixConfig: dynacfgBase.defaultDynamatrixConfig,
Expand Down Expand Up @@ -359,7 +361,7 @@ set | sort -n """
branchRegexTarget: ~/fightwarn/,
// NOTE: For fightwarn, we want some schenarios that would always build to test
//appliesToChangedFilesRegex: dynacfgPipeline.appliesToChangedFilesRegex_C,
'getParStages': { dynamatrix, Closure body ->
'getParStages': { def dynamatrix, Closure body ->
return dynamatrix.generateBuild([
//commonLabelExpr: dynacfgBase.commonLabelExpr,
//defaultDynamatrixConfig: dynacfgBase.defaultDynamatrixConfig,
Expand Down Expand Up @@ -401,7 +403,7 @@ set | sort -n """
//branchRegexSource: ~/^(PR-.+|fightwarn.*)$/,
//branchRegexTarget: dynacfgPipeline.branchStableRegex,
appliesToChangedFilesRegex: dynacfgPipeline.appliesToChangedFilesRegex_C,
'getParStages': { dynamatrix, Closure body ->
'getParStages': { def dynamatrix, Closure body ->
return dynamatrix.generateBuild([
requiredNodelabels: [],
excludedNodelabels: [],
Expand Down Expand Up @@ -438,7 +440,7 @@ set | sort -n """
//branchRegexSource: ~/^(PR-.+|fightwarn.*)$/,
//branchRegexTarget: dynacfgPipeline.branchStableRegex,
appliesToChangedFilesRegex: dynacfgPipeline.appliesToChangedFilesRegex_C,
'getParStages': { dynamatrix, Closure body ->
'getParStages': { def dynamatrix, Closure body ->
return dynamatrix.generateBuild([
requiredNodelabels: ["(NUT_BUILD_CAPS=valgrind=yes||NUT_BUILD_CAPS=valgrind)"],
excludedNodelabels: ["NUT_BUILD_CAPS=valgrind=no"],
Expand Down Expand Up @@ -483,7 +485,7 @@ set | sort -n """
//branchRegexTarget: dynacfgPipeline.branchStableRegex,
branchRegexTarget: ~/fightwarn/,
appliesToChangedFilesRegex: dynacfgPipeline.appliesToChangedFilesRegex_C,
'getParStages': { dynamatrix, Closure body ->
'getParStages': { def dynamatrix, Closure body ->
return dynamatrix.generateBuild([
dynamatrixAxesLabels: ['OS_FAMILY'], // + [ 'OS_DISTRO', 'MAKE'],
requiredNodelabels: ["(NUT_BUILD_CAPS=cppcheck||NUT_BUILD_CAPS=cppcheck=yes)"],
Expand Down Expand Up @@ -527,7 +529,7 @@ set | sort -n """
//branchRegexSource: ~/^(PR-.+|fightwarn.*)$/,
//branchRegexTarget: dynacfgPipeline.branchStableRegex,
appliesToChangedFilesRegex: dynacfgPipeline.appliesToChangedFilesRegex_C,
'getParStages': { dynamatrix, Closure body ->
'getParStages': { def dynamatrix, Closure body ->
return dynamatrix.generateBuild([
//commonLabelExpr: "nut-builder:alldrv",
requiredNodelabels: ["(NUT_BUILD_CAPS=drivers:all||nut-builder:alldrv)"],
Expand Down Expand Up @@ -568,7 +570,7 @@ set | sort -n """
//branchRegexSource: ~/^(PR-.+|fightwarn.*)$/,
//branchRegexTarget: dynacfgPipeline.branchStableRegex,
appliesToChangedFilesRegex: dynacfgPipeline.appliesToChangedFilesRegex_C,
'getParStages': { dynamatrix, Closure body ->
'getParStages': { def dynamatrix, Closure body ->
return dynamatrix.generateBuild([
//commonLabelExpr: "nut-builder:alldrv",
requiredNodelabels: ["(NUT_BUILD_CAPS=drivers:all||nut-builder:alldrv)"],
Expand Down Expand Up @@ -604,7 +606,7 @@ set | sort -n """
branchRegexSource: ~/^(PR-.+|.*fightwarn.*)$/,
branchRegexTarget: ~/fightwarn/,
appliesToChangedFilesRegex: dynacfgPipeline.appliesToChangedFilesRegex_C,
'getParStages': { dynamatrix, Closure body ->
'getParStages': { def dynamatrix, Closure body ->
return dynamatrix.generateBuild([
//commonLabelExpr: "nut-builder:alldrv",
requiredNodelabels: ["(NUT_BUILD_CAPS=drivers:all||nut-builder:alldrv)"],
Expand Down Expand Up @@ -644,7 +646,7 @@ set | sort -n """
//branchRegexSource: ~/^(PR-.+|fightwarn.*)$/,
//branchRegexTarget: dynacfgPipeline.branchStableRegex,
appliesToChangedFilesRegex: dynacfgPipeline.appliesToChangedFilesRegex_PY,
'getParStages': { dynamatrix, Closure body ->
'getParStages': { def dynamatrix, Closure body ->
return dynamatrix.generateBuild([
//commonLabelExpr: "nut-builder:alldrv",
// TOTHINK: Should we also vary compilers here?
Expand Down Expand Up @@ -684,7 +686,7 @@ set | sort -n """
//branchRegexSource: ~/^(PR-.+|fightwarn.*)$/,
//branchRegexTarget: dynacfgPipeline.branchStableRegex,
appliesToChangedFilesRegex: dynacfgPipeline.appliesToChangedFilesRegex_DOC,
'getParStages': { dynamatrix, Closure body ->
'getParStages': { def dynamatrix, Closure body ->
return dynamatrix.generateBuild([
//commonLabelExpr: dynacfgBase.commonLabelExpr + " && doc-builder",
//commonLabelExpr: infra.labelDocumentationWorker(),
Expand Down Expand Up @@ -726,7 +728,7 @@ set | sort -n """
//branchRegexSource: ~/^(PR-.+|fightwarn.*)$/,
//branchRegexTarget: dynacfgPipeline.branchStableRegex,
appliesToChangedFilesRegex: dynacfgPipeline.appliesToChangedFilesRegex_TXT,
'getParStages': { dynamatrix, Closure body ->
'getParStages': { def dynamatrix, Closure body ->
return dynamatrix.generateBuild([
//commonLabelExpr: dynacfgBase.commonLabelExpr + " && doc-builder",
//commonLabelExpr: infra.labelDocumentationWorker(),
Expand Down Expand Up @@ -764,7 +766,7 @@ set | sort -n """
//branchRegexSource: ~/^(PR-.+|fightwarn.*)$/,
//branchRegexTarget: dynacfgPipeline.branchStableRegex,
appliesToChangedFilesRegex: dynacfgPipeline.appliesToChangedFilesRegex_C,
'getParStages': { dynamatrix, Closure body ->
'getParStages': { def dynamatrix, Closure body ->
return dynamatrix.generateBuild([
requiredNodelabels: [],
excludedNodelabels: [],
Expand Down Expand Up @@ -804,7 +806,7 @@ set | sort -n """
//branchRegexSource: ~/^(PR-.+|.*fightwarn.*)$/,
//branchRegexTarget: ~/fightwarn.*/,
appliesToChangedFilesRegex: dynacfgPipeline.appliesToChangedFilesRegex_C,
'getParStages': { dynamatrix, Closure body ->
'getParStages': { def dynamatrix, Closure body ->
return dynamatrix.generateBuild([
requiredNodelabels: [],
excludedNodelabels: [],
Expand Down Expand Up @@ -838,7 +840,7 @@ set | sort -n """
branchRegexSource: ~/^(PR-.+|.*fightwarn.*89.*)$/,
branchRegexTarget: ~/fightwarn.*89.*/,
appliesToChangedFilesRegex: dynacfgPipeline.appliesToChangedFilesRegex_C,
'getParStages': { dynamatrix, Closure body ->
'getParStages': { def dynamatrix, Closure body ->
return dynamatrix.generateBuild([
requiredNodelabels: [],
excludedNodelabels: [],
Expand Down Expand Up @@ -872,7 +874,7 @@ set | sort -n """
//branchRegexSource: ~/^(PR-.+|fightwarn.*|.*qemu.*)$/,
//branchRegexTarget: ~/^(master|main|stable|.*qemu.*)$/,
appliesToChangedFilesRegex: dynacfgPipeline.appliesToChangedFilesRegex_C,
'getParStages': { dynamatrix, Closure body ->
'getParStages': { def dynamatrix, Closure body ->
return dynamatrix.generateBuild([
//commonLabelExpr: "qemu-" + dynacfgBase.commonLabelExpr,
commonLabelExpr: "qemu-nut-builder || ssh-qemu-nut-builder",
Expand Down Expand Up @@ -914,7 +916,7 @@ set | sort -n """
branchRegexSource: ~/^(PR-.+|.*fightwarn.*)$/,
branchRegexTarget: ~/fightwarn/,
appliesToChangedFilesRegex: dynacfgPipeline.appliesToChangedFilesRegex_C,
'getParStages': { dynamatrix, Closure body ->
'getParStages': { def dynamatrix, Closure body ->
return dynamatrix.generateBuild([
requiredNodelabels: [],
excludedNodelabels: [],
Expand Down Expand Up @@ -958,7 +960,7 @@ set | sort -n """
branchRegexSource: ~/^(PR-.+|.*fightwarn.*89.*)$/,
branchRegexTarget: ~/fightwarn.*89.*/,
appliesToChangedFilesRegex: dynacfgPipeline.appliesToChangedFilesRegex_C,
'getParStages': { dynamatrix, Closure body ->
'getParStages': { def dynamatrix, Closure body ->
return dynamatrix.generateBuild([
requiredNodelabels: [],
excludedNodelabels: [],
Expand Down Expand Up @@ -995,7 +997,7 @@ set | sort -n """
//branchRegexSource: ~/^(PR-.+|fightwarn.*)$/,
//branchRegexTarget: dynacfgPipeline.branchStableRegex,
appliesToChangedFilesRegex: dynacfgPipeline.appliesToChangedFilesRegex_C,
'getParStages': { dynamatrix, Closure body ->
'getParStages': { def dynamatrix, Closure body ->
return dynamatrix.generateBuild([
requiredNodelabels: [],
excludedNodelabels: [],
Expand Down Expand Up @@ -1038,7 +1040,7 @@ set | sort -n """
branchRegexSource: ~/^(PR-.+|.*fightwarn.*)$/,
branchRegexTarget: ~/fightwarn/,
appliesToChangedFilesRegex: dynacfgPipeline.appliesToChangedFilesRegex_C,
'getParStages': { dynamatrix, Closure body ->
'getParStages': { def dynamatrix, Closure body ->
return dynamatrix.generateBuild([
requiredNodelabels: [],
excludedNodelabels: [],
Expand Down Expand Up @@ -1078,7 +1080,7 @@ set | sort -n """
branchRegexSource: ~/^(PR-.+|.*fightwarn.*)$/,
branchRegexTarget: ~/fightwarn.*/,
appliesToChangedFilesRegex: dynacfgPipeline.appliesToChangedFilesRegex_C,
'getParStages': { dynamatrix, Closure body ->
'getParStages': { def dynamatrix, Closure body ->
return dynamatrix.generateBuild([
requiredNodelabels: [],
excludedNodelabels: [],
Expand Down Expand Up @@ -1115,7 +1117,7 @@ set | sort -n """
branchRegexSource: ~/^(PR-.+|.*fightwarn.*89.*)$/,
branchRegexTarget: ~/fightwarn.*89.*/,
appliesToChangedFilesRegex: dynacfgPipeline.appliesToChangedFilesRegex_C,
'getParStages': { dynamatrix, Closure body ->
'getParStages': { def dynamatrix, Closure body ->
return dynamatrix.generateBuild([
requiredNodelabels: [],
excludedNodelabels: [],
Expand Down Expand Up @@ -1152,7 +1154,7 @@ set | sort -n """
branchRegexSource: ~/^(PR-.+|.*fightwarn.*|.*Windows.*)$/,
branchRegexTarget: ~/fightwarn|Windows-.*/,
appliesToChangedFilesRegex: dynacfgPipeline.appliesToChangedFilesRegex_C,
'getParStages': { dynamatrix, Closure body ->
'getParStages': { def dynamatrix, Closure body ->
return dynamatrix.generateBuild([
requiredNodelabels: [],
excludedNodelabels: [],
Expand Down Expand Up @@ -1193,7 +1195,7 @@ set | sort -n """
//branchRegexSource: ~/^(PR-.+|.*fightwarn.*|.*Windows.*)$/,
//branchRegexTarget: ~/fightwarn|Windows-.*/,
appliesToChangedFilesRegex: dynacfgPipeline.appliesToChangedFilesRegex_C,
'getParStages': { dynamatrix, Closure body ->
'getParStages': { def dynamatrix, Closure body ->
return dynamatrix.generateBuild([
commonLabelExpr: "cross-windows-nut-builder",
dynamatrixAxesLabels: ['OS_FAMILY', 'OS_DISTRO', 'ARCH${ARCH_BITS}', 'COMPILER'],
Expand Down
34 changes: 34 additions & 0 deletions LICENSE-DCO
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.


Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or

(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or

(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.

(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
3 changes: 3 additions & 0 deletions Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,9 @@ cppcheck:
@echo "CPPCHECK analysis not available since 'cppcheck' was not found."
endif !HAVE_CPPCHECK

sockdebug:
cd $(builddir)/server && $(MAKE) $(AM_MAKEFLAGS) sockdebug$(EXEEXT)

# ----------------------------------------------------------------------
# Automatically generate the ChangeLog from Git logs:
MAINTAINERCLEANFILES += ChangeLog
Expand Down
Loading

0 comments on commit 5871147

Please sign in to comment.