View | Details | Raw Unified | Return to bug 279003 | Differences between
and this patch

Collapse All | Expand All

(-)b/sysutils/kleene-daemon/Makefile (+87 lines)
Added Link Here
1
PORTNAME=		kleene-daemon
2
DISTVERSIONPREFIX=	v
3
DISTVERSION=	0.1.0rc1
4
CATEGORIES=		sysutils
5
6
MAINTAINER=		lasse@philomath.dk
7
COMMENT=		Kleened, the Kleene backend daemon for managing containers on FreeBSD
8
WWW=			https://kleene.dev
9
10
LICENSE=		BSD2CLAUSE
11
12
BUILD_DEPENDS=	mix:lang/elixir \
13
				rebar3:devel/rebar3 \
14
				${LOCALBASE}/lib/elixir/lib/hex/ebin:devel/elixir-hex
15
16
USES=			ssl gmake
17
USE_GITHUB=		yes
18
GH_TUPLE=		kleene-project:kleened:97b1934:DEFAULT
19
USE_RC_SUBR=	kleened
20
21
SUB_FILES=			pkg-message
22
23
ETCDIR=				${PREFIX}/etc/kleened
24
25
MIX_TARGET=			release
26
ELIXIR_LOCALE=		en_US.UTF-8
27
ELIXIR_APP_NAME=	${PORTNAME}
28
MIX_ENV=			MIX_REBAR3=${LOCALBASE}/bin/rebar3 \
29
					LANG=${ELIXIR_LOCALE} \
30
					LC_ALL=${ELIXIR_LOCALE} \
31
					MIX_PATH=${LOCALBASE}/lib/elixir/lib/hex/ebin \
32
					MIX_HOME=${LOCALBASE}/bin/mix
33
MIX_ENV_NAME=		prod
34
MIX_CMD=			${LOCALBASE}/bin/mix
35
MIX_COMPILE=		${SETENV} ${MIX_ENV} MIX_ENV=${MIX_ENV_NAME} ${MIX_CMD} ${MIX_TARGET}
36
37
RELEASE_PATH=		${WRKSRC}/_build/prod/rel/kleened
38
RELEASE_BINARIES=	escript dialyzer erlexec beam.smp heart dyn_erl to_erl \
39
					erlc epmd run_erl typer inet_gethost erl_child_setup ct_run \
40
					erl_call yielding_c_fun
41
42
.include <bsd.port.pre.mk>
43
44
do-build:
45
	@cd ${WRKSRC} && ${MIX_COMPILE}
46
47
do-install:
48
	@${MKDIR} ${STAGEDIR}${PREFIX}/etc/kleened
49
	${INSTALL_DATA} ${WRKSRC}/example/kleened_config.yaml \
50
		${STAGEDIR}${PREFIX}/etc/kleened/config.yaml.sample
51
	${INSTALL_DATA} ${WRKSRC}/example/pf.conf.kleene \
52
		${STAGEDIR}${PREFIX}/etc/kleened/pf.conf.kleene.sample
53
	${INSTALL_PROGRAM} ${WRKSRC}/priv/bin/kleened_pty \
54
		${STAGEDIR}${PREFIX}/bin/kleened_pty
55
	@${MKDIR} ${STAGEDIR}${PREFIX}/lib/kleened/bin
56
	${INSTALL_SCRIPT} ${WRKSRC}/_build/prod/rel/kleened/bin/kleened \
57
		${STAGEDIR}${PREFIX}/lib/kleened/bin/
58
	cd ${RELEASE_PATH}/lib && \
59
		${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/lib/kleened/lib
60
	cd ${RELEASE_PATH} && ERTS_DIR=$$(${FIND} erts-* -depth 1 -type d) && \
61
		${COPYTREE_SHARE} ./$$ERTS_DIR ${STAGEDIR}${PREFIX}/lib/kleened/ && \
62
		${CHMOD} +x ${STAGEDIR}${PREFIX}/lib/kleened/$$ERTS_DIR/*
63
	cd ${RELEASE_PATH}/releases && \
64
		${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/lib/kleened/releases
65
	cd ${RELEASE_PATH}/releases && \
66
		${INSTALL_DATA} ${WRKSRC}/_build/prod/rel/kleened/releases/start_erl.data ${STAGEDIR}${PREFIX}/lib/kleened/releases/
67
	${INSTALL_SCRIPT} ${RELEASE_PATH}/releases/0.0.1/elixir \
68
		${STAGEDIR}${PREFIX}/lib/kleened/releases/0.0.1/
69
	${INSTALL_SCRIPT} ${RELEASE_PATH}/releases/0.0.1/iex \
70
		${STAGEDIR}${PREFIX}/lib/kleened/releases/0.0.1/
71
	@CRYPTO_DIR=$$(${FIND} ${STAGEDIR}${PREFIX}/lib/kleened/lib/crypto-* -depth 0) \
72
		&& ${STRIP_CMD} $$CRYPTO_DIR/priv/lib/*.so
73
	@ASN1_DIR=$$(${FIND} ${STAGEDIR}${PREFIX}/lib/kleened/lib/asn1-* -depth 0) \
74
		&& ${STRIP_CMD} $$ASN1_DIR/priv/lib/asn1rt_nif.so
75
	@${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/kleened/lib/exqlite-0.20.0/priv/sqlite3_nif.so
76
.for bin in ${RELEASE_BINARIES}
77
	@cd ${STAGEDIR}${PREFIX}/lib/kleened/ && ERTS_DIR=$$(${FIND} erts-* -depth 1 -type d) && \
78
		${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/kleened/$$ERTS_DIR/${bin}
79
.endfor
80
81
post-install:
82
	@cd ${STAGEDIR}${PREFIX} && \
83
		${FIND} lib/kleened/erts-* -type f -o -type l | ${SORT} >> ${TMPPLIST}
84
	@cd ${STAGEDIR}${PREFIX} && \
85
		${FIND} lib/kleened/lib/* -type f -o -type l | ${SORT} >> ${TMPPLIST}
86
87
.include <bsd.port.post.mk>
(-)b/sysutils/kleene-daemon/distinfo (+3 lines)
Added Link Here
1
TIMESTAMP = 1714732941
2
SHA256 (kleene-project-kleened-v0.1.0rc1-97b1934_GH0.tar.gz) = 70b8ac013ec0a4a1a94e78d0dbee10b4551a33a5f0bce3cb3e8637bd8c31bd69
3
SIZE (kleene-project-kleened-v0.1.0rc1-97b1934_GH0.tar.gz) = 5065705
(-)b/sysutils/kleene-daemon/files/kleened.in (+44 lines)
Added Link Here
1
#!/bin/sh
2
3
# $FreeBSD$
4
#
5
# PROVIDE: kleened
6
# REQUIRE: LOGIN
7
# KEYWORD: shutdown
8
#
9
# Add this line to /etc/rc.conf.local or /etc/rc.conf
10
# to enable this service:
11
#
12
# kleened_enable (bool):	Set to NO by default.
13
#				Set it to YES to enable doormand.
14
15
. /etc/rc.subr
16
name=kleened
17
rcvar=kleened_enable
18
extra_commands="init dryinit"
19
20
LANG=en_US.UTF-8
21
LC_ALL=en_US.UTF-8
22
23
command="%%PREFIX%%/lib/kleened/bin/kleened"
24
25
pidfile="/var/run/kleened.pid"
26
procname="$(/usr/bin/find %%PREFIX%%/lib/kleened/erts-* -depth 1 -type d)/beam.smp"
27
start_cmd="${command} daemon"
28
init_cmd="kleened_init"
29
dryinit_cmd="kleened_dryinit"
30
31
load_rc_config $name
32
: ${kleened_enable:=no}
33
34
kleened_init()
35
{
36
    /usr/local/lib/kleened/bin/kleened eval "Kleened.Core.Config.initialize_host(%{dry_run: false})"
37
}
38
39
kleened_dryinit()
40
{
41
    /usr/local/lib/kleened/bin/kleened eval "Kleened.Core.Config.initialize_host(%{dry_run: true})"
42
}
43
44
run_rc_command "$1"
(-)b/sysutils/kleene-daemon/files/pkg-message.in (+33 lines)
Added Link Here
1
[
2
{ type: install
3
  message: <<EOM
4
Kleene is a new tool and should be used for
5
testing and experimentation purposes only.
6
7
To use Kleened, enable it in rc.conf using
8
9
  sysrc kleened_enable=YES
10
11
Kleened requires certain services and kernel modules to be configured in order
12
to work properly. Run
13
14
  service kleened init
15
16
to make Kleened automatically try and configure the host for you.
17
Alternatively, run
18
19
  service kleened dryinit
20
21
to get an overview of what needs to be configured, without actually changing
22
the host.
23
24
NB. The %%ETCDIR%%/config.yaml file should be edited before running
25
    'service kleened init' since some of the parameters are used during host
26
    initialization.
27
28
You can then start Kleened by running:
29
30
  service kleened start
31
EOM
32
}
33
]
(-)b/sysutils/kleene-daemon/pkg-descr (+3 lines)
Added Link Here
1
Backend daemon for Kleene.
2
3
Kleene is a container management tool for FreeBSD.
(-)b/sysutils/kleene-daemon/pkg-plist (-1 / +27 lines)
Added Link Here
0
- 
1
bin/kleened_pty
2
@sample %%ETCDIR%%/config.yaml.sample
3
@sample %%ETCDIR%%/pf.conf.kleene.sample
4
lib/kleened/bin/kleened
5
lib/kleened/releases/0.0.1/consolidated/Elixir.Collectable.beam
6
lib/kleened/releases/0.0.1/consolidated/Elixir.Enumerable.beam
7
lib/kleened/releases/0.0.1/consolidated/Elixir.IEx.Info.beam
8
lib/kleened/releases/0.0.1/consolidated/Elixir.Inspect.beam
9
lib/kleened/releases/0.0.1/consolidated/Elixir.Jason.Encoder.beam
10
lib/kleened/releases/0.0.1/consolidated/Elixir.List.Chars.beam
11
lib/kleened/releases/0.0.1/consolidated/Elixir.OpenApiSpex.Extendable.beam
12
lib/kleened/releases/0.0.1/consolidated/Elixir.Plug.Exception.beam
13
lib/kleened/releases/0.0.1/consolidated/Elixir.String.Chars.beam
14
lib/kleened/releases/0.0.1/consolidated/Elixir.DBConnection.Query.beam
15
lib/kleened/releases/0.0.1/elixir
16
lib/kleened/releases/0.0.1/env.sh
17
lib/kleened/releases/0.0.1/iex
18
lib/kleened/releases/0.0.1/kleened.rel
19
lib/kleened/releases/0.0.1/remote.vm.args
20
lib/kleened/releases/0.0.1/start.boot
21
lib/kleened/releases/0.0.1/start.script
22
lib/kleened/releases/0.0.1/start_clean.boot
23
lib/kleened/releases/0.0.1/start_clean.script
24
lib/kleened/releases/0.0.1/sys.config
25
lib/kleened/releases/0.0.1/vm.args
26
lib/kleened/releases/COOKIE
27
lib/kleened/releases/start_erl.data

Return to bug 279003