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;