## Summary
After building and installing Core Lightning v26.06 from source on Ubuntu, `lightningd` failed during startup while registering the new `bwatch` plugin.
The installed file layout was:
```text
/usr/local/libexec/c-lightning/plugins/bwatch
but lightningd tried to register:
/usr/local/libexec/c-lightning/plugins/bwatch/bwatch
This caused:
UNUSUAL plugin-manager: failed to register plugin /usr/local/bin/../libexec/c-lightning/plugins/bwatch/bwatch
Build/install steps
Followed the documented Ubuntu source install flow:
uv sync --all-extras --all-groups --frozen
./configure
RUST_PROFILE=release uv run make
sudo RUST_PROFILE=release make install
Version:
git describe showed:
The dirty state appeared to be generated/vendor build artifacts, not a local source patch.
Observed install rule behavior
make -n install showed:
install ... plugins/bwatch/bwatch ... /usr/local/libexec/c-lightning/plugins
Since the destination is a directory, install flattened the source path and created:
/usr/local/libexec/c-lightning/plugins/bwatch
as a file.
However, at runtime CLN looked for:
/usr/local/libexec/c-lightning/plugins/bwatch/bwatch
Local workaround
This fixed startup:
sudo mv /usr/local/libexec/c-lightning/plugins/bwatch \
/usr/local/libexec/c-lightning/plugins/bwatch.flat-installed
sudo install -d -m 755 /usr/local/libexec/c-lightning/plugins/bwatch
sudo install -m 755 /home/cln/lightning/plugins/bwatch/bwatch \
/usr/local/libexec/c-lightning/plugins/bwatch/bwatch
After that:
returned:
without the plugin registration error.
Expected behavior
Either:
make install should preserve the nested plugin path for plugins/bwatch/bwatch, or
- runtime plugin lookup should expect the flattened installed path
/usr/local/libexec/c-lightning/plugins/bwatch.
Given the source tree defines bwatch as plugins/bwatch/bwatch, preserving the nested install directory seems likely to be the intended behavior.
but
lightningdtried to register:This caused:
Build/install steps
Followed the documented Ubuntu source install flow:
Version:
git describeshowed:The dirty state appeared to be generated/vendor build artifacts, not a local source patch.
Observed install rule behavior
make -n installshowed:Since the destination is a directory,
installflattened the source path and created:as a file.
However, at runtime CLN looked for:
Local workaround
This fixed startup:
After that:
returned:
without the plugin registration error.
Expected behavior
Either:
make installshould preserve the nested plugin path forplugins/bwatch/bwatch, or/usr/local/libexec/c-lightning/plugins/bwatch.Given the source tree defines
bwatchasplugins/bwatch/bwatch, preserving the nested install directory seems likely to be the intended behavior.