From 32b5e239a6e09bdd0034608acc699fa61a2458cb Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Sat, 30 Apr 2011 11:56:07 -0400 Subject: [PATCH 1/7] Allow specifying the revision of each fetched resource. I'm building asmack for BEEM, and they have a patch to pin the revision of smack to the one they build with. This is a partial merge of that patch: http://www.beem-project.com/hg/trunk/file/64f37098247c/doc/asmack-beem/beem-build-process.patch However, this is done in a way that doesn't require specifying "HEAD" on every fetch that doesn't require it, so it'll simplify the downstream patch to a one-line change. --- build.bash | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.bash b/build.bash index ce793f9..fd56f90 100755 --- a/build.bash +++ b/build.bash @@ -15,11 +15,11 @@ fetch() { if ! [ -f "${2}/.svn/entries" ]; then mkdir "${2}" cd "${2}" - svn co --non-interactive --trust-server-cert "${1}" "." + svn co --non-interactive --trust-server-cert "${1}" -r "${3:-HEAD}" "." else cd "${2}" svn cleanup - svn up + svn up -r "${3:-HEAD}" fi ) } From e80ddcad2142938176a1bf4b12bd59c3a5495d45 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Sat, 30 Apr 2011 12:05:35 -0400 Subject: [PATCH 2/7] Simplify directory creation. --- build.bash | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/build.bash b/build.bash index fd56f90..b06b8fa 100755 --- a/build.bash +++ b/build.bash @@ -2,11 +2,7 @@ echo "## Step 00: initialize" ( - if ! [ -d build ]; then - mkdir build - mkdir build/src - mkdir build/src/trunk - fi + mkdir -p build/src/trunk ) fetch() { From 9e172bf9ba225d9da0dfb1c05e87d94de8b99727 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Sat, 30 Apr 2011 12:07:33 -0400 Subject: [PATCH 3/7] Stop on error. If something fails unexpectedly, stop immediately. Pressing ^C should stop the whole task, not cancel a running svn checkout and start the next, and if a fetch fails, don't keep going and hide the error until it breaks things later on. --- build.bash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.bash b/build.bash index b06b8fa..3204471 100755 --- a/build.bash +++ b/build.bash @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e echo "## Step 00: initialize" ( From 7fd5e2f607598ac8ae3f7e58d58b105bd4213fa9 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Sat, 30 Apr 2011 16:27:17 -0400 Subject: [PATCH 4/7] Fix building in lower platform versions. Building in Eclipse fails when the SDK version is lower than 9, because javax.xml.transform only exists in that version. Removing the code using the imports isn't enough; remove the imports, too. Fixes build with SDK version 4. --- patch/23-strip-unused-xml-transform.patch | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/patch/23-strip-unused-xml-transform.patch b/patch/23-strip-unused-xml-transform.patch index 9759189..2825215 100644 --- a/patch/23-strip-unused-xml-transform.patch +++ b/patch/23-strip-unused-xml-transform.patch @@ -1,6 +1,19 @@ --- org/jivesoftware/smackx/pubsub/util/XmlUtils.java +++ org/jivesoftware/smackx/pubsub/util/XmlUtils.java -@@ -28,32 +28,6 @@ import javax.xml.transform.stream.StreamSource; +@@ -15,12 +15,6 @@ + + import java.io.StringReader; + +-import javax.xml.transform.OutputKeys; +-import javax.xml.transform.Transformer; +-import javax.xml.transform.TransformerFactory; +-import javax.xml.transform.stream.StreamResult; +-import javax.xml.transform.stream.StreamSource; +- + /** + * Simple utility for pretty printing xml. + * +@@ -28,32 +22,6 @@ */ public class XmlUtils { From 8733c62c3f336dea9810d53c3906e35f1fcf9d10 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Sat, 30 Apr 2011 17:11:02 -0400 Subject: [PATCH 5/7] Clean up building for Eclipse. The build drops files into build/src/trunk, leading to paths like build/src/trunk/org. Most projects have paths that look like build/src/org. By using the "standard" (ish) layout, you can create an Eclipse project, tell it to "create project from existing source", and point it at build/, and it'll just work. Adjust build.xml for the Ant build. --- build.bash | 27 +++++++++++++-------------- build.xml | 55 +++++++++++++++++++++++++----------------------------- 2 files changed, 38 insertions(+), 44 deletions(-) diff --git a/build.bash b/build.bash index 3204471..a1d0f05 100755 --- a/build.bash +++ b/build.bash @@ -2,7 +2,7 @@ echo "## Step 00: initialize" ( - mkdir -p build/src/trunk + mkdir -p build/src ) fetch() { @@ -33,7 +33,7 @@ gitfetch() { } fetchall() { - gitfetch "git://github.com/rtreffer/smack.git" "smack" + fetch "http://svn.igniterealtime.org/svn/repos/smack/trunk" "smack" "11644" fetch "http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/management/common/src/main/" "qpid" fetch "http://svn.apache.org/repos/asf/harmony/enhanced/java/trunk/classlib/modules/auth/src/main/java/common/" "harmony" fetch "https://dnsjava.svn.sourceforge.net/svnroot/dnsjava/trunk" "dnsjava" @@ -56,26 +56,25 @@ buildsrc() { echo "## Step 20: creating build/src" rm -rf build/src mkdir build/src - mkdir build/src/trunk - copyfolder "src/smack/source/" "build/src/trunk" "." - copyfolder "src/qpid/java" "build/src/trunk" "org/apache/qpid/management/common/sasl" - copyfolder "src/novell-openldap-jldap" "build/src/trunk" "." - copyfolder "src/dnsjava" "build/src/trunk" "org" - copyfolder "src/harmony" "build/src/trunk" "." - copyfolder "src/custom" "build/src/trunk" "." - copyfolder "src/jbosh" "build/src/trunk" "." + copyfolder "src/smack/source/" "build/src" "." + copyfolder "src/qpid/java" "build/src" "org/apache/qpid/management/common/sasl" + copyfolder "src/novell-openldap-jldap" "build/src" "." + copyfolder "src/dnsjava" "build/src" "org" + copyfolder "src/harmony" "build/src" "." + copyfolder "src/custom" "build/src" "." + copyfolder "src/jbosh" "build/src" "." } patchsrc() { echo "## Step 21: patch build/src" ( - cd build/src/trunk/ - for PATCH in `(cd "../../../${1}" ; find -maxdepth 1 -type f)|sort` ; do + cd build/src/ + for PATCH in `(cd "../../${1}" ; find -maxdepth 1 -type f)|sort` ; do if echo $PATCH | grep '\.sh$'; then - if [ -f "../../../${1}/$PATCH" ]; then "../../../${1}/$PATCH" || exit 1 ; fi + if [ -f "../../${1}/$PATCH" ]; then "../../${1}/$PATCH" || exit 1 ; fi fi if echo $PATCH | grep '\.patch$'; then - if [ -f "../../../${1}/$PATCH" ]; then patch -p0 < "../../../${1}/$PATCH" || exit 1 ; fi + if [ -f "../../${1}/$PATCH" ]; then patch -p0 < "../../${1}/$PATCH" || exit 1 ; fi fi done ) diff --git a/build.xml b/build.xml index 827f4c5..5984b02 100644 --- a/build.xml +++ b/build.xml @@ -23,25 +23,24 @@ - - + - - + - - + - - + - - + Date: Sat, 30 Apr 2011 17:28:19 -0400 Subject: [PATCH 6/7] Add an AndroidManifest. This is the last step for Eclipse: it needs an AndroidManifest.xml, even for libraries. (It uses it to determine which SDK version to build against, at least.) Now, the only thing you need to do in Eclipse is create a project pointing at build, then in the project properties Android page, select "Is Library". --- build.bash | 1 + src/AndroidManifest.xml | 4 ++++ 2 files changed, 5 insertions(+) create mode 100644 src/AndroidManifest.xml diff --git a/build.bash b/build.bash index a1d0f05..8d72c6c 100755 --- a/build.bash +++ b/build.bash @@ -63,6 +63,7 @@ buildsrc() { copyfolder "src/harmony" "build/src" "." copyfolder "src/custom" "build/src" "." copyfolder "src/jbosh" "build/src" "." + (cp src/AndroidManifest.xml build/) } patchsrc() { diff --git a/src/AndroidManifest.xml b/src/AndroidManifest.xml new file mode 100644 index 0000000..563e410 --- /dev/null +++ b/src/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + + From b630bfe41d14c1104b75e67e8ca53359c3d3b4ad Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Sat, 30 Apr 2011 18:23:57 -0400 Subject: [PATCH 7/7] Fix smack repository path. Unintended change in 70038b5c2e397 from a remote patch; revert it. --- build.bash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.bash b/build.bash index 8d72c6c..4ca74b3 100755 --- a/build.bash +++ b/build.bash @@ -33,7 +33,7 @@ gitfetch() { } fetchall() { - fetch "http://svn.igniterealtime.org/svn/repos/smack/trunk" "smack" "11644" + gitfetch "git://github.com/rtreffer/smack.git" "smack" fetch "http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/management/common/src/main/" "qpid" fetch "http://svn.apache.org/repos/asf/harmony/enhanced/java/trunk/classlib/modules/auth/src/main/java/common/" "harmony" fetch "https://dnsjava.svn.sourceforge.net/svnroot/dnsjava/trunk" "dnsjava"