1 |
gienah 13/08/31 09:24:13 |
2 |
|
3 |
Modified: ChangeLog |
4 |
Added: isabelle-2013.ebuild |
5 |
Log: |
6 |
Bump isabelle to 2013, fixes bug 468344 |
7 |
|
8 |
(Portage version: 2.2.1/cvs/Linux x86_64, signed Manifest commit with key 618E971F) |
9 |
|
10 |
Revision Changes Path |
11 |
1.9 sci-mathematics/isabelle/ChangeLog |
12 |
|
13 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sci-mathematics/isabelle/ChangeLog?rev=1.9&view=markup |
14 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sci-mathematics/isabelle/ChangeLog?rev=1.9&content-type=text/plain |
15 |
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sci-mathematics/isabelle/ChangeLog?r1=1.8&r2=1.9 |
16 |
|
17 |
Index: ChangeLog |
18 |
=================================================================== |
19 |
RCS file: /var/cvsroot/gentoo-x86/sci-mathematics/isabelle/ChangeLog,v |
20 |
retrieving revision 1.8 |
21 |
retrieving revision 1.9 |
22 |
diff -u -r1.8 -r1.9 |
23 |
--- ChangeLog 3 May 2013 14:53:49 -0000 1.8 |
24 |
+++ ChangeLog 31 Aug 2013 09:24:13 -0000 1.9 |
25 |
@@ -1,6 +1,14 @@ |
26 |
# ChangeLog for sci-mathematics/isabelle |
27 |
# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2 |
28 |
-# $Header: /var/cvsroot/gentoo-x86/sci-mathematics/isabelle/ChangeLog,v 1.8 2013/05/03 14:53:49 jer Exp $ |
29 |
+# $Header: /var/cvsroot/gentoo-x86/sci-mathematics/isabelle/ChangeLog,v 1.9 2013/08/31 09:24:13 gienah Exp $ |
30 |
+ |
31 |
+*isabelle-2013 (31 Aug 2013) |
32 |
+ |
33 |
+ 31 Aug 2013; Mark Wright <gienah@g.o> |
34 |
+ +files/isabelle-2013-HOL-Predicate_Compile_Examples.patch, |
35 |
+ +files/isabelle-2013-classpath.patch, |
36 |
+ +files/isabelle-2013-gentoo-settings.patch, +isabelle-2013.ebuild: |
37 |
+ Bump isabelle to 2013, fixes bug 468344 |
38 |
|
39 |
03 May 2013; Jeroen Roovers <jer@g.o> metadata.xml: |
40 |
Fix XML. |
41 |
|
42 |
|
43 |
|
44 |
1.1 sci-mathematics/isabelle/isabelle-2013.ebuild |
45 |
|
46 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sci-mathematics/isabelle/isabelle-2013.ebuild?rev=1.1&view=markup |
47 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sci-mathematics/isabelle/isabelle-2013.ebuild?rev=1.1&content-type=text/plain |
48 |
|
49 |
Index: isabelle-2013.ebuild |
50 |
=================================================================== |
51 |
# Copyright 1999-2013 Gentoo Foundation |
52 |
# Distributed under the terms of the GNU General Public License v2 |
53 |
# $Header: /var/cvsroot/gentoo-x86/sci-mathematics/isabelle/isabelle-2013.ebuild,v 1.1 2013/08/31 09:24:13 gienah Exp $ |
54 |
|
55 |
EAPI="5" |
56 |
|
57 |
inherit eutils java-pkg-2 multilib versionator |
58 |
|
59 |
MY_PN="Isabelle" |
60 |
MY_PV=$(replace_all_version_separators '-') |
61 |
MY_P="${MY_PN}${MY_PV}" |
62 |
|
63 |
JEDIT_PV="20130104" |
64 |
JEDIT_PN="jedit_build" |
65 |
JEDIT_P="${JEDIT_PN}-${JEDIT_PV}" |
66 |
JEDIT_IC_PN="${JEDIT_PN}-isabelle-component" |
67 |
JEDIT_IC_P="${JEDIT_IC_PN}-${JEDIT_PV}" |
68 |
|
69 |
JFREECHART_PV="1.0.14" |
70 |
JFREECHART_PN="jfreechart" |
71 |
JFREECHART_P="${JFREECHART_PN}-${JFREECHART_PV}" |
72 |
JFREECHART_IC_PN="${JFREECHART_PN}-isabelle-component" |
73 |
JFREECHART_IC_P="${JFREECHART_IC_PN}-${JFREECHART_PV}" |
74 |
|
75 |
DESCRIPTION="Isabelle is a generic proof assistant" |
76 |
HOMEPAGE="http://www.cl.cam.ac.uk/research/hvg/isabelle/index.html" |
77 |
SRC_URI="http://www.cl.cam.ac.uk/research/hvg/isabelle/dist/${MY_P}.tar.gz |
78 |
http://isabelle.in.tum.de/components/${JEDIT_P}.tar.gz -> ${JEDIT_IC_P}.tar.gz |
79 |
http://isabelle.in.tum.de/components/${JFREECHART_P}.tar.gz -> ${JFREECHART_IC_P}.tar.gz" |
80 |
|
81 |
LICENSE="BSD" |
82 |
SLOT="0/${PV}" |
83 |
KEYWORDS="~amd64 ~x86" |
84 |
IUSE="doc graphbrowsing ledit readline proofgeneral" |
85 |
|
86 |
#upstream says |
87 |
#bash 2.x/3.x, Poly/ML 5.x, Perl 5.x, |
88 |
#for document preparation: complete LaTeX |
89 |
DEPEND=">=app-shells/bash-3.0 |
90 |
dev-java/ant-core |
91 |
>=dev-java/jcommon-1.0.18 |
92 |
>=dev-java/jfreechart-1.0.14 |
93 |
>=dev-java/itext-2.1.5 |
94 |
dev-java/xml-xmlbeans:1 |
95 |
>=dev-lang/ghc-7.6.3 |
96 |
>=dev-lang/polyml-5.5.0:=[-portable] |
97 |
>=dev-lang/perl-5.8.8-r2 |
98 |
dev-lang/swi-prolog |
99 |
virtual/jdk:1.7 |
100 |
doc? ( |
101 |
virtual/latex-base |
102 |
dev-tex/rail |
103 |
) |
104 |
>=dev-lang/scala-2.10.2 |
105 |
ledit? ( |
106 |
app-misc/ledit |
107 |
) |
108 |
readline? ( |
109 |
app-misc/rlwrap |
110 |
)" |
111 |
|
112 |
RDEPEND="dev-perl/libwww-perl |
113 |
sci-mathematics/sha1-polyml |
114 |
>=virtual/jre-1.7 |
115 |
proofgeneral? ( |
116 |
>=app-emacs/proofgeneral-4.1 |
117 |
) |
118 |
${DEPEND}" |
119 |
|
120 |
S="${WORKDIR}"/Isabelle${MY_PV} |
121 |
JEDIT_S="${WORKDIR}/${JEDIT_P}" |
122 |
JFREECHART_S="${WORKDIR}/${JFREECHART_P}" |
123 |
TARGETDIR="/usr/share/Isabelle"${MY_PV} |
124 |
LIBDIR="/usr/"$(get_libdir)"/Isabelle"${MY_PV} |
125 |
|
126 |
LIBRARY_PKGS="scala,itext,jcommon-1.0,jfreechart-1.0,xml-xmlbeans-1" |
127 |
|
128 |
src_unpack() { |
129 |
unpack "${MY_P}.tar.gz" |
130 |
pushd "${S}/contrib" || die |
131 |
unpack ${JEDIT_IC_P}.tar.gz |
132 |
unpack ${JFREECHART_IC_P}.tar.gz |
133 |
} |
134 |
|
135 |
pkg_setup() { |
136 |
java-pkg-2_pkg_setup |
137 |
} |
138 |
|
139 |
src_prepare() { |
140 |
java-pkg-2_src_prepare |
141 |
java-pkg_getjars ${LIBRARY_PKGS} |
142 |
epatch "${FILESDIR}/${PN}-2013-gentoo-settings.patch" |
143 |
epatch "${FILESDIR}/${PN}-2013-classpath.patch" |
144 |
polymlver=$(poly -v | cut -d' ' -f2) |
145 |
polymlarch=$(poly -v | cut -d' ' -f9 | cut -d'-' -f1) |
146 |
sed -e "s@5.5.0@${polymlver}@g" \ |
147 |
-i "${S}/etc/settings" \ |
148 |
|| die "Could not configure polyml version in etc/settings" |
149 |
sed -e "s@ML_HOME=\"/@ML_HOME=\"${ROOT}@" \ |
150 |
-i "${S}/etc/settings" \ |
151 |
|| die "Could not configure polyml ML_HOME in etc/settings" |
152 |
sed -e "s@x86_64@${polymlarch}@g" \ |
153 |
-i "${S}/etc/settings" \ |
154 |
|| die "Could not configure polyml arch in etc/settings" |
155 |
sed -e "s@PROOFGENERAL_HOME=\"/@PROOFGENERAL_HOME=\"${ROOT}@" \ |
156 |
-i "${S}/etc/settings" \ |
157 |
|| die "Could not configure PROOFGENERAL_HOME in etc/settings" |
158 |
sed -e "s@/usr/lib64/Isabelle${MY_PV}@${LIBDIR}@g" \ |
159 |
-i "${S}/etc/settings" \ |
160 |
|| die "Could not configure Isabelle lib directory in etc/settings" |
161 |
epatch "${FILESDIR}/${PN}-2012-graphbrowser.patch" |
162 |
epatch "${FILESDIR}/${PN}-2012-libsha1.patch" |
163 |
# this example fails to compile with swi-prolog 6.5.2, so patch it so that |
164 |
# Isabelle will build, then reverse the patch so that the user can see the |
165 |
# original code. |
166 |
epatch "${FILESDIR}/${PN}-2013-HOL-Predicate_Compile_Examples.patch" |
167 |
cat <<- EOF >> "${S}/etc/settings" |
168 |
|
169 |
ISABELLE_GHC="${ROOT}usr/bin/ghc" |
170 |
ISABELLE_OCAML="${ROOT}usr/bin/ocaml" |
171 |
ISABELLE_SWIPL="${ROOT}usr/bin/swipl" |
172 |
ISABELLE_JDK_HOME="\$(java-config --jdk-home)" |
173 |
SCALA_HOME="${ROOT}usr/share/scala" |
174 |
SHA1_HOME="/usr/$(get_libdir)/sha1-polyml" |
175 |
EOF |
176 |
cat <<- EOF >> "${S}/etc/components" |
177 |
#bundled components |
178 |
contrib/${JEDIT_P} |
179 |
contrib/${JFREECHART_P} |
180 |
EOF |
181 |
if use ledit && !use readline; then |
182 |
epatch "${FILESDIR}/${PN}-2012-reverse-line-editor-order.patch" |
183 |
fi |
184 |
rm -f "${S}/contrib/jfreechart-1.0.14/lib/iText-2.1.5.jar" \ |
185 |
"${S}/contrib/jfreechart-1.0.14/lib/jfreechart-1.0.14.jar" \ |
186 |
"${S}/contrib/jfreechart-1.0.14/lib/jcommon-1.0.18.jar" \ |
187 |
"${S}/lib/classes/ext/scala-actors.jar" \ |
188 |
"${S}/lib/classes/ext/scala-compiler.jar" \ |
189 |
"${S}/lib/classes/ext/scala-library.jar" \ |
190 |
"${S}/lib/classes/ext/scala-reflect.jar" \ |
191 |
"${S}/lib/classes/ext/scala-swing.jar" \ |
192 |
|| die "Could not rm bundled jar files supplied by Gentoo" |
193 |
} |
194 |
|
195 |
src_compile() { |
196 |
einfo "Building Isabelle. This may take some time." |
197 |
./bin/isabelle build -a -b -s -v || die "isabelle build failed" |
198 |
epatch --reverse "${FILESDIR}/${PN}-2013-HOL-Predicate_Compile_Examples.patch" |
199 |
if use graphbrowsing |
200 |
then |
201 |
rm -f "${S}/lib/browser/GraphBrowser.jar" \ |
202 |
|| die "failed cleaning graph browser directory" |
203 |
pushd "${S}/lib/browser" \ |
204 |
|| die "Could not change directory to lib/browser" |
205 |
./build || die "failed building the graph browser" |
206 |
popd |
207 |
fi |
208 |
./bin/isabelle jedit -b -f || die "pide build failed" |
209 |
} |
210 |
|
211 |
src_install() { |
212 |
exeinto ${TARGETDIR}/bin |
213 |
doexe bin/isabelle-process bin/isabelle |
214 |
|
215 |
insinto ${TARGETDIR} |
216 |
doins -r src |
217 |
doins -r lib |
218 |
doins -r contrib |
219 |
doins ROOTS |
220 |
|
221 |
docompress -x /usr/share/doc/${PF} |
222 |
dodoc -r doc |
223 |
if use doc; then |
224 |
dosym /usr/share/doc/${PF}/doc "${TARGETDIR}/doc" |
225 |
# The build of sci-mathematics/haskabelle with use doc requires |
226 |
# sci-mathematics/isabelle[doc?]. The haskabelle doc build requires |
227 |
# the src/Doc directory stuff in the isabelle package. |
228 |
doins -r src/Doc |
229 |
for i in "./src/Doc/Classes/document/build" \ |
230 |
"./src/Doc/Codegen/document/build" \ |
231 |
"./src/Doc/Functions/document/build" \ |
232 |
"./src/Doc/HOL/document/build" \ |
233 |
"./src/Doc/Intro/document/build" \ |
234 |
"./src/Doc/IsarImplementation/document/build" \ |
235 |
"./src/Doc/IsarRef/document/build" \ |
236 |
"./src/Doc/IsarRef/document/showsymbols" \ |
237 |
"./src/Doc/LaTeXsugar/document/build" \ |
238 |
"./src/Doc/Locales/document/build" \ |
239 |
"./src/Doc/Logics/document/build" \ |
240 |
"./src/Doc/Main/document/build" \ |
241 |
"./src/Doc/Nitpick/document/build" \ |
242 |
"./src/Doc/ProgProve/document/build" \ |
243 |
"./src/Doc/Ref/document/build" \ |
244 |
"./src/Doc/Sledgehammer/document/build" \ |
245 |
"./src/Doc/System/document/build" \ |
246 |
"./src/Doc/Tutorial/document/build" \ |
247 |
"./src/Doc/Tutorial/document/isa-index" \ |
248 |
"./src/Doc/ZF/document/build" \ |
249 |
"./src/Doc/fixbookmarks" \ |
250 |
"./src/Doc/prepare_document" \ |
251 |
"./src/Doc/sedindex" |
252 |
do |
253 |
exeinto $(dirname "${TARGETDIR}/${i}") |
254 |
doexe ${i} |
255 |
done |
256 |
fi |
257 |
|
258 |
for i in "./Isabelle " \ |
259 |
"./bin/isabelle" \ |
260 |
"./bin/isabelle-process" \ |
261 |
"./lib/Tools/browser" \ |
262 |
"./lib/Tools/build" \ |
263 |
"./lib/Tools/build_dialog" \ |
264 |
"./lib/Tools/components" \ |
265 |
"./lib/Tools/dimacs2hol" \ |
266 |
"./lib/Tools/display" \ |
267 |
"./lib/Tools/doc" \ |
268 |
"./lib/Tools/document" \ |
269 |
"./lib/Tools/emacs" \ |
270 |
"./lib/Tools/env" \ |
271 |
"./lib/Tools/findlogics" \ |
272 |
"./lib/Tools/getenv" \ |
273 |
"./lib/Tools/install" \ |
274 |
"./lib/Tools/java" \ |
275 |
"./lib/Tools/keywords" \ |
276 |
"./lib/Tools/latex" \ |
277 |
"./lib/Tools/logo" \ |
278 |
"./lib/Tools/make" \ |
279 |
"./lib/Tools/mkdir" \ |
280 |
"./lib/Tools/mkproject" \ |
281 |
"./lib/Tools/mkroot" \ |
282 |
"./lib/Tools/options" \ |
283 |
"./lib/Tools/print" \ |
284 |
"./lib/Tools/scala" \ |
285 |
"./lib/Tools/scalac" \ |
286 |
"./lib/Tools/tty" \ |
287 |
"./lib/Tools/unsymbolize" \ |
288 |
"./lib/Tools/usedir" \ |
289 |
"./lib/Tools/version" \ |
290 |
"./lib/Tools/yxml" \ |
291 |
"./lib/browser/build" \ |
292 |
"./lib/scripts/feeder" \ |
293 |
"./lib/scripts/getsettings" \ |
294 |
"./lib/scripts/keywords" \ |
295 |
"./lib/scripts/polyml-version" \ |
296 |
"./lib/scripts/process" \ |
297 |
"./lib/scripts/run-polyml" \ |
298 |
"./lib/scripts/run-smlnj" \ |
299 |
"./lib/scripts/unsymbolize" \ |
300 |
"./lib/scripts/yxml" \ |
301 |
"./src/HOL/IMP/export.sh" \ |
302 |
"./src/HOL/Library/Sum_of_Squares/neos_csdp_client" \ |
303 |
"./src/HOL/Mirabelle/lib/Tools/mirabelle" \ |
304 |
"./src/HOL/Mutabelle/lib/Tools/mutabelle" \ |
305 |
"./src/HOL/SPARK/Examples/README" \ |
306 |
"./src/HOL/TPTP/TPTP_Parser/make_mlyacclib" \ |
307 |
"./src/HOL/TPTP/TPTP_Parser/make_tptp_parser" \ |
308 |
"./src/HOL/TPTP/lib/Tools/tptp_graph" \ |
309 |
"./src/HOL/TPTP/lib/Tools/tptp_isabelle" \ |
310 |
"./src/HOL/TPTP/lib/Tools/tptp_isabelle_hot" \ |
311 |
"./src/HOL/TPTP/lib/Tools/tptp_nitpick" \ |
312 |
"./src/HOL/TPTP/lib/Tools/tptp_refute" \ |
313 |
"./src/HOL/TPTP/lib/Tools/tptp_sledgehammer" \ |
314 |
"./src/HOL/Tools/ATP/scripts/dummy_atp" \ |
315 |
"./src/HOL/Tools/ATP/scripts/remote_atp" \ |
316 |
"./src/HOL/Tools/Predicate_Compile/lib/scripts/swipl_version" \ |
317 |
"./src/HOL/Tools/SMT/lib/scripts/remote_smt" \ |
318 |
"./src/HOL/Tools/Sledgehammer/MaSh/src/compareStats.py" \ |
319 |
"./src/HOL/Tools/Sledgehammer/MaSh/src/mash.py" \ |
320 |
"./src/Pure/build" \ |
321 |
"./src/Pure/build-jars" \ |
322 |
"./src/Tools/Code/lib/Tools/codegen" \ |
323 |
"./src/Tools/Graphview/lib/Tools/graphview" \ |
324 |
"./src/Tools/Metis/fix_metis_license" \ |
325 |
"./src/Tools/Metis/make_metis" \ |
326 |
"./src/Tools/Metis/scripts/mlpp" \ |
327 |
"./src/Tools/WWW_Find/lib/Tools/wwwfind" \ |
328 |
"./src/Tools/jEdit/lib/Tools/jedit" |
329 |
do |
330 |
exeinto $(dirname "${TARGETDIR}/${i}") |
331 |
doexe ${i} |
332 |
done |
333 |
|
334 |
insinto /etc/isabelle |
335 |
doins -r etc/* |
336 |
dosym /etc/isabelle "${TARGETDIR}/etc" |
337 |
|
338 |
dosym "${LIBDIR}/heaps" "${TARGETDIR}/heaps" |
339 |
insinto ${LIBDIR} |
340 |
doins -r heaps |
341 |
|
342 |
bin/isabelle install -d ${TARGETDIR} "${ED}usr/bin" \ |
343 |
|| die "isabelle install failed" |
344 |
newicon lib/icons/isabelle.xpm "${PN}.xpm" |
345 |
dodoc ANNOUNCE CONTRIBUTORS COPYRIGHT NEWS README |
346 |
|
347 |
java-pkg_regjar \ |
348 |
"${ED}${TARGETDIR}/contrib/jedit_build-20130104/contrib/Highlight.jar" \ |
349 |
"${ED}${TARGETDIR}/contrib/jedit_build-20130104/contrib/ErrorList.jar" \ |
350 |
"${ED}${TARGETDIR}/contrib/jedit_build-20130104/contrib/Console.jar" \ |
351 |
"${ED}${TARGETDIR}/contrib/jedit_build-20130104/contrib/cobra.jar" \ |
352 |
"${ED}${TARGETDIR}/contrib/jedit_build-20130104/contrib/js.jar" \ |
353 |
"${ED}${TARGETDIR}/contrib/jedit_build-20130104/contrib/jedit-5.0.0-patched/jedit.jar" \ |
354 |
"${ED}${TARGETDIR}/contrib/jedit_build-20130104/contrib/jedit-5.0.0-patched/jars/QuickNotepad.jar" \ |
355 |
"${ED}${TARGETDIR}/contrib/jfreechart-1.0.14/jfreechart-1.0.14-demo.jar" \ |
356 |
"${ED}${TARGETDIR}/lib/classes/ext/Graphview.jar" \ |
357 |
"${ED}${TARGETDIR}/lib/classes/ext/Pure.jar" \ |
358 |
"${ED}${TARGETDIR}/src/Tools/jEdit/dist/jars/Console.jar" \ |
359 |
"${ED}${TARGETDIR}/src/Tools/jEdit/dist/jars/ErrorList.jar" \ |
360 |
"${ED}${TARGETDIR}/src/Tools/jEdit/dist/jars/Highlight.jar" \ |
361 |
"${ED}${TARGETDIR}/src/Tools/jEdit/dist/jars/Isabelle-jEdit.jar" \ |
362 |
"${ED}${TARGETDIR}/src/Tools/jEdit/dist/jars/QuickNotepad.jar" \ |
363 |
"${ED}${TARGETDIR}/src/Tools/jEdit/dist/jars/SideKick.jar" \ |
364 |
"${ED}${TARGETDIR}/src/Tools/jEdit/dist/jars/cobra.jar" \ |
365 |
"${ED}${TARGETDIR}/src/Tools/jEdit/dist/jars/js.jar" \ |
366 |
"${ED}${TARGETDIR}/src/Tools/jEdit/dist/jedit.jar" |
367 |
} |
368 |
|
369 |
pkg_postinst() { |
370 |
# If any of the directories in /etc/isabelle/components do not exist, then |
371 |
# even isabelle getenv ISABELLE_HOME fails. Hence it is necessary to |
372 |
# to delete any non-existing directories. If an old Isabelle version was |
373 |
# installed with component ebuilds like sci-mathematics/e, then the |
374 |
# Isabelle version is upgraded, then the contrib directories will not |
375 |
# exist initially, it is necessary to delete them from /etc/isabelle/components. |
376 |
# Then these components are rebuilt (creating these directories) using the |
377 |
# EAPI=5 subslot depends. |
378 |
for i in $(egrep '^[^#].*$' "${ROOT}etc/isabelle/components") |
379 |
do |
380 |
if [ ! -d /usr/share/${MY_P}/${i} ]; then |
381 |
sed -e "\@${i}@d" -i "${ROOT}etc/isabelle/components" |
382 |
fi |
383 |
done |
384 |
if use ledit && use readline; then |
385 |
elog "Both readline and ledit use flags specified. The default setting" |
386 |
elog "if both are installed is to use readline (rlwrap), this can be" |
387 |
elog "modfied by editing the ISABELLE_LINE_EDITOR setting in" |
388 |
elog "${ROOT}/etc/isabelle/settings" |
389 |
fi |
390 |
elog "Please ensure you have a pdf viewer installed, for example:" |
391 |
elog "As root: emerge app-text/zathura-pdf-poppler" |
392 |
elog "Please configure your preferred pdf viewer, something like:" |
393 |
elog "As normal user: xdg-mime default zathura.desktop application/pdf" |
394 |
elog "Or alternatively by editing the PDF_VIEWER variable in the system" |
395 |
elog "settings file ${ROOT}etc/isabelle/settings and/or the user" |
396 |
elog "settings file \$HOME/.isabelle/${MY_P}/etc/settings" |
397 |
elog "To improve sledgehammer performance, consider installing:" |
398 |
elog "USE=isabelle emerge sci-mathematics/e sci-mathematics/spass" |
399 |
elog "For nitpick it is necessary to install:" |
400 |
elog "emerge sci-mathematics/kodkodi" |
401 |
} |