Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package fastfetch for openSUSE:Factory checked in at 2024-04-09 16:47:38 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/fastfetch (Old) and /work/SRC/openSUSE:Factory/.fastfetch.new.29460 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "fastfetch" Tue Apr 9 16:47:38 2024 rev:23 rq:1166264 version:2.9.1 Changes: -------- --- /work/SRC/openSUSE:Factory/fastfetch/fastfetch.changes 2024-04-04 22:27:25.317880745 +0200 +++ /work/SRC/openSUSE:Factory/.fastfetch.new.29460/fastfetch.changes 2024-04-09 16:52:55.596683457 +0200 @@ -1,0 +2,10 @@ +Mon Apr 8 08:26:17 UTC 2024 - Dirk Müller <dmuel...@suse.com> + +- update to 2.9.1: + * Support weston-terminal (missed commit in v2.9.0) + (TerminalFont, Linux) + * Support hyprcursor detection + * Fix `fastfetch --gen-config` raises SIGSEGV when + `~/.config/fastfetch` doesn't exist. Regression of `2.9.0` + +------------------------------------------------------------------- Old: ---- fastfetch-2.9.0.tar.gz New: ---- fastfetch-2.9.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ fastfetch.spec ++++++ --- /var/tmp/diff_new_pack.sAXzyy/_old 2024-04-09 16:52:55.996698213 +0200 +++ /var/tmp/diff_new_pack.sAXzyy/_new 2024-04-09 16:52:56.000698361 +0200 @@ -17,7 +17,7 @@ Name: fastfetch -Version: 2.9.0 +Version: 2.9.1 Release: 0 Summary: Neofetch-like tool written mostly in C License: MIT ++++++ fastfetch-2.9.0.tar.gz -> fastfetch-2.9.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fastfetch-2.9.0/CHANGELOG.md new/fastfetch-2.9.1/CHANGELOG.md --- old/fastfetch-2.9.0/CHANGELOG.md 2024-04-04 06:24:44.000000000 +0200 +++ new/fastfetch-2.9.1/CHANGELOG.md 2024-04-07 14:49:37.000000000 +0200 @@ -1,8 +1,17 @@ +# 2.9.1 + +Features: +* Support weston-terminal (missed commit in v2.9.0) (TerminalFont, Linux) +* Support hyprcursor detection (#776, Cursor, Linux) + +Bugfixes: +* Fix `fastfetch --gen-config` raises SIGSEGV when `~/.config/fastfetch` doesn't exist. Regression of `2.9.0` (#778) + # 2.9.0 Features: * Support Lxterminal version detection (Terminal, Linux) -* Support weston-terminal version and font detection (TerminalFont, Linux) +* Support weston-terminal version detection (Terminal, Linux) * Support `am` package manager detection (#771, Packages, Linux) * Support network prefix length detection for IPv6 (LocalIP) * Display all IPs when multiple IPs are assigned to the same interface (LocalIP) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fastfetch-2.9.0/CMakeLists.txt new/fastfetch-2.9.1/CMakeLists.txt --- old/fastfetch-2.9.0/CMakeLists.txt 2024-04-04 06:24:44.000000000 +0200 +++ new/fastfetch-2.9.1/CMakeLists.txt 2024-04-07 14:49:37.000000000 +0200 @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 3.12.0) # target_link_libraries with OBJECT libs & project homepage url project(fastfetch - VERSION 2.9.0 + VERSION 2.9.1 LANGUAGES C DESCRIPTION "Fast neofetch-like system information tool" HOMEPAGE_URL "https://github.com/fastfetch-cli/fastfetch" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fastfetch-2.9.0/src/common/parsing.c new/fastfetch-2.9.1/src/common/parsing.c --- old/fastfetch-2.9.0/src/common/parsing.c 2024-04-04 06:24:44.000000000 +0200 +++ new/fastfetch-2.9.1/src/common/parsing.c 2024-04-07 14:49:37.000000000 +0200 @@ -100,19 +100,19 @@ { if(gtk2->length > 0 && gtk3->length > 0 && gtk4->length > 0) { - if((ffStrbufIgnCaseComp(gtk2, gtk3) == 0) && (ffStrbufIgnCaseComp(gtk2, gtk4) == 0)) + if((ffStrbufIgnCaseEqual(gtk2, gtk3)) && (ffStrbufIgnCaseEqual(gtk2, gtk4))) { ffStrbufAppend(buffer, gtk4); ffStrbufAppendS(buffer, " [GTK2/3/4]"); } - else if(ffStrbufIgnCaseComp(gtk2, gtk3) == 0) + else if(ffStrbufIgnCaseEqual(gtk2, gtk3)) { ffStrbufAppend(buffer, gtk3); ffStrbufAppendS(buffer, " [GTK2/3], "); ffStrbufAppend(buffer, gtk4); ffStrbufAppendS(buffer, " [GTK4]"); } - else if(ffStrbufIgnCaseComp(gtk3, gtk4) == 0) + else if(ffStrbufIgnCaseEqual(gtk3, gtk4)) { ffStrbufAppend(buffer, gtk2); ffStrbufAppendS(buffer, " [GTK2], "); @@ -131,7 +131,7 @@ } else if(gtk2->length > 0 && gtk3->length > 0) { - if(ffStrbufIgnCaseComp(gtk2, gtk3) == 0) + if(ffStrbufIgnCaseEqual(gtk2, gtk3)) { ffStrbufAppend(buffer, gtk3); ffStrbufAppendS(buffer, " [GTK2/3]"); @@ -146,7 +146,7 @@ } else if(gtk3->length > 0 && gtk4->length > 0) { - if(ffStrbufIgnCaseComp(gtk3, gtk4) == 0) + if(ffStrbufIgnCaseEqual(gtk3, gtk4)) { ffStrbufAppend(buffer, gtk4); ffStrbufAppendS(buffer, " [GTK3/4]"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fastfetch-2.9.0/src/detection/cursor/cursor_linux.c new/fastfetch-2.9.1/src/detection/cursor/cursor_linux.c --- old/fastfetch-2.9.0/src/detection/cursor/cursor_linux.c 2024-04-04 06:24:44.000000000 +0200 +++ new/fastfetch-2.9.1/src/detection/cursor/cursor_linux.c 2024-04-07 14:49:37.000000000 +0200 @@ -68,18 +68,33 @@ return true; } +static bool detectCursorHyprcursor(FFCursorResult* result) +{ + const char* hyprcursor_theme = getenv("HYPRCURSOR_THEME"); + + if(!ffStrSet(hyprcursor_theme)) + return false; + + ffStrbufAppendS(&result->theme, hyprcursor_theme); + ffStrbufAppendS(&result->size, getenv("HYPRCURSOR_SIZE")); + + return true; +} + void ffDetectCursor(FFCursorResult* result) { const FFDisplayServerResult* wmde = ffConnectDisplayServer(); - if(ffStrbufCompS(&wmde->wmPrettyName, FF_WM_PRETTY_WSLG) == 0) + if(ffStrbufEqualS(&wmde->wmPrettyName, FF_WM_PRETTY_WSLG)) ffStrbufAppendS(&result->error, "WSLg uses native windows cursor"); - else if(ffStrbufIgnCaseCompS(&wmde->wmProtocolName, FF_WM_PROTOCOL_TTY) == 0) + else if(ffStrbufIgnCaseEqualS(&wmde->wmProtocolName, FF_WM_PROTOCOL_TTY)) ffStrbufAppendS(&result->error, "Cursor isn't supported in TTY"); - else if(ffStrbufIgnCaseCompS(&wmde->dePrettyName, FF_DE_PRETTY_PLASMA) == 0) + else if(ffStrbufIgnCaseEqualS(&wmde->dePrettyName, FF_DE_PRETTY_PLASMA)) detectCursorFromConfigFile("kcminputrc", "cursorTheme =", "Breeze", "cursorSize =", "24", result); - else if(ffStrbufStartsWithIgnCaseS(&wmde->dePrettyName, FF_DE_PRETTY_LXQT)) + else if(ffStrbufIgnCaseEqualS(&wmde->dePrettyName, FF_DE_PRETTY_LXQT)) detectCursorFromConfigFile("lxqt/session.conf", "cursor_theme =", "Adwaita", "cursor_size =", "24", result); + else if(ffStrbufIgnCaseEqualS(&wmde->wmPrettyName, FF_WM_PRETTY_HYPRLAND) && detectCursorHyprcursor(result)) + return; else if( !detectCursorGTK(result) && !detectCursorFromEnv(result) && diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fastfetch-2.9.0/src/detection/displayserver/displayserver.h new/fastfetch-2.9.1/src/detection/displayserver/displayserver.h --- old/fastfetch-2.9.0/src/detection/displayserver/displayserver.h 2024-04-04 06:24:44.000000000 +0200 +++ new/fastfetch-2.9.1/src/detection/displayserver/displayserver.h 2024-04-07 14:49:37.000000000 +0200 @@ -21,6 +21,7 @@ #define FF_WM_PRETTY_XFWM4 "Xfwm4" #define FF_WM_PRETTY_OPENBOX "Openbox" #define FF_WM_PRETTY_I3 "i3" +#define FF_WM_PRETTY_HYPRLAND "Hyprland" #define FF_WM_PRETTY_WAYFIRE "Wayfire" #define FF_WM_PRETTY_SWAY "Sway" #define FF_WM_PRETTY_BSPWM "bspwm" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fastfetch-2.9.0/src/detection/displayserver/linux/wmde.c new/fastfetch-2.9.1/src/detection/displayserver/linux/wmde.c --- old/fastfetch-2.9.0/src/detection/displayserver/linux/wmde.c 2024-04-04 06:24:44.000000000 +0200 +++ new/fastfetch-2.9.1/src/detection/displayserver/linux/wmde.c 2024-04-07 14:49:37.000000000 +0200 @@ -52,6 +52,9 @@ if(getenv("TDE_FULL_SESSION") != NULL) return "Trinity"; + if(getenv("HYPRLAND_CMD") != NULL) + return "Hyprland"; + #ifdef __linux__ if( getenv("WAYLAND_DISPLAY") != NULL && @@ -116,6 +119,8 @@ ffStrbufSetS(&result->wmPrettyName, FF_WM_PRETTY_ICEWM); else if(ffStrEqualsIgnCase(name, "dtwm")) ffStrbufSetS(&result->wmPrettyName, FF_WM_PRETTY_DTWM); + else if(ffStrEqualsIgnCase(name, "hyprland")) + ffStrbufSetS(&result->wmPrettyName, FF_WM_PRETTY_HYPRLAND); } static void applyNameIfWM(FFDisplayServerResult* result, const char* processName) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fastfetch-2.9.0/src/detection/gtk_qt/qt.c new/fastfetch-2.9.1/src/detection/gtk_qt/qt.c --- old/fastfetch-2.9.0/src/detection/gtk_qt/qt.c 2024-04-04 06:24:44.000000000 +0200 +++ new/fastfetch-2.9.1/src/detection/gtk_qt/qt.c 2024-04-07 14:49:37.000000000 +0200 @@ -151,9 +151,9 @@ const FFDisplayServerResult* wmde = ffConnectDisplayServer(); - if(ffStrbufIgnCaseCompS(&wmde->dePrettyName, FF_DE_PRETTY_PLASMA) == 0) + if(ffStrbufIgnCaseEqualS(&wmde->dePrettyName, FF_DE_PRETTY_PLASMA)) detectPlasma(&result); - else if(ffStrbufIgnCaseCompS(&wmde->dePrettyName, FF_DE_PRETTY_LXQT) == 0) + else if(ffStrbufIgnCaseEqualS(&wmde->dePrettyName, FF_DE_PRETTY_LXQT)) detectLXQt(&result); return &result; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fastfetch-2.9.0/src/detection/terminalfont/terminalfont_linux.c new/fastfetch-2.9.1/src/detection/terminalfont/terminalfont_linux.c --- old/fastfetch-2.9.0/src/detection/terminalfont/terminalfont_linux.c 2024-04-04 06:24:44.000000000 +0200 +++ new/fastfetch-2.9.1/src/detection/terminalfont/terminalfont_linux.c 2024-04-07 14:49:37.000000000 +0200 @@ -325,6 +325,19 @@ } } +static void detectWestonTerminal(FFTerminalFontResult* terminalFont) +{ + FF_STRBUF_AUTO_DESTROY font = ffStrbufCreate(); + FF_STRBUF_AUTO_DESTROY size = ffStrbufCreate(); + ffParsePropFileConfigValues("weston.ini", 2, (FFpropquery[]) { + {"font=", &font}, + {"font-size=", &size}, + }); + if (!font.length) ffStrbufSetStatic(&font, "DejaVu Sans Mono"); + if (!size.length) ffStrbufSetStatic(&size, "14"); + ffFontInitValues(&terminalFont->font, font.chars, size.chars); +} + void ffDetectTerminalFontPlatform(const FFTerminalResult* terminal, FFTerminalFontResult* terminalFont) { if(ffStrbufIgnCaseEqualS(&terminal->processName, "konsole")) @@ -355,4 +368,6 @@ detectSt(terminalFont, terminal->pid); else if(ffStrbufIgnCaseEqualS(&terminal->processName, "warp")) detectWarp(terminalFont); + else if(ffStrbufIgnCaseEqualS(&terminal->processName, "weston-terminal")) + detectWestonTerminal(terminalFont); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fastfetch-2.9.0/src/fastfetch.c new/fastfetch-2.9.1/src/fastfetch.c --- old/fastfetch-2.9.0/src/fastfetch.c 2024-04-04 06:24:44.000000000 +0200 +++ new/fastfetch-2.9.1/src/fastfetch.c 2024-04-07 14:49:37.000000000 +0200 @@ -821,7 +821,6 @@ if (instance.state.resultDoc) { yyjson_mut_write_fp(stdout, instance.state.resultDoc, YYJSON_WRITE_INF_AND_NAN_AS_NULL | YYJSON_WRITE_PRETTY_TWO_SPACES, NULL, NULL); - //TODO should use YYJSON_WRITE_NEWLINE_AT_END when it is available putchar('\n'); } else @@ -841,23 +840,24 @@ ffOptionsGenerateLibraryJsonConfig(&instance.config.library, doc); ffMigrateCommandOptionToJsonc(data, doc); - FILE *fp = stdout; - bool writeToStdout = ffStrbufEqualS(filename, "-"); - if (!writeToStdout) - fp = fopen(filename->chars, "w"); - - bool ok = yyjson_mut_write_fp(fp, doc, YYJSON_WRITE_INF_AND_NAN_AS_NULL | YYJSON_WRITE_PRETTY_TWO_SPACES, NULL, NULL); - //TODO should use YYJSON_WRITE_NEWLINE_AT_END when it is available - fputc('\n', fp); - if (!ok) - { - fprintf(stderr, "Error: failed to generate config in `%s`\n", writeToStdout ? "stdout" : filename->chars); - exit(1); - } - if (ok && !writeToStdout) + if (ffStrbufEqualS(filename, "-")) + yyjson_mut_write_fp(stdout, doc, YYJSON_WRITE_INF_AND_NAN_AS_NULL | YYJSON_WRITE_PRETTY_TWO_SPACES, NULL, NULL); + else { - fclose(fp); - printf("The generated config file has been written in `%s`\n", filename->chars); + size_t len; + FF_AUTO_FREE const char* str = yyjson_mut_write(doc, YYJSON_WRITE_INF_AND_NAN_AS_NULL | YYJSON_WRITE_PRETTY_TWO_SPACES, &len); + if (!str) + { + printf("Error: failed to generate config file\n"); + exit(1); + } + if (ffWriteFileData(filename->chars, len, str)) + printf("The generated config file has been written in `%s`\n", filename->chars); + else + { + printf("Error: failed to write file in `%s`\n", filename->chars); + exit(1); + } } yyjson_mut_doc_free(doc);