Trying my hand at compiling, and not a lot of luck

So I wanted to see what’s involved in compiling darktable on my Windows 10 (HP Pavailian with AMD A8-7410 Quad Processor and AMD Radeon R5 Graphics card) machine for education and possibly to help with testing. I’ve followed the steps at Github: I installed MSYS2 with all the prerequisites and updates, and then invoked every step along the way:

$ cd ~
$ git clone git://github.com/darktable-org/darktable.git
$ cd darktable
$ git submodule init
$ git submodule update

$ mkdir build
$ cd build
$ cmake -G "MSYS Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/darktable ../.

All good until I get to:

cmake --build .

And then it fails with an Error 2 at 7%.

This happens with the “generic” package as well. Any advice is greatly appreciated.

Build details from MSys64 are as follows:

dave_@DESKTOP-GUPM931 MINGW64 ~/darktable/build
$ cmake --build .
[  0%] Built target locale_zh_TW
[  0%] Updating version string (git checkout)
[  0%] Built target locale_zh_CN
[  0%] Built target locale_th
[  0%] Built target locale_he
[  0%] Built target locale_fr
[  0%] Built target locale_hu
[  0%] Built target locale_sq
[  0%] Built target locale_eo
[  1%] Built target locale_fi
[  2%] Built target locale_uk
[  2%] Built target locale_gl
[  2%] Built target locale_el
[  2%] Built target locale_da
[  3%] Built target locale_ca
[  3%] Built target locale_it
[  3%] Built target locale_ru
[  3%] Built target locale_de
[  3%] Built target locale_cs
[  3%] Built target locale_sv
[  3%] Built target locale_af
[  3%] Built target locale_es
Version string: 3.5.0+1616~ge9302dbf7
[  3%] Built target locale_sr-latin
[  3%] Built target create_version_gen
[  3%] Built target locale_ja
[  3%] Built target locale_pt_BR
[  4%] Built target locale_sk
[  5%] Built target locale_nb
[  5%] Built target locale_pl
[  5%] Built target locale_ro
[  5%] Built target locale_nl
[  5%] Built target locale_pt_PT
[  5%] Built target locale_sr
[  5%] Built target locale_sl
[  5%] Built target validate-cameras.xml
Consolidate compiler generated dependencies of target whereami
[  5%] Checking validity of C:/msys64/home/dave_/darktable/build/share/darktable/darktableconfig.xml
[  5%] Built target generate_conf
[  6%] Built target whereami
[  6%] Built target validate_darktableconfig_xml
Consolidate compiler generated dependencies of target xcf
[  6%] Built target tests
[  6%] Built target deploy
[  6%] Built target xcf
[  6%] Built target dependencies
[  6%] Built target check-rawspeed
[  7%] Built target generate_authors_h
[  7%] Built target darktablerc_file
[  7%] Checking validity of noiseprofiles.json
[  7%] Built target darktable.appdata_file
[  7%] Built target testcompile_opencl_kernels
[  7%] Built target darktablerc.html_file
[  7%] Built target manpage_darktable.1
[  7%] Built target manpage_darktable-cmstest.1
[  7%] Generating darktable-cli.1
Traceback (most recent call last):
  File "C:\msys64\mingw64\bin\jsonschema-script.py", line 6, in <module>
    from pkg_resources import load_entry_point
  File "C:/msys64/mingw64/lib/python3.8/site-packages/pkg_resources/__init__.py", line 3243, in <module>
    def _initialize_master_working_set():
  File "C:/msys64/mingw64/lib/python3.8/site-packages/pkg_resources/__init__.py", line 3226, in _call_aside
    f(*args, **kwargs)
  File "C:/msys64/mingw64/lib/python3.8/site-packages/pkg_resources/__init__.py", line 3255, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "C:/msys64/mingw64/lib/python3.8/site-packages/pkg_resources/__init__.py", line 568, in _build_master
    ws.require(__requires__)
  File "C:/msys64/mingw64/lib/python3.8/site-packages/pkg_resources/__init__.py", line 886, in require
    needed = self.resolve(parse_requirements(requirements))
  File "C:/msys64/mingw64/lib/python3.8/site-packages/pkg_resources/__init__.py", line 772, in resolve
[  7%] Generating darktable-generate-cache.1
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'six>=1.11.0' distribution was not found and is required by jsonschema
[  7%] Generating darktable-cltest.1
make[2]: *** [share/darktable/CMakeFiles/validate_noiseprofiles_json.dir/build.make:72: share/darktable/CMakeFiles/validate_noiseprofiles_json] Error 1
make[1]: *** [CMakeFiles/Makefile2:6499: share/darktable/CMakeFiles/validate_noiseprofiles_json.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[  7%] Built target manpage_darktable-cli.1
[  7%] Built target manpage_darktable-generate-cache.1
[  7%] Built target manpage_darktable-cltest.1
make: *** [Makefile:156: all] Error 2

dave_@DESKTOP-GUPM931 MINGW64 ~/darktable/build
$

Learning to read the log is challenging, but important :slight_smile:

The line says you’re missing the package six

pkg_resources.DistributionNotFound: The 'six>=1.11.0' distribution was not found and is required by jsonschema

Yes, I did see that. I followed every step as stated, so I don’t know how it got missed. What do you recommend I do to correct it?

I found one problem… I was running the build with four cores and throttling back to one made things better behaved. I was able to get through the build process until the end, when I got a similar error. So it seems to be an issue with ‘six>1.11.0’ distribution. Any advice will be greatly appreciated!

[100%] Checking validity of noiseprofiles.json
Traceback (most recent call last):
  File "C:\msys64\mingw64\bin\jsonschema-script.py", line 6, in <module>
    from pkg_resources import load_entry_point
  File "C:/msys64/mingw64/lib/python3.8/site-packages/pkg_resources/__init__.py", line 3243, in <module>
    def _initialize_master_working_set():
  File "C:/msys64/mingw64/lib/python3.8/site-packages/pkg_resources/__init__.py", line 3226, in _call_aside
    f(*args, **kwargs)
  File "C:/msys64/mingw64/lib/python3.8/site-packages/pkg_resources/__init__.py", line 3255, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "C:/msys64/mingw64/lib/python3.8/site-packages/pkg_resources/__init__.py", line 568, in _build_master
    ws.require(__requires__)
  File "C:/msys64/mingw64/lib/python3.8/site-packages/pkg_resources/__init__.py", line 886, in require
    needed = self.resolve(parse_requirements(requirements))
  File "C:/msys64/mingw64/lib/python3.8/site-packages/pkg_resources/__init__.py", line 772, in resolve
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'six>=1.11.0' distribution was not found and is required by jsonschema
make[2]: *** [share/darktable/CMakeFiles/validate_noiseprofiles_json.dir/build.make:72: share/darktable/CMakeFiles/validate_noiseprofiles_json] Error 1
make[1]: *** [CMakeFiles/Makefile2:6499: share/darktable/CMakeFiles/validate_noiseprofiles_json.dir/all] Error 2
make: *** [Makefile:156: all] Error 2

dave_@DESKTOP-GUPM931 MINGW64 ~/darktable/build

This might be the issue?

Looks like it. The report is less than a week old, so if I’m having problems with it then it may be safe to say that others will as well.

Thanks!

So if I understand this correctly, I’ll be unable to perform a Windows build until a correction to this dependency issue is incorporated, or is there a work around or alternate approach?

Just install it yourself: pacman -S mingw-w64-x86_64-python-six from the MSYS2 terminal.

2 Likes

Thanks @kmilos, that did the trick. After that I was able to get through the entire build and install process without a hitch!

1 Like