Bug 362849

Summary: meinproc5.exe searches the wrong path for kdoctools
Product: [Frameworks and Libraries] frameworks-kdoctools Reporter: Jasem Mutlaq <mutlaqja>
Component: generalAssignee: Documentation Editorial Team <kde-doc-english>
Status: RESOLVED WORKSFORME    
Severity: normal CC: kde-windows, kdelibs-bugs, laysrodriguessilva, luigi.toscano, ralf.habacker
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Microsoft Windows   
Latest Commit: Version Fixed In:

Description Jasem Mutlaq 2016-05-09 10:34:40 UTC
OS: Win10 64bit, using Powershell, Qt 5.6 with MSVS2015 compiler (Qt not emerged).

I emerged frameworks and I encountered the following error:

jom 1.0.16 - empower your cores

        D:\k\dev-utils\bin\cmake.exe -HD:\k\download\git\kpackage -BD:\k\build\frameworks\kpackage\work\msvc2015-RelWithDebInfo-master --check-build-system CMakeFiles\Makefile.cmake 0
        D:\k\dev-utils\bin\cmake.exe -E cmake_progress_start D:\k\build\frameworks\kpackage\work\msvc2015-RelWithDebInfo-master\CMakeFiles D:\k\build\frameworks\kpackage\work\msvc2015-RelWithDebInfo-master\CMakeFiles\progress.marks
        D:\k\dev-utils\bin\jom.exe -f CMakeFiles\Makefile2 /nologo - all
        D:\k\dev-utils\bin\jom.exe -f docs\kpackagetool\CMakeFiles\docs-kpackagetool-kpackagetool5-1.dir\build.make /nologo -L docs\kpackagetool\CMakeFiles\docs-kpackagetool-kpackagetool5-1.dir\depend
        D:\k\dev-utils\bin\cmake.exe -E cmake_depends "NMake Makefiles" D:\k\download\git\kpackage D:\k\download\git\kpackage\docs\kpackagetool D:\k\build\frameworks\kpackage\work\msvc2015-RelWithDebInfo-master D:\k\build\frameworks\kpackage\work\msvc2015-RelWithDebInfo-
master\docs\kpackagetool D:\k\build\frameworks\kpackage\work\msvc2015-RelWithDebInfo-master\docs\kpackagetool\CMakeFiles\docs-kpackagetool-kpackagetool5-1.dir\DependInfo.cmake --color=
Dependee "D:\k\build\frameworks\kpackage\work\msvc2015-RelWithDebInfo-master\docs\kpackagetool\CMakeFiles\docs-kpackagetool-kpackagetool5-1.dir\DependInfo.cmake" is newer than depender "D:/k/build/frameworks/kpackage/work/msvc2015-RelWithDebInfo-master/docs/kpackagetool/
CMakeFiles/docs-kpackagetool-kpackagetool5-1.dir/depend.internal".
Dependee "D:/k/build/frameworks/kpackage/work/msvc2015-RelWithDebInfo-master/docs/kpackagetool/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "D:/k/build/frameworks/kpackage/work/msvc2015-RelWithDebInfo-master/docs/kpackagetool/CMakeFiles/docs-kpackag
etool-kpackagetool5-1.dir/depend.internal".
Scanning dependencies of target docs-kpackagetool-kpackagetool5-1
        D:\k\dev-utils\bin\jom.exe -f docs\kpackagetool\CMakeFiles\docs-kpackagetool-kpackagetool5-1.dir\build.make /nologo -L docs\kpackagetool\CMakeFiles\docs-kpackagetool-kpackagetool5-1.dir\build
[  2%] Generating kpackagetool5.1
        cd D:\k\build\frameworks\kpackage\work\msvc2015-RelWithDebInfo-master\docs\kpackagetool
        D:\k\bin\meinproc5.exe --stylesheet D:/k/share/kf5/kdoctools/customization/kde-include-man.xsl --check D:/k/download/git/kpackage/docs/kpackagetool/man-kpackagetool5.1.docbook
Could not locate file "kf5/kdoctools/customization" in ("C:/Users/Jasem/AppData/Local", "C:/ProgramData", "D:/k/bin", "D:/k/bin/data")
Could not locate file "kf5/kdoctools/customization" in ("C:/Users/Jasem/AppData/Local", "C:/ProgramData", "D:/k/bin", "D:/k/bin/data")
Error: Could not find kdoctools catalogs
jom: D:\k\build\frameworks\kpackage\work\msvc2015-RelWithDebInfo-master\docs\kpackagetool\CMakeFiles\docs-kpackagetool-kpackagetool5-1.dir\build.make [docs\kpackagetool\kpackagetool5.1] Error 1
jom: D:\k\build\frameworks\kpackage\work\msvc2015-RelWithDebInfo-master\CMakeFiles\Makefile2 [docs\kpackagetool\CMakeFiles\docs-kpackagetool-kpackagetool5-1.dir\all] Error 2
jom: D:\k\build\frameworks\kpackage\work\msvc2015-RelWithDebInfo-master\Makefile [all] Error 2
*** Emerge all failed: all of frameworks/kpackage failed after 0:00:05 ***
emerge error: fatal error: package frameworks/kpackage all failed
PS D:\k> D:\k\bin\meinproc5.exe --stylesheet D:/k/share/kf5/kdoctools/customization/kde-include-man.xsl --check D:/k/download/git/kpackage/docs/kpackagetool/man-kpackagetool5.1.docbook
Could not locate file "kf5/kdoctools/customization" in ("C:/Users/Jasem/AppData/Local", "C:/ProgramData", "D:/k/bin", "D:/k/bin/data")
Could not locate file "kf5/kdoctools/customization" in ("C:/Users/Jasem/AppData/Local", "C:/ProgramData", "D:/k/bin", "D:/k/bin/data")
Error: Could not find kdoctools catalogs

Why is meinproc5.exe looking in k/bin and k/bin/data ?! kf5/kdoctools/customization is located under k/share

How to solve this problem?

Reproducible: Always

Steps to Reproduce:
1. emerge frameworks
2.
3.

Actual Results:  
emerge frameworks fails to build

Expected Results:  
emerge frameworks continues to build. meinproc5.exe finds kdoctools
Comment 1 Luigi Toscano 2016-05-09 12:23:28 UTC
This was tested and it should definitely work, but I need help from windows developers.
Comment 2 Jasem Mutlaq 2016-05-20 21:34:53 UTC
Any update on this issue? Was this tested on Win10? under powershell?
Comment 3 Jasem Mutlaq 2016-05-21 12:33:20 UTC
I suspect it could be due to some environment variables not being set? Here is my environment variables:

PS D:\> Get-ChildItem Env:

Name                           Value
----                           -----
ALLUSERSPROFILE                C:\ProgramData
APPDATA                        C:\Users\Jasem\AppData\Roaming
APR_ICONV_PATH                 C:\Program Files (x86)\Subversion\iconv
CommandPromptType              Native
CommonProgramFiles             C:\Program Files (x86)\Common Files
CommonProgramFiles(x86)        C:\Program Files (x86)\Common Files
CommonProgramW6432             C:\Program Files\Common Files
COMPUTERNAME                   JASEM-PC
ComSpec                        C:\WINDOWS\system32\cmd.exe
FP_NO_HOST_CHECK               NO
FPS_BROWSER_APP_PROFILE_STRING Internet Explorer
FPS_BROWSER_USER_PROFILE_ST... Default
Framework40Version             v4.0
FrameworkDir                   C:\WINDOWS\Microsoft.NET\Framework64
FrameworkDIR64                 C:\WINDOWS\Microsoft.NET\Framework64
FrameworkVersion               v4.0.30319
FrameworkVersion64             v4.0.30319
git_ssh                        plink
HOME                           C:\Users\Jasem
HOMEDRIVE                      C:
HOMEPATH                       \Users\Jasem
INCLUDE                        C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE;C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\INCLUDE;C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt;C:\Program Files (x86)\Windows Kits\NE...
KDEROOT                        D:\k
LIB                            C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\LIB\amd64;C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\LIB\amd64;C:\Program Files (x86)\Windows Kits\10\lib\10.0.10240.0\ucrt\x64;C:\Program Files (x86)\Windows Kit...
LIBPATH                        C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319;C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\LIB\amd64;C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\LIB\amd64;C:\Program Files (x86)\Windows Kits\8.1\References\...
LOCALAPPDATA                   C:\Users\Jasem\AppData\Local
LOGONSERVER                    \\MicrosoftAccount
NETFXSDKDir                    C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\
NUMBER_OF_PROCESSORS           8
OS                             Windows_NT
Path                           D:\k\bin;D:\k\dev-utils\bin;D:\Qt\Qt5.6.0\5.6\msvc2015\bin;C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow;C:\Program Files (x86)\MSBuild\14.0\bin\amd64;C:\Program Files (x86)\MSBuil...
PATHEXT                        .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY;.PYW;.CPL
PKG_CONFIG_PATH                D:\k\lib\pkgconfig
Platform                       X64
PROCESSOR_ARCHITECTURE         x86
PROCESSOR_ARCHITEW6432         AMD64
PROCESSOR_IDENTIFIER           Intel64 Family 6 Model 58 Stepping 9, GenuineIntel
PROCESSOR_LEVEL                6
PROCESSOR_REVISION             3a09
ProgramData                    C:\ProgramData
ProgramFiles                   C:\Program Files (x86)
ProgramFiles(x86)              C:\Program Files (x86)
ProgramW6432                   C:\Program Files
PROMPT                         $P$G
PSModulePath                   C:\Users\Jasem\Documents\WindowsPowerShell\Modules;C:\Program Files\WindowsPowerShell\Modules;C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules\
PUBLIC                         C:\Users\Public
PythonPath                     D:\k\lib\site-packages
QT_PLUGIN_PATH                 D:\k\plugins;D:\k\lib\plugins;D:\k\lib\plugin
SESSIONNAME                    Console
svn_ssh                        plink
SystemDrive                    C:
SystemRoot                     C:\WINDOWS
TEMP                           C:\Users\Jasem\AppData\Local\Temp
TMP                            C:\Users\Jasem\AppData\Local\Temp
UCRTVersion                    10.0.10240.0
UniversalCRTSdkDir             C:\Program Files (x86)\Windows Kits\10\
USERDOMAIN                     JASEM-PC
USERDOMAIN_ROAMINGPROFILE      JASEM-PC
USERNAME                       Jasem
USERPROFILE                    C:\Users\Jasem
VBOX_MSI_INSTALL_PATH          C:\Program Files\Oracle\VirtualBox\
VCINSTALLDIR                   C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\
VisualStudioVersion            14.0
VS110COMNTOOLS                 C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools\
VS120COMNTOOLS                 C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\
VS140COMNTOOLS                 C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\
VSINSTALLDIR                   C:\Program Files (x86)\Microsoft Visual Studio 14.0\
windir                         C:\WINDOWS
windows_tracing_flags          3
windows_tracing_logfile        C:\BVTBin\Tests\installpackage\csilogfile.log
WindowsLibPath                 C:\Program Files (x86)\Windows Kits\8.1\References\CommonConfiguration\Neutral
WindowsSDK_ExecutablePath_x64  C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\x64\
WindowsSDK_ExecutablePath_x86  C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\
WindowsSdkDir                  C:\Program Files (x86)\Windows Kits\8.1\
WindowsSDKLibVersion           winv6.3\
WindowsSDKVersion              \
XDG_DATA_DIRS                  D:\k\share

If I explicitly pass  --srcdir D:\k\share\kf5\kdoctools\

Then meinproc5.exe works just fine. The problem is when no source dir is being passed. I see that in xslt.cpp:

QStringList locateFilesInDtdResource(const QString &file, const QStandardPaths::LocateOptions option)

In source dir is empty, it searches for it here:

const QString fileName = QStringLiteral("kf5/kdoctools/") + file;
    const QStringList result = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation,
            fileName, option);

But then GenericDataLocation for Windows is no way near D:\k\share 

Should it perhaps use the XDG_DATA_DIRS environment variable to search there?
Comment 4 Ralf Habacker 2016-05-23 08:27:33 UTC
This issue is because Qt5 QStandardPaths does not understands the 'unix' path layout implemented in cmake buildsystem for KF5. 

There are the following solutions for this issue: 
1. Extend windows port of Qt5 to understand 'unix' path layout.
2. Adjust cmake installation pathes to follow the path layout provided by QStandardPaths on Windows.  

For 1. there is an experimental patch available at https://build.opensuse.org/package/view_file/home:rhabacker:branches:windows:mingw:win32:Qt55/mingw32-libqt5-qtbase/0001-Add-QStandardPaths-support-for-qt.conf.patch?expand=1 which supports specifying custom pathes through qt.conf.
Comment 5 Jasem Mutlaq 2016-05-23 09:08:31 UTC
Yes, I emerged Qt and the standard paths are already patched. This problem arises when using stock Qt.
Comment 6 Jasem Mutlaq 2016-05-31 08:03:17 UTC
This bug can be considered "fixed" if it is mentioned in kdesettings.ini NOT to use stock Qt. To suggest it is experiment means it could work which is not the case.
Comment 7 Lays Rodrigues 2016-06-05 19:07:40 UTC
(In reply to Jasem Mutlaq from comment #6)
> This bug can be considered "fixed" if it is mentioned in kdesettings.ini NOT
> to use stock Qt. To suggest it is experiment means it could work which is
> not the case.

I had emerge frameworks and everything build fine, witth some issues, but I could solve them. There's any information that you could give?
I need it to use the Qt in emerge repository, because using qt from qt.io, didn't work...