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
|
Name: qt
|
||||||
Epoch: 1
|
Epoch: 1
|
||||||
Version: 4.8.3
|
Version: 4.8.3
|
||||||
Release: 4%{?dist}
|
Release: 5%{?dist}
|
||||||
|
|
||||||
# See LGPL_EXCEPTIONS.txt, LICENSE.GPL3, respectively, for exception details
|
# 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
|
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
|
Patch80: qt-everywhere-opensource-src-4.8.0-ld-gold.patch
|
||||||
|
|
||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=810500
|
# 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
|
# upstream patches
|
||||||
# http://codereview.qt-project.org/#change,22006
|
# 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
|
%patch77 -p1 -b .icu_no_debug
|
||||||
%patch80 -p1 -b .ld.gold
|
%patch80 -p1 -b .ld.gold
|
||||||
%patch81 -p1 -b .assistant-crash
|
%patch81 -p1 -b .assistant-crash
|
||||||
|
%patch82 -p1 -b .QTBUG-4862
|
||||||
|
|
||||||
# upstream patches
|
# upstream patches
|
||||||
%patch100 -p1 -b .QTgaHandler
|
%patch100 -p1 -b .QTgaHandler
|
||||||
|
@ -1098,6 +1105,9 @@ fi
|
||||||
|
|
||||||
|
|
||||||
%changelog
|
%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
|
* 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)
|
- $RPM_LD_FLAGS should be propagated to qmake's defaults (#868554)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue