Fix RPM build using waf (oss only) and maven. With the exception of awsapi most of the rpms are build. Not the neatest way to do it, but a good base for improvement.

This commit is contained in:
Hugo Trippaers 2012-09-04 11:05:55 +02:00
parent dd07d1598f
commit 79004fc7bc
3 changed files with 206 additions and 61 deletions

View File

@ -22,6 +22,7 @@
<artifactId>cloud-awsapi</artifactId>
<version>4.0.0-SNAPSHOT</version>
<name>Apache CloudStack AWS API Bridge</name>
<packaging>war</packaging>
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack</artifactId>
@ -106,6 +107,60 @@
</excludes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack-my-lib</id>
<phase>process-resources</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-webapp</artifactId>
<version>${cs.axis2.version}</version>
<type>war</type>
<overWrite>false</overWrite>
</artifactItem>
</artifactItems>
<outputDirectory>${project.build.directory}/${project.artifactId}-${project.version}</outputDirectory>
<overWriteReleases>false</overWriteReleases>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.2</version>
<configuration>
<webXml>web/web.xml</webXml>
<excludes>**/client/*.class</excludes>
<webResources>
<resource>
<directory>conf</directory>
</resource>
<resource>
<directory>resource/Axis2</directory>
<targetPath>WEB-INF/conf</targetPath>
</resource>
<resource>
<directory>resource/AmazonEC2</directory>
<targetPath>WEB-INF/classes</targetPath>
<includes>
<include>crypto.properties</include>
<include>xes.keystore</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
</plugins>
<!--
<testSourceDirectory>test</testSourceDirectory>
<plugins>

View File

@ -27,8 +27,10 @@ Version: %{_ver}
#http://fedoraproject.org/wiki/PackageNamingGuidelines#Pre-Release_packages
%if "%{?_prerelease}" != ""
Release: 0.%{_build_number}%{dist}.%{_prerelease}
%define _maven_ver %{_ver}-SNAPSHOT
%else
Release: %{_rel}%{dist}
%define _maven_ver %{_ver}
%endif
License: Apache License 2.0
Vendor: CloudStack <engineering@cloud.com>
@ -311,7 +313,84 @@ echo Doing CloudStack build
rm $RPM_BUILD_ROOT/etc/rc.d/init.d/cloud-console-proxy
rm $RPM_BUILD_ROOT/usr/bin/cloud-setup-console-proxy
rm $RPM_BUILD_ROOT/usr/libexec/console-proxy-runner
./tools/ant/apache-ant-1.7.1/bin/ant deploy-rpm-install -Drpm.install.dir=$RPM_BUILD_ROOT
#
# Remove a lot of deps that maven pulled in, dirty fix
#
rm $RPM_BUILD_ROOT/usr/share/java/XmlSchema-1.4.2.jar
rm $RPM_BUILD_ROOT/usr/share/java/activation-1.1.jar
rm $RPM_BUILD_ROOT/usr/share/java/annogen-0.1.0.jar
rm $RPM_BUILD_ROOT/usr/share/java/ant-1.7.0.jar
rm $RPM_BUILD_ROOT/usr/share/java/ant-launcher-1.7.0.jar
rm $RPM_BUILD_ROOT/usr/share/java/antlr-2.7.6.jar
rm $RPM_BUILD_ROOT/usr/share/java/asm-3.1.jar
rm $RPM_BUILD_ROOT/usr/share/java/axiom-api-1.2.8.jar
rm $RPM_BUILD_ROOT/usr/share/java/axiom-dom-1.2.7.jar
rm $RPM_BUILD_ROOT/usr/share/java/axiom-impl-1.2.7.jar
rm $RPM_BUILD_ROOT/usr/share/java/axis-jaxrpc-1.4.jar
rm $RPM_BUILD_ROOT/usr/share/java/axis2-1.5.1.jar
rm $RPM_BUILD_ROOT/usr/share/java/axis2-adb-1.4.1.jar
rm $RPM_BUILD_ROOT/usr/share/java/axis2-adb-codegen-1.4.1.jar
rm $RPM_BUILD_ROOT/usr/share/java/axis2-ant-plugin-1.4.1.jar
rm $RPM_BUILD_ROOT/usr/share/java/axis2-codegen-1.4.1.jar
rm $RPM_BUILD_ROOT/usr/share/java/axis2-java2wsdl-1.4.1.jar
rm $RPM_BUILD_ROOT/usr/share/java/axis2-kernel-1.4.1.jar
rm $RPM_BUILD_ROOT/usr/share/java/cglib-nodep-2.2.2.jar
rm $RPM_BUILD_ROOT/usr/share/java/cloud-agent-4.0.0-SNAPSHOT-tests.jar
rm $RPM_BUILD_ROOT/usr/share/java/cloud-com.thoughtworks.selenium-1.0.1.jar
rm $RPM_BUILD_ROOT/usr/share/java/cloud-console-proxy-4.0.0-SNAPSHOT.jar
rm $RPM_BUILD_ROOT/usr/share/java/cloud-iControl.jar
rm $RPM_BUILD_ROOT/usr/share/java/cloud-manageontap.jar
rm $RPM_BUILD_ROOT/usr/share/java/cloud-netscaler-sdx.jar
rm $RPM_BUILD_ROOT/usr/share/java/cloud-netscaler.jar
rm $RPM_BUILD_ROOT/usr/share/java/cloud-patches-4.0.0-SNAPSHOT.jar
rm $RPM_BUILD_ROOT/usr/share/java/cloud-utils-4.0.0-SNAPSHOT-tests.jar
rm $RPM_BUILD_ROOT/usr/share/java/commons-collections-3.1.jar
rm $RPM_BUILD_ROOT/usr/share/java/commons-collections-3.2.1.jar
rm $RPM_BUILD_ROOT/usr/share/java/commons-fileupload-1.2.jar
rm $RPM_BUILD_ROOT/usr/share/java/commons-io-1.4.jar
rm $RPM_BUILD_ROOT/usr/share/java/commons-logging-1.0.4.jar
rm $RPM_BUILD_ROOT/usr/share/java/commons-logging-1.1.1.jar
rm $RPM_BUILD_ROOT/usr/share/java/dom4j-1.6.1.jar
rm $RPM_BUILD_ROOT/usr/share/java/geronimo-activation_1.1_spec-1.0.1.jar
rm $RPM_BUILD_ROOT/usr/share/java/geronimo-javamail_1.4_spec-1.2.jar
rm $RPM_BUILD_ROOT/usr/share/java/geronimo-jms_1.1_spec-1.1.jar
rm $RPM_BUILD_ROOT/usr/share/java/geronimo-stax-api_1.0_spec-1.0.1.jar
rm $RPM_BUILD_ROOT/usr/share/java/hamcrest-core-1.1.jar
rm $RPM_BUILD_ROOT/usr/share/java/hibernate-annotations-3.5.1-Final.jar
rm $RPM_BUILD_ROOT/usr/share/java/hibernate-commons-annotations-3.2.0.Final.jar
rm $RPM_BUILD_ROOT/usr/share/java/hibernate-core-3.5.1-Final.jar
rm $RPM_BUILD_ROOT/usr/share/java/hibernate-entitymanager-3.5.1-Final.jar
rm $RPM_BUILD_ROOT/usr/share/java/httpcore-nio-4.0-beta1.jar
rm $RPM_BUILD_ROOT/usr/share/java/icontrol-1.0.jar
rm $RPM_BUILD_ROOT/usr/share/java/javassist-3.9.0.GA.jar
rm $RPM_BUILD_ROOT/usr/share/java/jaxen-1.1.1.jar
rm $RPM_BUILD_ROOT/usr/share/java/json-simple-1.1.jar
rm $RPM_BUILD_ROOT/usr/share/java/jsr107cache-1.0.jar
rm $RPM_BUILD_ROOT/usr/share/java/jta-1.1.jar
rm $RPM_BUILD_ROOT/usr/share/java/manageontap-1.0.jar
rm $RPM_BUILD_ROOT/usr/share/java/mysql-connector-java-5.1.21.jar
rm $RPM_BUILD_ROOT/usr/share/java/neethi-2.0.4.jar
rm $RPM_BUILD_ROOT/usr/share/java/netscaler-1.0.jar
rm $RPM_BUILD_ROOT/usr/share/java/netscaler-sdx-1.0.jar
rm $RPM_BUILD_ROOT/usr/share/java/selenium-server-1.0.1.jar
rm $RPM_BUILD_ROOT/usr/share/java/servlet-api-2.3.jar
rm $RPM_BUILD_ROOT/usr/share/java/servlet-api-2.5-20081211.jar
rm $RPM_BUILD_ROOT/usr/share/java/slf4j-api-1.5.8.jar
rm $RPM_BUILD_ROOT/usr/share/java/stax-api-1.0.1.jar
rm $RPM_BUILD_ROOT/usr/share/java/woden-api-1.0M8.jar
rm $RPM_BUILD_ROOT/usr/share/java/woden-impl-dom-1.0M8.jar
rm $RPM_BUILD_ROOT/usr/share/java/ws-commons-util-1.0.2.jar
rm $RPM_BUILD_ROOT/usr/share/java/wstx-asl-3.2.4.jar
rm $RPM_BUILD_ROOT/usr/share/java/xalan-2.7.0.jar
rm $RPM_BUILD_ROOT/usr/share/java/xercesImpl-2.6.2.jar
rm $RPM_BUILD_ROOT/usr/share/java/xercesImpl-2.8.1.jar
rm $RPM_BUILD_ROOT/usr/share/java/xml-apis-1.0.b2.jar
rm $RPM_BUILD_ROOT/usr/share/java/xml-apis-1.3.04.jar
rm $RPM_BUILD_ROOT/usr/share/java/xmlParserAPIs-2.6.0.jar
rm $RPM_BUILD_ROOT/usr/share/java/xpp3_min-1.1.4c.jar
rm $RPM_BUILD_ROOT/usr/share/java/xstream-1.3.1.jar
# TODO: This is for awsapi, need to think about this
#./tools/ant/apache-ant-1.7.1/bin/ant deploy-rpm-install -Drpm.install.dir=$RPM_BUILD_ROOT
%clean
@ -415,8 +494,8 @@ fi
%files utils
%defattr(0644,root,root,0755)
%{_javadir}/%{name}-utils.jar
%{_javadir}/%{name}-api.jar
%{_javadir}/%{name}-utils-%{_maven_ver}.jar
%{_javadir}/%{name}-api-%{_maven_ver}.jar
%attr(0755,root,root) %{_bindir}/cloud-sccs
%attr(0755,root,root) %{_bindir}/cloud-gitrevs
%doc %{_docdir}/%{name}-%{version}/version-info
@ -431,26 +510,27 @@ fi
%files server
%defattr(0644,root,root,0755)
%{_javadir}/%{name}-server.jar
%{_javadir}/%{name}-vmware-base.jar
%{_javadir}/%{name}-ovm.jar
%{_javadir}/%{name}-dp-user-concentrated-pod.jar
%{_javadir}/%{name}-dp-user-dispersing.jar
%{_javadir}/%{name}-host-allocator-random.jar
%{_javadir}/%{name}-plugin-f5.jar
%{_javadir}/%{name}-plugin-netscaler.jar
%{_javadir}/%{name}-plugin-ovs.jar
%{_javadir}/%{name}-plugin-srx.jar
%{_javadir}/%{name}-storage-allocator-random.jar
%{_javadir}/%{name}-user-authenticator-ldap.jar
%{_javadir}/%{name}-user-authenticator-md5.jar
%{_javadir}/%{name}-user-authenticator-plaintext.jar
%{_javadir}/%{name}-vmware.jar
%{_javadir}/%{name}-xen.jar
%{_javadir}/%{name}-plugin-nicira-nvp.jar
%{_javadir}/%{name}-plugin-elb.jar
%{_javadir}/%{name}-plugin-netapp.jar
%{_javadir}/%{name}-server-%{_maven_ver}.jar
%{_javadir}/%{name}-vmware-base-%{_maven_ver}.jar
%{_javadir}/%{name}-plugin-hypervisor-ovm-%{_maven_ver}.jar
%{_javadir}/%{name}-plugin-hypervisor-xen-%{_maven_ver}.jar
%{_javadir}/%{name}-plugin-planner-user-concentrated-pod-%{_maven_ver}.jar
%{_javadir}/%{name}-plugin-planner-user-dispersing-%{_maven_ver}.jar
%{_javadir}/%{name}-plugin-host-allocator-random-%{_maven_ver}.jar
%{_javadir}/%{name}-plugin-network-ovs-%{_maven_ver}.jar
%{_javadir}/%{name}-plugin-network-nvp-%{_maven_ver}.jar
%{_javadir}/%{name}-plugin-network-elb-%{_maven_ver}.jar
%{_javadir}/%{name}-plugin-storage-allocator-random-%{_maven_ver}.jar
%{_javadir}/%{name}-plugin-user-authenticator-ldap-%{_maven_ver}.jar
%{_javadir}/%{name}-plugin-user-authenticator-md5-%{_maven_ver}.jar
%{_javadir}/%{name}-plugin-user-authenticator-plaintext-%{_maven_ver}.jar
%config(noreplace) %{_sysconfdir}/%{name}/server/*
#%{_javadir}/%{name}-plugin-f5-%{_maven_ver}.jar
#%{_javadir}/%{name}-plugin-netscaler-%{_maven_ver}.jar
#%{_javadir}/%{name}-plugin-srx-%{_maven_ver}.jar
#%{_javadir}/%{name}-vmware-%{_maven_ver}.jar
#%{_javadir}/%{name}-plugin-netapp-%{_maven_ver}.jar
#%{_javadir}/%{name}-plugin-hypervisor-kvm-%{_maven_ver}.jar
%files agent-scripts
%defattr(-,root,root,-)
@ -462,49 +542,47 @@ fi
%files deps
%defattr(0644,root,root,0755)
%{_javadir}/%{name}-commons-codec-1.5.jar
%{_javadir}/%{name}-commons-dbcp-1.4.jar
%{_javadir}/%{name}-commons-pool-1.5.6.jar
%{_javadir}/%{name}-commons-httpclient-3.1.jar
%{_javadir}/%{name}-google-gson-1.7.1.jar
%{_javadir}/%{name}-netscaler.jar
%{_javadir}/%{name}-netscaler-sdx.jar
%{_javadir}/%{name}-log4j-extras.jar
%{_javadir}/%{name}-backport-util-concurrent-3.0.jar
%{_javadir}/%{name}-plugin-hypervisor-kvm.jar
%{_javadir}/%{name}-ehcache.jar
%{_javadir}/%{name}-email.jar
%{_javadir}/%{name}-httpcore-4.0.jar
%{_javadir}/commons-codec-1.6.jar
%{_javadir}/commons-dbcp-1.4.jar
%{_javadir}/commons-pool-1.6.jar
%{_javadir}/commons-httpclient-3.1.jar
%{_javadir}/gson-1.7.1.jar
%{_javadir}/apache-log4j-extras-1.1.jar
%{_javadir}/backport-util-concurrent-3.1.jar
%{_javadir}/ehcache-1.5.0.jar
%{_javadir}/mail-1.4.jar
%{_javadir}/httpcore-4.0.jar
%{_javadir}/libvirt-0.4.8.jar
%{_javadir}/%{name}-log4j.jar
%{_javadir}/%{name}-trilead-ssh2-build213.jar
%{_javadir}/%{name}-cglib.jar
%{_javadir}/%{name}-xenserver-5.6.100-1.jar
%{_javadir}/%{name}-xmlrpc-common-3.*.jar
%{_javadir}/%{name}-xmlrpc-client-3.*.jar
%{_javadir}/%{name}-jstl-1.2.jar
%{_javadir}/log4j-1.2.16.jar
%{_javadir}/trilead-ssh2-build213-svnkit-1.3-patch.jar
%{_javadir}/cglib-2.2.jar
%{_javadir}/xapi-5.6.100-1-SNAPSHOT.jar
%{_javadir}/xmlrpc-common-3.*.jar
%{_javadir}/xmlrpc-client-3.*.jar
%{_javadir}/jstl-1.2.jar
%{_javadir}/jetty-6.1.26.jar
%{_javadir}/jetty-util-6.1.26.jar
%{_javadir}/%{name}-axis.jar
%{_javadir}/%{name}-commons-discovery.jar
%{_javadir}/%{name}-wsdl4j-1.6.2.jar
%{_javadir}/%{name}-bcprov-jdk16-1.45.jar
%{_javadir}/%{name}-jsch-0.1.42.jar
%{_javadir}/%{name}-iControl.jar
%{_javadir}/%{name}-manageontap.jar
%{_javadir}/axis-1.4.jar
%{_javadir}/commons-discovery-0.5.jar
%{_javadir}/wsdl4j-1.6.2.jar
%{_javadir}/bcprov-jdk16-1.46.jar
%{_javadir}/jsch-0.1.42.jar
%{_javadir}/vmware*.jar
%{_javadir}/%{name}-jnetpcap.jar
%{_javadir}/%{name}-junit.jar
%{_javadir}/%{name}-jasypt-1.8.jar
%{_javadir}/%{name}-commons-configuration-1.8.jar
%{_javadir}/%{name}-commons-lang-2.6.jar
%{_javadir}/%{name}-ejb-api-3.0.jar
%{_javadir}/%{name}-javax.persistence-2.0.0.jar
%{_javadir}/junit-4.10.jar
%{_javadir}/jasypt-1.9.0.jar
%{_javadir}/commons-configuration-1.8.jar
%{_javadir}/commons-lang-2.6.jar
%{_javadir}/ejb-api-3.0.jar
%{_javadir}/hibernate-jpa-2.0-api-1.0.0.Final.jar
#%{_javadir}/%{name}-netscaler.jar
#%{_javadir}/%{name}-netscaler-sdx.jar
#%{_javadir}/%{name}-iControl.jar
#%{_javadir}/%{name}-manageontap.jar
%files core
%defattr(0644,root,root,0755)
%{_javadir}/%{name}-core.jar
%{_javadir}/%{name}-core-%{_maven_ver}.jar
%files python
%defattr(0644,root,root,0755)
@ -551,7 +629,7 @@ fi
%files agent-libs
%defattr(0644,root,root,0755)
%{_javadir}/%{name}-agent.jar
%{_javadir}/%{name}-agent-%{_maven_ver}.jar
%files agent
%defattr(0644,root,root,0755)
@ -578,7 +656,7 @@ fi
%files usage
%defattr(0644,root,root,0775)
%{_javadir}/%{name}-usage.jar
%{_javadir}/%{name}-usage-%{_maven_ver}.jar
%attr(0755,root,root) %{_initrddir}/%{name}-usage
%dir %attr(0770,root,%{name}) %{_localstatedir}/log/%{name}/usage
%config(noreplace) %{_sysconfdir}/%{name}/usage/usage-components.xml

View File

@ -135,7 +135,8 @@ def build_jars ():
"cloud-servlet-api.jar", "cloud-commons-logging-1.1.1.jar",
"cloud-ws-commons-util-1.0.2.jar",
"cloud-commons-collections-3.2.1.jar", "vmware*.jar", "cloud-secstorage-extras.jar",
"cloud-agent-simulator.jar", "cloud-awsapi.jar", "cloud-test.jar", "cloud-wsdl4j.jar", "cloud-console-proxy.jar"]
"cloud-agent-simulator.jar", "cloud-awsapi.jar", "cloud-test.jar", "cloud-wsdl4j.jar", "cloud-console-proxy.jar",
"cloud-*tests.jar" ]
for a in jars_str:
if _basename (a).startswith ("cloud-") \
@ -428,6 +429,16 @@ def build_usage_dir ():
Utils.subst_vars("${MSCONF}/db.properties",bld.env))
Utils.pprint ("GREEN", "Installed files of usage/")
def build_awsapi():
start_path = bld.path.find_dir ("awsapi")
bld.install_files_filtered("${DATADIR}/cloud/bridge/conf","conf/*", cwd = start_path)
bld.install_files_filtered("${DATADIR}/cloud/bridge/lib","target/cloud-awsapi-*/WEB-INF/lib/*jar", cwd = start_path)
bld.install_files_filtered("${DATADIR}/cloud/bridge/webapps7080/WEB-INF","web/*", cwd = start_path)
start_path = bld.path.find_dir ("awsapi-setup")
bld.install_files_filtered("${DATADIR}/cloud/setup/bridge/db","db/mysql/*.sql", cwd = start_path)
bld.install_files_filtered("${DATADIR}/cloud/setup/bridge/db","db/mysql/*.sh", cwd = start_path)
bld.install_files_filtered("${BINDIR}","setup/*", cwd = start_path)
Utils.pprint ("GREEN", "Installed files of awsapi/")
# Get started to execute here
@ -451,6 +462,7 @@ build_xml_api_description ()
build_ovm ()
#build_test()
build_usage_dir()
build_awsapi()
# ====================== Magic! =========================================
bld.use_the_magic()