From a6d99cfdef53a719d8d009cc41c5ae4aa25763c6 Mon Sep 17 00:00:00 2001 From: David Nalley Date: Wed, 17 Oct 2012 02:20:17 -0400 Subject: [PATCH] adding content on building packages from source --- docs/en-US/Installation_Guide.xml | 1 + docs/en-US/build-deb.xml | 60 ++++++++++++++++++++++ docs/en-US/build-rpm.xml | 82 +++++++++++++++++++++++++++++++ docs/en-US/extracting-source.xml | 36 ++++++++++++++ docs/en-US/getting-release.xml | 63 ++++++++++++++++++++++++ docs/en-US/source-prereqs.xml | 42 ++++++++++++++++ docs/en-US/source.xml | 20 ++++++-- docs/en-US/verifying-source.xml | 82 +++++++++++++++++++++++++++++++ 8 files changed, 381 insertions(+), 5 deletions(-) create mode 100644 docs/en-US/build-deb.xml create mode 100644 docs/en-US/build-rpm.xml create mode 100644 docs/en-US/extracting-source.xml create mode 100644 docs/en-US/getting-release.xml create mode 100644 docs/en-US/source-prereqs.xml create mode 100644 docs/en-US/verifying-source.xml diff --git a/docs/en-US/Installation_Guide.xml b/docs/en-US/Installation_Guide.xml index c945020bce0..bdc3b8ea20a 100644 --- a/docs/en-US/Installation_Guide.xml +++ b/docs/en-US/Installation_Guide.xml @@ -46,6 +46,7 @@ + diff --git a/docs/en-US/build-deb.xml b/docs/en-US/build-deb.xml new file mode 100644 index 00000000000..0fe3d90ce34 --- /dev/null +++ b/docs/en-US/build-deb.xml @@ -0,0 +1,60 @@ + + +%BOOK_ENTITIES; +]> + + + +
+ Building DEB packages + + In addition to the bootstrap dependencies, you'll also need to install + a few other dependencies by issuing the following commands: + # apt-get update + $ apt-get install debhelper openjdk-6-jdk tomcat6 libws-commons-util-java genisoimage python-mysqldb + + + While we have defined, and you have presumably already installed the + bootstrap prerequisites, there are a number of build time prerequisites + that need to be resolved. &PRODUCT; uses maven for dependency resolution. + You can resolve the buildtime depdencies for CloudStack by running the + following command: + $ mvn -P deps + + + Now that we have resolved the dependencies we can move on to building &PRODUCT; + and packaging them into DEBs by issuing the following command. + # dpkg-buildpackage + + +
+ Setting up an APT repo + TBD +
+
+ Configuring your machines to use the APT repository + + Now that we have created the repository, you need to configure your machine + to make use of the APT repository. We do that by issuing the following commands: + $ echo "deb http://url.to/apt/repo $(lsb_release -s -c) 4.0" > /etc/apt/sources.list.d/cloudstack.list + # apt-get update + +
+
diff --git a/docs/en-US/build-rpm.xml b/docs/en-US/build-rpm.xml new file mode 100644 index 00000000000..e983aba8fe5 --- /dev/null +++ b/docs/en-US/build-rpm.xml @@ -0,0 +1,82 @@ + + +%BOOK_ENTITIES; +]> + + + +
+ Building RPMs + + While we have defined, and you have presumably already installed the + bootstrap prerequisites, there are a number of build time prerequisites + that need to be resolved. &PRODUCT; uses maven for dependency resolution. + You can resolve the buildtime depdencies for CloudStack by running the + following command: + $ mvn -P deps + + + Now that we have resolved the dependencies we can move on to building &PRODUCT; + and packaging them into RPMs by issuing the following command. + $ ./waf rpm + + + Once this completes, you should find assembled RPMs in + artifacts/rpmbuild/RPMS/x86_64 + +
+ Creating a yum repo + + While RPMs is an ideal packaging format - it's most easily consumed from + yum repositories over a network. We'll move into the directory with the + newly created RPMs by issuing the following command: + $ cd artifacts/rpmbuild/RPMS/x86_64 + + + Next we'll issue a command to create the repository metadata by + issuing the following command: + $ createrepo ./ + + + The files and directories within our current working directory can now + be uploaded to a web server and serve as a yum repository + +
+
+ Configuring your systems to use your new yum repository + + Now that your yum repository is populated with RPMs and metadata + we need to configure our machines that need to install CloudStack. + We will create a file at /etc/yum.repos.d/cloudstack.repo + with the following content: + +[apache-cloudstack] +name=Apache CloudStack +baseurl=http://webserver.tld/path/to/repo +enabled=1 +gpgcheck=0 + + + + Completing this step will allow you to easily install CloudStack on a number of + machines across the network. + +
+
diff --git a/docs/en-US/extracting-source.xml b/docs/en-US/extracting-source.xml new file mode 100644 index 00000000000..97a40b66213 --- /dev/null +++ b/docs/en-US/extracting-source.xml @@ -0,0 +1,36 @@ + + +%BOOK_ENTITIES; +]> + + + +
+ Extracting source + + Extracting the &PRODUCT; release is relatively simple and can be done + with a single command as follows: + $ tar -jxvf apache-cloudstack-4.0.0-incubating-src.tar.bz2 + + + You can now move into the directory: + $ cd ./apache-cloudstack-4.0.0-incubating-src + +
diff --git a/docs/en-US/getting-release.xml b/docs/en-US/getting-release.xml new file mode 100644 index 00000000000..5ed6ac1a2f9 --- /dev/null +++ b/docs/en-US/getting-release.xml @@ -0,0 +1,63 @@ + + +%BOOK_ENTITIES; +]> + + + +
+ Getting the release + + You can download the official &PRODUCT; 4.0.0 release from the + + Apache CloudStack project download page. + + + You'll notice several links under the 'Latest release' section. + + + + + + apache-cloudstack-4.0.0-incubating-src.tar.bz2 + - This is the link to the release itself. + + + + + PGP + - This is a detached cryptographic signature that can be used to help + verify the authenticity of the release. + + + + + MD5 + - An MD5 hash of the release to aid in verify the validity of the release download. + + + + + SHA512 + - A SHA512 hash of the release to aid in verify the validity of the release download. + + + +
diff --git a/docs/en-US/source-prereqs.xml b/docs/en-US/source-prereqs.xml new file mode 100644 index 00000000000..6c2bc2a3cb8 --- /dev/null +++ b/docs/en-US/source-prereqs.xml @@ -0,0 +1,42 @@ + + +%BOOK_ENTITIES; +]> + + + +
+ Prerequisites for building Apache CloudStack + + There are a number of prerequisites needed to build &PRODUCT;. This + document assumes compilation on a Linux system that uses RPMs or DEBs + for package management. + + + The minimum bootstrapped prerequisites for building &PRODUCT; includes + the following: + + ant + maven (version 3) + Java (Java 6/OpenJDK 1.6) + rpmbuild or dpkg-dev + + +
diff --git a/docs/en-US/source.xml b/docs/en-US/source.xml index ffa3d0cb9b9..3cb4af2321f 100644 --- a/docs/en-US/source.xml +++ b/docs/en-US/source.xml @@ -1,5 +1,5 @@ - %BOOK_ENTITIES; ]> @@ -22,16 +22,26 @@ under the License. --> -
+ Building from Source The official &PRODUCT; release is always in source code form. While there may exist convenience binaries in various forms from a number of places, the source is the canonical release will be source. In this document we'll cover acquiring the source release, building that into binary, deployable packages. + + While building and deploying directly from source is certainly possible, the reality + of Infrastructure-as-a-Service cloud computing implies a need to deploy packages on + a potentially large number of systems, which RPMs and DEBs fill nicely. + + + Building and deploying directly from source is thus outside the scope of this + document, but is documented in the INSTALL.md file in the release. + - - -
+ + + + diff --git a/docs/en-US/verifying-source.xml b/docs/en-US/verifying-source.xml new file mode 100644 index 00000000000..05b54ecb6a9 --- /dev/null +++ b/docs/en-US/verifying-source.xml @@ -0,0 +1,82 @@ + + +%BOOK_ENTITIES; +]> + + + +
+ Verifying the downloaded release + + There are a number of mechanisms to check the authenticity and validity of a + downloaded release. + +
+ Getting the KEYS + + To enable you to verify the GPG signature, you will need to download the + KEYS + file. + + + You next need to import those keys, which you can do by running the following command: + # gpg --import KEYS + +
+
+ GPG + + The &PRODUCT; project provides a detached GPG signature of the release. + To check the signature, run the following command: + $ gpg --verify apache-cloudstack-4.0.0-incubating-src.tar.bz2.asc + + + If the signature is valid you will see a line of output that contains 'Good signature'. + +
+
+ MD5 + + In addition to the cryptographic signature, the &PRODUCT; provides a number + of cryptographic hashes to aid in assurance of validity of the downloaded + release. You can verify this hash by executing the following command: + $ gpg --print-md MD5 apache-cloudstack-4.0.0-incubating-src.tar.bz2 | diff - apache-cloudstack-4.0.0-incubating-src.tar.bz2.md5 + + + If this successfully completes you should see no output. If there is any output from them, + then there is a difference between the hash you generated locally and the hash that has been + pulled from the server. + +
+
+ SHA512 + + In addition to the MD5 hash, the &PRODUCT; project provides a SHA512 + cryptographic hash to aid in assurance of the validity of the downloaded + release. You can verify this hash by executing the following command: + $ gpg --print-md SHA512 apache-cloudstack-4.0.0-incubating-src.tar.bz2 | diff - apache-cloudstack-4.0.0-incubating-src.tar.bz2.sha + + + If this command successfully completes you should see no output. If there is any output from them, + then there is a difference between the hash you generated locally and the hash that has been + pulled from the server. + +
+