diff --git a/srcpkgs/crystal/template b/srcpkgs/crystal/template new file mode 100644 index 00000000000..1bac3dbe68c --- /dev/null +++ b/srcpkgs/crystal/template @@ -0,0 +1,59 @@ +# Template file for 'crystal' +pkgname=crystal +version=0.24.0 +revision=1 +hostmakedepends="crystal-bin git llvm" +makedepends="libxml2-devel" +depends="gc-devel libatomic_ops pcre-devel libevent-devel libyaml-devel + libxml2-devel gmp-devel libressl-devel llvm gcc" +checkdepends="readline-devel libyaml-devel gmp-devel libressl-devel" +short_desc="The Crystal Programming Language" +maintainer="lvmbdv " +license="Apache-2.0" +homepage="https://crystal-lang.org/" +distfiles="https://github.com/crystal-lang/crystal/archive/${version}.tar.gz" +checksum=c34f4326ee576f60b8960e331aae8d5265a12b30707582e1f5c6c6032d364a80 +conflicts="crystal-bin" + +post_extract() { + # Check for libtls to determine if libssl is coming from LibreSSL, as suggested by Vaelatern + sed -i 's/OPENSSL_102 = .*/OPENSSL_102 = {{ `command -v pkg-config > \/dev\/null \&\& pkg-config --atleast-version=1.0.2 libssl \&\& pkg-config --exists libtls || printf succ`.stringify == "succ" }}/' ${wrksrc}/src/openssl/lib_ssl.cr + sed -i 's/OPENSSL_102 = .*/OPENSSL_102 = {{ `command -v pkg-config > \/dev\/null \&\& pkg-config --atleast-version=1.0.2 libcrypto \&\& pkg-config --exists libtls || printf succ`.stringify == "succ" }}/' ${wrksrc}/src/openssl/lib_crypto.cr + sed -i 's/OPENSSL_110 = .*/OPENSSL_110 = {{ `command -v pkg-config > \/dev\/null \&\& pkg-config --atleast-version=1.1.0 libssl \&\& pkg-config --exists libtls || printf succ`.stringify == "succ" }}/' ${wrksrc}/src/openssl/lib_ssl.cr + sed -i 's/OPENSSL_110 = .*/OPENSSL_110 = {{ `command -v pkg-config > \/dev\/null \&\& pkg-config --atleast-version=1.1.0 libcrypto \&\& pkg-config --exists libtls || printf succ`.stringify == "succ" }}/' ${wrksrc}/src/openssl/lib_crypto.cr + + sed -i 's/exec crystal/exec crystal-bin/' ${wrksrc}/bin/crystal +} + +do_build() { + make ${makejobs} release=1 FLAGS="--release --no-debug" \ + CRYSTAL_CONFIG_PATH="lib:/usr/lib/crystal" \ + CRYSTAL_CONFIG_VERSION="${version}" \ + CRYSTAL_CACHE_DIR="/tmp/crystal" + make ${makejobs} doc CRYSTAL_CACHE_DIR="/tmp/crystal" +} + +do_check() { + make ${makejobs} spec \ + CRYSTAL_CONFIG_VERSION="${version}" \ + CRYSTAL_CACHE_DIR="/tmp/crystal" \ + PATH=".build:$PATH" +} + +do_install() { + vmkdir /usr/bin + vmkdir /usr/lib/crystal + vmkdir /usr/share/doc/crystal + vmkdir /usr/share/doc/crystal/api + vmkdir /usr/share/bash-completion/completions/crystal + vmkdir /usr/share/zsh/site-functions/_crystal + + vcopy etc/completion.bash /usr/share/bash-completion/completions/crystal + vcopy etc/completion.zsh /usr/share/zsh/site-functions/_crystal + vcopy samples /usr/share/doc/crystal + vcopy docs/* /usr/share/doc/crystal/api + vcopy src/* /usr/lib/crystal + vbin .build/crystal crystal + vlicense LICENSE + vman man/crystal.1 +}