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
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:
Does anyone have any suggestions? Thanks.
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.