1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-18 00:10:04 +00:00

net/teddycloud: alternative to the public toniebox server

Small fixes applied to build successfully.

PR:		276541
This commit is contained in:
Michael Pape 2024-11-02 08:06:39 +02:00 committed by Matthias Fechner
parent 140acd057f
commit 2faca847a9
8 changed files with 176 additions and 0 deletions

View File

@ -1567,6 +1567,7 @@
SUBDIR += tcpxtract
SUBDIR += td-system-tools
SUBDIR += tdetect
SUBDIR += teddycloud
SUBDIR += termshark
SUBDIR += tftpgrab
SUBDIR += throttled

67
net/teddycloud/Makefile Normal file
View File

@ -0,0 +1,67 @@
PORTNAME= teddycloud
DISTVERSIONPREFIX= tc_v
DISTVERSION= 0.3.5
CATEGORIES= net
# Get the latest commit hashes here: https://github.com/toniebox-reverse-engineering/tonies-json/commits/release/
# NOTE: remove the existing tonies.json and tonieboxes.json from DISTDIR before you do a `make makesum`
MASTER_SITES= https://raw.githubusercontent.com/toniebox-reverse-engineering/tonies-json/d3bde1c301cc509ffced79bb08b40ec769029bbe/:toniesjson
DISTFILES= tonies.json:toniesjson \
tonieboxes.json:toniesjson
EXTRACT_ONLY= ${DISTFILES:N*\:toniesjson:C/\:.*//}
MAINTAINER= freebsd@pe82.de
COMMENT= Alternative cloud server for the Toniebox
WWW= https://tonies-wiki.revvox.de/docs/tools/teddycloud/
LICENSE= GPLv2+
BUILD_DEPENDS+= curl:ftp/curl \
protoc-c:devel/protobuf-c
USES= gmake
USE_GCC= yes
USE_GITHUB= yes
GH_ACCOUNT= toniebox-reverse-engineering:DEFAULT,teddycloud_web \
DaveGamble:cJSON \
xiph:ogg,opus \
Oryx-Embedded:cyclone_common,cyclone_crypto,cyclone_ssl,cyclone_tcp
GH_PROJECT= cJSON:cJSON ogg:ogg opus:opus teddycloud_web:teddycloud_web \
Common:cyclone_common CycloneCRYPTO:cyclone_crypto \
CycloneSSL:cyclone_ssl CycloneTCP:cyclone_tcp
GH_SUBDIR= cJSON:cJSON ogg:ogg opus:opus teddycloud_web:teddycloud_web \
cyclone/common:cyclone_common cyclone/cyclone_crypto:cyclone_crypto \
cyclone/cyclone_ssl:cyclone_ssl cyclone/cyclone_tcp:cyclone_tcp
# find versions here clone the repository and switch to tag
# git submodule update
# git submodule
GH_TAGNAME= v1.7.17:cJSON \
v1.3.5:ogg \
v1.4:opus \
ad73bfa:teddycloud_web \
v2.3.2:cyclone_common,cyclone_crypto,cyclone_ssl,cyclone_tcp
USE_RC_SUBR= teddycloudd
MAKE_ENV+= CONFIG_RUNTIME_BASE_PATH=${PREFIX}/etc/teddycloud \
RUNTIME_BASE_PATH=${PREFIX}/share/teddycloud
# This did reliably fail due to some unknown deps when using parallel build
MAKE_JOBS_UNSAFE= yes
ALL_TARGET= preinstall
post-extract:
pre-install:
@${CP} ${DISTFILES:M*\:toniesjson:C/\:.*//:S,^,${_DISTDIR},} ${WRKSRC}/install/pre/config/
do-install:
${INSTALL_PROGRAM} ${WRKSRC}/install/pre/teddycloud ${STAGEDIR}${PREFIX}/bin
${INSTALL_PROGRAM} ${WRKSRC}/install/pre/teddycloud ${STAGEDIR}${PREFIX}/bin
@${MKDIR} ${STAGEDIR}${DATADIR}/certs
@(cd ${WRKSRC}/install/pre/certs && ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR}/certs)
@${MKDIR} ${STAGEDIR}${DATADIR}/data
@(cd ${WRKSRC}/install/pre/data && ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR}/data)
@${MKDIR} ${STAGEDIR}${DATADIR}/certs
@(cd ${WRKSRC}/install/pre/certs && ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR}/certs)
@${MKDIR} ${STAGEDIR}${PREFIX}/etc/teddycloud
@(cd ${WRKSRC}/install/pre/config && ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/etc/teddycloud)
.include <bsd.port.mk>

23
net/teddycloud/distinfo Normal file
View File

@ -0,0 +1,23 @@
TIMESTAMP = 1730528281
SHA256 (tonies.json) = 1316eb7076dc49fe49fd51b8843cb29285090c574201714bf97898955c2cb243
SIZE (tonies.json) = 5006642
SHA256 (tonieboxes.json) = de50e30f844dcf743617337ba158b67498117f9c459b9ca4d26097aa3cb6b36f
SIZE (tonieboxes.json) = 2736
SHA256 (toniebox-reverse-engineering-teddycloud-tc_v0.3.5_GH0.tar.gz) = eeec26b7375e4ed4a496564930b382be659f117bdf1a0de2146650dec3b35517
SIZE (toniebox-reverse-engineering-teddycloud-tc_v0.3.5_GH0.tar.gz) = 4758871
SHA256 (toniebox-reverse-engineering-teddycloud_web-ad73bfa_GH0.tar.gz) = b9cc6afeca96da521a0014135de87a427cfaed13f55c77acef7b75483a5039fa
SIZE (toniebox-reverse-engineering-teddycloud_web-ad73bfa_GH0.tar.gz) = 386567
SHA256 (DaveGamble-cJSON-v1.7.17_GH0.tar.gz) = c91d1eeb7175c50d49f6ba2a25e69b46bd05cffb798382c19bfb202e467ec51c
SIZE (DaveGamble-cJSON-v1.7.17_GH0.tar.gz) = 353748
SHA256 (xiph-ogg-v1.3.5_GH0.tar.gz) = f6f1b04cfa4e98b70ffe775d5e302d9c6b98541f05159af6de2d6617817ed7d6
SIZE (xiph-ogg-v1.3.5_GH0.tar.gz) = 251765
SHA256 (xiph-opus-v1.4_GH0.tar.gz) = 659e6b223e42a51b0a898632b9a5f406ccd5c2e00aa526ddd1264789774b94e5
SIZE (xiph-opus-v1.4_GH0.tar.gz) = 851780
SHA256 (Oryx-Embedded-Common-v2.3.2_GH0.tar.gz) = 0a251e8a3674f777e33f01a825be0f55b2092bedbedd058b579b0e00d1b0119d
SIZE (Oryx-Embedded-Common-v2.3.2_GH0.tar.gz) = 45692
SHA256 (Oryx-Embedded-CycloneCRYPTO-v2.3.2_GH0.tar.gz) = a37d72648d3e551a9d02106ed42fca5622a3b27d3f7f8540117fe1eb9bfde3cf
SIZE (Oryx-Embedded-CycloneCRYPTO-v2.3.2_GH0.tar.gz) = 886577
SHA256 (Oryx-Embedded-CycloneSSL-v2.3.2_GH0.tar.gz) = 6a9aabf7a50e5546eeab94bd70e10ba908c68dff4ebf993013dc05f36eb1acbe
SIZE (Oryx-Embedded-CycloneSSL-v2.3.2_GH0.tar.gz) = 226189
SHA256 (Oryx-Embedded-CycloneTCP-v2.3.2_GH0.tar.gz) = 30755eba3b96518e325c19b23279560572c7a55135af4378146ac762212a158c
SIZE (Oryx-Embedded-CycloneTCP-v2.3.2_GH0.tar.gz) = 2149879

View File

@ -0,0 +1,19 @@
--- Makefile.orig 2024-01-22 13:39:05 UTC
+++ Makefile
@@ -40,11 +40,11 @@ else
build_rawDateTime:="${shell date "+%Y-%m-%d %H:%M:%S %z"}"
endif
-build_gitDirty:=${shell git diff --quiet && echo '0' || echo '1'}
-build_gitDateTime:="${shell git log -1 --format=%ai}"
-build_gitShortSha:=${shell git rev-parse --short HEAD}
-build_gitSha:=${shell git rev-parse HEAD}
-build_gitTag:=${shell git name-rev --tags --name-only $(build_gitSha)}
+build_gitDirty:=0
+build_gitDateTime:="2024-01-22 13:39:05 +0000"
+build_gitShortSha:=8602da9
+build_gitSha:=8602da92d1080e67c678f476d4cf4de008aa857e
+build_gitTag:=tc_v0.3.5
build_platform:=$(PLATFORM)
build_os:="$(OS)"

View File

@ -0,0 +1,11 @@
--- cyclone/common/compiler_port.h.orig 2024-01-17 21:26:40 UTC
+++ cyclone/common/compiler_port.h
@@ -106,7 +106,7 @@ typedef unsigned int uint_t;
#define PRIXSIZE "X"
#define PRIuTIME "lu"
//Linux GCC compiler
-#elif defined(__linux__)
+#elif defined(__linux__) || defined(__unix__)
#define PRIuSIZE "zu"
#define PRIXSIZE "zX"
#define PRIuTIME "lu"

View File

@ -0,0 +1,20 @@
#!/bin/sh
# PROVIDE: teddycloudd
# REQUIRE: DAEMON
# BEFORE: LOGIN
# KEYWORD: shutdown
. /etc/rc.subr
name=teddycloudd
rcvar=teddycloudd_enable
pidfile="/var/run/${name}.pid"
procname="%%PREFIX%%/bin/teddycloud"
command="/usr/sbin/daemon"
command_args="-p ${pidfile} -t ${name} -o /var/log/teddycloud.log ${procname}"
load_rc_config $name
run_rc_command "$1"

5
net/teddycloud/pkg-descr Normal file
View File

@ -0,0 +1,5 @@
teddycloud is an alternative to the public toniebox server.
It is designed to be used in a local network and does not provide
means of authentication. In order to use this server, certificates
have to be read out of a toniebox, which requires UART access to
the boxes internal processor.

30
net/teddycloud/pkg-plist Normal file
View File

@ -0,0 +1,30 @@
bin/teddycloud
%%ETCDIR%%/tonies.custom.json
%%ETCDIR%%/tonies.json
%%ETCDIR%%/tonieboxes.json
%%DATADIR%%/data/www/404.html
%%DATADIR%%/data/www/encode_test.html
%%DATADIR%%/data/www/favicon.ico
%%DATADIR%%/data/www/img_custom.png
%%DATADIR%%/data/www/img_empty.png
%%DATADIR%%/data/www/img_unknown.png
%%DATADIR%%/data/www/index.html
%%DATADIR%%/data/www/library/esptool.js
%%DATADIR%%/data/www/web/asset-manifest.json
%%DATADIR%%/data/www/web/favicon.ico
%%DATADIR%%/data/www/web/index.html
%%DATADIR%%/data/www/web/manifest.json
%%DATADIR%%/data/www/web/robots.txt
%%DATADIR%%/data/www/web/static/css/main.e6c13ad2.css
%%DATADIR%%/data/www/web/static/css/main.e6c13ad2.css.map
%%DATADIR%%/data/www/web/static/js/main.3c1d6764.js
%%DATADIR%%/data/www/web/static/js/main.3c1d6764.js.LICENSE.txt
%%DATADIR%%/data/www/web/static/js/main.3c1d6764.js.map
%%DATADIR%%/data/www/web/static/media/getFetch.40f37ddea2378391108f.cjs
%%DATADIR%%/data/www/web/static/media/logo.2f09160138082fd1c6f8.png
%%DATADIR%%/data/www/web/translations/de.json
%%DATADIR%%/data/www/web/translations/en.json
@dir %%DATADIR%%/certs/client
@dir %%DATADIR%%/certs/server
@dir %%DATADIR%%/data/content/default
@dir %%DATADIR%%/data/library