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

From: Piotr Kubaj <pkubaj_at_anongoth.pl>
Date: Thu, 06 Jul 2023 20:40:20 UTC
I actually quite like it, because it's not just a simple shell script,
of which there are many similar that do the same, but actually quite
advanced program that can display much more than all the rest I saw.
Here's an example (running Linux, because DRM (GPU acceleration) doesn't
work on FreeBSD :/):
pkubaj@talos:$~$ fastfetch --load-config /usr/share/fastfetch/presets/all
         -/oyddmdhs+:.                 pkubaj@talos
     -odNMMMMMMMMNNmhy+-`              ------------
   -yNMMMMMMMMMMMNNNmmdhy+-            OS: Gentoo 2.13 ppc64le
 `omMMMMMMMMMMMMNmdmmmmddhhy/`         Host: T2P9D01 REV 1.01
 omMMMMMMMMMMMNhhyyyohmdddhhhdo`       Kernel: 6.3.7-gentoo-ppc64le
.ydMMMMMMMMMMdhs++so/smdddhhhhdm+`     Uptime: 23 days, 4 hours, 33 mins
 oyhdmNMMMMMMMNdyooydmddddhhhhyhNd.    Processes: 1423
  :oyhhdNNMMMMMMMNNNmmdddhhhhhyymMh    Packages: 1104 (emerge)
    .:+sydNMMMMMNNNmmmdddhhhhhhmMmy    Shell: ksh @
       /mMMMMMMNNNmmmdddhhhhhmMNhs:    Display 1: 3840x2160 @ 60Hz
    `oNMMMMMMMNNNmmmddddhhdmMNhs+`     Display 2: 1920x1080 @ 60Hz
  `sNMMMMMMMMNNNmmmdddddmNMmhs/.       WM: dwm (X11)
 /NMMMMMMMMNNNNmmmdddmNMNdso:`         Theme: Adwaita [GTK3]
+MMMMMMMNNNNNmmmmdmNMNdso/-            Icons: gnome [GTK3]
yMMNNNNNNNmmmmmNNMmhs+/-`              Cursor: Adwaita
/hMMNNNNNNNNMNdhs++/-`                 Terminal: tmux: server 3.3a
`/ohdmmddhys+++/:.`                    CPU: CPU (64) @ 3.8 GHz
  `-//////:--.                         CPU Usage: 1%
                                       GPU: AMD Radeon HD 7700 Series (RADV BONAIRE) (1.00 GiB)
                                       Memory: 210 GiB / 251 GiB (83%)
                                       Swap: Disabled
                                       Disk (/): 181 GiB / 227 GiB (79%)
                                       Disk (/home): 3 TiB / 4 TiB (95%)
                                       Public IP: X.X.X.X
                                       Local IP (br0): 192.168.1.2
                                       Date & Time: 2023-07-06 22:36:05
                                       Locale: ja_JP.utf8
                                       Vulkan: 1.3.246 - radv [Mesa 23.1.3]
                                       OpenGL: 4.6 (Compatibility Profile) Mesa 23.1.3
                                       Users: pkubaj
                                       Weather: +15��C - Clear (XXX, XXX)

On 23-07-06 22:25:09, Fernando Apesteguía wrote:
> El jue, 6 jul 2023, 22:17, Piotr Kubaj <pkubaj@freebsd.org> escribió:
> 
> > 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
> >
> 
> Oh boy :-)
> 
> I'm going to coin the YAFP acronym if it does not exist. Yet Another Fetch
> Port. Does any keep the count of how many *fetch ports do we have?
> 
> 
> 
> >     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
> >