On 05/11/17 21:53, Jason Frey wrote:
> You're going to have to build each release with the previous release, and before 0.10.0 you're probably going to have to do a lot of manual interventions.
Do you happen to know if I can skip any of the builds? I don't mind going through each one, but if I can skip any that would make the job easier :)
> May I ask why you want to do this?I work at Red Hat, and am interested in getting Crystal as an official build within the Red Hat build system. Part of the rules with gold-signed Red Hat RPMs is that all RPMs must be rebuildable from source, and we cannot use unsigned RPMs, for security and support reasons. For a recent release of one of our products, we built a small app with Crystal and wanted to release in production, only to find that the RPMs provided by the Crystal team are binary-only. This is an automatic no-no for us, as we cannot verify the contents of the binary build. We ended up just converting to Ruby for this release (it's a small app), but I really want to release with Crystal for the next release, if possible. I believe I can get it as an official build if I can build that primordial RPM, then build the subsequent RPMs using that primordial RPM, which I'm pretty sure is how we got golang into the build system.
That’s great, because it means you only have to do this once!
There might be minor releases you can skip but it’s not documented and I doubt anyone will remember, you’ll have to discover which you can skip by trial and error. I heard there may even be commits which don’t obey the “must be buildable with the previous release” rule (before my time working on crystal). I’m not sure anyone has done this “from-scratch” build in a (long) while, since for bootstrapping new platforms we always cross-compile. Unfortunately, the best I can say is “good luck”, I’m sorry that this process is such a chore. Unfortunately you’ll probably have to handle switching LLVM versions in the middle too (3.3 -> 3.5 -> 4.0 is probably your minimal path).
Please report back with progress, and it’s fantastic to hear you’re investigating Crystal at Red Hat!
Jason
On Sunday, November 5, 2017 at 3:03:16 PM UTC-5, RX14 wrote:There's a tag called ruby with the last version where the compiler is ruby.
You're going to have to build each release with the previous release, and before 0.10.0 you're probably going to have to do a lot of manual interventions.
May I ask why you want to do this?On 5 Nov 2017, at 7:52 pm, Jason Frey <fry...@gmail.com> wrote:Hi all,
When building Crystal from source, it seems you need a prior version to build it, which makes sense since it's written in Crystal. However, I'm looking to build Crystal from pure source without downloading a prior binary. To do so, I assume I'd need to start by building a very early version of Crystal, then use that to build the next version and the next along the line. If that is so, which versions of Crystal do I need to build, in order, to get there?
Thanks,Jason
--
You received this message because you are subscribed to the Google Groups "Crystal" group.
To unsubscribe from this group and stop receiving emails from it, send an email to crystal-lang...@googlegroups.com.
To post to this group, send email to crysta...@googlegroups.com.
Visit this group at https://groups.google.com/group/crystal-lang.
To view this discussion on the web visit https://groups.google.com/d/msgid/crystal-lang/b5af3d6a-cac4-4f9a-9a0e-8b6dea715bf9%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.