Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build: headers tarball target #1975

Merged
merged 1 commit into from
Jun 25, 2015
Merged

build: headers tarball target #1975

merged 1 commit into from
Jun 25, 2015

Conversation

rvagg
Copy link
Member

@rvagg rvagg commented Jun 14, 2015

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
Member Author

rvagg commented Jun 14, 2015

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 rvagg force-pushed the headers-tarball branch from 9fd0f64 to 2975e62 Compare June 14, 2015 11:01
@rvagg
Copy link
Member Author

rvagg commented Jun 14, 2015

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

@mscdex mscdex 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
Member Author

rvagg commented Jun 15, 2015

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
Member Author

rvagg commented Jun 16, 2015

@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
Member Author

rvagg commented Jun 18, 2015

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

indutny commented Jun 18, 2015

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

@shigeki
Copy link
Contributor

shigeki commented Jun 18, 2015

@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

indutny commented Jun 18, 2015

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
Member Author

rvagg commented Jun 19, 2015

@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

shigeki commented Jun 19, 2015

@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

shigeki commented Jun 19, 2015

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 rvagg force-pushed the headers-tarball branch from 2975e62 to 6ae463c Compare June 23, 2015 10:37
@rvagg
Copy link
Member Author

rvagg commented Jun 23, 2015

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

@brendanashworth
Copy link
Contributor

@rvagg does this resolve #859?

@rvagg
Copy link
Member Author

rvagg commented Jun 24, 2015

Nope, tangential

@rvagg rvagg force-pushed the headers-tarball branch from 6ae463c to 9f34cc4 Compare June 25, 2015 06:24
@rvagg
Copy link
Member Author

rvagg commented Jun 25, 2015

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 free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build Issues and PRs related to build files or the CI.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants