[Nut-upsuser] package clash with 'rhino'

Greg Troxel gdt at lexort.com
Sun May 18 15:02:17 BST 2025


Eyal Lebedinsky <eyal at eyal.emu.id.au> writes:

>> But seriously, it looks like you are running into a Fedora packaging
>> issue, not a nut issue.  I suggest you report this to Fedora.
>
> I raised it on the fedora users list and then created
> 	https://bugzilla.redhat.com/show_bug.cgi?id=2267022
> and it seems to progress from there.

Great!

> I raised it on Nut-upsuser last as I thought they added this file.
> It was also in f40 but the two were in /usr/bin vs /usr/sbin and the f42 merge led to this conflict now.
>
>> It doesn't make sense to have /usr/bin/rhino in a package.
>
> So you are saying that the driver is not part of nut, and it is fedora that included it in the package,
> but in the wrong way/place.

It is (I think newly) part of nut.  But in nut, there are many drivers
-- the pkgsrc package has 48 right now.  They are "programs executed by
other programs", not by the user directly, and thus by longstanding BSD
hier(7) tradition, at least mostly inherited by GNU/Linux distributions,
belong in libexec not bin.

I see it as somewhere between a bug and an unusual choice that Fedora
uses /usr/bin for libexec.   configure has an option for it, so it seems
95%+ likely that Fedora overrides it.   pkgsrc's choice for this is:

Makefile:CONFIGURE_ARGS+=       --with-drvpath=${NUT_DRVDIR:Q}
Makefile.common:NUT_DRVDIR=             ${PREFIX}/libexec/nut

and configure help:

Fine tuning of the installation directories:
  --bindir=DIR            user executables [EPREFIX/bin]
  --sbindir=DIR           system admin executables [EPREFIX/sbin]
  --libexecdir=DIR        program executables [EPREFIX/libexec]
  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
  --libdir=DIR            object code libraries [EPREFIX/lib]
  --includedir=DIR        C header files [PREFIX/include]
  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
  --infodir=DIR           info documentation [DATAROOTDIR/info]
  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
  --mandir=DIR            man documentation [DATAROOTDIR/man]
  --docdir=DIR            documentation root [DATAROOTDIR/doc/nut]
  --htmldir=DIR           html documentation [DOCDIR]
  --dvidir=DIR            dvi documentation [DOCDIR]
  --pdfdir=DIR            pdf documentation [DOCDIR]
  --psdir=DIR             ps documentation [DOCDIR]


In pkgsrc, the pathnames for the drivers, all relative to PREFIX which
is usually /usr/pkg:

libexec/nut/al175
libexec/nut/apcsmart
libexec/nut/apcsmart-old
libexec/nut/apcupsd-ups
libexec/nut/bcmxcp
libexec/nut/belkin
libexec/nut/belkinunv
libexec/nut/bestfcom
libexec/nut/bestfortress
libexec/nut/bestuferrups
libexec/nut/bestups
libexec/nut/bicker_ser
libexec/nut/blazer_ser
libexec/nut/clone
libexec/nut/clone-outlet
libexec/nut/dummy-ups
libexec/nut/etapro
libexec/nut/everups
libexec/nut/gamatronic
libexec/nut/genericups
libexec/nut/isbmex
libexec/nut/ivtscd
libexec/nut/liebert
libexec/nut/liebert-esp2
libexec/nut/liebert-gxe
libexec/nut/masterguard
libexec/nut/metasys
libexec/nut/mge-shut
libexec/nut/mge-utalk
libexec/nut/microdowell
libexec/nut/microsol-apc
libexec/nut/nutdrv_qx
libexec/nut/nutdrv_siemens-sitop
libexec/nut/oneac
libexec/nut/optiups
libexec/nut/powercom
libexec/nut/powerpanel
libexec/nut/rhino
libexec/nut/riello_ser
libexec/nut/safenet
libexec/nut/skel
libexec/nut/sms_ser
libexec/nut/solis
libexec/nut/tripplite
libexec/nut/tripplitesu
libexec/nut/upscode2
libexec/nut/victronups
libexec/sockdebug





More information about the Nut-upsuser mailing list