Include extra plugins in Gerrit RPM packaging

Allow to include extra plugins in the distribution of Gerrit Code Review
allowing a frictionless setup experience.

By default plugin-manager is included in order to allow having
a simpler user-experience to discover and install additional plugin
supported by the version of Gerrit currently running.

Change-Id: I4fa52e6d0e671de1702d586476c42e949fc9742b
diff --git a/fpm/Makefile b/fpm/Makefile
index 5995388..05b2d39 100644
--- a/fpm/Makefile
+++ b/fpm/Makefile
@@ -1,5 +1,6 @@
 VERSION=2.13.2
 URL=http://gerrit-releases.storage.googleapis.com/gerrit-$(VERSION).war
+CI_URL=https://gerrit-ci.gerritforge.com/
 RELEASE=1
 
 NAME=gerrit
@@ -18,6 +19,10 @@
 WEB_URL=https://code.google.com/p/gerrit/
 
 WAR=$(BUILD_ROOT)/bin/gerrit.war
+PLUGINS=plugin-manager
+PLUGINS_JARS=$(foreach PLUGIN,$(PLUGINS),$(PLUGIN).jar)
+PLUGINS_PATHS=$(foreach PLUGIN_JAR,$(PLUGINS_JARS),$(BUILD_ROOT)/plugins/$(PLUGIN_JAR))
+BRANCH=master
 
 RPM_OUT=$(OUT)/gerrit-$(VERSION)-$(RELEASE).$(BUILD_ARCH).rpm
 DEB_OUT=$(OUT)/gerrit-$(VERSION)-$(RELEASE).$(BUILD_ARCH).deb
@@ -56,6 +61,7 @@
 	mkdir -p $(SCRIPTS_ROOT)
 	mkdir -p $(BUILD_ROOT)/etc
 	mkdir -p $(BUILD_ROOT)/bin
+	mkdir -p $(BUILD_ROOT)/plugins
 	cp $(CONFIGS) $(BUILD_ROOT)/etc
 	-groupadd $(GROUP)
 	$(eval GROUP_ID := $(shell /usr/bin/getent group $(GROUP) | cut -d ':' -f 3))
@@ -78,6 +84,9 @@
 $(WAR): $(basedir $(WAR))
 	curl -o $@  $(URL)
 
+$(BUILD_ROOT)/plugins/%.jar:
+	PLUGIN_NAME=`basename $@` && curl -o $@ $(CI_URL)/job/plugin-$$PLUGIN_NAME-$(BRANCH)/lastSuccessfulBuild/artifact/buck-out/gen/plugins/$$PLUGIN_NAME/$$PLUGIN_NAME.jar
+
 $(SCRIPTS_ROOT)/%.sh: scripts/%.sh
 	echo "#!/bin/bash" > $@
 	echo "USER=$(USER)" >> $@
@@ -85,10 +94,10 @@
 	echo "GERRIT_SITE=$(GERRIT_SITE)" >> $@
 	cat $< >> $@
 
-$(RPM_OUT): $(WAR) $(CONFIGS) $(BUILD_SCRIPTS) chown
+$(RPM_OUT): $(WAR) $(PLUGINS_PATHS) $(CONFIGS) $(BUILD_SCRIPTS) chown
 	fpm -t rpm -p $@ $(RPM_OPTS)
 
-$(DEB_OUT): $(WAR) $(CONFIGS) $(BUILD_SCRIPTS) chown
+$(DEB_OUT): $(WAR) $(PLUGINS_PATHS) $(CONFIGS) $(BUILD_SCRIPTS) chown
 	fpm -t deb -p $@ $(DEB_OPTS)
 
 .PHONY: clean clobber prepare chown rpm deb install install-deb install-rpm