Name: jaskell Version: 1.0 Release: %mkrel 2 Summary: Java Haskell pure functional programming language Group: Development/Java License: BSD Url: http://jaskell.codehaus.org/ Source0: http://dist.codehaus.org/jaskell/distributions/jaskell-%{version}.zip Source1: jaskell-1.0.pom Patch0: jaskell-1.0-build_xml.patch BuildRequires: ant BuildRequires: ant-junit BuildRequires: apache-commons-lang BuildRequires: bsf BuildRequires: jfunutil BuildRequires: jpackage-utils BuildRequires: jparsec BuildRequires: junit Requires: apache-commons-lang Requires: jfunutil Requires: jpackage-utils Requires: jparsec BuildArch: noarch %description There are already many cool scripting languages in jvm. Jython, JRuby, Groovy etc. They are all excellent and very practical scripting languages. Why yet another scripting language? Well. Jaskell is designed not to be a better language, but a different one. 1. Most of the current scripting languages are Object-Oriented. Though they more or less have functional tastes (Ruby's sexy closure, for example), the heart of them are still Object-Oriented. One of the most important essenses of functional programming (combinators) is yet to be brought into Java. 2. Jaskell brings with it higher order function, function currying, pattern match and monadic combinator support. 3. Monadic combinator is ideal for designing Domain Specifi Language. It is relatively easy to tailor Jaskell runtime to make domain specific syntax look like simple atomic statements. See Neptune for a real example. 4. Jaskell bridges nicely between functional interpreter and Java. In fact, Jaskell is nothing but a Java library that passes Java objects in and out of the interpreter. %package javadoc Group: Development/Java Summary: Javadoc for %{name} %description javadoc Jaskell, Java Haskell pure functional programming language. This package contains javadoc for %{name}. %package manual Group: Development/Java Summary: Documents for %{name} %description manual Jaskell, Java Haskell pure functional programming language. This package contains documents for %{name}. %prep %setup -q -c mkdir src pushd src unzip -q ../jaskell_src-%{version}.zip for j in $(find . -name "*.jar"); do mv $j $j.no done pushd lib ln -sf $(build-classpath commons-lang) commons-lang-2.1.jar ln -sf $(build-classpath bsf) bsf.jar ln -sf $(build-classpath jfunutil) jfunutil.jar ln -sf $(build-classpath jparsec) jparsec.jar # jparsec_old2.jar.no # jparsec_old.jar.no popd popd %patch0 -p0 mkdir doc pushd doc unzip -q ../jaskell_doc-%{version}.zip popd %build pushd src export CLASSPATH=$(build-classpath junit) ant buildlib test doc popd %install [ %{buildroot} != / ] && rm -rf %{buildroot} mkdir -p %{buildroot}%{_javadir}/ mkdir -p %{buildroot}%{_mavenpomdir} install -pm 644 src/bin/jaskell.jar \ %{buildroot}%{_javadir}/jaskell-%{version}.jar %add_to_maven_depmap jaskell jaskell %{version} JPP jaskell install -m 644 %{SOURCE1} %{buildroot}%{_mavenpomdir}/JPP-jaskell.pom ( cd %{buildroot}%{_javadir}/ for jar in *-%{version}*; do ln -sf ${jar} ${jar/-%{version}/} done ) mkdir -p %{buildroot}%{_javadocdir}/jaskell-%{version} cp -pr src/docs/jaskell/api/* %{buildroot}%{_javadocdir}/jaskell-%{version} ln -sf jaskell-%{version} %{buildroot}%{_javadocdir}/jaskell rm -rf doc/api mkdir -p %{buildroot}%{_docdir}/jaskell cp -pr doc/* %{buildroot}%{_docdir}/jaskell %post %update_maven_depmap %postun %update_maven_depmap %files %{_javadir}/jaskell-%{version}.jar %{_javadir}/jaskell.jar %{_mavenpomdir}/* %{_mavendepmapfragdir}/* %doc src/LICENSE.txt %files javadoc %{_javadocdir}/jaskell-%{version} %{_javadocdir}/jaskell %files manual %{_docdir}/jaskell %changelog * Sat Jan 12 2013 umeabot <umeabot> 1.0-2.mga3 + Revision: 354753 - Mass Rebuild - https://wiki.mageia.org/en/Feature:Mageia3MassRebuild * Wed Jul 27 2011 dmorgan <dmorgan> 1.0-1.mga2 + Revision: 129960 - Clean spec file * Fri Jun 10 2011 gil <gil> 1.0-0.mga2 + Revision: 102827 - imported package jaskell