Quantcast
Channel: Debian User Forums
Viewing all articles
Browse latest Browse all 4056

Debian Development Discussion • Re: Crystal language... How does Debian compile it?

$
0
0
Interesting.

I downloaded the sources from here: https://snapshot.debian.org/package/cry ... %2Bdfsg-1/

and again, didn't find anything that would successfully bootstrap this.

debian/changelog says:

Code:

crystal (0.34.0+dfsg-1) unstable; urgency=medium  * Initial release (Closes: #822275). -- David Suárez <david.sephirot@gmail.com>  Fri, 10 Apr 2020 17:26:40 +0200
So I looked up bug822275, and there is this commentary:
From: Luc Sarzyniec <debian@olbat.net>
To: submit@bugs.debian.org
Subject: RFP: crystal -- Compiler of the Crystal object-oriented programming language
Date: Fri, 22 Apr 2016 23:46:18 +0200

Package: wnpp
Severity: wishlist

* Package name : crystal
Version : 0.15.0
Upstream Author : Manas Technology Solutions <info@manas.com.ar>
* URL : http://crystal-lang.org/
* License : Apache-2.0
Programming Lang: Crystal
Description : Compiler of the Crystal object-oriented programming language


The Crystal's language syntax is inspired by Ruby, the language is statically
type-checked but does not require that the type of variables or method
arguments be specified.

The project's sources are hosted on GitHub [0].

I started to work on the Debian packaging of the project [1], but I still have
some issues to address. The first one: the compiler is written in Crystal so
crystal has to be specified in the package's build dependencies - I don't
really know how to handle it. This work may be used as a base to build
something cleaner.
[1] just links to https://github.com/olbat/crystal which doesn't seem to have any additional commits beyond upstream.

Looking in the source dir of this 0.34.0 version, there is only one C/C++ file, that is the llvm_ext.cc, which doesn't contain very much at all, everything else is Crystal.

Again debian/rules doesn't seem to shed any light on how this is compiled so I assume it just is just running make inside the source dir.

Doing so gives me an error that it can't find llvm-config. Running LLVM_CONFIG=/usr/bin/llvm-config-14 make instead gives me a bunch of errors compiling llvm_ext.cc, indicating I'd probably need an older LLVM.

So I just quickly hacked the Makefile to prevent it trying to build llvm_ext.cc to see what would happen.

It invoked bin/crystal, which is a shell script that tries to find crystal, which found my system-installed crystal-1.6.0.

After doing apt remove crystal, trying the make again results in the message "You need to have a crystal executable in your path!"

So it would seem to me that in order to build this 0.34.0 version, they had to do some bootstrapping manually (perhaps following the bootstrap-script I originally mentioned, which no longer works), and maybe the details of how this was done have been lost.

I might try installing some old Debian versions in VMs, and see if the bootstrap-script works anywhere there.

Statistics: Posted by tycode — 2024-11-20 08:26



Viewing all articles
Browse latest Browse all 4056

Trending Articles