The below proposed packages split is subject to discussion.
The aim of this is to:
This standard was created by:
FIXME: make a dependency graph
Network UPS Tools (NUT) is a client/server monitoring system that allows computers to share uninterruptible power supply (UPS) and power distribution unit (PDU) hardware. Clients access the hardware through the server, and are notified whenever the power status changes.
the "-dev" suffix is to be replaced by "-devel" on RPM based platforms.
hard third-party dependency on libltdl; recommends libsnmp, libneon,
and the libusb variant (0.1 or 1.0) it was built against.
*sandbox*
nut-server
^^^^^^^^^^
Desc:
Files: dummy/serial/USB drivers + upsd + upslog
Size:
Deps: nut-client, libusb, libc/ld
B) nut-snmp
Desc:
Files: SNMP driver [/ manager ]
Deps: nut-server, net-snmp, libc/ld
C) nut-client
Desc: don't force to have the server part/deps if not needed
Files: upsmon, upsc, upscmd, upsrw + driver.list [+nut-dev (lib, .h, .pc, man]
Deps: libc/ld
E) nut-cgi
Deps:
Files: snmp-ups and powernet + man pages
F) nut-doc:
Deps:
Files: dummycons + man page
G) nut-dev:
Deps:
Files: upsmon, upsc, upscmd, upsrw
H) nut-scanner:
Deps: hard dependency on `libltdl`; recommends `libsnmp`, `libneon`, and the `libusb` variant (0.1 or 1.0) it was built against.
Files: nut-scanner tool and libnutscan + man pages
Note: "nut" can be a meta package
This kind of tree obviously needs modification on the conf/make
files of NUT to allow build/install in a separate way.
...
TO BE CONTINUED
...
Configuration option
^^^^^^^^^^^^^^^^^^^^
Example:
name= "ups" or "nut"
./configure \
--prefix=/ \
--sysconfdir=/etc/$name \
--mandir=/usr/share/man \
--libdir=/usr/lib \
--includedir=/usr/include \
--datadir=/usr/share/$name \
--with-statepath=/var/run/nut \
--with-altpidpath=/var/run/nut \
--with-drvpath=/lib/nut \
--with-cgipath=/usr/lib/cgi-bin/$name \
html-path
--with-pidpath=/var/run/$name \
--with-user=$name \
--with-cgi \
--without-ssl
...
NOTE: For packaging (OS distribution or in-house) it is recommended to
primarily `./configure --with-all` and then excise `--without-something`
explicitly for items not supported on your platform, so you do not miss
out on new NUT features as they come with new releases. Some may require
that you update your build environment with new third-party dependencies,
so a broken build of a new NUT release would let you know how to act.