Poudriere with Erlang and Rebar3

I'm a Poudriere noob that decided to start using it for several packages not in the main ports tree. I'm having troubles with one that uses lang/erlang and devel/rebar3 that provides a language server for the LFE language lang/lfe.

Here is my makefile

Code:
PORTNAME=       lfe-ls
DISTVERSION=    0.2.1
CATEGORIES=     lang
PORTVERSION=    0.0.1
MAINTAINER=     djireland79@gmail.com
COMMENT=        LFE language server written in LFE.
WWW=            https://github.com/mdbergmann/lfe-ls

LICENSE=        APACHE20
LICENSE_FILE=   ${WRKSRC}/LICENSE

BUILD_DEPENDS=  rebar3:devel/rebar3
RUN_DEPENDS=    lfe:lang/lfe

USE_GITHUB=     yes
GH_PROJECT=     lfe-ls
GH_ACCOUNT=     mdbergmann
SUB_FILES=      lfe-ls.1.gz

MAKE_ENV+=      HEX_HOME=${WRKSRC}/.hex \
                REBAR_GLOBAL_CONFIG_DIR=${WRKSRC} \
                REBAR_CACHE_DIR=${WRKSRC}/cache/ \
                HEX_OFFLINE=true \
                ERL_APP_ROOT=${WRKSRC}

do-build:
        cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} rebar3 as prod do clean,release,escriptize


do-install:
        ${CP} ${WRKSRC}/_build/prod/bin/lfe-ls ${STAGEDIR}${PREFIX}/bin/lfe-ls
        ${INSTALL_DATA} ${WRKDIR}/lfe-ls.1.gz  ${STAGEDIR}${PREFIX}/share/man/man1/lfe-ls.1.gz

.include <bsd.port.mk>


This builds okay with a normal ports tree framework but with Poudriere, I've had to ensure build files remained within ${WRKSRC} by setting the REBAR_CACHE_DIR however it seems Rebar3 can't get any of the required packages. Giving the error:

Code:
===>   lfe-ls-0.0.1 depends on executable: rebar3 - found
===>   Returning to build of lfe-ls-0.0.1
===========================================================================
=======================<phase: lib-depends    >============================
===== env: USE_PACKAGE_DEPENDS_ONLY=1 USER=root UID=0 GID=0
===========================================================================
=======================<phase: configure      >============================
===== env: NO_DEPENDS=yes USER=nobody UID=65534 GID=65534
===>  Configuring for lfe-ls-0.0.1
===========================================================================
=======================<phase: build          >============================
===== env: NO_DEPENDS=yes USER=nobody UID=65534 GID=65534
===>  Building for lfe-ls-0.0.1
cd /wrkdirs/overlays/custom/lang/lsp-ls/work/lfe-ls-0.2.1 && /usr/bin/env HEX_HOME=/wrkdirs/overlays/custom/lang/lsp-ls/work/lfe-ls-0.2.1/.hex  REBAR_GLOBAL_CONFIG_DIR=/wrkdirs/overlays/custom/lang/lsp-ls/work/lfe-ls-0.2.1/config  REBAR_BASE_DIR=/wrkdirs/overlays/custom/lang/lsp-ls/work/lfe-ls-0.2.1/base  REBAR_CACHE_DIR=/wrkdirs/overlays/custom/lang/lsp-ls/work/lfe-ls-0.2.1/cache/  HEX_OFFLINE=true  DEBUG=1  ERL_APP_ROOT=/wrkdirs/overlays/custom/lang/lsp-ls/work/lfe-ls-0.2.1 XDG_DATA_HOME=/wrkdirs/overlays/custom/lang/lsp-ls/work  XDG_CONFIG_HOME=/wrkdirs/overlays/custom/lang/lsp-ls/work  XDG_CACHE_HOME=/wrkdirs/overlays/custom/lang/lsp-ls/work/.cache  HOME=/wrkdirs/overlays/custom/lang/lsp-ls/work TMPDIR="/tmp" PATH=/wrkdirs/overlays/custom/lang/lsp-ls/work/.bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/nonexistent/bin PKG_CONFIG_LIBDIR=/wrkdirs/overlays/custom/lang/lsp-ls/work/.pkgconfig:/usr/local/libdata/pkgconfig:/usr/local/share/pkgconfig:/usr/libdata/pkgconfig MK_DEBUG_FILES=no MK_KERNEL_SYMBOLS=no SHELL=/bin/sh NO_LINT=YES PREFIX=/usr/local  LOCALBASE=/usr/local  CC="cc" CFLAGS="-O2 -pipe -fstack-protector-strong -fno-strict-aliasing "  CPP="cpp" CPPFLAGS=""  LDFLAGS=" " LIBS=""  CXX="c++" CXXFLAGS="-O2 -pipe -fstack-protector-strong -fno-strict-aliasing " BSD_INSTALL_PROGRAM="install  -s -m 555"  BSD_INSTALL_LIB="install  -s -m 0644"  BSD_INSTALL_SCRIPT="install  -m 555"  BSD_INSTALL_DATA="install  -m 0644"  BSD_INSTALL_MAN="install  -m 444" rebar3 as prod do clean,release,escriptize
===> Found local plugins: []
    using config: {project_plugin_dirs, ["plugins/*"]}
===> Getting definition for package rebar3_lfe from repo hexpm (#{name => <<"hexpm">>,repo_verify_origin => true,
         repo_name => <<"hexpm">>,repo_url => <<"https://repo.hex.pm">>,
         repo_organization => undefined,api_url => <<"https://hex.pm/api">>,
         repo_verify => true})
===> Hex get_package request failed: {error,
                                      {failed_connect,
                                       [{to_address,{"repo.hex.pm",443}},
                                        {inet,[inet],nxdomain}]}}
===> Failed to update package rebar3_lfe from repo hexpm
===> throw {error,
               {rebar_app_utils,
                   {missing_package,<<"rebar3_lfe">>,<<"0.4.11">>}}} [{rebar_app_utils,
                                                                       update_source,
                                                                       3,
                                                                       [{file,
                                                                         "/wrkdirs/usr/ports/devel/rebar3/work/rebar3-3.25.1/apps/rebar/src/rebar_app_utils.erl"},
                                                                        {line,
                                                                         335}]},
                                                                      {rebar_prv_install_deps,
                                                                       '-handle_profile_level/7-lc$^0/1-0-',
                                                                       3,
                                                                       [{file,
                                                                         "/wrkdirs/usr/ports/devel/rebar3/work/rebar3-3.25.1/apps/rebar/src/rebar_prv_install_deps.erl"},
                                                                        {line,
                                                                         178}]},
                                                                      {rebar_prv_install_deps,
                                                                       handle_profile_level,
                                                                       7,
                                                                       [{file,
                                                                         "/wrkdirs/usr/ports/devel/rebar3/work/rebar3-3.25.1/apps/rebar/src/rebar_prv_install_deps.erl"},
                                                                        {line,
                                                                         179}]},
                                                                      {rebar_plugins,
                                                                       handle_plugin,
                                                                       5,
                                                                       [{file,
                                                                         "/wrkdirs/usr/ports/devel/rebar3/work/rebar3-3.25.1/apps/rebar/src/rebar_plugins.erl"},
                                                                        {line,
                                                                         121}]},
                                                                      {rebar_plugins,
                                                                       '-handle_plugins/4-fun-0-',
                                                                       5,
                                                                       [{file,
                                                                         "/wrkdirs/usr/ports/devel/rebar3/work/rebar3-3.25.1/apps/rebar/src/rebar_plugins.erl"},
                                                                        {line,
                                                                         102}]},
                                                                      {lists,
                                                                       foldl,
                                                                       3,
                                                                       [{file,
                                                                         "lists.erl"},
                                                                        {line,
                                                                         1594}]},
                                                                      {rebar_plugins,
                                                                       handle_plugins,
                                                                       4,
                                                                       [{file,
                                                                         "/wrkdirs/usr/ports/devel/rebar3/work/rebar3-3.25.1/apps/rebar/src/rebar_plugins.erl"},
                                                                        {line,
                                                                         101}]},
                                                                      {lists,
                                                                       foldl,
                                                                       3,
                                                                       [{file,
                                                                         "lists.erl"},
                                                                        {line,
                                                                         1594}]}]
===> Errors loading plugin {rebar3_lfe,"0.4.11"}. Run rebar3 with DEBUG=1 set to see errors.
===> Expanded command sequence to be run: [as]
===> Running provider: as
===> Expanded command sequence to be run: [do]
===> Running provider: do
===> Expanded command sequence to be run: [clean]
===> Running provider: clean
===> Expanded command sequence to be run: [app_discovery]
===> Running provider: app_discovery
===> Found top-level apps: [lfe-ls]
    using config: [{src_dirs,["src"]},{lib_dirs,["apps/*","lib/*","."]}]
===> Running hooks for clean with configuration:
===>     {provider_hooks, []}.
===>     {pre_hooks, []}.
===> Cleaning out lfe-ls...
===> Running hooks for clean in app lfe-ls (/wrkdirs/overlays/custom/lang/lsp-ls/work/lfe-ls-0.2.1/apps/lfe-ls) with configuration:
===>     {pre_hooks, []}.
===> Running hooks for clean in app lfe-ls (/wrkdirs/overlays/custom/lang/lsp-ls/work/lfe-ls-0.2.1/apps/lfe-ls) with configuration:
===>     {post_hooks, []}.
===> Running hooks for clean with configuration:
===>     {post_hooks, []}.
===> Expanded command sequence to be run: [app_discovery,install_deps,lock,compile,release]
===> Running provider: app_discovery
===> Found top-level apps: [lfe-ls]
    using config: [{src_dirs,["src"]},{lib_dirs,["apps/*","lib/*","."]}]
===> Running provider: install_deps
===> Verifying dependencies...
===> Getting definition for package getopt from repo hexpm
===> Hex get_package request failed: {error,
                                      {failed_connect,
                                       [{to_address,{"repo.hex.pm",443}},
                                        {inet,[inet],nxdomain}]}}
===> Failed to update package getopt from repo hexpm
===> Package not found in any repo: getopt 1.0.3
*** Error code 1

Stop.
make: stopped making "build" in /overlays/custom/lang/lsp-ls
=>> Cleaning up wrkdir
===>  Cleaning for lfe-ls-0.0.1
build of lang/lsp-ls | lfe-ls-0.0.1 ended at Mon Dec  8 08:31:11 AEST 2025
build time: 00:00:02
!!! build failure encountered !!!

Does anyone have any suggestions? Thanks.
 
Once a build has started, it has no network access anymore. So a third party build system (rebar3?) cannot download anything by itself. You will have to fetch and collect everything in the port itself.
 
Back
Top