From f9deddec217d2b443179a4cfd4e8ee537dbc6d71 Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Tue, 21 Nov 2023 15:29:12 +0100 Subject: [PATCH 01/37] scripts/python/module/MANIFEST.in: distribute "tox.ini" in a different way so it is only in sdist [#2193] Signed-off-by: Jim Klimov --- scripts/python/module/MANIFEST.in | 1 + scripts/python/module/Makefile.am | 2 +- scripts/python/module/setup.py.in | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 scripts/python/module/MANIFEST.in diff --git a/scripts/python/module/MANIFEST.in b/scripts/python/module/MANIFEST.in new file mode 100644 index 0000000000..5488969592 --- /dev/null +++ b/scripts/python/module/MANIFEST.in @@ -0,0 +1 @@ +include tox.ini diff --git a/scripts/python/module/Makefile.am b/scripts/python/module/Makefile.am index 9305bd4ed8..8d0b835f03 100644 --- a/scripts/python/module/Makefile.am +++ b/scripts/python/module/Makefile.am @@ -14,7 +14,7 @@ check-local: tox: dist .pypi-tools-tox tox -EXTRA_DIST = tox.ini +EXTRA_DIST = tox.ini MANIFEST.in NUT_SOURCE_GITREV_NUMERIC = @NUT_SOURCE_GITREV_NUMERIC@ PYTHON = @PYTHON@ diff --git a/scripts/python/module/setup.py.in b/scripts/python/module/setup.py.in index c3a8de24be..18f956d20c 100644 --- a/scripts/python/module/setup.py.in +++ b/scripts/python/module/setup.py.in @@ -27,7 +27,7 @@ setup( packages = find_packages(), #py_modules = ['PyNUT'], package_dir = {'PyNUT': 'PyNUTClient'}, - data_files = [('', ['tox.ini'])], + #data_files = [('', ['tox.ini'])], #scripts = ['PyNUTClient/test_nutclient.py', 'PyNUTClient/__init__.py'], python_requires = '>=2.6', # install_requires = ['telnetlib'], # NOTE: telnetlib.py is part of Python core for tested 2.x and 3.x versions, not something 'pip' can download From 4d886fff454cf0170b5da7d231b35ac30a6d98ff Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Mon, 20 Nov 2023 12:39:01 +0100 Subject: [PATCH 02/37] README.adoc: extend the Acknowledgements chapter with logos of organizations and projects which help ensure NUT project operations on a continuous basis [#2192] Signed-off-by: Jim Klimov --- README.adoc | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/README.adoc b/README.adoc index 6cf0da879a..561c32f636 100644 --- a/README.adoc +++ b/README.adoc @@ -709,3 +709,58 @@ Acknowledgements / Contributions The many people who have participated in creating and improving NUT are listed in the user manual {xref}Acknowledgements{x-s}[acknowledgements appendix]. + +We would like to highlight some organizations which provide continuous +support to the NUT project (and many other FOSS projects) on technological +and organizational sides, such as helping keep the donations transparent, +NUT CI farm afloat, and public resources visible: + +[frame="none",grid="none",cols="2"] +|=== +| image:https://github.githubassets.com/assets/GitHub-Mark-ea2971cee799.png[GitHub logo] +| The link:https://github.com/networkupstools/[NetworkUPSTools organization + on GitHub] arranges a lot of things, including source code hosting for NUT + itself and several related projects, team management, projects, issue and + pull request discussions, sponsorship, some automated actions, and more... + +| image:images/ci/jenkins-nut-transparent-bg.png[Jenkins+NUT logo] +| The link:https://www.jenkins.io/[Jenkins CI] project and its huge plugin + ecosystem provides the technological foundation for the largest island of + the self-hosted NUT CI farm. There is a fair amount of cross-pollination + between the upstream project and development done for the NUT CI farm. ++ + See more at link:https://stories.jenkins.io/user-story/jenkins-is-the-way-for-networkupstools/[Jenkins + is the way to build multi-platform NUT] article. + +| image:images/ci/fosshost.org_Host_Light_309px.png[Fosshost logo] +| Fosshost provided virtual machines where the multi-platform NUT CI farm with + a jenkins-dynamatrix setup runs to arrange builds in numerous operating + environments and a lot of toolkit versions and implementations. Some workers + running on community members' machines also dial in to provide an example of + their platforms. Literally hundreds of NUT builds run for each iteration. ++ + This allows us to ensure that NUT remains portable across two decades' worth + of operating systems, compilers, script interpreters, tools and third-party + dependencies. + +| image:https://d3r49iyjzglexf.cloudfront.net/trademark-logos-dc9765e9682f79d0370103a0aeaf156ab27583106b765502b21f90d7c18fd101.png[CircleCI logo] +| The + link:https://app.circleci.com/pipelines/github/networkupstools/nut/[CircleCI + NUT pipeline] allows us to test NUT CI builds on MacOS. + +| image:https://ci.appveyor.com/assets/images/logo-2x.png[AppVeyor logo] +| The link:https://ci.appveyor.com/project/nut-travis/nut/[AppVeyor + NUT pipeline] allows us to test NUT CI builds on Windows (and publish + preview tarballs with binaries). + +| image:https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/PoweredByDO/DO_Powered_by_Badge_blue.svg[DigitalOcean logo] +| The link:https://www.digitalocean.com/[DigitalOcean] droplets allow us to host + NUT CI farm build agents, and eventually re-house the Jenkins controller too. + +| image:https://www.networkupstools.org/images/gandi-ar21.svg[Gandi.Net logo] +| link:https://www.gandi.net/[Gandi.Net] took up the costs of NUT DNS hosting. + +| image:https://opencollective.com/static/images/logotype.svg[Open Collective logo] +| https://opencollective.com/networkupstools allows us to arrange monetary + donations and spending, with public transparency of everything that happens. +|=== From 2cbd567bdd3c4aa0ef891f31f316b5152ae54949 Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Mon, 20 Nov 2023 13:29:06 +0100 Subject: [PATCH 03/37] docs/images/gandi-ar21.svg: copy from nut-website Signed-off-by: Jim Klimov --- docs/images/ci/gandi-ar21.svg | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/images/ci/gandi-ar21.svg diff --git a/docs/images/ci/gandi-ar21.svg b/docs/images/ci/gandi-ar21.svg new file mode 100644 index 0000000000..9f543bde84 --- /dev/null +++ b/docs/images/ci/gandi-ar21.svg @@ -0,0 +1 @@ + \ No newline at end of file From ee06937300621f061a21226c540a7584cfcb1abb Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Mon, 20 Nov 2023 13:30:07 +0100 Subject: [PATCH 04/37] docs/images/ci/GitHub-Mark-ea2971cee799.png: copy from https://github.githubassets.com/assets/GitHub-Mark-ea2971cee799.png Signed-off-by: Jim Klimov --- docs/images/ci/GitHub-Mark-ea2971cee799.png | Bin 0 -> 7249 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/images/ci/GitHub-Mark-ea2971cee799.png diff --git a/docs/images/ci/GitHub-Mark-ea2971cee799.png b/docs/images/ci/GitHub-Mark-ea2971cee799.png new file mode 100644 index 0000000000000000000000000000000000000000..e28a8373067419c7fec89fc78ca44c0197e77ace GIT binary patch literal 7249 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 literal 0 HcmV?d00001 From 90a150cd89722e8aebe21398a4b459e3e3448a4f Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Mon, 20 Nov 2023 13:32:41 +0100 Subject: [PATCH 05/37] docs/images/ci/DO_Powered_by_Badge_blue.svg: copy from https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/PoweredByDO/DO_Powered_by_Badge_blue.svg [#2192] Signed-off-by: Jim Klimov --- docs/images/ci/DO_Powered_by_Badge_blue.svg | 101 ++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 docs/images/ci/DO_Powered_by_Badge_blue.svg diff --git a/docs/images/ci/DO_Powered_by_Badge_blue.svg b/docs/images/ci/DO_Powered_by_Badge_blue.svg new file mode 100644 index 0000000000..8a926926e4 --- /dev/null +++ b/docs/images/ci/DO_Powered_by_Badge_blue.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From cf741cf7a6d358cd1be32965f25d1b3de7d9c8d0 Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Mon, 20 Nov 2023 13:33:42 +0100 Subject: [PATCH 06/37] docs/images/ci/OC_logotype.svg: copy from https://opencollective.com/static/images/logotype.svg Signed-off-by: Jim Klimov --- docs/images/ci/OC_logotype.svg | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 docs/images/ci/OC_logotype.svg diff --git a/docs/images/ci/OC_logotype.svg b/docs/images/ci/OC_logotype.svg new file mode 100644 index 0000000000..90245c1def --- /dev/null +++ b/docs/images/ci/OC_logotype.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + From 377e6a8185ff89e459a9d33626b4be3b7e144c99 Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Mon, 20 Nov 2023 13:35:45 +0100 Subject: [PATCH 07/37] docs/images/ci/AppVeyor_logo-2x.png: copy from https://ci.appveyor.com/assets/images/logo-2x.png Signed-off-by: Jim Klimov --- docs/images/ci/AppVeyor_logo-2x.png | Bin 0 -> 5258 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/images/ci/AppVeyor_logo-2x.png diff --git a/docs/images/ci/AppVeyor_logo-2x.png b/docs/images/ci/AppVeyor_logo-2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f289509e1ea62429cf012524940887e34698cd5d GIT binary patch literal 5258 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 QJ^%m!07*qoM6N<$f)*-3^8f$< literal 0 HcmV?d00001 From 6c090076056953ef3fba1cb64928571a983ae3e7 Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Mon, 20 Nov 2023 13:40:53 +0100 Subject: [PATCH 08/37] docs/images/ci/CircleCI_vertical_black_logo.svg: copy from https://brand.circleci.com/api/asset/download.svg?asset_id=47134422&auth=XCzXjqT6lGYuIc0lH9SjTA Signed-off-by: Jim Klimov --- docs/images/ci/CircleCI_vertical_black_logo.svg | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 docs/images/ci/CircleCI_vertical_black_logo.svg diff --git a/docs/images/ci/CircleCI_vertical_black_logo.svg b/docs/images/ci/CircleCI_vertical_black_logo.svg new file mode 100644 index 0000000000..9352c20c5d --- /dev/null +++ b/docs/images/ci/CircleCI_vertical_black_logo.svg @@ -0,0 +1,3 @@ + + + From b92db5a6e13d6d5b6c06cd7b9b966a5c859fa525 Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Mon, 20 Nov 2023 13:55:14 +0100 Subject: [PATCH 09/37] README.adoc: use locally stored logos of acknowledged helper projects Signed-off-by: Jim Klimov --- README.adoc | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/README.adoc b/README.adoc index 561c32f636..df75a20bfd 100644 --- a/README.adoc +++ b/README.adoc @@ -717,13 +717,13 @@ NUT CI farm afloat, and public resources visible: [frame="none",grid="none",cols="2"] |=== -| image:https://github.githubassets.com/assets/GitHub-Mark-ea2971cee799.png[GitHub logo] +| image:images/ci/GitHub-Mark-ea2971cee799.png[GitHub logo,140,140] | The link:https://github.com/networkupstools/[NetworkUPSTools organization on GitHub] arranges a lot of things, including source code hosting for NUT itself and several related projects, team management, projects, issue and pull request discussions, sponsorship, some automated actions, and more... -| image:images/ci/jenkins-nut-transparent-bg.png[Jenkins+NUT logo] +| image:images/ci/jenkins-nut-transparent-bg.png[Jenkins+NUT logo,140] | The link:https://www.jenkins.io/[Jenkins CI] project and its huge plugin ecosystem provides the technological foundation for the largest island of the self-hosted NUT CI farm. There is a fair amount of cross-pollination @@ -732,7 +732,7 @@ NUT CI farm afloat, and public resources visible: See more at link:https://stories.jenkins.io/user-story/jenkins-is-the-way-for-networkupstools/[Jenkins is the way to build multi-platform NUT] article. -| image:images/ci/fosshost.org_Host_Light_309px.png[Fosshost logo] +| image:images/ci/fosshost.org_Host_Light_38px.png[Fosshost logo] | Fosshost provided virtual machines where the multi-platform NUT CI farm with a jenkins-dynamatrix setup runs to arrange builds in numerous operating environments and a lot of toolkit versions and implementations. Some workers @@ -743,24 +743,24 @@ NUT CI farm afloat, and public resources visible: of operating systems, compilers, script interpreters, tools and third-party dependencies. -| image:https://d3r49iyjzglexf.cloudfront.net/trademark-logos-dc9765e9682f79d0370103a0aeaf156ab27583106b765502b21f90d7c18fd101.png[CircleCI logo] +| image:images/ci/CircleCI_vertical_black_logo.svg[CircleCI logo] | The link:https://app.circleci.com/pipelines/github/networkupstools/nut/[CircleCI NUT pipeline] allows us to test NUT CI builds on MacOS. -| image:https://ci.appveyor.com/assets/images/logo-2x.png[AppVeyor logo] +| image:images/ci/AppVeyor_logo-2x.png[AppVeyor logo] | The link:https://ci.appveyor.com/project/nut-travis/nut/[AppVeyor NUT pipeline] allows us to test NUT CI builds on Windows (and publish preview tarballs with binaries). -| image:https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/PoweredByDO/DO_Powered_by_Badge_blue.svg[DigitalOcean logo] +| image:images/ci/DO_Powered_by_Badge_blue.svg[DigitalOcean logo,140,30] | The link:https://www.digitalocean.com/[DigitalOcean] droplets allow us to host NUT CI farm build agents, and eventually re-house the Jenkins controller too. -| image:https://www.networkupstools.org/images/gandi-ar21.svg[Gandi.Net logo] +| image:images/ci/gandi-ar21.svg[Gandi.Net logo] | link:https://www.gandi.net/[Gandi.Net] took up the costs of NUT DNS hosting. -| image:https://opencollective.com/static/images/logotype.svg[Open Collective logo] +| image:images/ci/OC_logotype.svg[Open Collective logo] | https://opencollective.com/networkupstools allows us to arrange monetary donations and spending, with public transparency of everything that happens. |=== From 315c4342d020e6a966b7fdca6230c2c2b4ffb1c9 Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Mon, 20 Nov 2023 13:56:15 +0100 Subject: [PATCH 10/37] docs/images/ci/CircleCI_vertical_black_logo.png: copy from https://brand.circleci.com/api/asset/download.png?asset_id=47134418&auth=XCzXjqT6lGYuIc0lH9SjTA Signed-off-by: Jim Klimov --- docs/images/ci/CircleCI_vertical_black_logo.png | Bin 0 -> 2008 bytes docs/images/ci/CircleCI_vertical_black_logo.svg | 3 --- 2 files changed, 3 deletions(-) create mode 100644 docs/images/ci/CircleCI_vertical_black_logo.png delete mode 100644 docs/images/ci/CircleCI_vertical_black_logo.svg diff --git a/docs/images/ci/CircleCI_vertical_black_logo.png b/docs/images/ci/CircleCI_vertical_black_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..9691c7e8817ed6e262074e397c0f2ba3e3f25d4c GIT binary patch literal 2008 zcmV;}2PgQ6P)^73+q3*Z0~VjF(1(WzMF zm{~EVQiS{a`-kN}0~N7K@$~fc6DDE`MQEV_5zH(KF|;CdQ~;mh6=Fz5SjParKp4vy z;>W0Ch~X6B?(Xgv#{jSvIEHwBe*OW2F_a=mR|3n3$}of?NbL&t7^$leuLz?mfn^kB z5UmKKD}iMMWe}?fvnYW@x-y7Wgk_E3114ixYY=*?c5`zBudlCv;x2h_MKj z9Y`iMmcUUC19cGPsFI`z?6U-}rQTXg+mdDxB4!P%HDCq%VXpOlybfLun5j|kTtsLj zr!}bU@Zq)&QmjIEi-3JGFww&6hu23rzyxRgOX#i$Tr-81u3t`NXf#vWrMp?;>K1yK z*pbWb)72ty4VG#Q6@=*bL)kmbVb84y_br;8-5-?T8w_YoL(h)x^(J z=lC2x1JCKzoQqI|+_}1xIerVKR|I^jbNg@n9@Q$0K6{v65lT%i_4_ub!l+zC*P!g9 zilBU=ilBTly&~YE6BI!GKBnn`ftg+rN)~BS{1_wb(%#}Cx`tdYA(J0r2rfbqGQET* zaf!Kz(k`r&i*h~powm!44k{2qW*IRDk8X zXW%avVkG5K5*5zgDA%&VfBfZXFMW=Iib%}WtjV-GATgPisFlT;_7cYExmR-wkvpA6 zNyndxKg1Xz z272#$jvee+VCf3}g~6FBnO4I?!>2hV-ZGUUSSlU5k$m{aNKB~+K6YCjZe6F$IMC$V zpwii%d__?dMNt$*Q4~c{6h%>#d~g}w-6(t!OUzX4M%+<@ODOoU9Ja326~PrO{RX=` zvL)?Q<|MT19NVROV2Z1KJriFk@tl^}E}ETP`J}occzKY`tp5BF*l?*E9V|Lr!Wd!A z4f$Z>GLi<1UJ{9>!5UUJRi@hyrk1l*5lUoJsnr&TErG7)MA(hp^WzBJ8yvgwA=$Bp zA%>-q!pu??fqIWhL)`El5~8a}ag>o4J@ICN!{$SH+@Y}1a8?O za@t~VZ$(TIj=o@=?q%#GG91Y+sW%tPi4{sMCr9eNQrXnc=e7lYC#NlrzF_xF)MC^y zd^-FWc&4~C^Qo@{zU;kn!n(Kw8u_o#FyS58|5%``&Yz7=?izjPDSu7N6h zPad_LAyd8AHPn=C;oQy_x{sS(gRea)d-$+IUIHvrVtTh^qf+HG1O&>Ny2|OxUab|o z>>X=md_d=kpdSV%=Z^&?5X$VSd3*EaxW7Q3C5F{Ro}do~ep`j< zaw8yU5sdw1pcBsx^us_UB391;5u8He%)x(AzWb$XkQ_?pKZPyJ>7UzNOLlBvNL`i= z4g9HH>e0W!IqUG&5o2GqZj@W8++|qrX(83sKR%$A>{yqx=R4S1mZq+GSc_n&LMer) zHOKcWmFidtETunEzuQo@3H=e<#VU~d!s~7*0eKDLQxQ-T{k3q4yA})L7s88CWM!?C zvAWNcZQ9HEq(;&wwYyCRg76SkwNNad*^n^Vq?2X{Y030bw( z01+EN(mG5X%ZYNSqhcq}rFadXmF%3h$jtz|`4q;w0pApEUBivK^*_%Q^}7?mN)8^) qDG!(Igt8g;@3t*+qP#6w#{U7e1w&%%490T+0000 - - From 24f6a57cbdfd1db6b3f8690d3f0fdc5f40172ba1 Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Mon, 20 Nov 2023 13:57:48 +0100 Subject: [PATCH 11/37] docs/images/ci/DO_Powered_by_Badge_blue.png: copy from https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/PoweredByDO/DO_Powered_by_Badge_blue.png Signed-off-by: Jim Klimov --- docs/images/ci/DO_Powered_by_Badge_blue.png | Bin 0 -> 9212 bytes docs/images/ci/DO_Powered_by_Badge_blue.svg | 101 -------------------- 2 files changed, 101 deletions(-) create mode 100644 docs/images/ci/DO_Powered_by_Badge_blue.png delete mode 100644 docs/images/ci/DO_Powered_by_Badge_blue.svg diff --git a/docs/images/ci/DO_Powered_by_Badge_blue.png b/docs/images/ci/DO_Powered_by_Badge_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..0d0163b02358556eca5f264990a0c67f534289b7 GIT binary patch literal 9212 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From c75d63eb7ad671ad2df86488d2af11175e7c7a98 Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Mon, 20 Nov 2023 14:21:55 +0100 Subject: [PATCH 12/37] docs/images/ci/gandi-ar21.png: convert from SVG to PNG with Inkscape Signed-off-by: Jim Klimov --- docs/images/ci/gandi-ar21.png | Bin 0 -> 3292 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/images/ci/gandi-ar21.png diff --git a/docs/images/ci/gandi-ar21.png b/docs/images/ci/gandi-ar21.png new file mode 100644 index 0000000000000000000000000000000000000000..08e19e61830b7e42329e0a4cc7ed528d5a99d382 GIT binary patch literal 3292 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 AoB#j- literal 0 HcmV?d00001 From dc9d674755e165e002a01204eca0824449fb8308 Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Mon, 20 Nov 2023 14:23:27 +0100 Subject: [PATCH 13/37] docs/images/ci/OC_logo-watercolor-256.png: copy from https://next-images.opencollective.com/_next/image?url=%2Fstatic%2Fimages%2Foc-logo-watercolor-256.png&w=32&q=75 Signed-off-by: Jim Klimov --- docs/images/ci/OC_logo-watercolor-256.png | Bin 0 -> 2408 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/images/ci/OC_logo-watercolor-256.png diff --git a/docs/images/ci/OC_logo-watercolor-256.png b/docs/images/ci/OC_logo-watercolor-256.png new file mode 100644 index 0000000000000000000000000000000000000000..7302bd974201966cd334cabdba610edd42ef7a81 GIT binary patch literal 2408 zcmV-u377VXP)Px;B1uF+R9HuqS8I$_)fN8Mew=gey>su(2*aaT3I+uS48answko%kAEY)0o4LkR zYZ?v2ibbuO^r0SFtG4x36s>JVtG4PLwGUsRre11etq8P@6-vN2OnAsV?%cWOp0gjT zKbSFqAoBe@CwqV2T5IpUzC}0!s#TUfJ@7=t0C4j?uZ=tAvy)D4Z_A&qC4|t_Atbgm z8-8TCInrsY*|zMw6P^d)$JSRWvoEm?uAl@Pb`azr~i9N-$_nLUObvUt=W~C%)?Z}dWE3dlf z3(qk#(IG^LgFnQzni?a&`%is$wT02k#k@W_m(zXTQ(%lgHc9N1#z->0UawCX8mgZ- zT(6IJS>{Zu6{M+|khPKl=iERp3_lm;+JAe?>c1aHL>$NQ$M_D&KwPV-xLmfkKmOJU z$8;9&3AFrt80hUt4Yu&&kAQoJvv7)nhVILloO8V4p%jEDuCb7H13 zt!2w9-S@@JA|~>O6)=|em5={-ZmF~DkELQhAfmmVInSOuQtP$NTwajbt%Oj4R#uST zB!t_TB-xZSO((PGy7wkw7UL|bQ?txIdPUEy%lG5rIIgKTyBBcpXqFWK#4(FXh1~tm z^o=hSqt#I$o6dWrnK(&ESI>;4R_dZq`cwvZTL`%oz)t6}#jxK@BIp!K^kiu=tB@~j zH`Wa{>dgn1pFij7ecViOyn+Bw9Pc~Sam*r)$sbUHhu8Go+uq)GrgI!M5}wM=W>O1w z*7zV)2n0QrHHL1zVA1qYoB)msH}}+ zTdf|Rd{lssiAG;d;_mK!hdlFkSw5$yM4|pb0y~uwjbgEQ()ACmo2~AA@SToaD9_Q7 z-^wiK30{X<)B#aS((H{(7fn7FfQ#drs#M4xj{H#Av}pwcz`$_px_qdo0zT17jes$v zl>TyOsdR>DJ4T(OB~4&ZgDp!%Xogy}oHOtD?;XArfUDJ5jUA$+K^(_EuGQ2}zR~@j zbz(grCj+9$OkIJJsgi1nh(ftgYgNoLcPvAM01?9v5@G8#7yfGt0F=u|7x{r$002lb zB*TfB!Qd3^Q!V9gspQ#804F&|k#k%$HZ#uq)LVa?b-W9xxKC;%M+J7fBO=e5XHX)z^_Qp95nf*oph}S|MY41-3ArM6QsFCo3R%#}K{SJWpMCM%N z7=k^7RA7*bh@5GQf_L|=T>DAeern_b(V-RZwO({F^k+ac!9&!A_0-Q08UT!S%tX+T82=Z=5mqEO7xQtpaER^%au8#b32UMm>3=Gh4lCqnSsftI`SVc4&f zo--J=Ed_vIZP=iWM06B66i9(TQ@?5$!%)@=(t?A zOYUEEFcTCo-~E|dLsTx*;4#n}%O3b{&_*k4@smCh@xRhFZX5Cagap4$3UTU#{EWJWlS zX6JKy#5hmZ7_#2CC9O1V)Q5ktZsX?F&;5IS3$Nap>`(apU%xT2Gtd)*T<#_!|H^lI zrvEgKSxi1>gIqd)z5#%z-)JpdJSY4s5&6-s4fIs2vbR!k*REPOY1)*|zvRMb96M1m z&I)GIV1m>b_MQvgbKo5Mg%JIKXn5y12*s{2h?>swm!#4Yi6kt0)EfgozUu4KZU8>= zoF2gFb>0{FM|F&Atl~1+_`waQPU`GY`yyKFu#!-~J zB+!K}rE*}?g3bEjoK2;m4CDu#<057$?`^b|IzqIXzyVE0$ a=l=)n;6d5hr7)!c0000 Date: Mon, 20 Nov 2023 14:28:20 +0100 Subject: [PATCH 14/37] docs/images/ci/OC_logotype.png: convert from SVG to PNG with Inkscape Signed-off-by: Jim Klimov --- docs/images/ci/OC_logotype.png | Bin 0 -> 3665 bytes docs/images/ci/OC_logotype.svg | 17 ----------------- 2 files changed, 17 deletions(-) create mode 100644 docs/images/ci/OC_logotype.png delete mode 100644 docs/images/ci/OC_logotype.svg diff --git a/docs/images/ci/OC_logotype.png b/docs/images/ci/OC_logotype.png new file mode 100644 index 0000000000000000000000000000000000000000..e34eae456ab9617b9f9300625259eda6f1eb9518 GIT binary patch literal 3665 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 jTAygE=&&TO00000NkvXXu0mjfAhIBA literal 0 HcmV?d00001 diff --git a/docs/images/ci/OC_logotype.svg b/docs/images/ci/OC_logotype.svg deleted file mode 100644 index 90245c1def..0000000000 --- a/docs/images/ci/OC_logotype.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - From 9fc49676d61fb347a37d9b66a19e96af6c3a343c Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Mon, 20 Nov 2023 14:34:15 +0100 Subject: [PATCH 15/37] docs/images/ci/AppVeyor_logo-ar21.svg: copy from https://www.vectorlogo.zone/logos/appveyor/appveyor-ar21.svg Signed-off-by: Jim Klimov --- docs/images/ci/AppVeyor_logo-ar21.svg | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/images/ci/AppVeyor_logo-ar21.svg diff --git a/docs/images/ci/AppVeyor_logo-ar21.svg b/docs/images/ci/AppVeyor_logo-ar21.svg new file mode 100644 index 0000000000..41d05cc789 --- /dev/null +++ b/docs/images/ci/AppVeyor_logo-ar21.svg @@ -0,0 +1 @@ + \ No newline at end of file From b781abb502ebe42cdabb026d00447086b2dd4c47 Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Mon, 20 Nov 2023 14:37:51 +0100 Subject: [PATCH 16/37] docs/images/ci/AppVeyor_logo-ar21.png: convert from SVG to PNG with Inkscape Signed-off-by: Jim Klimov --- docs/images/ci/AppVeyor_logo-ar21.png | Bin 0 -> 3145 bytes docs/images/ci/AppVeyor_logo-ar21.svg | 1 - 2 files changed, 1 deletion(-) create mode 100644 docs/images/ci/AppVeyor_logo-ar21.png delete mode 100644 docs/images/ci/AppVeyor_logo-ar21.svg diff --git a/docs/images/ci/AppVeyor_logo-ar21.png b/docs/images/ci/AppVeyor_logo-ar21.png new file mode 100644 index 0000000000000000000000000000000000000000..f3c277613b9120ec0ccf9435f2342bd9845ac64e GIT binary patch literal 3145 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 J=8kLPe*wFxEB^oh literal 0 HcmV?d00001 diff --git a/docs/images/ci/AppVeyor_logo-ar21.svg b/docs/images/ci/AppVeyor_logo-ar21.svg deleted file mode 100644 index 41d05cc789..0000000000 --- a/docs/images/ci/AppVeyor_logo-ar21.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file From a06e320205962ac2f349ef9220e70c14d1b3e276 Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Mon, 20 Nov 2023 14:38:53 +0100 Subject: [PATCH 17/37] README.adoc: use PNG versions of logos (avoid requirement of inkscape etc. to build PDF) Signed-off-by: Jim Klimov --- README.adoc | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/README.adoc b/README.adoc index df75a20bfd..3b51b4d4b1 100644 --- a/README.adoc +++ b/README.adoc @@ -723,7 +723,7 @@ NUT CI farm afloat, and public resources visible: itself and several related projects, team management, projects, issue and pull request discussions, sponsorship, some automated actions, and more... -| image:images/ci/jenkins-nut-transparent-bg.png[Jenkins+NUT logo,140] +| image:images/ci/jenkins-nut-transparent-bg.png[Jenkins+NUT logo,140,105] | The link:https://www.jenkins.io/[Jenkins CI] project and its huge plugin ecosystem provides the technological foundation for the largest island of the self-hosted NUT CI farm. There is a fair amount of cross-pollination @@ -743,24 +743,25 @@ NUT CI farm afloat, and public resources visible: of operating systems, compilers, script interpreters, tools and third-party dependencies. -| image:images/ci/CircleCI_vertical_black_logo.svg[CircleCI logo] +| image:images/ci/CircleCI_vertical_black_logo.png[CircleCI logo] | The link:https://app.circleci.com/pipelines/github/networkupstools/nut/[CircleCI NUT pipeline] allows us to test NUT CI builds on MacOS. -| image:images/ci/AppVeyor_logo-2x.png[AppVeyor logo] +| image:images/ci/AppVeyor_logo-ar21.png[AppVeyor logo] | The link:https://ci.appveyor.com/project/nut-travis/nut/[AppVeyor NUT pipeline] allows us to test NUT CI builds on Windows (and publish preview tarballs with binaries). -| image:images/ci/DO_Powered_by_Badge_blue.svg[DigitalOcean logo,140,30] +| image:images/ci/DO_Powered_by_Badge_blue.png[DigitalOcean logo,140,30] | The link:https://www.digitalocean.com/[DigitalOcean] droplets allow us to host NUT CI farm build agents, and eventually re-house the Jenkins controller too. -| image:images/ci/gandi-ar21.svg[Gandi.Net logo] +| image:images/ci/gandi-ar21.png[Gandi.Net logo] | link:https://www.gandi.net/[Gandi.Net] took up the costs of NUT DNS hosting. -| image:images/ci/OC_logotype.svg[Open Collective logo] +| image:images/ci/OC_logo-watercolor-256.png[Open Collective + logo]image:images/ci/OC_logotype.png[Open Collective logo] | https://opencollective.com/networkupstools allows us to arrange monetary donations and spending, with public transparency of everything that happens. |=== From f04357eea42f7717844b1559ab53b03b28e051a4 Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Mon, 20 Nov 2023 14:49:41 +0100 Subject: [PATCH 18/37] README.adoc: try to adjust logo image widths Signed-off-by: Jim Klimov --- README.adoc | 16 +++++++++------- .../ci/DO_Powered_by_Badge_blue_140pxW.png | Bin 0 -> 3418 bytes docs/images/ci/GitHub-Mark-140pxW.png | Bin 0 -> 6195 bytes .../ci/jenkins-nut-transparent-bg-140pxW.png | Bin 0 -> 22446 bytes docs/nut.dict | 8 +++++++- 5 files changed, 16 insertions(+), 8 deletions(-) create mode 100644 docs/images/ci/DO_Powered_by_Badge_blue_140pxW.png create mode 100644 docs/images/ci/GitHub-Mark-140pxW.png create mode 100644 docs/images/ci/jenkins-nut-transparent-bg-140pxW.png diff --git a/README.adoc b/README.adoc index 3b51b4d4b1..1c07648478 100644 --- a/README.adoc +++ b/README.adoc @@ -713,17 +713,19 @@ listed in the user manual {xref}Acknowledgements{x-s}[acknowledgements appendix] We would like to highlight some organizations which provide continuous support to the NUT project (and many other FOSS projects) on technological and organizational sides, such as helping keep the donations transparent, -NUT CI farm afloat, and public resources visible: +NUT CI farm afloat, and public resources visible. Thanks for keeping the +clocks ticking, day and night: [frame="none",grid="none",cols="2"] |=== -| image:images/ci/GitHub-Mark-ea2971cee799.png[GitHub logo,140,140] -| The link:https://github.com/networkupstools/[NetworkUPSTools organization +| image:images/ci/GitHub-Mark-140pxW.png[GitHub logo] +| The link:https://github.com/networkupstools/["NetworkUPSTools" organization on GitHub] arranges a lot of things, including source code hosting for NUT itself and several related projects, team management, projects, issue and - pull request discussions, sponsorship, some automated actions, and more... + pull request discussions, sponsorship, nut-website rendering and hosting, + some automated actions, and more... -| image:images/ci/jenkins-nut-transparent-bg.png[Jenkins+NUT logo,140,105] +| image:images/ci/jenkins-nut-transparent-bg-140pxW.png[Jenkins and NUT logo] | The link:https://www.jenkins.io/[Jenkins CI] project and its huge plugin ecosystem provides the technological foundation for the largest island of the self-hosted NUT CI farm. There is a fair amount of cross-pollination @@ -753,7 +755,7 @@ NUT CI farm afloat, and public resources visible: NUT pipeline] allows us to test NUT CI builds on Windows (and publish preview tarballs with binaries). -| image:images/ci/DO_Powered_by_Badge_blue.png[DigitalOcean logo,140,30] +| image:images/ci/DO_Powered_by_Badge_blue_140pxW.png[DigitalOcean logo] | The link:https://www.digitalocean.com/[DigitalOcean] droplets allow us to host NUT CI farm build agents, and eventually re-house the Jenkins controller too. @@ -761,7 +763,7 @@ NUT CI farm afloat, and public resources visible: | link:https://www.gandi.net/[Gandi.Net] took up the costs of NUT DNS hosting. | image:images/ci/OC_logo-watercolor-256.png[Open Collective - logo]image:images/ci/OC_logotype.png[Open Collective logo] + logo] image:images/ci/OC_logotype.png[Open Collective logo] | https://opencollective.com/networkupstools allows us to arrange monetary donations and spending, with public transparency of everything that happens. |=== diff --git a/docs/images/ci/DO_Powered_by_Badge_blue_140pxW.png b/docs/images/ci/DO_Powered_by_Badge_blue_140pxW.png new file mode 100644 index 0000000000000000000000000000000000000000..cb9a3136d5ee41d8d7a76be4b43071a00092e451 GIT binary patch literal 3418 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 literal 0 HcmV?d00001 diff --git a/docs/images/ci/GitHub-Mark-140pxW.png b/docs/images/ci/GitHub-Mark-140pxW.png new file mode 100644 index 0000000000000000000000000000000000000000..755ab5e84d972bb243a06fbbacd5bf3281f5191f GIT binary patch literal 6195 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 U0A2iL7Bm2m3hMIZvgV=x2d3lY)c^nh literal 0 HcmV?d00001 diff --git a/docs/images/ci/jenkins-nut-transparent-bg-140pxW.png b/docs/images/ci/jenkins-nut-transparent-bg-140pxW.png new file mode 100644 index 0000000000000000000000000000000000000000..e5cfeb9c4df6fa8d91b2fdb81c021081b008a2e6 GIT binary patch literal 22446 zcmV+3Kq0@0P)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 zVoOIv0RI600RN!9r;`8x010qNS#tmY3B&*Z3B&}I=s0)#wr$dm?b|tY@Q^jEtZekG*|Y943`3G-8AVYd>(;FO zh7fd4oib?dTK zRlTaNu1;=mZ6g#45s$~wbsfvL5kjEIGESEhuh&a&A{7_e@2_ zm@R4PX*Qq>@sZ!w{}=L+j;d|j;`p&+!>g;Smp7hhyzP~jU-q=OwUu;qbP$Whuq+G9 zws9y59*-Nh+lfO}F-((0LL(MW5Km|rh5>-b?ItTLi;Rqnmh&%I+B;|N+-DP7;)k*% z$7ao*{c(@&zny&OV6knRUAuNsP*70x#_O+Nzklz(+jj5XJ)*9*4oyoSNfJT`Ow%Mg zD}(7%#xZr`7={fSLS}jZr$fasOd_#3on1XNHnviAtd6Rqbu=`#5(-BU0$eT^qbn-R zvE#=6`Hs(i_L)Q?vATT32>wsYd~ouijbv)Mk=xtbbL;EsZh8K>6<2K8vSre-nq$J} z^WyXQ=qz>Wn4u$UbhPbB)`H=UZwz%IvCeuxr0 z+slc@7Bo#KCnuW=F1)aH!NRjYd)|^I&+Xs8p9vEteB9&wkxFId0c>nfM_aqQyQ{m$ z<#t;aEn9ZR-}|9~<;9gN@p*mAjvYJphi9I8DyOEV#!*yM#GJWv7&mS#J9qBlh38*j z#?*1#c=a-7O`CwzpCHGWBw zJi1|6GiJ`5UQ$vraoW^rUynwkdp`GtFP`x^KX9<@*uEWqAW**HjW@pW;>s7#KU#IP zxUevvWy_Z{W5#r%(HKuW@dVXXhq>y~C0u&pBC;~lFiit&lAtj4)XPZz-?B(*m;sG- zipYwBkYpMf+xY9#ukzfgjp(|;wCU4Z7c4yc_Rs&ve>}f?*KVdvo$_JN;Rh;~Wua-B z%jNRfD^@(a)JW);9o)XoT)XPUNK0=_nK|>US;a+#V_6oqWngJ>Od|o7g^m4==Si9%{g-X`{{ujlB{a?8 z@6WB}!N*@A5{)r++O&>~F1qM5H-GZh=U!X=D(5aa@57wm4@8RcbC3i%!QOD`_x|(F zTVH?Wg>hE2cSK2ER$igo!Yedfs)Sn>D3U-?6jVhsB_cU(ei`6Zz^FZed7%Hl|@=+a{J4#nj^|4RTW6-8k*HWs+i=7K$Qs~4)7_%1wA8OBVwWfqmrfd%drr-3kNM~3 z`xriCBn3HHINe?phYM^IQ%hhbV#Gr|=&>-iWplVW$fH|pXy}SCy)>I#mw8@uGuxiz-G@NMU z;DJgOFPOpCzHl>{X#q^b#5Q$|L>Sx9lVFmZx(?|*%-$kg@g$_lfuR%6}eGs^S*lPby? zRz8aK!V*+(Izn+E$qGW2u`LVBG_VaFBM~JYY-i8j1FYJ%30F}XA`Ievs3mEuJ1 z=*u1RT5depaVFO)pXtr+-Lr>j)2EGi`NfwWdVSrxv2*6k<||+QGPW&P{n{E@Tia-E zYN9wljcg($K z9qsL1H{WvW`ojEt>!p`p{vhZ4eaoVS3u$a@KJVb(ohyPzcP=}pJY&d}i_db-TCkY% z>1PutEJgLEBdJa#Sxzp)cG89uLL|YXI_WfBguQuOc*P<-PB+7x62mhb$e2j7oYxtO z9sXig_5Po{cJzH;>luMX(=_JKoG&Gzb*waI# zubZ!b{u7iAEf@fb84qDw<|%*>l8mgV$g%|31K>Gb(Ac((K%lz3$ZkKfqLP=J#hwFI zw6%5Ma5&B?FCQN7?&{vO^2L=OIuPFFTE$&=-Q~UJip%DN+8gg1uJn~Hn^q>zn0Gb> zV`t*d%mv#{8v2HgZD=Q7rjBhUf7i4))lFU0cJ(r8Y7uE^UZO#jSrbO1N}xr05%G}H z5!Po^=FHi9{`pI4SHJq&`?}^c()(LBZ=q~>S@DDSKd|}1`|mHFH-8@4*;%}~bsKGM zZ78aWq3hgw{Uv<$^Pj*nO>E0RkM?3)X3|=PREs=oBD*6)RNfANwPs;4>J61VhMu-Cwl164CbF* zPT8<0=a%=%Key*c{Bdw%ksular1EVga4 z;f*)Q&(AyWr}x}*?ba<@^Mnv=+^`WvRTwd11hePNCO0>S=U2QyZzzmuSzz0k@yLKi zv27b6$vC}fG_?nLa>WYPZ{9(7FvPIpeE#DT%a}N3c=B&gQ)E@;rM27n&7U4amIYeE zAQn%cs0xWhf|{D@IXiajSZWx?10N|mQlfg(sL1nCT#&bD(vY-ymrpDRj2J$QoQi2E zZa-!siogOya>)?_MDq83mrH(ftyMqz@jbt)7(3Rw{)QVre6Z}_w~t}NhmU*q>8BrBw|4E2U{4T- z!@>0F(^7a zyPTx?y;L7-VAGCDCX6Y2PqvGx>o_Hg?|)YwNXegrJioS{Fl+YJW4R?RyKDj@Mx>+bF}7?yiX$E&P4#0XOf1XBvTdCH3<^p| zkl(V~dAR2A)t~#u_wLiXn`7_w`rk8HHgDd{gozWS-~Hw{mp%5kzZV62f~2RXarHIV zu;lzDw6(RfVdEBB+uG1Ijc7E6Y-{N87?#sc24GWKMR7Q3Y7g>X_x_2>!_{1T-fWgG zoJmoB7N%w4b-S?b)4w($z%(=#o;4Olk+E%%$^Z~%FD|+e*Adu;loF6Y-?*1Uayy1Z@rbd^X9Q-%bV03JC0!(NRot{vfd>j zu#E(kDyOuBo$^{_o?P)N2anWn$4wV=!=;PxdfWqst!*ctjMJ5qKm@}u0We9b?|C!F zlhAd(^`raQw{M@a^7$7;M@Rcd0+O$N`HSQi6cp^-zT*p(yWX6-bWHBJiUL2b^c+-| z8&iuQ36kE9qJkuWZ6P5e07*(NMF)tsHm(x^6IM+Bl|98qKkq<7!%3VA_|z`qhsFEDa6yw6(Q< z?!bZlUmaWEUpTJNFR7{nr#}tbh$rm}Lj%i1!a@=jQfkSOB!OkyY~Fv2hgNQ+aHz^{ zpBPKY5C^6nLfBDij-FuS`a_iGdP(!BV4GlSSb792(fMn3svup$xL)lNsbl zI7C*ukLxcz2dApiA6@N#k@_h~(g670D#_g9Tit9i=zTl&WP;nNGJWD`;<2d1>-Bxs zw(T>HGo6k^!ada09xHY@ZM87XrFb1OveSjY!c0W5jRe>R0+XZ{lr(51SzrTewjbib z=U->!XcxDAVl)N00wd9fZG_R|y{uikpOzDyOdFApBy0p0!nVNBu(T+a7QswJF|{aJ zUI!xz($C+uYsakG6Z2LuC4nMQUE4&k zH-aQdl$8`o&hT^lEhEXzFfkInSXwW(-ba0HBTqfOlW{|{DaiCE?HlYQSZotp zk6~*OEG>c+kKmCloO(!ZYdlf>=wnatw?`iNaKK{QHrw9ZM&pS_p=la{v@}AYFriRr z&=PQR(h`XTiVVX`3OO~Tll+XTDwGuF3@lrN&jTQ2l>`beuG>klFLDZ)2A``t*oUSY zrvfIWZ4{@A!?mq!*;$DY5?Sd16h)%8w)P_d$^(D;BUfJYrLv(zvxkR4I~D-preBG`J2T#wB7k;AUP|KZ0n8XFrwc(B~_ z!yh4pV8X-+mz+4!aIvOo$dW`b*gFt78!SQy;_)~>kBh>*?6(=J{S(`7mz)yG1tisl z;!eY#kxeih=fIKUsmSiBVgrABb}f4k)}Ramoeju}6V(+UFTa2{w(h4l6vpdu;Zzmc z+uCWUJ@%o4<;dYfR95brSWu8Yx~R}kU&25)tYidMk5S*+!~L)9;ohe5DgS-1I<0 zLqoO@B59K(5~q*}PA&xkEs-E2%}08``;PX;JH=1>fg?LS2wBFX$c!I5l2_MnW9H-v zoDTIAt)j>hiG;?c?UkH0rK0~!0FWFmObbSrm(blCVav`#jI9`ksw#AKbrw_|t(myy z)mL{fKJUY$Ej;(k(^!`6U$Ugso0m5fQxPN#6C)94S8a$@Rh_tUU9^Y7wDp9DB{Y8f z)Em6GWjmk0wVa!-D8Z>DFk|slfG!z#L6+(6>}A5}bdJ@B`1O;|6A4@7r3V-_B#Vlo z3@Qr!lw~>*ij1%|}I@OF7VSuSyn2Llyr|R+rr~^;z&*K>BxZXV;KmNM)I5)6X^_wd3?n>Ov^fD zxsim#=<=a#*tVaV+Gb=~PGzt`kwDl6*=a5&R1D+URhx*!;<%g+j#eEldwt!yKL^s% zCjR7}9}|nb=NQ##iD4M%y5UYwcgk5=Zd8v-dtZW=D_eP?s-1-wmvQw~qsYnhk`eIm z@Jm~G_{EKk9qDCqMH->rFyX!kT09O$0%0Yv^aMsC&e#z?etGvy9{9z4e)qGv{OHc< zEWdmRS|G}AUVf9iAKy%KFg6gk>3=l64jGpsFf<+0G*A0p-c_^w#}~iAcfR$li??jv za(_c(V{Wd)!Tf-q*SdS?3xzpWQ_aDHhloX^2uUVAJ)Od$A~G^Fk!2+r9I~ubI{4i$ zsNZOfM|zPHQB;SMymSW_pL-TR`TgT$X9QTjWHy$S4DeZ&#k2_{x&QAk@yOG!^1Uxy zkE$x@y1}cf-k_nWolrQ+?#gP89&e=b;4!=&H+`W7R=%)uqTB8H+YL9}bYsJbhP@vK zSo$BFtSlESmfd5>Ik?KRgoH#Joj78QLMm_b!#($X9h z4)IY~l1+`118j*><>rqYbT8)iqPw*h6()gcsMf0&xBE zLhku`1&ZVVOG&Z{Z42A7i9|L2{#-3T{q-JZk1pklm!5@RwTMR&$#g+~Qj(Ke=Dn~$ z-VrQzO4aY)wQKnU_uv1=%F4=Iw=8pARu(gTJ|6DqpwBR|ZJW^}hjHn$a~VCNghWE) zmDe`0a@89gI#|i1$y15zHgzXjDK5;# zz#ZGR&817`uwm;qR8y+ z?%}b&|7}8Jg+xczgV{lLLuTQ+W&!Y6JTOM1G4j0`72fUcRewMEGZ zc*zQQSvsePr3+^hHUuHfraP>0tg)THJ^dm(cW-0y%ru;mj;Yy5vWaC|$O6Jqg9rXm z%Woe#%&dxXzJ2{day%08aPL4~DRm_zy-`w}=Q9M$^D9+3f&c2p_jMwJ4j!rsZajSUp53g@T$_?2Z*TUU?Ex$W-1KJrN071!NZd&4I` zRSUHFTDuS1J{NOF>HpeTa&_848AF(&5aCUaY+NndY>W354YqBSgHP14WadP^b;Dw^-GX?y5Bg~h1E5Go zgpCvj-n331EpG!$LQCLK9gcf{`m--Q`S=qod@G^R!f6zwsIfc(`EEOsrH1 zh$JLz0cI-a^HxvFFijSmHIbXHIF~>EbtS)l_yxZG`D<{yoCDsIBuSW-g>D$ALQw8d zxHjPBKGUMQx;n6T&)#1zUb6I;`FS}96Q^(YotE_VC6f1&@+pKQkYz!4cbx971ZgD> zwjZivXLSpewQaO@_t4W9X8h<;%%3xZ1C{%@^R{$64joIk5weAlprcdgSC5?FnN{s9 zn?Hlg7f!)6O*EY(qs~eOH!a&n5&}y=OgGUi+r**RLO%T<_S?X+`ju6vs(SJMefz%O z-qocJ_jtHAI}5KQVcRx6x<*_#m^FPOV@3>P#md(x$Vuby(c@Ir)bhi7AK5g43zual29^p3_?(g%H@5jcytATgDdsvnSpLy20Gr8!ul>V@n4sUwf0R3_o{# zVmU5V9fU$1! zzvcSS+S{Y(x`opz4H%oU1RWhwnp?v>x@HgIxQ@psF=AvoSDshO>#sM`($>LWo_L-y zB^EO)6l^_#Et$yJG&XDe?BQlsZwfPO(pb{`KJIz=WpdLzeCO&}WV-~|7EL`-wj6C| zLZP1_>2AUalNqxYXj8A8U`vrMzIW$c?;R`;KlB$SjGvJ6i=Y4ertRCet6o**(##Bo zI2;(ZjbtP+O&tUbFDpipWfsq!Om|lYJ-s1rxMnH$J@_o!b{*u#%NH|s!bnPo_w`JfHf=q&-3shIBcuSfO;cA_tWDR?AZlOoREVg%k16TNqt=pZJn)Ld4+=gRj+?%s3S zU^(TH`NXX^i^itLUmQAk@S<2e&TPM*v;2N68-$@@n+cpkAP|^_g%IF%JLv4{W%|TX zESfoiD=(Z!XLm2>%$>sLZ@!pi=guZKJA?OIf^kY>aS%|FWMvg0$*1I_Ow*z;H;Zq6 z?iz*_=kvhdU*`E&w+uvod;20JqH!{mr24gNn@m~e(tw8yhl7I$53=^PHJ9s}-fr7= z^?R}a|A_>HiH*%o;hmkGsaQ_xD-)VYAkD$|zBio*9$3UTzcGcy=M1jBH zz_yH3W)w1I2^FY2(Tu5S*p^9pz)O0-hpFodT&ajoi*hgsOJNJ4+#*IVD*#-c?-V?Dt{=-{C)`YUiPD;a%WzI-^>T{n`_ z5@D0si$sHZ1S0N%n zGO(4El_l1#S$pyBUAszc+h)GsPpQj=X@8`9!xj*K(LaG>e@EZgqh5*S|=^he!wV-f^OM#1w(i}E+&s3G4Nh} zQwL7dBwdk`j(m#TDg%qXE(#qgN2-ppZq1sjv{?L`9*5#^Drd%I@cM=@Yxcsbs;WNI zFf1&aBp@un7MP|$*TFE7xj)MsDD@`82Qx-m^!6D%w-J8!IMlVfnK`4FFMMGJw|;U8 z!^<<#G=s_mt;`%zKu=$oKfHPXUvWB%7mp^`9%6F77sIsK*VMJQb&b5SWfztW zlg15a!kFR7qV`m_H_6UAa~1wJun6ev?&I+lYX}89F%pr1hCiy3EUe#u_&7iN{o}l} zb{q3&PGDr&5De48FinouHjyPs_$BG2mcqsaN*pS4JT5HLWc&7QLpQwfMkkQ18}DDU z00e^x`ueQfD zymb=a_~vZRnpKR;sbE<)J>7AFZBhI#nTKAhB&{T!Wy{AC3McR<66l7-KlZfoMq7g6 z6-Dy!^3u9cD02HXS6ot;laq5=_o37tKhD>_@>M2GnBd#6e!bhWZD#m<6geH3R+4d* zoTQ|xcMHKZx0CIW7*9RFh8g3_C@#oM@nw_XkYyPuwH%yjx#%f?69P#{^o66mv1uoB zr;cXqs8S5Wq%RcV;L&Q1!M z+TKlinvYA)pTn|qXE9<}5%E+;+T(Fy7$$A4ot*D=A*JqRuq3sM!X&qoRY8sCpIZ@` zGIiSVnP<&(+qNBhzo7sAop*EpAO2v*Y>-ytuvNgeCcW5hcb8md`_G=v1I?geG}uF#*EAiN}Wzj z%K%Fspg_V&?UEr&TpIAutQ)M^w3}dWnC0iqqGU)O#~WIB_{r5EDV#lj7D7m=X*f-Q z0Kz_5N@W-p-N6u9839}_2exgKlas88nKg9`V@H)TaZDLS`Psx` z8r%0A;ki|ts5{Zd5592=uWs0d6i-l+;Xl~}Mx1(YiV&RTayIV z?s-ez(;X=L_Ut7dkDuFkqA|lM%S`onaYzDP(-A3}-zm48Qs2{D4sJ;I@mOz|H}_Ss z_waGNE(g(A0=L`6_rCUNh7{(bM}wyilvMetP#nmzif!qD#%mjQQF)}6iDQOSG9-`e z%m8CXmM~^iDMFG^WeJzlf!pbzrmmTd+YYd8_Yt=3Jwh}V=gzO(L~dppTX!9#Kvl?B zq<2nfiX;oR+@VsUDpW?u(W!YwhdpJtL@`Xl-N0%(=9;_dK+3|K7{SjOiOa zVnjNI_4Z}Rwn0&3uD+@QpVxtnz%)}{l4WCAV!)=cZD?%jqoN|0^OlSn0E%sc)2UK6 zJex$^;@GiZOw-fv$<8VN-Kv)!Gw=Mt-S7DxlylBqTzdC^-Z`eVt(`ollhJN>($zKf zfo0$wCsha*`&{HIGB1Uq98Ktiqj5A%=fd;P=E5cOvCS0K@g4rYA9!z{FpwP{WJM+1 z+l8LcIDg@Ej@P&F-w!^EZW#EyZoD2BZkH1|6~Zsf%i^kK3%K_WPtwrbj;6Y;+K-1&|A;n&!Py(662f>4oBkzgS}_%-LvQBsne$2W81cI zCia)d>*dEk{c7F!zw_-!-+c4f-MP7L)#r1(EtF%YG>6~s#5DT>!XUt$d>MvCex9F_ zl1%)5XVRk@1SZq4sXE%GtzCQghh@VrxYyx~=s*1Ndj|@D(%js9Rwx`=7>&m$&CDc6 zRj@1_`yI5(z@QEQKrqSWpxmKwLN{0uim^%48K`VRAS5|y?hgzE1EnB?kM++%@_h?o z>Fhmlgy&z~!Z+@?ns0ypTIS6h&ubfYvG33^+Piv5Xd0%OnbW>jC060X-i#iD!+lIV6 ze-b$6$z!&i>{k;E%6eC)`t$Xh5B{R3C#wJD(f7|iR$h7OWsV#=j3NXhT`rtLq*`|U zlfmo3C>n2-6636Qr356o0`F&WD0-P*al_iO~#&)8yI29vGl3MI7 zc7tVT=%%2ed?;%-?&dE~tm5_?m$78QH0IBoKx;=g^^I*bw{_7I3=xUN@w#1%8(G4) zKX(lo>3+&fi%9c(5JIr0vWC~++|O{AgAoqLyIN2-FjQ5@Q4|_`dZ@3fD*=jXj~_oH zumIfq%U|Jj1i}$5@!dphcz%Aq|Eh80a!!_1rGBwe6K?l|!xkr(A(NDQeNu~(^wr<|6w6?b5RuoEIPK0d@P#WJ=Qj|*D zw$Tw3D>8mXrlF~o+7r!89zPl(DW|gTQ{K(fFK^^i*ZIlM$vg!x0G5&D_4<7tZohFE z-@o@^?)ufETzm0CMhq)rXi+ZZrG+Oa*Gd}1wrw+dL`_~fD`Z#AnMYyuE{oWT|I65jl z-8HeGz<(-8?9_eP3;}%j zeCE^7zyA8`=~;@*MHv}*v9S&9J-NF54Rkz0a44Zu7mhM)XdzQ4RwUP7BQa124>ke6 zm+gD2*tP#CXHBg*nPeQ45KM+XY#F^sovYsY5!1&NaFs7{``Slv(nnqQku|pvVC6CBpKU` zzxQuR*)RcFVu9Dqp=g|qTX%EW^2KBXdC0Lr9L53`0oMwTkfIAn>owl+C4Gjrj(_3Jx;>N9O;cJqzb1B|JvI&eu= zk@Iu0h$j8|*W2vjWtrWhM`wGBi_=^M1wQf%0(ji&$$XN{Ne~U>m_XAkT3f^H-P_EG zhWNTM<7fR%ar*z>8*0-Y`P*+l5TF1k4Gj%gmPNLz;*!A9PoMgDir6-m5X|;C+3t05 z;K(r!9IR&H+-aDqGr6>+Cd#xd%7zy3i7U?IPk(!nAqCl-ebz*D<7CUQ!D3k!XH6Z$ zFN<>7U0K8Nh8BXoVJzFi>v5BlnMT>r0>+FiB|9^a4B!EOdu9y>s~aeFs*HB1?}5~r zoQP~i!YNB65(x)z74YZ>G3fjE?!~g~(W=|{%CONxvO1gNMoIp-##?W@J=3%-`QU+F z-T!!Uh2(ML_xo+VxH!$3mE{o`nOAD=d2)Ocy-ODntAtX|dT@N|yM z&&=+rudQhgq`4)qZLc@eXDiCEmgctRWy>y4j2@e_{!mrr8@u-%m>!Kr&-x%iB7~5H z5ZjcV?rtO@5s+o16jS`Yf~DUc5vdGr#7edp-MDo(d-fk@*0hOOhAY_%ZBT)j5P};n zJ%^rPh#&p-F}{BLRm`0+ZXhAq50-vSV_J4HvOHJ}6N8iW!IFSi-q^wKA9;aTJb^3= zB9_HpgJA&XdtJ$F^}kw7a61aq*&oF3fZ8LHg=Uvv@8@x-`&n&ShBngk#%N?Kl zLjMth!64n;-N>@cj{Q63l`CFg{@evw=bn3R)+_5)k)4yReYWDO5zDru?%p2z@6SA; zOc^stOd3D2bo8jv7@9sRu17z;|HytOkDG#-igERGl+WO5u`FvtJQmxf^!4>2r`+FU z7ew9@onU~71aulEuSeso3dgX7AlMt?(I-|iW@H%wuLsM}u=Mx<2yENN;ZV5arse2{ z!Ck+6luurBKFiLVjnCu4cpGR=UffCV3Y27VFHNnTJh^fM&%C^mP&h)Mumn$D2|d+& z>57DSuqQ;HWpSR*jruP%On-1rMc|SoOiib|t5fo)2b#BR-LfOt6U_Fw-NXL%z`TRo zlq%G3Yiq;pcH<8O0GntuMsrgW+1c521-saLWFL2Y>JH}5pN|j%zu(WZ&p%hxp4m}U zRaZ?@XA2iESo zAqa)TM|DkmK?reNNoX395U4^7RPmnyWhlnpXq>ohFVj_+RK+xTAYW&N+j8L_Nf$vrDxB;GA*8Yc_X_IR5N?p7|xkHg|VYb zNe_5Y6$Kj`T{r0sMW}6PVe76#Y}t8`BM6(3$Q!^?>0%2E|pc~e1Z6auImmVMBzZk zs&~*>k|Yrdg;>9S9cRs+!H7{wLY83~WMrgqhjAtf9d%Y<`sZ#qgy7;&CP7tx|RL=_Az<#WCDQz&p!7I;c%F&tSpu;y98O4 zkdab#LW4VAo+^@%5t4|giqh?Lx(=C^b$f1M{t19r*RDZ1nV5L@4oicVoJQT?)o_gU z(KtcF!0GmpGjt?rr4=~SvJjGlGb0B}PY`aZ<;mw(^ZLdeOc*nQaidBo&d(q_BaO6x zm#$!lzx-nrhmV~Az%VVM;V3I#+sdo!cTrT3O;LU}8EL*$i;WPCEuA#CbrFkeI2{TC zfh0?qwv9`G-PcWLZx;wb)|eUi3WpNjhUie zs;Y|59{^xT(GU`e#9<*sO)M6B(6;TNz}GZQ6Si%a2_fcLsknQxBWDsQYhHbo5hF%0 zb^3HH(< zD9SeA5wF*4N|F>E{17P)hl7}=Ve~uh@1jj&w$0{9oEJk;>NOonmdPACl8o|+xU=#> zl9E06EeqAtS1T@$kBqz$*6*k$66x=*ZPC{krlYf)VQv=!L7T286Mc$| zVOi8Rw9wj~H2z}o1d1Y)l@Vah^l=O+$Y#gBDyoh*k|rz6^81+P^%1iz9_#3&v*9R8 zdM^IFA$SW)DNr1A9N0pvvzhI&1YSw-sf@ro2J0*v^wcqzE7_`}Uz|=SfS!6C1a67N zVgSQT)10sCx@{VU8l zdRiK!nkfx}ziC4R`Z+?9EQHu=+4i3lMUfR*-Vf~dcs&19Stx$LpKwP9QPTwE0jgnA z*D#P+6OgR0>5Z^GmO!&CJZV`;HD5deNm1#~di7i2Mm$U+9>Y~M97ER#_4QFYtc06y zy_rBDKr9xgrly*^?z)@lem{2<7lZ7G-BR!m)Uqh!FUF9?n}Zm9ZmBDag$r zKR1g=T;rj~U#6k4ohd#qmuF^D;dUcqBil9&F%M7ohKcpGVF~c2W#i5%q~NS2wC#F> za7!HoOyF`sE$)K{QUXzNo^=fUtb^Fw{2tlw(WC>?-3q2lZn$Jg;ETdZ{BOD4N zooSpC@N+m8XH9P(ySsaN`sGbj9;u_KFbCD4a-_O}#+nmcmYv1Y^fUsJgrUbUQttH# zMc}lpr2dfc?#{eQi-!cemra-~WD6i@YUt5R1hqE-t39s1S$4c}l0wegH-y5jJhu zNcGX9Z=yJV~6^{!QY{~6@-?=R% zKR=(!!-wfHj8n6*DGPsVEWuNK5$g41Nr%fDAam4I(n>3kRCQqKGEJRCq>p&07ek8= za(R>5bV!kR!`@gg`U&WbDMUi1c(}Xc`Vx zMaT*gP^%f7&<#d9)qydPfIiD2YFfB`ZVC$v|K&hF^VHL9+VG}mYddj$FxdO0q9H~5 z`g(hh$K#3bUVGhja%pMlskTDur`zqObl9*{j**)5L?Xe#%1YL*SrZ59N=r(AvHX&Y z*Y@=E)TTcB5%jI^x4*xu3@SorRKA--~XRcfG z+H1c%SXmj!%gdWIyu94H_PXno1!tfAHZZ(Z2507N+oqh)ur zCVC=9Jlu;G4P*9~N{D`cVvyzYmM3YTw#V&5DISS4J%>cyA*=yQ;pE@Yuc|GRYTaO0 zBtoZd(5q`;sJMhc5`yVo5A)m(3{xL)3vED2xxPs9z_I@C*P|gUL&u$6fWtJ|eBvkz zeI80w1tW#=7Q;ffEYi}_qN`V}`s+WQc;anO=ic4BnK*f}`16AgUbFIrmA^jG&=43m zemwj4?UROdNPeM_Yf9h$zb=m3a>}1VrYuLAMZ?vdr$eW86E&T1wS+icZOf&p( zZ>l97*uVc90l$x+VbW%prx>?sl7vSj`Ks>hd>p<2*fv@$N^k24VtqYHp!64%4eBTN z&t!02GJxy}U^`qyOmmRydNOKj+u*THW;g_&%M7sC?_ql=%u_wR{H?2(u&xs|4Psgx zOaqx@MAso8Zdt?-$PU+AX9zPI0^7#n&%|F)N+*JsLs9gUL7%W~8uTQ!v~2ir7M-)0 zS+h>vD|-DKZ!l@f6dwEg->-Xh_3Ha}@7k3$YV>G+`QN|dmQQ|?J-c`FUw7Y4G5sTeaR zSW{ii!R~Gvbc2a52c-6;$W|l@6`9VMPN=a4|B!MdM{<*-{{AqwILZEhFKvVdj67M! zc6n*iVptw$|6C6GswAmLvP^=eMw^zP!LoVQmKigBCet;IXDbh|DQHsUbdW6x0s;bx z%yHc$q&RT7Jf}o1ZPUPvg%Prh;_>0i%*EmHu_Y2>s@usdx05c*qDeDws0yPhMjP`N z%(v@m>rRe0ApL+6lJ9g|$R~-(HR#j11S;?2a{3T>b;xB*xGuZI`JO7iS zAw%9)&~F$92M!$Im6u+&g&Y|a`?&FODp<~5cy{-W?b|x{A3T^{ ztr-qw!C-- zht5+8N?E`O-Q>ZpAnh5MeEZg089KC>p(P~%tX};pD_?q<*X!$1-99pM3ov34dV-DE z4%eV1FjYLCh+@X0$f^_7EwYw{RzV~ zxbv>NC>}cWlqF~7%9ZTczP)MU#EI)iS5*9L{(=QHfcbGRIqxL$@9(?sSjEUuW$m4v z({$5hy4#6wkddnh!H&2_Ow&+YZoGNL$u&O_#n2K1ndZ~cDsN@=pCmg;1iRa*P$lx^ zWW$*xNRsMncPzpE-Mv(qHeQ#DWfw1F?AWn*{eD_nTA4U;B6DV)#ooR9D4V;48JAtp z&`C4#W@gh>SB(}8qXseuTD)t)4)mUORDT9(!^WUET{r`oXx(iz_w`^4iB7|0Pc%+N zMFq>2FMsUFk;A*jj~|b1+pK)yc|xJk)lWV71cAt&&HEoh-I2IRUhW? zp+iiXJednGyZ~8|dG_gNIC}Ib6DCe1Gc%Khh6eun=%a+gk)y+hmtXg(&wToKC8ecp zLI~~dyWb!C{zC`Lif5mre8h;Q`}Xdg(GdzU!l_cKDkN*R1%6rLNJ6JkHxQJ2D{_*5*SHJQ~rnhhyd6VWNyWGhblVN~u(Ogr-f&Kd#J$4M|FI`GjRu<2% zSiz3%+v)7=E=RJLd?-k~r!Bcno$5>tzWwf6CAF+2cYS}$#{~#k!QszjcU)&% zEWx@+oZol%ad%rcs}&DpFTaIZSKQ3VIg1%H?_757+Qr(}){>Kx!?(WuZDyWzRx&Ax zKvo?C%UCSbOIKq(&YU3#MF9bp7RLzpA*l}3v~09!h-hyYwq@eUA4+EVL=v{3&$RIS zd@MNo?3Q2u>c5*tjUJ85H5B6`Q7jF;tMNTxM&f#-gX-oU35{??Vr8l@vhEJUR}H9 zgi~NJTe?VzziLrR`;^x-YmaCe(d!!6SVXVu6Jz(ex>U4uzT}KfTzQQsjMJ17n zRfu<6f+Ptu8bWJtB)xPL76L1^Phx)~UtOGKSd(wq|4|fB8kFu<=?(`S_jn@TRQDXh+)pnEZ!D>L`4L+>j6Sy?2w_H)J zOx-HEcblErgR0Y~AsIfbyz9XL8i~CpN3Y|X*H>8LTW~q^mwT2h3C_Ij22yD(vIss+ zHbRyS5q*04zo)TJJ18e`J~?Ko`& zYr&lQU-_&feWs)heHVu3D&IZUCnP8H4(sf~n^E?+C0HQt*Of{G^5IjBqq1x=-s+Th z>EGIW?+k`QbpusXi~b(GcCJt{oXNjXuBB#gbu1gkM^w0$vN!3Y_k|8+4reUHHH%8P z@$z7)3ckm(9AK(U4$kiw2}|LrWfA|8`}do)sw85ase=eH#c|neyaF$75M1^-6-ZcXSBDb62-<_Is1%i$=f)2 z@PUw0Y?5hT%f#P>eMVYG z#{s^FE__g#TeR|#`>3!7M z`y)SoSVXp`9GF*~=lgo^{4Pq(hVHUp{!X5caM&T;1C;>LvQIT{mwar}MFLJvQa*mX zfEuT~GXG6No31Uz?-FN`Qov_NCaPNov9moRXyil81BR|v&+{UWuq}`If5*Ekw-@^dx-B2S4b@kfWIn zcCpQoNJ&ex1n#RqQp%mD?Y>oe*06b%SoQ6b&`|3u9%yv%Q9%UK#np8XT~>L=?KdQb z`{wrzFuY13lg|NvEk=*849Yam@Y}MXoKxP3{7seNmNw0+hj)rk=&aXyVPMT&3XdXt zK{ZgiMfPke1;;)A(P!RlARZu3UD!MEJiE#@y+_ei$##C89tmx1 z$#Hr`e2}!CQ>1ZR5*7Gf(FCo@r7L&y7)WpjPIy}UR-3`#B1%=J1VT;N*EA_pN8npZ_Lo~A4CC-%hXenH4>dTUD& zzx!{cNG4U;r&G!KA^D|Z?LJ)2&wtQ~V)B_?T#HYBgk;j~h)(`_zv0Eaz47|79{GOtR$S~)oCOi04Xm(VR1Bce`|LU)uU)!yw0tzEIe zB36HQ#-xJ8x?4{PXv*6j&n>t>WA6k(>$cOy8U2stoJwN+-H|ROXxi|NZy9pe6eKv? z8mKE;KD5Uxo=#gTW4xJ@gbGC$!n`3XRti)4FG$1c0Hn7dC;Ax`GJzW!eh0-|P>IDdwaZam)Y z&~Og0-K`rq=_)t72L#K&xB4^lCWsemQ#D;R zNtPEk!<^Y@xK&e5s9B`_XYY$ZG7OS2%!mZ~HTaDF0EAaqFr;4efgxnEo%p~-W z<>q(1S_nQB+*+UOWB>x@^%1eZrc~`WQjFx46vkT{_pYZ(bQ~|{?$EP{lL46lqhv!1 zuBIHx$;la7<43UAsSRe_gJs;;(Pg{}VtS{NTFn zKysY4e)zle=14djdGb9lQ;fjkW7BMO3^2KF%qEAVN#Jxx733kpj7E8z(+_r^$*vW9 zdf_A=2I{Ihhsig$v`|H8iYp_pygJ`YW0&(2uMvOhyF?|`aliyENoJRGc&r$tOt#o( zlviL&0~C`zaR>Ru%hvece@p%n9>~zzO8E9zY+?rnmTGWPbBf6AY)i;!dDHqzmd19# z<-czWN3Y*&3;rH+9=)vc7#67g{CU}tlAe1H^oP>{jSJJFIxuI$%Rj*l<@I>?>nn7% z^;o#b6xxKBzkv(8+FNXTBJVFb7NI^SL)_gZ0|HK9tFYvp9Eh$1i?j2U)|XPyH0rd` zfG6JOK$##-MOzq|4quxg%)ge{;NYm$AsbI~(Bfh|oZsaZ`&r<(yb-}nFQ z7xMl$I_WiHGtxs+hK8*1V>+5XsO+zJj*puG5FB|1PV7KGY&wn|D9^at8aNdaK|@k2 z+zr%x(0<=v#2%hEPinb8?;>cGn0k-heImH6_FD=zJex@-f}9n`&~bJ?Nsw z{`w`NCK?6wtwUA1)wYLjlDi-NB|^IMkRw7hwKbD%L^9{@zD4Yv9t@2w_Xq9fX&Fdt zb~YEwCx6M%-~;1$E_F?Drq4AsOwUtK`X@Si*J5sR(dl_H@0mo07l@g}m3;G=?xvUr2dB&B(L@Jk=lGluN_BK# z&DNV>X<>Pulqh|8Ewz&W2@l1)KQNrMvbs?t%%1+!R6)U|H_Gm0A^B3 zVP?=ip^vbXv~(EY*_4fq!`Rzou+-pUY3nd`*3ZG;fci5!bHhb5p8>!?@JmT0IDQI= z>?2*WseekSneWa}3Z4DNWcuQTp{@f3oM4r{E0(ljYaPZ-lTvI4&b!63hcyaz!GAQf z3V0eE+&#R@3=LhykRV>m)-e0+kJTjO$$Ud$s?tyika z`i=%^YH*8pW`9uw7+Df2BXlCznj=5ElJ_ow8L3b=3k@!En8azUx>=aua6)<+U+!N5 z@dS2#v=h1_-~>jbR{< z%^rSvos_&>NAx~BRqDVN({fe_8>DgpJ)Uc$(n;0H(x7QO=34 zj`%DD6Agt7E#OiAF<|&aCZasi1cg0XkB%3yt?(@>`RutoZiZ;_n9@;d#hli6KcAZ7 zB?g6*?&WS!kBp4&HqN~Mvt8tGw|2g%+0gm(&41SJ?OeX#d|J3zQxW(i0nYQ3I6LS zI^urCCc!otFL=jZ3d(D4g{GzM^0>D}LXgeMU~f{m4Np^v{GL#!@YR{QMB z0+e*KVrlT^-)FEgI086*Jcdop|wb%MLE1apQVswrVA>^-$Ve_#^;7)YuN zB$=63^u2DEQ#1gG@LU_>-`m@N|J_zw&^YkybVz|a4X1PR-b*)uCjz%@yT2mArSc@A zkAR`RNnHU5pS$vs&-kQNi;R$qE?P_^{#p`y?2DzuW+dcrR(ut+(Wp}==%H9 zZ%!brM~eXo(hU>S&#kT5jDmU$RL91q5l-^`y|kPG$5QlyZ@hnjh@K677g;ee!z0m= zy1A!2cmpKK|S0!eaV;bDw)>b5l(m=cV)N!bX7mgR<>SLu_jSn;5+QDO?{8&abZCP2rd$E`y3%@8}r+3v9!tge5+>YJ&xLp@gda2VVlF zd4TaGFr}jM)ybj&in_guLZfkKZ#(Pa;%KtzC?zT+OnC0=2U~IXxx_Des5UO3zgV#3 z)~>k%DlrLwu!Q?oMmlTgIB8rZ*rABmQVR+M+AlsJw)f92r0nhOO#y4V&4Hhd_UYqh zyvNF|e2N-|n51$f)OU=BfuFw&3YC{yT-W#|KLILjElFv5Z3)et|^j#{4`v5n= znvFs$HYN_J)=qv^G|c#kD=GQA3ZR^#wFPG(oQm;Mi(jTt8$2*jbouoA3l8W@%38(LNoEn*x*N$P;}jaPu;d( z-S&}5))8#0B(EwlfO>^D*Yo#4iIThdE97DQgotZ?YwjcfmyX5;{w21XD)}pwDzk4jorkg=c4*{_2nz6otA{|B5ZOs9NE_c zPChc@tq5^D%2xSg)!^_mqQ!qlvaF&)7${)r5Bb!x^(ETBnh6{is^b1-lHEtmpsRc=U=|VJ~BqzStEu_?o z>bQv+z26aL6-bs+2P02nU`K)$WI zqFsx*%FE^7wzWa|!=Fyb>)F{A)^6zEt~RIXm?O;^P0n!{Lwk`Xrrc{|VmR6E{zw}O z7RsX?Qez)+?veUGKTS<4>d97rqI)kSy~=qm7ZmR#WcxB`>T@9wXY|@Ir{lXs(r&^l z6~C?YHQFO4s%x{gGqOWo3a0OhidBt?J7P~>yokfC7abk%b{%0bD2bmxO|M6gkatO! zCH+yqkuD=CcgTV-NTkD^P~u7jP$xnFjNmhK^W*i?(?C*nrc30lj?k;M*>~?h<-Qwf zV_kG~uYaJwXO(DU@%y;9x7hx{xSnDGsn=`z`6|6;W#h&p_p>p$;U|@MK#-YjL(Zjb z{xNcW{A4)~jV|D%*wq$jviUe+5E!UhAt6yF(v4T|$DcQROsM-Z1DpXdaq+GGfq@r< zqt}&_9SDtT^Q{zzt{okiFgVXkHOIU-8a}0LLYe9;a3dPAEFLAm`!p1II_C+6}v zd$SkV^XvPEpGaG?#cjwV7LBtpxz@Tp9l+0y{fR5g%X`y$9#m5!3pOz5Tiv&@V@}Y$ z5!DT7A4f)Kw2(+O35kljhK5l*KI_lAK~g4Jtp?&CbgvWJS5Wv4n0sC}bmTkzNTl}P znLb>ov}#$~-Vor4E#wUJ5(HDgv5HO$a9o!m{M#6!7RcjbVq-JZ5VJ=BPin?z=^qNs z>E0X`>W{h5liM>W|b$p&ETP Date: Tue, 21 Nov 2023 10:32:51 +0100 Subject: [PATCH 19/37] docs/Makefile.am: list IMAGE_LOGO_FILES andi IMAGE_LOGO_FILES_JENKINS_NUT for EXTRA_DIST Signed-off-by: Jim Klimov --- docs/Makefile.am | 35 +++++++++++++++++++++++++++++++++- docs/images/ci/jenkins-nut.txt | 4 ++++ 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/docs/Makefile.am b/docs/Makefile.am index 9e7b8eba50..a94b012006 100644 --- a/docs/Makefile.am +++ b/docs/Makefile.am @@ -18,6 +18,39 @@ IMAGE_FILES = images/asciidoc.png \ images/bizarre.png \ images/old-cgi.png +# Logos which pop up in README.adoc acknowledgements and maybe other places: +IMAGE_LOGO_FILES = \ + images/ci/AppVeyor_logo-2x.png \ + images/ci/AppVeyor_logo-ar21.png \ + images/ci/CircleCI_vertical_black_logo.png \ + images/ci/DO_Powered_by_Badge_blue.png \ + images/ci/DO_Powered_by_Badge_blue_140pxW.png \ + images/ci/fosshost.org_Host_Dark_56px.png \ + images/ci/fosshost.org_Host_Light_309px.png \ + images/ci/fosshost.org_Host_Light_38px.png \ + images/ci/gandi-ar21.png \ + images/ci/gandi-ar21.svg \ + images/ci/GitHub-Mark-140pxW.png \ + images/ci/GitHub-Mark-ea2971cee799.png \ + images/ci/OC_logotype.png \ + images/ci/OC_logo-watercolor-256.png + +IMAGE_LOGO_FILES_JENKINS_NUT = \ + images/ci/jenkins-nut-large-256px.png \ + images/ci/jenkins-nut-large-squared.png \ + images/ci/jenkins-nut-large.pdn \ + images/ci/jenkins-nut-large.png \ + images/ci/jenkins-nut-small-256px.png \ + images/ci/jenkins-nut-small.pdn \ + images/ci/jenkins-nut-small.png \ + images/ci/jenkins-nut-squared.png \ + images/ci/jenkins-nut-transparent-bg-140pxW.png \ + images/ci/jenkins-nut-transparent-bg-40px.png \ + images/ci/jenkins-nut-transparent-bg.png \ + images/ci/jenkins-nut.css \ + images/ci/jenkins-nut.png \ + images/ci/jenkins-nut.txt + # Only track here the local deps SHARED_DEPS = nut-names.txt daisychain.txt asciidoc.conf asciidoc.txt @@ -51,7 +84,7 @@ ALL_TXT_SRC = nut-names.txt daisychain.txt \ ASPELL_FILTER_PATH = @ASPELL_FILTER_PATH@ NUT_SPELL_DICT = nut.dict EXTRA_DIST += $(ALL_TXT_SRC) $(SHARED_DEPS) $(IMAGE_FILES) \ - $(CABLES_IMAGES) $(NUT_SPELL_DICT) \ + $(IMAGE_LOGO_FILES) $(IMAGE_LOGO_FILES_JENKINS_NUT) $(CABLES_IMAGES) $(NUT_SPELL_DICT) \ docinfo.xml common.xsl xhtml.xsl chunked.xsl asciidoc.txt asciidoc-vars.conf ASCIIDOC_HTML_SINGLE = user-manual.html \ diff --git a/docs/images/ci/jenkins-nut.txt b/docs/images/ci/jenkins-nut.txt index d7356823e7..f6fc75dcc1 100644 --- a/docs/images/ci/jenkins-nut.txt +++ b/docs/images/ci/jenkins-nut.txt @@ -20,3 +20,7 @@ The fosshost.org_Host_Dark_56px.png was downscaled from resources at https://fosshost.org/media/ to fit into the Jenkins dashboard banner and remain readable. Thanks to Fosshost for providing the machines involved in the new NUT CI farm! + +Logos of CI hosting companies and other organizations which help +the NUT project in daily operations were downloaded in 2023 for +the Acknowledgements chapter in the top-level `README.adoc`. From 20961160176e10c390d39be12576117ccf6724d8 Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Tue, 21 Nov 2023 15:14:19 +0100 Subject: [PATCH 20/37] README.adoc: fix GitHub rendering of logos in the README [#2192] Signed-off-by: Jim Klimov --- README.adoc | 3 +++ docs/nut.dict | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/README.adoc b/README.adoc index 1c07648478..3890b649ff 100644 --- a/README.adoc +++ b/README.adoc @@ -128,6 +128,9 @@ endif::env-github[] // // - on GitHub: ifdef::env-github[] +// In our normal builds, Makefile variables convey the needed paths +// (used relatively below as `image:images/ci/...png` etc.) +:imagesdir: docs // * xref -> link // syntax: {xref}{x-s}[] // In order for it to work, can reference at most a section of diff --git a/docs/nut.dict b/docs/nut.dict index 78aa2232a0..33db5ead4c 100644 --- a/docs/nut.dict +++ b/docs/nut.dict @@ -1,4 +1,4 @@ -personal_ws-1.1 en 3417 utf-8 +personal_ws-1.1 en 3418 utf-8 AAC AAS ABI @@ -2212,6 +2212,7 @@ ignoresab ignset illumos im +imagesdir img imv includePath From 48e0bdaaac1dc8641171f897bc15ea039832771e Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Wed, 22 Nov 2023 00:05:25 +0100 Subject: [PATCH 21/37] README.adoc: start with a note about sponsorship and GitHub stars Signed-off-by: Jim Klimov --- README.adoc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.adoc b/README.adoc index 3890b649ff..0e09fdbdd4 100644 --- a/README.adoc +++ b/README.adoc @@ -161,6 +161,13 @@ endif::asciidoc-vars-nut-included[] // //GH_MARKUP_1095_INCLUDE_END// + +NOTE: If you like how the NUT project helps protect your systems from power +outages, please consider sponsoring or at least "starring" it on GitHub at +https://github.com/networkupstools/nut/ -- these stars are among metrics +which potential sponsors consider to help FOSS projects. + + Description ----------- From 2ee5c32bfca8bafcc110ae1e6b7de88291b411dc Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Wed, 22 Nov 2023 08:56:35 +0100 Subject: [PATCH 22/37] .github/pull_request_template.md: remind to Please star NUT on GitHub, this helps with sponsorships [#2192] Signed-off-by: Jim Klimov --- .github/pull_request_template.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 639fa20c8e..3087cbeb6a 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -27,6 +27,8 @@ of "real" changes in the other commits. Similarly for typo fixes in comments or text documents. +- [ ] Please star NUT on GitHub, this helps with sponsorships! ;) + ## Frequent "underwater rocks" for driver addition/update PRs - [ ] Revised existing driver families and added a sub-driver if applicable From 90f896bc3db4a1860515ae7fa51b827e70aca7dc Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Wed, 22 Nov 2023 09:27:08 +0100 Subject: [PATCH 23/37] README.adoc: make "NUT and the ecosystem" a separate chapter (including a "TIP" on GitHub starring) Signed-off-by: Jim Klimov --- README.adoc | 37 +++++++++++++++++++++++++++++++------ docs/nut.dict | 3 ++- 2 files changed, 33 insertions(+), 7 deletions(-) diff --git a/README.adoc b/README.adoc index 0e09fdbdd4..ac3d80704a 100644 --- a/README.adoc +++ b/README.adoc @@ -162,12 +162,6 @@ endif::asciidoc-vars-nut-included[] //GH_MARKUP_1095_INCLUDE_END// -NOTE: If you like how the NUT project helps protect your systems from power -outages, please consider sponsoring or at least "starring" it on GitHub at -https://github.com/networkupstools/nut/ -- these stars are among metrics -which potential sponsors consider to help FOSS projects. - - Description ----------- @@ -197,6 +191,37 @@ also provided to log information regularly, monitor status through your web browser, and more. +NUT and the ecosystem +--------------------- + +NUT comes pre-packaged for many operating systems and embedded in storage, +automation or virtualization appliances, and is also often shipped as the +software companion by several UPS vendors. Of course, it is quite normal +and supported to build your own -- whether for an operating system which +lacks it yet, or for an older distribution which lacks the current NUT +version; whether to take advantage of new features or to troubleshoot a +new UPS deployment with a debugger in hand. + +Given its core position at the heart of your systems' lifecycle, we make +it a point to have current NUT building and running anywhere, especially +where older releases did work before (including "abandonware" like the +servers and OSes from the turn of millennium): if those boxes are still +alive and in need of power protection, they should be able to get it. + +TIP: If you like how the NUT project helps protect your systems from power +outages, please consider sponsoring or at least "starring" it on GitHub at +https://github.com/networkupstools/nut/ - these stars are among metrics +which potential sponsors consider to help FOSS projects. Keeping the lights +shining in such a large non-regression build matrix is a big undertaking! + +As a FOSS project, for over a quarter of a century we welcome contributions +of both core code (drivers and other features), build recipes and other +integration elements to make it work on your favourite system, documentation +revisions to make it more accessible to newcomers, as well as hardware vendor +cooperation with first-hand driver and protocol submissions, and just about +anything else you can think of. + + Installing ---------- diff --git a/docs/nut.dict b/docs/nut.dict index 33db5ead4c..df0463a06c 100644 --- a/docs/nut.dict +++ b/docs/nut.dict @@ -1,4 +1,4 @@ -personal_ws-1.1 en 3418 utf-8 +personal_ws-1.1 en 3419 utf-8 AAC AAS ABI @@ -1520,6 +1520,7 @@ Zaika Zampieri Zawadzki ZeroMQ +abandonware abcd ablerex abuild From 915c922e6ea4de824a529bfc13b756717d5a6059 Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Wed, 22 Nov 2023 09:39:26 +0100 Subject: [PATCH 24/37] README.adoc: fix title markup Signed-off-by: Jim Klimov --- README.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.adoc b/README.adoc index ac3d80704a..1719feaa95 100644 --- a/README.adoc +++ b/README.adoc @@ -1,5 +1,5 @@ Network UPS Tools Overview -=========================== +========================== // NOTE: No blank line here, document-header include processing should kick in! //GH_MARKUP_1095//ifdef::top_srcdir[] //GH_MARKUP_1095//include::{top_srcdir}docs/asciidoc-vars.conf[] From 047fc88db5f3eeb97a3d2cb088a7935f1f5584de Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Wed, 22 Nov 2023 09:39:50 +0100 Subject: [PATCH 25/37] docs/asciidoc-vars.conf: fix "imagesdir" for GitHub rendering Signed-off-by: Jim Klimov --- docs/asciidoc-vars.conf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/asciidoc-vars.conf b/docs/asciidoc-vars.conf index 8d8dc89750..d194923745 100644 --- a/docs/asciidoc-vars.conf +++ b/docs/asciidoc-vars.conf @@ -118,6 +118,9 @@ endif::env-github[] // // - on GitHub: ifdef::env-github[] +// In our normal builds, Makefile variables convey the needed paths +// (used relatively below as `image:images/ci/...png` etc.) +:imagesdir: docs // * xref -> link // syntax: {xref}{x-s}[] // In order for it to work, can reference at most a section of From 771bcedf8b1b083f6cc85a12b43e2cfecd3e796e Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Wed, 22 Nov 2023 10:11:14 +0100 Subject: [PATCH 26/37] docs/images/ci/OC_logo_merged_XxY.png: add merged (and also resized) single image files Signed-off-by: Jim Klimov --- docs/Makefile.am | 4 +++- docs/images/ci/OC_logo_merged_140x26.png | Bin 0 -> 4880 bytes docs/images/ci/OC_logo_merged_171x32.png | Bin 0 -> 5470 bytes 3 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 docs/images/ci/OC_logo_merged_140x26.png create mode 100644 docs/images/ci/OC_logo_merged_171x32.png diff --git a/docs/Makefile.am b/docs/Makefile.am index a94b012006..8d375ac296 100644 --- a/docs/Makefile.am +++ b/docs/Makefile.am @@ -33,7 +33,9 @@ IMAGE_LOGO_FILES = \ images/ci/GitHub-Mark-140pxW.png \ images/ci/GitHub-Mark-ea2971cee799.png \ images/ci/OC_logotype.png \ - images/ci/OC_logo-watercolor-256.png + images/ci/OC_logo-watercolor-256.png \ + images/ci/OC_logo_merged_171x32.png \ + images/ci/OC_logo_merged_140x26.png IMAGE_LOGO_FILES_JENKINS_NUT = \ images/ci/jenkins-nut-large-256px.png \ diff --git a/docs/images/ci/OC_logo_merged_140x26.png b/docs/images/ci/OC_logo_merged_140x26.png new file mode 100644 index 0000000000000000000000000000000000000000..67a6d7bc6109af685b9dbb19fdda6fc949f5df0a GIT binary patch literal 4880 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 Date: Wed, 22 Nov 2023 10:12:49 +0100 Subject: [PATCH 27/37] README.adoc: use alt/url/width/height markup for vendor logo images Signed-off-by: Jim Klimov --- README.adoc | 24 +++++++++++++----------- docs/nut.dict | 3 ++- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/README.adoc b/README.adoc index 1719feaa95..b18f317ae2 100644 --- a/README.adoc +++ b/README.adoc @@ -753,23 +753,24 @@ clocks ticking, day and night: [frame="none",grid="none",cols="2"] |=== -| image:images/ci/GitHub-Mark-140pxW.png[GitHub logo] +| image:images/ci/GitHub-Mark-140pxW.png[alt="GitHub logo",width="140",height="140",link="https://github.com/"] | The link:https://github.com/networkupstools/["NetworkUPSTools" organization on GitHub] arranges a lot of things, including source code hosting for NUT itself and several related projects, team management, projects, issue and pull request discussions, sponsorship, nut-website rendering and hosting, some automated actions, and more... -| image:images/ci/jenkins-nut-transparent-bg-140pxW.png[Jenkins and NUT logo] +| image:images/ci/jenkins-nut-transparent-bg-140pxW.png[alt="Jenkins and NUT logo",width="139",height="104",link="https://www.jenkins.io/"] | The link:https://www.jenkins.io/[Jenkins CI] project and its huge plugin ecosystem provides the technological foundation for the largest island of - the self-hosted NUT CI farm. There is a fair amount of cross-pollination - between the upstream project and development done for the NUT CI farm. + the link:https://ci.networkupstools.org/[self-hosted NUT CI farm]. + There is a fair amount of cross-pollination between the upstream project + and community, and the development done originally for the NUT CI farm. + See more at link:https://stories.jenkins.io/user-story/jenkins-is-the-way-for-networkupstools/[Jenkins is the way to build multi-platform NUT] article. -| image:images/ci/fosshost.org_Host_Light_38px.png[Fosshost logo] +| image:images/ci/fosshost.org_Host_Light_38px.png[alt="Fosshost logo",width="112",height="38"] | Fosshost provided virtual machines where the multi-platform NUT CI farm with a jenkins-dynamatrix setup runs to arrange builds in numerous operating environments and a lot of toolkit versions and implementations. Some workers @@ -780,25 +781,26 @@ clocks ticking, day and night: of operating systems, compilers, script interpreters, tools and third-party dependencies. -| image:images/ci/CircleCI_vertical_black_logo.png[CircleCI logo] +| image:images/ci/CircleCI_vertical_black_logo.png[alt="CircleCI logo",width="130",height="107",link="https://circleci.com/"] | The link:https://app.circleci.com/pipelines/github/networkupstools/nut/[CircleCI NUT pipeline] allows us to test NUT CI builds on MacOS. -| image:images/ci/AppVeyor_logo-ar21.png[AppVeyor logo] +| image:images/ci/AppVeyor_logo-ar21.png[alt="AppVeyor logo",width="120",height="60",link="https://www.appveyor.com/"] | The link:https://ci.appveyor.com/project/nut-travis/nut/[AppVeyor NUT pipeline] allows us to test NUT CI builds on Windows (and publish preview tarballs with binaries). -| image:images/ci/DO_Powered_by_Badge_blue_140pxW.png[DigitalOcean logo] +| image:images/ci/DO_Powered_by_Badge_blue_140pxW.png[alt="DigitalOcean logo",width="140",height="29",link="https://www.digitalocean.com/"] | The link:https://www.digitalocean.com/[DigitalOcean] droplets allow us to host NUT CI farm build agents, and eventually re-house the Jenkins controller too. -| image:images/ci/gandi-ar21.png[Gandi.Net logo] +| image:images/ci/gandi-ar21.png[alt="Gandi.Net logo",width="120",height="60",link="https://www.gandi.net/"] | link:https://www.gandi.net/[Gandi.Net] took up the costs of NUT DNS hosting. -| image:images/ci/OC_logo-watercolor-256.png[Open Collective - logo] image:images/ci/OC_logotype.png[Open Collective logo] +| image:images/ci/OC_logo-watercolor-256.png[alt="Open Collective + logo",width="32",height="32",link="https://opencollective.com/"] image:images/ci/OC_logotype.png[alt="Open + Collective logo",width="137",height="23",link="https://opencollective.com/"] | https://opencollective.com/networkupstools allows us to arrange monetary donations and spending, with public transparency of everything that happens. |=== diff --git a/docs/nut.dict b/docs/nut.dict index df0463a06c..1389ae0c51 100644 --- a/docs/nut.dict +++ b/docs/nut.dict @@ -1,4 +1,4 @@ -personal_ws-1.1 en 3419 utf-8 +personal_ws-1.1 en 3420 utf-8 AAC AAS ABI @@ -2089,6 +2089,7 @@ fuji fullload func gamatronic +gandi gcc gcpp gd From 3b7a6e677932295fcd5379d7079df3297d56d6b8 Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Wed, 22 Nov 2023 10:18:16 +0100 Subject: [PATCH 28/37] README.adoc: use single PNG for OpenCollective vendor logo Signed-off-by: Jim Klimov --- README.adoc | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.adoc b/README.adoc index b18f317ae2..f2f8be194a 100644 --- a/README.adoc +++ b/README.adoc @@ -798,9 +798,7 @@ clocks ticking, day and night: | image:images/ci/gandi-ar21.png[alt="Gandi.Net logo",width="120",height="60",link="https://www.gandi.net/"] | link:https://www.gandi.net/[Gandi.Net] took up the costs of NUT DNS hosting. -| image:images/ci/OC_logo-watercolor-256.png[alt="Open Collective - logo",width="32",height="32",link="https://opencollective.com/"] image:images/ci/OC_logotype.png[alt="Open - Collective logo",width="137",height="23",link="https://opencollective.com/"] +| image:images/ci/OC_logo_merged_140x26.png[alt="Open Collective logo",width="140",height="26",link="https://opencollective.com/"] | https://opencollective.com/networkupstools allows us to arrange monetary donations and spending, with public transparency of everything that happens. |=== From 3baf16cdc7e7a74a21ef9aed01cf3ddc77a669e7 Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Wed, 22 Nov 2023 10:28:59 +0100 Subject: [PATCH 29/37] README.adoc: refer from "NUT and Ecosystem" to "Acknowledgements for NUT CI and Ops" table with vendor logos [#2192] Signed-off-by: Jim Klimov --- README.adoc | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/README.adoc b/README.adoc index f2f8be194a..d0c56c85dc 100644 --- a/README.adoc +++ b/README.adoc @@ -208,12 +208,18 @@ where older releases did work before (including "abandonware" like the servers and OSes from the turn of millennium): if those boxes are still alive and in need of power protection, they should be able to get it. -TIP: If you like how the NUT project helps protect your systems from power +[TIP] +===== +If you like how the NUT project helps protect your systems from power outages, please consider sponsoring or at least "starring" it on GitHub at https://github.com/networkupstools/nut/ - these stars are among metrics which potential sponsors consider to help FOSS projects. Keeping the lights shining in such a large non-regression build matrix is a big undertaking! +See <> for an overview of the shared effort. +===== + As a FOSS project, for over a quarter of a century we welcome contributions of both core code (drivers and other features), build recipes and other integration elements to make it work on your favourite system, documentation @@ -745,6 +751,8 @@ Acknowledgements / Contributions The many people who have participated in creating and improving NUT are listed in the user manual {xref}Acknowledgements{x-s}[acknowledgements appendix]. +[[acknowledgements-ci-ops]] + We would like to highlight some organizations which provide continuous support to the NUT project (and many other FOSS projects) on technological and organizational sides, such as helping keep the donations transparent, From 50a3bda7a85efbd18dbb1e1ec82ca4ca1008239b Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Wed, 22 Nov 2023 10:38:03 +0100 Subject: [PATCH 30/37] README.adoc: try to fix vendor acknowledgements table width Signed-off-by: Jim Klimov --- README.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.adoc b/README.adoc index d0c56c85dc..73a4f0133f 100644 --- a/README.adoc +++ b/README.adoc @@ -759,7 +759,7 @@ and organizational sides, such as helping keep the donations transparent, NUT CI farm afloat, and public resources visible. Thanks for keeping the clocks ticking, day and night: -[frame="none",grid="none",cols="2"] +[frame="none",grid="none",cols="1,2"] |=== | image:images/ci/GitHub-Mark-140pxW.png[alt="GitHub logo",width="140",height="140",link="https://github.com/"] | The link:https://github.com/networkupstools/["NetworkUPSTools" organization From 501eb4dcae35e9f4bbfd217caf955015e2bc0d20 Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Wed, 22 Nov 2023 11:11:46 +0100 Subject: [PATCH 31/37] README.adoc: align columns in vendor logo table; leave a FIXME comment for PDF renditions Signed-off-by: Jim Klimov --- README.adoc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.adoc b/README.adoc index 73a4f0133f..d7a85e33b6 100644 --- a/README.adoc +++ b/README.adoc @@ -759,7 +759,11 @@ and organizational sides, such as helping keep the donations transparent, NUT CI farm afloat, and public resources visible. Thanks for keeping the clocks ticking, day and night: -[frame="none",grid="none",cols="1,2"] +//////////// +FIXME: Use different (better-resolution) images for PDF rendering? +//////////// + +[frame="none",grid="none",cols="^1,<2"] |=== | image:images/ci/GitHub-Mark-140pxW.png[alt="GitHub logo",width="140",height="140",link="https://github.com/"] | The link:https://github.com/networkupstools/["NetworkUPSTools" organization From 54ce888d488b57997208151e720a3efac0788de8 Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Wed, 22 Nov 2023 11:32:28 +0100 Subject: [PATCH 32/37] README.adoc: no need for a plus in table for multi-paragraph cells Signed-off-by: Jim Klimov --- README.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index d7a85e33b6..5d0fd7da7a 100644 --- a/README.adoc +++ b/README.adoc @@ -778,7 +778,7 @@ FIXME: Use different (better-resolution) images for PDF rendering? the link:https://ci.networkupstools.org/[self-hosted NUT CI farm]. There is a fair amount of cross-pollination between the upstream project and community, and the development done originally for the NUT CI farm. -+ + See more at link:https://stories.jenkins.io/user-story/jenkins-is-the-way-for-networkupstools/[Jenkins is the way to build multi-platform NUT] article. @@ -788,7 +788,7 @@ FIXME: Use different (better-resolution) images for PDF rendering? environments and a lot of toolkit versions and implementations. Some workers running on community members' machines also dial in to provide an example of their platforms. Literally hundreds of NUT builds run for each iteration. -+ + This allows us to ensure that NUT remains portable across two decades' worth of operating systems, compilers, script interpreters, tools and third-party dependencies. From 473ef3890fc3a448cb342adc1378928576582e21 Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Wed, 22 Nov 2023 11:36:35 +0100 Subject: [PATCH 33/37] README.adoc: dumb down the table format for GitHub renderer Signed-off-by: Jim Klimov --- README.adoc | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.adoc b/README.adoc index 5d0fd7da7a..295b49961c 100644 --- a/README.adoc +++ b/README.adoc @@ -761,9 +761,20 @@ clocks ticking, day and night: //////////// FIXME: Use different (better-resolution) images for PDF rendering? + +NOTE: GitHub renderer (or CSS stack?) ignores style settings and squashes the +logo column into a fixed-width monster with either our specified heights, or +with teeny-tiny thumbnail magnitude images, so it is prettier to leave it as +a "single-column table" by default. Grid/Frame settings are also ignored, but +we can try our best anyway. //////////// +ifndef::env-github[] [frame="none",grid="none",cols="^1,<2"] +endif::env-github[] +ifdef::env-github[] +[frame="none",grid="none",cols="<1*"] +endif::env-github[] |=== | image:images/ci/GitHub-Mark-140pxW.png[alt="GitHub logo",width="140",height="140",link="https://github.com/"] | The link:https://github.com/networkupstools/["NetworkUPSTools" organization From 0f51ef9d4b25da0f1568e90883fa77bea31bedcc Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Wed, 22 Nov 2023 11:45:23 +0100 Subject: [PATCH 34/37] README.adoc: rephrase the sponsoring/starring tip section Signed-off-by: Jim Klimov --- README.adoc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index 295b49961c..d128f4cfca 100644 --- a/README.adoc +++ b/README.adoc @@ -213,8 +213,9 @@ alive and in need of power protection, they should be able to get it. If you like how the NUT project helps protect your systems from power outages, please consider sponsoring or at least "starring" it on GitHub at https://github.com/networkupstools/nut/ - these stars are among metrics -which potential sponsors consider to help FOSS projects. Keeping the lights -shining in such a large non-regression build matrix is a big undertaking! +which the larger potential sponsors consider when choosing how to help +FOSS projects. Keeping the lights shining in such a large non-regression +build matrix is a big undertaking! See <> for an overview of the shared effort. From d8b254dbe06a539ac71cd23f7e03709bb37ab14e Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Wed, 22 Nov 2023 11:58:34 +0100 Subject: [PATCH 35/37] README.adoc: do our best to top-align the cells in acknowledgements table, and comment about caveats of known renderers Signed-off-by: Jim Klimov --- README.adoc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.adoc b/README.adoc index d128f4cfca..a74fcc45d1 100644 --- a/README.adoc +++ b/README.adoc @@ -763,15 +763,21 @@ clocks ticking, day and night: //////////// FIXME: Use different (better-resolution) images for PDF rendering? +FIXME: PDF cells seem to align weirdly, like setting the bottom of the first +line of text to be on the same level as bottom of the image, or similar to that. + NOTE: GitHub renderer (or CSS stack?) ignores style settings and squashes the logo column into a fixed-width monster with either our specified heights, or with teeny-tiny thumbnail magnitude images, so it is prettier to leave it as a "single-column table" by default. Grid/Frame settings are also ignored, but we can try our best anyway. + +NOTE: The classic asciidoc/a2x renderer seems to not support link/url options, +but at least does not complain about them either. //////////// ifndef::env-github[] -[frame="none",grid="none",cols="^1,<2"] +[frame="none",grid="none",cols="^.<1,<.<2"] endif::env-github[] ifdef::env-github[] [frame="none",grid="none",cols="<1*"] From c09c9d5d65c4e5d2dc4c79638ae1642438c58dfc Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Wed, 22 Nov 2023 12:22:53 +0100 Subject: [PATCH 36/37] README.adoc: add links to custom Jenkins Dynamatrix library and setup for NUT Signed-off-by: Jim Klimov --- README.adoc | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/README.adoc b/README.adoc index a74fcc45d1..f18cc9a40d 100644 --- a/README.adoc +++ b/README.adoc @@ -802,10 +802,13 @@ endif::env-github[] | image:images/ci/fosshost.org_Host_Light_38px.png[alt="Fosshost logo",width="112",height="38"] | Fosshost provided virtual machines where the multi-platform NUT CI farm with - a jenkins-dynamatrix setup runs to arrange builds in numerous operating - environments and a lot of toolkit versions and implementations. Some workers - running on community members' machines also dial in to provide an example of - their platforms. Literally hundreds of NUT builds run for each iteration. + a link:https://github.com/networkupstools/jenkins-dynamatrix/[jenkins-dynamatrix] + link:https://github.com/networkupstools/nut/blob/master/Jenkinsfile-dynamatrix[setup] + runs to arrange builds in numerous operating environments and a lot of toolkit + versions and implementations. Some workers running on NUT community members' + machines can also dial in to provide an example of their favourite platforms. + Literally hundreds of NUT builds run for each iteration, to make sure NUT can + always build and work everywhere. This allows us to ensure that NUT remains portable across two decades' worth of operating systems, compilers, script interpreters, tools and third-party From 6735bb2957620ea7a52bd9079e2a10f0e1058593 Mon Sep 17 00:00:00 2001 From: Xin LI Date: Thu, 23 Nov 2023 23:29:24 -0800 Subject: [PATCH 37/37] drivers/libusb1.c: Remove unnecessary validation for bus_num The libusb_get_bus_number() function serves as a simple accessor for the bus number of the opaque device struct. Unlike libusb_get_port_number(), it does not have the ability to convey errors back to the caller, and a bus number of 0 is a valid value. Therefore, any validation around bus_num is redundant. This commit removes the unnecessary validation code related to bus_num. Signed-off-by: Xin LI --- drivers/libusb1.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/drivers/libusb1.c b/drivers/libusb1.c index 349e59985a..286c6ebc84 100644 --- a/drivers/libusb1.c +++ b/drivers/libusb1.c @@ -263,14 +263,7 @@ static int nut_libusb_open(libusb_device_handle **udevp, libusb_free_device_list(devlist, 1); fatal_with_errno(EXIT_FAILURE, "Out of memory"); } - if (bus_num > 0) { - sprintf(curDevice->Bus, "%03d", bus_num); - } else { - upsdebugx(1, "%s: invalid libusb bus number %i", - __func__, bus_num); - free(curDevice->Bus); - curDevice->Bus = NULL; - } + sprintf(curDevice->Bus, "%03d", bus_num); device_addr = libusb_get_device_address(device); curDevice->Device = (char *)malloc(4);