git: 753f37087249 - main - net/teddycloud: update to 0.6.2

From: Matthias Fechner <mfechner_at_FreeBSD.org>
Date: Tue, 05 Nov 2024 06:56:00 UTC
The branch main has been updated by mfechner:

URL: https://cgit.FreeBSD.org/ports/commit/?id=753f37087249da4f51266d10e1b7de53cc98bc64

commit 753f37087249da4f51266d10e1b7de53cc98bc64
Author:     Matthias Fechner <mfechner@FreeBSD.org>
AuthorDate: 2024-11-04 15:02:48 +0000
Commit:     Matthias Fechner <mfechner@FreeBSD.org>
CommitDate: 2024-11-05 06:51:40 +0000

    net/teddycloud: update to 0.6.2
    
    Thanks to Michael (maintainer) for fixing the linker issue, see also here:
    https://github.com/toniebox-reverse-engineering/teddycloud/pull/242
    
    The next release of teddycloud will include all necessary modifications, so patches
    can be removed from ports with a newer release.
    
    Changes:        https://github.com/toniebox-reverse-engineering/teddycloud/releases
    
    PR:             282541
    Approved by:    freebsd@pe82.de (maintainer)
---
 net/teddycloud/Makefile                            | 28 ++++++++----
 net/teddycloud/distinfo                            | 26 +++++------
 net/teddycloud/files/patch-Makefile                | 48 +++++++++++++++++---
 .../patch-src_cyclone_common_compiler__port.h      | 11 +++++
 net/teddycloud/pkg-message                         | 27 +++++++++++
 net/teddycloud/pkg-plist                           | 52 ++++++++++++++++++----
 6 files changed, 156 insertions(+), 36 deletions(-)

diff --git a/net/teddycloud/Makefile b/net/teddycloud/Makefile
index f10e5cd2e34b..c977e360fb62 100644
--- a/net/teddycloud/Makefile
+++ b/net/teddycloud/Makefile
@@ -1,10 +1,10 @@
 PORTNAME=	teddycloud
 DISTVERSIONPREFIX=	tc_v
-DISTVERSION=	0.3.5
+DISTVERSION=	0.6.2
 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
+MASTER_SITES=	https://raw.githubusercontent.com/toniebox-reverse-engineering/tonies-json/85a888e355f20ef300e581ad11feb4ac623e62d6/:toniesjson
 DISTFILES=	tonies.json:toniesjson \
 		tonieboxes.json:toniesjson
 EXTRACT_ONLY=	${DISTFILES:N*\:toniesjson:C/\:.*//}
@@ -34,15 +34,28 @@ GH_SUBDIR=	cJSON:cJSON ogg:ogg opus:opus teddycloud_web:teddycloud_web \
 # 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 \
+GH_TAGNAME=	v1.7.15-33-gacc7623:cJSON \
+		v1.3.5-9-gdb5c7a4:ogg \
+		v1.4-7-g101a71e0:opus \
+		tcw_v0.6.2: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
+		RUNTIME_BASE_PATH=${PREFIX}/share/teddycloud \
+		NO_SANITIZERS=1
+# can be used if https://github.com/toniebox-reverse-engineering/teddycloud/pull/243 is included
+# and patch for Makefile is then obsolete
+#		GIT_DIRTY=0 \
+#		GIT_BUILD_TIME="2024-10-26 18:14:34 +0000" \
+#		GIT_SHORT_SHA=203f12d \
+#		GIT_SHA=203f12d3d357d16268b83c7bdedb332820b9e87a \
+#		GIT_TAG=tc_v0.6.2 \
+#		WEB_GIT_DIRTY=0 \
+#		WEB_GIT_BUILD_TIME="2024-10-26 06:25:22 +0200" \
+#		WEB_GIT_SHORT_SHA=e4d9fc1 \
+#		WEB_GIT_SHA=e4d9fc19e493933c2020be2d40ee5de2f07d7eef \
+#		WEB_GIT_TAG=tcw_v0.6.2
 # This did reliably fail due to some unknown deps when using parallel build
 MAKE_JOBS_UNSAFE=	yes
 ALL_TARGET=	preinstall
@@ -53,7 +66,6 @@ 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)
diff --git a/net/teddycloud/distinfo b/net/teddycloud/distinfo
index fd6908c8e56e..b5004bef8048 100644
--- a/net/teddycloud/distinfo
+++ b/net/teddycloud/distinfo
@@ -1,18 +1,18 @@
-TIMESTAMP = 1730528281
-SHA256 (tonies.json) = 1316eb7076dc49fe49fd51b8843cb29285090c574201714bf97898955c2cb243
-SIZE (tonies.json) = 5006642
+TIMESTAMP = 1730732169
+SHA256 (tonies.json) = 074396727ba9738c5061bb3e22bb2e505af255adecd00b07444465ee7083156e
+SIZE (tonies.json) = 5035861
 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 (toniebox-reverse-engineering-teddycloud-tc_v0.6.2_GH0.tar.gz) = 1cb3436f5099ddcaaca4b32021d7fa269c1359b257542ad31aa3bc9fbb13099f
+SIZE (toniebox-reverse-engineering-teddycloud-tc_v0.6.2_GH0.tar.gz) = 11587377
+SHA256 (toniebox-reverse-engineering-teddycloud_web-tcw_v0.6.2_GH0.tar.gz) = aecff11ca81d0c2c9af238202e71797f21ddcd2c1ab9f5f7e40cab45a041a2a2
+SIZE (toniebox-reverse-engineering-teddycloud_web-tcw_v0.6.2_GH0.tar.gz) = 6844210
+SHA256 (DaveGamble-cJSON-v1.7.15-33-gacc7623_GH0.tar.gz) = a87a20cbe1245922a8b19fd586b0e2567a5c56a57f9e2d283dbea23a5722a519
+SIZE (DaveGamble-cJSON-v1.7.15-33-gacc7623_GH0.tar.gz) = 354833
+SHA256 (xiph-ogg-v1.3.5-9-gdb5c7a4_GH0.tar.gz) = fac013405bc8ac0e1754b2de64455bc2d73c06ef181df8eb3b48d6addecd69c1
+SIZE (xiph-ogg-v1.3.5-9-gdb5c7a4_GH0.tar.gz) = 251955
+SHA256 (xiph-opus-v1.4-7-g101a71e0_GH0.tar.gz) = d6410f6fb6334672a8b4d1441a8549a6e972a811509b61b77c349a4ef553ac14
+SIZE (xiph-opus-v1.4-7-g101a71e0_GH0.tar.gz) = 855253
 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
diff --git a/net/teddycloud/files/patch-Makefile b/net/teddycloud/files/patch-Makefile
index 97473952121d..1b889c0270f5 100644
--- a/net/teddycloud/files/patch-Makefile
+++ b/net/teddycloud/files/patch-Makefile
@@ -1,6 +1,15 @@
---- Makefile.orig	2024-01-22 13:39:05 UTC
+--- Makefile.orig	2024-10-26 18:14:34 UTC
 +++ Makefile
-@@ -40,11 +40,11 @@ else
+@@ -24,7 +24,7 @@ else
+ 	build_os_id:="windows"
+ else
+ 	SHELL_ENV ?= bash
+-	build_arch:="$(shell arch)"
++	build_arch:="$(shell uname -m)"
+ 	build_os_id:="$(shell grep "^ID=" /etc/os-release | cut -d'=' -f2- | tr -d '"')"
+ endif
+ 
+@@ -47,11 +47,11 @@ endif
  build_rawDateTime:="${shell date "+%Y-%m-%d %H:%M:%S %z"}"
  endif
  
@@ -10,10 +19,37 @@
 -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_gitDateTime:="2024-10-26 18:14:34 +0000"
++build_gitShortSha:=203f12d
++build_gitSha:=203f12d3d357d16268b83c7bdedb332820b9e87a
++build_gitTag:=tc_v0.6.2
  build_platform:=$(PLATFORM)
  build_os:="$(OS)"
  
+@@ -70,12 +70,12 @@ endif
+ 	CFLAGS_VERSION+=-DBUILD_VERSION=\"${build_version}\" 
+ endif
+ 
+-web_gitDirty:=${shell cd $(WEB_SRC_DIR) && git diff --quiet && echo '0' || echo '1'}
+-web_gitDateTime:="${shell cd $(WEB_SRC_DIR) && git log -1 --format=%ai}"
+-web_gitShortSha:=${shell cd $(WEB_SRC_DIR) && git rev-parse --short HEAD}
+-web_gitSha:=${shell cd $(WEB_SRC_DIR) && git rev-parse HEAD}
+-web_gitTag:=${shell cd $(WEB_SRC_DIR) && git name-rev --tags --name-only $(web_gitSha)}
+-web_gitTagPrefix:=$(firstword $(subst _, ,$(web_gitTag)))
++web_gitDirty:=0
++web_gitDateTime:="2024-10-26 06:25:22 +0200"
++web_gitShortSha:=e4d9fc1
++web_gitSha:=e4d9fc19e493933c2020be2d40ee5de2f07d7eef
++web_gitTag:=tcw_v0.6.2
++web_gitTagPrefix:=tcw
+ web_version:=vX.X.X
+ CFLAGS_VERSION+=-DWEB_GIT_IS_DIRTY=${web_gitDirty} -DWEB_GIT_DATETIME=\"${web_gitDateTime}\" -DWEB_RAW_DATETIME=\"${web_rawDateTime}\" -DWEB_GIT_SHORT_SHA=\"${web_gitShortSha}\" -DWEB_GIT_SHA=\"${web_gitSha}\" -DWEB_GIT_TAG=\"${web_gitTag}\"
+ ifeq ($(web_gitTagPrefix),tcw)
+@@ -153,6 +153,7 @@ CFLAGS_linux += -DFFMPEG_DECODING
+ endif
+ CFLAGS_linux += -ggdb
+ CFLAGS_linux += -DFFMPEG_DECODING
++LFLAGS_linux += -pthread -lm
+ 
+ # for now enable extensive error checking
+ # Add flags for extensive error checking if NO_SANITIZERS is not set to 1
diff --git a/net/teddycloud/files/patch-src_cyclone_common_compiler__port.h b/net/teddycloud/files/patch-src_cyclone_common_compiler__port.h
new file mode 100644
index 000000000000..87fdd492b8bf
--- /dev/null
+++ b/net/teddycloud/files/patch-src_cyclone_common_compiler__port.h
@@ -0,0 +1,11 @@
+--- src/cyclone/common/compiler_port.h.orig	2024-11-04 17:31:41 UTC
++++ src/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"
diff --git a/net/teddycloud/pkg-message b/net/teddycloud/pkg-message
new file mode 100644
index 000000000000..ac425a3cd868
--- /dev/null
+++ b/net/teddycloud/pkg-message
@@ -0,0 +1,27 @@
+[
+{ type: install
+  message: <<EOM
+Teddycloud will require exclusive access to following ports:
+80: HTTP port for the webinterface
+8443: HTTPS port for the webinterface
+443: HTTPS API port for Toniebox API
+
+If you have already daemons running using these ports like nginx, apache, haproxy
+it is best to bind an alias IP (second ip) to your network card and use that exclusively
+with teddycloud.
+
+You can tell teddycloud to use this IP.
+At first you must start teddycloud that the config file /usr/local/etc/teddycloud/config.ini is created with command:
+teddycloud
+
+After this you can change the IP teddycloud is using:
+core.server.bind_ip=_your_alias_ip_for_teddycloud
+
+To start teddycloud at startup:
+sysrc teddycloudd_enable="YES"
+
+To start in background:
+service teddycloud start
+EOM
+}
+]
diff --git a/net/teddycloud/pkg-plist b/net/teddycloud/pkg-plist
index 3948fc8ce1bc..fcec3b5efd62 100644
--- a/net/teddycloud/pkg-plist
+++ b/net/teddycloud/pkg-plist
@@ -1,6 +1,7 @@
 bin/teddycloud
 %%ETCDIR%%/tonies.custom.json
 %%ETCDIR%%/tonies.json
+%%ETCDIR%%/tonieboxes.custom.json
 %%ETCDIR%%/tonieboxes.json
 %%DATADIR%%/data/www/404.html
 %%DATADIR%%/data/www/encode_test.html
@@ -8,23 +9,56 @@ bin/teddycloud
 %%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/legacy.html
+%%DATADIR%%/data/www/library/babel.js
 %%DATADIR%%/data/www/library/esptool.js
-%%DATADIR%%/data/www/web/asset-manifest.json
+%%DATADIR%%/data/www/library/react-dom.development.js
+%%DATADIR%%/data/www/library/react.development.js
+%%DATADIR%%/data/www/robots.txt
+%%DATADIR%%/data/www/web/assets/3200_pcb-Dxz0Vi-z.png
+%%DATADIR%%/data/www/web/assets/3235_pcb-BE0vs2bl.png
+%%DATADIR%%/data/www/web/assets/cc3200-B-jSkbsy.jpg
+%%DATADIR%%/data/www/web/assets/cc3235-Cr21bWbC.jpg
+%%DATADIR%%/data/www/web/assets/cc3235_flash-D2YMWv70.jpg
+%%DATADIR%%/data/www/web/assets/cc3235_smd_grippers-MdbEjaZo.jpg
+%%DATADIR%%/data/www/web/assets/esp32-BPYaDt9v.js
+%%DATADIR%%/data/www/web/assets/esp32-B_b6hCjy.jpg
+%%DATADIR%%/data/www/web/assets/esp32_pcb-CWEYHEzm.png
+%%DATADIR%%/data/www/web/assets/esp32_pcb_clamp-Cw2o3uco.png
+%%DATADIR%%/data/www/web/assets/esp32_write_patched_image_with_esptools-DmsBlrjp.png
+%%DATADIR%%/data/www/web/assets/esp32c2-CtjOOsCE.js
+%%DATADIR%%/data/www/web/assets/esp32c3-DDsZSfEd.js
+%%DATADIR%%/data/www/web/assets/esp32c6-BRG5ZpJ8.js
+%%DATADIR%%/data/www/web/assets/esp32h2-Cf8JbGZQ.js
+%%DATADIR%%/data/www/web/assets/esp32p4-DfBdIAkh.js
+%%DATADIR%%/data/www/web/assets/esp32s2-BOsRKhcm.js
+%%DATADIR%%/data/www/web/assets/esp32s3-DkgZlzv1.js
+%%DATADIR%%/data/www/web/assets/esp8266-8VKmCx7J.js
+%%DATADIR%%/data/www/web/assets/index-BU1Nt4kW.css
+%%DATADIR%%/data/www/web/assets/index-ChP2LRih.js
+%%DATADIR%%/data/www/web/assets/logo-aw46LCqE.png
+%%DATADIR%%/data/www/web/assets/openTB_step1_1-4vwQGflo.png
+%%DATADIR%%/data/www/web/assets/openTB_step1_2-DIZc5DI4.png
+%%DATADIR%%/data/www/web/assets/openTB_step2-DhjDRq3m.png
+%%DATADIR%%/data/www/web/assets/openTB_step3-Dn6Mo3hQ.png
+%%DATADIR%%/data/www/web/assets/openTB_step4-Bj5i-Kw_.png
+%%DATADIR%%/data/www/web/assets/openTB_step5-DTGOEBgD.png
+%%DATADIR%%/data/www/web/assets/rom-Caghk6Eh.js
+%%DATADIR%%/data/www/web/assets/tb-esp32-uart-BDPWj6EB.png
+%%DATADIR%%/data/www/web/assets/tb-esp32-uart-clamp-D_86EMpu.png
 %%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
+%%DATADIR%%/data/www/web/translations/es.json
+%%DATADIR%%/data/www/web/translations/fr.json
+%%DATADIR%%/data/www/web/web_version.json
 @dir %%DATADIR%%/certs/client
 @dir %%DATADIR%%/certs/server
 @dir %%DATADIR%%/data/content/default
+@dir %%DATADIR%%/data/firmware/ota/cc3200
+@dir %%DATADIR%%/data/firmware/ota/cc3235
+@dir %%DATADIR%%/data/firmware/ota/esp32
 @dir %%DATADIR%%/data/library