mirror of
https://github.com/openwrt/packages.git
synced 2026-01-13 11:19:13 +00:00
f0fb968346dea9bbe8ff3872b9ade5e3a88f4e18
When trying to use managesieve my MUA complained sieve wasn't supported.
On investigation dovecot logs the following could be seen:
Aug 16 00:28:44 managesieve-login: Fatal: master:
service(managesieve-login): child 1430 returned error 127
Aug 16 00:31:32 managesieve-login: Error: Error loading shared
library libdovecot-login.so.0: No such file or directory
(needed by /usr/lib/dovecot/managesieve-login)
Aug 16 00:31:32 managesieve-login: Error: Error loading
shared library libdovecot.so.0: No such file or directory
(needed by /usr/lib/dovecot/managesieve-login)
Aug 16 00:31:32 managesieve-login: Error: Error relocating
/usr/lib/dovecot/managesieve-login: net_ip2addr: symbol not found
The issue (verified with readelf on non-working build and build with my fix)
is that there is no RPATH information in the pigeonhole binaries (like
managesieve-login).
The dovecot-config that is 'installed' in the staging dir
assumes that plugins will be built on the same host as the installed files.
The 'installed' dovecot-config (partial) looks like:
LIBDOVECOT='-L/usr/lib/dovecot -ldovecot'
LIBDOVECOT_LOGIN='-ldovecot-login -L/home/user/Build/openwrt/openwrt-ath79/staging_dir/target-mips_24kc_musl/usr/lib -lssl -lcrypto'
LIBDOVECOT_SQL=-ldovecot-sql
LIBDOVECOT_COMPRESS=-ldovecot-compression
LIBDOVECOT_LDA=-ldovecot-lda
LIBDOVECOT_STORAGE='-ldovecot-storage '
LIBDOVECOT_DSYNC=-ldovecot-dsync
LIBDOVECOT_LIBFTS=-ldovecot-fts
The solution I used was to modify dovecot-config to add the rpath to
DOVECOT_BINARY_LDFLAGS, and to replace references to host directories
with staging_dir directories.
This results in RPATH being added as it needs to be, and results in a working
version of dovecot+pigeonhole.
NB: I've also touched package version of pigeonhole as this change in dovecot
results in (needed) binary changes for pigeonhole.
Signed-off-by: Daniel F. Dickinson <cshored@thecshore.com>
OpenWrt packages feed
Description
This is the OpenWrt "packages"-feed containing community-maintained build scripts, options and patches for applications, modules and libraries used within OpenWrt.
Installation of pre-built packages is handled directly by the opkg utility within your running OpenWrt system or by using the OpenWrt SDK on a build system.
Usage
This repository is intended to be layered on-top of an OpenWrt buildroot. If you do not have an OpenWrt buildroot installed, see the documentation at: OpenWrt Buildroot – Installation on the OpenWrt support site.
This feed is enabled by default. To install all its package definitions, run:
./scripts/feeds update packages
./scripts/feeds install -a -p packages
License
See LICENSE file.
Package Guidelines
See CONTRIBUTING.md file.
Languages
Makefile
54.4%
Shell
31.5%
C
8.1%
C++
1.9%
Lua
1.4%
Other
2.5%