From 03d9b0c2bb0d460eddb5fbfbaf61943aef028c97 Mon Sep 17 00:00:00 2001 From: Alexandre Duret-Lutz Date: Fri, 10 Aug 2018 14:07:35 +0200 Subject: [PATCH] get rid of the Python-based CGI translator We now have a separate project for its replacement at https://gitlab.lrde.epita.fr/spot/spot-web-app/ * python/ajax/: Remove directory. * python/Makefile.am, configure.ac, README: Adjust. * NEWS: Mention this. --- NEWS | 6 + README | 1 - configure.ac | 1 - python/Makefile.am | 2 - python/ajax/Makefile.am | 40 -- python/ajax/README | 90 --- python/ajax/css/loading.gif | Bin 4176 -> 0 bytes python/ajax/css/tipTip.css | 114 --- python/ajax/css/trans.css | 129 ---- python/ajax/js/jquery.ba-bbq.min.js | 18 - python/ajax/js/jquery.ba-dotimeout.min.js | 9 - python/ajax/js/jquery.tipTip.minified.js | 21 - python/ajax/protocol.txt | 124 ---- python/ajax/spotcgi.in | 827 ---------------------- python/ajax/trans.html | 754 -------------------- 15 files changed, 6 insertions(+), 2130 deletions(-) delete mode 100644 python/ajax/Makefile.am delete mode 100644 python/ajax/README delete mode 100644 python/ajax/css/loading.gif delete mode 100644 python/ajax/css/tipTip.css delete mode 100644 python/ajax/css/trans.css delete mode 100644 python/ajax/js/jquery.ba-bbq.min.js delete mode 100644 python/ajax/js/jquery.ba-dotimeout.min.js delete mode 100644 python/ajax/js/jquery.tipTip.minified.js delete mode 100644 python/ajax/protocol.txt delete mode 100755 python/ajax/spotcgi.in delete mode 100644 python/ajax/trans.html diff --git a/NEWS b/NEWS index 5f0660bff..b663881a7 100644 --- a/NEWS +++ b/NEWS @@ -15,6 +15,12 @@ New in spot 2.6.1.dev (not yet released) Zielonka algorithm. Calude's quasi-polynomial time algorithm has been dropped as it was not used. + Build: + + - We no longer distribute the Python-based CGI script + javascript + code for the online translator. Its replacement has its own + repository: https://gitlab.lrde.epita.fr/spot/spot-web-app/ + Library: - The LTL parser learned syntactic sugar for nested ranges of X diff --git a/README b/README index c130e2f98..1c23ac463 100644 --- a/README +++ b/README @@ -228,7 +228,6 @@ bench/ Benchmarks for ... stutter/ ... stutter-invariance checking algorithms, wdba/ ... WDBA minimization (for obligation properties). python/ Python bindings for Spot and BuDDy - ajax/ LTL-to-TGBA translator with web interface, using Javascript. Third party software -------------------- diff --git a/configure.ac b/configure.ac index 5d69ccc8e..2edae69bc 100644 --- a/configure.ac +++ b/configure.ac @@ -244,7 +244,6 @@ AC_CONFIG_FILES([ spot/twaalgos/Makefile spot/twa/Makefile spot/gen/Makefile - python/ajax/Makefile python/Makefile tests/core/defs tests/ltsmin/defs:tests/core/defs.in diff --git a/python/Makefile.am b/python/Makefile.am index a9ba4400b..57d3e75ea 100644 --- a/python/Makefile.am +++ b/python/Makefile.am @@ -20,8 +20,6 @@ ## You should have received a copy of the GNU General Public License ## along with this program. If not, see . -SUBDIRS = . ajax - AUTOMAKE_OPTIONS = subdir-objects AM_CPPFLAGS = -I$(PYTHONINC) -I$(top_builddir) -I$(top_srcdir) \ diff --git a/python/ajax/Makefile.am b/python/ajax/Makefile.am deleted file mode 100644 index af8852b94..000000000 --- a/python/ajax/Makefile.am +++ /dev/null @@ -1,40 +0,0 @@ -## -*- coding: utf-8 -*- -## Copyright (C) 2011, 2012, 2015, 2016, 2018 Laboratoire de Recherche et -## Développement de l'Epita (LRDE). -## -## This file is part of Spot, a model checking library. -## -## Spot is free software; you can redistribute it and/or modify it -## under the terms of the GNU General Public License as published by -## the Free Software Foundation; either version 3 of the License, or -## (at your option) any later version. -## -## Spot is distributed in the hope that it will be useful, but WITHOUT -## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public -## License for more details. -## -## You should have received a copy of the GNU General Public License -## along with this program. If not, see . - -nodist_noinst_SCRIPTS = spotcgi.py -EXTRA_DIST = $(srcdir)/spotcgi.in README trans.html css/trans.css \ - css/tipTip.css js/jquery.tipTip.minified.js js/jquery.ba-bbq.min.js \ - js/jquery.ba-dotimeout.min.js css/loading.gif protocol.txt - -CLEANFILES = $(nodist_noinst_SCRIPTS) - -spotcgi.py: $(srcdir)/spotcgi.in Makefile - sed -e 's|[@]PYTHON[@]|@PYTHON@|g' \ - -e 's|[@]pythondir[@]|@pythondir@|g' \ - -e 's|[@]srcdir[@]|@srcdir@|g' \ - -e 's|[@]top_builddir[@]|@top_builddir@|g' \ - -e 's|[@]PACKAGE_VERSION[@]|@PACKAGE_VERSION@|g' \ - -e 's|[@]DOT[@]|@DOT@|g' \ - -e 's|[@]LTL3BA[@]|@LTL3BA@|g' \ - <$(srcdir)/spotcgi.in >spotcgi.tmp - chmod +x spotcgi.tmp - mv -f spotcgi.tmp $@ - -clean-local: - rm -rf spotimg diff --git a/python/ajax/README b/python/ajax/README deleted file mode 100644 index 4a9055673..000000000 --- a/python/ajax/README +++ /dev/null @@ -1,90 +0,0 @@ -ltl2tgba.html is a dynamic web page that translates user-supplied LTL -formulae to Transition-based Generalized Büchi Automata. The actual -translation work is performed by a CGI script in Python: spotcgi.py. - -There are two ways to use the script: using a web server such as -Apache, or standalone. - -In both cases you should ensure that the command `dot', from the -GraphViz package, is in the PATH. configure should have picked it up. - -The "ltl3ba" tab will only be enabled if ltl3ba is available (as -checked by ./configure) and supports options -v/-T/-T3 (checked by the -CGI script). These option were introduced into ltl3ba version 1.1.0. - - -Standalone usage -================ - -Simply run spotcgi.py from this directory. This will create a directory -called spotimg/ in the current directory (this will hold the generated -pictures) and start an HTTP server on port 8000. Point your browser -to http://localhost:8000/trans.html and you should be OK. - -After you have killed the server process (e.g. with Control-C), -you may want to erase the spotimg/ directory. - - -Installing on a real web server -=============================== - -1) Install Spot first (run `make install' from the top-level). - - The CGI script uses the Python bindings and assume they - have been installed. Near the top of the script, you - should see a call to sys.path.insert(), with the expected - location of the Python bindings for spot. This path was - configured from ./configure's arguments and you should not - have to fiddle with it. I'm mentionning it just in case. - -2) Copy spotcgi.py to some place were CGI execution is allowed. - Depending on your HTTP server's configuration, you may have - to rename the script as spotcgi.cgi or something else, so - that the server accepts to run it. - - Apache users in trouble should look at the following options - before digging the Apache manual deeper. These can go - in a .htaccess file (if allowed). - - # Treat *.py files as CGI scripts - AddHandler cgi-script .py - - # Allow CGI execution in some directory. - Options +ExecCGI - -3) In the directory where you have installed spotcgi.py, - create a subdirectory called spotimg/. This is where - the script will cache its images and other temporary - files. (If you want to change this name, see the imgdir - variable at the top of the script.) - - This directory must be writable by the Unix user that - will run the script when the HTTP server processes the - request. - - spotcgi.py purges old files at most once every hour. - -4) Copy the directories css/, js/, and logos/ along with trans.html - to their destination. You may have to adjust a few paths at the - top of the html page. - - -Debugging -========= - -When working on the script, remember that the contents of spotimg/ is -used as a cache and that a request will not be processed again if its -result is in the cache. So if you don't understand why the change you -have performed has no effect, make sure you are performing some fresh -query, or wipe the contents of the cache (i.e., erase all files inside -spotimg/ but not the spotimg/ directory itself). - - -The hash string displayed in the web browser is the query string sent -to the CGI script, so you can simulate the call from the command line -with a command like this: - - % export QUERY_STRING="f=a+U+b&r=br&r=lf&r=si&r=eu&o=a&ff=o&mf=d&af=t&ra=t&rf=p&t=fm&fm=od&fm=sm&la=sp&ta=lc&as=ps&ec=Cou99&eo=" - % export SCRIPT_NAME=spotcgi.py - % export SERVER_SOFTWARE=SimpleHTTP - % ./spotcgi.py diff --git a/python/ajax/css/loading.gif b/python/ajax/css/loading.gif deleted file mode 100644 index e15844396f9b8c4d915f5cf595e2a22014a24426..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4176 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 lIpA!=7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$('