Skip to content

Instantly share code, notes, and snippets.

@dch
Created February 14, 2025 11:36
Show Gist options
  • Save dch/41a35774b9a0e71c0b5b0c6a7206d524 to your computer and use it in GitHub Desktop.
Save dch/41a35774b9a0e71c0b5b0c6a7206d524 to your computer and use it in GitHub Desktop.
kleene
PORTNAME= kleene-daemon
DISTVERSIONPREFIX= v
DISTVERSION= 0.1.0
DISTVERSIONSUFFIX= -rc.2
CATEGORIES= sysutils
HEXPM_VERSION= 2.1.1
MASTER_SITES+= https://builds.hex.pm/installs/1.16.0/:hex
DISTFILES+= hex-${HEXPM_VERSION}.ez:hex
MAINTAINER= [email protected]
COMMENT= Kleene backend daemon for managing containers on FreeBSD
WWW= https://kleene.dev
LICENSE= BSD2CLAUSE APACHE20
LICENSE_COMB= multi
BUILD_DEPENDS= mix:lang/elixir \
rebar3:devel/rebar3
USES= gmake ssl
USE_GITHUB= yes
GH_ACCOUNT= kleene-project
GH_PROJECT= kleened
# not required once kleene tags their RC
GH_TUPLE= kleene-project:kleened:6a67380:DEFAULT
USE_RC_SUBR= kleened
ETCDIR= ${PREFIX}/etc/kleened
SUB_FILES= pkg-message
_ELIXIR_ARCHIVES= ${WRKSRC}/archives
MAKE_ENV= ERL_LIBS='' \
HEX_HOME=${_ELIXIR_ARCHIVES}/.hex \
HEX_OFFLINE=true \
LANG=en_US_UTF-8 LC_ALL=en_US.UTF-8 \
MIX_ENV=prod \
MIX_HOME=${_ELIXIR_ARCHIVES}/.mix \
MIX_PATH=${LOCALBASE}/lib/elixir/lib/hex/ebin \
MIX_REBAR3=${LOCALBASE}/bin/rebar3
RELEASE_PATH= ${WRKSRC}/_build/prod/rel/kleened
RELEASE_BINARIES= escript dialyzer erlexec beam.smp heart dyn_erl to_erl \
erlc epmd run_erl typer inet_gethost erl_child_setup \
ct_run erl_call yielding_c_fun
.include <bsd.port.pre.mk>
post-extract:
${MKDIR} ${_ELIXIR_ARCHIVES}/.mix ${_ELIXIR_ARCHIVES}/.hex/hex-${HEXPM_VERSION}/
${TAR} -C ${_ELIXIR_ARCHIVES}/.hex/hex-${HEXPM_VERSION}/ -xf ${DISTDIR}/hex-${HEXPM_VERSION}.ez
do-build:
# this works fine
@echo ${MAKE_ENV}
# this does not show the same vars
@sh -c "export -p"
# so this fails
@(cd ${WRKSRC} && ${LOCALBASE}/bin/mix do deps.compile, compile, release)
do-install:
/usr/bin/false
${MKDIR} ${STAGEDIR}${PREFIX}/etc/kleened
${INSTALL_DATA} ${WRKSRC}/example/kleened_config.yaml \
${STAGEDIR}${PREFIX}/etc/kleened/config.yaml.sample
${INSTALL_DATA} ${WRKSRC}/example/pf.conf.kleene \
${STAGEDIR}${PREFIX}/etc/kleened/pf.conf.kleene.sample
${MKDIR} ${STAGEDIR}${PREFIX}/libexec/kleened/bin
${INSTALL_PROGRAM} ${WRKSRC}/priv/bin/kleened_pty \
${STAGEDIR}${PREFIX}/libexec/kleened/bin/kleened_pty
${INSTALL_SCRIPT} ${WRKSRC}/_build/prod/rel/kleened/bin/kleened \
${STAGEDIR}${PREFIX}/libexec/kleened/bin/
cd ${RELEASE_PATH}/lib && \
${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/libexec/kleened/lib
cd ${RELEASE_PATH} && \
${COPYTREE_SHARE} ./erts-* ${STAGEDIR}${PREFIX}/libexec/kleened/ && \
${CHMOD} +x ${STAGEDIR}${PREFIX}/libexec/kleened/erts-*/bin/*
cd ${RELEASE_PATH}/releases && \
${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/libexec/kleened/releases
cd ${RELEASE_PATH}/releases && \
${INSTALL_DATA} ${WRKSRC}/_build/prod/rel/kleened/releases/start_erl.data \
${STAGEDIR}${PREFIX}/libexec/kleened/releases/
${INSTALL_SCRIPT} ${RELEASE_PATH}/releases/0.0.1/elixir \
${STAGEDIR}${PREFIX}/libexec/kleened/releases/0.0.1/
${INSTALL_SCRIPT} ${RELEASE_PATH}/releases/0.0.1/iex \
${STAGEDIR}${PREFIX}/libexec/kleened/releases/0.0.1/
${STRIP_CMD} ${STAGEDIR}${PREFIX}/libexec/kleened/lib/asn1-*/priv/lib/asn1rt_nif.so
${STRIP_CMD} ${STAGEDIR}${PREFIX}/libexec/kleened/lib/crypto-*/priv/lib/*.so
${STRIP_CMD} ${STAGEDIR}${PREFIX}/libexec/kleened/lib/exqlite-0.20.0/priv/sqlite3_nif.so
.for bin in ${RELEASE_BINARIES}
${STRIP_CMD} ${STAGEDIR}${PREFIX}/libexec/kleened/erts-*/bin/${bin}
.endfor
post-install:
@cd ${STAGEDIR}${PREFIX} && \
${FIND} libexec/kleened/erts-* -type f -o -type l | \
${SORT} >> ${TMPPLIST}
@cd ${STAGEDIR}${PREFIX} && \
${FIND} libexec/kleened/lib/* -type f -o -type l | \
${SORT} >> ${TMPPLIST}
.include <bsd.port.post.mk>
@dch
Copy link
Author

dch commented Feb 14, 2025

wat

root@pkg:/usr/ports/sysutils/kleene-daemon # make clean package
===>  Cleaning for kleene-daemon-0.1.0
===>  License BSD2CLAUSE APACHE20 accepted by the user
===>   kleene-daemon-0.1.0 depends on file: /usr/local/sbin/pkg - found
===> Fetching all distfiles required by kleene-daemon-0.1.0 for building
===>  Extracting for kleene-daemon-0.1.0
=> SHA256 Checksum OK for hex-2.1.1.ez.
=> SHA256 Checksum OK for kleene-project-kleened-v0.1.0-rc.2-6a67380_GH0.tar.gz.
/bin/mkdir -p /wrkdirs/usr/ports/sysutils/kleene-daemon/work/kleened-6a67380/archives/.mix /wrkdirs/usr/ports/sysutils/kleene-daemon/work/kleened-6a67380/archives/.hex/hex-2.1.1/
/usr/bin/tar -C /wrkdirs/usr/ports/sysutils/kleene-daemon/work/kleened-6a67380/archives/.hex/hex-2.1.1/ -xf /var/cache/distfiles/hex-2.1.1.ez
===>  Patching for kleene-daemon-0.1.0
===>   kleene-daemon-0.1.0 depends on executable: mix - found
===>   kleene-daemon-0.1.0 depends on executable: rebar3 - found
===>   kleene-daemon-0.1.0 depends on package: gmake>=4.4.1 - found
===>  Configuring for kleene-daemon-0.1.0
===>  Building for kleene-daemon-0.1.0
ERL_LIBS= HEX_HOME=/wrkdirs/usr/ports/sysutils/kleene-daemon/work/kleened-6a67380/archives/.hex HEX_OFFLINE=true LANG=en_US_UTF-8 LC_ALL=en_US.UTF-8 MIX_ENV=prod MIX_HOME=/wrkdirs/usr/ports/sysutils/kleene-daemon/work/kleened-6a67380/archives/.mix MIX_PATH=/usr/local/lib/elixir/lib/hex/ebin MIX_REBAR3=/usr/local/bin/rebar3 OPENSSLBASE=/usr OPENSSLDIR=/etc/ssl OPENSSLINC=/usr/include OPENSSLLIB=/usr/lib XDG_DATA_HOME=/wrkdirs/usr/ports/sysutils/kleene-daemon/work XDG_CONFIG_HOME=/wrkdirs/usr/ports/sysutils/kleene-daemon/work XDG_CACHE_HOME=/wrkdirs/usr/ports/sysutils/kleene-daemon/work/.cache HOME=/wrkdirs/usr/ports/sysutils/kleene-daemon/work TMPDIR=/tmp PATH=/wrkdirs/usr/ports/sysutils/kleene-daemon/work/.bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin PKG_CONFIG_LIBDIR=/wrkdirs/usr/ports/sysutils/kleene-daemon/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=  -fstack-protector-strong  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
export OPSYS=FreeBSD
export ARCH=amd64
export LOGNAME=root
export PAGER=less
export LANG=C
export MAKELEVEL=1
export MAIL=/var/mail/root
export MAKEFLAGS=' ARCH=amd64 HAVE_COMPAT_IA32_KERN=YES OPSYS=FreeBSD OSREL=14.2 OSVERSION=1402000 _OSRELEASE=14.2-RELEASE'
export META_MODE=normal
export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin
export XDG_RUNTIME_DIR=/var/run/xdg/root
export ENV=/root/.shrc
export OSREL=14.2
export _OSRELEASE=14.2-RELEASE
export OLDPWD=/root
export PWD=/usr/ports/sysutils/kleene-daemon
export HAVE_COMPAT_IA32_KERN=YES
export TERM=xterm-256color
export HOME=/root
export USER=root
export SHELL=/bin/sh
export PORTSDIR=/usr/ports
export MM_CHARSET=UTF-8
export UNAME_r=14.2-RELEASE
export LC_ALL=C
export UNAME_v='FreeBSD 14.2-RELEASE'
export OSVERSION=1402000
export BLOCKSIZE=K
cd /wrkdirs/usr/ports/sysutils/kleene-daemon/work/kleened-6a67380 __ env ERL_LIBS= HEX_HOME=/wrkdirs/usr/ports/sysutils/kleene-daemon/work/kleened-6a67380/archives/.hex HEX_OFFLINE=true LANG=en_US_UTF-8 LC_ALL=en_US.UTF-8 MIX_ENV=prod MIX_HOME=/wrkdirs/usr/ports/sysutils/kleene-daemon/work/kleened-6a67380/archives/.mix MIX_PATH=/usr/local/lib/elixir/lib/hex/ebin MIX_REBAR3=/usr/local/bin/rebar3 OPENSSLBASE=/usr OPENSSLDIR=/etc/ssl OPENSSLINC=/usr/include OPENSSLLIB=/usr/lib XDG_DATA_HOME=/wrkdirs/usr/ports/sysutils/kleene-daemon/work XDG_CONFIG_HOME=/wrkdirs/usr/ports/sysutils/kleene-daemon/work XDG_CACHE_HOME=/wrkdirs/usr/ports/sysutils/kleene-daemon/work/.cache HOME=/wrkdirs/usr/ports/sysutils/kleene-daemon/work TMPDIR=/tmp PATH=/wrkdirs/usr/ports/sysutils/kleene-daemon/work/.bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin PKG_CONFIG_LIBDIR=/wrkdirs/usr/ports/sysutils/kleene-daemon/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=  -fstack-protector-strong  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 /usr/local/bin/mix do deps.compile, compile, release
/usr/bin/false
*** Error code 1

Stop.
make: stopped in /usr/ports/sysutils/kleene-daemon
root@pkg:/usr/ports/sysutils/kleene-daemon #

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment