%define _TOMCAT "%{_datadir}/tomcat6" Name: oat Summary: Attestation Service & Host Agent based on OpenAttestation SDK Version: 1.6.0 Release: 1%{?dist} License: BSD Group: Cloud Infrastructure Source0: https://github.com/OpenAttestation/OpenAttestation/archive/v%{version}/OpenAttestation-%{version}.tar.gz Source1: OAT_configure.sh Source2: oat-db-drop.sh Source3: OAT_client.sh Source4: oat-client.service Source5: provisioner-redhat-partner.sh # this patch is just for fedora packaging Patch0: oat-1.6.0-pregen-xsd.patch # this patch is just for fedora packaging Patch1: oat-1.6.0-fedora-build.patch URL: https://github.com/OpenAttestation/OpenAttestation BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: ant BuildRequires: trousers-devel BuildRequires: apache-commons-beanutils BuildRequires: apache-commons-cli BuildRequires: apache-commons-codec BuildRequires: apache-commons-collections BuildRequires: apache-commons-digester BuildRequires: apache-commons-discovery BuildRequires: apache-commons-logging BuildRequires: dom4j BuildRequires: log4j BuildRequires: mimepull BuildRequires: mysql-connector-java BuildRequires: stax-ex BuildRequires: glassfish-fastinfoset BuildRequires: tomcat-servlet-3.0-api BuildRequires: woodstox-core BuildRequires: msv-xsdlib BuildRequires: jakarta-commons-httpclient BuildRequires: geronimo-jta BuildRequires: objectweb-asm BuildRequires: c3p0 BuildRequires: cglib BuildRequires: hibernate3 BuildRequires: jsr-311 BuildRequires: bouncycastle BuildRequires: jersey BuildRequires: libgcj BuildRequires: jackson BuildRequires: rngom BuildRequires: codemodel BuildRequires: xsom BuildRequires: istack-commons BuildRequires: xerces-j2 BuildRequires: xml-commons-apis BuildRequires: glassfish-jaxb BuildRequires: jetty-osgi BuildRequires: javassist BuildRequires: hibernate-jpa-2.0-api BuildRequires: hibernate-commons-annotations BuildRequires: slf4j BuildRequires: txw2 BuildRequires: xml-commons-resolver BuildRequires: glassfish-gmbal BuildRequires: glassfish-management-api BuildRequires: glassfish-pfl BuildRequires: glassfish-ha-api BuildRequires: glassfish-policy BuildRequires: xmlstreambuffer BuildRequires: glassfish-jaxws BuildRequires: glassfish-jaxws-tools BuildRequires: java-1.7.0-openjdk %description OpenAttestation (OAT) is a open source project providing a SDK for managing host integrity verification using TCG-defined remote attestation protocol, targeting to be integrated into cloud and enterprise management tools. %package appraiser Summary: Appraisal Server for OpenAttestation Version: 1.6.0 Release: 1%{?dist} Requires: httpd Requires: tomcat6 Requires: mysql Requires: mysql-server Requires: php Requires: php-mysql Requires: apache-commons-beanutils Requires: apache-commons-cli Requires: apache-commons-codec Requires: apache-commons-collections Requires: apache-commons-digester Requires: apache-commons-discovery Requires: apache-commons-logging Requires: dom4j Requires: log4j Requires: mimepull Requires: mysql-connector-java Requires: stax-ex Requires: glassfish-fastinfoset Requires: tomcat-servlet-3.0-api Requires: woodstox-core Requires: msv-xsdlib Requires: jakarta-commons-httpclient Requires: geronimo-jta Requires: objectweb-asm Requires: c3p0 Requires: cglib Requires: hibernate3 Requires: jsr-311 Requires: bouncycastle Requires: jersey Requires: libgcj Requires: jackson Requires: rngom Requires: codemodel Requires: xsom Requires: istack-commons Requires: xerces-j2 Requires: xml-commons-apis Requires: glassfish-jaxb Requires: jetty-osgi Requires: javassist Requires: hibernate-jpa-2.0-api Requires: hibernate-commons-annotations Requires: slf4j Requires: txw2 Requires: xml-commons-resolver Requires: glassfish-gmbal Requires: glassfish-pfl Requires: glassfish-ha-api Requires: glassfish-policy Requires: xmlstreambuffer Requires: glassfish-jaxws Requires: glassfish-jaxws-tools Requires: glassfish-management-api %description appraiser OpenAttestation (OAT) is a open source project providing a SDK for managing host integrity verification using TCG-defined remote attestation protocol, targeting to be integrated into cloud and enterprise management tools. This package provides the OAT appraisal server. %package client Summary: Host Agent for OpenAttestation Version: 1.6.0 Release: 1%{?dist} Requires: apache-commons-beanutils Requires: apache-commons-cli Requires: apache-commons-codec Requires: apache-commons-collections Requires: apache-commons-digester Requires: apache-commons-discovery Requires: apache-commons-logging Requires: dom4j Requires: log4j Requires: mimepull Requires: mysql-connector-java Requires: stax-ex Requires: glassfish-fastinfoset Requires: tomcat-servlet-3.0-api Requires: woodstox-core Requires: msv-xsdlib Requires: jakarta-commons-httpclient Requires: geronimo-jta Requires: objectweb-asm Requires: c3p0 Requires: cglib Requires: hibernate3 Requires: jsr-311 Requires: bouncycastle Requires: jersey Requires: libgcj Requires: jackson Requires: rngom Requires: codemodel Requires: xsom Requires: istack-commons Requires: xerces-j2 Requires: xml-commons-apis Requires: glassfish-jaxb Requires: jetty-osgi Requires: javassist Requires: hibernate-jpa-2.0-api Requires: hibernate-commons-annotations Requires: slf4j Requires: txw2 Requires: xml-commons-resolver Requires: glassfish-gmbal Requires: glassfish-management-api Requires: glassfish-pfl Requires: glassfish-ha-api Requires: glassfish-policy Requires: xmlstreambuffer Requires: glassfish-jaxws Requires: glassfish-jaxws-tools Requires: trousers-devel Requires: java-1.7.0-openjdk %description client OpenAttestation (OAT) is a open source project providing a SDK for managing host integrity verification using TCG-defined remote attestation protocol, targeting to be integrated into cloud and enterprise management tools. This package provides the host agent which uses Java and the NIARL TPM Module to acquire integrity measurement data from the host's Trusted Platform Module (TPM). The data is compiled into an integrity report and sent to the OAT appraisal server. %package commandtool Summary: Command line tools for OpenAttestation Version: 1.6.0 Release: 1%{?dist} Requires: curl Requires: openssl %description commandtool OpenAttestation (OAT) is a open source project providing a SDK for managing host integrity verification using TCG-defined remote attestation protocol, targeting to be integrated into cloud and enterprise management tools. This package provides a number of command line tools which are useful for interacting with a OAT appraisal server. %package docs Summary: Documentation for OpenAttestation Version: 1.6.0 Release: 1%{?dist} %description docs OpenAttestation (OAT) is a open source project providing a SDK for managing host integrity verification using TCG-defined remote attestation protocol, targeting to be integrated into cloud and enterprise management tools. This package provides the documentation for OpenAttestation. %clean rm -rf %{buildroot} %prep %setup -q -n OpenAttestation-%{version} %patch0 -p1 %patch1 -p1 %build # distribute the JAR_SOURCE to the source tree pushd Source sh distribute_jar_packages.sh sh build.sh popd %install rm -rf %{buildroot} ################### #### appraiser #### ################### # oat-appraiser dirs mkdir -p %{buildroot}%{_datadir}/oat-appraiser/ mkdir -p %{buildroot}%{_sharedstatedir}/oat-appraiser/CaCerts mkdir %{buildroot}%{_sharedstatedir}/oat-appraiser/ClientFiles mkdir %{buildroot}%{_sharedstatedir}/oat-appraiser/Certificate mkdir -p %{buildroot}%_sysconfdir/oat-appraiser/ # copy post install setup files cp Installer/OAT-Appraiser-Configure/linuxClientInstallRefresh.sh %{buildroot}%{_datadir}/oat-appraiser cp Installer/OAT-Appraiser-Configure/OAT_Server_Install/oat_db.MySQL %{buildroot}%{_datadir}/oat-appraiser/ cp Installer/FilesForLinux/init.sql %{buildroot}%{_datadir}/oat-appraiser/ # install configs cp Installer/OAT-Appraiser-Configure/OAT_Server_Install/OAT.properties %{buildroot}%_sysconfdir/oat-appraiser/ # tomcat install dir mkdir -p %{buildroot}/%_TOMCAT/webapps/ # install AttestationService unzip Source/AttestationService/AttestationService.war -d %{buildroot}/%_TOMCAT/webapps/AttestationService [[ -d %{buildroot}/%_TOMCAT/webapps/AttestationService/WEB-INF ]] && rm -rf %{buildroot}/%_TOMCAT/webapps/AttestationService/WEB-INF cp -r Source/AttestationService/WebContent/WEB-INF/ %{buildroot}/%_TOMCAT/webapps/AttestationService/WEB-INF # install WLMService unzip Source/WLMService/WLMService.war -d %{buildroot}/%_TOMCAT/webapps/WLMService [[ -d %{buildroot}/%_TOMCAT/webapps/WLMService/WEB-INF/ ]] && rm -rf %{buildroot}/%_TOMCAT/webapps/WLMService/WEB-INF/ cp -r Source/WLMService/WebContent/WEB-INF/ %{buildroot}/%_TOMCAT/webapps/WLMService/WEB-INF/ # install HisWebServices mkdir -p %{buildroot}/%_TOMCAT/webapps/HisWebServices cp -R Source/HisWebServices/WEB-INF %{buildroot}/%_TOMCAT/webapps/HisWebServices cp Installer/OAT-Appraiser-Configure/OAT_Server_Install/hibernateOat.cfg.xml %{buildroot}/%_TOMCAT/webapps/HisWebServices/WEB-INF/classes/ mv %{buildroot}/%_TOMCAT/webapps/HisWebServices/WEB-INF/classes/OpenAttestation.properties %{buildroot}%_sysconfdir/oat-appraiser/ # install HisPrivacyCAWebServices2 unzip Source/HisPrivacyCAWebServices2/HisPrivacyCAWebServices2.war -d %{buildroot}/%_TOMCAT/webapps/HisPrivacyCAWebServices2 [[ -d %{buildroot}/%_TOMCAT/webapps/HisPrivacyCAWebServices2/WEB-INF/ ]] && rm -rf %{buildroot}/%_TOMCAT/webapps/HisPrivacyCAWebServices2/WEB-INF/ cp -r Source/HisPrivacyCAWebServices2/WEB-INF %{buildroot}/%_TOMCAT/webapps/HisPrivacyCAWebServices2/WEB-INF/ [[ -d %{buildroot}/%_TOMCAT/webapps/HisPrivacyCAWebServices2/ClientFiles ]] && rm -rf %{buildroot}/%_TOMCAT/webapps/HisPrivacyCAWebServices2/ClientFiles cp -r Source/HisPrivacyCAWebServices2/ClientFiles %{buildroot}/%_TOMCAT/webapps/HisPrivacyCAWebServices2/ClientFiles cp Source/HisPrivacyCAWebServices2/setup.properties %{buildroot}%_sysconfdir/oat-appraiser/ cp %{SOURCE2} %{buildroot}%{_datadir}/oat-appraiser/oat-db-drop.sh cp %{SOURCE1} %{buildroot}%{_datadir}/oat-appraiser/OAT_configure.sh #placing OAT web portal in correct folder to be seen by tomcat6 mkdir -p %{buildroot}%{_localstatedir}/www/html/ cp -R Source/Portal %{buildroot}%{_localstatedir}/www/html/OAT ################ #### client #### ################ mkdir -p %{buildroot}%{_datadir}/oat-client mkdir -p %{buildroot}%{_datadir}/oat-client/lib mkdir -p %{buildroot}%{_datadir}/oat-client mkdir %{buildroot}%{_datadir}/oat-client/script mkdir %{buildroot}%{_datadir}/oat-client/exe mkdir -p %{buildroot}%{_datadir}/oat-client/shells mkdir -p %{buildroot}%{_sysconfdir}/oat-client mkdir -p %{buildroot}/OAT mkdir -p %{buildroot}%{_unitdir} cp Source/HisClient/OAT07.jpg Source/HisClient/log4j.properties %{buildroot}%{_datadir}/oat-client/ cp Source/HisClient/jar/OAT_Standalone.jar %{buildroot}%{_datadir}/oat-client/ cp %{SOURCE5} %{buildroot}%{_datadir}/oat-client/script/provisioner.sh cp Source/PrivacyCA/TPMModule.properties %{buildroot}%{_datadir}/oat-client/ cp Source/PrivacyCA/PrivacyCA.jar %{buildroot}%{_datadir}/oat-client/lib/ cp Source/HisAppraiser/HisAppraiser.jar %{buildroot}%{_datadir}/oat-client/lib/ cp Source/HisWebServices/clientlib/HisWebServices-client.jar %{buildroot}%{_datadir}/oat-client/lib/ cp Source/HisPrivacyCAWebServices2/clientlib/HisPrivacyCAWebServices2-client.jar %{buildroot}%{_datadir}/oat-client/lib/ cp %{SOURCE3} %{buildroot}%{_datadir}/oat-client/script cp Source/oat_function %{buildroot}%{_datadir}/oat-client/script install -m644 %{SOURCE4} %{buildroot}%{_unitdir}/oat-client.service cp Source/TPMModule/plain/linux/NIARL_TPM_Module %{buildroot}%{_datadir}/oat-client/exe ##################### #### commandtool #### ##################### mkdir -p %{buildroot}%{_bindir} cp CommandTool/oat_* %{buildroot}%{_bindir} ############## #### docs #### ############## %post appraiser %preun appraiser if [ -d %{_sharedstatedir}/oat-appraiser/ ]; then rm -rf %{_sharedstatedir}/oat-appraiser/ fi echo "remove oat-appraiser data file: /var/lib/oat-appraiser ...ok" if [ -e %{_datadir}/oat-appraiser/oat-db-drop.sh ]; then bash %{_datadir}/oat-appraiser/oat-db-drop.sh fi echo "drop database oat_db and remove oat_appraiser tomcat6 conf ...ok" if [ -d %{_sysconfdir}/oat-appraiser/ ]; then rm -rf %{_sysconfdir}/oat-appraiser/ fi echo "remove oat-appraiser conf file: /etc/oat-appraiser ...ok" if [ -d %{_datadir}/oat-appraiser/ ]; then rm -rf %{_datadir}/oat-appraiser/ fi echo "remove oat-appraiser file: %{_datadir}/oat-appraiser ...ok" if [ -d %{_datadir}/java/oat ]; then rm -rf %{_datadir}/java/oat fi echo "remove oat-appraiser required jar link file: %{_datadir}/java/oat ...ok" %files appraiser %config %{_sysconfdir}/oat-appraiser/ %dir %{_sharedstatedir}/oat-appraiser/CaCerts %dir %{_sharedstatedir}/oat-appraiser/Certificate %{_sharedstatedir}/oat-appraiser/ClientFiles %{_datadir}/oat-appraiser %{_localstatedir}/www/html/OAT %{_datadir}/tomcat6/webapps/AttestationService %{_datadir}/tomcat6/webapps/WLMService %{_datadir}/tomcat6/webapps/HisWebServices %{_datadir}/tomcat6/webapps/HisPrivacyCAWebServices2 %post client %preun client #TODO: stop the service before removing # if [ -e %{_sysconfdir}/systemd/system/oat-client.service ]; then systemctl stop oat-client.service rm -f %{_sysconfdir}/systemd/system/oat-client.service fi echo "stop oat-client daemon ...ok" if [ -d %{_sysconfdir}/oat-client/ ]; then rm -rf %{_sysconfdir}/oat-client/ fi echo "delete oat-client conf files ...ok" if [ -d %{_datadir}/oat-client ]; then rm -rf %{_datadir}/oat-client fi echo "delete oat-client files ...ok" if [ -d %{_sharedstatedir}/oat-client ]; then rm -rf %{_sharedstatedir}/oat-client fi echo "delete oat-client data ...ok" if [ -d %{_datadir}/java/oat ]; then rm -rf %{_datadir}/java/oat fi echo "delete oat-client required jar link file: %{_datadir}/java/oat ...ok" if [ -d /OAT/ ]; then rm -rf /OAT/ fi %files client %attr(755,-,-) %{_unitdir}/oat-client.service %{_datadir}/oat-client/OAT07.jpg %{_datadir}/oat-client/OAT_Standalone.jar %{_datadir}/oat-client/log4j.properties %{_datadir}/oat-client/lib %{_datadir}/oat-client/script/provisioner.sh %{_datadir}/oat-client/script/OAT_client.sh %{_datadir}/oat-client/script/oat_function %{_datadir}/oat-client/exe/NIARL_TPM_Module %{_datadir}/oat-client/TPMModule.properties %files commandtool %{_bindir}/oat_* %files docs %doc README docs/* %changelog * Tue May 14 2013 Gang Wei - 0:1.6.0-1 - Initial import