Menu

#1989 Building mingw-get from source - wtklite missing

INSTALLER
pending
None
Support
fixed
Waiting_User_Response
False
2015-01-16
2013-06-12
Earnie Boyd
No

In wanting to ensure WSL changes have resolved issues I decided to try to build mingw-get master where I discover I needed to installed a few -dev modules. One mentioned by configure, wtklite, is not available in our repository download making it impossible to continue without first obtaining wtklite source and building it.

$ grep -irl wtklite /mingw/var/lib/mingw-get/data/

$

Related

Issues: #1973
Issues: #1992
Issues: #1993

Discussion

  • Keith Marshall

    Keith Marshall - 2013-06-12

    It isn't part of mingw-get, (no more a submodule candidate than any of the compression libraries), but it is in our git repository; see https://sourceforge.net/p/mingw/wtk/

    Do note that the problems I've been experiencing with building mingw-get have arisen in the setup tool; the source for that isn't in the public repository yet, (and I don't consider it quite ready for publication).

     
    • Keith Marshall

      Keith Marshall - 2013-06-12

      Do note that the problems I've been experiencing with building mingw-get have arisen in the setup tool; ...

      Actually, after a 'make clean', I am seeing an issue with the main package build too -- an illegal implicit type coercion in utime.h

      I'd already fixed this, for the setup tool, in my wchar.h patch; I guess we also need to rationalize the common content between wchar.h and utime.h

       
    • Earnie Boyd

      Earnie Boyd - 2013-06-16

      The issue for it not being in our repository is the message from configure when it cannot find it stating:

      The following prerequisite package appears to be missing from
      your system:--
      
        wtklite-dev
      
      To continue building mingw-get, you should install the following
      or a newer version of:--
      
        wtklite-0.1.0-1-mingw32-dev.tar.xz
      
      and run configure again.
      

      Since wtklite-dev doesn't exist, one cannot execute:

      mingw-get install wtklite-dev
      
       
  • Earnie Boyd

    Earnie Boyd - 2013-06-16

    Keith, can you please provide a test case for the issues?

     
    • Earnie Boyd

      Earnie Boyd - 2013-06-16

      Never mind. I found the issue with the gui-dev branch.

       
      • Keith Marshall

        Keith Marshall - 2013-06-16

        The gui-dev branch is closed; master is way ahead of it.

         
        • Earnie Boyd

          Earnie Boyd - 2013-06-17

          Ok, trying to build master I get:

          make: *** No rule to make target `build.time', needed by `version.c'.  Stop.
          

          I worked around it by

          $ touch build.time
          

          but I don't know if that is correct.

          I later get:

          tag=`>> build.tag; cat build.tag`; test "x$tag" != x && tag="-alpha-$tag"; sed -e "s!%PACKAGE_NAME%!mingw-get!g" -e "s!%PACKAGE_VERSION%!0.6.0$tag!g" -e "s!%PACKAGE_VERINFO_PRODUCT_VERSION%!`echo 0.6.0 | awk -F. '{ printf "%d, %d, ", 1, $2 * 100 + $3 }'; (test -f build.tag && cat build.tag || date +%Y%m%d-0) | awk -F- '{ printf "%d, %d", (( substr( $1, 1, 4 ) - 1970 ) * 16 + substr( $1, 5, 2 )) * 32 + substr( $1, 7, 2 ), $2 }'`!g" -e "s!%COPYRIGHT_HOLDER%!MinGW.org Project!g" -e "s!%YEARS_OF_ISSUE%!2009-2013!g" ../../../src/mingw-get/master/src/guimain.rc | windres -I . -I ../../../src/mingw-get/master/src -I ../../../src/mingw-get/master/icons -o guimain.res.o
          h:\p\mingw.org-wsl\mingw\bin\windres.exe: ../../../src/mingw-get/master/src/verinfo.rc:32: syntax error<stdin>:74:0: fatal error: when writing output to : Invalid argument
          compilation terminated.
          h:\p\mingw.org-wsl\mingw\bin\windres.exe: preprocessing failed.
          make: *** [guimain.res.o] Error 1
          
           

          Last edit: Keith Marshall 2013-06-20
          • Keith Marshall

            Keith Marshall - 2013-06-18
            make: *** No rule to make target `build.time', needed by `version.c'.  Stop.
            

            Thanks. Seems the redundancy I removed on 2013-05-15 wasn't as redundant as I thought!

            tag=`>> build.tag; cat build.tag`; test "x$tag" != x && tag="-alpha-$tag"; sed -e "s!%PACKAGE_NAME%!mingw-get!g" -e "s!%PACKAGE_VERSION%!0.6.0$tag!g" -e "s!%PACKAGE_VERINFO_PRODUCT_VERSION%!`echo 0.6.0 | awk -F. '{ printf "%d, %d, ", 1, $2 * 100 + $3 }'; (test -f build.tag && cat build.tag || date +%Y%m%d-0) | awk -F- '{ printf "%d, %d", (( substr( $1, 1, 4 ) - 1970 ) * 16 + substr( $1, 5, 2 )) * 32 + substr( $1, 7, 2 ), $2 }'`!g" -e "s!%COPYRIGHT_HOLDER%!MinGW.org Project!g" -e "s!%YEARS_OF_ISSUE%!2009-2013!g" ../../../src/mingw-get/master/src/guimain.rc | windres -I . -I ../../../src/mingw-get/master/src -I ../../../src/mingw-get/master/icons -o guimain.res.o
            h:\p\mingw.org-wsl\mingw\bin\windres.exe: ../../../src/mingw-get/master/src/verinfo.rc:32: syntax error<stdin>:74:0: fatal error: when writing output to : Invalid argument
            compilation terminated.
            h:\p\mingw.org-wsl\mingw\bin\windres.exe: preprocessing failed.
            make: *** [guimain.res.o] Error 1
            

            This is because build.tag either doesn't exist, or is empty, when verinfo.h is generated; 'make build.tag all' will work around it, while I seek a more robust solution.

             
          • Keith Marshall

            Keith Marshall - 2013-06-20

            There are two separate side issues here. I've opened [#1992] and [#1993] to address them.

             

            Related

            Issues: #1992
            Issues: #1993

  • Earnie Boyd

    Earnie Boyd - 2013-06-17

    NOTE: You will need to rebuild the WSL and install it to get the corrected versions of libraries installed. The changes affected in particular libmingwex.a as well as the headers.

     
    • Keith Marshall

      Keith Marshall - 2013-06-26

      You will need to rebuild the WSL and install it to get the corrected versions of libraries installed.

      I did that, and it's all gone to shit again. I'll get back to you, when I manage to reduce it to a minimal test case.

       

      Last edit: Keith Marshall 2013-06-26
  • Keith Marshall

    Keith Marshall - 2013-06-26

    Here's a test case:

    $ cat foo.cpp
    #include <wchar.h>
    #include <sys/stat.h>
    
    extern "C" int mkdir_recursive( const char *path, int mode )
    {
      struct stat target;
      if( (stat( path, &target ) == 0) && S_ISDIR( target.st_mode ) )
        return 0;
    
      return -1;
    }
    
    $ mingw32-g++ -c foo.cpp
    foo.cpp: In function `int mkdir_recursive(const char*, int)':
    foo.cpp:7: error: no matching function for call to `_stat64i32::_stat64i32(const char*&, _stat64i32*)'
    /home/keith/mingw32/usr/local/include/wchar.h:671: note: candidates are: _stat64i32::_stat64i32()
    /home/keith/mingw32/usr/local/include/wchar.h:671: note:                 _stat64i32::_stat64i32(const _stat64i32&)
    

    This is with a build from wsl 4.0-dev, following my Makefile.in commit of last night; it is becoming exceedingly frustrating, because I've already shown you, in the form of patches, how to fix this.

     
    • Earnie Boyd

      Earnie Boyd - 2013-06-27

      Sure thanks for the test case.

       
  • Keith Marshall

    Keith Marshall - 2013-09-20

    Back on topic: I've posted a source tarball for wtklite, in the "MinGW/Extension" tree on FRS. I'm reluctant to provide a prebuilt library package, since this uses C++ exceptions, and may induce ABI incompatibilities, if built with any compiler/runtime combination which differs from the setup used by the consumer.

     
  • Keith Marshall

    Keith Marshall - 2013-09-20
    • status: assigned --> pending
    • Resolution: none --> fixed
    • Category: Unknown --> Waiting_User_Response
     
  • Earnie Boyd

    Earnie Boyd - 2013-09-21

    One idea that just came to me is to use a meta package for the binary installation that will use the source to build the binary on the consumers system and install it.