Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F107989916
D42877.id130946.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
6 KB
Referenced Files
None
Subscribers
None
D42877.id130946.diff
View Options
diff --git a/devel/Makefile b/devel/Makefile
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -1124,6 +1124,7 @@
SUBDIR += kyua
SUBDIR += lab
SUBDIR += lager
+ SUBDIR += laminar
SUBDIR += lasi
SUBDIR += lattice-ice40-examples-hx1k
SUBDIR += lattice-ice40-examples-hx8k
diff --git a/devel/laminar/Makefile b/devel/laminar/Makefile
new file mode 100644
--- /dev/null
+++ b/devel/laminar/Makefile
@@ -0,0 +1,76 @@
+PORTNAME= laminar
+DISTVERSION= 1.3
+CATEGORIES= devel
+MASTER_SITES= GH \
+ https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.12/:vue \
+ https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.9.1/:chart \
+ https://raw.githubusercontent.com/drudru/ansi_up/v4.0.4/:ansi
+DISTFILES= ansi_up.js:ansi \
+ vue.min.js:vue \
+ chart.min.js:chart
+DIST_SUBDIR= ${PORTNAME}
+EXTRACT_ONLY= ${GH_ACCOUNT}-${PORTNAME}-${PORTVERSION}-${GH_TAGNAME}_GH0${EXTRACT_SUFX}
+
+MAINTAINER= cingel.marian@gmail.com
+COMMENT= Lightweight CI service
+WWW= https://laminar.ohwg.net/
+
+LICENSE= GPLv3
+LICENSE_FILE= ${WRKSRC}/COPYING
+
+ONLY_FOR_ARCHS= aarch64 amd64 armv7 powerpc64 powerpc64le
+ONLY_FOR_ARCHS_REASON= "Requires to translate 'uname -m' to linker '-m' flag in CMakeLists.txt"
+
+BUILD_DEPENDS= ${LOCALBASE}/include/boost/multi_index_container.hpp:devel/boost-libs \
+ ${LOCALBASE}/include/rapidjson/rapidjson.h:devel/rapidjson
+LIB_DEPENDS= libcapnp-rpc.so:devel/capnproto \
+ libcapnp.so:devel/capnproto \
+ libkj-async.so:devel/capnproto \
+ libkj-http.so:devel/capnproto \
+ libkj.so:devel/capnproto \
+ libinotify.so:devel/libinotify
+
+USES= cmake pkgconfig sqlite
+
+USE_GITHUB= yes
+GH_ACCOUNT= ohwgiles
+GH_TAGNAME= 277a59f1cba75fa763e5838b3443f11686dd5ebb
+
+USERS= ${WWWOWN}
+GROUPS= ${WWWGRP}
+HOMEDIR= /var/db/${PORTNAME}
+LAMINARD= laminard
+
+USE_RC_SUBR= laminard
+SUB_FILES= laminard.env
+
+SUB_LIST= HOMEDIR=${HOMEDIR} \
+ LAMINARD=${LAMINARD} \
+ PORTNAME=${PORTNAME} \
+ USERS=${USERS}
+
+PLIST_SUB= GROUPS=${GROUPS} \
+ HOMEDIR=${HOMEDIR} \
+ LAMINARD=${LAMINARD} \
+ PORTNAME=${PORTNAME} \
+ USERS=${USERS}
+
+post-extract:
+ ${CP} ${DISTDIR}/${DIST_SUBDIR}/ansi_up.js ${WRKDIR}/
+ ${CP} ${DISTDIR}/${DIST_SUBDIR}/vue.min.js ${WRKDIR}/
+ ${CP} ${DISTDIR}/${DIST_SUBDIR}/chart.min.js ${WRKDIR}/Chart.min.js
+
+pre-configure:
+ ${MKDIR} ${CONFIGURE_WRKSRC}/js
+ ${CP} ${WRKDIR}/ansi_up.js ${CONFIGURE_WRKSRC}/js/
+ ${CP} ${WRKDIR}/Chart.min.js ${CONFIGURE_WRKSRC}/js/
+ ${CP} ${WRKDIR}/vue.min.js ${CONFIGURE_WRKSRC}/js/
+
+post-install:
+ ${MKDIR} ${STAGEDIR}${HOMEDIR} \
+ ${STAGEDIR}${HOMEDIR}/cfg \
+ ${STAGEDIR}${HOMEDIR}/cfg/jobs \
+ ${STAGEDIR}${PREFIX}/etc/${PORTNAME}
+ ${INSTALL_DATA} ${WRKDIR}/laminard.env ${STAGEDIR}${ETCDIR}/${LAMINARD}.env.sample
+
+.include <bsd.port.mk>
diff --git a/devel/laminar/distinfo b/devel/laminar/distinfo
new file mode 100644
--- /dev/null
+++ b/devel/laminar/distinfo
@@ -0,0 +1,9 @@
+TIMESTAMP = 1699395718
+SHA256 (laminar/ansi_up.js) = 996608ae1a80c64fb2b41e07f3ef1c4fc7ec437746c03867000de98686e5a8b7
+SIZE (laminar/ansi_up.js) = 22159
+SHA256 (laminar/vue.min.js) = 29296ccacaa9ed35ed168fc51e36f54fd6f8db9c7786bbf38cc59a27229ba5c2
+SIZE (laminar/vue.min.js) = 93670
+SHA256 (laminar/chart.min.js) = fbc45926e6b46845a0f905552a0e0b1331049bff1115ecf94dbe0904d895e710
+SIZE (laminar/chart.min.js) = 199560
+SHA256 (laminar/ohwgiles-laminar-1.3-277a59f1cba75fa763e5838b3443f11686dd5ebb_GH0.tar.gz) = 61fa0b17e2515aace7e98ed1f020314163cbbc6212a1fa94437229a78fcaa62f
+SIZE (laminar/ohwgiles-laminar-1.3-277a59f1cba75fa763e5838b3443f11686dd5ebb_GH0.tar.gz) = 104295
diff --git a/devel/laminar/files/laminard.env.in b/devel/laminar/files/laminard.env.in
new file mode 100644
--- /dev/null
+++ b/devel/laminar/files/laminard.env.in
@@ -0,0 +1,64 @@
+###
+### LAMINAR_HOME
+###
+### Root location containing laminar configuration, database,
+### build workspaces and archive.
+###
+### Default: /var/lib/laminar
+###
+LAMINAR_HOME=%%HOMEDIR%%
+
+### LAMINAR_BIND_HTTP
+###
+### Interface on which laminard will bind to serve the Web UI.
+### May be of the form IP:PORT, unix:PATH/TO/SOCKET or unix-abstract:NAME
+###
+### Default: *:8080
+###
+LAMINAR_BIND_HTTP="*:8080"
+
+### LAMINAR_BIND_RPC
+###
+### Interface on which laminard will bind to accept RPC from laminarc.
+### May be of the form IP:PORT, unix:PATH/TO/SOCKET or unix-abstract:NAME
+###
+### Default: unix-abstract:laminar
+LAMINAR_BIND_RPC="*:8081"
+
+###
+### LAMINAR_TITLE
+###
+### Page title to show in web frontend
+###
+# LAMINAR_TITLE=""
+
+###
+### LAMINAR_KEEP_RUNDIRS
+###
+### Setting this prevents the immediate deletion of job rundirs
+### $LAMINAR_HOME/run/$JOB/$RUN. Value should be an integer represeting
+### the number of rundirs to keep.
+###
+### Default: 0
+###
+# LAMINAR_KEEP_RUNDIRS=0
+
+###
+### LAMINAR_BASE_URL
+###
+### Base url for the frontend. This affects the <base href> tag and needs
+### to be set if Laminar runs behind a reverse-proxy that hosts Laminar
+### within a subfolder (rather than at a subdomain root)
+###
+# LAMINAR_BASE_URL="/""
+
+###
+### LAMINAR_ARCHIVE_URL
+###
+### Base url used to request artifacts. Laminar can serve build
+### artifacts (and it will if you leave this unset), but it
+### uses a very naive and inefficient method. Best to let a real
+### webserver handle serving those requests.
+###
+# LAMINAR_ARCHIVE_URL="http://backbone.example.com/ci/archive/"
+
diff --git a/devel/laminar/files/laminard.in b/devel/laminar/files/laminard.in
new file mode 100755
--- /dev/null
+++ b/devel/laminar/files/laminard.in
@@ -0,0 +1,32 @@
+#! /bin/sh
+
+# PROVIDE: %%LAMINARD%%
+# REQUIRE: DAEMON
+# KEYWORD: shutdown
+
+#
+# Add the following lines to /etc/rc.conf to enable git_daemon:
+#
+#laminard_enable="YES"
+
+. /etc/rc.subr
+
+name="%%LAMINARD%%"
+rcvar="%%LAMINARD%%_enable"
+
+pidfile="/var/run/${name}.pid"
+logfile="/var/log/${name}.log"
+
+load_rc_config $name
+
+: ${%%PORTNAME%%d_enable:=NO}
+: ${%%PORTNAME%%d_env_file:=%%ETCDIR%%/%%LAMINARD%%.env}
+
+laminard_cmd=%%PREFIX%%/sbin/${name}
+procname=${laminard_cmd}
+#laminard_args="-v"
+command=/usr/sbin/daemon
+command_args="-f -o ${logfile} -p ${pidfile} -u %%USERS%% ${laminard_cmd} ${laminard_args}"
+
+run_rc_command "$1"
+
diff --git a/devel/laminar/pkg-descr b/devel/laminar/pkg-descr
new file mode 100644
--- /dev/null
+++ b/devel/laminar/pkg-descr
@@ -0,0 +1,5 @@
+Laminar is a lightweight client-server CI service written in C++ and
+configured by environment variables. It comes with a built-in webserver
+and uses simple .run shell scripts as jobs.
+
+The client-server communication uses the Cap'n Proto format over sockets.
diff --git a/devel/laminar/pkg-plist b/devel/laminar/pkg-plist
new file mode 100644
--- /dev/null
+++ b/devel/laminar/pkg-plist
@@ -0,0 +1,10 @@
+bin/laminarc
+@sample %%ETCDIR%%/%%LAMINARD%%.env.sample
+sbin/laminard
+share/man/man1/laminarc.1.gz
+share/man/man8/laminard.8.gz
+usr/share/bash-completion/completions/laminarc
+usr/share/zsh/site-functions/_laminarc
+@dir(%%USERS%%,%%GROUPS%%) %%HOMEDIR%%/cfg/jobs
+@dir(%%USERS%%,%%GROUPS%%) %%HOMEDIR%%/cfg
+@dir(%%USERS%%,%%GROUPS%%) %%HOMEDIR%%
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Jan 21, 6:39 AM (21 h, 9 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
16002213
Default Alt Text
D42877.id130946.diff (6 KB)
Attached To
Mode
D42877: devel/laminar: New port
Attached
Detach File
Event Timeline
Log In to Comment