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.
Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/79004fc7 Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/79004fc7 Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/79004fc7 Branch: refs/heads/4.0 Commit: 79004fc7bc5f24f8bf9c75f7a0b0fef01042db13 Parents: dd07d15 Author: Hugo Trippaers <[email protected]> Authored: Tue Sep 4 11:05:55 2012 +0200 Committer: Hugo Trippaers <[email protected]> Committed: Tue Sep 4 15:16:18 2012 +0200 ---------------------------------------------------------------------- awsapi/pom.xml | 55 ++++++++++++++ cloud.spec | 196 +++++++++++++++++++++++++++++++++++--------------- wscript_build | 16 ++++- 3 files changed, 206 insertions(+), 61 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/79004fc7/awsapi/pom.xml ---------------------------------------------------------------------- diff --git a/awsapi/pom.xml b/awsapi/pom.xml index cf91033..2909376 100644 --- a/awsapi/pom.xml +++ b/awsapi/pom.xml @@ -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> http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/79004fc7/cloud.spec ---------------------------------------------------------------------- diff --git a/cloud.spec b/cloud.spec index 23c9483..0a1de44 100644 --- a/cloud.spec +++ b/cloud.spec @@ -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 <[email protected]> @@ -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 http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/79004fc7/wscript_build ---------------------------------------------------------------------- diff --git a/wscript_build b/wscript_build index 4abc031..b182097 100644 --- a/wscript_build +++ b/wscript_build @@ -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,7 +429,17 @@ 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 build_utils_docs () @@ -451,6 +462,7 @@ build_xml_api_description () build_ovm () #build_test() build_usage_dir() +build_awsapi() # ====================== Magic! ========================================= bld.use_the_magic()
