slackware-current/source/l/qt/patches/qt-everywhere-opensource-src-4.8.5-QTBUG-4862.patch
Patrick J Volkerding 125048ad7d Sat May 4 01:29:20 UTC 2019
d/gcc-9.1.0-x86_64-1.txz:  Upgraded.
d/gcc-brig-9.1.0-x86_64-1.txz:  Upgraded.
d/gcc-g++-9.1.0-x86_64-1.txz:  Upgraded.
d/gcc-gfortran-9.1.0-x86_64-1.txz:  Upgraded.
d/gcc-gnat-9.1.0-x86_64-1.txz:  Upgraded.
d/gcc-go-9.1.0-x86_64-1.txz:  Upgraded.
  Shared library .so-version bump.
d/gcc-objc-9.1.0-x86_64-1.txz:  Upgraded.
d/libtool-2.4.6-x86_64-11.txz:  Rebuilt.
  Recompiled to update embedded GCC version number.
d/llvm-8.0.0-x86_64-2.txz:  Rebuilt.
  Recompiled with -DLLVM_INSTALL_UTILS=ON. Thanks to Lockywolf.
d/swig-4.0.0-x86_64-1.txz:  Upgraded.
l/glib2-2.60.2-x86_64-1.txz:  Upgraded.
l/qt-4.8.7-x86_64-13.txz:  Rebuilt.
  Patched to fix FTBFS with gcc9 (also fixes FTBFS with qtscriptgenerator and
  possibly other projects that use qt4).
2019-05-04 08:59:47 +02:00

29 lines
1.3 KiB
Diff

diff -up qt-everywhere-opensource-src-4.8.5/src/corelib/io/qfilesystemengine_unix.cpp.QTBUG-4862 qt-everywhere-opensource-src-4.8.5/src/corelib/io/qfilesystemengine_unix.cpp
--- qt-everywhere-opensource-src-4.8.5/src/corelib/io/qfilesystemengine_unix.cpp.QTBUG-4862 2013-06-09 12:02:50.323221694 -0500
+++ qt-everywhere-opensource-src-4.8.5/src/corelib/io/qfilesystemengine_unix.cpp 2013-06-09 12:38:53.140804742 -0500
@@ -624,6 +624,25 @@ QString QFileSystemEngine::homePath()
{
QString home = QFile::decodeName(qgetenv("HOME"));
if (home.isEmpty())
+ {
+#if !defined(QT_NO_THREAD) && defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_OPENBSD)
+ int size_max = sysconf(_SC_GETPW_R_SIZE_MAX);
+ if (size_max == -1)
+ size_max = 1024;
+ QVarLengthArray<char, 1024> buf(size_max);
+#endif
+ struct passwd *pw = 0;
+ uid_t user_id = getuid();
+ pw = getpwuid(user_id);
+#if !defined(QT_NO_THREAD) && defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_OPENBSD)
+ struct passwd entry;
+ getpwuid_r(user_id, &entry, buf.data(), buf.size(), &pw);
+#else
+ pw = getpwuid(user_id);
+#endif
+ home = QFile::decodeName(QByteArray(pw->pw_dir));
+ }
+ if (home.isEmpty())
home = rootPath();
return QDir::cleanPath(home);
}