-
Notifications
You must be signed in to change notification settings - Fork 29.8k
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
iojs 2.1.0 & pkg-config output issues #1787
Comments
Looks like an empty string in your libraries. Can you pass me full output of your |
Does the configure step succeed when you remove the |
@bnoordhuis by the order of things its either in openssl or icu-i18n. I'm suspecting icu. The real problem is that we shouldn't really parse output from pkg-config in the first place. Do you perhaps know why gyp expects the libraries (and includedirs) to be a list? |
Yeah, sorry, should have tried that before >,< Problematic swith: --with-intl=system-icu And I've never used pkg-config in my life, so I don't know if I've run it correctly: 0 akai@Arch-Akai: /dev/shm/iojs 23:52 ---> pkg-config zlib
0 akai@Arch-Akai: /dev/shm/iojs 23:53 ---> pkg-config openssl
0 akai@Arch-Akai: /dev/shm/iojs 23:53 ---> pkg-config icu-i18n
0 akai@Arch-Akai: /dev/shm/iojs 23:53 ---> There seems to be no output |
@alferpal this is what you want: |
Some of the generators process them as individual elements. I know the ninja generator does it to escape them properly. |
@bnoordhuis ok. Not much to do other than adding more cases to parsing input. |
This is the output: 0 akai@Arch-Akai: /dev/shm/iojs 23:59 ---> pkg-config --libs-only-l zlib
-lz
0 akai@Arch-Akai: /dev/shm/iojs 0:06 ---> pkg-config --libs-only-l openssl
-lssl -lcrypto
0 akai@Arch-Akai: /dev/shm/iojs 0:07 ---> pkg-config --libs-only-l icu-il8n
Package icu-il8n was not found in the pkg-config search path.
Perhaps you should add the directory containing `icu-il8n.pc'
to the PKG_CONFIG_PATH environment variable
No package 'icu-il8n' found |
I forgot the one with -L 0 akai@Arch-Akai: /dev/shm/iojs 0:14 ---> pkg-config --libs-only-L zlib
-L/usr/lib
0 akai@Arch-Akai: /dev/shm/iojs 0:15 ---> pkg-config --libs-only-L openssl
0 akai@Arch-Akai: /dev/shm/iojs 0:15 ---> pkg-config --libs-only-L icu-i18n
0 akai@Arch-Akai: /dev/shm/iojs 0:15 --->
|
@alferpal I think you have a typo for |
Hard to spot that one, and was in fact going crazy searching a reason because in fact that file existed in my system. Correct output ( I hope) 0 akai@Arch-Akai: /dev/shm/iojs 0:23 ---> pkg-config --libs-only-l icu-i18n
-licui18n -licuuc -licudata
0 akai@Arch-Akai: /dev/shm/iojs 0:23 --->
|
@alferpal could you gist/pastebin your zlib, openssl and icu-i18n |
http://sprunge.us/VJVZ I expect they're in the right format... |
@alferpal I can reproduce. The problem is icu. I'll post a patch shortly. |
@alferpal try this patch (safeguarding against empty strings): diff --git configure configure
index 4a30973..d303846 100755
--- configure
+++ configure
@@ -846,10 +846,12 @@ def configure_intl(o):
sys.exit(1)
(libs, cflags, libpath) = pkgicu
# libpath provides linker path which may contain spaces
- o['libraries'] += [libpath]
+ if libpath:
+ o['libraries'] += [libpath]
# safe to split, cannot contain spaces
o['libraries'] += libs.split()
- o['cflags'] += cflags.split()
+ if cflags:
+ o['cflags'] += cflags.split()
# use the "system" .gyp
o['variables']['icu_gyp_path'] = 'tools/icu/icu-system.gyp'
return |
I should probably rewrite this to use configure_library instead.. |
While checking the return values from icu-i18n, we didn't validate the content before passing it to the build system. Also make cflags parsing more robust by avoiding empty strings. Fixes: nodejs#1787
Your patch solves the problem. I can get past configure with the icu flag. |
While checking the return values from icu-i18n, we didn't validate the content before passing it to the build system. Also make cflags parsing more robust by avoiding empty strings. Fixes: #1787 PR-URL: #1789 Reviewed-By: Rod Vagg <[email protected]> Reviewed-By: Ben Noordhuis <[email protected]>
While checking the return values from icu-i18n, we didn't validate the content before passing it to the build system. Also make cflags parsing more robust by avoiding empty strings. Fixes: nodejs/node#1787 PR-URL: nodejs/node#1789 Reviewed-By: Rod Vagg <[email protected]> Reviewed-By: Ben Noordhuis <[email protected]>
Platform: Arch Linux which as some of you will know defaults to python 3.
To solve that, before using configure we use this in our packages to change references from python to python2
This used to work with 2.0.x and now this is thrown:
I've been trying to look at the commits on the project, changes on the tools directory and so but I can't find what can trigger this because my knowledge of python and the whole build tool-chain are almost 0. I don't know how all the files call each other and where to track this.
Any hint?
Sorry if this is not the kind of thing to ask. And thank you in advance
The text was updated successfully, but these errors were encountered: