@@ -179,6 +179,12 @@ into their operating system. On the other hand, distributions and appliances
179179tend to package "official releases" of projects such as NUT, and so do not
180180deliver latest and greatest fixes, new drivers, bugs and other features.
181181
182+ Stable distributions also tend to deliver minor fixes to the version of
183+ third-party software (like NUT) a particular release of the operating
184+ system has initially delivered, so those release lines can be years behind
185+ development in terms of new features (or bug fixes, if they are not trivial
186+ to patch into the old code base snapshot used to create the package).
187+
182188[[Installing_source]]
183189Installing from source
184190----------------------
@@ -300,6 +306,8 @@ This will build the NUT client and server programs and the
300306selected drivers. It will also build any other features that were
301307selected during <<Configuration,configuration>> step above.
302308
309+ NOTE: NUT is regularly tested with GNU, BSD and Sun implementations of `make`.
310+
303311
304312Installation
305313^^^^^^^^^^^^
@@ -403,7 +411,7 @@ drivers; this should allow you to follow the below
403411instructions. However, don't forget to set up the correct
404412permissions later!).
405413
406- NOTE: if you are using something like udev or devd, make sure
414+ NOTE: If you are using something like udev or devd, make sure
407415these permissions stay set across a reboot. If they revert to the
408416old values, your drivers may fail to start.
409417
@@ -480,16 +488,21 @@ copy the proposed-source URL of that "from" part.
480488For example, in some PR this says `jimklimov:issue-1234` and links to
481489`https://github.com/jimklimov/nut/tree/issue-1234`.
482490For manual git-cloning, just paste that URL into the shell and replace
483- the `/tree/` with "`-b`" CLI option for branch selection, like this:
491+ the `/tree/` with "`-b`" CLI option for branch selection; it also helps
492+ to keep the workspace directory name dedicated to that PR, like this:
484493
485494 :; cd /tmp
486495 ### Checkout https://github.com/jimklimov/nut/tree/issue-1234
487- :; git clone https://github.com/jimklimov/nut -b issue-1234
496+ :; git clone https://github.com/jimklimov/nut -b issue-1234 nut-issue-1234
497+ :; cd nut-issue-1234
498+ ### OPTIONALLY fetch known git tags, so semantic versions look better
499+ :; git fetch --tags --all
500+ ### Proceed with build (common instructions below)
488501
489502Testing with CI helper
490503~~~~~~~~~~~~~~~~~~~~~~
491504
492- NOTE: this uses the `ci_build.sh` script to arrange some rituals and
505+ NOTE: This uses the `ci_build.sh` script to arrange some rituals and
493506settings, in this case primarily to default the choice of drivers to
494507auto-detection of what can be built, and to skip building documentation.
495508Also note that this script supports many other scenarios for CI and
@@ -501,6 +514,9 @@ An "in-place" _testing_ build and run would probably go along these lines:
501514 :; cd /tmp
502515 :; git clone -b master https://github.com/networkupstools/nut
503516 :; cd nut
517+ ### OPTIONALLY fetch known git tags, so semantic versions look better
518+ :; git fetch --tags --all
519+ ### Proceed with build
504520 :; ./ci_build.sh inplace
505521 ### Temporarily stop your original drivers
506522 :; ./drivers/nutdrv_qx -a DEVNAME_FROM_UPS_CONF -d1 -DDDDDD \
@@ -555,6 +571,9 @@ This goes similar to usual build and install from Git:
555571 :; cd /tmp
556572 :; git clone https://github.com/networkupstools/nut
557573 :; cd nut
574+ ### OPTIONALLY fetch known git tags, so semantic versions look better
575+ :; git fetch --tags --all
576+ ### Proceed with build
558577 :; ./autogen.sh
559578 :; ./configure --enable-inplace-runtime # --maybe-some-other-options
560579 :; make -j 4 all && make -j 4 check && sudo make install
@@ -583,6 +602,9 @@ symlinks) and to get them started:
583602 :; cd /tmp
584603 :; git clone https://github.com/networkupstools/nut
585604 :; cd nut
605+ ### OPTIONALLY fetch known git tags, so semantic versions look better
606+ :; git fetch --tags --all
607+ ### Proceed with build
586608 :; ./autogen.sh
587609 :; ./configure --enable-inplace-runtime # --maybe-some-other-options
588610 :; make -j 4 all && make -j 4 check && \
@@ -635,6 +657,9 @@ e.g.:
635657 :; git clone https://github.com/networkupstools/nut
636658 :; cd nut
637659 :; git checkout -b issue-1234 ### your PR branch name, arbitrary
660+ ### OPTIONALLY fetch known git tags, so semantic versions look better
661+ :; git fetch --tags --all
662+ ### Proceed with build
638663 :; ./autogen.sh
639664 :; ./configure --enable-inplace-runtime # --maybe-some-other-options
640665 ### Iterate your code changes (e.g. PR draft), build and install with:
@@ -645,6 +670,13 @@ e.g.:
645670 sudo systemctl restart \
646671 nut-driver-enumerator.service nut-monitor nut-server
647672
673+ Note that to contribute your work back to upstream NUT codebase, you would
674+ need to create a "fork" of https://github.com/networkupstools/nut on GitHub,
675+ then `git remote add USERNAME https://github.com/USERNAME/nut`, maybe refresh
676+ the workspace index with `git fetch --all`, and finally `git push USERNAME`
677+ (possibly follow further instructions from `git` tooling) to create the
678+ pull request. For more details, see `docs/developers.txt` in NUT sources.
679+
648680Next steps after an in-place upgrade
649681~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
650682
@@ -668,7 +700,7 @@ Debian, Ubuntu and other derivatives
668700~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
669701
670702NOTE: NUT is packaged and well maintained in these systems.
671- The official Debian packager is part of the NUT Team.
703+ The official Debian packager used to be part of the NUT Team.
672704
673705Using your preferred method (apt-get, aptitude, Synaptic, ...), install
674706the 'nut' package, and optionally the following:
0 commit comments