%global namedreltag .RELEASE %global namedversion %{version}%{?namedreltag} Name: springframework-security Version: 3.1.3 Release: 1%{?dist} Summary: Modular Java/J2EE application security framework Group: Development/Libraries License: ASL 2.0 Url: http://static.springsource.org/spring-security/site/index.html # git clone git://github.com/SpringSource/spring-security.git springframework-security-3.1.3.RELEASE # (cd springframework-security-3.1.3.RELEASE/ && git archive --format=tar --prefix=springframework-security-3.1.3.RELEASE/ 3.1.3.RELEASE | xz > ../springframework-security-3.1.3.RELEASE-src-git.tar.xz) Source0: %{name}-%{namedversion}-src-git.tar.xz Source1: http://repo1.maven.org/maven2/org/springframework/security/spring-security-acl/3.1.3.RELEASE/spring-security-acl-3.1.3.RELEASE.pom Source2: http://repo1.maven.org/maven2/org/springframework/security/spring-security-cas/3.1.3.RELEASE/spring-security-cas-3.1.3.RELEASE.pom Source3: http://repo1.maven.org/maven2/org/springframework/security/spring-security-config/3.1.3.RELEASE/spring-security-config-3.1.3.RELEASE.pom Source4: http://repo1.maven.org/maven2/org/springframework/security/spring-security-core/3.1.3.RELEASE/spring-security-core-3.1.3.RELEASE.pom Source5: http://repo1.maven.org/maven2/org/springframework/security/spring-security-crypto/3.1.3.RELEASE/spring-security-crypto-3.1.3.RELEASE.pom Source6: http://repo1.maven.org/maven2/org/springframework/security/spring-security-ldap/3.1.3.RELEASE/spring-security-ldap-3.1.3.RELEASE.pom Source7: http://repo1.maven.org/maven2/org/springframework/security/spring-security-openid/3.1.3.RELEASE/spring-security-openid-3.1.3.RELEASE.pom Source8: http://repo1.maven.org/maven2/org/springframework/security/spring-security-remoting/3.1.3.RELEASE/spring-security-remoting-3.1.3.RELEASE.pom Source9: http://repo1.maven.org/maven2/org/springframework/security/spring-security-taglibs/3.1.3.RELEASE/spring-security-taglibs-3.1.3.RELEASE.pom Source10: http://repo1.maven.org/maven2/org/springframework/security/spring-security-web/3.1.3.RELEASE/spring-security-web-3.1.3.RELEASE.pom # fix system libraries # disable unavailable plugins # disable: docs, itest, and samples. (unavailable build deps) Patch0: %{name}-%{namedversion}-build.patch # tomcat 7.x apis support Patch1: %{name}-%{namedversion}-web-FilterInvocation.patch Patch2: %{name}-%{namedversion}-aggregate-javadoc.patch # fix empty manifests header (require springframework bundlor) Patch3: %{name}-%{namedversion}-osgi-manifest.patch # require groovy with its embedded deps Patch4: %{name}-%{namedversion}-config-groovy-deps.patch # depends on ldap module for test Patch5: %{name}-%{namedversion}-config-remove-unavailable-test-deps.patch # build fix for apacheds 1.5.7 and apacheds-shared 0.9.19 Patch6: %{name}-%{namedversion}-ldap-apacheds155.patch BuildRequires: java-devel BuildRequires: jpackage-utils # build tools and deps BuildRequires: antlr-tool BuildRequires: apache-commons-cli BuildRequires: emma BuildRequires: gradle BuildRequires: groovy BuildRequires: objectweb-asm # build deps BuildRequires: apache-commons-logging BuildRequires: apacheds-core BuildRequires: apacheds-protocols BuildRequires: apacheds-server BuildRequires: apacheds-shared BuildRequires: apacheds-xdbm BuildRequires: aopalliance BuildRequires: aspectjweaver BuildRequires: cas-client BuildRequires: ehcache-core BuildRequires: geronimo-annotation BuildRequires: google-guice BuildRequires: httpcomponents-client BuildRequires: ldapjdk BuildRequires: openid4java BuildRequires: slf4j BuildRequires: spring-ldap BuildRequires: springframework BuildRequires: springframework-aop BuildRequires: springframework-beans BuildRequires: springframework-context BuildRequires: springframework-expression BuildRequires: springframework-jdbc BuildRequires: springframework-web BuildRequires: springframework-tx BuildRequires: tomcat-jsp-2.2-api BuildRequires: tomcat-servlet-3.0-api # test deps BuildRequires: apache-commons-collections BuildRequires: apache-commons-codec BuildRequires: cglib BuildRequires: hsqldb BuildRequires: jboss-jstl-1.2-api BuildRequires: junit BuildRequires: logback BuildRequires: mockito BuildRequires: powermock-api-mockito BuildRequires: powermock-api-support BuildRequires: powermock-common BuildRequires: powermock-core BuildRequires: powermock-junit4 BuildRequires: powermock-reflect BuildRequires: spock-core Requires: apache-commons-logging Requires: apacheds-core Requires: apacheds-protocols Requires: apacheds-server Requires: apacheds-shared Requires: aopalliance Requires: aspectjweaver Requires: cas-client Requires: ehcache-core Requires: geronimo-annotation Requires: google-guice Requires: groovy Requires: httpcomponents-client Requires: ldapjdk Requires: openid4java Requires: slf4j Requires: spring-ldap Requires: springframework Requires: springframework-aop Requires: springframework-beans Requires: springframework-context Requires: springframework-expression Requires: springframework-jdbc Requires: springframework-web Requires: springframework-tx Requires: tomcat-jsp-2.2-api Requires: tomcat-servlet-3.0-api Requires: java Requires: jpackage-utils BuildArch: noarch %description Spring Security is a Java/Java EE framework that provides advanced authentication, authorization and other comprehensive security features for enterprise applications. In addition to having a comprehensive list of security functionality, Spring Security is very configurable and employs the Spring Framework for configuration, it allows for reuse and portability of security components, and it can also be used with non-Spring applications. %package javadoc Group: Documentation Summary: Javadoc for %{name} Requires: jpackage-utils %description javadoc This package contains javadoc for %{name}. %prep %setup -q -n %{name}-%{namedversion} find . -name "*.jar" -delete find . -name "*.class" -delete %patch0 -p1 %patch1 -p0 sed -i "s|Map parameters = request.getParameterMap();|Map parameters = request.getParameterMap();|" \ web/src/main/java/org/springframework/security/web/savedrequest/DefaultSavedRequest.java %patch2 -p0 %patch3 -p1 %patch4 -p0 %patch5 -p0 %patch6 -p1 # unavailable build deps # gId aId version # com.springsource.bundlor com.springsource.bundlor 1.0.0.RELEASE # com.springsource.bundlor com.springsource.bundlor.blint 1.0.0.RELEASE # saxon saxon 6.5.3 # net.java.dev.jets3t jets3t 0.6.1 # net.sf.xslthl xslthl 2.0.1 # net.sf.docbook docbook-xsl 1.75.2 ns-resources zip # com.google.appengine appengine-tools-sdk 1.4.2 rm -rf buildSrc/src/main/groovy/bundlor/BundlorPlugin.groovy \ buildSrc/src/main/groovy/docbook/DocbookPlugin.groovy \ buildSrc/src/main/groovy/gae/GaePlugin.groovy # require unavailable build deps org.springframework spring-test and gradle maven plugin rm -r acl/src/test/java/* \ cas/src/test/java/* \ config/src/test/java/* \ config/src/test/groovy/* \ core/src/test/java/* \ ldap/src/integration-test/java/* \ ldap/src/test/java/* \ openid/src/test/java/* \ remoting/src/test/java/* \ taglibs/src/test/java/* \ web/src/test/java/* cp -p %{SOURCE1} acl.pom cp -p %{SOURCE2} cas.pom cp -p %{SOURCE4} core.pom cp -p %{SOURCE6} ldap.pom %pom_xpath_inject "pom:dependencies" " org.apache.directory.server apacheds-core-api 1.5.5 compile true " ldap.pom %pom_xpath_inject "pom:dependencies" " org.apache.directory.server apacheds-jdbm-partition 1.5.5 compile true " ldap.pom %pom_xpath_inject "pom:dependencies" " org.apache.directory.server apacheds-xdbm-base 1.5.5 compile true " ldap.pom cp -p %{SOURCE9} taglibs.pom sed -i "s|ehcache|ehcache-core|" acl.pom cas.pom core.pom sed -i "s|aspectjrt|aspectjweaver|" core.pom %pom_remove_dep javax.servlet:jsp-api taglibs.pom %pom_xpath_inject "pom:dependencies" " org.apache.tomcat tomcat-jsp-api 2.0 provided true " taglibs.pom %build export GRADLE_USER_HOME=$PWD mkdir -p gradlehome gradle --debug build javadoc -g $PWD/gradlehome -b $PWD/build.gradle %install mkdir -p %{buildroot}%{_javadir}/%{name} for m in acl \ cas \ config \ core \ crypto \ ldap \ openid \ remoting \ taglibs \ web; do install -m 644 ${m}/build/libs/spring-security-${m}-%{namedversion}.jar \ %{buildroot}%{_javadir}/%{name}/spring-security-${m}.jar done mkdir -p %{buildroot}%{_mavenpomdir} install -pm 644 acl.pom %{buildroot}%{_mavenpomdir}/JPP.%{name}-spring-security-acl.pom %add_maven_depmap JPP.%{name}-spring-security-acl.pom %{name}/spring-security-acl.jar install -pm 644 cas.pom %{buildroot}%{_mavenpomdir}/JPP.%{name}-spring-security-cas.pom %add_maven_depmap JPP.%{name}-spring-security-cas.pom %{name}/spring-security-cas.jar install -pm 644 %{SOURCE3} %{buildroot}%{_mavenpomdir}/JPP.%{name}-spring-security-config.pom %add_maven_depmap JPP.%{name}-spring-security-config.pom %{name}/spring-security-config.jar install -pm 644 core.pom %{buildroot}%{_mavenpomdir}/JPP.%{name}-spring-security-core.pom %add_maven_depmap JPP.%{name}-spring-security-core.pom %{name}/spring-security-core.jar install -pm 644 %{SOURCE5} %{buildroot}%{_mavenpomdir}/JPP.%{name}-spring-security-crypto.pom %add_maven_depmap JPP.%{name}-spring-security-crypto.pom %{name}/spring-security-crypto.jar install -pm 644 ldap.pom %{buildroot}%{_mavenpomdir}/JPP.%{name}-spring-security-ldap.pom %add_maven_depmap JPP.%{name}-spring-security-ldap.pom %{name}/spring-security-ldap.jar install -pm 644 %{SOURCE7} %{buildroot}%{_mavenpomdir}/JPP.%{name}-spring-security-openid.pom %add_maven_depmap JPP.%{name}-spring-security-openid.pom %{name}/spring-security-openid.jar install -pm 644 %{SOURCE8} %{buildroot}%{_mavenpomdir}/JPP.%{name}-spring-security-remoting.pom %add_maven_depmap JPP.%{name}-spring-security-remoting.pom %{name}/spring-security-remoting.jar install -pm 644 taglibs.pom %{buildroot}%{_mavenpomdir}/JPP.%{name}-spring-security-taglibs.pom %add_maven_depmap JPP.%{name}-spring-security-taglibs.pom %{name}/spring-security-taglibs.jar install -pm 644 %{SOURCE10} %{buildroot}%{_mavenpomdir}/JPP.%{name}-spring-security-web.pom %add_maven_depmap JPP.%{name}-spring-security-web.pom %{name}/spring-security-web.jar mkdir -p %{buildroot}%{_javadocdir}/%{name} cp -rp build/javadoc/* %{buildroot}%{_javadocdir}/%{name} %files %dir %{_javadir}/%{name} %{_javadir}/%{name}/spring-security-*.jar %{_mavenpomdir}/JPP.%{name}-spring-security-*.pom %{_mavendepmapfragdir}/%{name} %doc license.txt notice.txt readme.txt %files javadoc %{_javadocdir}/%{name} %doc license.txt notice.txt %changelog * Fri Nov 16 2012 gil cattaneo 3.1.3-1 - initial rpm