diff --git a/picketbox-4.9.6.Final-pom.xml b/picketbox-4.9.6.Final-pom.xml
new file mode 100644
index 0000000..309981e
--- /dev/null
+++ b/picketbox-4.9.6.Final-pom.xml
@@ -0,0 +1,6 @@
+
+ 4.0.0
+ org.picketbox
+ picketbox
+ 4.9.6.Final
+
diff --git a/picketbox-assembly.patch b/picketbox-assembly.patch
new file mode 100644
index 0000000..018fccb
--- /dev/null
+++ b/picketbox-assembly.patch
@@ -0,0 +1,27 @@
+diff -Naur picketbox.orig/assembly/bin.xml picketbox/assembly/bin.xml
+--- picketbox.orig/assembly/bin.xml 2016-06-06 21:17:14.533587182 -0500
++++ picketbox/assembly/bin.xml 2016-06-06 21:07:55.271125191 -0500
+@@ -1,4 +1,5 @@
+
++ bin
+
+ jar
+
+diff -Naur picketbox.orig/security-jboss-sx/assembly/src/assembly/bin.xml picketbox/security-jboss-sx/assembly/src/assembly/bin.xml
+--- picketbox.orig/security-jboss-sx/assembly/src/assembly/bin.xml 2016-06-06 21:17:14.533587182 -0500
++++ picketbox/security-jboss-sx/assembly/src/assembly/bin.xml 2016-06-06 21:09:32.613767054 -0500
+@@ -1,4 +1,5 @@
+
++ bin
+
+ jar
+
+diff -Naur picketbox.orig/security-spi/assembly/bin.xml picketbox/security-spi/assembly/bin.xml
+--- picketbox.orig/security-spi/assembly/bin.xml 2016-06-06 21:17:14.533587182 -0500
++++ picketbox/security-spi/assembly/bin.xml 2016-06-06 21:09:54.602754893 -0500
+@@ -1,4 +1,5 @@
+
++ bin
+
+ jar
+
diff --git a/picketbox.spec b/picketbox.spec
new file mode 100644
index 0000000..b5a95ed
--- /dev/null
+++ b/picketbox.spec
@@ -0,0 +1,76 @@
+%global namedreltag .Final
+%global namedversion %{version}%{?namedreltag}
+Name: picketbox
+Version: 4.9.6
+Release: 1
+Summary: Security framework for Java Applications
+License: LGPLv2+
+URL: https://picketbox.jboss.org
+Source0: https://github.com/picketbox/picketbox/archive/v%{namedversion}.tar.gz
+Source1: picketbox-%{namedversion}-pom.xml
+Patch0: picketbox-assembly.patch
+BuildArch: noarch
+BuildRequires: maven-local mvn(javax.persistence:persistence-api)
+BuildRequires: mvn(org.apache.maven.plugins:maven-assembly-plugin)
+BuildRequires: mvn(org.apache.maven.plugins:maven-release-plugin)
+BuildRequires: mvn(org.codehaus.mojo:javacc-maven-plugin) mvn(org.hibernate:hibernate-core:3)
+BuildRequires: mvn(org.hibernate:hibernate-entitymanager:3)
+BuildRequires: mvn(org.infinispan:infinispan-core) mvn(org.jboss:jboss-parent:pom:)
+BuildRequires: mvn(org.jboss.logging:jboss-logging)
+BuildRequires: mvn(org.jboss.logging:jboss-logging-annotations)
+BuildRequires: mvn(org.jboss.logging:jboss-logging-processor)
+BuildRequires: mvn(org.jboss.maven.plugins:maven-injection-plugin)
+BuildRequires: mvn(org.jboss.modules:jboss-modules) mvn(org.jboss.security:jbossxacml)
+BuildRequires: mvn(org.jboss.spec.javax.resource:jboss-connector-api_1.6_spec)
+BuildRequires: mvn(org.jboss.spec.javax.security.auth.message:jboss-jaspi-api_1.1_spec)
+BuildRequires: mvn(org.jboss.spec.javax.security.jacc:jboss-jacc-api_1.5_spec)
+BuildRequires: mvn(org.jboss.spec.javax.servlet:jboss-servlet-api_3.0_spec)
+BuildRequires: mvn(org.picketbox:picketbox-commons) xmvn
+%description
+Java Security Framework that provides Java developers the following
+functionality:
+- Authentication Support
+- Authorization Support
+- Audit Support
+- Security Mapping Support
+- An Oasis XACML v2.0 compliant engine
+
+%package javadoc
+Summary: Javadoc for %{name}
+%description javadoc
+This package contains the API documentation for %{name}.
+
+%prep
+%setup -q -n %{name}-%{namedversion}
+%patch0 -p1
+%pom_change_dep org.hibernate: ::3 security-jboss-sx/acl
+%pom_remove_dep "org.hibernate:hibernate-annotations" security-jboss-sx/acl/pom.xml
+%pom_change_dep :servlet-api org.jboss.spec.javax.servlet:jboss-servlet-api_3.0_spec security-spi/spi
+%pom_change_dep :servlet-api org.jboss.spec.javax.servlet:jboss-servlet-api_3.0_spec:1.0.2.Final security-spi/parent
+%pom_xpath_inject "pom:plugin[pom:artifactId='maven-jar-plugin']/pom:executions" "
+
+ default-jar
+ skip
+" security-jboss-sx/jbosssx-client
+%pom_remove_dep org.jboss.modules:jboss-modules security-jboss-sx/parent
+%pom_add_dep_mgmt org.jboss.modules:jboss-modules:1.3.4.Final:compile security-jboss-sx/parent
+%pom_xpath_set -r "pom:plugin[pom:artifactId='maven-assembly-plugin']/pom:executions/pom:execution/pom:goals/pom:goal[text()='attached']" single
+%pom_remove_dep org.picketbox:common-spi security-jboss-sx/identity
+%pom_add_dep org.picketbox:common-spi:'${project.version}':compile security-jboss-sx/identity
+
+%build
+%mvn_build -f
+
+%install
+%mvn_install
+install -pm 644 assembly/target/picketbox-%{namedversion}-bin.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/%{name}.jar
+install -pm 644 %{SOURCE1} $RPM_BUILD_ROOT%{_mavenpomdir}/JPP.%{name}-%{name}.pom
+%add_maven_depmap JPP.%{name}-%{name}.pom %{name}/%{name}.jar
+
+%files -f .mfiles
+
+%files javadoc -f .mfiles-javadoc
+
+%changelog
+* Thu Aug 13 2020 zhanghua - 4.9.6-1
+- package init
diff --git a/picketbox.yaml b/picketbox.yaml
new file mode 100644
index 0000000..34df0ba
--- /dev/null
+++ b/picketbox.yaml
@@ -0,0 +1,4 @@
+version_control: github
+src_repo: picketbox/picketbox
+tag_pattern: "^v"
+seperator: "."
diff --git a/v4.9.6.Final.tar.gz b/v4.9.6.Final.tar.gz
new file mode 100644
index 0000000..bac2737
Binary files /dev/null and b/v4.9.6.Final.tar.gz differ