QDir::homePath() should account for an empty $HOME (QTBUG-4862, kde#249217, #694385)
This commit is contained in:
parent
86416228bf
commit
0e56548e70
|
@ -0,0 +1,32 @@
|
|||
diff -up qt-everywhere-opensource-src-4.8.3/src/corelib/io/qfilesystemengine_unix.cpp.QTBUG-4862 qt-everywhere-opensource-src-4.8.3/src/corelib/io/qfilesystemengine_unix.cpp
|
||||
--- qt-everywhere-opensource-src-4.8.3/src/corelib/io/qfilesystemengine_unix.cpp.QTBUG-4862 2012-09-10 20:36:50.000000000 -0500
|
||||
+++ qt-everywhere-opensource-src-4.8.3/src/corelib/io/qfilesystemengine_unix.cpp 2012-10-22 14:16:42.672111081 -0500
|
||||
@@ -611,7 +611,26 @@ bool QFileSystemEngine::setPermissions(c
|
||||
QString QFileSystemEngine::homePath()
|
||||
{
|
||||
QString home = QFile::decodeName(qgetenv("HOME"));
|
||||
- if (home.isNull())
|
||||
+ 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);
|
||||
}
|
||||
diff -up qt-everywhere-opensource-src-4.8.3/src/corelib/io/qfsfileengine_unix.cpp.QTBUG-4862 qt-everywhere-opensource-src-4.8.3/src/corelib/io/qfsfileengine_unix.cpp
|
14
qt.spec
14
qt.spec
|
@ -16,7 +16,7 @@ Summary: Qt toolkit
|
|||
Name: qt
|
||||
Epoch: 1
|
||||
Version: 4.8.3
|
||||
Release: 4%{?dist}
|
||||
Release: 5%{?dist}
|
||||
|
||||
# See LGPL_EXCEPTIONS.txt, LICENSE.GPL3, respectively, for exception details
|
||||
License: (LGPLv2 with exceptions or GPLv3 with exceptions) and ASL 2.0 and BSD and FTL and MIT
|
||||
|
@ -108,7 +108,13 @@ Patch77: qt-everywhere-opensource-src-4.8.3-icu_no_debug.patch
|
|||
Patch80: qt-everywhere-opensource-src-4.8.0-ld-gold.patch
|
||||
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=810500
|
||||
Patch81: ./qt-everywhere-opensource-src-4.8.2--assistant-crash.patch
|
||||
Patch81: qt-everywhere-opensource-src-4.8.2--assistant-crash.patch
|
||||
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=694385
|
||||
# https://bugs.kde.org/show_bug.cgi?id=249217
|
||||
# https://bugreports.qt-project.org/browse/QTBUG-4862
|
||||
# QDir::homePath() should account for an empty HOME environment variable on X11
|
||||
Patch82: qt-everywhere-opensource-src-4.8.3-QTBUG-4862.patch
|
||||
|
||||
# upstream patches
|
||||
# http://codereview.qt-project.org/#change,22006
|
||||
|
@ -456,6 +462,7 @@ rm -fv mkspecs/linux-g++*/qmake.conf.multilib-optflags
|
|||
%patch77 -p1 -b .icu_no_debug
|
||||
%patch80 -p1 -b .ld.gold
|
||||
%patch81 -p1 -b .assistant-crash
|
||||
%patch82 -p1 -b .QTBUG-4862
|
||||
|
||||
# upstream patches
|
||||
%patch100 -p1 -b .QTgaHandler
|
||||
|
@ -1098,6 +1105,9 @@ fi
|
|||
|
||||
|
||||
%changelog
|
||||
* Mon Oct 22 2012 Rex Dieter <rdieter@fedoraproject.org> 1:4.8.3-5
|
||||
- QDir::homePath() should account for an empty $HOME (QTBUG-4862, kde#249217, #694385)
|
||||
|
||||
* Sat Oct 20 2012 Rex Dieter <rdieter@fedoraproject.org> 1:4.8.3-4
|
||||
- $RPM_LD_FLAGS should be propagated to qmake's defaults (#868554)
|
||||
|
||||
|
|
Loading…
Reference in New Issue