diff options
author | Mark Wright <gienah@gentoo.org> | 2022-07-17 21:09:10 +1000 |
---|---|---|
committer | Mark Wright <gienah@gentoo.org> | 2022-07-17 21:09:10 +1000 |
commit | 6c807fa38179efb2bfe09acf1a332c7bdf7fe0c0 (patch) | |
tree | b8ac6e55f1dd01af951183490ad83ad105c8aa6f /dev-lang | |
parent | app-accessibility/speechd-el: bump to 2.11 (diff) | |
download | gentoo-6c807fa38179efb2bfe09acf1a332c7bdf7fe0c0.tar.gz gentoo-6c807fa38179efb2bfe09acf1a332c7bdf7fe0c0.tar.bz2 gentoo-6c807fa38179efb2bfe09acf1a332c7bdf7fe0c0.zip |
dev-lang/teyjus: Unbundle ocaml inc files, require ocaml[ocamlopt]
Fix 749996, unbundle old ocaml include files, and include the ocaml
system include files.
Fix 749996, remove the ocamlopt USE flag, and require
dev-lang/ocaml[ocamlopt].
Fix 726890, edit source/OMakefile to set CFLAGS and LDFLAGS.
Thanks to Toralf Forster and Agostino Sarubbo for reporting.
See also: https://github.com/teyjus/teyjus/pull/126
Closes: https://bugs.gentoo.org/749996
Closes: https://bugs.gentoo.org/811210
Closes: https://bugs.gentoo.org/726890
Package-Manager: Portage-3.0.30, Repoman-3.0.3
Signed-off-by: Mark Wright <gienah@gentoo.org>
Diffstat (limited to 'dev-lang')
4 files changed, 232 insertions, 0 deletions
diff --git a/dev-lang/teyjus/files/teyjus-2.1-p004-Renaming-ccode_stubs-for-compilation.patch b/dev-lang/teyjus/files/teyjus-2.1-p004-Renaming-ccode_stubs-for-compilation.patch new file mode 100644 index 000000000000..739653c9ea93 --- /dev/null +++ b/dev-lang/teyjus/files/teyjus-2.1-p004-Renaming-ccode_stubs-for-compilation.patch @@ -0,0 +1,65 @@ +commit e63f40aa9f1d0ea5e7bac41aae5e479c3616545c (HEAD -> master, origin/master, origin/HEAD) +Author: Giselle Reis <giselle.mnr@gmail.com> +Date: Fri Jul 26 15:57:18 2019 +0300 + + Renaming ccode_stubs for compilation + + Based on the fix at + https://github.com/teyjus/teyjus/issues/112#issuecomment-272336299 + + Fixes #118. + +diff --git a/source/OMakefile b/source/OMakefile +index e6bd37e..87b9bc5 100644 +--- a/source/OMakefile ++++ b/source/OMakefile +@@ -88,7 +88,7 @@ FNT_ML[] = + $(FNT)/parseargs + + FNT_C[] = +- $(FNT)/ccode_stubs ++ $(FNT)/ccode_stubs_c + $(FNT)/front_c + $(FNT)/query_c + $(FNT)/readterm_c +@@ -100,6 +100,7 @@ FNT_ML_TO_C[] = + $(FNT)/front + $(FNT)/readterm + $(FNT)/simerrors ++ $(FNT)/ccode_stubs + + SIM_C[] = + $(SIM)/abstmachine +diff --git a/source/front/README b/source/front/README +index 10608a3..d4d3f10 100644 +--- a/source/front/README ++++ b/source/front/README +@@ -60,10 +60,10 @@ query_c.h{c} + Defines C functions invoked from query.ml for solving queries or display + answer substitutions. + +-ccode_stubs.mli +-=============== ++ccode_stubs.ml ++============== + Interface declaration for the invocation of C functions from OCaml code. + +-ccode_stubs.c +-============== ++ccode_stubs_c.c ++=============== + Interface functions for the invocation of C functions from OCaml code. +diff --git a/source/front/makefile b/source/front/makefile +index c607ba1..92dfd2c 100644 +--- a/source/front/makefile ++++ b/source/front/makefile +@@ -1,6 +1,6 @@ + tjsim: +- ocamake parseargs.ml parseargs.mli simulatorfront.ml module.ml module.mli query.ml query.mli front.ml front.mli readterm.ml readterm.mli ccode_stubs.mli simerrors.mli simerrors.ml ../compiler/*.ml ../compiler/*.mli ../loader/*.ml ../loader/*.mli -lp ccode_stubs.o front_c.o query_c.o ../tables/*.o ../system/*.o ../simulator/*.o ../simulator/builtins/*.o -opt -o tjsim ++ ocamake parseargs.ml parseargs.mli simulatorfront.ml module.ml module.mli query.ml query.mli front.ml front.mli readterm.ml readterm.mli ccode_stubs.ml simerrors.mli simerrors.ml ../compiler/*.ml ../compiler/*.mli ../loader/*.ml ../loader/*.mli -lp ccode_stubs_c.o front_c.o query_c.o ../tables/*.o ../system/*.o ../simulator/*.o ../simulator/builtins/*.o -opt -o tjsim + + + clean: +- rm *.cmx ../compiler/*.cmx ../disassembler/*.cmx ../myloader/*.cmx +\ No newline at end of file ++ rm *.cmx ../compiler/*.cmx ../disassembler/*.cmx ../myloader/*.cmx diff --git a/dev-lang/teyjus/files/teyjus-2.1-p005-Unbundle-ocaml-header-files.patch b/dev-lang/teyjus/files/teyjus-2.1-p005-Unbundle-ocaml-header-files.patch new file mode 100644 index 000000000000..11351755e465 --- /dev/null +++ b/dev-lang/teyjus/files/teyjus-2.1-p005-Unbundle-ocaml-header-files.patch @@ -0,0 +1,44 @@ +commit 7371d8e75ce11c825a79614c44d70316759b16c3 +Author: Mark Wright <gienah@gentoo.org> +Date: Sun Jul 17 20:08:37 2022 +1000 + + include ocaml system header files instead of old bundled ocaml header files + +diff --git a/source/front/ccode_stubs_c.c b/source/front/ccode_stubs_c.c +index f1a62a7..f5f9042 100644 +--- a/source/front/ccode_stubs_c.c ++++ b/source/front/ccode_stubs_c.c +@@ -21,10 +21,10 @@ + #include "../simulator/builtins/readterm.h" + #include "front_c.h" + #include "query_c.h" +-#include "caml/mlvalues.h" +-#include "caml/memory.h" +-#include "caml/alloc.h" +-#include "caml/custom.h" ++#include <caml/mlvalues.h> ++#include <caml/memory.h> ++#include <caml/alloc.h> ++#include <caml/custom.h> + + /***************************************************************************/ + /* front */ +diff --git a/source/front/linker_c.c b/source/front/linker_c.c +index d9cb1bc..0c173cd 100644 +--- a/source/front/linker_c.c ++++ b/source/front/linker_c.c +@@ -20,10 +20,10 @@ + + #include "../linker/module.h" + #include "../linker/linker_message.h" +-#include "caml/mlvalues.h" +-#include "caml/memory.h" +-#include "caml/alloc.h" +-#include "caml/custom.h" ++#include <caml/mlvalues.h> ++#include <caml/memory.h> ++#include <caml/alloc.h> ++#include <caml/custom.h> + + value FRONT_link(value mod_str, value verb) + { diff --git a/dev-lang/teyjus/files/teyjus-2.1-p006-Version.patch b/dev-lang/teyjus/files/teyjus-2.1-p006-Version.patch new file mode 100644 index 000000000000..d2ba3758315b --- /dev/null +++ b/dev-lang/teyjus/files/teyjus-2.1-p006-Version.patch @@ -0,0 +1,13 @@ +# https://github.com/teyjus/teyjus/issues/117 Version number not updated in release 2.1 + +--- teyjus-2.1-orig/source/front/parseargs.ml 2015-07-06 08:07:17.000000000 +1000 ++++ teyjus-2.1/source/front/parseargs.ml 2022-07-17 13:47:19.844819942 +1000 +@@ -24,7 +24,7 @@ + in + List.flatten (List.map seperate dualSpecList) + +-let version = "2.0-b2" ++let version = "2.1" + + let printVersion () = + print_endline ("Teyjus version " ^ version) ; diff --git a/dev-lang/teyjus/teyjus-2.1-r2.ebuild b/dev-lang/teyjus/teyjus-2.1-r2.ebuild new file mode 100644 index 000000000000..d19b8ef93092 --- /dev/null +++ b/dev-lang/teyjus/teyjus-2.1-r2.ebuild @@ -0,0 +1,110 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit elisp-common + +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" + +RDEPEND=">=sys-devel/binutils-2.17:* + >=sys-devel/gcc-2.95.3:* + >=dev-lang/ocaml-3.10[ocamlopt] + emacs? ( >=app-editors/emacs-23.1:* )" +DEPEND="${RDEPEND} + app-text/dos2unix + dev-util/omake" + +SITEFILE=50${PN}-gentoo.el + +PATCHES=( "${FILESDIR}/${P}-p001-Fixes-arity-for-pervasive-modulo-operation.patch" + "${FILESDIR}/${P}-p002-Add-string-literals-from-proper-character-groups.patch" + "${FILESDIR}/${P}-p003-Removing-deprecated-function-String.set.patch" + "${FILESDIR}/${P}-p004-Renaming-ccode_stubs-for-compilation.patch" + "${FILESDIR}/${P}-p005-Unbundle-ocaml-header-files.patch" + "${FILESDIR}/${P}-p006-Version.patch" ) + +src_prepare() { + rm -rf source/front/caml \ + || die "Could not remove bundled ocaml header files" + find . -type f -exec dos2unix {} \; \ + || die "Could not convert files from DOS to Unix format" + mv source/front/ccode_stubs.c source/front/ccode_stubs_c.c \ + || die "Could not rename source/front/ccode_stubs.c to source/front/ccode_stubs_c.c" + mv source/front/ccode_stubs.mli source/front/ccode_stubs.ml \ + || die "Could not rename source/front/ccode_stubs.mli to source/front/ccode_stubs.ml" + 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}/source/OMakefile" +} + +src_compile() { + export HOME="${T}" + omake --verbose --force-dotomake 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() { + 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 +} |