%global _TOMCAT "%{_datadir}/tomcat" Name: oat Summary: Attestation Service & Host Agent based on OpenAttestation SDK Version: 1.6.0 Release: 6%{?dist} License: BSD Group: Applications/System 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-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: 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 BuildRequires: jpackage-utils BuildRequires: java-devel %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 Requires: tomcat 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: jakarta-commons-httpclient Requires: geronimo-jta Requires: objectweb-asm Requires: c3p0 Requires: hibernate3 Requires: jsr-311 Requires: bouncycastle Requires: jersey Requires: jackson Requires: rngom Requires: codemodel Requires: xsom Requires: istack-commons Requires: xerces-j2 Requires: xml-commons-apis Requires: glassfish-jaxb 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 Requires: jpackage-utils Requires: java %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 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: jakarta-commons-httpclient Requires: geronimo-jta Requires: objectweb-asm Requires: c3p0 Requires: hibernate3 Requires: jsr-311 Requires: bouncycastle Requires: jersey Requires: jackson Requires: rngom Requires: codemodel Requires: xsom Requires: istack-commons Requires: xerces-j2 Requires: xml-commons-apis Requires: glassfish-jaxb 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 Requires: java-1.7.0-openjdk Requires(post): systemd Requires(preun): systemd Requires(postun): systemd Requires: jpackage-utils Requires: java %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 Requires: curl Requires: openssl BuildArch: noarch %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 doc Summary: Documentation for OpenAttestation BuildArch: noarch %description doc 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. %package javadoc Summary: Javadoc for %{name} Group: Documentation BuildArch: noarch %description javadoc Java documentation for %{name}. %prep %setup -q -n OpenAttestation-%{version} %patch0 -p1 %build # distribute the JAR_SOURCE to the source tree pushd Source sh distribute_jar_packages.sh make -C ./TPMModule/plain/linux/ #build HisAppraiser ant -file ./HisAppraiser/xml/Integrity_Report_Manifest_v1_0/build.xml ant -file ./HisAppraiser/xml/PCR_Difference/build.xml ant -file ./HisAppraiser/build.xml rm -rf ./HisAppraiser/lib/* cp -rf ./HisAppraiser/HisAppraiser.jar ./AttestationService/WebContent/WEB-INF/lib/ cp -rf ./HisAppraiser/HisAppraiser.jar ./HisWebServices/clientlib/ cp -rf ./HisAppraiser/HisAppraiser.jar ./HisWebServices/WEB-INF/lib/ cp -rf ./HisAppraiser/HisAppraiser.jar ./WLMService/WebContent/WEB-INF/lib/ #build HisWebServices ant -file ./HisWebServices/build.xml server ant -file ./HisWebServices/build.xml client cp -rf ./HisWebServices/clientlib/HisWebServices-client.jar ./PrivacyCA/lib/ cp -rf ./HisWebServices/clientlib/HisWebServices-client.jar ./HisClient/lib/ cp -rf ./HisWebServices/clientlib/HisWebServices-client.jar ./HisPrivacyCAWebServices2/ClientFiles/lib/ cp -rf ./HisWebServices/clientlib/HisWebServices-client.jar ./HisPrivacyCAWebServices2/WEB-INF/lib/ rm -rf ./HisWebServices/WEB-INF/lib/* rm -rf ./HisWebServices/WEB-INF/jars-compile-only/ #build HisPrivacyCAWebServices2 for f in HisSetup.java TpmIdentityRequest.java TpmSymCaAttestation.java idResponse.java TpmKeyParams.java TpmSymmetricKey.java PrivacyCaException.java TpmKeySubParams.java TpmSymmetricKeyParams.java TpmAsymCaContents.java TpmPubKey.java TpmUtils.java TpmIdentityProof.java TpmRsaKeyParams.java do ln -s -f ../../../../../../PrivacyCA/src/gov/niarl/his/privacyca/$f HisPrivacyCAWebServices2/src/gov/niarl/his/privacyca/ done ant -file ./HisPrivacyCAWebServices2/build.xml server ant -file ./HisPrivacyCAWebServices2/build.xml client cp -rf ./HisPrivacyCAWebServices2/clientlib/HisPrivacyCAWebServices2-client.jar ./HisPrivacyCAWebServices2/ClientFiles/lib/ cp -rf ./HisPrivacyCAWebServices2/clientlib/HisPrivacyCAWebServices2-client.jar ./PrivacyCA/lib/ rm -rf ./HisPrivacyCAWebServices2/WEB-INF/lib/* rm -rf ./HisPrivacyCAWebServices2/WEB-INF/jars-compile-only rm -rf ./HisPrivacyCAWebServices2/ClientFiles/lib/* #build PrivacyCA ant -file ./PrivacyCA/build.xml cp -rf ./PrivacyCA/PrivacyCA.jar ./HisPrivacyCAWebServices2/ClientFiles/lib/ #build HisClient mkdir ./HisClient/jar ant -file ./HisClient/xml/Integrity_Report_Manifest_v1_0/build.xml ant -file ./HisClient/build.xml #build WLMService ant -file ./WLMService/build.xml rm -rf ./WLMService/WebContent/WEB-INF/lib/* #build AttestationService ant -file ./AttestationService/build.xml #build javadoc ant -file ./AttestationService/build.xml javadoc rm -rf ./AttestationService/WebContent/WEB-INF/lib/* #cp all jars again cp -rf ./HisAppraiser/HisAppraiser.jar ./AttestationService/WebContent/WEB-INF/lib/ cp -rf ./HisAppraiser/HisAppraiser.jar ./HisWebServices/clientlib/ cp -rf ./HisAppraiser/HisAppraiser.jar ./HisWebServices/WEB-INF/lib/ cp -rf ./HisAppraiser/HisAppraiser.jar ./WLMService/WebContent/WEB-INF/lib/ cp -rf ./HisWebServices/clientlib/HisWebServices-client.jar ./HisPrivacyCAWebServices2/ClientFiles/lib/ cp -rf ./HisWebServices/clientlib/HisWebServices-client.jar ./HisPrivacyCAWebServices2/WEB-INF/lib/ cp -rf ./HisPrivacyCAWebServices2/clientlib/HisPrivacyCAWebServices2-client.jar ./HisPrivacyCAWebServices2/ClientFiles/lib/ cp -rf ./HisPrivacyCAWebServices2/clientlib/HisPrivacyCAWebServices2-client.jar ./PrivacyCA/lib/ cp -rf ./PrivacyCA/PrivacyCA.jar ./HisPrivacyCAWebServices2/ClientFiles/lib/ popd %install ################### #### appraiser #### ################### # oat-appraiser dirs mkdir -p %{buildroot}%{_datadir}/oat-appraiser/ mkdir -p %{buildroot}%{_sharedstatedir}/oat-appraiser/CaCerts mkdir -p %{buildroot}%{_sharedstatedir}/oat-appraiser/ClientFiles mkdir -p %{buildroot}%{_sharedstatedir}/oat-appraiser/Certificate mkdir -p %{buildroot}%{_sysconfdir}/oat-appraiser/ # copy post install setup files install -p -D -m 644 Installer/OAT-Appraiser-Configure/OAT_Server_Install/oat_db.MySQL %{buildroot}%{_datadir}/oat-appraiser/ install -p -D -m 644 Installer/FilesForLinux/init.sql %{buildroot}%{_datadir}/oat-appraiser/ # install configs install -p -D -m 644 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/WEB-INF install -p -D -m 644 Source/HisWebServices/WEB-INF/*.xml %{buildroot}/%_TOMCAT/webapps/HisWebServices/WEB-INF/ install -p -D -m 644 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 install -p -D -m 644 Source/HisPrivacyCAWebServices2/setup.properties %{buildroot}%_sysconfdir/oat-appraiser/ install -p -D -m 755 %{SOURCE2} %{buildroot}%{_datadir}/oat-appraiser/oat-db-drop.sh install -p -D -m 755 %{SOURCE1} %{buildroot}%{_datadir}/oat-appraiser/OAT_configure.sh install -p -D -m 755 Source/oat_function %{buildroot}%{_datadir}/oat-appraiser/oat_function ################ #### client #### ################ mkdir -p %{buildroot}%{_datadir}/oat-client mkdir -p %{buildroot}%{_datadir}/oat-client/lib mkdir -p %{buildroot}%{_datadir}/oat-client/script mkdir -p %{buildroot}%{_datadir}/oat-client/shells mkdir -p %{buildroot}%{_datadir}/java/ mkdir -p %{buildroot}%{_unitdir} mkdir -p %{buildroot}%{_sysconfdir}/oat-client mkdir -p %{buildroot}%{_sharedstatedir}/oat-client mkdir -p %{buildroot}%{_bindir} install -p -D -m 644 %{SOURCE4} %{buildroot}%{_unitdir}/oat-client.service install -p -D -m 644 Source/HisClient/jar/OAT_Standalone.jar %{buildroot}%{_datadir}/java/ install -p -D -m 755 %{SOURCE5} %{buildroot}%{_datadir}/oat-client/script/provisioner.sh install -p -D -m 644 Source/PrivacyCA/TPMModule.properties %{buildroot}%{_sysconfdir}/oat-client/ install -p -D -m 644 Source/PrivacyCA/PrivacyCA.jar %{buildroot}%{_datadir}/oat-client/lib/ install -p -D -m 644 Source/HisAppraiser/HisAppraiser.jar %{buildroot}%{_datadir}/oat-client/lib/ install -p -D -m 644 Source/HisWebServices/clientlib/HisWebServices-client.jar %{buildroot}%{_datadir}/oat-client/lib/ install -p -D -m 644 Source/HisPrivacyCAWebServices2/clientlib/HisPrivacyCAWebServices2-client.jar %{buildroot}%{_datadir}/oat-client/lib/ install -p -D -m 755 %{SOURCE3} %{buildroot}%{_datadir}/oat-client/script install -p -D -m 755 Source/oat_function %{buildroot}%{_datadir}/oat-client/script install -p -D -m 755 Source/TPMModule/plain/linux/NIARL_TPM_Module %{buildroot}%{_bindir}/NIARL_TPM_Module ##################### #### commandtool #### ##################### mkdir -p %{buildroot}%{_bindir} install -p -D -m 755 CommandTool/oat_* %{buildroot}%{_bindir} ############## #### doc #### ############## ################# #### javadoc #### ################# # Install the javadocs mkdir -p %{buildroot}%{_javadocdir} cp -r Source/AttestationService/javadoc %{buildroot}%{_javadocdir}/%{name} %files appraiser %doc docs/LICENSE %config(noreplace) %{_sysconfdir}/oat-appraiser %{_sharedstatedir}/oat-appraiser %{_datadir}/oat-appraiser %{_bindir}/NIARL_TPM_Module %{_datadir}/tomcat/webapps/AttestationService %{_datadir}/tomcat/webapps/WLMService %{_datadir}/tomcat/webapps/HisWebServices %{_datadir}/tomcat/webapps/HisPrivacyCAWebServices2 %post client %systemd_post oat-client.service %preun client %systemd_preun oat-client.service %postun client %systemd_postun_with_restart oat-client.service %files client %doc docs/LICENSE %config(noreplace) %{_sysconfdir}/oat-client %{_unitdir}/oat-client.service %{_datadir}/oat-client %{_datadir}/java/OAT_Standalone.jar %{_sharedstatedir}/oat-client %files commandtool %doc docs/LICENSE %{_bindir}/oat_* %files doc %doc README docs/* %files javadoc %{_javadocdir}/%{name} %changelog * Fri May 31 2013 Gang Wei - 0:1.6.0-6 - build doc, javadoc, commandtool as noarch - add dependency on java, java-devel, jpackage-utils * Fri May 31 2013 Gang Wei - 0:1.6.0-5 - remove dangling symlinks * Thu May 30 2013 Gang Wei - 0:1.6.0-4 - change appraiser to require tomcat instead of tomcat6 - fix all rpmlint errors * Wed May 29 2013 Gang Wei - 0:1.6.0-3 - Remove redundent dependency - change group to Applications/System - fix build in rawhide - remove all generated code * Thu May 23 2013 Gang Wei - 0:1.6.0-2 - Fixed preun issues, pull in build logic, etc. * Tue May 14 2013 Gang Wei - 0:1.6.0-1 - Initial import