git: ad93f0333406 - main - x11/hamclock: New port: Handy clock with features for amateur radio operators

From: Jose Alonso Cardenas Marquez <acm_at_FreeBSD.org>
Date: Sun, 22 May 2022 07:31:57 UTC
The branch main has been updated by acm:

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

commit ad93f0333406bcff29e98d6d734e29e184e3555d
Author:     Jose Alonso Cardenas Marquez <acm@FreeBSD.org>
AuthorDate: 2022-05-22 07:30:46 +0000
Commit:     Jose Alonso Cardenas Marquez <acm@FreeBSD.org>
CommitDate: 2022-05-22 07:30:46 +0000

    x11/hamclock: New port: Handy clock with features for amateur radio operators
    
    HamClock is a handy clock with features for amateur radio operators! One screen
    shows your local time in 12H and 24H format along with UTC in large, easy to
    read text. If your location is available, your grid square, local sunrise and
    sunset are also displayed
    
    WWW: https://www.clearskyinstitute.com/ham/HamClock/
---
 x11/Makefile                             |  1 +
 x11/hamclock/Makefile                    | 42 ++++++++++++++++++++++++++++++++
 x11/hamclock/distinfo                    |  3 +++
 x11/hamclock/files/patch-ESPHamClock.ino | 12 +++++++++
 x11/hamclock/files/patch-Makefile        | 28 +++++++++++++++++++++
 x11/hamclock/pkg-descr                   |  6 +++++
 6 files changed, 92 insertions(+)

diff --git a/x11/Makefile b/x11/Makefile
index 3d5c648cd3d9..038785444fd2 100644
--- a/x11/Makefile
+++ b/x11/Makefile
@@ -105,6 +105,7 @@
     SUBDIR += guake
     SUBDIR += gxkb
     SUBDIR += havoc
+    SUBDIR += hamclock
     SUBDIR += hhpc
     SUBDIR += hs-xmobar
     SUBDIR += hsetroot
diff --git a/x11/hamclock/Makefile b/x11/hamclock/Makefile
new file mode 100644
index 000000000000..1c62811034b1
--- /dev/null
+++ b/x11/hamclock/Makefile
@@ -0,0 +1,42 @@
+PORTNAME=	hamclock
+PORTVERSION=	2.78
+CATEGORIES=	x11
+MASTER_SITES=	https://www.clearskyinstitute.com/ham/HamClock/
+DISTNAME=	ESPHamClock
+
+MAINTAINER=	acm@FreeBSD.org
+COMMENT=	Handy clock with features for amateur radio operators
+
+LIB_DEPENDS=	libcurl.so:ftp/curl
+
+USES=		desktop-file-utils gmake xorg zip
+USE_XORG=	x11
+
+OPTIONS_SINGLE=	RESOLUTION
+OPTIONS_SINGLE_RESOLUTION=SIZE1 SIZE2 SIZE3 SIZE4
+SIZE1_DESC=	Use 800x440 resolution
+SIZE2_DESC=	Use 1600x960 resolution
+SIZE3_DESC=	Use 2400x1440 resolution
+SIZE4_DESC=	Use 3200x1920 resolution
+OPTIONS_DEFAULT=	SIZE1
+
+SIZE1_ALL_TARGET=	hamclock-800x480
+SIZE2_ALL_TARGET=	hamclock-1600x960
+SIZE3_ALL_TARGET=	hamclock-2400x1440
+SIZE4_ALL_TARGET=	hamclock-3200x1920
+
+PLIST_FILES=	bin/hamclock \
+		share/applications/hamclock.desktop \
+		share/icons/hicolor/48x48/apps/hamclock.png
+
+post-patch:
+	${REINPLACE_CMD} -e 's|CXX =|CXX ?=|g' ${WRKSRC}/ArduinoLib/Makefile
+	${REINPLACE_CMD} -e 's|/home/pi/.hamclock/||g' ${WRKSRC}/${PORTNAME}.desktop
+
+do-install:
+	@${MKDIR} ${STAGEDIR}${PREFIX}/share/icons/hicolor/48x48/apps
+	${INSTALL_PROGRAM} ${WRKSRC}/${ALL_TARGET} ${STAGEDIR}${PREFIX}/bin/${PORTNAME}
+	${INSTALL_DATA} ${WRKSRC}/${PORTNAME}.png ${STAGEDIR}${PREFIX}/share/icons/hicolor/48x48/apps/${PORTNAME}.png
+	${INSTALL_DATA} ${WRKSRC}/${PORTNAME}.desktop ${STAGEDIR}${PREFIX}/share/applications/${PORTNAME}.desktop
+
+.include <bsd.port.mk>
diff --git a/x11/hamclock/distinfo b/x11/hamclock/distinfo
new file mode 100644
index 000000000000..eaf89ddf09f9
--- /dev/null
+++ b/x11/hamclock/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1653204084
+SHA256 (ESPHamClock.zip) = 7b194bd0228c5a05ede1833bc588ec2197d1c66ebd68dcda184bb5e7e02f9b8a
+SIZE (ESPHamClock.zip) = 1280434
diff --git a/x11/hamclock/files/patch-ESPHamClock.ino b/x11/hamclock/files/patch-ESPHamClock.ino
new file mode 100644
index 000000000000..7a90ed213f30
--- /dev/null
+++ b/x11/hamclock/files/patch-ESPHamClock.ino
@@ -0,0 +1,12 @@
+--- ESPHamClock.ino.orig	2022-04-30 15:37:10.367129000 -0500
++++ ESPHamClock.ino	2022-04-30 15:37:48.165833000 -0500
+@@ -1,6 +1,9 @@
+ /* HamClock
+  */
+ 
++#if defined(__FreeBSD__)
++#include <execinfo.h>
++#endif
+ 
+ // glue
+ #include "HamClock.h"
diff --git a/x11/hamclock/files/patch-Makefile b/x11/hamclock/files/patch-Makefile
new file mode 100644
index 000000000000..2ca33b392167
--- /dev/null
+++ b/x11/hamclock/files/patch-Makefile
@@ -0,0 +1,28 @@
+--- Makefile.orig	2022-03-30 19:58:30.000000000 -0500
++++ Makefile	2022-04-30 15:52:35.521899000 -0500
+@@ -8,10 +8,11 @@
+ .PHONY: clean clobber help
+ 
+ # build flags common to all options and architectures
+-CXXFLAGS = -IArduinoLib -I. -g -O2 -Wall -DARDUINO=100 -pthread -std=c++0x
++CXXFLAGS ?= -g -O2 -Wall
++CXXFLAGS += -IArduinoLib -I. -DARDUINO=100 -std=c++0x
+ LDXXFLAGS = -LArduinoLib -g -pthread
+ LIBS = -lpthread -larduino
+-CXX = g++
++CXX ?= g++
+ 
+ 
+ # macOS does not have X11 by default; this assumes XQuartz has been installed
+@@ -20,6 +21,11 @@
+     LDXXFLAGS += -L/opt/X11/lib
+ endif
+ 
++ifeq ($(shell uname -s), FreeBSD)
++    CXXFLAGS += -I$(LOCALBASE)/include
++    LDXXFLAGS += -L$(LOCALBASE)/lib
++    LIBS = -pthread -larduino -lexecinfo
++endif
+ 
+ # FreeBSD needs libgpio
+ ifeq ($(shell [ -r /usr/include/libgpio.h ]; echo $$?), 0)
diff --git a/x11/hamclock/pkg-descr b/x11/hamclock/pkg-descr
new file mode 100644
index 000000000000..adb099ae242f
--- /dev/null
+++ b/x11/hamclock/pkg-descr
@@ -0,0 +1,6 @@
+HamClock is a handy clock with features for amateur radio operators! One screen
+shows your local time in 12H and 24H format along with UTC in large, easy to
+read text. If your location is available, your grid square, local sunrise and
+sunset are also displayed
+
+WWW: https://www.clearskyinstitute.com/ham/HamClock/