summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Shumaker <LukeShu@sbcglobal.net>2014-06-15 01:38:17 -0400
committerLuke Shumaker <LukeShu@sbcglobal.net>2014-06-15 01:38:17 -0400
commiteaa652dd99d9bd12fda6e4e6043d1b7696cf363a (patch)
tree127f8ef82fd1b6665addd9a2c82d451f7058671d
parent570e0dd0f7bb790ad83adfdb74708fa893a3c4a3 (diff)
so much stuff
-rw-r--r--conf/dependencies.mk100
-rw-r--r--conf/sources.all.mk2
-rw-r--r--conf/sources.mk118
l---------rules/asm41
l---------rules/asm51
-rw-r--r--rules/bnd/delete.list12
-rw-r--r--rules/cglib/delete.list1
-rw-r--r--rules/groovy/Makefile39
-rw-r--r--rules/groovy/delete.list3
-rw-r--r--rules/guice-core/sourceDirectory.mk1
-rw-r--r--rules/guice/delete.list3
-rw-r--r--rules/hawtjni-bootstrap/no-maven-plugin.mk1
l---------rules/hawtjni-bootstrap/subdir-deps.mk1
-rw-r--r--rules/hawtjni/subdir-deps.mk3
-rw-r--r--rules/osgi42-core/Makefile35
l---------rules/osgi43-core1
l---------rules/osgi50-core1
-rw-r--r--rules/xbean-bootstrap/delete.list5
-rw-r--r--rules/xbean-bootstrap/no-groovy.patch91
-rw-r--r--rules/xbean-bootstrap/no-log4j.patch (renamed from rules/xbean-reflect-bootstrap/no-log4j.patch)16
-rw-r--r--rules/xbean-bootstrap/no-shading.patch32
-rw-r--r--rules/xbean-bootstrap/no-springframework.patch21
-rw-r--r--rules/xbean-bootstrap/subdir-deps.mk1
23 files changed, 408 insertions, 81 deletions
diff --git a/conf/dependencies.mk b/conf/dependencies.mk
index 9ad5a74..5d90e80 100644
--- a/conf/dependencies.mk
+++ b/conf/dependencies.mk
@@ -6,7 +6,7 @@ dep-modello-cli = \
build/packages/plexus-classworlds \
build/packages/plexus-container-default \
build/packages/plexus-utils \
- build/packages/xbean-reflect-bootstrap
+ build/packages/xbean-bootstrap
# What is needed to use the Plexus Metadata Generator command line
dep-plexus-metadata-generator-cli = \
build/packages/commons-cli \
@@ -19,7 +19,7 @@ dep-plexus-metadata-generator-cli = \
build/packages/plexus-container-default \
build/packages/plexus-utils \
build/packages/qdox \
- build/packages/xbean-reflect-bootstrap
+ build/packages/xbean-bootstrap
# Where is xerces2
dep-xerces2 = \
/usr/share/java/serializer.jar \
@@ -29,13 +29,27 @@ dep-xerces2 = \
dep-jsr305 = build/packages/jsr305
dep-jsr330 = build/packages/atinject-javax.inject
+################################################################################
+
+# Apache
+
+build/packages/httpcomponents-core: \
+ build/packages/commons-cli
+build/packages/httpcomponents-client-bootstrap: \
+ build/packages/commons-codec \
+ build/packages/httpcomponents-core \
+ /usr/share/java/commons-logging/commons-logging.jar
+
build/packages/maven: \
$(dep-modello-cli) \
$(dep-plexus-metadata-generator-cli) \
$(dep-jsr330) \
build/packages/aether-core-bootstrap \
+ build/packages/guice-core \
build/packages/modello-plugins \
- build/packages/plexus-component-annotations
+ build/packages/plexus-component-annotations \
+ build/packages/plexus-interpolation \
+ build/packages/wagon
build/packages/maven-artifact-bootstrap: \
build/packages/plexus-utils
build/packages/maven-plugin-api-bootstrap: \
@@ -44,6 +58,35 @@ build/packages/maven-plugin-api-bootstrap: \
build/packages/plexus-container-default \
build/packages/plexus-utils
+build/packages/mina: \
+ build/packages/commons-lang2 \
+ build/packages/jzlib \
+ build/packages/ognl \
+ build/packages/slf4j-api \
+ /usr/share/java/rxtx/RXTXcomm.jar \
+ /usr/share/java/tomcat8/tomcat-jni.jar
+build/packages/mina-sshd: \
+ build/packages/jzlib \
+ build/packages/mina \
+ build/packages/slf4j-api \
+ /usr/share/java/tomcat8/tomcat-jni.jar
+
+build/packages/maven-plugin-annotations-bootstrap: \
+ build/packages/maven-artifact-bootstrap
+build/packages/maven-plugin-tools-api-bootstrap: \
+ build/packages/maven-artifact-bootstrap \
+ build/packages/maven-plugin-api-bootstrap \
+ build/packages/plexus-container-default \
+ build/packages/plexus-utils
+
+build/packages/xbean-bootstrap: \
+ build/packages/asm3 \
+ build/packages/slf4j-api \
+ build/packages/osgi42-core \
+ /usr/share/java/commons-logging/commons-logging.jar
+
+# Modello
+
build/packages/modello-core: \
build/packages/plexus-build-api \
build/packages/plexus-container-default \
@@ -54,16 +97,7 @@ build/packages/modello-plugins: \
build/packages/plexus-build-api \
build/packages/plexus-utils
-build/packages/maven-plugin-annotations-bootstrap: \
- build/packages/maven-artifact-bootstrap
-build/packages/maven-plugin-tools-api-bootstrap: \
- build/packages/maven-artifact-bootstrap \
- build/packages/maven-plugin-api-bootstrap \
- build/packages/plexus-container-default \
- build/packages/plexus-utils
-build/packages/xbean-reflect-bootstrap: \
- build/packages/asm2 \
- /usr/share/java/commons-logging/commons-logging.jar
+# Plexus
build/packages/plexus-build-api: \
build/packages/plexus-container-default \
@@ -90,14 +124,15 @@ build/packages/plexus-component-metadata-bootstrap: \
build/packages/plexus-container-default \
build/packages/plexus-utils \
build/packages/qdox
-# FIXME: Does not include generated code? But signatures match?
build/packages/plexus-container-default: \
build/packages/guava \
build/packages/plexus-classworlds \
build/packages/plexus-utils \
- build/packages/xbean-reflect-bootstrap \
+ build/packages/xbean-bootstrap \
/usr/share/java/junit.jar
+# Misc
+
build/packages/aether-core-bootstrap: \
$(dep-jsr330) \
build/packages/httpcomponents-core \
@@ -105,8 +140,20 @@ build/packages/aether-core-bootstrap: \
build/packages/cal10n: \
build/packages/maven-artifact-bootstrap \
build/packages/maven-plugin-api-bootstrap
+build/packages/cglib: \
+ build/packages/asm4
build/packages/guava: \
$(dep-jsr305)
+build/packages/guice-core: \
+ $(dep-jsr330) \
+ build/packages/asm3 \
+ build/packages/cglib
+build/packages/groovy: \
+ build/packages/asm5 \
+ build/packages/commons-cli \
+ build/packages/jansi \
+ build/packages/xstream \
+ /usr/share/java/antlr2.jar
build/packages/ognl: \
build/packages/javassist \
/usr/share/java/javacc.jar
@@ -122,27 +169,19 @@ build/packages/wagon: \
build/packages/plexus-utils \
/usr/share/java/commons-io/commons-io.jar \
/usr/share/java/junit.jar
+build/packages/hawtjni-bootstrap: \
+ build/packages/commons-cli \
+ build/packages/xbean-bootstrap
+# ASM
build/packages/ow-util-ant-tasks: build/packages/asm2
build/packages/asm1: build/packages/ow-util-ant-tasks
build/packages/asm2: build/packages/ow-util-ant-tasks-bootstrap
build/packages/asm3: build/packages/ow-util-ant-tasks
+build/packages/asm4: build/packages/ow-util-ant-tasks
+build/packages/asm5: build/packages/ow-util-ant-tasks
-build/packages/httpcomponents-core: \
- build/packages/commons-cli
-build/packages/httpcomponents-client-bootstrap: \
- build/packages/commons-codec \
- build/packages/httpcomponents-core \
- /usr/share/java/commons-logging/commons-logging.jar
-
-build/packages/mina: \
- build/packages/commons-lang2 \
- build/packages/jzlib \
- build/packages/ognl \
- build/packages/slf4j-api \
- /usr/share/java/rxtx/RXTXcomm.jar \
- /usr/share/java/tomcat8/tomcat-jni.jar
-
+# JDOM/Jaxen
build/packages/jdom1: \
build/packages/jaxen-bootstrap \
$(dep-xerces2)
@@ -151,6 +190,7 @@ build/packages/jaxen-bootstrap: \
build/packages/jdom1-bootstrap: \
$(dep-xerces2)
+# JFlex
build/packages/jflex: \
build/packages/jflex-bootstrap \
/usr/share/java/junit.jar
diff --git a/conf/sources.all.mk b/conf/sources.all.mk
index e7e5e02..9d4d729 100644
--- a/conf/sources.all.mk
+++ b/conf/sources.all.mk
@@ -27,3 +27,5 @@ plexus-utils = git|git://github.com/sonatype/ple
# yes, I know xbean 3.4 is old
xbean-reflect = svn|$(_apache_svn)|geronimo/xbean/tags/xbean-3.4/xbean-reflect
atinject-javax.inject-tck = svn|http://atinject.googlecode.com/svn|tags/javax.inject-tck-1
+
+commons-lang3 = tar|$(_apache_mirror)/commons/lang/source/commons-lang3-3.3.2-src.tar.gz
diff --git a/conf/sources.mk b/conf/sources.mk
index 88150c1..f342452 100644
--- a/conf/sources.mk
+++ b/conf/sources.mk
@@ -1,68 +1,102 @@
_apache_svn = https://svn.apache.org/repos/asf
_apache_mirror = http://archive.apache.org/dist
+_objectweb_mirror = http://download.forge.objectweb.org
-#maven = tar|$(_apache_mirror)/maven/maven-3/3.2.1/source/apache-maven-3.2.1-src.tar.gz
+_tarbombs =
+
+# Apache tarballs
+commons-cli = tar|$(_apache_mirror)/commons/cli/source/commons-cli-1.2-src.tar.gz
+commons-codec = tar|$(_apache_mirror)/commons/codec/source/commons-codec-1.9-src.tar.gz
+commons-lang2 = tar|$(_apache_mirror)/commons/lang/source/commons-lang-2.6-src.tar.gz
+commons-net = tar|$(_apache_mirror)/commons/net/source/commons-net-3.3-src.tar.gz
+
+httpcomponents-client-bootstrap = tar|$(_apache_mirror)/httpcomponents/httpclient/source/httpcomponents-client-4.3.4-src.tar.gz
+httpcomponents-core = tar|$(_apache_mirror)/httpcomponents/httpcore/source/httpcomponents-core-4.3.2-src.tar.gz
+
+maven = tar|$(_apache_mirror)/maven/maven-3/3.2.1/source/apache-maven-3.2.1-src.tar.gz
maven-artifact-bootstrap = tar|$(_apache_mirror)/maven/maven-3/3.2.1/source/apache-maven-3.2.1-src.tar.gz|maven-artifact
maven-plugin-api-bootstrap = tar|$(_apache_mirror)/maven/maven-3/3.2.1/source/apache-maven-3.2.1-src.tar.gz|maven-plugin-api
-modello-core = git|git://github.com/sonatype/modello.git|modello-1.8.1/modello-core
-modello-plugins = git|git://github.com/sonatype/modello.git|modello-1.8.1/modello-plugins
+mina = tar|$(_apache_mirror)/mina/mina/2.0.7/apache-mina-2.0.7-src.tar.bz2|src
+mina-sshd = tar|$(_apache_mirror)/mina/sshd/0.11.0/apache-sshd-0.11.0-src.tar.gz
+
+# Apache SVN
+maven-plugin-annotations-bootstrap = svn|$(_apache_svn)/maven/plugin-tools|tags/maven-plugin-tools-3.3/maven-plugin-annotations
+maven-plugin-tools-api-bootstrap = svn|$(_apache_svn)/maven/plugin-tools|tags/maven-plugin-tools-3.3/maven-plugin-tools-api
+xbean-bootstrap = svn|$(_apache_svn)/geronimo/xbean|tags/xbean-3.9
+
+# Modello
+modello-core = tar|https://github.com/sonatype/modello/archive/modello-1.8.1.tar.gz|modello-core
+modello-plugins = tar|https://github.com/sonatype/modello/archive/modello-1.8.1.tar.gz|modello-plugins
-maven-plugin-annotations-bootstrap = svn|$(_apache_svn)/maven|plugin-tools/tags/maven-plugin-tools-3.3/maven-plugin-annotations
-maven-plugin-tools-api-bootstrap = svn|$(_apache_svn)/maven|plugin-tools/tags/maven-plugin-tools-3.3/maven-plugin-tools-api
-xbean-reflect-bootstrap = svn|$(_apache_svn)/geronimo|xbean/tags/xbean-3.4/xbean-reflect # Yes, I know xbean 3.4 is old
+# Plexus
+plexus-build-api = tar|https://github.com/sonatype/sisu-build-api/archive/plexus-build-api-0.0.7.tar.gz
+plexus-cipher = tar|https://github.com/sonatype/plexus-cipher/archive/plexus-cipher-1.7.tar.gz
+plexus-classworlds = tar|https://github.com/sonatype/plexus-classworlds/archive/plexus-classworlds-2.5.1.tar.gz
+plexus-interpolation = tar|https://github.com/sonatype/plexus-interpolation/archive/plexus-interpolation-1.19.tar.gz
+plexus-utils = tar|https://github.com/sonatype/plexus-utils/archive/plexus-utils-3.0.17.tar.gz
+plexus-cli = tar|https://github.com/sonatype/plexus-components/archive/plexus-components-1.1.20.tar.gz|plexus-cli
+plexus-interactivity = tar|https://github.com/sonatype/plexus-components/archive/plexus-interactivity-1.0-alpha-6.tar.gz
+# Plexus containers
+plexus-component-annotations = tar|https://github.com/sonatype/plexus-containers/archive/plexus-containers-1.5.5.tar.gz|plexus-component-annotations
+plexus-component-metadata-bootstrap = tar|https://github.com/sonatype/plexus-containers/archive/plexus-containers-1.5.5.tar.gz|plexus-component-metadata
+plexus-container-default = tar|https://github.com/sonatype/plexus-containers/archive/plexus-containers-1.5.5.tar.gz|plexus-container-default
-plexus-build-api = git|git://github.com/sonatype/sisu-build-api.git|plexus-build-api-0.0.7
-plexus-cipher = git|git://github.com/sonatype/plexus-cipher.git|plexus-cipher-1.7
-plexus-classworlds = git|git://github.com/sonatype/plexus-classworlds.git|plexus-classworlds-2.5.1
-plexus-interpolation = git|git://github.com/sonatype/plexus-interpolation.git|plexus-interpolation-1.19
-plexus-utils = git|git://github.com/sonatype/plexus-utils.git|plexus-utils-3.0.17
+# Misc tarballs
+bnd = tar|https://github.com/bndtools/bnd/archive/2.3.0.REL.tar.gz
+cal10n = tar|https://github.com/qos-ch/cal10n/archive/v_0.8.1.tar.gz
+cglib = tar|https://github.com/cglib/cglib/archive/RELEASE_3_1.tar.gz
+gradle = tar|https://services.gradle.org/distributions/gradle-1.12-src.zip
+groovy = tar|https://dl.bintray.com/groovy/maven/groovy-src-2.3.3.zip
+guice-core = tar|https://google-guice.googlecode.com/files/guice-3.0-src.zip|core
+#javacc = tar|https://java.net/projects/javacc/downloads/download/javacc-6.0src.zip
+javassist = tar|https://github.com/jboss-javassist/javassist/archive/rel_3_18_2_ga.tar.gz
+jline = tar|https://downloads.sourceforge.net/project/jline/jline/1.0/jline-1.0.zip|src
+jzlib = tar|https://github.com/ymnk/jzlib/archive/1.1.3.zip
+ognl = tar|https://github.com/jkuhnert/ognl/archive/OGNL_3_0_8.tar.gz
+qdox = tar|https://nexus.codehaus.org/content/repositories/releases/com/thoughtworks/qdox/qdox/2.0-M1/qdox-2.0-M1-project.tar.bz2
+slf4j-api = tar|http://www.slf4j.org/dist/slf4j-1.7.7.tar.gz|slf4j-api # HTTPS is mis-configured
+wagon = tar|$(_apache_mirror)/maven/wagon/wagon-2.6-source-release.zip
-plexus-cli = git|git://github.com/sonatype/plexus-components.git|plexus-components-1.1.20/plexus-cli
-plexus-interactivity = git|git://github.com/sonatype/plexus-components.git|plexus-interactivity-1.0-alpha-6
-plexus-component-annotations = git|git://github.com/sonatype/plexus-containers.git|plexus-containers-1.5.5/plexus-component-annotations
-plexus-component-metadata-bootstrap = git|git://github.com/sonatype/plexus-containers.git|plexus-containers-1.5.5/plexus-component-metadata
-plexus-container-default = git|git://github.com/sonatype/plexus-containers.git|plexus-containers-1.5.5/plexus-container-default
+osgi42-core = tar|http://www.osgi.org/download/r4v42/osgi.core.jar|OSGI-OPT
+osgi43-core = tar|http://www.osgi.org/download/r4v43/osgi.core-4.3.1.jar|OSGI-OPT
+osgi50-core = tar|http://www.osgi.org/download/r5/osgi.core-5.0.0.jar|OSGI-OPT
+_tarbombs += $(osgi42-core) $(osgi43-core) $(osgi50-core)
+# Misc Git
aether-core-bootstrap = git|git://git.eclipse.org/gitroot/aether/aether-core.git|aether-1.0.0.v20140518
-cal10n = git|git://github.com/qos-ch/cal10n.git|v_0.8.1
+bouncycastle-java = git|http://git.bouncycastle.org/repositories/bc-java|r1rv50 # SSL is broken
guava = git|https://code.google.com/p/guava-libraries/|v17.0/guava
-javassist = git|git://github.com/jboss-javassist/javassist.git|rel_3_18_2_ga
-jline = tar|http://downloads.sourceforge.net/project/jline/jline/1.0/jline-1.0.zip|src
jsoup = git|git://github.com/jhy/jsoup.git|jsoup-1.7.3
-jzlib = tar|https://github.com/ymnk/jzlib/archive/1.1.3.zip
-ognl = git|git://github.com/jkuhnert/ognl.git|OGNL_3_0_8
-qdox = tar|http://nexus.codehaus.org/content/repositories/releases/com/thoughtworks/qdox/qdox/2.0-M1/qdox-2.0-M1-project.tar.bz2
-slf4j-api = tar|http://www.slf4j.org/dist/slf4j-1.7.7.tar.gz|slf4j-api
-wagon = tar|$(_apache_mirror)/maven/wagon/wagon-2.6-source-release.zip
-asm1 = tar|http://download.forge.objectweb.org/asm/asm-1.5.3.tar.gz
-asm2 = tar|http://download.forge.objectweb.org/asm/asm-2.2.3.tar.gz
-asm3 = tar|http://download.forge.objectweb.org/asm/asm-3.3.1.tar.gz
-ow-util-ant-tasks = tar|http://download.forge.objectweb.org/monolog/ow_util_ant_tasks_1.3.2.zip
-ow-util-ant-tasks-bootstrap = $(ow-util-ant-tasks)
+# FuseSource
+jansi = tar|https://github.com/fusesource/jansi/archive/jansi-project-1.11.tar.gz
+jansi-native = tar|https://github.com/fusesource/jansi-native/archive/jansi-native-1.5.tar.gz
+hawtjni = tar|https://github.com/fusesource/hawtjni/archive/hawtjni-project-1.10.tar.gz
+hawtjni-bootstrap = $(hawtjni)
-commons-cli = tar|$(_apache_mirror)/commons/cli/source/commons-cli-1.2-src.tar.gz
-commons-codec = tar|$(_apache_mirror)/commons/codec/source/commons-codec-1.9-src.tar.gz
-commons-lang2 = tar|$(_apache_mirror)/commons/lang/source/commons-lang-2.6-src.tar.gz
-commons-net = tar|$(_apache_mirror)/commons/net/source/commons-net-3.3-src.tar.gz
-
-httpcomponents-core = tar|$(_apache_mirror)/httpcomponents/httpcore/source/httpcomponents-core-4.3.2-src.tar.gz
-httpcomponents-client-bootstrap = tar|$(_apache_mirror)/httpcomponents/httpclient/source/httpcomponents-client-4.3.4-src.tar.gz
+# ObjectWeb
+asm1 = tar|$(_objectweb_mirror)/asm/asm-1.5.3.tar.gz
+asm2 = tar|$(_objectweb_mirror)/asm/asm-2.2.3.tar.gz
+asm3 = tar|$(_objectweb_mirror)/asm/asm-3.3.1.tar.gz
+asm4 = tar|$(_objectweb_mirror)/asm/asm-4.2.tar.gz
+asm5 = tar|$(_objectweb_mirror)/asm/asm-5.0.3.tar.gz
+ow-util-ant-tasks = tar|$(_objectweb_mirror)/monolog/ow_util_ant_tasks_1.3.2.zip
+ow-util-ant-tasks-bootstrap = $(ow-util-ant-tasks)
+_tarbombs += $(ow-util-ant-tasks)
-mina = tar|$(_apache_mirror)/mina/mina/2.0.7/apache-mina-2.0.7-src.tar.bz2|src
# Is missing support for jom4j and xom
-jaxen-bootstrap = tar|http://dist.codehaus.org/jaxen/distributions/jaxen-1.1.6-src.tar.gz
+jaxen-bootstrap = tar|http://dist.codehaus.org/jaxen/distributions/jaxen-1.1.6-src.tar.gz # HTTPS is broken
-jdom1 = git|git://github.com/hunterhacker/jdom.git|jdom-1.1.3
+jdom1 = tar|https://github.com/hunterhacker/jdom/archive/jdom-1.1.3.tar.gz
jdom1-bootstrap = $(jdom1)
-jflex = tar|http://jflex.de/jflex-1.5.1.tar.gz
+jflex = tar|http://jflex.de/jflex-1.5.1.tar.gz # No TLS
jflex-bootstrap = $(jflex)
# Any other implementation of JSR-305 would probably be fine too.
-jsr305 = svn|http://jsr-305.googlecode.com/svn|trunk/ri
+jsr305 = svn|https://jsr-305.googlecode.com/svn|trunk/ri
# An implementation of JSR-330. Google Guice also implements JSR-330.
-atinject-javax.inject = svn|http://atinject.googlecode.com/svn|trunk
+atinject-javax.inject = svn|https://atinject.googlecode.com/svn|trunk
diff --git a/rules/asm4 b/rules/asm4
new file mode 120000
index 0000000..d22cd68
--- /dev/null
+++ b/rules/asm4
@@ -0,0 +1 @@
+asm2 \ No newline at end of file
diff --git a/rules/asm5 b/rules/asm5
new file mode 120000
index 0000000..d22cd68
--- /dev/null
+++ b/rules/asm5
@@ -0,0 +1 @@
+asm2 \ No newline at end of file
diff --git a/rules/bnd/delete.list b/rules/bnd/delete.list
new file mode 100644
index 0000000..38da0b7
--- /dev/null
+++ b/rules/bnd/delete.list
@@ -0,0 +1,12 @@
+.gradle-wrapper
+biz.aQute.bndlib.tests/compilerversions/*.jar
+biz.aQute.bndlib.tests/compilerversions/src/*/*.class
+biz.aQute.bndlib.tests/jar
+biz.aQute.bndoc/jar/*.jar
+biz.aQute.jpm/lib/*.jar
+biz.aQute.jpm/src/aQute/jpm/platform/windows/*.exe
+biz.aQute.repository*
+cnf/gradle/dependencies
+cnf/plugins
+cnf/repo
+osgi.r5/*.jar
diff --git a/rules/cglib/delete.list b/rules/cglib/delete.list
new file mode 100644
index 0000000..8c5987b
--- /dev/null
+++ b/rules/cglib/delete.list
@@ -0,0 +1 @@
+lib/*.jar
diff --git a/rules/groovy/Makefile b/rules/groovy/Makefile
new file mode 100644
index 0000000..d7e8d3a
--- /dev/null
+++ b/rules/groovy/Makefile
@@ -0,0 +1,39 @@
+DESTDIR ?=
+JAR_DIR ?= /usr/share/java
+
+ANTLR2 = $(JAVA) antlr.Tool
+CP = cp
+FAIL = exit 1
+FIND = find
+INSTALL = install
+JAR = jar
+JAVA = java
+JAVAC = javac
+MKDIRS = mkdir -p
+RM = rm -f
+
+dep_dir = $1 $(shell $(FIND) $1 2>/dev/null)
+
+all: PHONY build/groovy.jar
+
+build/generated-sources: $(call dep_dir,src/main)
+ for grammar in $(filter %.g,$^); do $(MKDIRS) $$(dirname $$grammar) && $(ANTLR2) -o $$(dirname $$grammar) $$grammar || { $(RM) -r $@; $(FAIL); }; done
+build/classes: $(call dep_dir,src/main src/resources build/generated-sources)
+ $(RM) -r $@
+ $(MKDIRS) $@
+ $(CP) -a src/main/META-INF $@
+ $(CP) -a src/resources/* $@
+ $(FIND) src/main build/generated-sources -name '*.java' -exec $(JAVAC) -d $@ {} +
+build/groovy.jar: $(call dep_dir,build/classes)
+ $(JAR) -cf $@ -C build/classes .
+
+install: PHONY $(DESTDIR)$(JAR_DIR)/groovy.jar
+
+$(DESTDIR)$(JAR_DIR)/groovy.jar: build/groovy.jar
+ $(INSTALL) -Dm644 $< $@
+
+clean: PHONY
+ $(RM) -r build
+
+.PHONY: PHONY
+.DELETE_ON_ERROR:
diff --git a/rules/groovy/delete.list b/rules/groovy/delete.list
new file mode 100644
index 0000000..fb2fae2
--- /dev/null
+++ b/rules/groovy/delete.list
@@ -0,0 +1,3 @@
+gradle/wrapper/gradle-wrapper.jar
+security/GroovyJarTest.jar
+src/test/jars/module-test/module-test/1.2-test/module-test-1.2-test.jar
diff --git a/rules/guice-core/sourceDirectory.mk b/rules/guice-core/sourceDirectory.mk
new file mode 100644
index 0000000..4470673
--- /dev/null
+++ b/rules/guice-core/sourceDirectory.mk
@@ -0,0 +1 @@
+sourceDirectory = src
diff --git a/rules/guice/delete.list b/rules/guice/delete.list
new file mode 100644
index 0000000..94870d0
--- /dev/null
+++ b/rules/guice/delete.list
@@ -0,0 +1,3 @@
+lib/build
+lib/*.jar
+extensions/*/build \ No newline at end of file
diff --git a/rules/hawtjni-bootstrap/no-maven-plugin.mk b/rules/hawtjni-bootstrap/no-maven-plugin.mk
new file mode 100644
index 0000000..462c59a
--- /dev/null
+++ b/rules/hawtjni-bootstrap/no-maven-plugin.mk
@@ -0,0 +1 @@
+subdirs := $(filter-out maven-%-plugin,$(subdirs))
diff --git a/rules/hawtjni-bootstrap/subdir-deps.mk b/rules/hawtjni-bootstrap/subdir-deps.mk
new file mode 120000
index 0000000..2aab9d6
--- /dev/null
+++ b/rules/hawtjni-bootstrap/subdir-deps.mk
@@ -0,0 +1 @@
+../hawtjni/subdir-deps.mk \ No newline at end of file
diff --git a/rules/hawtjni/subdir-deps.mk b/rules/hawtjni/subdir-deps.mk
new file mode 100644
index 0000000..453153e
--- /dev/null
+++ b/rules/hawtjni/subdir-deps.mk
@@ -0,0 +1,3 @@
+hawtjni-generator_deps = hawtjni-runtime
+
+subdirs := $(filter-out %-example,$(subdirs))
diff --git a/rules/osgi42-core/Makefile b/rules/osgi42-core/Makefile
new file mode 100644
index 0000000..30eb1f7
--- /dev/null
+++ b/rules/osgi42-core/Makefile
@@ -0,0 +1,35 @@
+DESTDIR ?=
+MAVEN_LOCAL_REPO ?= ~/.m2
+
+FAIL = exit 1
+FIND = find
+INSTALL = install
+JAR = jar
+JAVAC = javac
+MKDIRS = mkdir -p
+RM = rm -f
+
+groupId = org.osgi
+artifactId = org.osgi.core
+version = 5.0.0
+
+dep_dir = $1 $(shell $(FIND) $1 2>/dev/null)
+mvndir = $(DESTDIR)$(MAVEN_LOCAL_REPO)/$(subst .,/,$(groupId))/$(artifactId)/$(version)
+
+all: PHONY build/$(artifactId)-$(version).jar
+install: PHONY $(mvndir)/$(artifactId)-$(version).jar
+
+build/classes: $(call dep_dir,src)
+ $(RM) -r $@
+ $(MKDIRS) $@
+ $(FIND) src -name '*.java' -exec $(JAVAC) -d $@ {} + || { $(RM) -r $@; $(FAIL); }
+build/$(artifactId)-$(version).jar: $(call dep_dir,build/classes)
+ $(JAR) -cf $@ -C build/classes .
+$(mvndir)/$(artifactId)-$(version).jar: build/$(artifactId)-$(version).jar
+ $(INSTALL) -Dm644 $< $@
+
+clean: PHONY
+ $(RM) -r build
+
+.PHONY: PHONY
+.DELETE_ON_ERROR:
diff --git a/rules/osgi43-core b/rules/osgi43-core
new file mode 120000
index 0000000..548ca5d
--- /dev/null
+++ b/rules/osgi43-core
@@ -0,0 +1 @@
+osgi42-core \ No newline at end of file
diff --git a/rules/osgi50-core b/rules/osgi50-core
new file mode 120000
index 0000000..548ca5d
--- /dev/null
+++ b/rules/osgi50-core
@@ -0,0 +1 @@
+osgi42-core \ No newline at end of file
diff --git a/rules/xbean-bootstrap/delete.list b/rules/xbean-bootstrap/delete.list
new file mode 100644
index 0000000..e7a7dae
--- /dev/null
+++ b/rules/xbean-bootstrap/delete.list
@@ -0,0 +1,5 @@
+*-shaded
+maven-*-plugin
+xbean-blueprint
+xbean-bundleutils/src/main/java/org/apache/xbean/osgi/bundle/util/equinox
+xbean-spring
diff --git a/rules/xbean-bootstrap/no-groovy.patch b/rules/xbean-bootstrap/no-groovy.patch
new file mode 100644
index 0000000..f70bf3a
--- /dev/null
+++ b/rules/xbean-bootstrap/no-groovy.patch
@@ -0,0 +1,91 @@
+diff -ruN xbean-bootstrap.orig/xbean-telnet/src/main/java/org/apache/xbean/command/CommandRegistry.java xbean-bootstrap/xbean-telnet/src/main/java/org/apache/xbean/command/CommandRegistry.java
+--- xbean-bootstrap.orig/xbean-telnet/src/main/java/org/apache/xbean/command/CommandRegistry.java 2014-06-15 00:19:37.435655683 -0400
++++ xbean-bootstrap/xbean-telnet/src/main/java/org/apache/xbean/command/CommandRegistry.java 2014-06-15 00:47:21.422787368 -0400
+@@ -77,6 +77,5 @@
+ Help.register();
+ Lookup.register();
+ Version.register();
+- GroovySh.register();
+ }
+ }
+diff -ruN xbean-bootstrap.orig/xbean-telnet/src/main/java/org/apache/xbean/command/GroovySh.java xbean-bootstrap/xbean-telnet/src/main/java/org/apache/xbean/command/GroovySh.java
+--- xbean-bootstrap.orig/xbean-telnet/src/main/java/org/apache/xbean/command/GroovySh.java 2014-06-15 00:19:37.438988951 -0400
++++ xbean-bootstrap/xbean-telnet/src/main/java/org/apache/xbean/command/GroovySh.java 1969-12-31 19:00:00.000000000 -0500
+@@ -1,77 +0,0 @@
+-/**
+- * Licensed to the Apache Software Foundation (ASF) under one or more
+- * contributor license agreements. See the NOTICE file distributed with
+- * this work for additional information regarding copyright ownership.
+- * The ASF licenses this file to You under the Apache License, Version 2.0
+- * (the "License"); you may not use this file except in compliance with
+- * the License. You may obtain a copy of the License at
+- *
+- * http://www.apache.org/licenses/LICENSE-2.0
+- *
+- * Unless required by applicable law or agreed to in writing, software
+- * distributed under the License is distributed on an "AS IS" BASIS,
+- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+- * See the License for the specific language governing permissions and
+- * limitations under the License.
+- */
+-package org.apache.xbean.command;
+-
+-import groovy.lang.GroovyShell;
+-import org.codehaus.groovy.runtime.InvokerHelper;
+-
+-import java.io.BufferedReader;
+-import java.io.IOException;
+-import java.io.InputStream;
+-import java.io.InputStreamReader;
+-import java.io.PrintStream;
+-
+-public class GroovySh implements Command {
+- public static void register() {
+- CommandRegistry.register("groovysh", GroovySh.class);
+- }
+-
+- public int main(String[] args, InputStream in, PrintStream out) {
+- GroovyShell shell = new GroovyShell();
+- BufferedReader reader = new BufferedReader(new InputStreamReader(in));
+- String version = InvokerHelper.getVersion();
+- out.println("Lets get Groovy!");
+- out.println("================");
+- out.println("Version: " + version + " JVM: " + System.getProperty("java.vm.version"));
+- out.println("Hit carriage return twice to execute a command");
+- out.println("The command 'quit' will terminate the shell");
+- int counter = 1;
+- while (true) {
+- StringBuffer buffer = new StringBuffer();
+- while (true) {
+- out.print("groovy> ");
+- String line;
+- try {
+- line = reader.readLine();
+- } catch (IOException e) {
+- out.println("Caught: " + e);
+- e.printStackTrace();
+- return -1;
+- }
+- if (line != null) {
+- buffer.append(line);
+- buffer.append('\n');
+- }
+- if (line == null || line.trim().length() == 0) {
+- break;
+- }
+- }
+- String command = buffer.toString().trim();
+- if (command == null || command.equals("quit")) {
+- break;
+- }
+- try {
+- Object answer = shell.evaluate(command, "CommandLine" + counter++ + ".groovy");
+- out.println(InvokerHelper.inspect(answer));
+- } catch (Exception e) {
+- out.println("Caught: " + e);
+- e.printStackTrace();
+- }
+- }
+- return 0;
+- }
+-}
diff --git a/rules/xbean-reflect-bootstrap/no-log4j.patch b/rules/xbean-bootstrap/no-log4j.patch
index 7b9285c..b5adb0c 100644
--- a/rules/xbean-reflect-bootstrap/no-log4j.patch
+++ b/rules/xbean-bootstrap/no-log4j.patch
@@ -1,7 +1,6 @@
-Index: xbean-reflect/src/main/java/org/apache/xbean/propertyeditor/Log4jConverter.java
-===================================================================
---- xbean-reflect/src/main/java/org/apache/xbean/propertyeditor/Log4jConverter.java (revision 1598206)
-+++ xbean-reflect/src/main/java/org/apache/xbean/propertyeditor/Log4jConverter.java (working copy)
+diff -ruN xbean-bootstrap.orig/xbean-reflect/src/main/java/org/apache/xbean/propertyeditor/Log4jConverter.java xbean-bootstrap/xbean-reflect/src/main/java/org/apache/xbean/propertyeditor/Log4jConverter.java
+--- xbean-bootstrap.orig/xbean-reflect/src/main/java/org/apache/xbean/propertyeditor/Log4jConverter.java 2014-06-15 00:19:37.108995430 -0400
++++ xbean-bootstrap/xbean-reflect/src/main/java/org/apache/xbean/propertyeditor/Log4jConverter.java 1969-12-31 19:00:00.000000000 -0500
@@ -1,32 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -35,11 +34,10 @@ Index: xbean-reflect/src/main/java/org/apache/xbean/propertyeditor/Log4jConverte
- return Logger.getLogger(text);
- }
-}
-Index: xbean-reflect/src/main/java/org/apache/xbean/propertyeditor/PropertyEditors.java
-===================================================================
---- xbean-reflect/src/main/java/org/apache/xbean/propertyeditor/PropertyEditors.java (revision 1598206)
-+++ xbean-reflect/src/main/java/org/apache/xbean/propertyeditor/PropertyEditors.java (working copy)
-@@ -120,11 +120,6 @@
+diff -ruN xbean-bootstrap.orig/xbean-reflect/src/main/java/org/apache/xbean/propertyeditor/PropertyEditors.java xbean-bootstrap/xbean-reflect/src/main/java/org/apache/xbean/propertyeditor/PropertyEditors.java
+--- xbean-bootstrap.orig/xbean-reflect/src/main/java/org/apache/xbean/propertyeditor/PropertyEditors.java 2014-06-15 00:19:37.082329286 -0400
++++ xbean-bootstrap/xbean-reflect/src/main/java/org/apache/xbean/propertyeditor/PropertyEditors.java 2014-06-15 00:42:19.005548051 -0400
+@@ -122,11 +122,6 @@
registerConverter(new WeakHashMapEditor());
try {
diff --git a/rules/xbean-bootstrap/no-shading.patch b/rules/xbean-bootstrap/no-shading.patch
new file mode 100644
index 0000000..0ad79d7
--- /dev/null
+++ b/rules/xbean-bootstrap/no-shading.patch
@@ -0,0 +1,32 @@
+diff -ru xbean-bootstrap.orig/xbean-reflect/src/main/java/org/apache/xbean/recipe/ReflectionUtil.java xbean-bootstrap/xbean-reflect/src/main/java/org/apache/xbean/recipe/ReflectionUtil.java
+--- xbean-bootstrap.orig/xbean-reflect/src/main/java/org/apache/xbean/recipe/ReflectionUtil.java 2014-06-15 00:19:37.188993859 -0400
++++ xbean-bootstrap/xbean-reflect/src/main/java/org/apache/xbean/recipe/ReflectionUtil.java 2014-06-15 00:35:25.070408339 -0400
+@@ -43,7 +43,7 @@
+ private static ParameterNameLoader parameterNamesLoader;
+
+ static {
+- if (isClassAvailable("org.apache.xbean.asm.ClassReader")) {
++ if (isClassAvailable("org.objectweb.asm.ClassReader")) {
+ parameterNamesLoader = new XbeanAsmParameterNameLoader();
+ } else if (isClassAvailable("org.objectweb.asm.ClassReader")) {
+ parameterNamesLoader = new AsmParameterNameLoader();
+diff -ru xbean-bootstrap.orig/xbean-reflect/src/main/java/org/apache/xbean/recipe/XbeanAsmParameterNameLoader.java xbean-bootstrap/xbean-reflect/src/main/java/org/apache/xbean/recipe/XbeanAsmParameterNameLoader.java
+--- xbean-bootstrap.orig/xbean-reflect/src/main/java/org/apache/xbean/recipe/XbeanAsmParameterNameLoader.java 2014-06-15 00:19:37.188993859 -0400
++++ xbean-bootstrap/xbean-reflect/src/main/java/org/apache/xbean/recipe/XbeanAsmParameterNameLoader.java 2014-06-15 00:35:25.070408339 -0400
+@@ -30,11 +30,11 @@
+ import java.util.WeakHashMap;
+ import java.util.Arrays;
+
+-import org.apache.xbean.asm.ClassReader;
+-import org.apache.xbean.asm.Label;
+-import org.apache.xbean.asm.MethodVisitor;
+-import org.apache.xbean.asm.Type;
+-import org.apache.xbean.asm.commons.EmptyVisitor;
++import org.objectweb.asm.ClassReader;
++import org.objectweb.asm.Label;
++import org.objectweb.asm.MethodVisitor;
++import org.objectweb.asm.Type;
++import org.objectweb.asm.commons.EmptyVisitor;
+
+ /**
+ * Implementation of ParameterNameLoader that uses ASM to read the parameter names from the local variable table in the
diff --git a/rules/xbean-bootstrap/no-springframework.patch b/rules/xbean-bootstrap/no-springframework.patch
new file mode 100644
index 0000000..c1cfc27
--- /dev/null
+++ b/rules/xbean-bootstrap/no-springframework.patch
@@ -0,0 +1,21 @@
+diff -ruN xbean-bootstrap.orig/xbean-classloader/src/main/java/org/apache/xbean/classloader/ThreadContextClassLoaderFactoryBean.java xbean-bootstrap/xbean-classloader/src/main/java/org/apache/xbean/classloader/ThreadContextClassLoaderFactoryBean.java
+--- xbean-bootstrap.orig/xbean-classloader/src/main/java/org/apache/xbean/classloader/ThreadContextClassLoaderFactoryBean.java 2014-06-15 00:19:37.572319666 -0400
++++ xbean-bootstrap/xbean-classloader/src/main/java/org/apache/xbean/classloader/ThreadContextClassLoaderFactoryBean.java 2014-06-15 00:51:06.431593352 -0400
+@@ -16,8 +16,6 @@
+ */
+ package org.apache.xbean.classloader;
+
+-import org.springframework.beans.factory.FactoryBean;
+-
+ /**
+ * A factory bean to expose the current thread context class loader.
+ *
+@@ -25,7 +23,7 @@
+ * element="threadContextClassLoader" description="References the ClassLoader of the current thread context"
+ * @version $Revision: 437551 $
+ */
+-public class ThreadContextClassLoaderFactoryBean implements FactoryBean {
++public class ThreadContextClassLoaderFactoryBean {
+
+ public Object getObject() throws Exception {
+ return Thread.currentThread().getContextClassLoader();
diff --git a/rules/xbean-bootstrap/subdir-deps.mk b/rules/xbean-bootstrap/subdir-deps.mk
new file mode 100644
index 0000000..4eb0564
--- /dev/null
+++ b/rules/xbean-bootstrap/subdir-deps.mk
@@ -0,0 +1 @@
+xbean-finder_deps = xbean-bundleutils