Name: groovy
Version: 2.0.2
Release: 1%{?dist}
Summary: Dynamic language for the Java Platform
Group: Development/Languages
License: ASL 2.0
URL: http://groovy.codehaus.org/
Source0: http://dist.groovy.codehaus.org/distributions/groovy-src-%{version}.zip
# TODO remove these poms when gradle maven plugin work properly
Source1: http://repo1.maven.org/maven2/org/codehaus/groovy/groovy/2.0.2/groovy-2.0.2.pom
Source2: http://repo1.maven.org/maven2/org/codehaus/groovy/groovy-ant/2.0.2/groovy-ant-2.0.2.pom
Source3: http://repo1.maven.org/maven2/org/codehaus/groovy/groovy-bsf/2.0.2/groovy-bsf-2.0.2.pom
Source4: http://repo1.maven.org/maven2/org/codehaus/groovy/groovy-console/2.0.2/groovy-console-2.0.2.pom
Source5: http://repo1.maven.org/maven2/org/codehaus/groovy/groovy-docgenerator/2.0.2/groovy-docgenerator-2.0.2.pom
Source6: http://repo1.maven.org/maven2/org/codehaus/groovy/groovy-groovydoc/2.0.2/groovy-groovydoc-2.0.2.pom
Source7: http://repo1.maven.org/maven2/org/codehaus/groovy/groovy-groovysh/2.0.2/groovy-groovysh-2.0.2.pom
Source8: http://repo1.maven.org/maven2/org/codehaus/groovy/groovy-jmx/2.0.2/groovy-jmx-2.0.2.pom
Source9: http://repo1.maven.org/maven2/org/codehaus/groovy/groovy-json/2.0.2/groovy-json-2.0.2.pom
Source10: http://repo1.maven.org/maven2/org/codehaus/groovy/groovy-sql/2.0.2/groovy-sql-2.0.2.pom
Source11: http://repo1.maven.org/maven2/org/codehaus/groovy/groovy-templates/2.0.2/groovy-templates-2.0.2.pom
Source12: http://repo1.maven.org/maven2/org/codehaus/groovy/groovy-test/2.0.2/groovy-test-2.0.2.pom
Source13: http://repo1.maven.org/maven2/org/codehaus/groovy/groovy-testng/2.0.2/groovy-testng-2.0.2.pom
Source14: http://repo1.maven.org/maven2/org/codehaus/groovy/groovy-xml/2.0.2/groovy-xml-2.0.2.pom
Source15: http://repo1.maven.org/maven2/org/codehaus/groovy/groovy-servlet/2.0.2/groovy-servlet-2.0.2.pom
Source16: http://repo1.maven.org/maven2/org/codehaus/groovy/groovy-jsr223/2.0.2/groovy-jsr223-2.0.2.pom
Source17: http://repo1.maven.org/maven2/org/codehaus/groovy/groovy-all/2.0.2/groovy-all-2.0.2.pom
Source18: groovy2-script
Source19: groovy2-starter.conf
Source20: groovy2.desktop
# disable test, examples
# use system libraries
# remove gradle maven plugin references
# disable antlr commons-cli asm4 embedded copy
Patch0: groovy-2.0.2-build.patch
BuildRequires: java-devel
BuildRequires: jpackage-utils
BuildRequires: gradle
# BuildRequires: desktop-file-utils
BuildRequires: unzip
BuildRequires: ant
BuildRequires: ant-antlr
BuildRequires: ant-junit
BuildRequires: ant-testutil
BuildRequires: antlr-tool
BuildRequires: apache-commons-cli
BuildRequires: apache-commons-logging
BuildRequires: apache-ivy
BuildRequires: aqute-bnd
BuildRequires: bsf
BuildRequires: checkstyle
BuildRequires: cobertura
BuildRequires: hsqldb
BuildRequires: jansi
# TODO com.googlecode.jarjar:jarjar:1.3
BuildRequires: jarjar
BuildRequires: jline
BuildRequires: junit
BuildRequires: objectweb-asm4
BuildRequires: qdox
# TODO org.testng:testng:6.5.2
BuildRequires: testng
BuildRequires: tomcat-jsp-2.2-api
BuildRequires: tomcat-servlet-3.0-api
BuildRequires: xmlunit
# TODO com.thoughtworks.xstream:xstream:1.4.2
BuildRequires: xstream
Requires: ant
Requires: ant-antlr
Requires: antlr-tool
Requires: apache-commons-cli
Requires: apache-commons-logging
Requires: apache-ivy
Requires: bsf
Requires: jansi
Requires: jline
Requires: junit
Requires: objectweb-asm4
Requires: tomcat-jsp-2.2-api
Requires: tomcat-servlet-3.0-api
Requires: xstream
Requires: java
Requires: jpackage-utils
BuildArch: noarch
%description
Groovy is an agile and dynamic language for the Java Virtual Machine,
built upon Java with features inspired by languages like Python, Ruby and
Smalltalk. It seamlessly integrates with all existing Java objects and
libraries and compiles straight to Java byte-code so you can use it anywhere
you can use Java.
%package javadoc
Group: Documentation
Summary: Javadoc for %{name}
Requires: jpackage-utils
%description javadoc
This package contains javadoc for %{name}.
%prep
%setup -q -n groovy-%{version}
find . -name "*.jar" -delete
find . -name "*.class" -delete
%patch0 -p1
# fix non ASCII chars
for s in subprojects/groovy-test/src/main/java/org/codehaus/groovy/transform/NotYetImplementedASTTransformation.java\
subprojects/groovy-test/src/main/java/groovy/transform/NotYetImplemented.java;do
native2ascii -encoding UTF8 ${s} ${s}
done
# remove unavailable runtime deps
cp -p %{SOURCE1} pom.xml
%pom_remove_dep org.codehaus.gpars:gpars
cp -p %{SOURCE15} pom-servlet.xml
sed -i "s|javax.servlet|org.apache.tomcat|" pom-servlet.xml
sed -i "s|jsp-api|tomcat-jsp-api|" pom-servlet.xml
sed -i "s|2.0|7.0.27|" pom-servlet.xml
sed -i "s|servlet-api|tomcat-servlet-api|" pom-servlet.xml
sed -i "s|2.4|7.0.27|" pom-servlet.xml
cp -p %{SOURCE17} pom-all.xml
%pom_remove_dep org.codehaus.gpars:gpars pom-all.xml
sed -i "s|javax.servlet|org.apache.tomcat|" pom-all.xml
sed -i "s|jsp-api|tomcat-jsp-api|" pom-all.xml
sed -i "s|2.0|7.0.27|" pom-all.xml
sed -i "s|servlet-api|tomcat-servlet-api|" pom-all.xml
sed -i "s|2.4|7.0.27|" pom-all.xml
sed -i 's/\r//' README.md
%build
mkdir -p gradlehome
# The Groovy build supports the new Java 7 JVM instruction ```invokedynamic```.
# If you want to build Groovy with invokedynamic, you can use the project property ```indy```:
# gradle -Pindy=true ....
# build buildSrc.jar
gradle --debug -g $PWD/gradlehome -b $PWD/buildSrc/build.gradle
gradle --debug assemble jarAll javadocAll -g $PWD/gradlehome -b $PWD/build.gradle
%install
mkdir -p %{buildroot}%{_javadir}/groovy
install -pm 644 target/libs/groovy-%{version}.jar %{buildroot}%{_javadir}/groovy/groovy.jar
install -pm 644 target/libs/groovy-all-%{version}.jar %{buildroot}%{_javadir}/groovy-all.jar
for j in ant bsf console docgenerator groovydoc groovysh jmx json jsr223 servlet sql swing templates test testng xml;do
install -pm 644 subprojects/groovy-${j}/target/libs/groovy-${j}-%{version}.jar %{buildroot}%{_javadir}/groovy/groovy-${j}.jar
done
mkdir -p %{buildroot}%{_mavenpomdir}
# TODO use the poms files generated by gradle maven plugin
install -pm 644 pom.xml %{buildroot}%{_mavenpomdir}/JPP.groovy-groovy.pom
%add_maven_depmap JPP.groovy-groovy.pom groovy/groovy.jar
install -pm 644 %{SOURCE2} %{buildroot}%{_mavenpomdir}/JPP.groovy-groovy-ant.pom
%add_maven_depmap JPP.groovy-groovy-ant.pom groovy/groovy-ant.jar
install -pm 644 %{SOURCE3} %{buildroot}%{_mavenpomdir}/JPP.groovy-groovy-bsf.pom
%add_maven_depmap JPP.groovy-groovy-bsf.pom groovy/groovy-bsf.jar
install -pm 644 %{SOURCE4} %{buildroot}%{_mavenpomdir}/JPP.groovy-groovy-console.pom
%add_maven_depmap JPP.groovy-groovy-console.pom groovy/groovy-console.jar
install -pm 644 %{SOURCE5} %{buildroot}%{_mavenpomdir}/JPP.groovy-groovy-docgenerator.pom
%add_maven_depmap JPP.groovy-groovy-docgenerator.pom groovy/groovy-docgenerator.jar
install -pm 644 %{SOURCE6} %{buildroot}%{_mavenpomdir}/JPP.groovy-groovy-groovydoc.pom
%add_maven_depmap JPP.groovy-groovy-groovydoc.pom groovy/groovy-groovydoc.jar
install -pm 644 %{SOURCE7} %{buildroot}%{_mavenpomdir}/JPP.groovy-groovy-groovysh.pom
%add_maven_depmap JPP.groovy-groovy-groovysh.pom groovy/groovy-groovysh.jar
install -pm 644 %{SOURCE8} %{buildroot}%{_mavenpomdir}/JPP.groovy-groovy-jmx.pom
%add_maven_depmap JPP.groovy-groovy-jmx.pom groovy/groovy-jmx.jar
install -pm 644 %{SOURCE16} %{buildroot}%{_mavenpomdir}/JPP.groovy-groovy-jsr223.pom
%add_maven_depmap JPP.groovy-groovy-jsr223.pom groovy/groovy-jsr223.jar
install -pm 644 %{SOURCE9} %{buildroot}%{_mavenpomdir}/JPP.groovy-groovy-json.pom
%add_maven_depmap JPP.groovy-groovy-json.pom groovy/groovy-json.jar
install -pm 644 %{SOURCE10} %{buildroot}%{_mavenpomdir}/JPP.groovy-groovy-sql.pom
%add_maven_depmap JPP.groovy-groovy-sql.pom groovy/groovy-sql.jar
install -pm 644 pom-servlet.xml %{buildroot}%{_mavenpomdir}/JPP.groovy-groovy-servlet.pom
%add_maven_depmap JPP.groovy-groovy-servlet.pom %{name}/groovy-servlet.jar
install -pm 644 %{SOURCE11} %{buildroot}%{_mavenpomdir}/JPP.groovy-groovy-templates.pom
%add_maven_depmap JPP.groovy-groovy-templates.pom groovy/groovy-templates.jar
install -pm 644 %{SOURCE12} %{buildroot}%{_mavenpomdir}/JPP.groovy-groovy-test.pom
%add_maven_depmap JPP.groovy-groovy-test.pom groovy/groovy-test.jar
install -pm 644 %{SOURCE13} %{buildroot}%{_mavenpomdir}/JPP.groovy-groovy-testng.pom
%add_maven_depmap JPP.groovy-groovy-testng.pom groovy/groovy-testng.jar
install -pm 644 %{SOURCE14} %{buildroot}%{_mavenpomdir}/JPP.groovy-groovy-xml.pom
%add_maven_depmap JPP.groovy-groovy-xml.pom groovy/groovy-xml.jar
install -pm 644 pom-all.xml %{buildroot}%{_mavenpomdir}/JPP-groovy-all.pom
%add_maven_depmap JPP-groovy-all.pom groovy-all.jar
mkdir -p %{buildroot}%{_javadocdir}/%{name}
#cp -rp target/allgroovydoc/*
find target -type d |xargs chmod 755
cp -rp target/alljavadoc/* %{buildroot}%{_javadocdir}/%{name}
mkdir -p %{buildroot}%{_bindir}
install -pm 755 %{SOURCE18} %{buildroot}%{_bindir}/groovy
for TOOL in grape groovyc groovyConsole java2groovy groovysh; do
ln %{buildroot}%{_bindir}/groovy %{buildroot}%{_bindir}/$TOOL
done
mkdir -p %{buildroot}%{_sysconfdir}
install -pm 644 %{SOURCE19} %{buildroot}%{_sysconfdir}/groovy-starter.conf
mkdir -p %{buildroot}%{_datadir}/pixmaps
mkdir -p %{buildroot}%{_datadir}/applications
install -pm 644 subprojects/groovy-console/src/main/groovy/groovy/ui/ConsoleIcon.png \
%{buildroot}%{_datadir}/pixmaps/groovy.png
desktop-file-install --dir %{buildroot}%{_datadir}/applications %{SOURCE20}
%files
%{_bindir}/*
%{_javadir}/groovy-all.jar
%{_datadir}/pixmaps/*
%{_datadir}/applications/*
%dir %{_javadir}/%{name}
%{_javadir}/%{name}/*
%{_mavenpomdir}/JPP*.pom
%{_mavendepmapfragdir}/%{name}
%config(noreplace) %{_sysconfdir}/*
%doc LICENSE.txt NOTICE.txt README.md
%files javadoc
%{_javadocdir}/%{name}
%doc LICENSE.txt NOTICE.txt
%changelog
* Tue Sep 18 2012 gil cattaneo 2.0.2-1
- Updated to upstream version 2.0.2
* Tue Aug 28 2012 gil cattaneo 2.0.1-1
- Updated to upstream version 2.0.1
* Tue Jul 03 2012 gil cattaneo 2.0.0-1
- initial rpm