Browse code

Updated DEB build workflow

Updates to Makefile include:
* add targets: deb-src, deb-src-upload, deb-upload
* add variables to control DEB building: DEBUILD_OPTS, DPUT_OPTS, DEB_PPA, DEB_DIST, DEB_RELEASE
* create deb files for all release values in DEB_DIST

Several updates to packaging/debian/*
* Updated control file
* Whitespace/formatting of changelog

Add deb-build to .gitignore

James Laska authored on 2014/06/21 05:04:10
Showing 4 changed files
... ...
@@ -35,6 +35,7 @@ docsite/searchindex.js
35 35
 docsite/htmlout
36 36
 # deb building stuff...
37 37
 debian/
38
+deb-build
38 39
 # Vim swap files
39 40
 *.swp
40 41
 *.swo
... ...
@@ -5,7 +5,9 @@
5 5
 #
6 6
 # useful targets:
7 7
 #   make sdist ---------------- produce a tarball
8
+#   make srpm ----------------- produce a SRPM
8 9
 #   make rpm  ----------------- produce RPMs
10
+#   make deb-src -------------- produce a DEB source
9 11
 #   make deb ------------------ produce a DEB
10 12
 #   make docs ----------------- rebuild the manpages (results are checked in)
11 13
 #   make tests ---------------- run the tests
... ...
@@ -45,6 +47,29 @@ else
45 45
 DATE := $(shell date --utc --date="$(GIT_DATE)" +%Y%m%d%H%M)
46 46
 endif
47 47
 
48
+# DEB build parameters
49
+DEBUILD_BIN ?= debuild
50
+DEBUILD_OPTS = --source-option="-I"
51
+DPUT_BIN ?= dput
52
+DPUT_OPTS =
53
+ifeq ($(OFFICIAL),yes)
54
+    DEB_RELEASE = 1ppa
55
+    # Sign OFFICIAL builds using 'DEBSIGN_KEYID'
56
+    # DEBSIGN_KEYID is required when signing
57
+    ifneq ($(DEBSIGN_KEYID),)
58
+        DEBUILD_OPTS += -k$(DEBSIGN_KEYID)
59
+    endif
60
+else
61
+    DEB_RELEASE = 0.git$(DATE)
62
+    # Do not sign unofficial builds
63
+    DEBUILD_OPTS += -uc -us
64
+    DPUT_OPTS += -u
65
+endif
66
+DEBUILD = $(DEBUILD_BIN) $(DEBUILD_OPTS)
67
+DEB_PPA ?= ppa
68
+# Choose the desired Ubuntu release: lucid precise saucy trusty
69
+DEB_DIST ?= unstable
70
+
48 71
 # RPM build parameters
49 72
 RPMSPECDIR= packaging/rpm
50 73
 RPMSPEC = $(RPMSPECDIR)/ansible.spec
... ...
@@ -160,12 +185,44 @@ rpm: rpmcommon
160 160
 	@echo "#############################################"
161 161
 
162 162
 debian: sdist
163
+	@for DIST in $(DEB_DIST) ; do \
164
+	    mkdir -p deb-build/$${DIST} ; \
165
+	    tar -C deb-build/$${DIST} -xvf dist/$(NAME)-$(VERSION).tar.gz ; \
166
+	    cp -a packaging/debian deb-build/$${DIST}/$(NAME)-$(VERSION)/ ; \
167
+	    sed -ie "s#^$(NAME) (\([^)]*\)) \([^;]*\);#ansible (\1-$(DEB_RELEASE)~$${DIST}) $${DIST};#" deb-build/$${DIST}/$(NAME)-$(VERSION)/debian/changelog ; \
168
+	done
169
+
163 170
 deb: debian
164
-	cp -r packaging/debian ./
165
-	chmod 755 debian/rules
166
-	fakeroot debian/rules clean
167
-	fakeroot dh_install
168
-	fakeroot debian/rules binary
171
+	@for DIST in $(DEB_DIST) ; do \
172
+	    (cd deb-build/$${DIST}/$(NAME)-$(VERSION)/ && $(DEBUILD) -b) ; \
173
+	done
174
+	@echo "#############################################"
175
+	@echo "Ansible DEB artifacts:"
176
+	@for DIST in $(DEB_DIST) ; do \
177
+	    echo deb-build/$${DIST}/$(NAME)_$(VERSION)-$(DEB_RELEASE)~$${DIST}_amd64.changes ; \
178
+	done
179
+	@echo "#############################################"
180
+
181
+deb-src: debian
182
+	@for DIST in $(DEB_DIST) ; do \
183
+	    (cd deb-build/$${DIST}/$(NAME)-$(VERSION)/ && $(DEBUILD) -S) ; \
184
+	done
185
+	@echo "#############################################"
186
+	@echo "Ansible DEB artifacts:"
187
+	@for DIST in $(DEB_DIST) ; do \
188
+	    echo deb-build/$${DIST}/$(NAME)_$(VERSION)-$(DEB_RELEASE)~$${DIST}_source.changes ; \
189
+	done
190
+	@echo "#############################################"
191
+
192
+deb-upload: deb
193
+	@for DIST in $(DEB_DIST) ; do \
194
+	    $(DPUT_BIN) $(DPUT_OPTS) $(DEB_PPA) deb-build/$${DIST}/$(NAME)_$(VERSION)-$(DEB_RELEASE)~$${DIST}_amd64.changes ; \
195
+	done
196
+
197
+deb-src-upload: deb-src
198
+	@for DIST in $(DEB_DIST) ; do \
199
+	    $(DPUT_BIN) $(DPUT_OPTS) $(DEB_PPA) deb-build/$${DIST}/$(NAME)_$(VERSION)-$(DEB_RELEASE)~$${DIST}_source.changes ; \
200
+	done
169 201
 
170 202
 # for arch or gentoo, read instructions in the appropriate 'packaging' subdirectory directory
171 203
 
... ...
@@ -2,49 +2,49 @@ ansible (1.6.3) unstable; urgency=low
2 2
 
3 3
   * 1.6.3 release
4 4
 
5
-  -- Michael DeHaan <michael@ansible.com>  Mon, 09 Jun 2014 16:30:00 -0500
5
+ -- Michael DeHaan <michael@ansible.com>  Mon, 09 Jun 2014 16:30:00 -0500
6 6
 
7 7
 ansible (1.6.2) unstable; urgency=low
8 8
 
9 9
   * 1.6.2 release
10 10
 
11
-  -- Michael DeHaan <michael@ansible.com>  Fri, 23 May 2014 17:30:00 -0500
11
+ -- Michael DeHaan <michael@ansible.com>  Fri, 23 May 2014 17:30:00 -0500
12 12
 
13 13
 ansible (1.6.1) unstable; urgency=low
14 14
 
15 15
   * 1.6.1 release
16 16
 
17
-  -- Michael DeHaan <michael@ansible.com>  Wed, 07 May 2014 13:30:00 -0500
17
+ -- Michael DeHaan <michael@ansible.com>  Wed, 07 May 2014 13:30:00 -0500
18 18
 
19 19
 ansible (1.6) unstable; urgency=low
20 20
 
21 21
   * 1.6.0 release
22
- 
23
-  -- Michael DeHaan <michael@ansible.com>  Mon, 05 May 2014 17:30:03 -0500
22
+
23
+ -- Michael DeHaan <michael@ansible.com>  Mon, 05 May 2014 17:30:03 -0500
24 24
 
25 25
 ansible (1.5.5) unstable; urgency=low
26 26
 
27 27
   * 1.5.5 release
28 28
 
29
-  -- Michael DeHaan <michael@ansible.com>  Fri, 18 April 2014 15:00:00 -0500
29
+ -- Michael DeHaan <michael@ansible.com>  Fri, 18 April 2014 15:00:00 -0500
30 30
 
31 31
 ansible (1.5.4) unstable; urgency=low
32 32
 
33 33
   * 1.5.4 release
34 34
 
35
-  -- Michael DeHaan <michael@ansible.com>  Tue, 01 April 2014 08:46:00 -0500
35
+ -- Michael DeHaan <michael@ansible.com>  Tue, 01 April 2014 08:46:00 -0500
36 36
 
37 37
 ansible (1.5.3) unstable; urgency=low
38 38
 
39 39
   * 1.5.3 release
40 40
 
41
-  -- Michael DeHaan <michael@ansible.com>  Thu, 13 March 2014 08:46:00 -0500
41
+ -- Michael DeHaan <michael@ansible.com>  Thu, 13 March 2014 08:46:00 -0500
42 42
 
43 43
 ansible (1.5.2) unstable; urgency=low
44 44
 
45 45
   * 1.5.2 release
46 46
 
47
-  -- Michael DeHaan <michael@ansible.com>  Tue, 11 March 2014 08:46:00 -0500
47
+ -- Michael DeHaan <michael@ansible.com>  Tue, 11 March 2014 08:46:00 -0500
48 48
 
49 49
 ansible (1.5.1) unstable; urgency=low
50 50
 
... ...
@@ -55,7 +55,7 @@ ansible (1.5.1) unstable; urgency=low
55 55
 ansible (1.5) unstable; urgency=low
56 56
 
57 57
   * 1.5 release
58
- 
58
+
59 59
  -- Michael DeHaan <michael@ansible.com>  Fri, 28 February 2014 00:00:00 -0500
60 60
 
61 61
 ansible (1.4.5) unstable; urgency=low
... ...
@@ -90,8 +90,8 @@ ansible (1.4.1) unstable; urgency=low
90 90
 
91 91
 ansible (1.4) unstable; urgency=low
92 92
 
93
-  * 1.4 release 
94
- 
93
+  * 1.4 release
94
+
95 95
  -- Michael DeHaan <michael.dehaan@gmail.com>  Thu, 21 November 2013 15:00:01 -0500
96 96
 
97 97
 ansible (1.3) unstable; urgency=low
... ...
@@ -101,15 +101,15 @@ ansible (1.3) unstable; urgency=low
101 101
  -- Michael DeHaan <michael.dehaan@gmail.com>  Fri, 13 September 2013 18:00:00 -0500
102 102
 
103 103
 ansible (1.2.2) unstable; urgency=low
104
-  
104
+
105 105
   * 1.2.2 release
106
- 
106
+
107 107
  -- Michael DeHaan <michael.dehaan@gmail.com>  Thu, 04 July 2013 21:45:01 -0500
108 108
 
109 109
 ansible (1.2.1) unstable; urgency=low
110 110
 
111 111
   * 1.2.1 release
112
- 
112
+
113 113
  -- Michael DeHaan <michael.dehaan@gmail.com>  Thu, 04 July 2013 21:45:00 -0500
114 114
 
115 115
 ansible (1.2) unstable; urgency=low
... ...
@@ -125,33 +125,33 @@ ansible (1.1) unstable; urgency=low
125 125
  -- Michael DeHaan <michael.dehaan@gmail.com>  Tue, 02 Mar 2013 20:38:00 -0500
126 126
 
127 127
 ansible (1.0) unstable; urgency=low
128
-  
129
-  * 1.0 release 
130
- 
128
+
129
+  * 1.0 release
130
+
131 131
  -- Michael DeHaan <michael.dehaan@gmail.com>  Fri, 01 Feb 2013 21:34:34 -0500
132 132
 
133 133
 ansible (0.9) unstable; urgency=low
134
-  
135
-  * 0.9 release 
136
- 
134
+
135
+  * 0.9 release
136
+
137 137
  -- Michael DeHaan <michael.dehaan@gmail.com>  Fri, 30 Nov 2012 22:00:00 -0400
138 138
 
139 139
 ansible (0.8) unstable; urgency=low
140
-  
140
+
141 141
   * 0.8 update
142
- 
142
+
143 143
  -- Michael DeHaan <michael.dehaan@gmail.com>  Fri, 19 Oct 2012 20:50:00 -0400
144 144
 
145 145
 ansible (0.7) unstable; urgency=low
146
-  
146
+
147 147
   * 0.7 update
148
- 
148
+
149 149
  -- Michael DeHaan <michael.dehaan@gmail.com>  Thu, 06 Aug 2012 18:50:00 -0400
150 150
 
151 151
 ansible (0.6) unstable; urgency=low
152
-  
152
+
153 153
   * 0.6 update
154
- 
154
+
155 155
  -- Michael DeHaan <michael.dehaan@gmail.com>  Mon, 06 Aug 2012 19:50:00 -0400
156 156
 
157 157
 ansible (0.5) unstable; urgency=low
... ...
@@ -161,9 +161,9 @@ ansible (0.5) unstable; urgency=low
161 161
  -- Michael DeHaan <michael.dehaan@gmail.com>  Wed, 04 Jul 2012 13:40:00 -0400
162 162
 
163 163
 ansible (0.4) unstable; urgency=low
164
-  
164
+
165 165
   * 0.4 update
166
- 
166
+
167 167
  -- Michael DeHaan <michael.dehaan@gmail.com>  Wed, 23 May 2012 19:40:00 -0400
168 168
 
169 169
 ansible (0.3) unstable; urgency=low
... ...
@@ -1,13 +1,16 @@
1 1
 Source: ansible
2 2
 Section: admin
3 3
 Priority: optional
4
-Maintainer: Henry Graham (hzgraham) <Henry.Graham@mail.wvu.edu>
5
-Build-Depends: cdbs, debhelper (>= 5.0.0), asciidoc
6
-Standards-Version: 3.9.1
4
+Standards-Version: 3.9.3
5
+Maintainer: Michael DeHaan <michael.dehaan@gmail.com>
6
+Build-Depends: cdbs, debhelper (>= 5.0.0), asciidoc, python, python-support, python-setuptools
7 7
 Homepage: http://ansible.github.com/
8 8
 
9 9
 Package: ansible
10 10
 Architecture: all
11
-Depends: python, python-support (>= 0.90), python-jinja2, python-yaml, python-paramiko, python-httplib2, sshpass
12
-Description: Ansible Application
13
- Ansible is a extra-simple tool/API for doing 'parallel remote things' over SSH executing commands, running "modules", or executing larger 'playbooks' that can serve as a configuration management or deployment system.
11
+Depends: python, python-support (>= 0.90), python-jinja2, python-yaml, python-paramiko, python-httplib2, sshpass, ${misc:Depends}
12
+Description: A radically simple IT automation platform
13
+ A radically simple IT automation platform that makes your applications and
14
+ systems easier to deploy. Avoid writing scripts or custom code to deploy and
15
+ update your applications— automate in a language that approaches plain English,
16
+ using SSH, with no agents to install on remote systems.