Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package PlatformFolders for openSUSE:Factory 
checked in at 2026-01-05 14:51:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/PlatformFolders (Old)
 and      /work/SRC/openSUSE:Factory/.PlatformFolders.new.1928 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "PlatformFolders"

Mon Jan  5 14:51:45 2026 rev:2 rq:1325220 version:4.3.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/PlatformFolders/PlatformFolders.changes  
2023-02-24 18:08:26.669525795 +0100
+++ 
/work/SRC/openSUSE:Factory/.PlatformFolders.new.1928/PlatformFolders.changes    
    2026-01-05 14:52:41.413104831 +0100
@@ -1,0 +2,8 @@
+Fri Jan  2 15:30:09 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 4.3.0:
+  * Exposed "sago::internal::getHome()". It might be useful when
+    converting from old file placement.
+  * Tested and supports newer versions of CMake
+
+-------------------------------------------------------------------

Old:
----
  4.2.0.tar.gz

New:
----
  4.3.0.tar.gz

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

Other differences:
------------------
++++++ PlatformFolders.spec ++++++
--- /var/tmp/diff_new_pack.lQksuv/_old  2026-01-05 14:52:43.485191130 +0100
+++ /var/tmp/diff_new_pack.lQksuv/_new  2026-01-05 14:52:43.485191130 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package PlatformFolders
 #
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2026 SUSE LLC and contributors
 # Copyright (c) 2022 Fabio Pesari
 #
 # All modifications and additions to the file contributed by third parties
@@ -18,7 +18,7 @@
 
 
 Name:           PlatformFolders
-Version:        4.2.0
+Version:        4.3.0
 Release:        0
 Summary:        Library for cross-platform detection of special directories
 License:        MIT

++++++ 4.2.0.tar.gz -> 4.3.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PlatformFolders-4.2.0/CHANGELOG.md 
new/PlatformFolders-4.3.0/CHANGELOG.md
--- old/PlatformFolders-4.2.0/CHANGELOG.md      2022-02-06 18:10:43.000000000 
+0100
+++ new/PlatformFolders-4.3.0/CHANGELOG.md      2025-07-31 21:55:51.000000000 
+0200
@@ -4,6 +4,14 @@
 
 The format is based on [Keep a 
Changelog](https://keepachangelog.com/en/1.0.0/).
 
+## [4.3.0] 2025-07-31
+
+### Added
+ - Exposed "sago::internal::getHome()". It might be useful when converting 
from old file placement.
+
+### Changed
+ - Tested and supports newer versions of CMake
+
 ## [4.2.0] 2022-02-06
 
 ### Added
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PlatformFolders-4.2.0/CMakeLists.txt 
new/PlatformFolders-4.3.0/CMakeLists.txt
--- old/PlatformFolders-4.2.0/CMakeLists.txt    2022-02-06 18:10:43.000000000 
+0100
+++ new/PlatformFolders-4.3.0/CMakeLists.txt    2025-07-31 21:55:51.000000000 
+0200
@@ -1,5 +1,5 @@
 # For target_compile_features
-cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
+cmake_minimum_required(VERSION 3.5.1...3.30.3)
 
 set(PLATFORMFOLDERS_MAIN_PROJECT OFF)
 if(CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PlatformFolders-4.2.0/sago/platform_folders.cpp 
new/PlatformFolders-4.3.0/sago/platform_folders.cpp
--- old/PlatformFolders-4.2.0/sago/platform_folders.cpp 2022-02-06 
18:10:43.000000000 +0100
+++ new/PlatformFolders-4.3.0/sago/platform_folders.cpp 2025-07-31 
21:55:51.000000000 +0200
@@ -37,13 +37,16 @@
 #include <pwd.h>
 #include <unistd.h>
 
+namespace sago {
+namespace internal {
+
 /**
  * Retrives the effective user's home dir.
  * If the user is running as root we ignore the HOME environment. It works 
badly with sudo.
  * Writing to $HOME as root implies security concerns that a multiplatform 
program cannot be assumed to handle.
  * @return The home directory. HOME environment is respected for non-root 
users if it exists.
  */
-static std::string getHome() {
+std::string getHome() {
        std::string res;
        int uid = getuid();
        const char* homeEnv = std::getenv("HOME");
@@ -55,12 +58,18 @@
        struct passwd* pw = nullptr;
        struct passwd pwd;
        long bufsize = sysconf(_SC_GETPW_R_SIZE_MAX);
-       if (bufsize < 0) {
+       if (bufsize < 1) {
                bufsize = 16384;
        }
        std::vector<char> buffer;
        buffer.resize(bufsize);
        int error_code = getpwuid_r(uid, &pwd, buffer.data(), buffer.size(), 
&pw);
+       while (error_code == ERANGE) {
+               // The buffer was too small. Try again with a larger buffer.
+               bufsize *= 2;
+               buffer.resize(bufsize);
+               error_code = getpwuid_r(uid, &pwd, buffer.data(), 
buffer.size(), &pw);
+       }
        if (error_code) {
                throw std::runtime_error("Unable to get passwd struct.");
        }
@@ -72,6 +81,9 @@
        return res;
 }
 
+}  // namesapce internal
+}  // namespace sago
+
 #endif
 
 #ifdef _WIN32
@@ -171,7 +183,7 @@
                res = tempRes;
                return res;
        }
-       res = getHome() + "/" + defaultRelativePath;
+       res = sago::internal::getHome() + "/" + defaultRelativePath;
        return res;
 }
 
@@ -211,7 +223,7 @@
 #ifdef _WIN32
        return GetAppData();
 #elif defined(__APPLE__)
-       return getHome()+"/Library/Application Support";
+       return sago::internal::getHome()+"/Library/Application Support";
 #else
        return getLinuxFolderDefault("XDG_DATA_HOME", ".local/share");
 #endif
@@ -221,7 +233,7 @@
 #ifdef _WIN32
        return GetAppData();
 #elif defined(__APPLE__)
-       return getHome()+"/Library/Application Support";
+       return sago::internal::getHome()+"/Library/Application Support";
 #else
        return getLinuxFolderDefault("XDG_CONFIG_HOME", ".config");
 #endif
@@ -231,7 +243,7 @@
 #ifdef _WIN32
        return GetAppDataLocal();
 #elif defined(__APPLE__)
-       return getHome()+"/Library/Caches";
+       return sago::internal::getHome()+"/Library/Caches";
 #else
        return getLinuxFolderDefault("XDG_CACHE_HOME", ".cache");
 #endif
@@ -241,7 +253,7 @@
 #ifdef _WIN32
        return GetAppDataLocal();
 #elif defined(__APPLE__)
-       return getHome()+"/Library/Application Support";
+       return sago::internal::getHome()+"/Library/Application Support";
 #else
        return getLinuxFolderDefault("XDG_STATE_HOME", ".local/state");
 #endif
@@ -303,7 +315,7 @@
        for (std::map<std::string, std::string>::iterator itr = folders.begin() 
; itr != folders.end() ; ++itr ) {
                std::string& value = itr->second;
                if (value.compare(0, 5, "$HOME") == 0) {
-                       value = getHome() + value.substr(5, std::string::npos);
+                       value = sago::internal::getHome() + value.substr(5, 
std::string::npos);
                }
        }
 }
@@ -332,7 +344,7 @@
 #ifdef _WIN32
        return GetKnownWindowsFolder(FOLDERID_Documents, "Failed to find My 
Documents folder");
 #elif defined(__APPLE__)
-       return getHome()+"/Documents";
+       return sago::internal::getHome()+"/Documents";
 #else
        return data->folders["XDG_DOCUMENTS_DIR"];
 #endif
@@ -342,7 +354,7 @@
 #ifdef _WIN32
        return GetKnownWindowsFolder(FOLDERID_Desktop, "Failed to find Desktop 
folder");
 #elif defined(__APPLE__)
-       return getHome()+"/Desktop";
+       return sago::internal::getHome()+"/Desktop";
 #else
        return data->folders["XDG_DESKTOP_DIR"];
 #endif
@@ -352,7 +364,7 @@
 #ifdef _WIN32
        return GetKnownWindowsFolder(FOLDERID_Pictures, "Failed to find My 
Pictures folder");
 #elif defined(__APPLE__)
-       return getHome()+"/Pictures";
+       return sago::internal::getHome()+"/Pictures";
 #else
        return data->folders["XDG_PICTURES_DIR"];
 #endif
@@ -362,7 +374,7 @@
 #ifdef _WIN32
        return GetKnownWindowsFolder(FOLDERID_Public, "Failed to find the 
Public folder");
 #elif defined(__APPLE__)
-       return getHome()+"/Public";
+       return sago::internal::getHome()+"/Public";
 #else
        return data->folders["XDG_PUBLICSHARE_DIR"];
 #endif
@@ -372,7 +384,7 @@
 #ifdef _WIN32
        return GetKnownWindowsFolder(FOLDERID_Downloads, "Failed to find My 
Downloads folder");
 #elif defined(__APPLE__)
-       return getHome()+"/Downloads";
+       return sago::internal::getHome()+"/Downloads";
 #else
        return data->folders["XDG_DOWNLOAD_DIR"];
 #endif
@@ -382,7 +394,7 @@
 #ifdef _WIN32
        return GetKnownWindowsFolder(FOLDERID_Music, "Failed to find My Music 
folder");
 #elif defined(__APPLE__)
-       return getHome()+"/Music";
+       return sago::internal::getHome()+"/Music";
 #else
        return data->folders["XDG_MUSIC_DIR"];
 #endif
@@ -392,7 +404,7 @@
 #ifdef _WIN32
        return GetKnownWindowsFolder(FOLDERID_Videos, "Failed to find My Video 
folder");
 #elif defined(__APPLE__)
-       return getHome()+"/Movies";
+       return sago::internal::getHome()+"/Movies";
 #else
        return data->folders["XDG_VIDEOS_DIR"];
 #endif
@@ -404,7 +416,7 @@
        //Data that should not be user accessible should be placed under 
GetDataHome() instead
        return GetKnownWindowsFolder(FOLDERID_Documents, "Failed to find My 
Documents folder")+"\\My Games";
 #elif defined(__APPLE__)
-       return getHome()+"/Library/Application Support";
+       return sago::internal::getHome()+"/Library/Application Support";
 #else
        return getDataHome();
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PlatformFolders-4.2.0/sago/platform_folders.h 
new/PlatformFolders-4.3.0/sago/platform_folders.h
--- old/PlatformFolders-4.2.0/sago/platform_folders.h   2022-02-06 
18:10:43.000000000 +0100
+++ new/PlatformFolders-4.3.0/sago/platform_folders.h   2025-07-31 
21:55:51.000000000 +0200
@@ -45,6 +45,9 @@
 #ifdef _WIN32
 std::string win32_utf16_to_utf8(const wchar_t* wstr);
 #endif
+#ifndef _WIN32
+std::string getHome();
+#endif
 }
 #endif  //DOXYGEN_SHOULD_SKIP_THIS
 
@@ -271,8 +274,8 @@
         */
        std::string getSaveGamesFolder1() const;
 private:
-       PlatformFolders(const PlatformFolders&);
-       PlatformFolders& operator=(const PlatformFolders&);
+       PlatformFolders(const PlatformFolders&) = delete;
+       PlatformFolders& operator=(const PlatformFolders&) = delete;
 #if !defined(_WIN32) && !defined(__APPLE__)
        struct PlatformFoldersData;
        PlatformFoldersData* data;

Reply via email to