summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-lang/crystal')
-rw-r--r--dev-lang/crystal/Manifest7
-rw-r--r--dev-lang/crystal/crystal-0.35.1.ebuild121
-rw-r--r--dev-lang/crystal/crystal-1.12.1.ebuild120
-rw-r--r--dev-lang/crystal/crystal-1.12.2.ebuild120
-rw-r--r--dev-lang/crystal/files/crystal-0.22.0-blocking-stdio-hack.patch20
-rw-r--r--dev-lang/crystal/files/crystal-0.26.1-gentoo-tests-sandbox.patch22
-rw-r--r--dev-lang/crystal/files/crystal-0.27.0-extra-spec-flags.patch11
-rw-r--r--dev-lang/crystal/files/crystal-0.27.0-max-age-0-test.patch14
-rw-r--r--dev-lang/crystal/files/crystal-0.31.0-verbose.patch7
-rw-r--r--dev-lang/crystal/files/crystal-1.7.2-extra-spec-flags.patch11
-rw-r--r--dev-lang/crystal/metadata.xml48
11 files changed, 273 insertions, 228 deletions
diff --git a/dev-lang/crystal/Manifest b/dev-lang/crystal/Manifest
index 1dbc5dcbd597..4d0605f5725e 100644
--- a/dev-lang/crystal/Manifest
+++ b/dev-lang/crystal/Manifest
@@ -1,3 +1,4 @@
-DIST crystal-0.35.1-1-linux-i686.tar.gz 28330633 BLAKE2B 1f393ad53f2643b4514de54192047f549cffa22b14afbf25d9de00bf815378ec65a5049a9eee28753dc13bc9fea40447be109f21b55518a6ed8f06353a0b26e6 SHA512 333c2cdbd40ef65de52c1056e6089628ed83daf1a1e9d5243e876b622545d767077b485003ae7efaedeb7807c03c40e6f356cbdcce4dab2319c1686da120dac0
-DIST crystal-0.35.1-1-linux-x86_64.tar.gz 26653426 BLAKE2B a4ab58e784af3cd0298057a35079dfb48c9ca8d56388394377b86d7475d143a07cc3a800cdee3c9af3054d249ac9b87808d86b25747fc8f9322d01f25a3e3dec SHA512 1cceea5742651e2708e19ea49a7a884500d21beec3eaed75fc9e4b82e7dabaa521143b6c576ec48d2f5e27951163fd8c2ae417f46a1847c68f6e91c9b2a9a72a
-DIST crystal-0.35.1.tar.gz 2349984 BLAKE2B bf9078c949499e3f8469a055908c23335b04f2a58ab323345bdcdf1de70d00cdfe3aae7baf93e5098e21852c59d1cd8a0fb4faa91c9877d7ef2347a5faeaa69c SHA512 0381568330802de5838f8e66600567817b60ba0087bb3cc2b5df2944c5c42779039b606c81e0207bef34082bf25331b590a8140830f65ba4106ae465f717000b
+DIST crystal-1.12.1-1-linux-x86_64.tar.gz 47041074 BLAKE2B 7e5d4a422144902de4b187947d55f9e8069d55f51013e10236fcf79b142ff96fc39973c883f5a633fbd10180553b6c82bdea824bff09d355fa171e4f5e308b68 SHA512 3256dc2340ed7b783bdf7e5f3d5c03cf981655ac2f50921aa53ada13cc72315d5a70515adb1c511f0f6e37c09310a963773b4f57eaeffe34c68e539edaaa7726
+DIST crystal-1.12.1.tar.gz 3657963 BLAKE2B 42cf32dca63a2bdd2925b4970e2277cb163ddcdbcbc997b7c72b155024f642d03c5a565e82dfc8a2b1aed0d3f877633beb9d128eb592485c034bfdcbc3f5baab SHA512 bd0c085d44a473b86797fa64ce9a5c66c7d3eda44bdba929faee490b635aef45bdf84b45baaa5dfea8e2b6fd218d1ae7fbdf117d3924b04b284075d4a500e55c
+DIST crystal-1.12.2-1-linux-x86_64.tar.gz 47042270 BLAKE2B 17c29658fba1e32eafc0716f34d96f080b8500ef81d573719a3944873fbd16521ef2e3c0b6f3ea2753f67e96fe6cbf361df03233aa9e3eea19b87850b8d38089 SHA512 33d40b003481f56c1a3dcefb586e45326629455faad0adc6fce60f4fe91b586f01f997665aa535286b6909b5a4e0c05db3577b3eb8b36f6864f80d576ddd1d39
+DIST crystal-1.12.2.tar.gz 3655994 BLAKE2B d5de81445e3e81352ae821cdf91863464f70466674f541e2b9e499610e0d68b4aac3af6e2688870be8b2ccd84c9da78734e0e8f5f8be070192bd7d7342d77853 SHA512 b972015fa17da19bcb649a4e0387e709b4a792c8e9279898e48fb82f8840e92f35492df9cce1ec2487724ee460d3ab9099144f6bd25a091a725578ec3fb0fbd6
diff --git a/dev-lang/crystal/crystal-0.35.1.ebuild b/dev-lang/crystal/crystal-0.35.1.ebuild
deleted file mode 100644
index b5aa87303660..000000000000
--- a/dev-lang/crystal/crystal-0.35.1.ebuild
+++ /dev/null
@@ -1,121 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit bash-completion-r1 llvm multiprocessing toolchain-funcs
-
-BV=${PV}-1
-BV_AMD64=${BV}-linux-x86_64
-BV_X86=${BV}-linux-i686
-
-DESCRIPTION="The Crystal Programming Language"
-HOMEPAGE="https://crystal-lang.org"
-SRC_URI="https://github.com/crystal-lang/crystal/archive/${PV}.tar.gz -> ${P}.tar.gz
- amd64? ( https://github.com/crystal-lang/crystal/releases/download/${BV/-*}/crystal-${BV_AMD64}.tar.gz )
- x86? ( https://github.com/crystal-lang/crystal/releases/download/${BV/-*}/crystal-${BV_X86}.tar.gz )"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="doc debug examples blocking-stdio-hack +xml +yaml"
-
-RESTRICT=test # not stable for day-to-day runs
-
-LLVM_MAX_SLOT=10
-
-DEPEND="
- sys-devel/llvm:${LLVM_MAX_SLOT}
- dev-libs/boehm-gc[static-libs,threads]
- dev-libs/libatomic_ops
- dev-libs/libevent
- dev-libs/libpcre
- sys-libs/libunwind
- dev-libs/pcl
- dev-libs/gmp:0
-"
-RDEPEND="${DEPEND}
- xml? ( dev-libs/libxml2 )
- yaml? ( dev-libs/libyaml )
-"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-0.31.0-verbose.patch
- "${FILESDIR}"/${PN}-0.26.1-gentoo-tests-sandbox.patch
- "${FILESDIR}"/${PN}-0.27.0-extra-spec-flags.patch
- #"${FILESDIR}"/${PN}-0.27.0-max-age-0-test.patch
- "${FILESDIR}"/${PN}-0.27.0-gentoo-tests-long-unix.patch
- "${FILESDIR}"/${PN}-0.27.0-gentoo-tests-long-unix-2.patch
-)
-
-src_prepare() {
- default
-
- use blocking-stdio-hack && eapply "${FILESDIR}"/"${PN}"-0.22.0-blocking-stdio-hack.patch
-}
-
-src_compile() {
- local bootstrap_path=${WORKDIR}/${PN}-${BV}/bin
- if [[ ! -d ${bootstrap_path} ]]; then
- eerror "Binary tarball does not contain expected directory:"
- die "'${bootstrap_path}' path does not exist."
- fi
-
- # crystal uses 'LLVM_TARGETS' to override default list of targets
- unset LLVM_TARGETS
- emake \
- $(usex debug "" release=1) \
- progress=true \
- stats=1 \
- threads=$(makeopts_jobs) \
- verbose=1 \
- \
- CC=$(tc-getCC) \
- CXX=$(tc-getCXX) \
- AR=$(tc-getAR) \
- \
- PATH="${bootstrap_path}:${PATH}" \
- CRYSTAL_PATH=src \
- CRYSTAL_CONFIG_VERSION=${PV} \
- CRYSTAL_CONFIG_PATH="lib:${EPREFIX}/usr/$(get_libdir)/crystal"
- use doc && emake docs
-}
-
-src_test() {
- # EXTRA_SPEC_FLAGS is useful to debug individual tests
- # as part of full build:
- # USE=debug EXTRA_SPEC_FLAGS='-e parse_set_cookie' emerge -1 crystal
- emake spec \
- $(usex debug "" release=1) \
- progress=true \
- stats=1 \
- threads=$(makeopts_jobs) \
- verbose=1 \
- \
- CC=$(tc-getCC) \
- CXX=$(tc-getCXX) \
- AR=$(tc-getAR) \
- \
- CRYSTAL_PATH=src \
- CRYSTAL_CONFIG_VERSION=${PV} \
- \
- "EXTRA_SPEC_FLAGS=${EXTRA_SPEC_FLAGS}"
-}
-
-src_install() {
- insinto /usr/$(get_libdir)/crystal
- doins -r src/.
- dobin .build/crystal
-
- insinto /usr/share/zsh/site-functions
- newins etc/completion.zsh _crystal
-
- use examples && dodoc -r samples
-
- if use doc ; then
- docinto api
- dodoc -r docs/.
- fi
-
- newbashcomp etc/completion.bash ${PN}
-}
diff --git a/dev-lang/crystal/crystal-1.12.1.ebuild b/dev-lang/crystal/crystal-1.12.1.ebuild
new file mode 100644
index 000000000000..92f5bc42f945
--- /dev/null
+++ b/dev-lang/crystal/crystal-1.12.1.ebuild
@@ -0,0 +1,120 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+BV="${PV}-1"
+BV_AMD64="${BV}-linux-x86_64"
+
+LLVM_MAX_SLOT=17
+
+inherit bash-completion-r1 llvm multiprocessing toolchain-funcs
+
+DESCRIPTION="The Crystal Programming Language"
+HOMEPAGE="https://crystal-lang.org/
+ https://github.com/crystal-lang/crystal/"
+SRC_URI="
+ https://github.com/crystal-lang/crystal/archive/${PV}.tar.gz
+ -> ${P}.tar.gz
+ amd64? (
+ https://github.com/crystal-lang/crystal/releases/download/${BV/-*}/crystal-${BV_AMD64}.tar.gz
+ )
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE="doc debug llvm-libunwind"
+
+# Upstream test suite not reliable
+RESTRICT="test"
+
+DEPEND="
+ <sys-devel/llvm-$((${LLVM_MAX_SLOT} + 1)):=
+ dev-libs/boehm-gc:=[threads]
+ dev-libs/gmp:=
+ dev-libs/libatomic_ops:=
+ dev-libs/libevent:=
+ dev-libs/libpcre2:=[unicode]
+ dev-libs/pcl:=
+ llvm-libunwind? (
+ sys-libs/llvm-libunwind:=
+ )
+ !llvm-libunwind? (
+ sys-libs/libunwind:=
+ )
+"
+RDEPEND="
+ ${DEPEND}
+ dev-libs/libxml2
+ dev-libs/libyaml
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.7.2-extra-spec-flags.patch"
+ "${FILESDIR}/${PN}-0.27.0-gentoo-tests-long-unix.patch"
+ "${FILESDIR}/${PN}-0.27.0-gentoo-tests-long-unix-2.patch"
+)
+
+src_configure() {
+ local bootstrap_path="${WORKDIR}/${PN}-${BV}/bin"
+ if [[ ! -d "${bootstrap_path}" ]] ; then
+ eerror "Binary tarball does not contain expected directory:"
+ die "'${bootstrap_path}' path does not exist."
+ fi
+
+ # crystal uses 'LLVM_TARGETS' to override default list of targets
+ unset LLVM_TARGETS
+
+ MY_EMAKE_COMMON_ARGS=(
+ PATH="${bootstrap_path}:${PATH}"
+
+ CRYSTAL_CONFIG_VERSION="${PV}"
+ CRYSTAL_CONFIG_PATH="lib:${EPREFIX}/usr/$(get_libdir)/crystal"
+
+ $(usex debug "" release=1)
+ progress=true
+ stats=1
+ threads="$(makeopts_jobs)"
+ verbose=1
+
+ AR="$(tc-getAR)"
+ CC="$(tc-getCC)"
+ CXX="$(tc-getCXX)"
+ LLVM_CONFIG="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
+ )
+}
+
+src_compile() {
+ emake "${MY_EMAKE_COMMON_ARGS[@]}"
+
+ use doc && emake docs "${MY_EMAKE_COMMON_ARGS[@]}"
+}
+
+src_test() {
+ # EXTRA_SPEC_FLAGS is useful to debug individual tests
+ # as part of full build:
+ # USE=debug EXTRA_SPEC_FLAGS='-e parse_set_cookie' emerge -1 crystal
+ emake std_spec \
+ "${MY_EMAKE_COMMON_ARGS[@]}" "EXTRA_SPEC_FLAGS=${EXTRA_SPEC_FLAGS}"
+}
+
+src_install() {
+ insinto "/usr/$(get_libdir)/crystal"
+ doins -r src/.
+
+ exeinto /usr/bin
+ doexe .build/crystal
+
+ insinto /usr/share/zsh/site-functions
+ newins etc/completion.zsh _crystal
+
+ dodoc -r samples
+ doman "man/${PN}.1"
+ newbashcomp etc/completion.bash "${PN}"
+
+ if use doc ; then
+ docinto api
+ dodoc -r docs/.
+ fi
+}
diff --git a/dev-lang/crystal/crystal-1.12.2.ebuild b/dev-lang/crystal/crystal-1.12.2.ebuild
new file mode 100644
index 000000000000..02631f5f838f
--- /dev/null
+++ b/dev-lang/crystal/crystal-1.12.2.ebuild
@@ -0,0 +1,120 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+BV="${PV}-1"
+BV_AMD64="${BV}-linux-x86_64"
+
+LLVM_MAX_SLOT=17
+
+inherit bash-completion-r1 llvm multiprocessing toolchain-funcs
+
+DESCRIPTION="The Crystal Programming Language"
+HOMEPAGE="https://crystal-lang.org/
+ https://github.com/crystal-lang/crystal/"
+SRC_URI="
+ https://github.com/crystal-lang/crystal/archive/${PV}.tar.gz
+ -> ${P}.tar.gz
+ amd64? (
+ https://github.com/crystal-lang/crystal/releases/download/${BV/-*}/crystal-${BV_AMD64}.tar.gz
+ )
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc debug llvm-libunwind"
+
+# Upstream test suite not reliable
+RESTRICT="test"
+
+DEPEND="
+ <sys-devel/llvm-$((${LLVM_MAX_SLOT} + 1)):=
+ dev-libs/boehm-gc:=[threads]
+ dev-libs/gmp:=
+ dev-libs/libatomic_ops:=
+ dev-libs/libevent:=
+ dev-libs/libpcre2:=[unicode]
+ dev-libs/pcl:=
+ llvm-libunwind? (
+ sys-libs/llvm-libunwind:=
+ )
+ !llvm-libunwind? (
+ sys-libs/libunwind:=
+ )
+"
+RDEPEND="
+ ${DEPEND}
+ dev-libs/libxml2
+ dev-libs/libyaml
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.7.2-extra-spec-flags.patch"
+ "${FILESDIR}/${PN}-0.27.0-gentoo-tests-long-unix.patch"
+ "${FILESDIR}/${PN}-0.27.0-gentoo-tests-long-unix-2.patch"
+)
+
+src_configure() {
+ local bootstrap_path="${WORKDIR}/${PN}-${BV}/bin"
+ if [[ ! -d "${bootstrap_path}" ]] ; then
+ eerror "Binary tarball does not contain expected directory:"
+ die "'${bootstrap_path}' path does not exist."
+ fi
+
+ # crystal uses 'LLVM_TARGETS' to override default list of targets
+ unset LLVM_TARGETS
+
+ MY_EMAKE_COMMON_ARGS=(
+ PATH="${bootstrap_path}:${PATH}"
+
+ CRYSTAL_CONFIG_VERSION="${PV}"
+ CRYSTAL_CONFIG_PATH="lib:${EPREFIX}/usr/$(get_libdir)/crystal"
+
+ $(usex debug "" release=1)
+ progress=true
+ stats=1
+ threads="$(makeopts_jobs)"
+ verbose=1
+
+ AR="$(tc-getAR)"
+ CC="$(tc-getCC)"
+ CXX="$(tc-getCXX)"
+ LLVM_CONFIG="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
+ )
+}
+
+src_compile() {
+ emake "${MY_EMAKE_COMMON_ARGS[@]}"
+
+ use doc && emake docs "${MY_EMAKE_COMMON_ARGS[@]}"
+}
+
+src_test() {
+ # EXTRA_SPEC_FLAGS is useful to debug individual tests
+ # as part of full build:
+ # USE=debug EXTRA_SPEC_FLAGS='-e parse_set_cookie' emerge -1 crystal
+ emake std_spec \
+ "${MY_EMAKE_COMMON_ARGS[@]}" "EXTRA_SPEC_FLAGS=${EXTRA_SPEC_FLAGS}"
+}
+
+src_install() {
+ insinto "/usr/$(get_libdir)/crystal"
+ doins -r src/.
+
+ exeinto /usr/bin
+ doexe .build/crystal
+
+ insinto /usr/share/zsh/site-functions
+ newins etc/completion.zsh _crystal
+
+ dodoc -r samples
+ doman "man/${PN}.1"
+ newbashcomp etc/completion.bash "${PN}"
+
+ if use doc ; then
+ docinto api
+ dodoc -r docs/.
+ fi
+}
diff --git a/dev-lang/crystal/files/crystal-0.22.0-blocking-stdio-hack.patch b/dev-lang/crystal/files/crystal-0.22.0-blocking-stdio-hack.patch
deleted file mode 100644
index 07b7dba7be65..000000000000
--- a/dev-lang/crystal/files/crystal-0.22.0-blocking-stdio-hack.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Workaround tty corruption in crystal.
-
-Patch restores blocking mode of file desriptors
-in exchange of potential runtime deadlocks
-when dealing with stdio.
-
-Reported-by: Renich Bon Ciric
-Bug: https://github.com/crystal-lang/crystal/issues/2065
-Bug: https://bugs.gentoo.org/616256
-diff --git a/src/compiler/crystal/stdio.cr b/src/compiler/crystal/stdio.cr
-new file mode 100644
-index 000000000..e65f65089
---- /dev/null
-+++ b/src/compiler/crystal/stdio.cr
-@@ -0,0 +1,5 @@
-+module Crystal
-+ STDIN.blocking = true
-+ STDOUT.blocking=true
-+ STDERR.blocking = true
-+end
diff --git a/dev-lang/crystal/files/crystal-0.26.1-gentoo-tests-sandbox.patch b/dev-lang/crystal/files/crystal-0.26.1-gentoo-tests-sandbox.patch
deleted file mode 100644
index cab165c39059..000000000000
--- a/dev-lang/crystal/files/crystal-0.26.1-gentoo-tests-sandbox.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/spec/std/file_spec.cr
-+++ b/spec/std/file_spec.cr
-@@ -1164,3 +1164,4 @@ describe "File" do
- # TODO: there is no file which is reliably unwritable on windows
-- pending_win32 "raises if file cannot be accessed" do
-+ # On linux(or sandbox?) it's "Permission denied", not "Operation not permitted"
-+ pending "raises if file cannot be accessed" do
- expect_raises Errno, "Operation not permitted" do
---- a/spec/std/process_spec.cr
-+++ b/spec/std/process_spec.cr
-@@ -135,3 +135,4 @@ describe Process do
- describe "environ" do
-- it "clears the environment" do
-+ #gentoo's sandbox keeps sandbox environment
-+ pending "clears the environment" do
- value = Process.run("env", clear_env: true) do |proc|
-@@ -142,3 +143,4 @@ describe Process do
-
-- it "sets an environment variable" do
-+ #gentoo's sandbox keeps sandbox environment
-+ pending "sets an environment variable" do
- env = {"FOO" => "bar"}
diff --git a/dev-lang/crystal/files/crystal-0.27.0-extra-spec-flags.patch b/dev-lang/crystal/files/crystal-0.27.0-extra-spec-flags.patch
deleted file mode 100644
index bd86c13a78a6..000000000000
--- a/dev-lang/crystal/files/crystal-0.27.0-extra-spec-flags.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-Allow injecting additional arguments to test suite.
-Useful to be able to run small subset of individual
-test suite:
-
- make spec EXTRA_SPEC_FLAGS='-e parse_set_cookie'
-
---- a/Makefile
-+++ b/Makefile
-@@ -31 +31 @@ override FLAGS += $(if $(release),--release )$(if $(stats),--stats )$(if $(progr
--SPEC_FLAGS := $(if $(verbose),-v )$(if $(junit_output),--junit_output $(junit_output) )
-+SPEC_FLAGS := $(if $(verbose),-v )$(if $(junit_output),--junit_output $(junit_output) )$(EXTRA_SPEC_FLAGS)
diff --git a/dev-lang/crystal/files/crystal-0.27.0-max-age-0-test.patch b/dev-lang/crystal/files/crystal-0.27.0-max-age-0-test.patch
deleted file mode 100644
index d78927ab3eef..000000000000
--- a/dev-lang/crystal/files/crystal-0.27.0-max-age-0-test.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- a/spec/std/http/cookie_spec.cr
-+++ b/spec/std/http/cookie_spec.cr
-@@ -150,7 +150,10 @@ module HTTP
- parse_set_cookie("a=1; domain=127.0.0.1; path=/; HttpOnly").domain.should eq "127.0.0.1"
- end
-
-- it "parse max-age as seconds from Time.now" do
-+ # unstable test: sometimes 'now - max-age=0' == 0.0:
-+ # Failure/Error: delta.should be > 0.seconds
-+ # Expected 00:00:00 to be > 00:00:00
-+ pending "parse max-age as seconds from Time.now" do
- cookie = parse_set_cookie("a=1; max-age=10")
- delta = cookie.expires.not_nil! - Time.now
- delta.should be > 9.seconds
diff --git a/dev-lang/crystal/files/crystal-0.31.0-verbose.patch b/dev-lang/crystal/files/crystal-0.31.0-verbose.patch
deleted file mode 100644
index f381704ba0d9..000000000000
--- a/dev-lang/crystal/files/crystal-0.31.0-verbose.patch
+++ /dev/null
@@ -1,7 +0,0 @@
---- a/Makefile
-+++ b/Makefile
-@@ -29,3 +29,3 @@ SOURCES := $(shell find src -name '*.cr')
- SPEC_SOURCES := $(shell find spec -name '*.cr')
--override FLAGS += $(if $(release),--release )$(if $(stats),--stats )$(if $(progress),--progress )$(if $(threads),--threads $(threads) )$(if $(debug),-d )$(if $(static),--static )$(if $(LDFLAGS),--link-flags="$(LDFLAGS)" )
-+override FLAGS += $(if $(release),--release )$(if $(stats),--stats )$(if $(progress),--progress )$(if $(threads),--threads $(threads) )$(if $(debug),-d )$(if $(static),--static )$(if $(LDFLAGS),--link-flags="$(LDFLAGS)" )$(if $(verbose),--verbose )
- SPEC_FLAGS := $(if $(verbose),-v )$(if $(junit_output),--junit_output $(junit_output) )
diff --git a/dev-lang/crystal/files/crystal-1.7.2-extra-spec-flags.patch b/dev-lang/crystal/files/crystal-1.7.2-extra-spec-flags.patch
new file mode 100644
index 000000000000..cc9e21abcbd6
--- /dev/null
+++ b/dev-lang/crystal/files/crystal-1.7.2-extra-spec-flags.patch
@@ -0,0 +1,11 @@
+--- a/Makefile
++++ b/Makefile
+@@ -33,7 +33,7 @@ SOURCES := $(shell find src -name '*.cr')
+ SPEC_SOURCES := $(shell find spec -name '*.cr')
+ override FLAGS += -D strict_multi_assign -D preview_overload_order $(if $(release),--release )$(if $(stats),--stats )$(if $(progress),--progress )$(if $(threads),--threads $(threads) )$(if $(debug),-d )$(if $(static),--static )$(if $(LDFLAGS),--link-flags="$(LDFLAGS)" )$(if $(target),--cross-compile --target $(target) )$(if $(interpreter),,-Dwithout_interpreter )
+ SPEC_WARNINGS_OFF := --exclude-warnings spec/std --exclude-warnings spec/compiler --exclude-warnings spec/primitives
+-SPEC_FLAGS := $(if $(verbose),-v )$(if $(junit_output),--junit_output $(junit_output) )$(if $(order),--order=$(order) )
++SPEC_FLAGS := $(if $(verbose),-v )$(if $(junit_output),--junit_output $(junit_output) )$(if $(order),--order=$(order) )$(EXTRA_SPEC_FLAGS)
+ CRYSTAL_CONFIG_LIBRARY_PATH := '$$ORIGIN/../lib/crystal'
+ CRYSTAL_CONFIG_BUILD_COMMIT := $(shell git rev-parse --short HEAD 2> /dev/null)
+ CRYSTAL_CONFIG_PATH := '$$ORIGIN/../share/crystal/src'
diff --git a/dev-lang/crystal/metadata.xml b/dev-lang/crystal/metadata.xml
index 76b2f7772585..e07ed6579205 100644
--- a/dev-lang/crystal/metadata.xml
+++ b/dev-lang/crystal/metadata.xml
@@ -1,33 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+
<pkgmetadata>
- <maintainer type="person">
- <email>slyfox@gentoo.org</email>
- <name>Sergei Trofimovich</name>
- </maintainer>
- <longdescription lang="en">
- Crystal is a programming language that resembles Ruby but compiles to
- native code and tries to be much more efficient, at the cost of
- disallowing certain dynamic aspects of Ruby.
- </longdescription>
- <use>
- <flag name="debug">
- Build each module as a separate object file. Speeds build up.
- </flag>
- <flag name="blocking-stdio-hack">
- Keep STDIO file descriptors in blocking mode.
- </flag>
- <flag name="yaml">
- Use the <pkg>dev-libs/libyaml</pkg> library to enable Crystal yaml
- module
- </flag>
- <flag name="xml">
- Use the <pkg>dev-libs/libxml2</pkg> library to enable Crystal xml
- module
- </flag>
- </use>
- <upstream>
- <remote-id type="github">manastech/crystal</remote-id>
- </upstream>
+ <maintainer type="person">
+ <email>xgqt@gentoo.org</email>
+ <name>Maciej Barć</name>
+ </maintainer>
+ <longdescription lang="en">
+ Crystal is a programming language that resembles Ruby but compiles to
+ native code and tries to be much more efficient, at the cost of disallowing
+ certain dynamic aspects of Ruby.
+ </longdescription>
+ <use>
+ <flag name="debug">Build each module as a separate object file. Speeds build up.</flag>
+ </use>
+ <upstream>
+ <bugs-to>https://github.com/crystal-lang/crystal/issues/</bugs-to>
+ <remote-id type="github">crystal-lang/crystal</remote-id>
+ </upstream>
</pkgmetadata>
-