Feasibility of pre-built OSS binaries

Would it be possible to provide OSS-licensed releases through binaries.cockroachdb.com? I’d like to stand up a sandbox cluster to allow some coworkers to try it out, but am having issues running the binary I built using make buildoss.

Using the pre-built binary releases seems to work fine, but I don’t want to risk violating the CCL (even tho the commercial features are not being used for this sandbox environment).

Have you tried: build/builder.sh make buildoss TYPE=release-linux-gnu

This hopefully builds a portable binary.
If you need a statically built binary you can also do TYPE=release-linux-musl
Let us know,

What sort of problems are you having with your own make buildoss binaries? If they work on the machine where they were built but not elsewhere, then @knz’s advice is what you need. We don’t do as much testing of those as the CCL builds, so it’s possible something else broke.

Note that it’s hard to accidentally violate the CCL with our official release binaries: features which require an enterprise license will simply fail unless you’ve installed a valid license (with the set cluster setting enterprise.license... command). It should be safe to run the CCL-licensed binaries whether you have an enterprise license or not.

What sort of problems are you having with your own make buildoss binaries?

I suspect it’s the result of some idiosyncrasies of our CI/CD system and not an issue with Cockroach itself, but when I build the binary and run a simple cockroach version command to verify that it works on the build node it’s fine, but once packaged and deployed, trying to start it on the application nodes results in the following errors:

.../cockroach start --insecure --store=cockroach-data --port=31001 --http-port=31000
.../cockroach: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by .../cockroach)
.../cockroach: /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by .../cockroach)
.../cockroach: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by .../cockroach)
.../cockroach: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by .../cockroach)
.../cockroach: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.22' not found (required by .../cockroach)

Have you tried: build/builder.sh make buildoss TYPE=release-linux-gnu

I have not. I had been following the directions listed under “Build from source” on https://www.cockroachlabs.com/docs/stable/install-cockroachdb.html. The builder looks promising however, so I’ll give it a shot.

Note that it’s hard to accidentally violate the CCL with our official release binaries

This is good to know! As I mentioned, for this environment I won’t be using any of the enterprise features, so ensuring I have the OSS-licensed software running is more to ensure that I stay out of hot water when opening it up to people to try out.

Those errors generally indicate that you’re running on an older platform than you built with. The builder image uses a carefully-engineered selection of compilers and libraries so the binaries it produces can run on any glibc-based distribution dating back to RHEL 6. There’s also make TYPE=portable which is a weaker version of the same idea and can be run outside of the builder image. I think that would be sufficient to resolve these errors (since they’re all about C++ instead of libc).