Name: shiro
Version: 1.2.4
Release: 2%{?dist}
Summary: A powerful and flexible open-source security framework
License: ASL 2.0
URL: http://shiro.apache.org/
Source0: http://www.apache.org/dist/shiro/%{version}/%{name}-root-%{version}-source-release.zip
Source1: LICENSE.Beerware
Source2: shiro-tools-hasher.xml
# Add quartz 2.2.1 support
Patch0: shiro-1.2.4-quartz.patch
BuildRequires: docbook-dtds
BuildRequires: docbook-style-xsl
BuildRequires: libxslt
BuildRequires: maven-local
BuildRequires: mvn(aopalliance:aopalliance)
BuildRequires: mvn(com.google.guava:guava)
BuildRequires: mvn(com.google.inject:guice)
BuildRequires: mvn(com.google.inject.extensions:guice-multibindings)
BuildRequires: mvn(com.google.inject.extensions:guice-servlet)
BuildRequires: mvn(commons-beanutils:commons-beanutils)
BuildRequires: mvn(commons-cli:commons-cli)
BuildRequires: mvn(commons-codec:commons-codec)
BuildRequires: mvn(javax.servlet:javax.servlet-api)
BuildRequires: mvn(javax.servlet:jstl)
BuildRequires: mvn(javax.servlet.jsp:javax.servlet.jsp-api)
BuildRequires: mvn(log4j:log4j:1.2.17)
BuildRequires: mvn(net.sf.ehcache:ehcache-core)
BuildRequires: mvn(org.apache:apache:pom:)
BuildRequires: mvn(org.apache.felix:maven-bundle-plugin)
BuildRequires: mvn(org.apache.maven.plugins:maven-release-plugin)
BuildRequires: mvn(org.apache.maven.plugins:maven-remote-resources-plugin)
BuildRequires: mvn(org.apache.maven.plugins:maven-site-plugin)
BuildRequires: mvn(org.apache.rat:apache-rat-plugin)
BuildRequires: mvn(org.apache.santuario:xmlsec)
BuildRequires: mvn(org.codehaus.mojo:build-helper-maven-plugin)
BuildRequires: mvn(org.codehaus.mojo:buildnumber-maven-plugin)
BuildRequires: mvn(org.codehaus.mojo:exec-maven-plugin)
BuildRequires: mvn(org.jasig.cas.client:cas-client-core)
BuildRequires: mvn(org.quartz-scheduler.internal:quartz-core)
BuildRequires: mvn(org.slf4j:jcl-over-slf4j)
BuildRequires: mvn(org.slf4j:slf4j-api)
BuildRequires: mvn(org.slf4j:slf4j-log4j12)
BuildRequires: mvn(org.slf4j:slf4j-simple)
BuildRequires: mvn(org.springframework:spring-context)
# Test deps
BuildRequires: mvn(hsqldb:hsqldb:1)
BuildRequires: mvn(junit:junit)
BuildRequires: mvn(org.codehaus.groovy:groovy:1.8.9)
BuildRequires: mvn(org.easymock:easymock)
BuildRequires: mvn(org.springframework:spring-test)
BuildArch: noarch
%description
Apache Shiro is a powerful and flexible open-source security framework that
cleanly handles authentication, authorization, enterprise session management,
single sign-on and cryptography services.
%package core
Summary: Apache Shiro :: Core
# Beerware core/src/main/java/org/apache/shiro/codec/H64.java apr_md5_encode() routine uses FreeBSD crypt() code
License: ASL 2.0 and Beerware
# Certain parts of the source code for this product
# was copied and modified from the (old) source code
# developed by the Spring Framework Project
# deprecated code in SF
# core/src/main/java/org/apache/shiro/jndi/JndiLocator.java
# core/src/main/java/org/apache/shiro/util/JavaEnvironment.java
# core/src/main/java/org/apache/shiro/jndi/JndiCallback.java
# core/src/main/java/org/apache/shiro/jndi/JndiTemplate.java
Provides: bundled(spring-context)
# core/src/main/java/org/apache/shiro/util/AntPathMatcher.java
# core/src/main/java/org/apache/shiro/util/StringUtils.java
Provides: bundled(spring-core)
# core/src/main/java/org/apache/shiro/util/JdbcUtils.java
Provides: bundled(spring-jdbc)
# core/src/main/java/org/apache/shiro/dao/DataAccessException.java
Provides: bundled(spring-tx)
%description core
Apache Shiro :: Core.
%package cas
Summary: Apache Shiro :: Support :: CAS
%description cas
Apache Shiro Jasig CAS support.
%package ehcache
Summary: Apache Shiro :: Support :: EHCache
%description ehcache
Apache Shiro Ehcache-based framework caching.
%package guice
Summary: Apache Shiro :: Support :: Guice
%description guice
Apache Shiro Google Guice integration.
%package quartz
Summary: Apache Shiro :: Support :: Quartz
%description quartz
Apache Shiro Quartz-based scheduling
for Shiro native session validation.
%package root
Summary: Apache Shiro Parent POM
%description root
Apache Shiro Parent POM.
%package samples
Summary: Apache Shiro :: Samples - Parent POM
%description samples
Apache Shiro :: Samples - Parent POM.
%package samples-quickstart
Summary: Apache Shiro :: Samples :: Quick Start
%description samples-quickstart
Apache Shiro :: Samples :: Quick Start.
%package spring
Summary: Apache Shiro :: Support :: Spring
%description spring
Apache Shiro SpringFramework integration.
%package support
Summary: Apache Shiro :: Support - Parent POM
%description support
Apache Shiro :: Support - Parent POM.
%package tools
Summary: Apache Shiro :: Tools - Parent POM
%description tools
Apache Shiro :: Tools - Parent POM.
%package tools-hasher
Summary: Apache Shiro :: Tools :: Hasher
%description tools-hasher
Apache Shiro command-line program to perform hashing
(MD5, SHA, etc) for files, streams and passwords.
%package web
Summary: Apache Shiro :: Web
# web/src/main/java/org/apache/shiro/web/util/WebUtils.java
Provides: bundled(spring-web)
# web/src/main/java/org/apache/shiro/web/util/RedirectView.java
Provides: bundled(spring-webmvc)
%description web
Apache Shiro support for web-based applications.
%package javadoc
Summary: Javadoc for %{name}
%description javadoc
This package contains javadoc for %{name}.
%prep
%setup -q -n %{name}-root-%{version}
# Cleanup
find . -name '*.jar' -delete
find . -name '*.class' -delete
%patch0 -p1
%pom_disable_module all
# Require org.codehaus.mojo:aspectj-maven-plugin:1.4
%pom_disable_module aspectj support
# Require all support module
%pom_disable_module features support
# Require shiro-aspectj
%pom_disable_module aspectj samples
# Require jetty 6
%pom_disable_module web samples
# Require org.codehaus.mojo.webstart webstart-maven-plugin 1.0-alpha-2
%pom_disable_module spring-client samples
# Require org.mortbay.jetty maven-jetty-plugin
%pom_disable_module spring samples
%pom_disable_module spring-hibernate samples
%pom_remove_plugin :lifecycle-mapping
%pom_remove_plugin :gmaven-plugin
%pom_remove_plugin :dependency-maven-plugin
%pom_remove_plugin :versions-maven-plugin
%pom_remove_plugin :nexus-staging-maven-plugin
%pom_remove_plugin :maven-toolchains-plugin
%pom_remove_dep :crowd-integration-client
%pom_xpath_set "pom:properties/pom:hsqldb.version" 1
%pom_xpath_inject "pom:dependency[pom:groupId='hsqldb']" '${hsqldb.version}' core
%pom_xpath_set "pom:properties/pom:groovy.version" 1.8.9
%pom_xpath_set "pom:dependency[pom:groupId = 'org.codehaus.groovy']/pom:artifactId" groovy
# Force usage of servlet 3.1 and jsp 2.3
%pom_change_dep -r :servlet-api javax.servlet:javax.servlet-api:3.1.0
%pom_change_dep -r :jsp-api javax.servlet.jsp:javax.servlet.jsp-api:2.3.2-b01
%pom_xpath_set "pom:properties/pom:quartz.version" 2.2.1
%pom_xpath_set "pom:properties/pom:quartz.bundle.version" 2.2.1 support/features
%pom_change_dep -r :quartz org.quartz-scheduler.internal:quartz-core
%pom_xpath_set "pom:dependency[pom:groupId= 'log4j']/pom:version" 1.2.17
for p in core support/ehcache support/spring support/quartz web ; do
%pom_xpath_inject "pom:dependency[pom:groupId= 'log4j']" "1.2.17" ${p}
done
# package javax.servlet does not exist
%pom_add_dep javax.servlet:javax.servlet-api:3.1.0:provided support/cas
# Remove opensaml support. use, also, org.opensaml:xmltooling currently is broken.
%pom_remove_dep org.opensaml:opensaml support/cas
sed -i "s|return new Saml11TicketValidator(urlPrefix);|return null;|" \
support/cas/src/main/java/org/apache/shiro/cas/CasRealm.java
%pom_remove_dep org.apache.shiro:shiro-aspectj support/spring
rm -r support/spring/src/test/java/org/apache/shiro/spring/security/interceptor/SchemaAuthorizationAnnotationTest.java
# Fails on ARM builder
rm -r support/spring/src/test/java/org/apache/shiro/spring/security/interceptor/AbstractAuthorizationAnnotationTest.java \
support/spring/src/test/java/org/apache/shiro/spring/security/interceptor/DapcAuthorizationAnnotationTest.java
# Disable embedded system library copy
%pom_remove_plugin :maven-assembly-plugin tools/hasher
# Fix non ASCII chars
for s in core/src/main/java/org/apache/shiro/env/DefaultEnvironment.java;do
native2ascii -encoding UTF8 ${s} ${s}
done
# Build problem with easymock3
rm -r support/guice/src/test/java/org/apache/shiro/guice/web/SimpleFilterChainResolverTest.java \
support/guice/src/test/java/org/apache/shiro/guice/web/AbstractInjectionProviderTest.java \
support/guice/src/test/java/org/apache/shiro/guice/web/WebGuiceEnvironmentTest.java \
support/guice/src/test/java/org/apache/shiro/guice/LifecycleTypeListenerTest.java \
support/guice/src/test/java/org/apache/shiro/guice/aop/AopAllianceMethodInterceptorAdapterTest.java \
support/guice/src/test/java/org/apache/shiro/guice/BeanTypeListenerTest.java \
support/guice/src/test/java/org/apache/shiro/guice/web/SimpleFilterChainTest.java \
support/guice/src/test/java/org/apache/shiro/guice/ShiroModuleTest.java \
support/guice/src/test/java/org/apache/shiro/guice/web/ShiroWebModuleTest.java \
support/guice/src/test/java/org/apache/shiro/guice/web/PathMatchingFilterProviderTest.java \
support/guice/src/test/java/org/apache/shiro/guice/web/FilterConfigTest.java
cp -p %{SOURCE1} .
# Fix CRLF
for fil in LICENSE LICENSE.Beerware README RELEASE-NOTES; do
sed 's/\r//' -i.orig $fil
touch -r $fil.orig $fil
rm -f $fil.orig
done
%mvn_package :%{name}-core::tests: %{name}-core
%build
%mvn_build -s
xsltproc \
--nonet --stringparam man.output.quietly 1 \
--stringparam funcsynopsis.style ansi \
--stringparam man.authors.section.enabled 0 \
--stringparam man.copyright.section.enabled 0 \
/usr/share/sgml/docbook/xsl-stylesheets/manpages/docbook.xsl %{SOURCE2}
%install
%mvn_install
%jpackage_script org.apache.shiro.tools.hasher.Hasher "" "" %{name}/%{name}-core:%{name}/%{name}-tools-hasher:commons-cli:slf4j/slf4j-simple %{name}-tools-hasher true
mkdir -p %{buildroot}%{_mandir}/man1
install -pm 644 %{name}-tools-hasher.1 %{buildroot}%{_mandir}/man1/
%files core -f .mfiles-%{name}-core
%doc README RELEASE-NOTES
%license LICENSE LICENSE.Beerware NOTICE
%files cas -f .mfiles-%{name}-cas
%license LICENSE NOTICE
%files ehcache -f .mfiles-%{name}-ehcache
%license LICENSE NOTICE
%files guice -f .mfiles-%{name}-guice
%license LICENSE NOTICE
%files quartz -f .mfiles-%{name}-quartz
%license LICENSE NOTICE
%files root -f .mfiles-%{name}-root
%license LICENSE NOTICE
%files samples -f .mfiles-%{name}-samples
%license LICENSE NOTICE
%files samples-quickstart -f .mfiles-samples-quickstart
%license LICENSE NOTICE
%files spring -f .mfiles-%{name}-spring
%license LICENSE NOTICE
%files support -f .mfiles-%{name}-support
%license LICENSE NOTICE
%files tools -f .mfiles-%{name}-tools
%license LICENSE NOTICE
%files tools-hasher -f .mfiles-%{name}-tools-hasher
%{_bindir}/*
%{_mandir}/man1/%{name}-tools-hasher.*
%license LICENSE NOTICE
%files web -f .mfiles-%{name}-web
%license LICENSE NOTICE
%files javadoc -f .mfiles-javadoc
%license LICENSE NOTICE
%changelog
* Fri Oct 23 2015 gil cattaneo 1.2.4-2
- fix core license field
- add bundled(foo) provides
- preserve timestamps
- resolve some rpmlint problem
* Fri Jul 31 2015 gil cattaneo 1.2.4-1
- update to 1.2.4
* Mon Sep 22 2014 gil cattaneo 1.2.3-1
- update to 1.2.3
* Mon Jun 03 2013 gil cattaneo 1.2.2-1
- update to 1.2.2
* Tue Oct 16 2012 gil cattaneo 1.2.1-1
- initial rpm