gpo.zugaina.org

Search Portage & Overlays:

net-misc/pla-util

Utility for HomePlug AV2 power line adapters with Broadcom chipsets

Screenshots

  • pla-util-2.1.3
    ~amd64
    ada_target_gcc_12 ada_target_gcc_13 ada_target_gcc_14 ada_target_gcc_15 ada_target_gcc_16 +filecaps

    View      Download      Browse     License: GPL-3+   
    Overlay: stuff

ChangeLog

commit 891407deb9194460cf32c37674c21a4e7da88a34
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Fri Sep 4 02:04:11 2026 +0200

net-misc/pla-util: new package, add 2.1.3

A CLI for HomePlug AV2 power line adapters built on Broadcom SoCs
(BCM60333 / BCM60355 / BCM60500), written in Ada. Neither ::gentoo nor
::guru carries anything that manages HomePlug devices.

Built via gprbuild rather than the shipped Makefile. ada.eclass exports
GCC, GNATMAKE and GNATBIND but not GNATLINK, and the Makefile defaults
GNATLINK to a bare "gnatlink" that gcc-config never creates -- only the
slotted gnatlink-<v> exists. gprbuild drives compiler, binder and linker
itself, and is the route upstream documents for distribution packaging.

The non-obvious part is binding the GNAT runtime statically.
pla_util.gpr reads GNATBINDFLAGS from the environment and defaults it to
"-Es -shared". That suits openSUSE, where upstream develops and libgnat
sits in the system libdir. Here libgnat-<v>.so lives in
/usr/lib/gcc/$/<slot>/adalib/ while only the parent directory is
in ld.so.conf, and upstream deliberately ships neither RPATH nor RUNPATH
(CHANGELOG, 2.1.1). A shared bind therefore installs a binary that
cannot start at all:

error while loading shared libraries: libgnat-15.so

"-Es -static" leaves DT_NEEDED at libpcap, libc and the loader, and
frees the installed binary from the gcc slot that built it.

ADA_COMPAT is capped at gcc_ because dev-ada/gprbuild is; a
wider set makes the BDEPEND unsolvable. ADAFLAGS goes through -cargs so
that it lands after the project's hardcoded -O3 -gnatn and can override
it. LDFLAGS needs no equivalent -- the project already splices it in
from the environment.

FILECAPS sets cap_net_raw at merge time. Without it the tool works only
as root, which is why upstream's README ends with an instruction to run
filecap by hand.