windowsbuildcmakegnutlstaskwarrior

GNUTLS or libuuid missing while building taskwarrior from source code in Windows 10


For the past 4 days I have been working to get taskwarrior and taskwarrior server running on windows 10. It has proven quite a challenge for me.

I followed the steps written below: "Building the Stable Version" on https://taskwarrior.org/docs/build.html and created a folder:

C:\taskwarrior

Opened Developer Command Prompt for VC 2017

cd /d C:/taskwarrior

git clone https://github.com/GothenburgBitFactory/taskwarrior.git taskwarrior.git

cd taskwarrior.git

git checkout master

And then depending on whether I try to build taskwarrior with Sync enabled (automatically unless manually disabled):

cmake -DCMAKE_BUILD_TYPE=release .

GNUTLS_library is missing

or:

cmake -DCMAKE_BUILD_TYPE=release . -DENABLE_SYNC=OFF

-- libuuid not found.

A short summary of steps followed and attempts so far:

  1. Downloaded and installed Microsoft Visual C++ 2017 Redistributable (x64 and x86) from: https://visualstudio.microsoft.com/vs/features/cplusplus/
  2. Ensured cl was available as suggested in the documentation of microsoft: https://msdn.microsoft.com/en-us/library/cyz1h6zd.aspx
  3. Downloaded MinGW installation Manager and installed the base package as was suggested on http://www.mingw.org/wiki/Getting_Started:

If you do wish to install mingw-get-inst.exe's obligatory set, (including the GNU C Compiler, the GNU Debugger (GDB), and the GNU make tool), you should select the mingw-base package for installation.

  1. Installing Cmake from https://cmake.org/download/
  2. Running the commands described above from cmd in administrator mode
  3. Opening Cmake selecting the source folder:

    C:/taskwarrior/taskwarrior.git

With build folder:

C:/taskwarrior

This gave the exact same errors as when I tried the it through the Developer Command Prompt for VC 2017 described above, from which I conclude that I do not have a typo in my commands described above.

  1. Even though it should be installed with Mingw already, GNU is still not found (even after reboot). So I tried downloading it manually from:
  2. http://gnuwin32.sourceforge.net/packages/make.htm
  3. https://sourceforge.net/projects/gnuwin32/

  4. And I tried the following commands from Command prompt:

    install libgnutlsxx28 gnutls-dev install gnutls-dev

  5. As suggested in the install file in taskwarrior for Debian based distributions, I tried:

    libgnutls-dev

    Which opens the IncrediBuild Version 9.2.1 Setup, I currently do not know what that does.

  6. I tried downloading the libuuid library from: https://sourceforge.net/projects/libuuid/ but I currently do not know how to build and install it.

  7. I tried installing it through python in cmd with:

    easy_install python-libuuid

  8. Learning building programs from source code from: https://msdn.microsoft.com/en-us/library/cyz1h6zd.aspx

  9. Learning and practicing from https://github.com/codebox/bitmeteros/wiki/How-to-build-on-Windows.
  10. At the end I learned I had Cygwin installed already and that I could simply install an old version of taskwarrior by reinstalling cygwin and checking/marking the task package. So I have the taskwarrior running, but not the taskwarrior server. And moreover I am trying to learn how to build code/projects from source, so I am trying to make a succesfull build to increase my skillset and hence toolset.
  11. The explenation to install GNU TLS 3.6.2 on https://www.gnutls.org/manual/gnutls.html#Downloading-and-installing is limited to:

The package is then extracted, configured and built like many other packages that use Autoconf. For detailed information on configuring and building it, refer to the INSTALL file that is part of the distribution archive. Typically you invoke ./configure and then make check install.

However, the latest GNUTLS for Windows x64 download file: Latest w64 version on gitlab on: https://www.gnutls.org/download.html named artifacts.zip contains no file named INSTALL.

So I am currently working on understanding how to configure and built using autoconf.

Question: Do you know how I could install the GNU library and/or libuuid library on windows 10?


Solution

  • I'm not sure that it is still relevant to your problem, but I was able to build taskwarrior v2.5.1 under 64-bit cygwin (on Win7), using the cmake line from here: TW-1845 Cygwin build fails, missing get_current_dir_name

    Namely, this cmake line followed by make:

    cmake -DHAVE_GET_CURRENT_DIR_NAME=0