dev-lang/teyjus: Bump to 2.1. Fix build with ocaml 4.03 and above.
authorMark Wright <gienah@gentoo.org>
Wed, 11 Jan 2017 12:28:57 +0000 (23:28 +1100)
committerMark Wright <gienah@gentoo.org>
Wed, 11 Jan 2017 12:28:57 +0000 (23:28 +1100)
Thanks to Toralf Forster for reporting.

Gentoo-bug: 591368

Package-Manager: portage-2.3.3

dev-lang/teyjus/Manifest
dev-lang/teyjus/teyjus-2.0.2.ebuild
dev-lang/teyjus/teyjus-2.1.ebuild [new file with mode: 0644]

index 722e1eb2bf6cd450a89b962c8bf62350bc738b5f..3567b49c3691777932b6d4c82965ac73e506cf30 100644 (file)
@@ -1 +1,2 @@
+DIST teyjus-2.1.tar.gz 723763 SHA256 c9883a6e5a351dcc0ec5139824953434539e6b730476e171567b878ddee5230d SHA512 1f71d19502f4f4da00f635d2c3d4e141403182d65f039e0d43660edf84c5fcd900e7225ac92dc5bdbe0c8379c4e2ce6e27879af504fcfafddf2695a0c8a13379 WHIRLPOOL c02fba5be6325300c01b9c06878917c62f71aafe822bd26693c2bd8da56f5314b41c65aaf4d045c525434f9453a8bb831bc25629acec96474f2c59988fe6fad3
 DIST teyjus-source-2.0-b2.tar.gz 465815 SHA256 f589fb460d7095a6e674b7a6413772c41b98654c38602c3e8c477a976da99052 SHA512 071a25cd5341f7562f07dcaae1f87c35eb394ddab94a5160826c7fb2d9a51efea909b41947205503ebcc58df04388baf9eaf9f5a614186701940da29db1c1b29 WHIRLPOOL 0dfd8128d194ef5d6cf4fdf6d75c4c654ab834af6c090f595b2defd91645cc0fca4ae4a8483c7a77b4a7e8dae5b3c31069bf85d240538db2f88df69d6f7f42d0
index bb03ce157141357291955e691b29d01fcf797b0d..65c04a8c019e9e5b6490c1531633cb0064530323 100644 (file)
@@ -1,10 +1,10 @@
-# Copyright 1999-2012 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
-EAPI="5"
+EAPI="6"
 
-inherit base elisp-common multilib versionator
+inherit elisp-common multilib versionator
 
 MY_PN="${PN}-source"
 MY_P=$(version_format_string '${MY_PN}-$1.$2-b$3')
@@ -18,8 +18,8 @@ KEYWORDS="~amd64 ~x86"
 LICENSE="GPL-3"
 IUSE="emacs examples +ocamlopt"
 
-RDEPEND=">=sys-devel/binutils-2.17
-       >=sys-devel/gcc-2.95.3
+RDEPEND=">=sys-devel/binutils-2.17:*
+       >=sys-devel/gcc-2.95.3:*
        >=dev-lang/ocaml-3.10[ocamlopt?]
        emacs? ( virtual/emacs )"
 DEPEND="${RDEPEND}
@@ -27,12 +27,11 @@ DEPEND="${RDEPEND}
 
 S=${WORKDIR}/${PN}
 
-PATCHES=("${FILESDIR}/${PN}-2.0.2-flags.patch")
-
 SITEFILE=50${PN}-gentoo.el
 
 src_prepare() {
-       base_src_prepare
+       default
+       eapply "${FILESDIR}/${PN}-2.0.2-flags.patch"
        local cflags=""
        for i in ${CFLAGS}
        do
@@ -48,6 +47,17 @@ src_prepare() {
                -e "s@OCAMLFLAGS +=@OCAMLFLAGS +=${cflags}${lflags}@" \
                -i "${S}/source/OMakefile" \
                || die "Could not set flags in ${S}/teyjus/source/OMakefile"
+       if has_version ">=dev-lang/ocaml-4.03.0"; then
+               # bug 591368
+               pushd "${S}/source" || die
+               sed -e 's@$(FNT)/ccode_stubs@$(FNT)/ccode_stubs_c@' \
+                       -e 's@\(FNT_ML_TO_C\[\] =\)@\1\n    $(FNT)/ccode_stubs@' \
+                       -i OMakefile || die
+               cd "${S}/source/front" || die
+               mv ccode_stubs.mli ccode_stubs.ml || die
+               mv ccode_stubs.c ccode_stubs_c.c || die
+               popd || die
+       fi
 }
 
 src_compile() {
diff --git a/dev-lang/teyjus/teyjus-2.1.ebuild b/dev-lang/teyjus/teyjus-2.1.ebuild
new file mode 100644 (file)
index 0000000..3a06863
--- /dev/null
@@ -0,0 +1,111 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="6"
+
+inherit elisp-common multilib versionator
+
+DESCRIPTION="Higher-order logic programming language Lambda Prolog"
+HOMEPAGE="http://teyjus.cs.umn.edu/"
+SRC_URI="https://github.com/teyjus/teyjus/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~x86"
+LICENSE="GPL-3"
+IUSE="emacs examples +ocamlopt"
+
+RDEPEND=">=sys-devel/binutils-2.17:*
+       >=sys-devel/gcc-2.95.3:*
+       >=dev-lang/ocaml-3.10[ocamlopt?]
+       emacs? ( virtual/emacs )"
+DEPEND="${RDEPEND}
+       dev-util/omake"
+
+SITEFILE=50${PN}-gentoo.el
+
+src_prepare() {
+       default
+       local cflags=""
+       for i in ${CFLAGS}
+       do
+               cflags="${cflags} -ccopt ${i}"
+       done
+       local lflags=""
+       for i in ${LDFLAGS}
+       do
+               lflags="${lflags} -cclib ${i}"
+       done
+       sed     -e "s@\(OCAMLFLAGS= -w -A\)@\1 ${cflags}${lflags}@" \
+               -e "s@\(CFLAGS +=\) -g@\1 ${CFLAGS}\nLDFLAGS += ${LDFLAGS}@" \
+               -i "${S}/source/OMakefile" \
+               || die "Could not set flags in ${S}/teyjus/source/OMakefile"
+       if has_version ">=dev-lang/ocaml-4.03.0"; then
+               # bug 591368
+               pushd "${S}/source" || die
+               sed -e 's@$(FNT)/ccode_stubs@$(FNT)/ccode_stubs_c@' \
+                       -e 's@\(FNT_ML_TO_C\[\] =\)@\1\n    $(FNT)/ccode_stubs@' \
+                       -i OMakefile || die
+               cd "${S}/source/front" || die
+               mv ccode_stubs.mli ccode_stubs.ml || die
+               mv ccode_stubs.c ccode_stubs_c.c || die
+               popd || die
+       fi
+}
+
+src_compile() {
+       addpredict "/usr/$(get_libdir)/omake/Pervasives.omc"
+       addpredict "/usr/$(get_libdir)/omake/build/C.omc"
+       addpredict "/usr/$(get_libdir)/omake/build/Common.omc"
+       addpredict "/usr/$(get_libdir)/omake/configure/Configure.omc"
+       addpredict "/usr/$(get_libdir)/omake/build/OCaml.omc"
+       omake --verbose all || die "omake all failed"
+       if use emacs ; then
+               pushd "${S}/emacs" || die "Could change directory to emacs"
+               elisp-compile *.el || die "emacs elisp compile failed"
+               popd
+       fi
+}
+
+ins_example_dir() {
+       dodir "/usr/share/${PN}/examples/${1}"
+       insinto "/usr/share/${PN}/examples/${1}"
+       cd "${S}/examples/${1}"
+       doins *
+}
+
+src_install() {
+       newbin source/tjcc.opt tjcc
+       newbin source/tjdepend.opt tjdepend
+       newbin source/tjdis.opt tjdis
+       newbin source/tjlink.opt tjlink
+       newbin source/tjsim.opt tjsim
+       dodoc README.md QUICKSTART
+       if use emacs ; then
+               elisp-install ${PN} emacs/*.{el,elc}
+               cp "${FILESDIR}"/${SITEFILE} "${S}"
+               sed -e 's@/usr/bin/tjcc@'${EPREFIX}/usr/bin/tjcc'@' -i ${SITEFILE} \
+                       || die "Could not set tjcc executable path in emacs site file"
+               elisp-site-file-install ${SITEFILE}
+       fi
+       if use examples; then
+               ins_example_dir "handbook/logic"
+               ins_example_dir "handbook/progs"
+               ins_example_dir "misc"
+               ins_example_dir "ndprover"
+               ins_example_dir "pcf"
+       fi
+}
+
+pkg_postinst() {
+       if use emacs; then
+               elisp-site-regen
+               ewarn "For teyjus emacs, add this line to ~/.emacs"
+               ewarn ""
+               ewarn "(require 'teyjus)"
+       fi
+}
+
+pkg_postrm() {
+       use emacs && elisp-site-regen
+}