Skip to content

Commit

Permalink
Merge pull request #2364 from jimklimov/installer-revise
Browse files Browse the repository at this point in the history
Installer revise
  • Loading branch information
jimklimov authored Mar 20, 2024
2 parents c05ca1f + 9005cde commit 9fae2f6
Show file tree
Hide file tree
Showing 5 changed files with 69 additions and 9 deletions.
9 changes: 8 additions & 1 deletion docs/nut.dict
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
personal_ws-1.1 en 3470 utf-8
personal_ws-1.1 en 3478 utf-8
AAC
AAS
ABI
Expand Down Expand Up @@ -1570,6 +1570,7 @@ aec
af
aggregator
ai
aix
al
ala
alarmcenables
Expand Down Expand Up @@ -2198,6 +2199,7 @@ hotplug
hotplugging
hovercharge
hpe
hpux
href
htaccess
html
Expand Down Expand Up @@ -2365,6 +2367,7 @@ libdir
libdummy
libexec
libexecdir
libexpat
libfreeipmi
libgd
libgpgme
Expand Down Expand Up @@ -3023,6 +3026,7 @@ sitop
sizeof
ske
skel
sl
slackpkg
slaveid
slavesync
Expand All @@ -3045,8 +3049,11 @@ socat
sockdebug
socketname
socomec
solari
solaris
solcmn
solibs
solint
solis
somename
somepass
Expand Down
8 changes: 8 additions & 0 deletions scripts/installer/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,10 @@ EXTRA_DIST = \

SPELLCHECK_SRC = README.adoc common/README_ipp-os-shutdown.adoc

nut:
rm -f "$@"
$(LN_S) $(top_srcdir) "$@"

# NOTE: Due to portability, we do not use a GNU percent-wildcard extension.
# We also have to export some variables that may be tainted by relative
# paths when parsing the other makefile (e.g. MKDIR_P that may be defined
Expand All @@ -54,4 +58,8 @@ spellcheck spellcheck-interactive spellcheck-sortdict:

CLEANFILES = *-spellchecked

# Remove "nut" if it is a symlink to the source tree
clean-local:
if test -L nut || test -h nut ; then rm -f nut ; fi

MAINTAINERCLEANFILES = Makefile.in .dirstamp
53 changes: 47 additions & 6 deletions scripts/installer/README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,54 @@ of Eaton by Frederic Bohe, Vaclav Krpec, Arnaud Quette and Jim Klimov.

This includes the package (tarball) creation script which relies on
presence of third-party library binaries in a `$ARCH/libs` directory,
and init-scripts from NUT source tree (originally expected as a "nut"
subdirectory), as well as an interactive installer script to set up
the package on a target deployment covering package (re-)installation,
initial device discovery, password setup, etc., and helper scripts
for status overview and shutdown handling.
pre-built package files (courtesy of NUT `make package` recipes),
and init-scripts from NUT source tree (originally expected as a `nut`
subdirectory, can be a symlink to `../..`; currently copies stored in
the `$ARCH` subdirectories; eventually should be taken from NUT sources
during build, or from packages), as well as an interactive text-mode
installer script to set up the package on a target deployment covering
package (re-)installation, initial device discovery, password setup,
etc., and helper scripts for status overview and shutdown handling.

The installer relies on "nutconf" tool (emulating dummy script for
Example `$ARCH` related directory layout in original posting (binary
files mentioned below are not provided into NUT Git source code base);
these are the contents `make_package.sh` script expects to work with
(you can see the names mentioned in `find ... | grep -v ...` filters):

* `aix/` example for AIX 6 and 7 based IPSS Unix releases:
* `libs/`: `libcrypto.a`, `libcrypto.so`, etc...
* `nut-2.6.5-1.aix6.1.ppc.rpm` and `nut-client-2.6.5-1.aix6.1.ppc.rpm`
package files
* `nutconf` binary for the platform
* `aix_init` script
* `ipp-os-shutdown.conf.sample`
* `hpux/` for PA-RISC:
* `libs/`: `libcrypto.sl`, `libexpat.sl`, `libiconv.sl`, `libintl.sl`,
`libltdl.sl`, `libneon.sl`, `libnetsnmp.sl.30`, `libssl.sl`, `libz.sl`
* Notably, `libnutscan.sl.1` (other platforms did not carry a copy)
* `nut.depot.tar.gz` package file
* `nutconf` binary for the platform
* `ipp-os-shutdown.conf.sample`
* Solaris (SPARC and X86) spread across 3 directories:
* `solcmn/` with common platform-independent files:
* `ipp-os-shutdown.conf.sample`
* `solaris_init` script
* `solari` with SPARC binaries:
* `libs/`: `libcrypto.so.0.9.8`, `libz.so`, etc.
* `NUT_solaris_sparc_package2.6.5.local` package file
* `nutconf` binary for the platform
* `solint` with X86 binaries:
* `libs/`: `libcrypto.so.1.0.0`, `libgcc_s.so.1`, `libltdl.so.7`,
`libneon.so.27`, `libnetsnmp.so.15`, `libproxy.so.0`,
`libssl.so.1.0.0`, `libstdc++.so.6`, `libwrap.so.1`
* `NUT_solaris_i386_package2.6.5.local` package file
* `nutconf` binary for the platform
The installer relies on `nutconf` tool (emulating dummy script for
tests provided here), which is part of NUT sources.

Note that heavy use of `LD_LIBRARY_PATH` in these scripts may become
Expand Down
7 changes: 6 additions & 1 deletion scripts/installer/make_package.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,14 @@
rm -Rf package
mkdir package

git pull --all
# NOTE: Originally this pulled installer sources (separate from NUT code base)
# If this script were to be modernized, it could be prudent to `make package`
# in NUT sources for each platform, to create the package file(s) tarballed
# below for end-user along with the interactive installer delivery.
#git pull --all
# [ $? = 0 ] && git merge upstream/master || exit $?

# NOTE: See README.adoc about expected subdirectory contents with binary files
NAME="ipp-solaris-$IPP_VERSION.sparc"
mkdir "package/$NAME"
FILE_LIST="`find . -type f -name '*' | egrep -v '.svn|.git|./nutconf-dummy|./make_package.sh|nut/|(un|)install.log|package/|aix|hpux|solint'`"
Expand Down
1 change: 0 additions & 1 deletion scripts/installer/nut

This file was deleted.

0 comments on commit 9fae2f6

Please sign in to comment.