Back to blog

Compiling Registro.BR lib-epp with dependency validation and real troubleshooting

6/16/2025 · 1 min · Infrastructure

Share

Compiling libepp-nicbr is straightforward only when your C/C++ dependency chain is stable. In real environments, most failures happen in headers/include paths, not in EPP logic itself.

This is the exact flow I used in production-like setup.

Technical context

libepp-nicbr provides EPP operations for registrar workflows. In my case it was required for domain automation routines.

Mandatory prerequisite: Xerces-C

Validate Xerces-C first:

ldconfig -p | grep -i xerces
pkg-config --modversion xerces-c || echo "xerces-c not in pkg-config"

Download and extract

cd /usr/local/src
wget -O libepp.tar.gz https://ftp.registro.br/pub/libepp-nicbr/libepp-nicbr-1.20_1.tar.gz
tar -xvf libepp.tar.gz
cd libepp-*

Configure/build/install

./configure
make -j"$(nproc)"
make install
make doc
ldconfig

Common failure: readline include mismatch

Observed error:

checking for /usr/include/readline/readline/readline.h ... no
checking for /usr/include/readline/readline/history.h ... no

Fix applied:

ln -s /usr/include/readline /usr/include/readline/readline
ln -s /usr/include/readline /usr/include/readline/history
./configure --with-readline-includes=/usr/include/readline

Runtime validation with shepp

shepp

Expected:

Welcome to shepp version 1.25, an EPP shell client!
Type: 'help' for available commands.
shepp:

Operational checklist

which shepp
ldd "$(which shepp)"

Document configure flags and outputs for repeatable builds.

Final takeaway

The reliable fix is not forcing compilation. It is validating dependency paths first, then confirming runtime behavior through shepp.

CC BY-NC

This post is licensed under CC BY-NC.

Comments

Join the discussion below.