# FC-6,F-7,F-7,F-9,CentOS-5 needs 0 and older RedHat-like distributions need 1 here %define HAVE_XORG_X11 0 Summary: The SPL Programming Language Name: spl Version: 1.0pre5 Release: 1 License: GPL Group: Development/Languages URL: http://www.clifford.at/spl/ Source0: http://www.clifford.at/spl/releases/%{name}-%{version}.tar.gz Source1: http://www.clifford.at/spl/releases/%{name}-example-apps.tar.gz BuildRoot: %{_tmppath}/%{name}-root Requires: vim-common >= 6.3 Requires: coreutils Requires: pcre Requires: readline Requires: expat Requires: curl >= 7.13 BuildRequires: vim-minimal >= 6.3 BuildRequires: pcre-devel BuildRequires: readline-devel BuildRequires: expat-devel BuildRequires: sqlite-devel BuildRequires: mysql-devel BuildRequires: postgresql-devel BuildRequires: libxml2-devel BuildRequires: libxslt-devel BuildRequires: SDL_image-devel BuildRequires: curl-devel >= 7.13 BuildRequires: tetex-latex BuildRequires: kdebindings-devel BuildRequires: fann-devel >= 2 %if %{HAVE_XORG_X11} BuildRequires: xorg-x11-devel %else BuildRequires: mesa-libGL-devel %endif %description The Name "SPL" is a left-recursive acronym and expands to "SPL Programming Language". The name was meant to be pronounced as an acronym, but I've already heard people pronouncing it "spell", which is also fine with me. The SPL VM is a pure bytecode interpeter. Support for JIT compilation or generating machine code for the host CPU is not planned and doesn't make much sense for various technical reasons. The entire SPL toolchain (compiler, assembler, virtual machine, etc) is pretty small (about 100k on x86 architectures). The additional memory usage by the applications is rather small too. %files %defattr(-,root,root) %dir %{_libdir} %dir %{_libdir}/spl_modules %{_libdir}/spl_modules/mod_array.so %{_libdir}/spl_modules/mod_bits.so %{_libdir}/spl_modules/mod_cgi.so %{_libdir}/spl_modules/mod_curl.so %{_libdir}/spl_modules/mod_crypt.so %{_libdir}/spl_modules/mod_encode_int.splb %{_libdir}/spl_modules/mod_encode_js.splb %{_libdir}/spl_modules/mod_encode_regex.splb %{_libdir}/spl_modules/mod_encode_url.splb %{_libdir}/spl_modules/mod_encode_xml.so %{_libdir}/spl_modules/mod_environ.so %{_libdir}/spl_modules/mod_file.so %{_libdir}/spl_modules/mod_format_ini.splb %{_libdir}/spl_modules/mod_format_xml.so %{_libdir}/spl_modules/mod_multimouse.so %{_libdir}/spl_modules/mod_prime.so %{_libdir}/spl_modules/mod_sql.so %{_libdir}/spl_modules/mod_sql_utils.splb %{_libdir}/spl_modules/mod_system.so %{_libdir}/spl_modules/mod_task.so %{_libdir}/spl_modules/mod_termio.so %{_libdir}/spl_modules/mod_time.so %{_libdir}/spl_modules/mod_socket.so %{_libdir}/spl_modules/moddir.list %dir %{_bindir} %{_bindir}/spl-config %{_bindir}/splrun %dir %{_datadir}/vim %{_datadir}/vim/vimfiles/syntax/spl.vim %{_datadir}/vim/vimfiles/syntax/spltpl.vim %package devel Summary: SPL Development Packages Group: Development/Languages Requires: spl %description devel Development of SPL itself. %files devel %dir %{_libdir} %dir %{_libdir}/spl_modules %{_libdir}/libspl.a %dir %{_includedir} %{_includedir}/spl.h %dir %{_datadir} %dir %{_datadir}/aclocal %{_datadir}/aclocal/spl.m4 %package doc Summary: SPL Documentation and Manual Group: Development/Languages Requires: spl Obsoletes: spl-manual %description doc The SPL Manual and extensive documentation %files doc %doc COPYING INSTALL README README.API README.LANG spldoc manual.ps manual.pdf manual.dvi %package examples Summary: Example applications for SPL Group: Development/Languages Requires: spl %description examples The package contains example applications for SPL. %files examples %doc spl-example-apps/splcms %doc spl-example-apps/pong %doc spl-example-apps/splpoker %doc spl-example-apps/cfpmanager %doc spl-example-apps/splticket %package sqlite Summary: sqlite Adapter Group: Development/Languages Requires: spl Requires: sqlite %description sqlite The Adapter for sqlite. %files sqlite %dir %{_libdir} %dir %{_libdir}/spl_modules %{_libdir}/spl_modules/mod_sql_sqlite.so %package mysql Summary: MySQL Adapter Group: Development/Languages Requires: spl Requires: mysql-devel %description mysql The Adapter for MySQL. %files mysql %dir %{_libdir} %dir %{_libdir}/spl_modules %{_libdir}/spl_modules/mod_sql_mysql.so %package postgresql Summary: PostgreSQL Adapter Group: Development/Languages Requires: spl Requires: postgresql %description postgresql The Adapter for PostgreSQL. %files postgresql %dir %{_libdir} %dir %{_libdir}/spl_modules %{_libdir}/spl_modules/mod_sql_postgres.so %package kdebindings Summary: QT Adapter Group: Development/Languages Requires: spl Requires: kdebindings %description kdebindings The Adapter for QT. %files kdebindings %dir %{_libdir} %dir %{_libdir}/spl_modules %{_libdir}/spl_modules/mod_kde.so %{_libdir}/spl_modules/mod_qt.so %package sdl Summary: SDL Adapter Group: Development/Languages Requires: spl Requires: SDL_image, %description sdl The Adapter for SDL. %files sdl %dir %{_libdir} %dir %{_libdir}/spl_modules %{_libdir}/spl_modules/mod_sdl.so %package libxml2 Summary: libxml2 Adapter Group: Development/Languages Requires: spl Requires: libxml2 Requires: libxslt %description libxml2 The Adapter for libxml2 and libxslt. %files libxml2 %dir %{_libdir} %dir %{_libdir}/spl_modules %{_libdir}/spl_modules/mod_xml.so %package uuidgen Summary: uuidgen Adapter Group: Development/Languages Requires: spl Requires: e2fsprogs %description uuidgen The Adapter for uuidgen. %files uuidgen %dir %{_libdir} %dir %{_libdir}/spl_modules %{_libdir}/spl_modules/mod_uuidgen.so %package fann Summary: Adapter for the "Fast Artificial Neural Network library" Group: Development/Languages Requires: spl Requires: fann %description fann The Adapter for the "Fast Artificial Neural Network library" %files fann %dir %{_libdir} %dir %{_libdir}/spl_modules %{_libdir}/spl_modules/mod_fann.so %package gl Summary: Adapter for the "Mesa 3-D graphics library" Group: Development/Languages Requires: spl %if %{HAVE_XORG_X11} Requires: xorg-x11 %else Requires: mesa-libGL %endif %description gl The Adapter for the "Mesa 3-D graphics library" %files gl %dir %{_libdir} %dir %{_libdir}/spl_modules %{_libdir}/spl_modules/mod_gl.so %package gyro Summary: Adapter for the "Gyroscope Sensor Board" Group: Development/Languages Requires: spl %description gyro This Module provides an interface to the Gyroscope Sensor Board. The board has 16 channels and detects 3D translation and rotation. Compass sensors are also on board. %files gyro %dir %{_libdir} %dir %{_libdir}/spl_modules %{_libdir}/spl_modules/mod_gyro.so %package webspl Summary: The SPL-based web application framework Group: Development/Languages Requires: spl Requires: spl-libxml2 %description webspl WebSPL is a pretty powerful framework for doing web application development with SPL. The interesting thing about WebSPL is that, other than usual CGI scripts, a WebSPL script is not executed once for each HTTP request. Instead there is one SPL process for each session and such a WebSPL script can pause it's execution at any time, wait for the user to do something and continue execution as soon as the user did something. In addition to that there is a module package called "WSF" (WebSPL Forms) which adds an additional abstraction layer between the application logic and the representation as web page. With this SPL modules, web application development becomes as easy as normal application development with well-designed widget sets. %files webspl %doc README.WEBSPL %dir %{_libdir} %dir %{_libdir}/spl_modules %{_libdir}/spl_modules/mod_w2t.splb %{_libdir}/spl_modules/mod_webdebug.so %{_libdir}/spl_modules/mod_wsf_action.splb %{_libdir}/spl_modules/mod_wsf_debug.splb %{_libdir}/spl_modules/mod_wsf_dialog.splb %{_libdir}/spl_modules/mod_wsf_display.splb %{_libdir}/spl_modules/mod_wsf_edit.splb %{_libdir}/spl_modules/mod_wsf_edit_sql.splb %{_libdir}/spl_modules/mod_wsf_graph.splb %{_libdir}/spl_modules/mod_wsf_menu.splb %{_libdir}/spl_modules/mod_wsf.splb %{_libdir}/spl_modules/mod_wsf_switch.splb %dir %{_libdir}/cgi-bin %{_libdir}/cgi-bin/webspl.cgi %dir %{_bindir} %{_bindir}/webspld ############################################################################### # # Actually do something to create the above packages # %prep %setup -q %setup -a 1 -q %build run_silent() { local -r TMP="/tmp/spl-build-rpms-$$" rm -f "$TMP" echo "$@" "$@" > "$TMP" 2>&1 || cat "$TMP" rm -f "$TMP" } cat >>config.cache <manual.ps %install rm -rf %{buildroot} mkdir -p %{buildroot} %{makeinstall} install readonly _datadir="$(rpm --eval '%{_datadir}')" mkdir -p "%{buildroot}/$_datadir/vim/vimfiles/syntax" cp syntax-spl.vim "%{buildroot}/$_datadir/vim/vimfiles/syntax/spl.vim" cp syntax-spltpl.vim "%{buildroot}/$_datadir/vim/vimfiles/syntax/spltpl.vim" # install the examples somewhere #cp -r "spl-example-apps" "%{buildroot}$(rpm --eval '%{_docdir}')/spl_modules" %post readonly TMP="/etc/vimrc.$$-$$" fgrep -v filetype=spl <"/etc/vimrc" >"$TMP" echo 'au BufRead,BufNewFile *.spl,*.webspl set filetype=spl' >>"$TMP" echo 'au BufRead,BufNewFile *.spltpl set filetype=spltpl' >>"$TMP" mv -f "$TMP" "/etc/vimrc" %preun readonly TMP="/etc/vimrc.$$-$$" fgrep -v filetype=spl <"/etc/vimrc" >"$TMP" mv -f "$TMP" "/etc/vimrc" %clean rm -rf %{buildroot} %changelog * Sun Aug 17 2008 Bernd Petrovitsch - updated to spl-1.0pre5 - generate a config.cache to avoid automatic detection - put %files sections for the packages to their %package and %description sections - added mod_gyro - placement the vim syntax files into a version-independent directory - added build dependency on libxslt-devel (for mod_xml), mesa-libGL-devel (for mod_gl on newer distributions) and vim-minimal - added run-time dependency on libxslt * Fri Sep 21 2007 Bernd Petrovitsch - upgraded to spl-1.0pre4 - added mod_socket * Fri Aug 10 2006 Bernd Petrovitsch - upgraded to spl-1.0rc2 - fixed a typo * Tue Aug 8 2006 Clifford Wolf - update to spl-1.0rc1 release * Mon Jul 31 2006 Bernd Petrovitsch - upgraded to spl-0.9i * Mon May 1 2006 Bernd Petrovitsch - upgraded to spl-0.9f - added an spl-fann and an spl-examples package - disabled debug build - also showconfig - fixed latex and pdflatex build forever - we are doing now 3 runs also for the pathological cases - reduced cluttering output for latex and pdflatex if no error * Mon Mar 13 2006 Clifford Wolf - update to spl-0.9f release * Fri Feb 24 2006 Clifford Wolf - update to spl-0.9e release * Thu Feb 2 2006 Bernd Petrovitsch - initial spec file