Bug#901062: qtbase5-dev: qtbase5-dev: QFile::exists() returns false for existing files?!
Package: qtbase5-dev
Version: 5.10.1+dfsg-7
Severity: normal
Dear Maintainer,
did a fresh install of debian sid within docker and stumbled upon this
bug in QFile:
QFile's method exists() returns false even if that file exists.
STEPS TO REPRODUCE:
$ cat << 'EOF' >> /tmp/CMakeLists.txt
cmake_minimum_required(VERSION 3.0)
project(test)
find_package(Qt5Core REQUIRED)
add_executable(tgt main.cpp)
target_link_libraries(tgt Qt5::Core)
EOF
$ cat << 'EOF' >> /tmp/main.cpp
#include <QFile>
#include <QString>
#include <QFileInfo>
#include <iostream>
int main() {
QString path{"/bin/sh"};
QFile qf{path};
QFileInfo qfi{path};
std::cout << "TRUE:=" << true << std::endl;
std::cout << "QFile::exists() == " << qf.exists() << std::endl;
std::cout << "QFileInfo::exists() == " << qfi.exists() << std::endl;
return 0;
}
EOF
$ cmake .
-- The C compiler identification is GNU 7.3.0
-- The CXX compiler identification is GNU 7.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/
$ make
Scanning dependencies of target tgt
[ 50%] Building CXX object CMakeFiles/tgt.dir/main.cpp.o
[100%] Linking CXX executable tgt
[100%] Built target tgt
$ ./tgt
TRUE:=1
QFile::exists() == 0
QFileInfo::exists() == 1
EXPECTED RESULT (same as in debian stretch):
$ ./tgt
TRUE:=1
QFile::exists() == 1
QFileInfo::exists() == 1
QFile is quite fundamental to Qt and KDE. For me it prevented
compilation of kdevelop from git because kdevelop uses desktoptojson
(from libkf5coreaddons-dev-bin) during build which fails due to this bug
(QFile is used in line 312 in file
kcoreaddons-5.46.0/src/lib/plugin/desktopfileparser.cpp)..
So far I was unable to locate the bug. QFile's code
(src/corelib/io/qfile.cpp) didn't change much from
qtbase-opensource-src-5.7.1 (stretch) to qtbase-opensource-src-5.10.1
(sid), so my guess is its somewhere in
/src/corelib/io/qabstractfileengine.cpp or even lower.
BUT surprisingly KDE apps like akregator have successfully been build
for debian sid but fail for me/my sid install. They should have suffered
the same problems during build because they also use desktoptojson
during build.
Any ideas?
Cheers
Jakob
-- System Information:
Debian Release: buster/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 4.9.0-6-amd64 (SMP w/4 CPU cores)
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968), LANGUAGE=C
(charmap=ANSI_X3.4-1968)
Shell: /bin/sh linked to /bin/dash
Init: unable to detect
Versions of packages qtbase5-dev depends on:
ii libgl1-mesa-dev [libgl-dev] 18.0.5-1
ii libglu1-mesa-dev [libglu-dev] 9.0.0-2.1
ii libqt5concurrent5 5.10.1+dfsg-7
ii libqt5core5a 5.10.1+dfsg-7
ii libqt5dbus5 5.10.1+dfsg-7
ii libqt5gui5 5.10.1+dfsg-7
ii libqt5network5 5.10.1+dfsg-7
ii libqt5printsupport5 5.10.1+dfsg-7
ii libqt5sql5 5.10.1+dfsg-7
ii libqt5test5 5.10.1+dfsg-7
ii libqt5widgets5 5.10.1+dfsg-7
ii libqt5xml5 5.10.1+dfsg-7
ii libxext-dev 2:1.3.3-1+b2
ii qt5-qmake 5.10.1+dfsg-7
ii qtbase5-dev-tools 5.10.1+dfsg-7
ii qtchooser 64-ga1b6736-5
Versions of packages qtbase5-dev recommends:
ii libqt5opengl5-dev 5.10.1+dfsg-7
Versions of packages qtbase5-dev suggests:
ii default-libmysqlclient-dev 1.0.4
pn firebird-dev <none>
ii libegl1-mesa-dev 18.0.5-1
ii libgl1-mesa-dev 18.0.5-1
ii libpq-dev 10.4-2
ii libsqlite3-dev 3.23.1-1
ii unixodbc-dev 2.3.6-0.1
-- no debconf information
Reply to: