git: 22387af7f781 - main - sysutils/fastfetch: Like neofetch, but much faster because written in C

From: Piotr Kubaj <pkubaj_at_FreeBSD.org>
Date: Thu, 06 Jul 2023 20:17:00 UTC
The branch main has been updated by pkubaj:

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

commit 22387af7f781f85ef2ef0d0438e96fedc29b1c9f
Author:     Piotr Kubaj <pkubaj@FreeBSD.org>
AuthorDate: 2023-07-06 13:37:48 +0000
Commit:     Piotr Kubaj <pkubaj@FreeBSD.org>
CommitDate: 2023-07-06 20:16:45 +0000

    sysutils/fastfetch: Like neofetch, but much faster because written in C
    
    Fastfetch is a neofetch-like tool for fetching system information and displaying them in a pretty way. It is written mainly in C, with performance and customizability in mind. Currently, Linux, Android, FreeBSD, MacOS and Windows 7+ are supported.
---
 sysutils/Makefile            |  1 +
 sysutils/fastfetch/Makefile  | 95 ++++++++++++++++++++++++++++++++++++++++++++
 sysutils/fastfetch/distinfo  |  3 ++
 sysutils/fastfetch/pkg-descr |  4 ++
 sysutils/fastfetch/pkg-plist | 18 +++++++++
 5 files changed, 121 insertions(+)

diff --git a/sysutils/Makefile b/sysutils/Makefile
index 2b9d74a710e2..6eff501db8c9 100644
--- a/sysutils/Makefile
+++ b/sysutils/Makefile
@@ -375,6 +375,7 @@
     SUBDIR += faketty
     SUBDIR += fand
     SUBDIR += fanout
+    SUBDIR += fastfetch
     SUBDIR += fatback
     SUBDIR += fcode-utils
     SUBDIR += fconfig
diff --git a/sysutils/fastfetch/Makefile b/sysutils/fastfetch/Makefile
new file mode 100644
index 000000000000..d84e70de2cb7
--- /dev/null
+++ b/sysutils/fastfetch/Makefile
@@ -0,0 +1,95 @@
+PORTNAME=	fastfetch
+DISTVERSION=	1.12.2
+CATEGORIES=	sysutils
+
+MAINTAINER=	pkubaj@FreeBSD.org
+COMMENT=	Like neofetch, but much faster because written in C
+WWW=		https://github.com/fastfetch-cli/fastfetch
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+FLAVORS=	full lite
+FLAVOR?=	${FLAVORS:[1]}
+lite_PKGNAMESUFFIX=	-lite
+
+USES=		cmake pkgconfig
+USE_GITHUB=	yes
+GH_ACCOUNT=	fastfetch-cli
+
+OPTIONS_DEFINE=	LIBPCI VULKAN WAYLAND XCB GIO DCONF DBUS XFCONF \
+		SQLITE3 IMAGEMAGICK CHAFA GLX OPENCL PULSEAUDIO
+
+.if ${FLAVOR} == full
+OPTIONS_DEFAULT=	VULKAN WAYLAND XCB GIO DCONF DBUS XFCONF \
+		SQLITE3 IMAGEMAGICK CHAFA GLX OPENCL PULSEAUDIO
+.endif
+
+DCONF_DESC=	Needed for values that are only stored in DConf + Fallback for GSettings
+CHAFA_DESC=	Image output as ascii art
+LIBPCI_DESC=	GPU output
+VULKAN_DESC=	Vulkan module & fallback for GPU output
+XCB_DESC=	Needed for display and WM detection in X11
+XFCONF_DESC=	Needed for XFWM theme and XFCE Terminal font
+
+LIBPCI_CMAKE_BOOL=	ENABLE_LIBPCI
+LIBPCI_BUILD_DEPENDS=	${LOCALBASE}/lib/libpci.so:devel/libpci
+LIBPCI_RUN_DEPENDS=	${LOCALBASE}/lib/libpci.so:devel/libpci
+
+VULKAN_CMAKE_BOOL=	ENABLE_VULKAN
+VULKAN_BUILD_DEPENDS=	${LOCALBASE}/lib/libvulkan.so:graphics/vulkan-loader \
+			${LOCALBASE}/include/vulkan/vulkan.h:graphics/vulkan-headers
+VULKAN_RUN_DEPENDS=	${LOCALBASE}/lib/libvulkan.so:graphics/vulkan-loader
+
+WAYLAND_CMAKE_BOOL=	ENABLE_WAYLAND
+WAYLAND_BUILD_DEPENDS=	${LOCALBASE}/lib/libwayland-server.so:graphics/wayland
+WAYLAND_RUN_DEPENDS=	${LOCALBASE}/lib/libwayland-server.so:graphics/wayland
+
+XCB_CMAKE_BOOL=	ENABLE_XCB ENABLE_XCB_RANDR
+XCB_BUILD_DEPENDS=	${LOCALBASE}/lib/libxcb-randr.so:x11/libxcb
+XCB_RUN_DEPENDS=	${LOCALBASE}/lib/libxcb-randr.so:x11/libxcb
+
+GIO_CMAKE_BOOL=	ENABLE_GIO
+GIO_BUILD_DEPENDS=	${LOCALBASE}/lib/libgio-2.0.so:devel/glib20
+GIO_RUN_DEPENDS=	${LOCALBASE}/lib/libgio-2.0.so:devel/glib20
+
+DBUS_CMAKE_BOOL=	ENABLE_DBUS
+DBUS_BUILD_DEPENDS=	${LOCALBASE}/lib/libdbus-1.so:devel/dbus
+DBUS_RUN_DEPENDS=	${LOCALBASE}/lib/libdbus-1.so:devel/dbus
+
+DCONF_CMAKE_BOOL=	ENABLE_DCONF
+DCONF_BUILD_DEPENDS=	${LOCALBASE}/lib/libdconf.so:devel/dconf
+DCONF_RUN_DEPENDS=	${LOCALBASE}/lib/libdconf.so:devel/dconf
+
+XFCONF_CMAKE_BOOL=	ENABLE_XFCONF
+XFCONF_BUILD_DEPENDS=	${LOCALBASE}/lib/libxfconf-0.so:x11/xfce4-conf
+XFCONF_RUN_DEPENDS=	${LOCALBASE}/lib/libxfconf-0.so:x11/xfce4-conf
+
+SQLITE3_CMAKE_BOOL=	ENABLE_SQLITE3
+SQLITE3_BUILD_DEPENDS=	${LOCALBASE}/lib/libsqlite3.so:databases/sqlite3
+SQLITE3_RUN_DEPENDS=	${LOCALBASE}/lib/libsqlite3.so:databases/sqlite3
+
+IMAGEMAGICK_CMAKE_BOOL=	ENABLE_IMAGEMAGICK7
+IMAGEMAGICK_USES=	magick:7,build,run
+
+CHAFA_IMPLIES=	IMAGEMAGICK
+CHAFA_CMAKE_BOOL=	ENABLE_CHAFA
+CHAFA_BUILD_DEPENDS=	${LOCALBASE}/lib/libchafa.so:graphics/chafa
+CHAFA_RUN_DEPENDS=	${LOCALBASE}/lib/libchafa.so:graphics/chafa
+
+GLX_CMAKE_BOOL=	ENABLE_GLX
+GLX_BUILD_DEPENDS=	${LOCALBASE}/lib/libGLX.so:graphics/libglvnd
+GLX_RUN_DEPENDS=	${LOCALBASE}/lib/libGLX.so:graphics/libglvnd
+
+OPENCL_CMAKE_BOOL=	ENABLE_OPENCL
+OPENCL_BUILD_DEPENDS=	${LOCALBASE}/lib/libOpenCL.so:devel/ocl-icd \
+			${LOCALBASE}/include/CL/cl.h:devel/opencl
+OPENCL_RUN_DEPENDS=	${LOCALBASE}/lib/libOpenCL.so:devel/ocl-icd
+
+PULSEAUDIO_CMAKE_BOOL=	ENABLE_PULSE
+PULSEAUDIO_BUILD_DEPENDS=	${LOCALBASE}/lib/libpulse.so:audio/pulseaudio
+PULSEAUDIO_RUN_DEPENDS=	${LOCALBASE}/lib/libpulse.so:audio/pulseaudio
+
+CMAKE_ARGS=	-DTARGET_DIR_ETC:NHCITF="${LOCALBASE}/etc"
+
+.include <bsd.port.mk>
diff --git a/sysutils/fastfetch/distinfo b/sysutils/fastfetch/distinfo
new file mode 100644
index 000000000000..d8ff220d47cc
--- /dev/null
+++ b/sysutils/fastfetch/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1688639146
+SHA256 (fastfetch-cli-fastfetch-1.12.2_GH0.tar.gz) = e3d7384de0aa306effdcbe1b7e8095b40649773086b838d925fbfc2ec5027ab0
+SIZE (fastfetch-cli-fastfetch-1.12.2_GH0.tar.gz) = 538194
diff --git a/sysutils/fastfetch/pkg-descr b/sysutils/fastfetch/pkg-descr
new file mode 100644
index 000000000000..16d8c0b74713
--- /dev/null
+++ b/sysutils/fastfetch/pkg-descr
@@ -0,0 +1,4 @@
+Fastfetch is a neofetch-like tool for fetching system information and
+displaying them in a pretty way. It is written mainly in C, with performance
+and customizability in mind. Currently, Linux, Android, FreeBSD, MacOS and
+Windows 7+ are supported.
diff --git a/sysutils/fastfetch/pkg-plist b/sysutils/fastfetch/pkg-plist
new file mode 100644
index 000000000000..44d7beb23173
--- /dev/null
+++ b/sysutils/fastfetch/pkg-plist
@@ -0,0 +1,18 @@
+%%ETCDIR%%/config.conf
+bin/fastfetch
+bin/flashfetch
+share/bash-completion/completions/fastfetch
+%%DATADIR%%/presets/all
+%%DATADIR%%/presets/btw
+%%DATADIR%%/presets/devinfo
+%%DATADIR%%/presets/devinfo-verbose
+%%DATADIR%%/presets/examples/1
+%%DATADIR%%/presets/examples/2
+%%DATADIR%%/presets/examples/3
+%%DATADIR%%/presets/examples/4
+%%DATADIR%%/presets/examples/5
+%%DATADIR%%/presets/hardware
+%%DATADIR%%/presets/neofetch
+%%DATADIR%%/presets/paleofetch
+%%DATADIR%%/presets/software
+%%DATADIR%%/presets/verbose