The autorebase took time tooooooooooooooooo much!!


   When I tried to build nghttp2 v1.9.2, Cygwin didn’t work well. I thought it was MS-Windows faults because the matter happened just after April Monthly Update. But now I think I was wrong because Cygwin didn’t work well again when I tried building nghttp2 v1.11.1 a few days ago.

   I found an autorebase took time too much. Each time you run setup-x86.exe/setup-x86_64.exe, the 0p_000_autorebase.dash of Cygwin does an autorebase. When you install Cygwin, the first autorebase does not take a lot of time. But at the major updates which you have after installing the autorebases seem to take time too much. This time, I changed the version of setup-x86.exe/setup-x86_64.exe from 2.873 to 2.874 and the required time for the autorebase was more than ten hours, oops!! While updating you can see two files in /var/cache/rebase like as fullrebase and rebase_pkg, and done the update you can see fullrebase.done and other files in the same place.

   Actually, Cygwin has libev and nghttp2 packages now. So, you can use h2load and nghttp features even if you don’t build them by yourself. Anyhow, I built nghttp2 v1.11.1 on Cygwin.

   When I built nghttp2 on Cygwin before, I used Cygport feature. But now I don’t use Cygport anymore.

   Before building nghttp2 your system has to satisfy Requirements. Particularly, you need to build the Jansson and the spdylay because Cygwin doesn’t have their packages. If you need more information about building them, see Building h2load on Cygwin. But, according to the current trend, I think we don’t need the spdylay package.

   Now I take the following steps to build nghttp2 on Cygwin.

  1. $ cd /usr/src
  2. $ wget the_current_version_nghttp2.tar.xz
  3. $ tar Jxvf the_current_version_nghttp2.tar.xz
  4. $ cd the_current_version_nghttp2
  5. $ export CFLAGS='-U__STRICT_ANSI__ -I/usr/include/libev -L/usr/lib'
  6. $ export CXXFLAGS=$CFLAGS
  7. $ autoreconf -i
  8. $ automake
  9. $ ./configure
  10. $ make

   That’s it.

Leave a Reply

Your email address will not be published. Required fields are marked *