Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package btop for openSUSE:Factory checked in 
at 2022-11-23 09:48:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/btop (Old)
 and      /work/SRC/openSUSE:Factory/.btop.new.1597 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "btop"

Wed Nov 23 09:48:11 2022 rev:23 rq:1037399 version:1.2.13+git20221106.0f8498f

Changes:
--------
--- /work/SRC/openSUSE:Factory/btop/btop.changes        2022-10-15 
16:40:38.910613519 +0200
+++ /work/SRC/openSUSE:Factory/.btop.new.1597/btop.changes      2022-11-23 
09:48:33.547183175 +0100
@@ -1,0 +2,45 @@
+Mon Nov 07 14:43:04 UTC 2022 - scott.bradn...@suse.com
+
+- Update to version 1.2.13+git20221106.0f8498f:
+  * v1.2.13 Bug fixes
+  * osx: replace getnameinfo with inet_ntop
+  * a comment about AF_LINK being ignored on purpose
+  * FreeBSD: replace getnameinfo with inet_ntop
+  * Fixed: Process nice value underflowing, issue #461
+  * Add git config safe-directory inside freebsd vm
+  * OSX: use the first IP of the interface
+  * Added "Continuous Build FreeBSD" badge
+  * Removed bad line and gcc12 install since gcc12 i preinstalled
+  * Possible fix for broken xcode command line tools
+  * Use gcc12 for macos12
+  * FreeBSD: use the first IP of the interface
+  * Use sh instead of csh
+  * Update continuous-build-freebsd.yml
+  * Update continuous-build-macos.yml
+  * Create continuous-build-freebsd.yml
+  *  Add actions run for pull requests (macos) [skip actions]
+  * Add actions run for pull requests (linux) [skip actions]
+  * Fixed: Not picking up last username from /etc/passwd
+  * make IPBUFFER_MAXSIZE an enum constant
+  * use inet_ntop instead of getnameinfo
+  * Show the first IP of the interface in NET box
+  * Address comment
+  * Fix bug in proc_tree view when showing full cmd
+  * proc tree: fix width threshold to match commit message and use and/or 
instead of &&, ||
+  * proc tree view: if there's more than 40 width left, try to print full cmd
+  *  macOS Ventura compile instructions
+  * macOS Ventura compile instructions
+  * Added autodetection for gcc12 to make compiling on macos Ventura easier.
+  * Fixed: Moved up get_cpuHz() in the execution order to get better cpu clock 
reading.
+  * Update continuous-build-macos.yml
+  * Update continuous-build-macos.yml
+  * Update continuous-build-linux.yml
+  * Fixed: Ignore disks that fails in statvfs64() to avoid slowdowns and 
possible crashes.
+  * fix: spelling mistake in btop.conf
+  * Changed: Reverted back to sysconf(_SC_NPROCESSORS_ONLN) for Cpu core count 
ant let the new dynamic update fix if cores are turned on later
+  * Makefile: Reverse VERBOSE bool to not stop with macOS make
+  * Update README.md
+  * Added more Makefile flags
+  * Added: VERBOSE=true flag for Makefile to display all compiler commands and 
fixed so already set CXXFLAGS and LDFLAGS are displayed.
+
+-------------------------------------------------------------------

Old:
----
  btop-1.2.12+git20221007.3dd6a6c.tar.gz

New:
----
  btop-1.2.13+git20221106.0f8498f.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ btop.spec ++++++
--- /var/tmp/diff_new_pack.Cjh6Ja/_old  2022-11-23 09:48:34.023185658 +0100
+++ /var/tmp/diff_new_pack.Cjh6Ja/_new  2022-11-23 09:48:34.027185679 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           btop
-Version:        1.2.12+git20221007.3dd6a6c
+Version:        1.2.13+git20221106.0f8498f
 Release:        0
 Summary:        Usage and stats for processor, memory, disks, network and 
processes
 License:        Apache-2.0

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.Cjh6Ja/_old  2022-11-23 09:48:34.075185930 +0100
+++ /var/tmp/diff_new_pack.Cjh6Ja/_new  2022-11-23 09:48:34.079185951 +0100
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param name="url">https://github.com/aristocratos/btop</param>
-              <param 
name="changesrevision">3dd6a6cc6b3677d01c9adf33bd579713bf1dc2fa</param></service></servicedata>
+              <param 
name="changesrevision">0f8498fa4e68e3af36a50b1d9f97b931b41b0824</param></service></servicedata>
 (No newline at EOF)
 

++++++ btop-1.2.12+git20221007.3dd6a6c.tar.gz -> 
btop-1.2.13+git20221106.0f8498f.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/btop-1.2.12+git20221007.3dd6a6c/.github/workflows/continuous-build-freebsd.yml
 
new/btop-1.2.13+git20221106.0f8498f/.github/workflows/continuous-build-freebsd.yml
--- 
old/btop-1.2.12+git20221007.3dd6a6c/.github/workflows/continuous-build-freebsd.yml
  1970-01-01 01:00:00.000000000 +0100
+++ 
new/btop-1.2.13+git20221106.0f8498f/.github/workflows/continuous-build-freebsd.yml
  2022-11-06 22:36:34.000000000 +0100
@@ -0,0 +1,50 @@
+name: Continuous Build FreeBSD
+
+on:
+  workflow_dispatch:
+  push:
+    branches:
+      - main
+    tags-ignore:
+      - '*.*'
+    paths:
+      - 'src/**'
+      - '!src/linux/**'
+      - '!src/osx/**'
+      - 'include/**'
+      - 'Makefile'
+      - '.github/workflows/continuous-build-freebsd.yml'
+  pull_request:
+    branches:
+      - main
+    paths:
+      - 'src/**'
+      - '!src/linux/**'
+      - '!src/osx/**'
+      - 'include/**'
+      - 'Makefile'
+      - '.github/workflows/continuous-build-freebsd.yml'
+
+jobs:
+  build-freebsd:
+    runs-on: macos-12
+    steps:
+      - uses: actions/checkout@v3
+      - name: Compile
+        uses: vmactions/freebsd-vm@v0
+        with:
+          release: 13.1
+          usesh: true
+          prepare: |
+            pkg install -y gmake gcc11 coreutils git
+            git config --global --add safe.directory 
/Users/runner/work/btop/btop
+          run: |
+            gmake
+            GIT_HASH=$(git rev-parse --short "$GITHUB_SHA")
+            mv bin/btop bin/btop-$GIT_HASH
+            ls -alh bin
+      - uses: actions/upload-artifact@v3
+        with:
+          name: btop-x86_64-FreeBSD-13.1
+          path: 'bin/*'
+      
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/btop-1.2.12+git20221007.3dd6a6c/.github/workflows/continuous-build-linux.yml
 
new/btop-1.2.13+git20221106.0f8498f/.github/workflows/continuous-build-linux.yml
--- 
old/btop-1.2.12+git20221007.3dd6a6c/.github/workflows/continuous-build-linux.yml
    2022-10-07 20:59:47.000000000 +0200
+++ 
new/btop-1.2.13+git20221106.0f8498f/.github/workflows/continuous-build-linux.yml
    2022-11-06 22:36:34.000000000 +0100
@@ -14,6 +14,16 @@
       - 'include/**'
       - 'Makefile'
       - '.github/workflows/continuous-build.yml'
+  pull_request:
+    branches:
+      - main
+    paths:
+      - 'src/**'
+      - '!src/osx/**'
+      - '!src/freebsd/**'
+      - 'include/**'
+      - 'Makefile'
+      - '.github/workflows/continuous-build.yml'
 
 jobs:
   static-build:
@@ -83,7 +93,7 @@
         run: git config --global --add safe.directory /__w/btop/btop
 
       - name: Checkout source
-        uses: actions/checkout@v2
+        uses: actions/checkout@v3
 
       - name: Fix - Stopping at filesystem boundary
         run: git init # [fix Stopping at filesystem boundary 
(GIT_DISCOVERY_ACROSS_FILESYSTEM not set).]
@@ -107,7 +117,7 @@
           cp bin/btop .artifacts/$FILENAME
 
       - name: Upload artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         with:
           name: btop-${{ matrix.toolchain }}
           path: '.artifacts/**'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/btop-1.2.12+git20221007.3dd6a6c/.github/workflows/continuous-build-macos.yml
 
new/btop-1.2.13+git20221106.0f8498f/.github/workflows/continuous-build-macos.yml
--- 
old/btop-1.2.12+git20221007.3dd6a6c/.github/workflows/continuous-build-macos.yml
    2022-10-07 20:59:47.000000000 +0200
+++ 
new/btop-1.2.13+git20221106.0f8498f/.github/workflows/continuous-build-macos.yml
    2022-11-06 22:36:34.000000000 +0100
@@ -1,6 +1,7 @@
 name: Continuous Build MacOS
 
 on:
+  workflow_dispatch:
   push:
     branches:
       - main
@@ -12,15 +13,23 @@
       - '!src/freebsd/**'
       - 'include/**'
       - 'Makefile'
-      - '.github/workflows/*'
+      - '.github/workflows/continuous-build-macos.yml'
+  pull_request:
+    branches:
+      - main
+    paths:
+      - 'src/**'
+      - '!src/linux/**'
+      - '!src/freebsd/**'
+      - 'include/**'
+      - 'Makefile'
+      - '.github/workflows/continuous-build-macos.yml'
 
 jobs:
-  build-osx:
-
+  build-macos11:
     runs-on: macos-11
-
     steps:
-      - uses: actions/checkout@v2
+      - uses: actions/checkout@v3
       - name: Compile
         run: |
           make CXX=g++-11 ARCH=x86_64 STATIC=true STRIP=true
@@ -28,7 +37,27 @@
           mv bin/btop bin/btop-x86_64-BigSur-$GIT_HASH
           ls -alh bin
 
-      - uses: actions/upload-artifact@v2
+      - uses: actions/upload-artifact@v3
+        with:
+          name: btop-x86_64-macos11-BigSur
+          path: 'bin/*'
+      
+  build-macos12:
+    runs-on: macos-12
+    steps:
+      - uses: maxim-lobanov/setup-xcode@v1
+        with:
+          xcode-version: latest-stable            
+
+      - uses: actions/checkout@v3      
+      - name: Compile
+        run: |
+          make CXX=g++-12 ARCH=x86_64 STATIC=true STRIP=true
+          GIT_HASH=$(git rev-parse --short "$GITHUB_SHA")
+          mv bin/btop bin/btop-x86_64-Monterey-$GIT_HASH
+          ls -alh bin
+
+      - uses: actions/upload-artifact@v3
         with:
-          name: btop-x86_64-macos-BigSur
+          name: btop-x86_64-macos12-Monterey
           path: 'bin/*'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/btop-1.2.12+git20221007.3dd6a6c/CHANGELOG.md 
new/btop-1.2.13+git20221106.0f8498f/CHANGELOG.md
--- old/btop-1.2.12+git20221007.3dd6a6c/CHANGELOG.md    2022-10-07 
20:59:47.000000000 +0200
+++ new/btop-1.2.13+git20221106.0f8498f/CHANGELOG.md    2022-11-06 
22:36:34.000000000 +0100
@@ -1,3 +1,29 @@
+## v1.2.13
+
+* Makefile: VERBOSE=true flag for Makefile to display all compiler commands 
and fixed so already set CXXFLAGS and LDFLAGS are displayed.
+
+* Makefile: Added autodetection for gcc12 to make compiling on macos Ventura 
easier.
+
+* Changed: Reverted back to sysconf(_SC_NPROCESSORS_ONLN) for Cpu core count 
ant let the new dynamic update fix if cores are turned on later
+
+* Fixed: Ignore disks that fails in statvfs64() to avoid slowdowns and 
possible crashes.
+
+* Fixed: Moved up get_cpuHz() in the execution order to get better cpu clock 
reading.
+
+* Added: proc tree view: if there's more than 40 width left, try to print full 
cmd, by @Superty
+
+* Fixed: Show the first IP of the interface in NET box instead of the last, by 
@correabuscar
+
+* Changed: Replace getnameinfo with inet_ntop [on Linux], by @correabuscar
+
+* Fixed: Not picking up last username from /etc/passwd
+
+* Fixed: Process nice value underflowing, issue #461
+
+* Changed: Replace getnameinfo with inet_ntop [on FreeBSD], by @correabuscar
+
+* Changed: Replace getnameinfo with inet_ntop [on macos], by @correabuscar
+
 ## v1.2.12
 
 * Added: Dynamic updating of max number of CPU cores.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/btop-1.2.12+git20221007.3dd6a6c/Makefile 
new/btop-1.2.13+git20221106.0f8498f/Makefile
--- old/btop-1.2.12+git20221007.3dd6a6c/Makefile        2022-10-07 
20:59:47.000000000 +0200
+++ new/btop-1.2.13+git20221106.0f8498f/Makefile        2022-11-06 
22:36:34.000000000 +0100
@@ -18,6 +18,9 @@
        override PRE := info-quiet
 endif
 
+OLDCXX := $(CXXFLAGS)
+OLDLD := $(LDFLAGS)
+
 PREFIX ?= /usr/local
 
 #? Detect PLATFORM and ARCH from uname/gcc if not set
@@ -53,8 +56,16 @@
        override ADDFLAGS += -s
 endif
 
+ifeq ($(VERBOSE),true)
+       override VERBOSE := false
+else
+       override VERBOSE := true
+endif
+
 #? Compiler and Linker
-ifeq ($(shell command -v g++-11 >/dev/null; echo $$?),0)
+ifeq ($(shell command -v g++-12 >/dev/null; echo $$?),0)
+       CXX := g++-12
+else ifeq ($(shell command -v g++-11 >/dev/null; echo $$?),0)
        CXX := g++-11
 else ifeq ($(shell command -v g++11 >/dev/null; echo $$?),0)
        CXX := g++11
@@ -167,8 +178,8 @@
        @printf "\033[1;91mWARNFLAGS  \033[1;94m:| \033[0m$(WARNFLAGS)\n"
        @printf "\033[1;94mOPTFLAGS   \033[1;94m:| \033[0m$(OPTFLAGS)\n"
        @printf "\033[1;93mLDCXXFLAGS \033[1;94m:| \033[0m$(LDCXXFLAGS)\n"
-       @printf "\033[1;95mCXXFLAGS   \033[1;92m+| 
\033[0;37m\$$(\033[92mREQFLAGS\033[37m) \$$(\033[93mLDCXXFLAGS\033[37m) 
\$$(\033[94mOPTFLAGS\033[37m) \$$(\033[91mWARNFLAGS\033[37m)\n"
-       @printf "\033[1;95mLDFLAGS    \033[1;92m+| 
\033[0;37m\$$(\033[93mLDCXXFLAGS\033[37m) \$$(\033[94mOPTFLAGS\033[37m) 
\$$(\033[91mWARNFLAGS\033[37m)\n"
+       @printf "\033[1;95mCXXFLAGS   \033[1;92m+| 
\033[0;37m\$$(\033[92mREQFLAGS\033[37m) \$$(\033[93mLDCXXFLAGS\033[37m) 
\$$(\033[94mOPTFLAGS\033[37m) \$$(\033[91mWARNFLAGS\033[37m) $(OLDCXX)\n"
+       @printf "\033[1;95mLDFLAGS    \033[1;92m+| 
\033[0;37m\$$(\033[93mLDCXXFLAGS\033[37m) \$$(\033[94mOPTFLAGS\033[37m) 
\$$(\033[91mWARNFLAGS\033[37m) $(OLDLD)\n"
 
 info-quiet:
        @sleep 0.1 2>/dev/null || true
@@ -252,6 +263,7 @@
        @sleep 0.2 2>/dev/null || true
        @TSTAMP=$$(date +%s 2>/dev/null || echo "0")
        @$(QUIET) || printf "\n\033[1;92mLinking and optimizing 
binary\033[37m...\033[0m\n"
+       @$(VERBOSE) || printf "$(CXX) -o $(TARGETDIR)/btop $^ $(LDFLAGS)\n"
        @$(CXX) -o $(TARGETDIR)/btop $^ $(LDFLAGS) || exit 1
        @printf "\033[1;92m100$(P) -> \033[1;37m$(TARGETDIR)/btop 
\033[100D\033[38C\033[1;93m(\033[1;97m$$(du -ah $(TARGETDIR)/btop | cut 
-f1)iB\033[1;93m) \033[92m(\033[97m$$($(DATE_CMD) -d @$$(expr $$(date +%s 
2>/dev/null || echo "0") - $${TSTAMP} 2>/dev/null) -u +%Mm:%Ss 2>/dev/null | 
sed 's/^00m://' || echo '')\033[92m)\033[0m\n"
        @printf "\n\033[1;92mBuild complete in \033[92m(\033[97m$$($(DATE_CMD) 
-d @$$(expr $$(date +%s 2>/dev/null || echo "0") - $(TIMESTAMP) 2>/dev/null) -u 
+%Mm:%Ss 2>/dev/null | sed 's/^00m://' || echo "unknown")\033[92m)\033[0m\n"
@@ -262,6 +274,7 @@
        @sleep 0.3 2>/dev/null || true
        @TSTAMP=$$(date +%s 2>/dev/null || echo "0")
        @$(QUIET) || printf "\033[1;97mCompiling $<\033[0m\n"
+       @$(VERBOSE) || printf "$(CXX) $(CXXFLAGS) $(INC) -MMD -c -o $@ $<\n"
        @$(CXX) $(CXXFLAGS) $(INC) -MMD -c -o $@ $< || exit 1
        @printf "\033[1;92m$$($(PROGRESS))$(P)\033[10D\033[5C-> \033[1;37m$@ 
\033[100D\033[38C\033[1;93m(\033[1;97m$$(du -ah $@ | cut -f1)iB\033[1;93m) 
\033[92m(\033[97m$$($(DATE_CMD) -d @$$(expr $$($(DATE_CMD) +%s 2>/dev/null || 
echo "0") - $${TSTAMP} 2>/dev/null) -u +%Mm:%Ss 2>/dev/null | sed 's/^00m://' 
|| echo '')\033[92m)\033[0m\n"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/btop-1.2.12+git20221007.3dd6a6c/README.md 
new/btop-1.2.13+git20221106.0f8498f/README.md
--- old/btop-1.2.12+git20221007.3dd6a6c/README.md       2022-10-07 
20:59:47.000000000 +0200
+++ new/btop-1.2.13+git20221106.0f8498f/README.md       2022-11-06 
22:36:34.000000000 +0100
@@ -16,6 +16,7 @@
 [![btop](https://snapcraft.io/btop/badge.svg)](https://snapcraft.io/btop)
 [![Continuous Build 
Linux](https://github.com/aristocratos/btop/actions/workflows/continuous-build-linux.yml/badge.svg)](https://github.com/aristocratos/btop/actions/workflows/continuous-build-linux.yml)
 [![Continuous Build 
macOS](https://github.com/aristocratos/btop/actions/workflows/continuous-build-macos.yml/badge.svg)](https://github.com/aristocratos/btop/actions/workflows/continuous-build-macos.yml)
+[![Continuous Build 
FreeBSD](https://github.com/aristocratos/btop/actions/workflows/continuous-build-freebsd.yml/badge.svg)](https://github.com/aristocratos/btop/actions/workflows/continuous-build-freebsd.yml)
 
 ## Index
 
@@ -327,7 +328,9 @@
 
 3. **Compile**
 
-   Append `STATIC=true` to `make` command for static compilation.
+   Append `VERBOSE=true` to display full compiler/linker commands.
+
+   Append `STATIC=true` for static compilation.
 
    Notice! If using LDAP Authentication, usernames will show as UID number for 
LDAP users if compiling statically with glibc.
 
@@ -397,6 +400,8 @@
 ## Compilation macOS OSX
 
    Needs GCC 10 or higher, (GCC 11 or above strongly recommended for better 
CPU efficiency in the compiled binary).
+   
+   GCC 12 needed for macOS Ventura. If you get linker errors on Ventura you'll 
need to upgrade your command line tools (Version 14.0) is bugged.
 
    The makefile also needs GNU coreutils and `sed`.
 
@@ -405,7 +410,7 @@
 1. **Install dependencies (example for Homebrew)**
 
    ``` bash
-   brew install coreutils make gcc@11
+   brew install coreutils make gcc@12
    ```
 
 2. **Clone repository**
@@ -417,7 +422,9 @@
 
 3. **Compile**
 
-   Append `STATIC=true` to `make` command for static compilation (only libgcc 
and libstdc++ will be static!).
+   Append `VERBOSE=true` to display full compiler/linker commands.
+   
+   Append `STATIC=true` for static compilation (only libgcc and libstdc++ will 
be static!).
 
    Append `QUIET=true` for less verbose output.
 
@@ -501,7 +508,7 @@
 
 3. **Compile**
 
-   Append `STATIC=true` to `make` command for static compilation.
+   Append `VERBOSE=true` to display full compiler/linker commands.
 
    Append `QUIET=true` for less verbose output.
 
@@ -618,7 +625,7 @@
 
 #* Define presets for the layout of the boxes. Preset 0 is always all boxes 
shown with default settings. Max 9 presets.
 #* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, 
G=graph symbol to use for box.
-#* Use withespace " " as separator between different presets.
+#* Use whitespace " " as separator between different presets.
 #* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty"
 presets = "cpu:1:default,proc:0:default 
cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/btop-1.2.12+git20221007.3dd6a6c/src/btop.cpp 
new/btop-1.2.13+git20221106.0f8498f/src/btop.cpp
--- old/btop-1.2.12+git20221007.3dd6a6c/src/btop.cpp    2022-10-07 
20:59:47.000000000 +0200
+++ new/btop-1.2.13+git20221106.0f8498f/src/btop.cpp    2022-11-06 
22:36:34.000000000 +0100
@@ -73,7 +73,7 @@
                {"#801414", "██████╔╝   ██║   
╚██████╔╝██║        ╚═╝    ╚═╝"},
                {"#000000", "╚═════╝    ╚═╝    
╚═════╝ ╚═╝"},
        };
-       const string Version = "1.2.12";
+       const string Version = "1.2.13";
 
        int coreCount;
        string overlay;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/btop-1.2.12+git20221007.3dd6a6c/src/btop_config.cpp 
new/btop-1.2.13+git20221106.0f8498f/src/btop_config.cpp
--- old/btop-1.2.12+git20221007.3dd6a6c/src/btop_config.cpp     2022-10-07 
20:59:47.000000000 +0200
+++ new/btop-1.2.13+git20221106.0f8498f/src/btop_config.cpp     2022-11-06 
22:36:34.000000000 +0100
@@ -56,7 +56,7 @@
 
                {"presets",                             "#* Define presets for 
the layout of the boxes. Preset 0 is always all boxes shown with default 
settings. Max 9 presets.\n"
                                                                "#* Format: 
\"box_name:P:G,box_name:P:G\" P=(0 or 1) for alternate positions, G=graph 
symbol to use for box.\n"
-                                                               "#* Use 
withespace \" \" as separator between different presets.\n"
+                                                               "#* Use 
whitespace \" \" as separator between different presets.\n"
                                                                "#* Example: 
\"cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty\""},
 
                {"vim_keys",                    "#* Set to True to enable 
\"h,j,k,l,g,G\" keys for directional control in lists.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/btop-1.2.12+git20221007.3dd6a6c/src/btop_draw.cpp 
new/btop-1.2.13+git20221106.0f8498f/src/btop_draw.cpp
--- old/btop-1.2.12+git20221007.3dd6a6c/src/btop_draw.cpp       2022-10-07 
20:59:47.000000000 +0200
+++ new/btop-1.2.13+git20221106.0f8498f/src/btop_draw.cpp       2022-11-06 
22:36:34.000000000 +0100
@@ -1473,9 +1473,12 @@
                                        out += c_color + uresize(p.name, 
width_left - 1) + end + ' ';
                                        width_left -= (ulen(p.name) + 1);
                                }
-                               if (width_left > 7 and p.short_cmd != p.name) {
-                                       out += g_color + '(' + 
uresize(p.short_cmd, width_left - 3, p_wide_cmd[p.pid]) + ") ";
-                                       width_left -= (ulen(p.short_cmd, true) 
+ 3);
+                               if (width_left > 7) {
+                                       const string& cmd = width_left > 40 ? 
rtrim(p.cmd) : p.short_cmd;
+                                       if (not cmd.empty() and cmd != p.name) {
+                                               out += g_color + '(' + 
uresize(cmd, width_left - 3, p_wide_cmd[p.pid]) + ") ";
+                                               width_left -= (ulen(cmd, true) 
+ 3);
+                                       }
                                }
                                out += string(max(0, width_left), ' ') + 
Mv::to(y+2+lc, x+2+tree_size);
                        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/btop-1.2.12+git20221007.3dd6a6c/src/btop_menu.cpp 
new/btop-1.2.13+git20221106.0f8498f/src/btop_menu.cpp
--- old/btop-1.2.12+git20221007.3dd6a6c/src/btop_menu.cpp       2022-10-07 
20:59:47.000000000 +0200
+++ new/btop-1.2.13+git20221106.0f8498f/src/btop_menu.cpp       2022-11-06 
22:36:34.000000000 +0100
@@ -207,7 +207,7 @@
                                "P=(0 or 1) for alternate positions.",
                                "G=graph symbol to use for box.",
                                "",
-                               "Use withespace \" \" as separator between",
+                               "Use whitespace \" \" as separator between",
                                "different presets.",
                                "",
                                "Example:",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/btop-1.2.12+git20221007.3dd6a6c/src/btop_shared.hpp 
new/btop-1.2.13+git20221106.0f8498f/src/btop_shared.hpp
--- old/btop-1.2.12+git20221007.3dd6a6c/src/btop_shared.hpp     2022-10-07 
20:59:47.000000000 +0200
+++ new/btop-1.2.13+git20221106.0f8498f/src/btop_shared.hpp     2022-11-06 
22:36:34.000000000 +0100
@@ -262,7 +262,7 @@
         double cpu_p{};         // defaults to = 0.0
         double cpu_c{};         // defaults to = 0.0
                char state = '0';
-        uint64_t p_nice{};      // defaults to 0
+        int64_t p_nice{};      // defaults to 0
         uint64_t ppid{};        // defaults to 0
         uint64_t cpu_s{};       // defaults to 0
         uint64_t cpu_t{};       // defaults to 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/btop-1.2.12+git20221007.3dd6a6c/src/freebsd/btop_collect.cpp 
new/btop-1.2.13+git20221106.0f8498f/src/freebsd/btop_collect.cpp
--- old/btop-1.2.12+git20221007.3dd6a6c/src/freebsd/btop_collect.cpp    
2022-10-07 20:59:47.000000000 +0200
+++ new/btop-1.2.13+git20221106.0f8498f/src/freebsd/btop_collect.cpp    
2022-11-06 22:36:34.000000000 +0100
@@ -19,13 +19,15 @@
 #include <cstdio>
 #include <cstdlib>
 #include <cstring>
-#include <ifaddrs.h>
 #include <libproc.h>
+// man 3 getifaddrs: "BUGS: If both <net/if.h> and <ifaddrs.h> are being 
included, <net/if.h> must be included before <ifaddrs.h>"
 #include <net/if.h>
+#include <ifaddrs.h>
 #include <net/if_dl.h>
 #include <net/route.h>
 #include <netdb.h>
 #include <netinet/tcp_fsm.h>
+#include <netinet/in.h> // for inet_ntop stuff
 #include <pwd.h>
 #include <sys/_timeval.h>
 #include <sys/endian.h>
@@ -820,7 +822,9 @@
                                return empty_net;
                        }
                        int family = 0;
-                       char ip[NI_MAXHOST];
+                       static_assert(INET6_ADDRSTRLEN >= INET_ADDRSTRLEN); // 
46 >= 16, compile-time assurance.
+                       enum { IPBUFFER_MAXSIZE = INET6_ADDRSTRLEN }; // 
manually using the known biggest value, guarded by the above static_assert
+                       char ip[IPBUFFER_MAXSIZE];
                        interfaces.clear();
                        string ipv4, ipv6;
 
@@ -829,22 +833,40 @@
                                if (ifa->ifa_addr == NULL) continue;
                                family = ifa->ifa_addr->sa_family;
                                const auto &iface = ifa->ifa_name;
-                               //? Get IPv4 address
-                               if (family == AF_INET) {
-                                       if (getnameinfo(ifa->ifa_addr, 
sizeof(struct sockaddr), ip, NI_MAXHOST, NULL, 0, NI_NUMERICHOST) == 0)
-                                               net[iface].ipv4 = ip;
-                               }
-                               //? Get IPv6 address
-                               // else if (family == AF_INET6) {
-                               //      if (getnameinfo(ifa->ifa_addr, 
sizeof(struct sockaddr_in6), ip, NI_MAXHOST, NULL, 0, NI_NUMERICHOST) == 0)
-                               //              net[iface].ipv6 = ip;
-                               // }
-
                                //? Update available interfaces vector and get 
status of interface
                                if (not v_contains(interfaces, iface)) {
                                        interfaces.push_back(iface);
                                        net[iface].connected = (ifa->ifa_flags 
& IFF_RUNNING);
+
+                                       // An interface can have more than one 
IP of the same family associated with it,
+                                       // but we pick only the first one to 
show in the NET box.
+                                       // Note: Interfaces without any IPv4 
and IPv6 set are still valid and monitorable!
+                                       net[iface].ipv4.clear();
+                                       net[iface].ipv6.clear();
                                }
+                               //? Get IPv4 address
+                               if (family == AF_INET) {
+                                       if (net[iface].ipv4.empty()) {
+                                               if (NULL != inet_ntop(family, 
&(reinterpret_cast<struct sockaddr_in*>(ifa->ifa_addr)->sin_addr), ip, 
IPBUFFER_MAXSIZE)) {
+
+                                                       net[iface].ipv4 = ip;
+                                               } else {
+                                                       int errsv = errno;
+                                                       
Logger::error("Net::collect() -> Failed to convert IPv4 to string for iface " + 
string(iface) + ", errno: " + strerror(errsv));
+                                               }
+                                       }
+                               }
+                               //? Get IPv6 address
+                               else if (family == AF_INET6) {
+                                       if (net[iface].ipv6.empty()) {
+                                               if (NULL != inet_ntop(family, 
&(reinterpret_cast<struct sockaddr_in6*>(ifa->ifa_addr)->sin6_addr), ip, 
IPBUFFER_MAXSIZE)) {
+                                                       net[iface].ipv6 = ip;
+                                               } else {
+                                                       int errsv = errno;
+                                                       
Logger::error("Net::collect() -> Failed to convert IPv6 to string for iface " + 
string(iface) + ", errno: " + strerror(errsv));
+                                               }
+                                       }
+                               }  //else, ignoring family==AF_LINK (see man 3 
getifaddrs)
                        }
 
                        unordered_flat_map<string, std::tuple<uint64_t, 
uint64_t>> ifstats;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/btop-1.2.12+git20221007.3dd6a6c/src/linux/btop_collect.cpp 
new/btop-1.2.13+git20221106.0f8498f/src/linux/btop_collect.cpp
--- old/btop-1.2.12+git20221007.3dd6a6c/src/linux/btop_collect.cpp      
2022-10-07 20:59:47.000000000 +0200
+++ new/btop-1.2.13+git20221106.0f8498f/src/linux/btop_collect.cpp      
2022-11-06 22:36:34.000000000 +0100
@@ -26,7 +26,8 @@
 #include <netdb.h>
 #include <ifaddrs.h>
 #include <net/if.h>
-#include <thread>
+#include <arpa/inet.h> // for inet_ntop()
+
 
 #if !(defined(STATIC_BUILD) && defined(__GLIBC__))
        #include <pwd.h>
@@ -107,7 +108,7 @@
                if (passwd_path.empty())
                        Logger::warning("Could not read /etc/passwd, will show 
UID instead of username.");
 
-               coreCount = std::thread::hardware_concurrency();
+               coreCount = sysconf(_SC_NPROCESSORS_ONLN);
                if (coreCount < 1) {
                        coreCount = sysconf(_SC_NPROCESSORS_CONF);
                        if (coreCount < 1) {
@@ -668,6 +669,9 @@
                if (Runner::stopping or (no_update and not 
current_cpu.cpu_percent.at("total").empty())) return current_cpu;
                auto& cpu = current_cpu;
 
+               if (Config::getB("show_cpu_freq"))
+                       cpuHz = get_cpuHz();
+
                ifstream cread;
 
                try {
@@ -795,9 +799,6 @@
             else throw std::runtime_error("Cpu::collect() : " + 
string{e.what()});
                }
 
-               if (Config::getB("show_cpu_freq"))
-                       cpuHz = get_cpuHz();
-
                if (Config::getB("check_temp") and got_sensors)
                        update_sensors();
 
@@ -926,6 +927,7 @@
 
                //? Get disks stats
                if (show_disks) {
+                       static vector<string> ignore_list;
                        double uptime = system_uptime();
                        auto free_priv = Config::getB("disk_free_priv");
                        try {
@@ -998,7 +1000,7 @@
                                                diskread >> dev >> mountpoint 
>> fstype;
                                                diskread.ignore(SSmax, '\n');
 
-                                               if (v_contains(found, 
mountpoint)) continue;
+                                               if (v_contains(ignore_list, 
mountpoint) or v_contains(found, mountpoint)) continue;
 
                                                //? Match filter if not empty
                                                if (not filter.empty()) {
@@ -1057,6 +1059,7 @@
                                                        }
                                                }
                                        }
+
                                        //? Remove disks no longer mounted or 
filtered out
                                        if (swap_disk and has_swap) 
found.push_back("swap");
                                        for (auto it = disks.begin(); it != 
disks.end();) {
@@ -1073,11 +1076,14 @@
                                diskread.close();
 
                                //? Get disk/partition stats
+                               bool new_ignored = false;
                                for (auto& [mountpoint, disk] : disks) {
-                                       if (std::error_code ec; not 
fs::exists(mountpoint, ec)) continue;
+                                       if (std::error_code ec; not 
fs::exists(mountpoint, ec) or v_contains(ignore_list, mountpoint)) continue;
                                        struct statvfs64 vfs;
                                        if (statvfs64(mountpoint.c_str(), &vfs) 
< 0) {
-                                               Logger::warning("Failed to get 
disk/partition stats with statvfs() for: " + mountpoint);
+                                               Logger::warning("Failed to get 
disk/partition stats for mount \""+ mountpoint + "\" with statvfs64 error code: 
" + to_string(errno) + ". Ignoring...");
+                                               
ignore_list.push_back(mountpoint);
+                                               new_ignored = true;
                                                continue;
                                        }
                                        disk.total = vfs.f_blocks * 
vfs.f_frsize;
@@ -1087,6 +1093,16 @@
                                        disk.free_percent = 100 - 
disk.used_percent;
                                }
 
+                               //? Remove any problematic disks added to the 
ignore_list
+                               if (new_ignored) {
+                                       for (auto it = disks.begin(); it != 
disks.end();) {
+                                               if (v_contains(ignore_list, 
it->first))
+                                                       it = disks.erase(it);
+                                               else
+                                                       it++;
+                                       }
+                               }
+
                                //? Setup disks order in UI and add swap if 
enabled
                                mem.disks_order.clear();
                                #ifdef SNAPPED
@@ -1374,32 +1390,53 @@
                                return empty_net;
                        }
                        int family = 0;
-                       char ip[NI_MAXHOST];
+                       static_assert(INET6_ADDRSTRLEN >= INET_ADDRSTRLEN); // 
46 >= 16, compile-time assurance.
+                       enum { IPBUFFER_MAXSIZE = INET6_ADDRSTRLEN }; // 
manually using the known biggest value, guarded by the above static_assert
+                       char ip[IPBUFFER_MAXSIZE];
                        interfaces.clear();
                        string ipv4, ipv6;
 
                        //? Iteration over all items in getifaddrs() list
-            for (auto* ifa = if_wrap(); ifa != NULL; ifa = ifa->ifa_next) {
+                       for (auto* ifa = if_wrap(); ifa != NULL; ifa = 
ifa->ifa_next) {
                                if (ifa->ifa_addr == NULL) continue;
                                family = ifa->ifa_addr->sa_family;
                                const auto& iface = ifa->ifa_name;
 
-                               //? Get IPv4 address
-                               if (family == AF_INET) {
-                                       if (getnameinfo(ifa->ifa_addr, 
sizeof(struct sockaddr_in), ip, NI_MAXHOST, NULL, 0, NI_NUMERICHOST) == 0)
-                                               net[iface].ipv4 = ip;
-                               }
-                               //? Get IPv6 address
-                               else if (family == AF_INET6) {
-                                       if (getnameinfo(ifa->ifa_addr, 
sizeof(struct sockaddr_in6), ip, NI_MAXHOST, NULL, 0, NI_NUMERICHOST) == 0)
-                                               net[iface].ipv6 = ip;
-                               }
-
                                //? Update available interfaces vector and get 
status of interface
                                if (not v_contains(interfaces, iface)) {
                                        interfaces.push_back(iface);
                                        net[iface].connected = (ifa->ifa_flags 
& IFF_RUNNING);
+
+                                       // An interface can have more than one 
IP of the same family associated with it,
+                                       // but we pick only the first one to 
show in the NET box.
+                                       // Note: Interfaces without any IPv4 
and IPv6 set are still valid and monitorable!
+                                       net[iface].ipv4.clear();
+                                       net[iface].ipv6.clear();
+                               }
+
+
+                               //? Get IPv4 address
+                               if (family == AF_INET) {
+                                       if (net[iface].ipv4.empty()) {
+                                               if (NULL != inet_ntop(family, 
&(reinterpret_cast<struct sockaddr_in*>(ifa->ifa_addr)->sin_addr), ip, 
IPBUFFER_MAXSIZE)) {
+                                                       net[iface].ipv4 = ip;
+                                               } else {
+                                                       int errsv = errno;
+                                                       
Logger::error("Net::collect() -> Failed to convert IPv4 to string for iface " + 
string(iface) + ", errno: " + strerror(errsv));
+                                               }
+                                       }
                                }
+                               //? Get IPv6 address
+                               else if (family == AF_INET6) {
+                                       if (net[iface].ipv6.empty()) {
+                                               if (NULL != inet_ntop(family, 
&(reinterpret_cast<struct sockaddr_in6*>(ifa->ifa_addr)->sin6_addr), ip, 
IPBUFFER_MAXSIZE)) {
+                                                       net[iface].ipv6 = ip;
+                                               } else {
+                                                       int errsv = errno;
+                                                       
Logger::error("Net::collect() -> Failed to convert IPv6 to string for iface " + 
string(iface) + ", errno: " + strerror(errsv));
+                                               }
+                                       }
+                               } //else, ignoring family==AF_PACKET (see man 3 
getifaddrs) which is the first one in the `for` loop.
                        }
 
                        //? Get total recieved and transmitted bytes + device 
address if no ip was found
@@ -1707,6 +1744,7 @@
                                                getline(pread, r_user, ':');
                                                pread.ignore(SSmax, ':');
                                                getline(pread, r_uid, ':');
+                                               if (uid_user.contains(r_uid)) 
break;
                                                uid_user[r_uid] = r_user;
                                                pread.ignore(SSmax, '\n');
                                        }
@@ -1846,7 +1884,7 @@
                                                                next_x = 19;
                                                                continue;
                                                        case 19: //? Nice value
-                                                               new_proc.p_nice 
= stoull(short_str);
+                                                               new_proc.p_nice 
= stoll(short_str);
                                                                continue;
                                                        case 20: //? Number of 
threads
                                                                
new_proc.threads = stoull(short_str);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/btop-1.2.12+git20221007.3dd6a6c/src/osx/btop_collect.cpp 
new/btop-1.2.13+git20221106.0f8498f/src/osx/btop_collect.cpp
--- old/btop-1.2.12+git20221007.3dd6a6c/src/osx/btop_collect.cpp        
2022-10-07 20:59:47.000000000 +0200
+++ new/btop-1.2.13+git20221106.0f8498f/src/osx/btop_collect.cpp        
2022-11-06 22:36:34.000000000 +0100
@@ -19,7 +19,6 @@
 #include <CoreFoundation/CoreFoundation.h>
 #include <IOKit/IOKitLib.h>
 #include <arpa/inet.h>
-#include <ifaddrs.h>
 #include <libproc.h>
 #include <mach/mach.h>
 #include <mach/mach_host.h>
@@ -28,7 +27,12 @@
 #include <mach/processor_info.h>
 #include <mach/vm_statistics.h>
 #include <mach/mach_time.h>
+// BUGS
+//     If both <net/if.h> and <ifaddrs.h> are being included, <net/if.h> must 
be
+//     included before <ifaddrs.h>.
+// from: 
https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man3/getifaddrs.3.html
 #include <net/if.h>
+#include <ifaddrs.h>
 #include <net/if_dl.h>
 #include <netdb.h>
 #include <netinet/tcp_fsm.h>
@@ -37,6 +41,7 @@
 #include <sys/statvfs.h>
 #include <sys/sysctl.h>
 #include <sys/types.h>
+#include <netinet/in.h> // for inet_ntop
 #include <unistd.h>
 #include <stdexcept>
 
@@ -859,7 +864,9 @@
                                return empty_net;
                        }
                        int family = 0;
-                       char ip[NI_MAXHOST];
+                       static_assert(INET6_ADDRSTRLEN >= INET_ADDRSTRLEN); // 
46 >= 16, compile-time assurance.
+                       enum { IPBUFFER_MAXSIZE = INET6_ADDRSTRLEN }; // 
manually using the known biggest value, guarded by the above static_assert
+                       char ip[IPBUFFER_MAXSIZE];
                        interfaces.clear();
                        string ipv4, ipv6;
 
@@ -868,22 +875,38 @@
                                if (ifa->ifa_addr == NULL) continue;
                                family = ifa->ifa_addr->sa_family;
                                const auto &iface = ifa->ifa_name;
-                               //? Get IPv4 address
-                               if (family == AF_INET) {
-                                       if (getnameinfo(ifa->ifa_addr, 
sizeof(struct sockaddr_in), ip, NI_MAXHOST, NULL, 0, NI_NUMERICHOST) == 0)
-                                               net[iface].ipv4 = ip;
-                               }
-                               //? Get IPv6 address
-                               else if (family == AF_INET6) {
-                                       if (getnameinfo(ifa->ifa_addr, 
sizeof(struct sockaddr_in6), ip, NI_MAXHOST, NULL, 0, NI_NUMERICHOST) == 0)
-                                               net[iface].ipv6 = ip;
-                               }
-
                                //? Update available interfaces vector and get 
status of interface
                                if (not v_contains(interfaces, iface)) {
                                        interfaces.push_back(iface);
                                        net[iface].connected = (ifa->ifa_flags 
& IFF_RUNNING);
+                                       // An interface can have more than one 
IP of the same family associated with it,
+                                       // but we pick only the first one to 
show in the NET box.
+                                       // Note: Interfaces without any IPv4 
and IPv6 set are still valid and monitorable!
+                                       net[iface].ipv4.clear();
+                                       net[iface].ipv6.clear();
                                }
+                               //? Get IPv4 address
+                               if (family == AF_INET) {
+                                       if (net[iface].ipv4.empty()) {
+                                               if (NULL != inet_ntop(family, 
&(reinterpret_cast<struct sockaddr_in*>(ifa->ifa_addr)->sin_addr), ip, 
IPBUFFER_MAXSIZE)) {
+                                                       net[iface].ipv4 = ip;
+                                               } else {
+                                                       int errsv = errno;
+                                                       
Logger::error("Net::collect() -> Failed to convert IPv4 to string for iface " + 
string(iface) + ", errno: " + strerror(errsv));
+                                               }
+                                       }
+                               }
+                               //? Get IPv6 address
+                               else if (family == AF_INET6) {
+                                       if (net[iface].ipv6.empty()) {
+                                               if (NULL != inet_ntop(family, 
&(reinterpret_cast<struct sockaddr_in6*>(ifa->ifa_addr)->sin6_addr), ip, 
IPBUFFER_MAXSIZE)) {
+                                                       net[iface].ipv6 = ip;
+                                               } else {
+                                                       int errsv = errno;
+                                                       
Logger::error("Net::collect() -> Failed to convert IPv6 to string for iface " + 
string(iface) + ", errno: " + strerror(errsv));
+                                               }
+                                       }
+                               } // else, ignoring family==AF_LINK (see man 3 
getifaddrs)
                        }
 
                        unordered_flat_map<string, std::tuple<uint64_t, 
uint64_t>> ifstats;

++++++ btop.obsinfo ++++++
--- /var/tmp/diff_new_pack.Cjh6Ja/_old  2022-11-23 09:48:34.199186577 +0100
+++ /var/tmp/diff_new_pack.Cjh6Ja/_new  2022-11-23 09:48:34.203186598 +0100
@@ -1,5 +1,5 @@
 name: btop
-version: 1.2.12+git20221007.3dd6a6c
-mtime: 1665169187
-commit: 3dd6a6cc6b3677d01c9adf33bd579713bf1dc2fa
+version: 1.2.13+git20221106.0f8498f
+mtime: 1667770594
+commit: 0f8498fa4e68e3af36a50b1d9f97b931b41b0824
 

Reply via email to