-
-
Notifications
You must be signed in to change notification settings - Fork 708
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
How to compile Sandstorm? #3036
Comments
Quoting Lauri Ojansivu (2018-02-14 11:51:35)
$ go version
go version go1.9.4 linux/amd64
This doesn't seem relevant; there's no Go in the sandstorm codebase.
cd ~/repos/sandstorm/deps/boringssl
rm -rf build
mkdir build
cd build
cmake -GNinja ..
ninja
None of this should be necessary; may I ask (1) why you're doing the
above, and (2) what happens without it?
make continuous
...
make[1]: *** Kohteita ei ole annettu, eikä makefileä löytynyt. Seis.
Could you re-run this as `LC_ALL=C make continuous`? This will make it
easier for native English speakers to troubleshoot.
|
Yes there is go, boringssl requires it. make continuous is what @kentonv said he has only used at IRC chat. There is no difference with just make, same error.
|
Ok I deleted boringssl build directory and tried to rebuild.
|
It seems that I had to do:
Still waiting for compile to finish. |
Ok now I get these errors:
|
Then I did:
Then I did try make again:
|
It looks like you need to do:
This is a new dependency missing from the docs, I guess. |
Docs needs updating. |
Adds zlib1g-dev to the install list for building Sandstorm. Fixes sandstorm-io#3036
Go is also needed, right? I'm trying to build Sandstorm from source, and I also had to install Go. I picked golang-1.9-any as my package for Ubuntu 16.04, and for some reason I also had to manually add /usr/lib/go-1.9/bin to my $PATH. Maybe if I had picked another version of Go, that would have been unnecessary? |
I am a little confused because BoringSSL shouldn't require Go, and neither should Sandstorm. That being said, Google explicitly recommends against using BoringSSL in non-Google projects too. The only place I found Go in BoringSSL, on a cursory examination is some tests? But it's a fork of OpenSSL, I kinda doubt it should, in theory, "require" Go. :/ |
At sandstorm/deps/boringssl/BUILDING.md
I installed Go by dowloading it from https://golang.org/dl and then looking at instructions at https://golang.org/doc/install
Then I added Go to ~/.bashrc
And made directory for Go code
Those are default locations Go expects. |
Ah, I was looking at INCORPORATING, and around the code itself. I'd rant about Google requiring their language for a fork of a non-Google project, but they told non-Googlers not to use it. So... shrug, can't fault 'em there. |
@ocdtrekkie BoringSSL advises non-Googlers not to use it because part of their goal is to delete big swaths of OpenSSL features, and if they can't narrowly define the target customers, then they have no way of knowing who might be broken by any deletion. But as long as their only customers are Chrome, Android, and Google's server infrastructure, they can actually answer the question "is it safe to delete this feature?". Practically speaking, though, because Google using BoringSSL for both Chrome and their HTTP server infrastructure, BoringSSL will always have the features needed for modern HTTPS, which is exactly what we happen to need for Sandstorm. Say what you want about Google's products, but Google's security team is really, really good. Arguably the best there is. Consensus in the security community is that BoringSSL is probably significantly more secure than OpenSSL (because lots of attack surface has been removed), and that the people working on BoringSSL are extremely good at what they do (whereas OpenSSL has had a spotty record of software engineering). And thus, despite the warnings, BoringSSL is actually widely used outside Google, generally by people for whom HTTPS security is a core part of their business and they can afford engineers to deal with the occasional API churn. For example, Cloudflare's servers all use it. I'm a little annoyed by the Go requirement too, but meh, it's only a compile-time requirement. |
Fair enough. How much is entailed in assembling roughly clean instructions for adding it to the docs? It sounds like just adding "apt-get install go" isn't going to fly. |
|
It looks like the package name is golang-go. @Michael-S, I found the statement here: https://github.com/golang/go/wiki/Ubuntu that if you pick the 1.9 package explicitly, it won't put it in path. |
@ocdtrekkie thanks for tracking down the cause of that oddity. I appreciate it. |
Quoting Kenton Varda (2018-02-19 15:22:52)
apt install golang is all I nedeed.
Yeah, that should do it (or whatever your distro package is; "go" on
Arch Linux). It looks like it's just a couple scripts in the build
system.
I didn't even notice because being a go dev, I already had it installed.
It does seem like a huge dependency for an otherwise non-Go project, but
if you're already doing stuff in Go and it's theoretically only for your
own use...
|
I have added VirtualBox appliance for compiling Wekan, Sandstorm, Wekan for Sandstorm, etc. |
@kentonv
How to compile Sandstorm?
The text was updated successfully, but these errors were encountered: