Skip to content

Conversation

@rvagg
Copy link
Member

For make tar-headers (plus the other options in #1938 for nightlies etc.). Makes a tarball with the headers as they are packaged in binary tarballs - which is different to the source tarball but is better for being used as an includes path for node-gyp et. al.

We will need to get node-gyp to download this file from release directories where it's available. The way I suggest we do that is via #493 which is my next task (YES, YES IT IS!); if node-gyp detects a process.release.headers_url (or whatever it ends up being) it knows to download from there and unpack to ~/.node-gyp/. Then we'd need to prepend include/node to the list of include directories in addon.gyp (https://github.com/TooTallNate/node-gyp/blob/56b7f9cff21b74421830cf2324545c8420f28e53/addon.gypi#L7-L11) so that it picks up this new directory format but still allows for the old format.

It's worth noting for anyone not aware of this fact but these includes are included in the binary downloads and have been from early 0.10 for all but Windows, so node-gyp shouldn't need to even download anything most of the time. Making node-gyp aware of platform headers is a separate task and should be done but we will always need to make headers available for download in case you're using an executable that hasn't been installed with headers for whatever reason.

iojs-v2.3.1/ iojs-v2.3.1/include/ iojs-v2.3.1/include/node/ iojs-v2.3.1/include/node/android-ifaddrs.h iojs-v2.3.1/include/node/ares.h iojs-v2.3.1/include/node/ares_version.h iojs-v2.3.1/include/node/common.gypi iojs-v2.3.1/include/node/config.gypi iojs-v2.3.1/include/node/libplatform/ iojs-v2.3.1/include/node/nameser.h iojs-v2.3.1/include/node/node.h iojs-v2.3.1/include/node/node_buffer.h iojs-v2.3.1/include/node/node_internals.h iojs-v2.3.1/include/node/node_object_wrap.h iojs-v2.3.1/include/node/node_version.h iojs-v2.3.1/include/node/openssl/ iojs-v2.3.1/include/node/pthread-fixes.h iojs-v2.3.1/include/node/smalloc.h iojs-v2.3.1/include/node/stdint-msvc2008.h iojs-v2.3.1/include/node/tree.h iojs-v2.3.1/include/node/uv-aix.h iojs-v2.3.1/include/node/uv-bsd.h iojs-v2.3.1/include/node/uv-darwin.h iojs-v2.3.1/include/node/uv-errno.h iojs-v2.3.1/include/node/uv-linux.h iojs-v2.3.1/include/node/uv-sunos.h iojs-v2.3.1/include/node/uv-threadpool.h iojs-v2.3.1/include/node/uv-unix.h iojs-v2.3.1/include/node/uv-version.h iojs-v2.3.1/include/node/uv-win.h iojs-v2.3.1/include/node/uv.h iojs-v2.3.1/include/node/v8-debug.h iojs-v2.3.1/include/node/v8-platform.h iojs-v2.3.1/include/node/v8-profiler.h iojs-v2.3.1/include/node/v8-testing.h iojs-v2.3.1/include/node/v8-util.h iojs-v2.3.1/include/node/v8-version.h iojs-v2.3.1/include/node/v8.h iojs-v2.3.1/include/node/v8config.h iojs-v2.3.1/include/node/zconf.h iojs-v2.3.1/include/node/zlib.h iojs-v2.3.1/include/node/openssl/aes.h iojs-v2.3.1/include/node/openssl/archs/ iojs-v2.3.1/include/node/openssl/asn1.h iojs-v2.3.1/include/node/openssl/asn1_mac.h iojs-v2.3.1/include/node/openssl/asn1t.h iojs-v2.3.1/include/node/openssl/bio.h iojs-v2.3.1/include/node/openssl/blowfish.h iojs-v2.3.1/include/node/openssl/bn.h iojs-v2.3.1/include/node/openssl/buffer.h iojs-v2.3.1/include/node/openssl/camellia.h iojs-v2.3.1/include/node/openssl/cast.h iojs-v2.3.1/include/node/openssl/cmac.h iojs-v2.3.1/include/node/openssl/cms.h iojs-v2.3.1/include/node/openssl/comp.h iojs-v2.3.1/include/node/openssl/conf.h iojs-v2.3.1/include/node/openssl/conf_api.h iojs-v2.3.1/include/node/openssl/crypto.h iojs-v2.3.1/include/node/openssl/des.h iojs-v2.3.1/include/node/openssl/des_old.h iojs-v2.3.1/include/node/openssl/dh.h iojs-v2.3.1/include/node/openssl/dsa.h iojs-v2.3.1/include/node/openssl/dso.h iojs-v2.3.1/include/node/openssl/dtls1.h iojs-v2.3.1/include/node/openssl/e_os2.h iojs-v2.3.1/include/node/openssl/ebcdic.h iojs-v2.3.1/include/node/openssl/ec.h iojs-v2.3.1/include/node/openssl/ecdh.h iojs-v2.3.1/include/node/openssl/ecdsa.h iojs-v2.3.1/include/node/openssl/engine.h iojs-v2.3.1/include/node/openssl/err.h iojs-v2.3.1/include/node/openssl/evp.h iojs-v2.3.1/include/node/openssl/hmac.h iojs-v2.3.1/include/node/openssl/idea.h iojs-v2.3.1/include/node/openssl/krb5_asn.h iojs-v2.3.1/include/node/openssl/kssl.h iojs-v2.3.1/include/node/openssl/lhash.h iojs-v2.3.1/include/node/openssl/md4.h iojs-v2.3.1/include/node/openssl/md5.h iojs-v2.3.1/include/node/openssl/mdc2.h iojs-v2.3.1/include/node/openssl/modes.h iojs-v2.3.1/include/node/openssl/obj_mac.h iojs-v2.3.1/include/node/openssl/objects.h iojs-v2.3.1/include/node/openssl/ocsp.h iojs-v2.3.1/include/node/openssl/opensslconf.h iojs-v2.3.1/include/node/openssl/opensslv.h iojs-v2.3.1/include/node/openssl/ossl_typ.h iojs-v2.3.1/include/node/openssl/pem.h iojs-v2.3.1/include/node/openssl/pem2.h iojs-v2.3.1/include/node/openssl/pkcs12.h iojs-v2.3.1/include/node/openssl/pkcs7.h iojs-v2.3.1/include/node/openssl/pqueue.h iojs-v2.3.1/include/node/openssl/rand.h iojs-v2.3.1/include/node/openssl/rc2.h iojs-v2.3.1/include/node/openssl/rc4.h iojs-v2.3.1/include/node/openssl/ripemd.h iojs-v2.3.1/include/node/openssl/rsa.h iojs-v2.3.1/include/node/openssl/safestack.h iojs-v2.3.1/include/node/openssl/seed.h iojs-v2.3.1/include/node/openssl/sha.h iojs-v2.3.1/include/node/openssl/srp.h iojs-v2.3.1/include/node/openssl/srtp.h iojs-v2.3.1/include/node/openssl/ssl.h iojs-v2.3.1/include/node/openssl/ssl2.h iojs-v2.3.1/include/node/openssl/ssl23.h iojs-v2.3.1/include/node/openssl/ssl3.h iojs-v2.3.1/include/node/openssl/stack.h iojs-v2.3.1/include/node/openssl/symhacks.h iojs-v2.3.1/include/node/openssl/tls1.h iojs-v2.3.1/include/node/openssl/ts.h iojs-v2.3.1/include/node/openssl/txt_db.h iojs-v2.3.1/include/node/openssl/ui.h iojs-v2.3.1/include/node/openssl/ui_compat.h iojs-v2.3.1/include/node/openssl/whrlpool.h iojs-v2.3.1/include/node/openssl/x509.h iojs-v2.3.1/include/node/openssl/x509_vfy.h iojs-v2.3.1/include/node/openssl/x509v3.h iojs-v2.3.1/include/node/openssl/archs/BSD-x86/ iojs-v2.3.1/include/node/openssl/archs/BSD-x86_64/ iojs-v2.3.1/include/node/openssl/archs/darwin-i386-cc/ iojs-v2.3.1/include/node/openssl/archs/darwin64-x86_64-cc/ iojs-v2.3.1/include/node/openssl/archs/linux-aarch64/ iojs-v2.3.1/include/node/openssl/archs/linux-armv4/ iojs-v2.3.1/include/node/openssl/archs/linux-elf/ iojs-v2.3.1/include/node/openssl/archs/linux-x32/ iojs-v2.3.1/include/node/openssl/archs/linux-x86_64/ iojs-v2.3.1/include/node/openssl/archs/solaris-x86-gcc/ iojs-v2.3.1/include/node/openssl/archs/solaris64-x86_64-gcc/ iojs-v2.3.1/include/node/openssl/archs/VC-WIN32/ iojs-v2.3.1/include/node/openssl/archs/VC-WIN64A/ iojs-v2.3.1/include/node/openssl/archs/VC-WIN64A/opensslconf.h iojs-v2.3.1/include/node/openssl/archs/VC-WIN32/opensslconf.h iojs-v2.3.1/include/node/openssl/archs/solaris64-x86_64-gcc/opensslconf.h iojs-v2.3.1/include/node/openssl/archs/solaris-x86-gcc/opensslconf.h iojs-v2.3.1/include/node/openssl/archs/linux-x86_64/opensslconf.h iojs-v2.3.1/include/node/openssl/archs/linux-x32/opensslconf.h iojs-v2.3.1/include/node/openssl/archs/linux-elf/opensslconf.h iojs-v2.3.1/include/node/openssl/archs/linux-armv4/opensslconf.h iojs-v2.3.1/include/node/openssl/archs/linux-aarch64/opensslconf.h iojs-v2.3.1/include/node/openssl/archs/darwin64-x86_64-cc/opensslconf.h iojs-v2.3.1/include/node/openssl/archs/darwin-i386-cc/opensslconf.h iojs-v2.3.1/include/node/openssl/archs/BSD-x86_64/opensslconf.h iojs-v2.3.1/include/node/openssl/archs/BSD-x86/opensslconf.h iojs-v2.3.1/include/node/libplatform/libplatform.h 

/R=@nodejs/build @TooTallNate

@rvagg
Copy link
MemberAuthor

I forgot to mention that this builds on #1938 so there's only one commit to review, rvagg@9fd0f64, it only touches Makefile and install.py.

@rvagg
Copy link
MemberAuthor

also, the .tar.gz is 149K and .tar.xz is 125K

@mscdexmscdex added the build Issues and PRs related to build files or the CI. label Jun 14, 2015
@jbergstroem
Copy link
Member

I like this.

If we're to use --nodedir from node-gyp we'll have to adapt a slightly different tarball structure. I'm happy to move that work into node-gyp instead, but backwards compatibility might be a simpler path.

@rvagg
Copy link
MemberAuthor

I believe that we only need to add include/node to the include_dirs for node-gyp and leave the old ones in place and we'd get backward compatibility.

@jbergstroem
Copy link
Member

The changes to Makefile looks good to me. Anyone else?

@retrohacker
Copy link

lgtm, albeit I don't know enough about Makefiles to say with confidence something silly isn't being done.

@rmg
Copy link
Contributor

rmg commented Jun 15, 2015

If we're to use --nodedir from node-gyp we'll have to adapt a slightly different tarball structure. I'm happy to move that work into node-gyp instead, but backwards compatibility might be a simpler path.

@jbergstroem@rvagg this reminds me of the one-line change nodejs/node-gyp#492 that got shot down when I proposed it. My goal was to just use the headers from the binary distribution so that nothing needs to be downloaded to ~/.node-gyp at all for most users.

@rvagg
Copy link
MemberAuthor

@rmg yes, similar but this is a step towards that goal, the next part of that is making node-gyp aware of where node is installed and where to look for the headers so it doesn't have to download - but as I've said, it will always need to have the ability to download for situations where it can't find local headers

@rvagg
Copy link
MemberAuthor

I've just discovered a disturbing blocker for this: 6b3df92

$ cat /usr/local/include/node/openssl/bn.h #include "../../crypto/bn/bn.h" 

And this is the same with the header files generated by this change as well because it does the same thing as install.py. i.e. we are shipping with broken openssl headers so any package that needs to compile against them (such as bignum, a very popular package) won't work.

@shigeki && @indutny can you explain what these header rewrites are about and suggest a compromise whereby install.py can install the actual openssl headers?

Further, it looks like 0.10 and 0.12 aren't even shipping with openssl headers, I have no idea how we're getting them in there and joyent/node still isn't:

$ curl -sL https://nodejs.org/dist/v0.10.38/node-v0.10.38-linux-x64.tar.gz | tar ztvf - | grep node-v0.10.38-linux-x64/include/ drwxr-xr-x root/root 0 2015-03-24 06:52 node-v0.10.38-linux-x64/include/ drwxr-xr-x root/root 0 2015-03-24 06:52 node-v0.10.38-linux-x64/include/node/ -rw-r--r-- root/root 1355 2015-03-24 06:45 node-v0.10.38-linux-x64/include/node/config.gypi -rw-r--r-- root/root 9185 2015-03-12 10:41 node-v0.10.38-linux-x64/include/node/node.h -rw-r--r-- root/root 3352 2015-03-12 10:41 node-v0.10.38-linux-x64/include/node/v8-testing.h -rw-r--r-- root/root 151460 2015-03-12 10:41 node-v0.10.38-linux-x64/include/node/v8.h drwxr-xr-x root/root 0 2015-03-24 06:52 node-v0.10.38-linux-x64/include/node/openssl/ -rw-r--r-- root/root 9517 2015-03-12 10:41 node-v0.10.38-linux-x64/include/node/openssl/opensslconf.h -rw-r--r-- root/root 87883 2015-03-12 10:41 node-v0.10.38-linux-x64/include/node/zlib.h -rw-r--r-- root/root 650 2015-03-12 10:41 node-v0.10.38-linux-x64/include/node/ares_version.h -rw-r--r-- root/root 18630 2015-03-12 10:41 node-v0.10.38-linux-x64/include/node/v8-profiler.h -rw-r--r-- root/root 4119 2015-03-12 10:41 node-v0.10.38-linux-x64/include/node/node_internals.h -rw-r--r-- root/root 15508 2015-03-12 10:41 node-v0.10.38-linux-x64/include/node/zconf.h -rwxr-xr-x root/root 15076 2015-03-12 10:41 node-v0.10.38-linux-x64/include/node/v8-debug.h -rw-r--r-- root/root 2364 2015-03-24 06:45 node-v0.10.38-linux-x64/include/node/node_version.h -rw-r--r-- root/root 2140 2015-03-12 10:41 node-v0.10.38-linux-x64/include/node/v8stdint.h drwxr-xr-x root/root 0 2015-03-24 06:52 node-v0.10.38-linux-x64/include/node/uv-private/ -rw-r--r-- root/root 1781 2015-03-12 10:41 node-v0.10.38-linux-x64/include/node/uv-private/uv-linux.h -rw-r--r-- root/root 3213 2015-03-12 10:41 node-v0.10.38-linux-x64/include/node/uv-private/uv-darwin.h -rw-r--r-- root/root 1641 2015-03-12 10:41 node-v0.10.38-linux-x64/include/node/uv-private/uv-bsd.h -rw-r--r-- root/root 1985 2015-03-12 10:41 node-v0.10.38-linux-x64/include/node/uv-private/uv-sunos.h -rw-r--r-- root/root 5200 2015-03-12 10:41 node-v0.10.38-linux-x64/include/node/uv-private/ngx-queue.h -rw-r--r-- root/root 52889 2015-03-12 10:41 node-v0.10.38-linux-x64/include/node/uv-private/tree.h -rw-r--r-- root/root 14977 2015-03-12 10:41 node-v0.10.38-linux-x64/include/node/uv-private/uv-unix.h -rw-r--r-- root/root 7728 2015-03-12 10:41 node-v0.10.38-linux-x64/include/node/uv-private/stdint-msvc2008.h -rw-r--r-- root/root 28935 2015-03-12 10:41 node-v0.10.38-linux-x64/include/node/uv-private/uv-win.h -rw-r--r-- root/root 69843 2015-03-12 10:41 node-v0.10.38-linux-x64/include/node/uv.h -rw-r--r-- root/root 8170 2015-03-12 10:41 node-v0.10.38-linux-x64/include/node/nameser.h -rw-r--r-- root/root 21240 2015-03-12 10:41 node-v0.10.38-linux-x64/include/node/ares.h -rw-r--r-- root/root 3750 2015-03-12 10:41 node-v0.10.38-linux-x64/include/node/node_object_wrap.h -rw-r--r-- root/root 8853 2015-03-12 10:41 node-v0.10.38-linux-x64/include/node/common.gypi -rw-r--r-- root/root 6753 2015-03-12 10:41 node-v0.10.38-linux-x64/include/node/node_buffer.h -rw-r--r-- root/root 4591 2015-03-12 10:41 node-v0.10.38-linux-x64/include/node/v8-preparser.h $ curl -sL https://nodejs.org/dist/v0.12.4/node-v0.12.4-linux-x64.tar.gz | tar ztvf - | grep node-v0.12.4-linux-x64/include/ drwxr-xr-x root/root 0 2015-05-23 13:41 node-v0.12.4-linux-x64/include/ drwxr-xr-x root/root 0 2015-05-23 13:41 node-v0.12.4-linux-x64/include/node/ -rw-r--r-- root/root 1687 2015-05-14 10:45 node-v0.12.4-linux-x64/include/node/uv-version.h -rw-r--r-- root/root 1960 2015-05-23 13:24 node-v0.12.4-linux-x64/include/node/config.gypi -rw-r--r-- root/root 17655 2015-05-14 10:45 node-v0.12.4-linux-x64/include/node/node.h -rw-r--r-- root/root 1721 2015-05-14 10:45 node-v0.12.4-linux-x64/include/node/v8-platform.h -rw-r--r-- root/root 1497 2015-05-14 10:45 node-v0.12.4-linux-x64/include/node/uv-threadpool.h -rw-r--r-- root/root 1033 2015-05-14 10:45 node-v0.12.4-linux-x64/include/node/v8-testing.h -rw-r--r-- root/root 210110 2015-05-14 10:45 node-v0.12.4-linux-x64/include/node/v8.h drwxr-xr-x root/root 0 2015-05-23 13:41 node-v0.12.4-linux-x64/include/node/libplatform/ -rw-r--r-- root/root 1197 2015-05-14 10:45 node-v0.12.4-linux-x64/include/node/libplatform/libplatform.h -rw-r--r-- root/root 1781 2015-05-14 10:45 node-v0.12.4-linux-x64/include/node/uv-linux.h drwxr-xr-x root/root 0 2015-05-23 13:41 node-v0.12.4-linux-x64/include/node/openssl/ -rw-r--r-- root/root 9517 2015-05-14 10:45 node-v0.12.4-linux-x64/include/node/openssl/opensslconf.h -rw-r--r-- root/root 3213 2015-05-14 10:45 node-v0.12.4-linux-x64/include/node/uv-darwin.h -rw-r--r-- root/root 14655 2015-05-14 10:45 node-v0.12.4-linux-x64/include/node/v8-util.h -rw-r--r-- root/root 1641 2015-05-14 10:45 node-v0.12.4-linux-x64/include/node/uv-bsd.h -rw-r--r-- root/root 87883 2015-05-14 10:45 node-v0.12.4-linux-x64/include/node/zlib.h -rw-r--r-- root/root 1853 2015-05-14 10:45 node-v0.12.4-linux-x64/include/node/android-ifaddrs.h -rw-r--r-- root/root 652 2015-05-14 10:45 node-v0.12.4-linux-x64/include/node/ares_version.h -rw-r--r-- root/root 19460 2015-05-14 10:45 node-v0.12.4-linux-x64/include/node/v8-profiler.h -rw-r--r-- root/root 8463 2015-05-14 10:45 node-v0.12.4-linux-x64/include/node/node_internals.h -rw-r--r-- root/root 15508 2015-05-14 10:45 node-v0.12.4-linux-x64/include/node/zconf.h -rw-r--r-- root/root 9399 2015-05-14 10:45 node-v0.12.4-linux-x64/include/node/uv-errno.h -rw-r--r-- root/root 8807 2015-05-14 10:45 node-v0.12.4-linux-x64/include/node/v8-debug.h -rw-r--r-- root/root 1985 2015-05-14 10:45 node-v0.12.4-linux-x64/include/node/uv-sunos.h -rw-r--r-- root/root 2634 2015-05-23 13:22 node-v0.12.4-linux-x64/include/node/node_version.h -rw-r--r-- root/root 729 2015-05-14 10:45 node-v0.12.4-linux-x64/include/node/v8stdint.h -rw-r--r-- root/root 2929 2015-05-14 10:45 node-v0.12.4-linux-x64/include/node/pthread-fixes.h -rw-r--r-- root/root 52367 2015-05-14 10:45 node-v0.12.4-linux-x64/include/node/uv.h -rw-r--r-- root/root 1615 2015-05-14 10:45 node-v0.12.4-linux-x64/include/node/uv-aix.h -rw-r--r-- root/root 8437 2015-05-14 10:45 node-v0.12.4-linux-x64/include/node/nameser.h -rw-r--r-- root/root 15939 2015-05-14 10:45 node-v0.12.4-linux-x64/include/node/v8config.h -rw-r--r-- root/root 21866 2015-05-14 10:45 node-v0.12.4-linux-x64/include/node/ares.h -rw-r--r-- root/root 4057 2015-05-14 10:45 node-v0.12.4-linux-x64/include/node/node_object_wrap.h -rw-r--r-- root/root 52889 2015-05-14 10:45 node-v0.12.4-linux-x64/include/node/tree.h -rw-r--r-- root/root 16166 2015-05-14 10:45 node-v0.12.4-linux-x64/include/node/uv-unix.h -rw-r--r-- root/root 9149 2015-05-23 13:22 node-v0.12.4-linux-x64/include/node/common.gypi -rw-r--r-- root/root 5271 2015-05-14 10:45 node-v0.12.4-linux-x64/include/node/node_buffer.h -rw-r--r-- root/root 5682 2015-05-14 10:45 node-v0.12.4-linux-x64/include/node/smalloc.h -rw-r--r-- root/root 7728 2015-05-14 10:45 node-v0.12.4-linux-x64/include/node/stdint-msvc2008.h -rw-r--r-- root/root 31145 2015-05-14 10:45 node-v0.12.4-linux-x64/include/node/uv-win.h 

(compare to curl -sL https://iojs.org/dist/v2.3.0/iojs-v2.3.0-linux-x64.tar.gz | tar ztvf - | grep iojs-v2.3.0-linux-x64/include/ if you're interested in the full difference).

@indutny
Copy link
Member

Gosh, I think we need to make them symlinks and resolve them on copying. @shigeki what do you think?

@shigeki
Copy link
Contributor

@rvagg Sorry, I missed this mention. I should had been aware of this in reviewing #1354.

The current master of openssl-1.1.0 has already move to put real header files not symlinks. Symlinks cause issues on Windows in extracting source files.

Probably we have three options,

  • move real header files into deps/openssl/include/openssl
  • change install.py to search real paths from deps/openssl/include/openssl and install real header files
  • provide real path list of all headers file in deps/openssl/somewhere/headerlist and change install.py to install real header files by referring the list.

I think third one is easy and simple.
@indutny How about it?

@indutny
Copy link
Member

Huuuh? If we will move real header files there, what's the point in next two steps? Why can't we just copy them to the installation folder?

@rvagg
Copy link
MemberAuthor

@indutny they are options not steps.

@shigeki my only preference is that whatever we do is easy to maintain and won't get lost during future updates (this will be easy to overlook). A headerlist file might get lost in the process, editing install.py might be doable if we can make it intelligent enough to pick up changes as they happen (new files added, files removed, etc.).

@shigeki
Copy link
Contributor

@rvagg Yes, I totally agree it. I wonder if there is no side effects move all real header files into the include dir. I take a look and test it today.

@shigeki
Copy link
Contributor

Looking at openssl/openssl@dee502b , moving real header files breaks Configure and some util scripts. Although they are not used in gyp build but I think copying them into deps/openssl/include/openssl is better. I will submit a PR soon.

shigeki pushed a commit to shigeki/node that referenced this pull request Jun 19, 2015
On upgrading openssl, all symlinks in pulic header files are replaced with nested include files. The issue was raised that installing them leads to lost its references to real header files. To avoid this, all public header files are copied into the `deps/openssl/openssl/include/openssl/` directory. As a result, we have duplicated header files under `deps/openssl/openssl/` but copied files are refereed in build as specified to include path in openssl.gyp. Fixes: nodejs#1975
@rvagg
Copy link
MemberAuthor

can I get any more reviewers here on 6ae463c? @nodejs/build?

@brendanashworth
Copy link
Contributor

@rvagg does this resolve #859?

@rvagg
Copy link
MemberAuthor

Nope, tangential

@rvagg
Copy link
MemberAuthor

upstream PR was merged, this PR is now only a single commit and easier to review, can I get some eyes please?

@jbergstroem
Copy link
Member

LGTM assuming we get #2016 in first.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

buildIssues and PRs related to build files or the CI.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants

@rvagg@jbergstroem@retrohacker@rmg@indutny@shigeki@brendanashworth@mscdex