Packager: Igor Vlasenko <viy@altlinux.ru>
BuildRequires: /proc
BuildRequires: jpackage-1.5.0-compat
# Copyright (c) 2000-2009, JPackage Project
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the
# distribution.
# 3. Neither the name of the JPackage Project nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
%define oname drools
%define namedversion 2.5-final
Name: drools2
Version: 2.5
Release: alt4_2jpp5
Epoch: 0
Summary: Drools Rules Engine (Legacy)
Group: Development/Java
License: BSD
URL: http://legacy.drools.codehaus.org/
Source0: http://dist.codehaus.org/drools/distributions/drools-2.5-final-src.tar.gz
Source1: pom-maven2jpp-depcat.xsl
Source2: pom-maven2jpp-newdepmap.xsl
Source3: pom-maven2jpp-mapdeps.xsl
Source4: drools2-2.5-jpp-depmap.xml
Patch0: %{name}-project-properties.patch
Patch1: %{name}-RuleSetCompiler.patch
Patch2: %{name}-AbstractSemanticCompiler.patch
Patch3: %{name}-JavaSemanticFunctionsCompiler.patch
Patch4: %{name}-JavaSemanticRuleCompiler.patch
Patch5: %{name}-GroovySemanticFunctionsCompiler.patch
Patch6: %{name}-GroovySemanticRuleCompiler.patch
Patch7: %{name}-ExcelParser.patch
BuildArch: noarch
BuildRequires: jpackage-utils >= 0:1.7.5
BuildRequires: maven1 >= 0:1.1
BuildRequires: maven1-plugins-base
BuildRequires: maven1-plugin-changelog
BuildRequires: maven1-plugin-checkstyle
BuildRequires: checkstyle4
BuildRequires: checkstyle4-optional
BuildRequires: maven1-plugin-developer-activity
BuildRequires: maven1-plugin-file-activity
BuildRequires: maven1-plugin-html2xdoc
BuildRequires: maven1-plugin-jdepend
BuildRequires: maven1-plugin-jxr
BuildRequires: maven1-plugin-license
BuildRequires: maven1-plugin-multiproject
BuildRequires: maven1-plugin-pmd
BuildRequires: maven1-plugin-test
BuildRequires: maven1-plugin-war
BuildRequires: maven1-plugin-xdoc
BuildRequires: saxon
BuildRequires: saxon-scripts
#
BuildRequires: easymock-java5
BuildRequires: easymock-classextension
#
BuildRequires: antlr
BuildRequires: asm
BuildRequires: cglib
BuildRequires: jakarta-commons-jci
BuildRequires: jakarta-commons-logging
BuildRequires: ecj
BuildRequires: groovy
BuildRequires: janino
BuildRequires: jython
BuildRequires: jakarta-poi
BuildRequires: spring-beans
BuildRequires: spring-context
BuildRequires: spring-core
BuildRequires: xerces-j2
BuildRequires: xml-commons-jaxp-1.3-apis
Requires: antlr
Requires: asm
Requires: cglib
Requires: jakarta-commons-jci
Requires: jakarta-commons-logging
Requires: ecj
Requires: groovy
Requires: janino
Requires: jython
Requires: jakarta-poi
Requires: spring-beans
Requires: spring-context
Requires: spring-core
Requires: xerces-j2
Requires: xml-commons-jaxp-1.3-apis
Requires(post): jpackage-utils >= 0:1.7.5
Requires(postun): jpackage-utils >= 0:1.7.5
%description
Drools is a Rules Engine implementation based on Charles
Forgy's Rete algorithm tailored for the Java language.
Adapting Rete to an object-oriented interface allows for
more natural expression of business rules with regards to
business objects. Drools is written in Java, but able to run
on Java and .Net.
Drools is designed to allow pluggeable language
implementations. Currently rules can be written in Java,
Python and Groovy. More importantly, Drools provides for
Declarative Programming and is flexible enough to match the
semantics of your problem domain with Domain Specific
Languages (DSL) via XML using a Schema defined for your
problem domain. DSLs consist of XML elements and attributes
that represent the problem domain.
Drools is now a JBoss JEMS product.
%package javadoc
Summary: Javadoc for %{name}
Group: Development/Documentation
BuildArch: noarch
%description javadoc
%{summary}.
%prep
%setup -q -n %{oname}-%{version}-final
chmod -R go=u-w *
for j in $(find . -name "*.jar"); do
mv $j $j.no
done
mv lib/easymockcontainer-1.0.1.jar.no lib/easymockcontainer-1.0.1.jar
mv lib/easymockcontainer-jdk5-1.3.jar.no lib/easymockcontainer-jdk5-1.3.jar
export DEPCAT=$(pwd)/drools2-2.5-depcat.new.xml
echo '<?xml version="1.0" standalone="yes"?>' > $DEPCAT
echo '<depset>' >> $DEPCAT
for p in $(find . -name project.xml); do
pushd $(dirname $p)
/usr/bin/saxon project.xml %{SOURCE1} >> $DEPCAT
popd
done
echo >> $DEPCAT
echo '</depset>' >> $DEPCAT
/usr/bin/saxon $DEPCAT %{SOURCE2} > drools2-2.5-depmap.new.xml
for p in $(find . -name pom.xml); do
sed -i -e 's/beta-1/final/' $p
done
%patch0 -b .sav0
%patch1 -b .sav1
%patch2 -b .sav2
%patch3 -b .sav3
%patch4 -b .sav4
%patch5 -b .sav5
%patch6 -b .sav6
%patch7 -b .sav7
%build
for p in $(find . -name project.xml); do
pushd $(dirname $p)
cp project.xml project.xml.orig
/usr/bin/saxon -o project.xml project.xml.orig %{SOURCE3} map=%{SOURCE4}
popd
done
export MAVEN_HOME_LOCAL=$(pwd)/.maven
maven -Dmaven.compile.target=1.5 -Dmaven.javadoc.source=1.5 -e \
-Dmaven.repo.remote=file:/usr/share/maven/repository \
-Dmaven.home.local=$MAVEN_HOME_LOCAL \
-Dmaven.multiproject.excludes="drools*examples/**,drools-jsr94/**" \
drools:default drools:javadoc-standard
# -Dmaven.multiproject.excludes="drools-core-3.0/**,drools*examples/**,drools-jsr94/**" \
%install
install -dm 755 $RPM_BUILD_ROOT%{_javadir}/%{name}
install -dm 755 $RPM_BUILD_ROOT%{_datadir}/maven2/poms
install -m 644 target/%{oname}-all-jdk5-%{namedversion}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}-all-%{version}.jar
install -m 644 target/%{oname}-base-%{namedversion}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/base-%{version}.jar
install -m 644 target/%{oname}-core-%{namedversion}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/core-%{version}.jar
install -m 644 target/%{oname}-core-3.0-%{namedversion}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/core-3.0-%{version}.jar
install -m 644 target/%{oname}-decisiontables-%{namedversion}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/decisiontables-%{version}.jar
install -m 644 target/%{oname}-groovy-%{namedversion}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/groovy-%{version}.jar
install -m 644 target/%{oname}-io-%{namedversion}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/io-%{version}.jar
install -m 644 target/%{oname}-java-%{namedversion}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/java-%{version}.jar
#install -m 644 target/%{oname}-jsr94-%{namedversion}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/jsr94-%{version}.jar
install -m 644 target/%{oname}-python-%{namedversion}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/python-%{version}.jar
install -m 644 target/%{oname}-smf-%{namedversion}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/smf-%{version}.jar
install -m 644 target/%{oname}-smftest-%{namedversion}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/smftest-%{version}.jar
install -m 644 target/%{oname}-spring-%{namedversion}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/spring-%{version}.jar
install -m 644 target/%{oname}-spring-jdk5-%{namedversion}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/spring-jdk5-%{version}.jar
(cd $RPM_BUILD_ROOT%{_javadir}/%{name} && for jar in *-%{version}*; do ln -sf ${jar} `echo $jar| sed "s|-%{version}||g"`; done)
(cd $RPM_BUILD_ROOT%{_javadir} && for jar in *-%{version}*; do ln -sf ${jar} `echo $jar| sed "s|-%{version}||g"`; done)
install -m 644 pom.xml $RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP.%{name}-drools.pom
%add_to_maven_depmap org.drools drools %{namedversion} JPP/%{name} drools
install -m 644 drools-base/pom.xml $RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP.%{name}-base.pom
%add_to_maven_depmap org.drools drools-base %{namedversion} JPP/%{name} base
install -m 644 drools-core/pom.xml $RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP.%{name}-core.pom
%add_to_maven_depmap org.drools drools-core %{namedversion} JPP/%{name} core
install -m 644 drools-groovy/pom.xml $RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP.%{name}-groovy.pom
%add_to_maven_depmap org.drools drools-groovy %{namedversion} JPP/%{name} groovy
install -m 644 drools-io/pom.xml $RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP.%{name}-io.pom
%add_to_maven_depmap org.drools drools-io %{namedversion} JPP/%{name} io
install -m 644 drools-java/pom.xml $RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP.%{name}-java.pom
%add_to_maven_depmap org.drools drools-java %{namedversion} JPP/%{name} java
install -m 644 drools-python/pom.xml $RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP.%{name}-python.pom
%add_to_maven_depmap org.drools drools-python %{namedversion} JPP/%{name} python
install -m 644 drools-smf/pom.xml $RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP.%{name}-smf.pom
%add_to_maven_depmap org.drools drools-smf %{namedversion} JPP/%{name} smf
install -m 644 drools-smftest/pom.xml $RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP.%{name}-smftest.pom
%add_to_maven_depmap org.drools drools-smftest %{namedversion} JPP/%{name} smftest
# javadoc
install -dm 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}
cp -pr target/docs/apidocs/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}
ln -s %{name}-%{version} $RPM_BUILD_ROOT%{_javadocdir}/%{name} # ghost symlink
%files
%dir %{_javadir}/%{name}
%{_javadir}/%{name}/*.jar
%{_javadir}/*.jar
%doc {LICENSE,README}.txt
%{_datadir}/maven2/poms/*
%{_mavendepmapfragdir}/*
%files javadoc
%doc %{_javadocdir}/%{name}-%{version}
%doc %{_javadocdir}/%{name}
%changelog
* Tue Aug 30 2011 Igor Vlasenko <viy@altlinux.ru> 0:2.5-alt4_2jpp5
- use maven1
* Mon Feb 14 2011 Igor Vlasenko <viy@altlinux.ru> 0:2.5-alt3_2jpp5
- fixed build
* Wed May 19 2010 Igor Vlasenko <viy@altlinux.ru> 0:2.5-alt2_2jpp5
- selected java5 compiler explicitly
* Tue May 19 2009 Igor Vlasenko <viy@altlinux.ru> 0:2.5-alt1_2jpp5
- fixed build
* Tue Mar 03 2009 Igor Vlasenko <viy@altlinux.ru> 0:2.5-alt1_1jpp5
- first build