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);

Reply via email to