summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Le Cuirot <chewi@gentoo.org>2022-09-25 16:09:53 +0100
committerJames Le Cuirot <chewi@gentoo.org>2022-09-25 16:09:53 +0100
commit1e43be87033508e2d6161ceb62b241a872450e43 (patch)
tree43540c748eccbd2e01c2734f57abaf7a789a45cd /sci-geosciences
parentacct-user/owntracks: New user for sci-geosciences/owntracks-recorder (diff)
downloadgentoo-1e43be87033508e2d6161ceb62b241a872450e43.tar.gz
gentoo-1e43be87033508e2d6161ceb62b241a872450e43.tar.bz2
gentoo-1e43be87033508e2d6161ceb62b241a872450e43.zip
sci-geosciences/owntracks-recorder: New package at version 0.9.1
Signed-off-by: James Le Cuirot <chewi@gentoo.org>
Diffstat (limited to 'sci-geosciences')
-rw-r--r--sci-geosciences/owntracks-recorder/Manifest1
-rw-r--r--sci-geosciences/owntracks-recorder/files/ot-recorder.initd13
-rw-r--r--sci-geosciences/owntracks-recorder/files/owntracks-recorder-build.patch119
-rw-r--r--sci-geosciences/owntracks-recorder/files/owntracks-recorder-no-mqtt.patch42
-rw-r--r--sci-geosciences/owntracks-recorder/metadata.xml21
-rw-r--r--sci-geosciences/owntracks-recorder/owntracks-recorder-0.9.1.ebuild116
6 files changed, 312 insertions, 0 deletions
diff --git a/sci-geosciences/owntracks-recorder/Manifest b/sci-geosciences/owntracks-recorder/Manifest
new file mode 100644
index 000000000000..b001a519ba3b
--- /dev/null
+++ b/sci-geosciences/owntracks-recorder/Manifest
@@ -0,0 +1 @@
+DIST owntracks-recorder-0.9.1.tar.gz 3306544 BLAKE2B 982764f6319bb9ae530d4eaf95679b26d98f64bb1b1a4c3c461cb3c17e76f27058836bc21bb014f16a37825636c34f6b90bec8890587b957a1741d27737812d5 SHA512 4a31acf648d7b9520eb7c08bbe318c2a63f2cd416f939a5ef7a052f9ab2dcfbdac1a69e71d02efbfa108ed2b5ee26019491845053344c37cc52c62d654075ee1
diff --git a/sci-geosciences/owntracks-recorder/files/ot-recorder.initd b/sci-geosciences/owntracks-recorder/files/ot-recorder.initd
new file mode 100644
index 000000000000..e754531e0e43
--- /dev/null
+++ b/sci-geosciences/owntracks-recorder/files/ot-recorder.initd
@@ -0,0 +1,13 @@
+#!/sbin/openrc-run
+# Copyright 2022 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ need net
+}
+
+name="OwnTracks Recorder"
+pidfile="/run/${RC_SVCNAME}.pid"
+command="/usr/sbin/ot-recorder"
+command_user="owntracks"
+command_background="yes"
diff --git a/sci-geosciences/owntracks-recorder/files/owntracks-recorder-build.patch b/sci-geosciences/owntracks-recorder/files/owntracks-recorder-build.patch
new file mode 100644
index 000000000000..0209e73cef50
--- /dev/null
+++ b/sci-geosciences/owntracks-recorder/files/owntracks-recorder-build.patch
@@ -0,0 +1,119 @@
+https://github.com/owntracks/recorder/pull/402
+
+diff --git a/Makefile b/Makefile
+index f2b9a41..546dd58 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,6 +1,6 @@
+ include config.mk
+
+-CFLAGS +=-Wall -Werror -DNS_ENABLE_IPV6
++CFLAGS += -Wall -DNS_ENABLE_IPV6
+ LIBS = $(MORELIBS) -lm
+ LIBS += -lcurl -lconfig
+
+@@ -23,10 +23,18 @@ CFLAGS += -DGHASHPREC=$(GHASHPREC)
+ LIBS += -llmdb
+ LIBS += -lpthread
+
++define CPP_CONDITION
++printf '#if $(1) \n
++true \n
++#else \n
++#error false \n
++#endif' | $(CPP) -P - >/dev/null 2>&1 && echo yes
++endef
++
+ ifeq ($(WITH_MQTT),yes)
+ CFLAGS += -DWITH_MQTT=1
+- CFLAGS += $(MOSQUITTO_INC)
+- LIBS += $(MOSQUITTO_LIB) -lmosquitto -lm
++ CFLAGS += $(MOSQUITTO_CFLAGS)
++ LIBS += $(MOSQUITTO_LIBS) -lm
+ endif
+
+ ifeq ($(WITH_PING),yes)
+@@ -56,6 +64,12 @@ endif
+ ifeq ($(WITH_TOURS),yes)
+ CFLAGS += -DWITH_TOURS
+ OTR_EXTRA_OBJS +=
++
++ # Debian requires uuid-dev
++ # RHEL/CentOS needs libuuid-devel
++ ifeq ($(shell $(call CPP_CONDITION,__linux__)),yes)
++ LIBS += -luuid
++ endif
+ endif
+
+ ifeq ($(WITH_GREENWICH),yes)
+@@ -77,14 +91,16 @@ TARGETS += ot-recorder ocat
+ GIT_VERSION := $(shell git describe --long --abbrev=10 --dirty --tags 2>/dev/null || echo "tarball")
+ CFLAGS += -DGIT_VERSION=\"$(GIT_VERSION)\"
+
++PKG_CONFIG ?= pkg-config
++
+ all: $(TARGETS)
+
+ ot-recorder: recorder.o $(OTR_OBJS) $(OTR_EXTRA_OBJS)
+- $(CC) $(CFLAGS) -o ot-recorder recorder.o $(OTR_OBJS) $(OTR_EXTRA_OBJS) $(LIBS)
++ $(CC) $(CFLAGS) $(LDFLAGS) -o ot-recorder recorder.o $(OTR_OBJS) $(OTR_EXTRA_OBJS) $(LIBS)
+ if test -r codesign.sh; then /bin/sh codesign.sh; fi
+
+ ocat: ocat.o $(OTR_OBJS)
+- $(CC) $(CFLAGS) -o ocat ocat.o $(OTR_OBJS) $(LIBS)
++ $(CC) $(CFLAGS) $(LDFLAGS) -o ocat ocat.o $(OTR_OBJS) $(LIBS)
+
+ $(OTR_OBJS): config.mk Makefile
+
+@@ -114,8 +130,8 @@ install: ot-recorder ocat
+ mkdir -p $(DESTDIR)$(INSTALLDIR)/bin
+ mkdir -p $(DESTDIR)$(INSTALLDIR)/sbin
+ mkdir -p $(DESTDIR)$(DOCROOT)
+- mkdir -p $(DESTDIR)$(STORAGEDEFAULT)/last
+- cp -R docroot/* $(DESTDIR)$(DOCROOT)/
++ mkdir -p $(DESTDIR)$(STORAGEDEFAULT)
++ cd docroot && find ! -type d ! -name .gitignore -exec install -m0644 -D {} $(DESTDIR)$(DOCROOT)/{} \;
+ install -m 0755 ot-recorder $(DESTDIR)$(INSTALLDIR)/sbin
+ install -m 0755 ocat $(DESTDIR)$(INSTALLDIR)/bin
+ mkdir -p `dirname $(DESTDIR)/$(CONFIGFILE)`
+diff --git a/config.mk.in b/config.mk.in
+index 6fd674d..9def768 100644
+--- a/config.mk.in
++++ b/config.mk.in
+@@ -40,7 +40,7 @@ WITH_MQTT ?= yes
+ WITH_HTTP ?= yes
+
+ # Do you want recorder support for shared views? Requires WITH_HTTP
+-# also requires -luuid on Linux (see below at MORELIBS)
++# also requires -luuid on Linux.
+ WITH_TOURS ?= yes
+
+ # Do you have Lua libraries installed and want the Lua hook integration?
+@@ -90,12 +90,8 @@ JSON_INDENT ?= no
+ CONFIGFILE = /etc/default/ot-recorder
+
+ # Optionally specify the path to the Mosquitto libs, include here
+-MOSQUITTO_INC = -I/usr/include
+-MOSQUITTO_LIB = -L/usr/lib
+-
+-# Debian requires uuid-dev
+-# RHEL/CentOS needs libuuid-devel
+-MORELIBS += -luuid # -lssl
++MOSQUITTO_CFLAGS = `$(PKG_CONFIG) --cflags libmosquitto`
++MOSQUITTO_LIBS = `$(PKG_CONFIG) --libs libmosquitto`
+
+ # Milliseconds (ms) timeout for reverse geocoding
+ GEOCODE_TIMEOUT = 4000
+@@ -105,8 +101,8 @@ GEOCODE_TIMEOUT = 4000
+ # and in particular could require you to add the lua+version (e.g lua-5.2)
+ # to both pkg-config invocations
+
+-LUA_CFLAGS = `pkg-config --cflags lua`
+-LUA_LIBS = `pkg-config --libs lua`
++LUA_CFLAGS = `$(PKG_CONFIG) --cflags lua`
++LUA_LIBS = `$(PKG_CONFIG) --libs lua`
+
+-SODIUM_CFLAGS = `pkg-config --cflags libsodium`
+-SODIUM_LIBS = `pkg-config --libs libsodium`
++SODIUM_CFLAGS = `$(PKG_CONFIG) --cflags libsodium`
++SODIUM_LIBS = `$(PKG_CONFIG) --libs libsodium`
diff --git a/sci-geosciences/owntracks-recorder/files/owntracks-recorder-no-mqtt.patch b/sci-geosciences/owntracks-recorder/files/owntracks-recorder-no-mqtt.patch
new file mode 100644
index 000000000000..e10c160854a7
--- /dev/null
+++ b/sci-geosciences/owntracks-recorder/files/owntracks-recorder-no-mqtt.patch
@@ -0,0 +1,42 @@
+From 2fe60c9684f93b67f549ed3d70f883a9a098fc7b Mon Sep 17 00:00:00 2001
+From: Jan-Piet Mens <jp@mens.de>
+Date: Fri, 23 Sep 2022 22:10:48 +0200
+Subject: [PATCH] FIX: now compiles without MQTT addresses #401
+
+---
+ recorder.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/recorder.c b/recorder.c
+index 12fa921..c65acef 100644
+--- a/recorder.c
++++ b/recorder.c
+@@ -494,10 +494,12 @@ void do_request(struct udata *ud, UT_string *username, UT_string *device, char *
+ return;
+ }
+
++#ifdef WITH_MQTT
+ if ((js = json_stringify(resp, " ")) != NULL) {
+ publish(ud, UB(fulltopic), js);
+ free(js);
+ }
++#endif
+ json_delete(resp);
+
+ } else if (strcmp(request_type, "tours") == 0) {
+@@ -558,10 +560,12 @@ void do_request(struct udata *ud, UT_string *username, UT_string *device, char *
+ return;
+ }
+
++#ifdef WITH_MQTT
+ if ((js = json_stringify(resp, " ")) != NULL) {
+ publish(ud, UB(fulltopic), js);
+ free(js);
+ }
++#endif
+
+ json_delete(resp);
+
+--
+2.37.2
+
diff --git a/sci-geosciences/owntracks-recorder/metadata.xml b/sci-geosciences/owntracks-recorder/metadata.xml
new file mode 100644
index 000000000000..2292ec7fa9c4
--- /dev/null
+++ b/sci-geosciences/owntracks-recorder/metadata.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>chewi@gentoo.org</email>
+ <name>James Le Cuirot</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">owntracks/recorder</remote-id>
+ </upstream>
+ <use>
+ <flag name="crypt">Enable support for payload encryption with <pkg>dev-libs/libsodium</pkg></flag>
+ <flag name="greenwich">Enable support for the OwnTracks Greenwich firmware</flag>
+ <flag name="http">Enable support for the built-in HTTP REST API</flag>
+ <flag name="kill">Enable support removing data via the API (dangerous)</flag>
+ <flag name="lua">Enable support for Lua hook integration</flag>
+ <flag name="mqtt">Enable MQTT support</flag>
+ <flag name="ping">Enable support for the "pingping" monitoring feature</flag>
+ <flag name="tours">Enable recorder support for shared views</flag>
+ </use>
+</pkgmetadata>
diff --git a/sci-geosciences/owntracks-recorder/owntracks-recorder-0.9.1.ebuild b/sci-geosciences/owntracks-recorder/owntracks-recorder-0.9.1.ebuild
new file mode 100644
index 000000000000..c3bf48f119ed
--- /dev/null
+++ b/sci-geosciences/owntracks-recorder/owntracks-recorder-0.9.1.ebuild
@@ -0,0 +1,116 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LUA_COMPAT=( lua5-{3..4} )
+
+inherit lua-single prefix systemd toolchain-funcs
+
+MY_PN="ot-recorder"
+DESCRIPTION="Stores and accesses location data published by the OwnTracks apps"
+HOMEPAGE="https://owntracks.org"
+SRC_URI="https://github.com/${PN/-//}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+LICENSE="GPL-2+ MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm"
+IUSE="crypt +http greenwich kill lua +mqtt +ping +tours"
+
+REQUIRED_USE="
+ lua? ( ${LUA_REQUIRED_USE} )
+ tours? ( http )
+"
+
+IDEPEND="
+ acct-group/owntracks
+ acct-user/owntracks
+"
+
+DEPEND="
+ dev-db/lmdb:=
+ dev-libs/libconfig:=
+ net-misc/curl
+ crypt? ( dev-libs/libsodium:= )
+ lua? ( ${LUA_DEPS} )
+ mqtt? ( app-misc/mosquitto )
+ tours? ( sys-apps/util-linux )
+"
+
+RDEPEND="
+ ${IDEPEND}
+ ${DEPEND}
+"
+
+BDEPEND="
+ virtual/pkgconfig
+"
+
+S="${WORKDIR}/${P#*-}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-no-mqtt.patch
+ "${FILESDIR}"/${PN}-build.patch
+)
+
+pkg_setup() {
+ use lua && lua-single_pkg_setup
+}
+
+src_prepare() {
+ default
+ hprefixify etc/${MY_PN}.service
+ mv $(prefixify_ro config.mk.in) config.mk || die
+}
+
+src_configure() {
+ myconf=(
+ WITH_MQTT=$(usex mqtt)
+ WITH_PING=$(usex ping)
+ WITH_LUA=$(usex lua)
+ WITH_ENCRYPT=$(usex crypt)
+ WITH_KILL=$(usex kill)
+ WITH_HTTP=$(usex http)
+ WITH_TOURS=$(usex tours)
+ WITH_GREENWICH=$(usex greenwich)
+
+ CC="$(tc-getCC)"
+ PKG_CONFIG="$(tc-getPKG_CONFIG)"
+ INSTALLDIR="${EPREFIX}/usr"
+ STORAGEDEFAULT="${EPREFIX}/var/db/${MY_PN}"
+ DOCROOT="${EPREFIX}/var/www/${MY_PN}/htdocs"
+ CONFIGFILE="${EPREFIX}/etc/${MY_PN}.conf"
+
+ # The .pc file currently hardcodes "lib".
+ MOSQUITTO_LIBS=-lmosquitto
+
+ # Allow further customisation by users.
+ "${OTR_CONF[@]}"
+ )
+
+ use lua && myconf+=(
+ LUA_CFLAGS="$(lua_get_CFLAGS)"
+ LUA_LIBS="$(lua_get_LIBS)"
+ )
+}
+
+src_compile() {
+ emake "${myconf[@]}"
+}
+
+src_install() {
+ emake install "${myconf[@]}" DESTDIR="${ED}"
+ dodoc *.md doc/*.md
+
+ newinitd "${FILESDIR}"/${MY_PN}.initd ${MY_PN}
+ systemd_dounit etc/${MY_PN}.service
+
+ keepdir /var/db/${MY_PN}
+}
+
+pkg_preinst() {
+ fowners owntracks:owntracks /var/db/${MY_PN}
+ fperms 750 /var/db/${MY_PN}
+
+ fowners root:owntracks /etc/${MY_PN}.conf
+ fperms 0640 /etc/${MY_PN}.conf
+}