dev-lang/crystal: bump up to 0.27.1
authorSergei Trofimovich <slyfox@gentoo.org>
Wed, 30 Jan 2019 22:49:03 +0000 (22:49 +0000)
committerSergei Trofimovich <slyfox@gentoo.org>
Thu, 31 Jan 2019 07:20:25 +0000 (07:20 +0000)
Package-Manager: Portage-2.3.59, Repoman-2.3.12
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
dev-lang/crystal/Manifest
dev-lang/crystal/crystal-0.27.1.ebuild [new file with mode: 0644]
dev-lang/crystal/files/crystal-0.27.1-verbose.patch [new file with mode: 0644]

index 7c76aef7d300df1132411e1896cbbdaa53d016f1..db092cd4722b77a178fb4d0f4383450d2b72281f 100644 (file)
@@ -13,3 +13,4 @@ DIST crystal-0.26.1.tar.gz 1994987 BLAKE2B 2292fbdf119e181313000e035802581ae2060
 DIST crystal-0.27.0-1-linux-i686.tar.gz 39751745 BLAKE2B 22adf22a2e423f4b0fddda1d8d9bbfb68a4b51f18da9705b6515a500610781251561577dd25c6509aa2b6860b1b329bc7e3d213743330b91206b50239e053a89 SHA512 4fb819a67f3e2c965b454af53cf0bad9606a6a13f85f1bfbe59057291ea293099892344cd31127f5b35e3b25fc6e3f591bda508587fc32f5ef1433aeff0ca706
 DIST crystal-0.27.0-1-linux-x86_64.tar.gz 37933811 BLAKE2B 76bb57b556f14ae8ce219ef490e58ff03571f36fcb4343672ff10ddd6e275e9c5c26a028d63f0592c1a081f2f5dc8241106d8a99add1a7936f52b9e3a57f96e6 SHA512 c403c4080830b928621da07f409ba5433109ee0fc81589f87e79d2e04fcbce8facfa205b7e8c78ab9bb772b4444c938b3bcf691596ee0b2d54c3f3d97150e008
 DIST crystal-0.27.0.tar.gz 2025777 BLAKE2B 0a5cc02a516586b033c65efd8e28a13ac0ed67fddbd1a1f0a88a484dff825bec8f6b03b16938c750e99e0c7c1c12a3fd3fc87e61d038b25b7707e0e7f2913fae SHA512 02b0e1d43d699d1dd91f4b979c8ab8909264e5f1fcc344f6110bebb808c0ee764a943368cce9d33a258adb9631ed4f445e1f771d5a9e50fcd337fc8b319616cf
+DIST crystal-0.27.1.tar.gz 2061304 BLAKE2B 1776525925a25f72cf83f1a6076ab8b2bf1602c9d8c6a1fff8869c200faa35de008655f046ff60fb3733c8c3577f3544184080ee39acedfde006b9fd63d6c844 SHA512 8c6dd9489aff5d4b3e119ef6f531a3248c20f3da97c44dd3febe551adc67f5d87aa4f7679cbcc0dcde0374f3f5a3c523da6dff32a7ac95a9db1406102e980822
diff --git a/dev-lang/crystal/crystal-0.27.1.ebuild b/dev-lang/crystal/crystal-0.27.1.ebuild
new file mode 100644 (file)
index 0000000..d1888df
--- /dev/null
@@ -0,0 +1,121 @@
+# 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.27.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"
+
+# Not compatible with llvm-7
+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}
+}
diff --git a/dev-lang/crystal/files/crystal-0.27.1-verbose.patch b/dev-lang/crystal/files/crystal-0.27.1-verbose.patch
new file mode 100644 (file)
index 0000000..33c3c5d
--- /dev/null
@@ -0,0 +1,7 @@
+--- a/Makefile
++++ b/Makefile
+@@ -29,3 +29,3 @@ SOURCES := $(shell find src -name '*.cr')
+ SPEC_SOURCES := $(shell find spec -name '*.cr')
+-override FLAGS += -D preview_overflow -D compiler_rt $(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 += -D preview_overflow -D compiler_rt $(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) )