diff options
author | Mark Wright <gienah@gentoo.org> | 2019-08-22 20:26:38 +1000 |
---|---|---|
committer | Mark Wright <gienah@gentoo.org> | 2019-08-22 20:26:38 +1000 |
commit | bc6150aed4394093a938536ef2e8ee9c80395749 (patch) | |
tree | 121a1c7562a657097df097a8a24457ae09d03b4b /dev-lang/teyjus | |
parent | xfce-base/xfce4-settings: Drop old (diff) | |
download | gentoo-bc6150aed4394093a938536ef2e8ee9c80395749.tar.gz gentoo-bc6150aed4394093a938536ef2e8ee9c80395749.tar.bz2 gentoo-bc6150aed4394093a938536ef2e8ee9c80395749.zip |
dev-lang/teyjus: Fix #677904 sandbox issue
Closes: https://bugs.gentoo.org/677904
Package-Manager: Portage-2.3.71, Repoman-2.3.17
Signed-off-by: Mark Wright <gienah@gentoo.org>
Diffstat (limited to 'dev-lang/teyjus')
-rw-r--r-- | dev-lang/teyjus/Manifest | 1 | ||||
-rw-r--r-- | dev-lang/teyjus/files/teyjus-2.1-p001-Fixes-arity-for-pervasive-modulo-operation.patch | 28 | ||||
-rw-r--r-- | dev-lang/teyjus/files/teyjus-2.1-p002-Add-string-literals-from-proper-character-groups.patch | 45 | ||||
-rw-r--r-- | dev-lang/teyjus/files/teyjus-2.1-p003-Removing-deprecated-function-String.set.patch | 51 | ||||
-rw-r--r-- | dev-lang/teyjus/teyjus-2.1-r1.ebuild (renamed from dev-lang/teyjus/teyjus-2.0.2.ebuild) | 35 |
5 files changed, 139 insertions, 21 deletions
diff --git a/dev-lang/teyjus/Manifest b/dev-lang/teyjus/Manifest index 17912760ca17..4f5eeec88c8f 100644 --- a/dev-lang/teyjus/Manifest +++ b/dev-lang/teyjus/Manifest @@ -1,2 +1 @@ DIST teyjus-2.1.tar.gz 723763 BLAKE2B ab6a98c2d2291620b586ab0b419a214b0f7c0b27aad444324e5a417c1a0b27382e2d5c622f798ea88cab77853bca3305ec37904c50a7304ace20237afb993b91 SHA512 1f71d19502f4f4da00f635d2c3d4e141403182d65f039e0d43660edf84c5fcd900e7225ac92dc5bdbe0c8379c4e2ce6e27879af504fcfafddf2695a0c8a13379 -DIST teyjus-source-2.0-b2.tar.gz 465815 BLAKE2B 29d8cc2626144a77551a4cb47631a3b55d6edc33b3bf957c2b732144ce9566adb8d472b7ac423168605dcbabab507a4a3cd05b465b02fa0bbc3967a57183fc7c SHA512 071a25cd5341f7562f07dcaae1f87c35eb394ddab94a5160826c7fb2d9a51efea909b41947205503ebcc58df04388baf9eaf9f5a614186701940da29db1c1b29 diff --git a/dev-lang/teyjus/files/teyjus-2.1-p001-Fixes-arity-for-pervasive-modulo-operation.patch b/dev-lang/teyjus/files/teyjus-2.1-p001-Fixes-arity-for-pervasive-modulo-operation.patch new file mode 100644 index 000000000000..0eb366f7c840 --- /dev/null +++ b/dev-lang/teyjus/files/teyjus-2.1-p001-Fixes-arity-for-pervasive-modulo-operation.patch @@ -0,0 +1,28 @@ +commit 4e53477a6685b515363f7123dbeeece4f60f103a +Author: Fabien Renaud <fafounet@gmail.com> +Date: Sun Aug 9 21:15:16 2015 +0200 + + Fixes arity for pervasive modulo operation + +diff --git a/source/tables_gen/pervasives/pervasives.in b/source/tables_gen/pervasives/pervasives.in +index 2a332da..fcac330 100644 +--- a/source/tables_gen/pervasives/pervasives.in ++++ b/source/tables_gen/pervasives/pervasives.in +@@ -91,8 +91,6 @@ + TYPE 7 int -> int + /* unary minus on integers */ + 56 %i~ intuminus 0 0 0 TRUE FALSE MAX PREFIX NOCODE - +- /* modulus */ +- 61 mod mod 0 0 0 TRUE TRUE 160 INFIXL NOCODE + /* integer abs */ + 63 %iabs iabs 0 0 0 TRUE TRUE 0 NOFIXITY NOCODE abs + ;; +@@ -107,6 +105,8 @@ + 59 %i* intmult 0 0 0 TRUE FALSE 160 INFIXL NOCODE * + /* integer division */ + 60 div intdiv 0 0 0 TRUE FALSE 160 INFIXL NOCODE ++ /* modulus */ ++ 61 mod mod 0 0 0 TRUE TRUE 160 INFIXL NOCODE + ;; + + /* int -> int -> o */ diff --git a/dev-lang/teyjus/files/teyjus-2.1-p002-Add-string-literals-from-proper-character-groups.patch b/dev-lang/teyjus/files/teyjus-2.1-p002-Add-string-literals-from-proper-character-groups.patch new file mode 100644 index 000000000000..0d5e4acbb913 --- /dev/null +++ b/dev-lang/teyjus/files/teyjus-2.1-p002-Add-string-literals-from-proper-character-groups.patch @@ -0,0 +1,45 @@ +commit 78ba2ba7e42d06e64a7a10915259a4e419aa4ce4 +Merge: 4e53477 bb9ba6a +Author: fafounet <fafounet@gmail.com> +Date: Sat Feb 27 13:10:59 2016 +0100 + + Merge pull request #104 from robblanco/string-literals + + Add string literals from proper character groups + +commit bb9ba6a57969c9eeab5841923ca822756860163c +Author: Rob Blanco <roberto.blanco@inria.fr> +Date: Wed Feb 24 19:01:06 2016 +0100 + + Add string literals from proper character groups + + Escape prefixes were included in the strings being passed to the + character composition functions, resulting in incorrect characters + being generated (in the case of control characters) or exceptions + being thrown (in octal and hex literals, in combination with the + OCaml-specific prefixes). + +diff --git a/source/compiler/lplex.mll b/source/compiler/lplex.mll +index 6cb28cd..6b2576a 100644 +--- a/source/compiler/lplex.mll ++++ b/source/compiler/lplex.mll +@@ -215,11 +215,14 @@ and stringstate = parse + | "\\\"" {addChar '"'; stringstate lexbuf} + | "\"\"" {addChar '"'; stringstate lexbuf} + +-| "\\^"['@'-'z'] as text {addControl text; stringstate lexbuf} +-| "\\" OCTAL as text {addOctal text; stringstate lexbuf} +-| "\\" (OCTAL OCTAL OCTAL) as text {addOctal text; stringstate lexbuf} +-| "\\x" HEX as text {addHex text; stringstate lexbuf} +-| "\\x" (HEX HEX) as text {addHex text; stringstate lexbuf} ++| "\\^" (['@'-'z'] as text) {addControl (String.make 1 text); ++ stringstate lexbuf} ++| "\\" (OCTAL as text) {addOctal (String.make 1 text); ++ stringstate lexbuf} ++| "\\" (OCTAL OCTAL OCTAL as text) {addOctal text; stringstate lexbuf} ++| "\\x" (HEX as text) {addHex (String.make 1 text); ++ stringstate lexbuf} ++| "\\x" (HEX HEX as text) {addHex text; stringstate lexbuf} + + | "\\x" _ {Errormsg.error lexbuf.lex_curr_p + "Illegal hex character specification"; diff --git a/dev-lang/teyjus/files/teyjus-2.1-p003-Removing-deprecated-function-String.set.patch b/dev-lang/teyjus/files/teyjus-2.1-p003-Removing-deprecated-function-String.set.patch new file mode 100644 index 000000000000..a6724a9093ac --- /dev/null +++ b/dev-lang/teyjus/files/teyjus-2.1-p003-Removing-deprecated-function-String.set.patch @@ -0,0 +1,51 @@ +commit 38772fa56ed7edef88e71df8a69eea4f341968ed +Author: Giselle Reis <giselle.mnr@gmail.com> +Date: Fri Jul 26 15:28:03 2019 +0300 + + Removing deprecated function String.set + + Teyjus will not build with a typecheck error + because String.set takes bytes, not a string. This + commit fixes this issue. + String.set is deprecated, so Bytes.set is used + instead. + +diff --git a/source/compiler/bytecode.ml b/source/compiler/bytecode.ml +index 957c276..655ddab 100644 +--- a/source/compiler/bytecode.ml ++++ b/source/compiler/bytecode.ml +@@ -248,28 +248,28 @@ let readWord () = readNBytes (getInChannel ()) (getWordSize ()) + let readString () = + let input = getInChannel () in + let length = readNBytes input 4 in +- let myString = String.make length ' ' in ++ let myString = Bytes.make length ' ' in + let rec readStringAux index = + if (index = length) then () + else +- (String.set myString index (input_char input); ++ (Bytes.set myString index (input_char input); + readStringAux (index + 1)) + in + readStringAux 0; +- myString ++ Bytes.to_string myString + + let readLongString () = + let input = getInChannel() in + let length = readNBytes input 4 in +- let myString = String.make length ' ' in ++ let myString = Bytes.make length ' ' in + let rec readStringAux index = + if (index = length) then () + else +- (String.set myString index (input_char input); ++ (Bytes.set myString index (input_char input); + readStringAux (index + 1)) + in + readStringAux 0; +- myString ++ Bytes.to_string myString + + (* skip n bytes *) + let skipNBytes numberBytes = diff --git a/dev-lang/teyjus/teyjus-2.0.2.ebuild b/dev-lang/teyjus/teyjus-2.1-r1.ebuild index 41a6ffe77a02..4a0f0073b3ed 100644 --- a/dev-lang/teyjus/teyjus-2.0.2.ebuild +++ b/dev-lang/teyjus/teyjus-2.1-r1.ebuild @@ -1,16 +1,13 @@ -# Copyright 1999-2017 Gentoo Foundation +# Copyright 1999-2019 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI="6" +EAPI="7" -inherit elisp-common multilib versionator - -MY_PN="${PN}-source" -MY_P=$(version_format_string '${MY_PN}-$1.$2-b$3') +inherit elisp-common multilib DESCRIPTION="Higher-order logic programming language Lambda Prolog" HOMEPAGE="http://teyjus.cs.umn.edu/" -SRC_URI="https://teyjus.googlecode.com/files/${MY_P}.tar.gz" +SRC_URI="https://github.com/teyjus/teyjus/archive/v${PV}.tar.gz -> ${P}.tar.gz" SLOT="0/${PV}" KEYWORDS="~amd64 ~x86" @@ -22,15 +19,18 @@ RDEPEND=">=sys-devel/binutils-2.17:* >=dev-lang/ocaml-3.10[ocamlopt?] emacs? ( virtual/emacs )" DEPEND="${RDEPEND} + app-text/dos2unix dev-util/omake" -S=${WORKDIR}/${PN} - 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") + src_prepare() { + find . -type f -exec dos2unix {} \; default - eapply "${FILESDIR}/${PN}-2.0.2-flags.patch" local cflags="" for i in ${CFLAGS} do @@ -41,9 +41,8 @@ src_prepare() { do lflags="${lflags} -cclib ${i}" done - sed -e "s@CFLAGS +=@CFLAGS += ${CFLAGS}@" \ - -e "s@LDFLAGS +=@LDFLAGS += ${LDFLAGS}@" \ - -e "s@OCAMLFLAGS +=@OCAMLFLAGS +=${cflags}${lflags}@" \ + 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 @@ -60,12 +59,8 @@ src_prepare() { } 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" + 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" @@ -86,7 +81,7 @@ src_install() { newbin source/tjdis.opt tjdis newbin source/tjlink.opt tjlink newbin source/tjsim.opt tjsim - dodoc README + dodoc README.md QUICKSTART if use emacs ; then elisp-install ${PN} emacs/*.{el,elc} cp "${FILESDIR}"/${SITEFILE} "${S}" |