mozilla / positron

a experimental, Electron-compatible runtime on top of Gecko
Other
567 stars 64 forks source link

node-integration builds busted on Linux because static lib locations differ #136

Open mykmelez opened 8 years ago

mykmelez commented 8 years ago

@brendandahl The node-integration branch busted Linux builds (and thus TaskCluster) because the SpiderNode static libraries that Positron links against can't be found:

0:08.37 cp: cannot stat ‘/home/myk/Projects/positron/positron/spidernode/out/Release/libcares.a’: No such file or directory 0:08.37 cp: cannot stat ‘/home/myk/Projects/positron/positron/spidernode/out/Release/libhttp_parser.a’: No such file or directory 0:08.37 cp: cannot stat ‘/home/myk/Projects/positron/positron/spidernode/out/Release/libnode.a’: No such file or directory 0:08.37 cp: cannot stat ‘/home/myk/Projects/positron/positron/spidernode/out/Release/libopenssl.a’: No such file or directory 0:08.37 cp: cannot stat ‘/home/myk/Projects/positron/positron/spidernode/out/Release/libspidershim.a’: No such file or directory 0:08.37 cp: cannot stat ‘/home/myk/Projects/positron/positron/spidernode/out/Release/libuv.a’: No such file or directory 0:08.37 cp: cannot stat ‘/home/myk/Projects/positron/positron/spidernode/out/Release/libzlib.a’: No such file or directory 0:08.37 make[5]: * [../../positron/app/spidernode/.libs/libcares.a] Error 1 0:08.37 make[4]: * [positron/webidl/target] Error 2 0:08.37 make[4]: * Waiting for unfinished jobs.... 0:08.39 make[3]: * [compile] Error 2 0:08.39 make[2]: * [default] Error 2 0:08.39 make[1]: * [realbuild] Error 2 0:08.39 make: *\ [build] Error 2

But they're present, just in a different location than on Mac:

$ ll positron/spidernode/out/Release/obj.target/deps//.a -rw-rw-r-- 1 myk myk 9956 Oct 1 10:19 positron/spidernode/out/Release/obj.target/deps/cares/libcares.a -rw-rw-r-- 1 myk myk 39258 Oct 1 10:19 positron/spidernode/out/Release/obj.target/deps/gtest/libgtest.a -rw-rw-r-- 1 myk myk 624 Oct 1 10:19 positron/spidernode/out/Release/obj.target/deps/http_parser/libhttp_parser.a -rw-rw-r-- 1 myk myk 233282 Oct 1 10:20 positron/spidernode/out/Release/obj.target/deps/openssl/libopenssl.a -rw-rw-r-- 1 myk myk 55072 Oct 1 10:19 positron/spidernode/out/Release/obj.target/deps/spidershim/libspidershim.a -rw-rw-r-- 1 myk myk 10866 Oct 1 10:22 positron/spidernode/out/Release/obj.target/deps/uv/libuv.a -rw-rw-r-- 1 myk myk 3946 Oct 1 10:19 positron/spidernode/out/Release/obj.target/deps/zlib/libzlib.a $ find positron/spidernode/out -name libnode.a positron/spidernode/out/Release/obj.target/libnode.a

And copying them to the same place as Mac fixes the build (which then runs as expected):

$ cp positron/spidernode/out/Release/obj.target/deps/cares/libcares.a positron/spidernode/out/Release/obj.target/deps/http_parser/libhttp_parser.a positron/spidernode/out/Release/obj.target/libnode.a positron/spidernode/out/Release/obj.target/deps/openssl/libopenssl.a positron/spidernode/out/Release/obj.target/deps/spidershim/libspidershim.a positron/spidernode/out/Release/obj.target/deps/uv/libuv.a positron/spidernode/out/Release/obj.target/deps/zlib/libzlib.a positron/spidernode/out/Release/ $ ./mach build && ./mach run positron/test/hello-world-server/ … 2:13.82 Your build was successful! … Loading app at positron/test/hello-world-server/

So we just need to figure out how to build the files to a different location on Linux and/or how to accommodate their existing locations in Positron's build process.