dev-lang/crystal: bump up to 0.29.0
authorSergei Trofimovich <slyfox@gentoo.org>
Sat, 8 Jun 2019 11:57:53 +0000 (12:57 +0100)
committerSergei Trofimovich <slyfox@gentoo.org>
Sat, 8 Jun 2019 11:57:53 +0000 (12:57 +0100)
Package-Manager: Portage-2.3.67, Repoman-2.3.14
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
dev-lang/crystal/Manifest
dev-lang/crystal/crystal-0.29.0.ebuild [new file with mode: 0644]

index 47eb964216926d413b56c262cd502964c971d800..3e1160b53340deeb349cd729e46d7a9c5fcb0b38 100644 (file)
@@ -7,3 +7,6 @@ DIST crystal-0.27.2.tar.gz 2061466 BLAKE2B 49f4d2c33412589e7ea131460508a8716d102
 DIST crystal-0.28.0-1-linux-i686.tar.gz 31888259 BLAKE2B a2f72a5e05abbcc7f4a6003f22ad059e07de59660f114d8e5d0fa225ac51d2465174c41cc81dd7c561f52832ffd9203a0a1cf5606e8633e36fcecd3899463775 SHA512 bc0fcb199abacc068e907f0e8fc8feeecfda4e5312201b4a6af96e76730df3130f6d9f40141c3182c9e99c0600455124cb33ef60194fb4e47ea3826d7090e755
 DIST crystal-0.28.0-1-linux-x86_64.tar.gz 30088308 BLAKE2B e12b0cc9aa5ef354e0f06423a8d3be54ba42eee358cdfd7c6632d5ea08c2ed7e441eb4e162224cf8780bd3ba33e02916f1a7d061a48577d8a4d0eed4578723b3 SHA512 13b7b889ee6d17b905375883baa883fc4d631f6a22c2399aafba1020142e96072670f46584264445b531ece87c6f4b3e89367c62b0c2587c119dd6242ec06762
 DIST crystal-0.28.0.tar.gz 2108702 BLAKE2B 75b743c65ae2063ecbcff7514a3fac53ecc0e25866dd91a34368bdb1bf2a72e9b8e9b6c8325f1b0589693efa78c93bd246f1e764569307519375f7d7429bea55 SHA512 ea0d0938fa90db1b8e395e1daf777c36be5366046c1df7764409e14cf490b4e5f502c62a567e1cf1375684fac58afb71ccc39a5d5974eb29ef9bb5be59fa0a10
+DIST crystal-0.29.0-1-linux-i686.tar.gz 31865927 BLAKE2B 1150dd12f4102501bf72a000d6f01e57445966c88de9c9dd2d39e13001067ae97ac3b039db05cb3c02265c3f14fc02b02bc6bd46ad2d4e98da617f668f89176c SHA512 3e3a22b04a5ebd40dfc944c5ba210f230c636634480c836c788db58b4b402b4ce939655a4989ef0ad554fab67d8ecf330d5fd9bd384aad70f78e2dcb16cb2ba6
+DIST crystal-0.29.0-1-linux-x86_64.tar.gz 30069384 BLAKE2B cba30b6337654aba0bd081198f30987891a26fe010ecf82413b9be0d965e14a4d7fade0a9fc496985555fd9b24baa5c1bcc3ae6f4a8b6e9fc82fdc1f1b096614 SHA512 81f1652a1a7b9de20644bebc6d4a31c6d2d4681d29662d733d9a5238f5087fcfc1c3f437fb4b81b0a89d7f29492296c4e65706e2aedcae6e34b1902675d80b9b
+DIST crystal-0.29.0.tar.gz 2122890 BLAKE2B 17ef4c3c07d326b73bb015a1cd9207c716630877da323e79a59dccb026699e48ec5559039dcad391e775f64324ca9eddeb22f053acb12f5019976f94013d039f SHA512 690183878c1d4f8bea2be419238aae78b40fe06fbfef6b23a31162eab8edec726bd5f87b3e39dbb76d5c3b82dde5d0fcb79ed34474bf62d1ea17c0901ff63337
diff --git a/dev-lang/crystal/crystal-0.29.0.ebuild b/dev-lang/crystal/crystal-0.29.0.ebuild
new file mode 100644 (file)
index 0000000..b40924b
--- /dev/null
@@ -0,0 +1,123 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit bash-completion-r1 llvm multiprocessing toolchain-funcs
+
+BV=0.29.0-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
+
+# Not compatible with llvm-7 or llvm-8
+LLVM_MAX_SLOT=6
+
+# dev-libs/boehm-gc[static-libs] dependency problem,  check the issue: https://github.com/manastech/crystal/issues/1382
+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.27.1-verbose.patch
+       "${FILESDIR}"/${PN}-0.26.1-gentoo-tests-sandbox.patch
+       "${FILESDIR}"/${PN}-0.26.1-gentoo-tests-network-sandbox-3.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
+       "${FILESDIR}"/${PN}-0.27.0-tcp-server-test.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
+
+       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}
+}