Browse code

Merge pull request #21822 from tiborvass/cherry-picks-1.11.0-rc4

Cherry picks 1.11.0 rc4

Tibor Vass authored on 2016/04/07 09:14:27
Showing 38 changed files
... ...
@@ -93,7 +93,8 @@ Sven Dowideit <SvenDowideit@home.org.au> <¨SvenDowideit@home.org.au¨>
93 93
 Sven Dowideit <SvenDowideit@home.org.au> <SvenDowideit@users.noreply.github.com>
94 94
 Sven Dowideit <SvenDowideit@home.org.au> <sven@t440s.home.gateway>
95 95
 <alexl@redhat.com> <alexander.larsson@gmail.com>
96
-Alexandr Morozov <lk4d4math@gmail.com>
96
+Alexander Morozov <lk4d4@docker.com> <lk4d4math@gmail.com>
97
+Alexander Morozov <lk4d4@docker.com>
97 98
 <git.nivoc@neverbox.com> <kuehnle@online.de>
98 99
 O.S. Tezer <ostezer@gmail.com>
99 100
 <ostezer@gmail.com> <ostezer@users.noreply.github.com>
... ...
@@ -106,7 +107,9 @@ Roberto G. Hashioka <roberto.hashioka@docker.com> <roberto_hashioka@hotmail.com>
106 106
 Sridhar Ratnakumar <sridharr@activestate.com>
107 107
 Sridhar Ratnakumar <sridharr@activestate.com> <github@srid.name>
108 108
 Liang-Chi Hsieh <viirya@gmail.com>
109
-Aleksa Sarai <cyphar@cyphar.com>
109
+Aleksa Sarai <asarai@suse.de>
110
+Aleksa Sarai <asarai@suse.de> <asarai@suse.com>
111
+Aleksa Sarai <asarai@suse.de> <cyphar@cyphar.com>
110 112
 Will Weaver <monkey@buildingbananas.com>
111 113
 Timothy Hobbs <timothyhobbs@seznam.cz>
112 114
 Nathan LeClaire <nathan.leclaire@docker.com> <nathan.leclaire@gmail.com>
... ...
@@ -117,24 +120,27 @@ Nathan LeClaire <nathan.leclaire@docker.com> <nathanleclaire@gmail.com>
117 117
 <marc@marc-abramowitz.com> <msabramo@gmail.com>
118 118
 Matthew Heon <mheon@redhat.com> <mheon@mheonlaptop.redhat.com>
119 119
 <bernat@luffy.cx> <vincent@bernat.im>
120
+<bernat@luffy.cx> <Vincent.Bernat@exoscale.ch>
120 121
 <p@pwaller.net> <peter@scraperwiki.com>
121 122
 <andrew.weiss@outlook.com> <andrew.weiss@microsoft.com>
122 123
 Francisco Carriedo <fcarriedo@gmail.com>
123 124
 <julienbordellier@gmail.com> <git@julienbordellier.com>
124 125
 <ahmetb@microsoft.com> <ahmetalpbalkan@gmail.com>
125
-<lk4d4@docker.com> <lk4d4math@gmail.com>
126 126
 <arnaud.porterie@docker.com> <icecrime@gmail.com>
127 127
 <baloo@gandi.net> <superbaloo+registrations.github@superbaloo.net>
128 128
 Brian Goff <cpuguy83@gmail.com>
129 129
 <cpuguy83@gmail.com> <bgoff@cpuguy83-mbp.home>
130
-<ewindisch@docker.com> <eric@windisch.us>
130
+<eric@windisch.us> <ewindisch@docker.com>
131 131
 <frank.rosquin+github@gmail.com> <frank.rosquin@gmail.com>
132 132
 Hollie Teal <hollie@docker.com>
133 133
 <hollie@docker.com> <hollie.teal@docker.com>
134 134
 <hollie@docker.com> <hollietealok@users.noreply.github.com>
135 135
 <huu@prismskylabs.com> <whoshuu@gmail.com>
136
-Jessica Frazelle <jess@docker.com> Jessie Frazelle <jfrazelle@users.noreply.github.com>
137
-<jess@docker.com> <jfrazelle@users.noreply.github.com>
136
+Jessica Frazelle <jess@mesosphere.com>
137
+Jessica Frazelle <jess@mesosphere.com> <jfrazelle@users.noreply.github.com>
138
+Jessica Frazelle <jess@mesosphere.com> <acidburn@docker.com>
139
+Jessica Frazelle <jess@mesosphere.com> <jess@docker.com>
140
+Jessica Frazelle <jess@mesosphere.com> <princess@docker.com>
138 141
 <konrad.wilhelm.kleine@gmail.com> <kwk@users.noreply.github.com>
139 142
 <tintypemolly@gmail.com> <tintypemolly@Ohui-MacBook-Pro.local>
140 143
 <estesp@linux.vnet.ibm.com> <estesp@gmail.com>
... ...
@@ -142,6 +148,8 @@ Jessica Frazelle <jess@docker.com> Jessie Frazelle <jfrazelle@users.noreply.gith
142 142
 Thomas LEVEIL <thomasleveil@gmail.com> Thomas LÉVEIL <thomasleveil@users.noreply.github.com>
143 143
 <oi@truffles.me.uk> <timruffles@googlemail.com>
144 144
 <Vincent.Bernat@exoscale.ch> <bernat@luffy.cx>
145
+Antonio Murdaca <antonio.murdaca@gmail.com> <amurdaca@redhat.com>
146
+Antonio Murdaca <antonio.murdaca@gmail.com> <runcom@redhat.com>
145 147
 Antonio Murdaca <antonio.murdaca@gmail.com> <me@runcom.ninja>
146 148
 Antonio Murdaca <antonio.murdaca@gmail.com> <runcom@linux.com>
147 149
 Antonio Murdaca <antonio.murdaca@gmail.com> <runcom@users.noreply.github.com>
... ...
@@ -151,8 +159,9 @@ Deshi Xiao <dxiao@redhat.com> <xiaods@gmail.com>
151 151
 Doug Davis <dug@us.ibm.com> <duglin@users.noreply.github.com>
152 152
 Jacob Atzen <jacob@jacobatzen.dk> <jatzen@gmail.com>
153 153
 Jeff Nickoloff <jeff.nickoloff@gmail.com> <jeff@allingeek.com>
154
-<jess@docker.com> <princess@docker.com>
155
-John Howard (VM) <John.Howard@microsoft.com> John Howard <jhoward@microsoft.com>
154
+John Howard (VM) <John.Howard@microsoft.com>
155
+John Howard (VM) <John.Howard@microsoft.com> <john.howard@microsoft.com>
156
+John Howard (VM) <John.Howard@microsoft.com> <jhoward@microsoft.com>
156 157
 Madhu Venugopal <madhu@socketplane.io> <madhu@docker.com>
157 158
 Mary Anthony <mary.anthony@docker.com> <mary@docker.com>
158 159
 Mary Anthony <mary.anthony@docker.com> moxiegirl <mary@docker.com>
... ...
@@ -169,3 +178,60 @@ bin liu <liubin0329@users.noreply.github.com> <liubin0329@gmail.com>
169 169
 John Howard (VM) <John.Howard@microsoft.com> jhowardmsft <jhoward@microsoft.com>
170 170
 Ankush Agarwal <ankushagarwal11@gmail.com> <ankushagarwal@users.noreply.github.com>
171 171
 Tangi COLIN <tangicolin@gmail.com> tangicolin <tangicolin@gmail.com>
172
+Allen Sun <allen.sun@daocloud.io>
173
+Adrien Gallouët <adrien@gallouet.fr> <angt@users.noreply.github.com>
174
+<aanm90@gmail.com> <martins@noironetworks.com>
175
+Anuj Bahuguna <anujbahuguna.dev@gmail.com>
176
+Anusha Ragunathan <anusha.ragunathan@docker.com> <anusha@docker.com>
177
+Avi Miller <avi.miller@oracle.com> <avi.miller@gmail.com>
178
+Brent Salisbury <brent.salisbury@docker.com> <brent@docker.com>
179
+Chander G <chandergovind@gmail.com>
180
+Chun Chen <ramichen@tencent.com> <chenchun.feed@gmail.com>
181
+Ying Li <cyli@twistedmatrix.com>
182
+Daehyeok Mun <daehyeok@gmail.com> <daehyeok@daehyeok-ui-MacBook-Air.local>
183
+<dqminh@cloudflare.com> <dqminh89@gmail.com>
184
+Daniel, Dao Quang Minh <dqminh@cloudflare.com>
185
+Daniel Nephin <dnephin@docker.com> <dnephin@gmail.com>
186
+Dave Tucker <dt@docker.com> <dave@dtucker.co.uk>
187
+Doug Tangren <d.tangren@gmail.com>
188
+Frederick F. Kautz IV <fkautz@redhat.com> <fkautz@alumni.cmu.edu>
189
+Ben Golub <ben.golub@dotcloud.com>
190
+Harold Cooper <hrldcpr@gmail.com>
191
+hsinko <21551195@zju.edu.cn> <hsinko@users.noreply.github.com>
192
+Josh Hawn <josh.hawn@docker.com> <jlhawn@berkeley.edu>
193
+Justin Cormack <justin.cormack@docker.com>
194
+<justin.cormack@docker.com> <justin.cormack@unikernel.com>
195
+<justin.cormack@docker.com> <justin@specialbusservice.com>
196
+Kamil Domański <kamil@domanski.co>
197
+Lei Jitang <leijitang@huawei.com>
198
+<leijitang@huawei.com> <leijitang@gmail.com>
199
+Linus Heckemann <lheckemann@twig-world.com>
200
+<lheckemann@twig-world.com> <anonymouse2048@gmail.com>
201
+Lynda O'Leary <lyndaoleary29@gmail.com>
202
+<lyndaoleary29@gmail.com> <lyndaoleary@hotmail.com>
203
+Marianna Tessel <mtesselh@gmail.com>
204
+Michael Huettermann <michael@huettermann.net>
205
+Moysés Borges <moysesb@gmail.com>
206
+<moysesb@gmail.com> <moyses.furtado@wplex.com.br>
207
+Nigel Poulton <nigelpoulton@hotmail.com>
208
+Qiang Huang <h.huangqiang@huawei.com>
209
+<h.huangqiang@huawei.com> <qhuang@10.0.2.15>
210
+Boaz Shuster <ripcurld.github@gmail.com>
211
+Shuwei Hao <haosw@cn.ibm.com>
212
+<haosw@cn.ibm.com> <haoshuwei24@gmail.com>
213
+Soshi Katsuta <soshi.katsuta@gmail.com>
214
+<soshi.katsuta@gmail.com> <katsuta_soshi@cyberagent.co.jp>
215
+Stefan Berger <stefanb@linux.vnet.ibm.com>
216
+<stefanb@linux.vnet.ibm.com> <stefanb@us.ibm.com>
217
+Stephen Day <stephen.day@docker.com>
218
+<stephen.day@docker.com> <stevvooe@users.noreply.github.com>
219
+Toli Kuznets <toli@docker.com>
220
+Tristan Carel <tristan@cogniteev.com>
221
+<tristan@cogniteev.com> <tristan.carel@gmail.com>
222
+Vincent Demeester <vincent@sbr.pm>
223
+<vincent@sbr.pm> <vincent+github@demeester.fr>
224
+Vishnu Kannan <vishnuk@google.com>
225
+xlgao-zju <xlgao@zju.edu.cn> xlgao <xlgao@zju.edu.cn>
226
+yuchangchun <yuchangchun1@huawei.com> y00277921 <yuchangchun1@huawei.com> 
227
+<zij@case.edu> <zjaffee@us.ibm.com>
228
+
... ...
@@ -5,53 +5,73 @@ Aanand Prasad <aanand.prasad@gmail.com>
5 5
 Aaron Davidson <aaron@databricks.com>
6 6
 Aaron Feng <aaron.feng@gmail.com>
7 7
 Aaron Huslage <huslage@gmail.com>
8
+Aaron Lehmann <aaron.lehmann@docker.com>
8 9
 Aaron Welch <welch@packet.net>
9 10
 Abel Muiño <amuino@gmail.com>
11
+Abhijeet Kasurde <akasurde@redhat.com>
10 12
 Abhinav Ajgaonkar <abhinav316@gmail.com>
11 13
 Abhishek Chanda <abhishek.becs@gmail.com>
12 14
 Abin Shahab <ashahab@altiscale.com>
13 15
 Adam Miller <admiller@redhat.com>
14 16
 Adam Singer <financeCoding@gmail.com>
17
+Aditi Rajagopal <arajagopal@us.ibm.com>
15 18
 Aditya <aditya@netroy.in>
16 19
 Adria Casas <adriacasas88@gmail.com>
17 20
 Adrian Mouat <adrian.mouat@gmail.com>
21
+Adrian Oprea <adrian@codesi.nz>
18 22
 Adrien Folie <folie.adrien@gmail.com>
23
+Adrien Gallouët <adrien@gallouet.fr>
19 24
 Ahmed Kamal <email.ahmedkamal@googlemail.com>
20 25
 Ahmet Alp Balkan <ahmetb@microsoft.com>
26
+Aidan Feldman <aidan.feldman@gmail.com>
21 27
 Aidan Hobson Sayers <aidanhs@cantab.net>
22 28
 AJ Bowen <aj@gandi.net>
29
+Ajey Charantimath <ajey.charantimath@gmail.com>
30
+ajneu <ajneu@users.noreply.github.com>
31
+Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
23 32
 Al Tobey <al@ooyala.com>
24 33
 alambike <alambike@gmail.com>
25 34
 Alan Thompson <cloojure@gmail.com>
26 35
 Albert Callarisa <shark234@gmail.com>
27 36
 Albert Zhang <zhgwenming@gmail.com>
28
-Aleksa Sarai <cyphar@cyphar.com>
37
+Aleksa Sarai <asarai@suse.de>
29 38
 Aleksandrs Fadins <aleks@s-ko.net>
30 39
 Alena Prokharchyk <alena@rancher.com>
31 40
 Alessandro Boch <aboch@docker.com>
32 41
 Alessio Biancalana <dottorblaster@gmail.com>
42
+Alex Chan <alex@alexwlchan.net>
43
+Alex Crawford <alex.crawford@coreos.com>
33 44
 Alex Gaynor <alex.gaynor@gmail.com>
45
+Alex Samorukov <samm@os2.kiev.ua>
34 46
 Alex Warhawk <ax.warhawk@gmail.com>
47
+Alexander Artemenko <svetlyak.40wt@gmail.com>
35 48
 Alexander Boyd <alex@opengroove.org>
36 49
 Alexander Larsson <alexl@redhat.com>
37 50
 Alexander Morozov <lk4d4@docker.com>
38 51
 Alexander Shopov <ash@kambanaria.org>
39
-Alexandr Morozov <lk4d4@docker.com>
52
+Alexandre Beslic <abronan@docker.com>
53
+Alexandre González <agonzalezro@gmail.com>
54
+Alexandru Sfirlogea <alexandru.sfirlogea@gmail.com>
40 55
 Alexey Guskov <lexag@mail.ru>
41 56
 Alexey Kotlyarov <alexey@infoxchange.net.au>
42 57
 Alexey Shamrin <shamrin@gmail.com>
43 58
 Alexis THOMAS <fr.alexisthomas@gmail.com>
44 59
 Allen Madsen <blatyo@gmail.com>
60
+Allen Sun <allen.sun@daocloud.io>
45 61
 almoehi <almoehi@users.noreply.github.com>
46 62
 Alvin Richards <alvin.richards@docker.com>
47 63
 amangoel <amangoel@gmail.com>
64
+Amen Belayneh <amenbelayneh@gmail.com>
48 65
 Amit Bakshi <ambakshi@gmail.com>
66
+Amit Krishnan <amit.krishnan@oracle.com>
49 67
 Amy Lindburg <amy.lindburg@docker.com>
50 68
 Anand Patil <anand.prabhakar.patil@gmail.com>
51 69
 AnandkumarPatel <anandkumarpatel@gmail.com>
70
+Anatoly Borodin <anatoly.borodin@gmail.com>
52 71
 Anchal Agrawal <aagrawa4@illinois.edu>
53 72
 Anders Janmyr <anders@janmyr.com>
54 73
 Andre Dublin <81dublin@gmail.com>
74
+Andre Granovsky <robotciti@live.com>
55 75
 Andrea Luzzardi <aluzzardi@gmail.com>
56 76
 Andrea Turli <andrea.turli@gmail.com>
57 77
 Andreas Köhler <andi5.py@gmx.net>
... ...
@@ -61,8 +81,11 @@ Andrew C. Bodine <acbodine@us.ibm.com>
61 61
 Andrew Clay Shafer <andrewcshafer@gmail.com>
62 62
 Andrew Duckworth <grillopress@gmail.com>
63 63
 Andrew France <andrew@avito.co.uk>
64
+Andrew Gerrand <adg@golang.org>
65
+Andrew Guenther <guenther.andrew.j@gmail.com>
64 66
 Andrew Kuklewicz <kookster@gmail.com>
65 67
 Andrew Macgregor <andrew.macgregor@agworld.com.au>
68
+Andrew Macpherson <hopscotch23@gmail.com>
66 69
 Andrew Martin <sublimino@gmail.com>
67 70
 Andrew Munsell <andrew@wizardapps.net>
68 71
 Andrew Weiss <andrew.weiss@outlook.com>
... ...
@@ -70,7 +93,8 @@ Andrew Williams <williams.andrew@gmail.com>
70 70
 Andrews Medina <andrewsmedina@gmail.com>
71 71
 Andrey Petrov <andrey.petrov@shazow.net>
72 72
 Andrey Stolbovsky <andrey.stolbovsky@gmail.com>
73
-André Martins <martins@noironetworks.com>
73
+André Martins <aanm90@gmail.com>
74
+andy <ztao@tibco-support.com>
74 75
 Andy Chambers <anchambers@paypal.com>
75 76
 andy diller <dillera@gmail.com>
76 77
 Andy Goldstein <agoldste@redhat.com>
... ...
@@ -79,28 +103,43 @@ Andy Rothfusz <github@developersupport.net>
79 79
 Andy Smith <github@anarkystic.com>
80 80
 Andy Wilson <wilson.andrew.j+github@gmail.com>
81 81
 Anes Hasicic <anes.hasicic@gmail.com>
82
+Anil Belur <askb23@gmail.com>
82 83
 Ankush Agarwal <ankushagarwal11@gmail.com>
84
+Anonmily <michelle@michelleliu.io>
85
+Anthon van der Neut <anthon@mnt.org>
83 86
 Anthony Baire <Anthony.Baire@irisa.fr>
84 87
 Anthony Bishopric <git@anthonybishopric.com>
88
+Anthony Dahanne <anthony.dahanne@gmail.com>
85 89
 Anton Löfgren <anton.lofgren@gmail.com>
86 90
 Anton Nikitin <anton.k.nikitin@gmail.com>
91
+Anton Polonskiy <anton.polonskiy@gmail.com>
87 92
 Anton Tiurin <noxiouz@yandex.ru>
88 93
 Antonio Murdaca <antonio.murdaca@gmail.com>
89 94
 Antony Messerli <amesserl@rackspace.com>
95
+Anuj Bahuguna <anujbahuguna.dev@gmail.com>
96
+Anusha Ragunathan <anusha.ragunathan@docker.com>
90 97
 apocas <petermdias@gmail.com>
91 98
 ArikaChen <eaglesora@gmail.com>
92 99
 Arnaud Porterie <arnaud.porterie@docker.com>
93 100
 Arthur Barr <arthur.barr@uk.ibm.com>
94 101
 Arthur Gautier <baloo@gandi.net>
102
+Artur Meyster <arthurfbi@yahoo.com>
103
+Arun Gupta <arun.gupta@gmail.com>
95 104
 Asbjørn Enge <asbjorn@hanafjedle.net>
96 105
 averagehuman <averagehuman@users.noreply.github.com>
97 106
 Avi Das <andas222@gmail.com>
98 107
 Avi Miller <avi.miller@oracle.com>
108
+ayoshitake <airandfingers@gmail.com>
109
+Azat Khuyiyakhmetov <shadow_uz@mail.ru>
110
+Bardia Keyoumarsi <bkeyouma@ucsc.edu>
99 111
 Barnaby Gray <barnaby@pickle.me.uk>
100 112
 Barry Allard <barry.allard@gmail.com>
101 113
 Bartłomiej Piotrowski <b@bpiotrowski.pl>
114
+Bastiaan Bakker <bbakker@xebia.com>
102 115
 bdevloed <boris.de.vloed@gmail.com>
103 116
 Ben Firshman <ben@firshman.co.uk>
117
+Ben Golub <ben.golub@dotcloud.com>
118
+Ben Hall <ben@benhall.me.uk>
104 119
 Ben Sargent <ben@brokendigits.com>
105 120
 Ben Severson <BenSeverson@users.noreply.github.com>
106 121
 Ben Toews <mastahyeti@gmail.com>
... ...
@@ -111,8 +150,10 @@ Bernerd Schaefer <bj.schaefer@gmail.com>
111 111
 Bert Goethals <bert@bertg.be>
112 112
 Bharath Thiruveedula <bharath_ves@hotmail.com>
113 113
 Bhiraj Butala <abhiraj.butala@gmail.com>
114
+Bill W <SydOps@users.noreply.github.com>
114 115
 bin liu <liubin0329@users.noreply.github.com>
115 116
 Blake Geno <blakegeno@gmail.com>
117
+Boaz Shuster <ripcurld.github@gmail.com>
116 118
 bobby abbott <ttobbaybbob@gmail.com>
117 119
 boucher <rboucher@gmail.com>
118 120
 Bouke Haarsma <bouke@webatoom.nl>
... ...
@@ -126,6 +167,7 @@ Brendan Dixon <brendand@microsoft.com>
126 126
 Brent Salisbury <brent.salisbury@docker.com>
127 127
 Brett Kochendorfer <brett.kochendorfer@gmail.com>
128 128
 Brian (bex) Exelbierd <bexelbie@redhat.com>
129
+Brian Bland <brian.bland@docker.com>
129 130
 Brian DeHamer <brian@dehamer.com>
130 131
 Brian Dorsey <brian@dorseys.org>
131 132
 Brian Flad <bflad417@gmail.com>
... ...
@@ -133,6 +175,7 @@ Brian Goff <cpuguy83@gmail.com>
133 133
 Brian McCallister <brianm@skife.org>
134 134
 Brian Olsen <brian@maven-group.org>
135 135
 Brian Shumate <brian@couchbase.com>
136
+Brian Torres-Gil <brian@dralth.com>
136 137
 Brice Jaglin <bjaglin@teads.tv>
137 138
 Briehan Lombaard <briehan.lombaard@gmail.com>
138 139
 Bruno Bigras <bigras.bruno@gmail.com>
... ...
@@ -149,53 +192,84 @@ Byung Kang <byung.kang.ctr@amrdec.army.mil>
149 149
 Caleb Spare <cespare@gmail.com>
150 150
 Calen Pennington <cale@edx.org>
151 151
 Cameron Boehmer <cameron.boehmer@gmail.com>
152
+Cameron Spear <cameronspear@gmail.com>
153
+Campbell Allen <campbell.allen@gmail.com>
154
+Candid Dauth <cdauth@cdauth.eu>
155
+Carl Henrik Lunde <chlunde@ping.uio.no>
152 156
 Carl X. Su <bcbcarl@gmail.com>
157
+Carlos Sanchez <carlos@apache.org>
158
+Carol Fager-Higgins <carol.fager-higgins@docker.com>
153 159
 Cary <caryhartline@users.noreply.github.com>
154 160
 Casey Bisson <casey.bisson@joyent.com>
161
+Cedric Davies <cedricda@microsoft.com>
162
+Cezar Sa Espinola <cezarsa@gmail.com>
163
+Chad Swenson <chadswen@gmail.com>
164
+Chance Zibolski <chance.zibolski@gmail.com>
165
+Chander G <chandergovind@gmail.com>
166
+Charles Chan <charleswhchan@users.noreply.github.com>
155 167
 Charles Hooper <charles.hooper@dotcloud.com>
156 168
 Charles Lindsay <chaz@chazomatic.us>
157 169
 Charles Merriam <charles.merriam@gmail.com>
170
+Charles Sarrazin <charles@sarraz.in>
158 171
 Charlie Lewis <charliel@lab41.org>
172
+Chase Bolt <chase.bolt@gmail.com>
173
+ChaYoung You <yousbe@gmail.com>
159 174
 Chen Chao <cc272309126@gmail.com>
160 175
 Chen Hanxiao <chenhanxiao@cn.fujitsu.com>
161 176
 cheney90 <cheney-90@hotmail.com>
162 177
 Chewey <prosto-chewey@users.noreply.github.com>
163 178
 Chia-liang Kao <clkao@clkao.org>
164 179
 chli <chli@freewheel.tv>
180
+Cholerae Hu <choleraehyq@gmail.com>
165 181
 Chris Alfonso <calfonso@redhat.com>
166 182
 Chris Armstrong <chris@opdemand.com>
183
+Chris Dituri <csdituri@gmail.com>
184
+Chris Fordham <chris@fordham-nagy.id.au>
167 185
 Chris Khoo <chris.khoo@gmail.com>
186
+Chris McKinnel <chrismckinnel@gmail.com>
187
+Chris Seto <chriskseto@gmail.com>
168 188
 Chris Snow <chsnow123@gmail.com>
169 189
 Chris St. Pierre <chris.a.st.pierre@gmail.com>
170 190
 Chris Stivers <chris@stivers.us>
191
+Chris Swan <chris.swan@iee.org>
171 192
 Chris Wahl <github@wahlnetwork.com>
193
+Chris Weyl <cweyl@alumni.drew.edu>
172 194
 chrismckinnel <chris.mckinnel@tangentlabs.co.uk>
173 195
 Christian Berendt <berendt@b1-systems.de>
196
+Christian Böhme <developement@boehme3d.de>
197
+Christian Rotzoll <ch.rotzoll@gmail.com>
174 198
 Christian Simon <simon@swine.de>
175 199
 Christian Stefanescu <st.chris@gmail.com>
176 200
 ChristoperBiscardi <biscarch@sketcht.com>
201
+Christophe Mehay <cmehay@online.net>
177 202
 Christophe Troestler <christophe.Troestler@umons.ac.be>
178 203
 Christopher Currie <codemonkey+github@gmail.com>
204
+Christopher Jones <tophj@linux.vnet.ibm.com>
179 205
 Christopher Latham <sudosurootdev@gmail.com>
180 206
 Christopher Rigor <crigor@gmail.com>
181 207
 Christy Perez <christy@linux.vnet.ibm.com>
182
-Chun Chen <chenchun.feed@gmail.com>
208
+Chun Chen <ramichen@tencent.com>
183 209
 Ciro S. Costa <ciro.costa@usp.br>
184 210
 Clayton Coleman <ccoleman@redhat.com>
211
+Clinton Kitson <clintonskitson@gmail.com>
185 212
 Coenraad Loubser <coenraad@wish.org.za>
186 213
 Colin Dunklau <colin.dunklau@gmail.com>
187 214
 Colin Rice <colin@daedrum.net>
188 215
 Colin Walters <walters@verbum.org>
216
+Collin Guarino <collin.guarino@gmail.com>
189 217
 Colm Hally <colmhally@gmail.com>
218
+companycy <companycy@gmail.com>
190 219
 Cory Forsyth <cory.forsyth@gmail.com>
191 220
 cressie176 <github@stephen-cresswell.net>
192 221
 Cristian Staretu <cristian.staretu@gmail.com>
222
+cristiano balducci <cristiano.balducci@gmail.com>
193 223
 Cruceru Calin-Cristian <crucerucalincristian@gmail.com>
194 224
 Cyril F <cyrilf7x@gmail.com>
195 225
 Daan van Berkel <daan.v.berkel.1980@gmail.com>
196 226
 Daehyeok Mun <daehyeok@gmail.com>
197 227
 Dafydd Crosby <dtcrsby@gmail.com>
198 228
 dalanlan <dalanlan925@gmail.com>
229
+Damien Nozay <damien.nozay@gmail.com>
199 230
 Damjan Georgievski <gdamjan@gmail.com>
200 231
 Dan Anolik <dan@anolik.net>
201 232
 Dan Buch <d.buch@modcloth.com>
... ...
@@ -203,6 +277,7 @@ Dan Cotora <dan@bluevision.ro>
203 203
 Dan Griffin <dgriffin@peer1.com>
204 204
 Dan Hirsch <thequux@upstandinghackers.com>
205 205
 Dan Keder <dan.keder@gmail.com>
206
+Dan Levy <dan@danlevy.net>
206 207
 Dan McPherson <dmcphers@redhat.com>
207 208
 Dan Stine <sw@stinemail.com>
208 209
 Dan Walsh <dwalsh@redhat.com>
... ...
@@ -212,9 +287,10 @@ Daniel Exner <dex@dragonslave.de>
212 212
 Daniel Farrell <dfarrell@redhat.com>
213 213
 Daniel Garcia <daniel@danielgarcia.info>
214 214
 Daniel Gasienica <daniel@gasienica.ch>
215
+Daniel Hiltgen <daniel.hiltgen@docker.com>
215 216
 Daniel Menet <membership@sontags.ch>
216 217
 Daniel Mizyrycki <daniel.mizyrycki@dotcloud.com>
217
-Daniel Nephin <dnephin@gmail.com>
218
+Daniel Nephin <dnephin@docker.com>
218 219
 Daniel Norberg <dano@spotify.com>
219 220
 Daniel Nordberg <dnordberg@gmail.com>
220 221
 Daniel Robinson <gottagetmac@gmail.com>
... ...
@@ -222,53 +298,76 @@ Daniel S <dan.streby@gmail.com>
222 222
 Daniel Von Fange <daniel@leancoder.com>
223 223
 Daniel YC Lin <dlin.tw@gmail.com>
224 224
 Daniel Zhang <jmzwcn@gmail.com>
225
-Daniel, Dao Quang Minh <dqminh89@gmail.com>
225
+Daniel, Dao Quang Minh <dqminh@cloudflare.com>
226 226
 Danny Berger <dpb587@gmail.com>
227 227
 Danny Yates <danny@codeaholics.org>
228 228
 Darren Coxall <darren@darrencoxall.com>
229 229
 Darren Shepherd <darren.s.shepherd@gmail.com>
230
+Darren Stahl <darst@microsoft.com>
231
+Dave Barboza <dbarboza@datto.com>
230 232
 Dave Henderson <Dave.Henderson@ca.ibm.com>
233
+Dave Tucker <dt@docker.com>
231 234
 David Anderson <dave@natulte.net>
232 235
 David Calavera <david.calavera@gmail.com>
233 236
 David Corking <dmc-source@dcorking.com>
237
+David Cramer <davcrame@cisco.com>
238
+David Currie <david_currie@uk.ibm.com>
234 239
 David Davis <daviddavis@redhat.com>
235 240
 David Gageot <david@gageot.net>
236 241
 David Gebler <davidgebler@gmail.com>
242
+David Lawrence <david.lawrence@docker.com>
237 243
 David Mackey <tdmackey@booleanhaiku.com>
238 244
 David Mat <david@davidmat.com>
239 245
 David Mcanulty <github@hellspark.com>
240 246
 David Pelaez <pelaez89@gmail.com>
241 247
 David R. Jenni <david.r.jenni@gmail.com>
242 248
 David Röthlisberger <david@rothlis.net>
249
+David Sheets <sheets@alum.mit.edu>
243 250
 David Sissitka <me@dsissitka.com>
244 251
 David Xia <dxia@spotify.com>
245 252
 David Young <yangboh@cn.ibm.com>
246 253
 Davide Ceretti <davide.ceretti@hogarthww.com>
247 254
 Dawn Chen <dawnchen@google.com>
255
+dcylabs <dcylabs@gmail.com>
248 256
 decadent <decadent@users.noreply.github.com>
249 257
 Deng Guangxing <dengguangxing@huawei.com>
250 258
 Deni Bertovic <deni@kset.org>
259
+Denis Gladkikh <denis@gladkikh.email>
260
+Denis Ollier <larchunix@users.noreply.github.com>
261
+Dennis Docter <dennis@d23.nl>
251 262
 Derek <crq@kernel.org>
252 263
 Derek <crquan@gmail.com>
264
+Derek Ch <denc716@gmail.com>
253 265
 Derek McGowan <derek@mcgstyle.net>
254 266
 Deric Crago <deric.crago@gmail.com>
255 267
 Deshi Xiao <dxiao@redhat.com>
268
+devmeyster <arthurfbi@yahoo.com>
269
+Devvyn Murphy <devvyn@devvyn.com>
270
+Dharmit Shah <shahdharmit@gmail.com>
271
+Dieter Reuter <dieter.reuter@me.com>
272
+Dima Stopel <dima@twistlock.com>
273
+Dimitri John Ledkov <dimitri.j.ledkov@intel.com>
256 274
 Dinesh Subhraveti <dineshs@altiscale.com>
275
+Diogo Monica <diogo@docker.com>
257 276
 DiuDiugirl <sophia.wang@pku.edu.cn>
258 277
 Djibril Koné <kone.djibril@gmail.com>
259 278
 dkumor <daniel@dkumor.com>
260 279
 Dmitry Demeshchuk <demeshchuk@gmail.com>
261 280
 Dmitry Gusev <dmitry.gusev@gmail.com>
262 281
 Dmitry V. Krivenok <krivenok.dmitry@gmail.com>
282
+Dmitry Vorobev <dimahabr@gmail.com>
263 283
 Dolph Mathews <dolph.mathews@gmail.com>
264 284
 Dominik Finkbeiner <finkes93@gmail.com>
265 285
 Dominik Honnef <dominik@honnef.co>
266 286
 Don Kirkby <donkirkby@users.noreply.github.com>
267 287
 Don Kjer <don.kjer@gmail.com>
268 288
 Don Spaulding <donspauldingii@gmail.com>
289
+Donald Huang <don.hcd@gmail.com>
290
+Dong Chen <dongluo.chen@docker.com>
291
+Donovan Jones <git@gamma.net.nz>
269 292
 Doug Davis <dug@us.ibm.com>
270 293
 Doug MacEachern <dougm@vmware.com>
271
-doug tangren <d.tangren@gmail.com>
294
+Doug Tangren <d.tangren@gmail.com>
272 295
 Dr Nic Williams <drnicwilliams@gmail.com>
273 296
 dragon788 <dragon788@users.noreply.github.com>
274 297
 Dražen Lučanin <kermit666@gmail.com>
... ...
@@ -278,9 +377,11 @@ Edmund Wagner <edmund-wagner@web.de>
278 278
 Eiichi Tsukata <devel@etsukata.com>
279 279
 Eike Herzbach <eike@herzbach.net>
280 280
 Eivind Uggedal <eivind@uggedal.com>
281
+Elan Ruusamäe <glen@delfi.ee>
281 282
 Elias Probst <mail@eliasprobst.eu>
282 283
 Elijah Zupancic <elijah@zupancic.name>
283 284
 eluck <mail@eluck.me>
285
+Elvir Kuric <elvirkuric@gmail.com>
284 286
 Emil Hernvall <emil@quench.at>
285 287
 Emily Maier <emily@emilymaier.net>
286 288
 Emily Rose <emily@contactvibe.com>
... ...
@@ -292,23 +393,30 @@ Eric Lee <thenorthsecedes@gmail.com>
292 292
 Eric Myhre <hash@exultant.us>
293 293
 Eric Paris <eparis@redhat.com>
294 294
 Eric Rafaloff <erafaloff@gmail.com>
295
-Eric Windisch <ewindisch@docker.com>
295
+Eric Rosenberg <ehaydenr@users.noreply.github.com>
296
+Eric Sage <eric.david.sage@gmail.com>
297
+Eric Windisch <eric@windisch.us>
296 298
 Eric-Olivier Lamey <eo@lamey.me>
299
+Erik Bray <erik.m.bray@gmail.com>
297 300
 Erik Dubbelboer <erik@dubbelboer.com>
298 301
 Erik Hollensbe <github@hollensbe.org>
299 302
 Erik Inge Bolsø <knan@redpill-linpro.com>
300 303
 Erik Kristensen <erik@erikkristensen.com>
304
+Erik Weathers <erikdw@gmail.com>
301 305
 Erno Hopearuoho <erno.hopearuoho@gmail.com>
302 306
 Erwin van der Koogh <info@erronis.nl>
303 307
 Euan <euank@amazon.com>
304 308
 Eugene Yakubovich <eugene.yakubovich@coreos.com>
305 309
 eugenkrizo <eugen.krizo@gmail.com>
310
+evalle <shmarnev@gmail.com>
311
+Evan Allrich <evan@unguku.com>
306 312
 Evan Carmi <carmi@users.noreply.github.com>
307 313
 Evan Hazlett <ejhazlett@gmail.com>
308 314
 Evan Krall <krall@yelp.com>
309 315
 Evan Phoenix <evan@fallingsnow.net>
310 316
 Evan Wies <evan@neomantra.net>
311 317
 Evgeny Vereshchagin <evvers@ya.ru>
318
+Ewa Czechowska <ewa@ai-traders.com>
312 319
 Eystein Måløy Stenberg <eystein.maloy.stenberg@cfengine.com>
313 320
 ezbercih <cem.ezberci@gmail.com>
314 321
 Fabiano Rosas <farosas@br.ibm.com>
... ...
@@ -317,74 +425,108 @@ Fabio Rehm <fgrehm@gmail.com>
317 317
 Fabrizio Regini <freegenie@gmail.com>
318 318
 Faiz Khan <faizkhan00@gmail.com>
319 319
 falmp <chico.lopes@gmail.com>
320
+Fangyuan Gao <21551127@zju.edu.cn>
320 321
 Fareed Dudhia <fareeddudhia@googlemail.com>
322
+Fathi Boudra <fathi.boudra@linaro.org>
323
+Federico Gimenez <fgimenez@coit.es>
324
+Felix Geisendörfer <felix@debuggable.com>
325
+Felix Hupfeld <quofelix@users.noreply.github.com>
321 326
 Felix Rabe <felix@rabe.io>
322 327
 Felix Schindler <fschindler@weluse.de>
323 328
 Ferenc Szabo <pragmaticfrank@gmail.com>
324 329
 Fernando <fermayo@gmail.com>
330
+Fero Volar <alian@alian.info>
325 331
 Filipe Brandenburger <filbranden@google.com>
332
+Filipe Oliveira <contato@fmoliveira.com.br>
333
+fl0yd <fl0yd@me.com>
326 334
 Flavio Castelli <fcastelli@suse.com>
327 335
 FLGMwt <ryan.stelly@live.com>
336
+Florian Klein <florian.klein@free.fr>
337
+Florian Maier <marsmensch@users.noreply.github.com>
328 338
 Florian Weingarten <flo@hackvalue.de>
339
+Florin Asavoaie <florin.asavoaie@gmail.com>
340
+Francesc Campoy <campoy@google.com>
329 341
 Francisco Carriedo <fcarriedo@gmail.com>
330 342
 Francisco Souza <f@souza.cc>
343
+Frank Groeneveld <frank@ivaldi.nl>
331 344
 Frank Herrmann <fgh@4gh.tv>
332 345
 Frank Macreery <frank@macreery.com>
333 346
 Frank Rosquin <frank.rosquin+github@gmail.com>
334 347
 Fred Lifton <fred.lifton@docker.com>
335
-Frederick F. Kautz IV <fkautz@alumni.cmu.edu>
348
+Frederick F. Kautz IV <fkautz@redhat.com>
336 349
 Frederik Loeffert <frederik@zitrusmedia.de>
350
+Frederik Nordahl Jul Sabroe <frederikns@gmail.com>
337 351
 Freek Kalter <freek@kalteronline.org>
338 352
 Félix Baylac-Jacqué <baylac.felix@gmail.com>
353
+Félix Cantournet <felix.cantournet@cloudwatt.com>
339 354
 Gabe Rosenhouse <gabe@missionst.com>
340 355
 Gabor Nagy <mail@aigeruth.hu>
341 356
 Gabriel Monroy <gabriel@opdemand.com>
357
+GabrielNicolasAvellaneda <avellaneda.gabriel@gmail.com>
342 358
 Galen Sampson <galen.sampson@gmail.com>
343 359
 Gareth Rushgrove <gareth@morethanseven.net>
360
+Garrett Barboza <garrett@garrettbarboza.com>
344 361
 Gaurav <gaurav.gosec@gmail.com>
345 362
 gautam, prasanna <prasannagautam@gmail.com>
346 363
 GennadySpb <lipenkov@gmail.com>
347 364
 Geoffrey Bachelet <grosfrais@gmail.com>
348 365
 George MacRorie <gmacr31@gmail.com>
349 366
 George Xie <georgexsh@gmail.com>
367
+Georgi Hristozov <georgi@forkbomb.nl>
350 368
 Gereon Frey <gereon.frey@dynport.de>
351 369
 German DZ <germ@ndz.com.ar>
352 370
 Gert van Valkenhoef <g.h.m.van.valkenhoef@rug.nl>
353 371
 Gianluca Borello <g.borello@gmail.com>
372
+Gildas Cuisinier <gildas.cuisinier@gcuisinier.net>
373
+gissehel <public-devgit-dantus@gissehel.org>
354 374
 Giuseppe Mazzotta <gdm85@users.noreply.github.com>
355 375
 Gleb Fotengauer-Malinovskiy <glebfm@altlinux.org>
356 376
 Gleb M Borisov <borisov.gleb@gmail.com>
357 377
 Glyn Normington <gnormington@gopivotal.com>
378
+GoBella <caili_welcome@163.com>
358 379
 Goffert van Gool <goffert@phusion.nl>
359
-golubbe <ben.golub@dotcloud.com>
360 380
 Gosuke Miyashita <gosukenator@gmail.com>
381
+Gou Rao <gourao@users.noreply.github.com>
382
+Govinda Fichtner <govinda.fichtner@googlemail.com>
383
+Grant Reaber <grant.reaber@gmail.com>
361 384
 Graydon Hoare <graydon@pobox.com>
362 385
 Greg Fausak <greg@tacodata.com>
363 386
 Greg Thornton <xdissent@me.com>
364 387
 grossws <grossws@gmail.com>
365 388
 grunny <mwgrunny@gmail.com>
389
+gs11 <gustav.sinder@gmail.com>
390
+Guilhem Lettron <guilhem+github@lettron.fr>
366 391
 Guilherme Salgado <gsalgado@gmail.com>
367 392
 Guillaume Dufour <gdufour.prestataire@voyages-sncf.com>
368 393
 Guillaume J. Charmes <guillaume.charmes@docker.com>
369 394
 guoxiuyan <guoxiuyan@huawei.com>
370 395
 Gurjeet Singh <gurjeet@singh.im>
371 396
 Guruprasad <lgp171188@gmail.com>
397
+gwx296173 <gaojing3@huawei.com>
372 398
 Günter Zöchbauer <guenter@gzoechbauer.com>
399
+Hans Kristian Flaatten <hans@starefossen.com>
373 400
 Hans Rødtang <hansrodtang@gmail.com>
401
+Hao Zhang <21521210@zju.edu.cn>
374 402
 Harald Albers <github@albersweb.de>
375 403
 Harley Laue <losinggeneration@gmail.com>
404
+Harold Cooper <hrldcpr@gmail.com>
376 405
 Harry Zhang <harryzhang@zju.edu.cn>
377 406
 He Simei <hesimei@zju.edu.cn>
407
+heartlock <21521209@zju.edu.cn>
378 408
 Hector Castro <hectcastro@gmail.com>
379 409
 Henning Sprang <henning.sprang@gmail.com>
380 410
 Hobofan <goisser94@gmail.com>
381 411
 Hollie Teal <hollie@docker.com>
382 412
 Hong Xu <hong@topbug.net>
413
+hsinko <21551195@zju.edu.cn>
383 414
 Hu Keping <hukeping@huawei.com>
384 415
 Hu Tao <hutao@cn.fujitsu.com>
416
+Huanzhong Zhang <zhanghuanzhong90@gmail.com>
385 417
 Huayi Zhang <irachex@gmail.com>
386 418
 Hugo Duncan <hugo@hugoduncan.org>
419
+Hugo Marisco <0x6875676f@gmail.com>
387 420
 Hunter Blanks <hunter@twilio.com>
421
+huqun <huqun@zju.edu.cn>
388 422
 Huu Nguyen <huu@prismskylabs.com>
389 423
 hyeongkyu.lee <hyeongkyu.lee@navercorp.com>
390 424
 hyp3rdino <markus.kortlang@lhsystems.com>
... ...
@@ -392,16 +534,23 @@ Ian Babrou <ibobrik@gmail.com>
392 392
 Ian Bishop <ianbishop@pace7.com>
393 393
 Ian Bull <irbull@gmail.com>
394 394
 Ian Calvert <ianjcalvert@gmail.com>
395
+Ian Lee <IanLee1521@gmail.com>
395 396
 Ian Main <imain@redhat.com>
396 397
 Ian Truslove <ian.truslove@gmail.com>
397 398
 Iavael <iavaelooeyt@gmail.com>
399
+Icaro Seara <icaro.seara@gmail.com>
398 400
 Igor Dolzhikov <bluesriverz@gmail.com>
401
+Ilkka Laukkanen <ilkka@ilkka.io>
402
+Ilya Dmitrichenko <errordeveloper@gmail.com>
403
+Ilya Gusev <mail@igusev.ru>
399 404
 ILYA Khlopotov <ilya.khlopotov@gmail.com>
400 405
 imre Fitos <imre.fitos+github@gmail.com>
401 406
 inglesp <peter.inglesby@gmail.com>
407
+Ingo Gottwald <in.gottwald@gmail.com>
402 408
 Isaac Dupree <antispam@idupree.com>
403 409
 Isabel Jimenez <contact.isabeljimenez@gmail.com>
404 410
 Isao Jonas <isao.jonas@gmail.com>
411
+Ivan Babrou <ibobrik@gmail.com>
405 412
 Ivan Fraixedes <ifcdev@gmail.com>
406 413
 J Bruni <joaohbruni@yahoo.com.br>
407 414
 J. Nunn <jbnunn@gmail.com>
... ...
@@ -412,12 +561,15 @@ Jake Champlin <jake.champlin.27@gmail.com>
412 412
 Jake Moshenko <jake@devtable.com>
413 413
 jakedt <jake@devtable.com>
414 414
 James Allen <jamesallen0108@gmail.com>
415
+James Carey <jecarey@us.ibm.com>
415 416
 James Carr <james.r.carr@gmail.com>
416 417
 James DeFelice <james.defelice@ishisystems.com>
417 418
 James Harrison Fisher <jameshfisher@gmail.com>
419
+James Kyburz <james.kyburz@gmail.com>
418 420
 James Kyle <james@jameskyle.org>
419 421
 James Lal <james@lightsofapollo.com>
420 422
 James Mills <prologic@shortcircuit.net.au>
423
+James Nugent <james@jen20.com>
421 424
 James Turnbull <james@lovedthanlost.net>
422 425
 Jamie Hannaford <jamie.hannaford@rackspace.com>
423 426
 Jamshid Afshar <jafshar@yahoo.com>
... ...
@@ -425,14 +577,19 @@ Jan Keromnes <janx@linux.com>
425 425
 Jan Koprowski <jan.koprowski@gmail.com>
426 426
 Jan Pazdziora <jpazdziora@redhat.com>
427 427
 Jan Toebes <jan@toebes.info>
428
+Jan-Gerd Tenberge <janten@gmail.com>
428 429
 Jan-Jaap Driessen <janjaapdriessen@gmail.com>
429 430
 Jana Radhakrishnan <mrjana@docker.com>
431
+Januar Wayong <januar@gmail.com>
430 432
 Jared Biel <jared.biel@bolderthinking.com>
431 433
 Jaroslaw Zabiello <hipertracker@gmail.com>
432 434
 jaseg <jaseg@jaseg.net>
435
+Jasmine Hegman <jasmine@jhegman.com>
433 436
 Jason Divock <jdivock@gmail.com>
434 437
 Jason Giedymin <jasong@apache.org>
438
+Jason Green <Jason.Green@AverInformatics.Com>
435 439
 Jason Hall <imjasonh@gmail.com>
440
+Jason Heiss <jheiss@aput.net>
436 441
 Jason Livesay <ithkuil@gmail.com>
437 442
 Jason McVetta <jason.mcvetta@gmail.com>
438 443
 Jason Plum <jplum@devonit.com>
... ...
@@ -440,23 +597,36 @@ Jason Shepherd <jason@jasonshepherd.net>
440 440
 Jason Smith <jasonrichardsmith@gmail.com>
441 441
 Jason Sommer <jsdirv@gmail.com>
442 442
 Jason Stangroome <jason@codeassassin.com>
443
+jaxgeller <jacksongeller@gmail.com>
444
+Jay <imjching@hotmail.com>
443 445
 Jay <teguhwpurwanto@gmail.com>
446
+Jay Kamat <github@jgkamat.33mail.com>
444 447
 Jean-Baptiste Barth <jeanbaptiste.barth@gmail.com>
445 448
 Jean-Baptiste Dalido <jeanbaptiste@appgratis.com>
446 449
 Jean-Paul Calderone <exarkun@twistedmatrix.com>
447 450
 Jean-Tiare Le Bigot <jt@yadutaf.fr>
448 451
 Jeff Anderson <jeff@docker.com>
452
+Jeff Johnston <jeff.johnston.mn@gmail.com>
449 453
 Jeff Lindsay <progrium@gmail.com>
454
+Jeff Mickey <j@codemac.net>
455
+Jeff Minard <jeff@creditkarma.com>
450 456
 Jeff Nickoloff <jeff.nickoloff@gmail.com>
451 457
 Jeff Welch <whatthejeff@gmail.com>
452 458
 Jeffrey Bolle <jeffreybolle@gmail.com>
453 459
 Jeffrey Morgan <jmorganca@gmail.com>
454 460
 Jeffrey van Gogh <jvg@google.com>
461
+Jenny Gebske <jennifer@gebske.de>
455 462
 Jeremy Grosser <jeremy@synack.me>
463
+Jeremy Price <jprice.rhit@gmail.com>
464
+Jeremy Qian <vanpire110@163.com>
465
+Jeremy Unruh <jeremybunruh@gmail.com>
466
+Jeroen Jacobs <github@jeroenj.be>
456 467
 Jesse Dearing <jesse.dearing@gmail.com>
457 468
 Jesse Dubay <jesse@thefortytwo.net>
458
-Jessica Frazelle <jess@docker.com>
469
+Jessica Frazelle <jess@mesosphere.com>
459 470
 Jezeniel Zapanta <jpzapanta22@gmail.com>
471
+jgeiger <jgeiger@gmail.com>
472
+Jian Zhang <zhangjian.fnst@cn.fujitsu.com>
460 473
 jianbosun <wonderflow.sun@gmail.com>
461 474
 Jilles Oldenbeuving <ojilles@gmail.com>
462 475
 Jim Alateras <jima@comware.com.au>
... ...
@@ -470,12 +640,16 @@ Jiří Župka <jzupka@redhat.com>
470 470
 jjy <jiangjinyang@outlook.com>
471 471
 jmzwcn <jmzwcn@gmail.com>
472 472
 Joe Beda <joe.github@bedafamily.com>
473
+Joe Doliner <jdoliner@pachyderm.io>
473 474
 Joe Ferguson <joe@infosiftr.com>
474 475
 Joe Gordon <joe.gordon0@gmail.com>
475 476
 Joe Shaw <joe@joeshaw.org>
476 477
 Joe Van Dyk <joe@tanga.com>
477 478
 Joel Friedly <joelfriedly@gmail.com>
478 479
 Joel Handwell <joelhandwell@gmail.com>
480
+Joel Hansson <joel.hansson@ecraft.com>
481
+Joel Wurtz <jwurtz@jolicode.com>
482
+Joey Geiger <jgeiger@users.noreply.github.com>
479 483
 Joey Gibson <joey@joeygibson.com>
480 484
 Joffrey F <joffrey@docker.com>
481 485
 Johan Euphrosine <proppy@google.com>
... ...
@@ -487,6 +661,7 @@ John Gardiner Myers <jgmyers@proofpoint.com>
487 487
 John Gossman <johngos@microsoft.com>
488 488
 John Howard (VM) <John.Howard@microsoft.com>
489 489
 John OBrien III <jobrieniii@yahoo.com>
490
+John Starks <jostarks@microsoft.com>
490 491
 John Tims <john.k.tims@gmail.com>
491 492
 John Warwick <jwarwick@gmail.com>
492 493
 John Willis <john.willis@docker.com>
... ...
@@ -496,13 +671,16 @@ Jonathan A. Sternberg <jonathansternberg@gmail.com>
496 496
 Jonathan Boulle <jonathanboulle@gmail.com>
497 497
 Jonathan Camp <jonathan@irondojo.com>
498 498
 Jonathan Dowland <jon+github@alcopop.org>
499
+Jonathan Lebon <jlebon@redhat.com>
499 500
 Jonathan McCrohan <jmccrohan@gmail.com>
500 501
 Jonathan Mueller <j.mueller@apoveda.ch>
501 502
 Jonathan Pares <jonathanpa@users.noreply.github.com>
502 503
 Jonathan Rudenberg <jonathan@titanous.com>
503 504
 Joost Cassee <joost@cassee.net>
505
+Jordan <jjn2009@users.noreply.github.com>
504 506
 Jordan Arentsen <blissdev@gmail.com>
505 507
 Jordan Sissel <jls@semicomplete.com>
508
+Jose Diaz-Gonzalez <josegonzalez@users.noreply.github.com>
506 509
 Joseph Anthony Pasquale Holsten <joseph@josephholsten.com>
507 510
 Joseph Hager <ajhager@gmail.com>
508 511
 Joseph Kern <jkern@semafour.net>
... ...
@@ -512,101 +690,155 @@ Josh Poimboeuf <jpoimboe@redhat.com>
512 512
 Josiah Kiehl <jkiehl@riotgames.com>
513 513
 José Tomás Albornoz <jojo@eljojo.net>
514 514
 JP <jpellerin@leapfrogonline.com>
515
+jrabbit <jackjrabbit@gmail.com>
515 516
 Julian Taylor <jtaylor.debian@googlemail.com>
516 517
 Julien Barbier <write0@gmail.com>
518
+Julien Bisconti <veggiemonk@users.noreply.github.com>
517 519
 Julien Bordellier <julienbordellier@gmail.com>
518 520
 Julien Dubois <julien.dubois@gmail.com>
521
+Julien Pervillé <julien.perville@perfect-memory.com>
519 522
 Jun-Ru Chang <jrjang@gmail.com>
523
+Jussi Nummelin <jussi.nummelin@gmail.com>
524
+Justas Brazauskas <brazauskasjustas@gmail.com>
525
+Justin Cormack <justin.cormack@docker.com>
520 526
 Justin Force <justin.force@gmail.com>
521 527
 Justin Plock <jplock@users.noreply.github.com>
522 528
 Justin Simonelis <justin.p.simonelis@gmail.com>
523 529
 Jyrki Puttonen <jyrkiput@gmail.com>
524 530
 Jérôme Petazzoni <jerome.petazzoni@dotcloud.com>
525 531
 Jörg Thalheim <joerg@higgsboson.tk>
526
-Kamil Domanski <kamil@domanski.co>
532
+Kai Blin <kai@samba.org>
533
+Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
534
+Kamil Domański <kamil@domanski.co>
535
+Kanstantsin Shautsou <kanstantsin.sha@gmail.com>
527 536
 Karan Lyons <karan@karanlyons.com>
537
+Kareem Khazem <karkhaz@karkhaz.com>
528 538
 kargakis <kargakis@users.noreply.github.com>
529 539
 Karl Grzeszczak <karlgrz@gmail.com>
540
+Karol Duleba <mr.fuxi@gmail.com>
530 541
 Katie McLaughlin <katie@glasnt.com>
531 542
 Kato Kazuyoshi <kato.kazuyoshi@gmail.com>
532 543
 Katrina Owen <katrina.owen@gmail.com>
533 544
 Kawsar Saiyeed <kawsar.saiyeed@projiris.com>
545
+kayrus <kay.diam@gmail.com>
534 546
 Keli Hu <dev@keli.hu>
535 547
 Ken Cochrane <kencochrane@gmail.com>
536 548
 Ken ICHIKAWA <ichikawa.ken@jp.fujitsu.com>
549
+Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
550
+Kenjiro Nakayama <nakayamakenjiro@gmail.com>
537 551
 Kent Johnson <kentoj@gmail.com>
538 552
 Kevin "qwazerty" Houdebert <kevin.houdebert@gmail.com>
539 553
 Kevin Clark <kevin.clark@gmail.com>
540 554
 Kevin J. Lynagh <kevin@keminglabs.com>
541 555
 Kevin Menard <kevin@nirvdrum.com>
556
+Kevin P. Kucharczyk <kevinkucharczyk@gmail.com>
557
+Kevin Shi <kshi@andrew.cmu.edu>
542 558
 Kevin Wallace <kevin@pentabarf.net>
543 559
 Kevin Yap <me@kevinyap.ca>
544 560
 Keyvan Fatehi <keyvanfatehi@gmail.com>
545 561
 kies <lleelm@gmail.com>
546 562
 Kim BKC Carlbacker <kim.carlbacker@gmail.com>
563
+Kim Eik <kim@heldig.org>
547 564
 Kimbro Staken <kstaken@kstaken.com>
565
+Kir Kolyshkin <kir@openvz.org>
548 566
 Kiran Gangadharan <kiran.daredevil@gmail.com>
549 567
 Kirill SIbirev <l0kix2@gmail.com>
550 568
 knappe <tyler.knappe@gmail.com>
551 569
 Kohei Tsuruta <coheyxyz@gmail.com>
570
+Koichi Shiraishi <k@zchee.io>
552 571
 Konrad Kleine <konrad.wilhelm.kleine@gmail.com>
553 572
 Konstantin Pelykh <kpelykh@zettaset.com>
554 573
 Krasimir Georgiev <support@vip-consult.co.uk>
574
+Kristian Haugene <kristian.haugene@capgemini.com>
575
+Kristina Zabunova <triara.xiii@gmail.com>
555 576
 krrg <krrgithub@gmail.com>
577
+Kun Zhang <zkazure@gmail.com>
578
+Kunal Kushwaha <kunal.kushwaha@gmail.com>
556 579
 Kyle Conroy <kyle.j.conroy@gmail.com>
557 580
 kyu <leehk1227@gmail.com>
558 581
 Lachlan Coote <lcoote@vmware.com>
582
+Lai Jiangshan <jiangshanlai@gmail.com>
559 583
 Lajos Papp <lajos.papp@sequenceiq.com>
560 584
 Lakshan Perera <lakshan@laktek.com>
585
+Lalatendu Mohanty <lmohanty@redhat.com>
561 586
 lalyos <lalyos@yahoo.com>
562 587
 Lance Chen <cyen0312@gmail.com>
563 588
 Lance Kinley <lkinley@loyaltymethods.com>
564 589
 Lars Kellogg-Stedman <lars@redhat.com>
565 590
 Lars R. Damerow <lars@pixar.com>
591
+Laszlo Meszaros <lacienator@gmail.com>
592
+Laurent Erignoux <lerignoux@gmail.com>
566 593
 Laurie Voss <github@seldo.com>
594
+Leandro Siqueira <leandro.siqueira@gmail.com>
595
+Lee, Meng-Han <sunrisedm4@gmail.com>
567 596
 leeplay <hyeongkyu.lee@navercorp.com>
568 597
 Lei Jitang <leijitang@huawei.com>
569 598
 Len Weincier <len@cloudafrica.net>
599
+Lennie <github@consolejunkie.net>
570 600
 Leszek Kowalski <github@leszekkowalski.pl>
601
+Levi Blackstone <levi.blackstone@rackspace.com>
571 602
 Levi Gross <levi@levigross.com>
572 603
 Lewis Marshall <lewis@lmars.net>
573 604
 Lewis Peckover <lew+github@lew.io>
574 605
 Liana Lo <liana.lixia@gmail.com>
606
+Liang Mingqiang <mqliang.zju@gmail.com>
575 607
 Liang-Chi Hsieh <viirya@gmail.com>
608
+liaoqingwei <liaoqingwei@huawei.com>
576 609
 limsy <seongyeol37@gmail.com>
610
+Linus Heckemann <lheckemann@twig-world.com>
611
+Liran Tal <liran.tal@gmail.com>
612
+Liron Levin <liron@twistlock.com>
613
+Liu Bo <bo.li.liu@oracle.com>
577 614
 Liu Hua <sdu.liu@huawei.com>
615
+LIZAO LI <lzlarryli@gmail.com>
578 616
 Lloyd Dewolf <foolswisdom@gmail.com>
579 617
 Lokesh Mandvekar <lsm5@fedoraproject.org>
618
+longliqiang88 <394564827@qq.com>
580 619
 Lorenz Leutgeb <lorenz.leutgeb@gmail.com>
581 620
 Lorenzo Fontana <fontanalorenzo@me.com>
582 621
 Louis Opter <kalessin@kalessin.fr>
622
+Luca Marturana <lucamarturana@gmail.com>
623
+Luca Orlandi <luca.orlandi@gmail.com>
624
+Luca-Bogdan Grigorescu <Luca-Bogdan Grigorescu>
625
+Lucas Chan <lucas-github@lucaschan.com>
583 626
 Luis Martínez de Bartolomé Izquierdo <lmartinez@biicode.com>
627
+Lukas Waslowski <cr7pt0gr4ph7@gmail.com>
584 628
 lukaspustina <lukas.pustina@centerdevice.com>
585 629
 lukemarsden <luke@digital-crocus.com>
630
+Lynda O'Leary <lyndaoleary29@gmail.com>
586 631
 Lénaïc Huard <lhuard@amadeus.com>
587 632
 Ma Shimiao <mashimiao.fnst@cn.fujitsu.com>
588 633
 Mabin <bin.ma@huawei.com>
634
+Madhav Puri <madhav.puri@gmail.com>
589 635
 Madhu Venugopal <madhu@socketplane.io>
636
+Mageee <21521230.zju.edu.cn>
590 637
 Mahesh Tiyyagura <tmahesh@gmail.com>
591 638
 malnick <malnick@gmail..com>
592 639
 Malte Janduda <mail@janduda.net>
640
+manchoz <giampaolo@trampolineup.com>
593 641
 Manfred Touron <m@42.am>
594 642
 Manfred Zabarauskas <manfredas@zabarauskas.com>
595 643
 Manuel Meurer <manuel@krautcomputing.com>
596 644
 Manuel Woelker <github@manuel.woelker.org>
645
+mapk0y <mapk0y@gmail.com>
597 646
 Marc Abramowitz <marc@marc-abramowitz.com>
598 647
 Marc Kuo <kuomarc2@gmail.com>
599 648
 Marc Tamsky <mtamsky@gmail.com>
649
+Marcelo Salazar <chelosalazar@gmail.com>
600 650
 Marco Hennings <marco.hennings@freiheit.com>
601 651
 Marcus Farkas <toothlessgear@finitebox.com>
602 652
 Marcus Linke <marcus.linke@gmx.de>
603 653
 Marcus Ramberg <marcus@nordaaker.com>
604 654
 Marek Goldmann <marek.goldmann@gmail.com>
605 655
 Marian Marinov <mm@yuhu.biz>
606
-Marianna <mtesselh@gmail.com>
656
+Marianna Tessel <mtesselh@gmail.com>
657
+Mario Loriedo <mario.loriedo@gmail.com>
658
+Marius Gundersen <me@mariusgundersen.net>
659
+Marius Sturm <marius@graylog.com>
607 660
 Marius Voila <marius.voila@gmail.com>
608 661
 Mark Allen <mrallen1@yahoo.com>
609 662
 Mark McGranaghan <mmcgrana@gmail.com>
663
+Mark McKinstry <mmckinst@umich.edu>
610 664
 Mark West <markewest@gmail.com>
611 665
 Marko Mikulicic <mmikulicic@gmail.com>
612 666
 Marko Tibold <marko@tibold.nl>
... ...
@@ -614,6 +846,8 @@ Markus Fix <lispmeister@gmail.com>
614 614
 Martijn Dwars <ikben@martijndwars.nl>
615 615
 Martijn van Oosterhout <kleptog@svana.org>
616 616
 Martin Honermeyer <maze@strahlungsfrei.de>
617
+Martin Kelly <martin@surround.io>
618
+Martin Mosegaard Amdisen <martin.amdisen@praqma.com>
617 619
 Martin Redmond <martin@tinychat.com>
618 620
 Mary Anthony <mary.anthony@docker.com>
619 621
 Masahito Zembutsu <zembutsu@users.noreply.github.com>
... ...
@@ -626,16 +860,22 @@ Matt Bachmann <bachmann.matt@gmail.com>
626 626
 Matt Bentley <mbentley@mbentley.net>
627 627
 Matt Haggard <haggardii@gmail.com>
628 628
 Matt McCormick <matt.mccormick@kitware.com>
629
+Matt Moore <mattmoor@google.com>
630
+Matt Robenolt <matt@ydekproductions.com>
629 631
 Matthew Heon <mheon@redhat.com>
630 632
 Matthew Mayer <matthewkmayer@gmail.com>
631 633
 Matthew Mueller <mattmuelle@gmail.com>
632 634
 Matthew Riley <mattdr@google.com>
633 635
 Matthias Klumpp <matthias@tenstral.net>
634 636
 Matthias Kühnle <git.nivoc@neverbox.com>
637
+Matthias Rampke <mr@soundcloud.com>
638
+Matthieu Hauglustaine <matt.hauglustaine@gmail.com>
635 639
 mattymo <raytrac3r@gmail.com>
636 640
 mattyw <mattyw@me.com>
641
+Mauricio Garavaglia <mauriciogaravaglia@gmail.com>
637 642
 mauriyouth <mauriyouth@gmail.com>
638 643
 Max Shytikov <mshytikov@gmail.com>
644
+Maxim Ivanov <ivanov.maxim@gmail.com>
639 645
 Maxim Kulkin <mkulkin@mirantis.com>
640 646
 Maxim Treskin <zerthurd@gmail.com>
641 647
 Maxime Petazzoni <max@signalfuse.com>
... ...
@@ -645,12 +885,18 @@ Megan Kostick <mkostick@us.ibm.com>
645 645
 Mehul Kar <mehul.kar@gmail.com>
646 646
 Mengdi Gao <usrgdd@gmail.com>
647 647
 Mert Yazıcıoğlu <merty@users.noreply.github.com>
648
+Micah Zoltu <micah@newrelic.com>
648 649
 Michael A. Smith <michael@smith-li.com>
650
+Michael Bridgen <mikeb@squaremobius.net>
649 651
 Michael Brown <michael@netdirect.ca>
650 652
 Michael Chiang <mchiang@docker.com>
651 653
 Michael Crosby <michael@docker.com>
654
+Michael Currie <mcurrie@bruceforceresearch.com>
652 655
 Michael Gorsuch <gorsuch@github.com>
656
+Michael Grauer <michael.grauer@kitware.com>
653 657
 Michael Hudson-Doyle <michael.hudson@linaro.org>
658
+Michael Huettermann <michael@huettermann.net>
659
+Michael Käufl <docker@c.michael-kaeufl.de>
654 660
 Michael Neale <michael.neale@gmail.com>
655 661
 Michael Prokop <github@michael-prokop.at>
656 662
 Michael Scharf <github@scharf.gr>
... ...
@@ -659,38 +905,62 @@ Michael Steinert <mike.steinert@gmail.com>
659 659
 Michael Thies <michaelthies78@gmail.com>
660 660
 Michael West <mwest@mdsol.com>
661 661
 Michal Fojtik <mfojtik@redhat.com>
662
+Michal Gebauer <mishak@mishak.net>
662 663
 Michal Jemala <michal.jemala@gmail.com>
663 664
 Michal Minar <miminar@redhat.com>
664 665
 Michaël Pailloncy <mpapo.dev@gmail.com>
666
+Michał Czeraszkiewicz <czerasz@gmail.com>
665 667
 Michiel@unhosted <michiel@unhosted.org>
666 668
 Miguel Angel Fernández <elmendalerenda@gmail.com>
669
+Miguel Morales <mimoralea@gmail.com>
667 670
 Mihai Borobocea <MihaiBorobocea@gmail.com>
671
+Mihuleacc Sergiu <mihuleac.sergiu@gmail.com>
672
+Mike Brown <brownwm@us.ibm.com>
668 673
 Mike Chelen <michael.chelen@gmail.com>
674
+Mike Danese <mikedanese@google.com>
669 675
 Mike Dillon <mike@embody.org>
676
+Mike Dougherty <mike.dougherty@docker.com>
670 677
 Mike Gaffney <mike@uberu.com>
678
+Mike Goelzer <mgoelzer@docker.com>
671 679
 Mike Leone <mleone896@gmail.com>
672 680
 Mike MacCana <mike.maccana@gmail.com>
673 681
 Mike Naberezny <mike@naberezny.com>
674 682
 Mike Snitzer <snitzer@redhat.com>
675 683
 Mikhail Sobolev <mss@mawhrin.net>
684
+Miloslav Trmač <mitr@redhat.com>
685
+mingqing <limingqing@cyou-inc.com>
676 686
 Mingzhen Feng <fmzhen@zju.edu.cn>
677 687
 Mitch Capper <mitch.capper@gmail.com>
688
+mlarcher <github@ringabell.org>
689
+Mohammad Banikazemi <mb@us.ibm.com>
690
+Mohammed Aaqib Ansari <maaquib@gmail.com>
678 691
 Mohit Soni <mosoni@ebay.com>
692
+Morgan Bauer <mbauer@us.ibm.com>
679 693
 Morgante Pell <morgante.pell@morgante.net>
694
+Morgy93 <thomas@ulfertsprygoda.de>
680 695
 Morten Siebuhr <sbhr@sbhr.dk>
681
-Moysés Borges <moyses.furtado@wplex.com.br>
696
+Morton Fox <github@qslw.com>
697
+Moysés Borges <moysesb@gmail.com>
698
+mqliang <mqliang.zju@gmail.com>
682 699
 Mrunal Patel <mrunalp@gmail.com>
700
+msabansal <sabansal@microsoft.com>
683 701
 mschurenko <matt.schurenko@gmail.com>
684 702
 Mustafa Akın <mustafa91@gmail.com>
703
+Muthukumar R <muthur@gmail.com>
685 704
 Médi-Rémi Hashim <medimatrix@users.noreply.github.com>
705
+Nakul Pathak <nakulpathak3@hotmail.com>
706
+Nalin Dahyabhai <nalin@redhat.com>
686 707
 Nan Monnand Deng <monnand@gmail.com>
687 708
 Naoki Orii <norii@cs.cmu.edu>
688 709
 Natalie Parker <nparker@omnifone.com>
710
+Nate Brennand <nate.brennand@clever.com>
689 711
 Nate Eagleson <nate@nateeag.com>
690 712
 Nate Jones <nate@endot.org>
691 713
 Nathan Hsieh <hsieh.nathan@gmail.com>
692 714
 Nathan Kleyn <nathan@nathankleyn.com>
693 715
 Nathan LeClaire <nathan.leclaire@docker.com>
716
+Nathan McCauley <nathan.mccauley@docker.com>
717
+Nathan Williams <nathan@teamtreehouse.com>
694 718
 Neal McBurnett <neal@mcburnett.org>
695 719
 Nelson Chen <crazysim@gmail.com>
696 720
 Nghia Tran <nghia@google.com>
... ...
@@ -701,12 +971,17 @@ Nick Parker <nikaios@gmail.com>
701 701
 Nick Payne <nick@kurai.co.uk>
702 702
 Nick Stenning <nick.stenning@digital.cabinet-office.gov.uk>
703 703
 Nick Stinemates <nick@stinemates.org>
704
+Nicolas Borboën <ponsfrilus@users.noreply.github.com>
704 705
 Nicolas De loof <nicolas.deloof@gmail.com>
705 706
 Nicolas Dudebout <nicolas.dudebout@gatech.edu>
706 707
 Nicolas Goy <kuon@goyman.com>
707 708
 Nicolas Kaiser <nikai@nikai.net>
709
+Nicolás Hock Isaza <nhocki@gmail.com>
710
+Nigel Poulton <nigelpoulton@hotmail.com>
708 711
 NikolaMandic <mn080202@gmail.com>
709 712
 nikolas <nnyby@columbia.edu>
713
+Nishant Totla <nishanttotla@gmail.com>
714
+NIWA Hideyuki <niwa.niwa@nifty.ne.jp>
710 715
 noducks <onemannoducks@gmail.com>
711 716
 Nolan Darilek <nolan@thewordnerd.info>
712 717
 nponeccop <andy.melnikov@gmail.com>
... ...
@@ -717,10 +992,19 @@ OddBloke <daniel@daniel-watkins.co.uk>
717 717
 odk- <github@odkurzacz.org>
718 718
 Oguz Bilgic <fisyonet@gmail.com>
719 719
 Oh Jinkyun <tintypemolly@gmail.com>
720
+Ohad Schneider <ohadschn@users.noreply.github.com>
720 721
 Ole Reifschneider <mail@ole-reifschneider.de>
722
+Oliver Neal <ItsVeryWindy@users.noreply.github.com>
721 723
 Olivier Gambier <dmp42@users.noreply.github.com>
724
+Olle Jonsson <olle.jonsson@gmail.com>
725
+Oriol Francès <oriolfa@gmail.com>
726
+Otto Kekäläinen <otto@seravo.fi>
727
+oyld <oyld0210@163.com>
728
+ozlerhakan <hakan.ozler@kodcu.com>
729
+paetling <paetling@gmail.com>
722 730
 pandrew <letters@paulnotcom.se>
723 731
 panticz <mail@konczalski.de>
732
+Paolo G. Giarrusso <p.giarrusso@gmail.com>
724 733
 Pascal Borreli <pascal@borreli.com>
725 734
 Pascal Hartig <phartig@rdrei.net>
726 735
 Patrick Devine <patrick.devine@docker.com>
... ...
@@ -735,50 +1019,75 @@ Paul Bowsher <pbowsher@globalpersonals.co.uk>
735 735
 Paul Hammond <paul@paulhammond.org>
736 736
 Paul Jimenez <pj@place.org>
737 737
 Paul Lietar <paul@lietar.net>
738
+Paul Liljenberg <liljenberg.paul@gmail.com>
738 739
 Paul Morie <pmorie@gmail.com>
739 740
 Paul Nasrat <pnasrat@gmail.com>
740 741
 Paul Weaver <pauweave@cisco.com>
741 742
 Pavel Lobashov <ShockwaveNN@gmail.com>
743
+Pavel Pospisil <pospispa@gmail.com>
744
+Pavel Sutyrin <pavel.sutyrin@gmail.com>
742 745
 Pavel Tikhomirov <ptikhomirov@parallels.com>
743 746
 Pavlos Ratis <dastergon@gentoo.org>
747
+Peeyush Gupta <gpeeyush@linux.vnet.ibm.com>
744 748
 Peggy Li <peggyli.224@gmail.com>
749
+Pei Su <sillyousu@gmail.com>
750
+Penghan Wang <ph.wang@daocloud.io>
751
+perhapszzy@sina.com <perhapszzy@sina.com>
745 752
 Peter Bourgon <peter@bourgon.org>
746 753
 Peter Braden <peterbraden@peterbraden.co.uk>
747 754
 Peter Choi <reikani@Peters-MacBook-Pro.local>
748 755
 Peter Dave Hello <PeterDaveHello@users.noreply.github.com>
756
+Peter Edge <peter.edge@gmail.com>
749 757
 Peter Ericson <pdericson@gmail.com>
750 758
 Peter Esbensen <pkesbensen@gmail.com>
759
+Peter Malmgren <ptmalmgren@gmail.com>
751 760
 Peter Salvatore <peter@psftw.com>
752 761
 Peter Volpe <petervo@redhat.com>
753 762
 Peter Waller <p@pwaller.net>
754 763
 Phil <underscorephil@gmail.com>
755 764
 Phil Estes <estesp@linux.vnet.ibm.com>
756 765
 Phil Spitler <pspitler@gmail.com>
766
+Philip Monroe <phil@philmonroe.com>
767
+Philipp Wahala <philipp.wahala@gmail.com>
757 768
 Philipp Weissensteiner <mail@philippweissensteiner.com>
758 769
 Phillip Alexander <git@phillipalexander.io>
770
+pidster <pid@pidster.com>
759 771
 Piergiuliano Bossi <pgbossi@gmail.com>
760 772
 Pierre <py@poujade.org>
773
+Pierre Carrier <pierre@meteor.com>
761 774
 Pierre Wacrenier <pierre.wacrenier@gmail.com>
762 775
 Pierre-Alain RIVIERE <pariviere@ippon.fr>
763 776
 Piotr Bogdan <ppbogdan@gmail.com>
764 777
 pixelistik <pixelistik@users.noreply.github.com>
765 778
 Porjo <porjo38@yahoo.com.au>
779
+Poul Kjeldager Sørensen <pks@s-innovations.net>
766 780
 Pradeep Chhetri <pradeep@indix.com>
767 781
 Prasanna Gautam <prasannagautam@gmail.com>
782
+Prayag Verma <prayag.verma@gmail.com>
768 783
 Przemek Hejman <przemyslaw.hejman@gmail.com>
769 784
 pysqz <randomq@126.com>
785
+qg <1373319223@qq.com>
786
+qhuang <h.huangqiang@huawei.com>
770 787
 Qiang Huang <h.huangqiang@huawei.com>
788
+qq690388648 <690388648@qq.com>
771 789
 Quentin Brossard <qbrossard@gmail.com>
790
+Quentin Perez <qperez@ocs.online.net>
791
+Quentin Tayssier <qtayssier@gmail.com>
772 792
 r0n22 <cameron.regan@gmail.com>
773 793
 Rafal Jeczalik <rjeczalik@gmail.com>
774 794
 Rafe Colton <rafael.colton@gmail.com>
795
+Raghavendra K T <raghavendra.kt@linux.vnet.ibm.com>
775 796
 Raghuram Devarakonda <draghuram@gmail.com>
776 797
 Rajat Pandit <rp@rajatpandit.com>
777 798
 Rajdeep Dua <dua_rajdeep@yahoo.com>
799
+Ralle <spam@rasmusa.net>
778 800
 Ralph Bean <rbean@redhat.com>
779 801
 Ramkumar Ramachandra <artagnon@gmail.com>
780 802
 Ramon van Alteren <ramon@vanalteren.nl>
803
+Ray Tsang <saturnism@users.noreply.github.com>
804
+ReadmeCritic <frankensteinbot@gmail.com>
781 805
 Recursive Madman <recursive.madman@gmx.de>
806
+Regan McCooey <rmccooey27@aol.com>
782 807
 Remi Rampin <remirampin@gmail.com>
783 808
 Renato Riccieri Santos Zannon <renato.riccieri@gmail.com>
784 809
 resouer <resouer@163.com>
... ...
@@ -789,54 +1098,87 @@ Richard <richard.scothern@gmail.com>
789 789
 Richard Burnison <rburnison@ebay.com>
790 790
 Richard Harvey <richard@squarecows.com>
791 791
 Richard Metzler <richard@paadee.com>
792
+Richard Scothern <richard.scothern@gmail.com>
792 793
 Richo Healey <richo@psych0tik.net>
793 794
 Rick Bradley <rick@users.noreply.github.com>
794 795
 Rick van de Loo <rickvandeloo@gmail.com>
795 796
 Rick Wieman <git@rickw.nl>
796 797
 Rik Nijessen <rik@keefo.nl>
798
+Riku Voipio <riku.voipio@linaro.org>
799
+Riley Guerin <rileytg.dev@gmail.com>
800
+Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
801
+Rob Vesse <rvesse@dotnetrdf.org>
797 802
 Robert Bachmann <rb@robertbachmann.at>
798 803
 Robert Bittle <guywithnose@gmail.com>
799 804
 Robert Obryk <robryk@gmail.com>
805
+Robert Stern <lexandro2000@gmail.com>
806
+Robert Wallis <smilingrob@gmail.com>
800 807
 Roberto G. Hashioka <roberto.hashioka@docker.com>
808
+Robin Naundorf <r.naundorf@fh-muenster.de>
809
+Robin Schneider <ypid@riseup.net>
801 810
 Robin Speekenbrink <robin@kingsquare.nl>
802 811
 robpc <rpcann@gmail.com>
803 812
 Rodrigo Vaz <rodrigo.vaz@gmail.com>
804 813
 Roel Van Nyen <roel.vannyen@gmail.com>
805 814
 Roger Peppe <rogpeppe@gmail.com>
806 815
 Rohit Jnagal <jnagal@google.com>
816
+Rohit Kadam <rohit.d.kadam@gmail.com>
807 817
 Roland Huß <roland@jolokia.org>
808 818
 Roland Moriz <rmoriz@users.noreply.github.com>
819
+Roma Sokolov <sokolov.r.v@gmail.com>
820
+Roman Strashkin <roman.strashkin@gmail.com>
809 821
 Ron Smits <ron.smits@gmail.com>
810 822
 root <docker-dummy@example.com>
823
+root <root@ubuntu-14.04-amd64-vbox>
824
+root <root@webm215.cluster016.ha.ovh.net>
825
+Rory Hunter <roryhunter2@gmail.com>
826
+Rory McCune <raesene@gmail.com>
827
+Ross Boucher <rboucher@gmail.com>
811 828
 Rovanion Luckey <rovanion.luckey@gmail.com>
829
+Rozhnov Alexandr <nox73@ya.ru>
830
+rsmoorthy <rsmoorthy@users.noreply.github.com>
812 831
 Rudolph Gottesheim <r.gottesheim@loot.at>
832
+Rui Lopes <rgl@ruilopes.com>
813 833
 Ryan Anderson <anderson.ryanc@gmail.com>
814 834
 Ryan Aslett <github@mixologic.com>
835
+Ryan Belgrave <rmb1993@gmail.com>
815 836
 Ryan Detzel <ryan.detzel@gmail.com>
816 837
 Ryan Fowler <rwfowler@gmail.com>
838
+Ryan McLaughlin <rmclaughlin@insidesales.com>
817 839
 Ryan O'Donnell <odonnellryanc@gmail.com>
818 840
 Ryan Seto <ryanseto@yak.net>
819 841
 Ryan Thomas <rthomas@atlassian.com>
842
+Ryan Trauntvein <rtrauntvein@novacoast.com>
843
+Ryan Wallner <ryan.wallner@clusterhq.com>
844
+RyanDeng <sheldon.d1018@gmail.com>
820 845
 Rémy Greinhofer <remy.greinhofer@livelovely.com>
821 846
 s. rannou <mxs@sbrk.org>
822 847
 s00318865 <sunyuan3@huawei.com>
823 848
 Sabin Basyal <sabin.basyal@gmail.com>
824 849
 Sachin Joshi <sachin_jayant_joshi@hotmail.com>
850
+Sagar Hani <sagarhani33@gmail.com>
851
+Sally O'Malley <somalley@redhat.com>
825 852
 Sam Abed <sam.abed@gmail.com>
826 853
 Sam Alba <sam.alba@gmail.com>
827 854
 Sam Bailey <cyprix@cyprix.com.au>
828 855
 Sam J Sharpe <sam.sharpe@digital.cabinet-office.gov.uk>
856
+Sam Neirinck <sam@samneirinck.com>
829 857
 Sam Reis <sreis@atlassian.com>
830 858
 Sam Rijs <srijs@airpost.net>
859
+Sambuddha Basu <sambuddhabasu1@gmail.com>
831 860
 Sami Wagiaalla <swagiaal@redhat.com>
832 861
 Samuel Andaya <samuel@andaya.net>
862
+Samuel Dion-Girardeau <samuel.diongirardeau@gmail.com>
863
+Samuel Karp <skarp@amazon.com>
833 864
 Samuel PHAN <samuel-phan@users.noreply.github.com>
834 865
 Sankar சங்கர் <sankar.curiosity@gmail.com>
835 866
 Sanket Saurav <sanketsaurav@gmail.com>
867
+Santhosh Manohar <santhosh@docker.com>
836 868
 sapphiredev <se.imas.kr@gmail.com>
837 869
 Satnam Singh <satnam@raintown.org>
838 870
 satoru <satorulogic@gmail.com>
839 871
 Satoshi Amemiya <satoshi_amemiya@voyagegroup.com>
872
+scaleoutsean <scaleoutsean@users.noreply.github.com>
840 873
 Scott Bessler <scottbessler@gmail.com>
841 874
 Scott Collier <emailscottcollier@gmail.com>
842 875
 Scott Johnston <scott@docker.com>
... ...
@@ -844,6 +1186,7 @@ Scott Stamp <scottstamp851@gmail.com>
844 844
 Scott Walls <sawalls@umich.edu>
845 845
 sdreyesg <sdreyesg@gmail.com>
846 846
 Sean Cronin <seancron@gmail.com>
847
+Sean OMeara <sean@chef.io>
847 848
 Sean P. Kane <skane@newrelic.com>
848 849
 Sebastiaan van Steenis <mail@superseb.nl>
849 850
 Sebastiaan van Stijn <github@gone.nl>
... ...
@@ -852,14 +1195,20 @@ SeongJae Park <sj38.park@gmail.com>
852 852
 Seongyeol Lim <seongyeol37@gmail.com>
853 853
 Sergey Alekseev <sergey.alekseev.minsk@gmail.com>
854 854
 Sergey Evstifeev <sergey.evstifeev@gmail.com>
855
+Sevki Hasirci <s@sevki.org>
855 856
 Shane Canon <scanon@lbl.gov>
857
+Shane da Silva <shane@dasilva.io>
856 858
 shaunol <shaunol@gmail.com>
857 859
 Shawn Landden <shawn@churchofgit.com>
858 860
 Shawn Siefkas <shawn.siefkas@meredith.com>
861
+Shekhar Gulati <shekhargulati84@gmail.com>
862
+Sheng Yang <sheng@yasker.org>
859 863
 Shih-Yuan Lee <fourdollars@gmail.com>
860 864
 Shijiang Wei <mountkin@gmail.com>
861 865
 Shishir Mahajan <shishir.mahajan@redhat.com>
862 866
 shuai-z <zs.broccoli@gmail.com>
867
+Shuwei Hao <haosw@cn.ibm.com>
868
+Sian Lerk Lau <kiawin@gmail.com>
863 869
 sidharthamani <sid@rancher.com>
864 870
 Silas Sewell <silas@sewell.org>
865 871
 Simei He <hesimei@zju.edu.cn>
... ...
@@ -868,23 +1217,37 @@ Simon Leinen <simon.leinen@gmail.com>
868 868
 Simon Taranto <simon.taranto@gmail.com>
869 869
 Sindhu S <sindhus@live.in>
870 870
 Sjoerd Langkemper <sjoerd-github@linuxonly.nl>
871
+Solganik Alexander <solganik@gmail.com>
871 872
 Solomon Hykes <solomon@docker.com>
872 873
 Song Gao <song@gao.io>
874
+Soshi Katsuta <soshi.katsuta@gmail.com>
873 875
 Soulou <leo@unbekandt.eu>
876
+Spencer Brown <spencer@spencerbrown.org>
877
+Spencer Smith <robertspencersmith@gmail.com>
874 878
 Sridatta Thatipamala <sthatipamala@gmail.com>
875 879
 Sridhar Ratnakumar <sridharr@activestate.com>
876 880
 Srini Brahmaroutu <sbrahma@us.ibm.com>
877 881
 Srini Brahmaroutu <srbrahma@us.ibm.com>
878 882
 Steeve Morin <steeve.morin@gmail.com>
883
+Stefan Berger <stefanb@linux.vnet.ibm.com>
884
+Stefan J. Wernli <swernli@microsoft.com>
879 885
 Stefan Praszalowicz <stefan@greplin.com>
886
+Stefan Scherer <scherer_stefan@icloud.com>
887
+Stefan Staudenmeyer <doerte@instana.com>
888
+Stefan Weil <sw@weilnetz.de>
880 889
 Stephen Crosby <stevecrozz@gmail.com>
881
-Stephen J Day <stephen.day@docker.com>
890
+Stephen Day <stephen.day@docker.com>
891
+Stephen Rust <srust@blockbridge.com>
892
+Steve Durrheimer <s.durrheimer@gmail.com>
882 893
 Steve Francia <steve.francia@gmail.com>
883 894
 Steve Koch <stevekochscience@gmail.com>
884 895
 Steven Burgess <steven.a.burgess@hotmail.com>
896
+Steven Iveson <sjiveson@outlook.com>
885 897
 Steven Merrill <steven.merrill@gmail.com>
886 898
 Steven Richards <steven@axiomzen.co>
887 899
 Steven Taylor <steven.taylor@me.com>
900
+Sujith Haridasan <sujith.h@gmail.com>
901
+Suryakumar Sudar <surya.trunks@gmail.com>
888 902
 Sven Dowideit <SvenDowideit@home.org.au>
889 903
 Swapnil Daingade <swapnil.daingade@gmail.com>
890 904
 Sylvain Baubeau <sbaubeau@redhat.com>
... ...
@@ -892,13 +1255,18 @@ Sylvain Bellemare <sylvain.bellemare@ezeep.com>
892 892
 Sébastien <sebastien@yoozio.com>
893 893
 Sébastien Luttringer <seblu@seblu.net>
894 894
 Sébastien Stormacq <sebsto@users.noreply.github.com>
895
+TAGOMORI Satoshi <tagomoris@gmail.com>
895 896
 tang0th <tang0th@gmx.com>
896 897
 Tangi COLIN <tangicolin@gmail.com>
897 898
 Tatsuki Sugiura <sugi@nemui.org>
898 899
 Tatsushi Inagaki <e29253@jp.ibm.com>
900
+Taylor Jones <monitorjbl@gmail.com>
901
+tbonza <tylers.pile@gmail.com>
899 902
 Ted M. Young <tedyoung@gmail.com>
900 903
 Tehmasp Chaudhri <tehmasp@gmail.com>
901 904
 Tejesh Mehta <tejesh.mehta@gmail.com>
905
+terryding77 <550147740@qq.com>
906
+tgic <farmer1992@gmail.com>
902 907
 Thatcher Peskens <thatcher@docker.com>
903 908
 theadactyl <thea.lamkin@gmail.com>
904 909
 Thell 'Bo' Fowler <thell@tbfowler.name>
... ...
@@ -906,33 +1274,48 @@ Thermionix <bond711@gmail.com>
906 906
 Thijs Terlouw <thijsterlouw@gmail.com>
907 907
 Thomas Bikeev <thomas.bikeev@mac.com>
908 908
 Thomas Frössman <thomasf@jossystem.se>
909
+Thomas Gazagnaire <thomas@gazagnaire.org>
909 910
 Thomas Hansen <thomas.hansen@gmail.com>
910 911
 Thomas LEVEIL <thomasleveil@gmail.com>
911 912
 Thomas Orozco <thomas@orozco.fr>
912 913
 Thomas Schroeter <thomas@cliqz.com>
913 914
 Thomas Sjögren <konstruktoid@users.noreply.github.com>
915
+Thomas Swift <tgs242@gmail.com>
914 916
 Thomas Texier <sharkone@en-mousse.org>
915 917
 Tianon Gravi <admwiggin@gmail.com>
916 918
 Tibor Vass <teabee89@gmail.com>
917 919
 Tiffany Low <tiffany@box.com>
918 920
 Tim Bosse <taim@bosboot.org>
921
+Tim Dettrick <t.dettrick@uq.edu.au>
919 922
 Tim Hockin <thockin@google.com>
920 923
 Tim Ruffles <oi@truffles.me.uk>
921 924
 Tim Smith <timbot@google.com>
922 925
 Tim Terhorst <mynamewastaken+git@gmail.com>
926
+Tim Wang <timwangdev@gmail.com>
927
+Tim Waugh <twaugh@redhat.com>
928
+Tim Wraight <tim.wraight@tangentlabs.co.uk>
923 929
 Timothy Hobbs <timothyhobbs@seznam.cz>
924 930
 tjwebb123 <tjwebb123@users.noreply.github.com>
925 931
 tobe <tobegit3hub@gmail.com>
926 932
 Tobias Bieniek <Tobias.Bieniek@gmx.de>
933
+Tobias Bradtke <webwurst@gmail.com>
927 934
 Tobias Gesellchen <tobias@gesellix.de>
935
+Tobias Klauser <tklauser@distanz.ch>
928 936
 Tobias Schmidt <ts@soundcloud.com>
929 937
 Tobias Schwab <tobias.schwab@dynport.de>
938
+Todd Crane <todd@toddcrane.com>
930 939
 Todd Lunter <tlunter@gmail.com>
931 940
 Todd Whiteman <todd.whiteman@joyent.com>
941
+Toli Kuznets <toli@docker.com>
942
+Tom Barlow <tomwbarlow@gmail.com>
943
+Tom Denham <tom@tomdee.co.uk>
932 944
 Tom Fotherby <tom+github@peopleperhour.com>
945
+Tom Howe <tom.howe@enstratius.com>
933 946
 Tom Hulihan <hulihan.tom159@gmail.com>
934 947
 Tom Maaswinkel <tom.maaswinkel@12wiki.eu>
948
+Tom X. Tobin <tomxtobin@tomxtobin.com>
935 949
 Tomas Tomecek <ttomecek@redhat.com>
950
+Tomasz Kopczynski <tomek@kopczynski.net.pl>
936 951
 Tomasz Lipinski <tlipinski@users.noreply.github.com>
937 952
 Tomasz Nurkiewicz <nurkiewicz@gmail.com>
938 953
 Tommaso Visconti <tommaso.visconti@gmail.com>
... ...
@@ -941,24 +1324,39 @@ Tonis Tiigi <tonistiigi@gmail.com>
941 941
 Tonny Xu <tonny.xu@gmail.com>
942 942
 Tony Daws <tony@daws.ca>
943 943
 Tony Miller <mcfiredrill@gmail.com>
944
+toogley <toogley@mailbox.org>
944 945
 Torstein Husebø <torstein@huseboe.net>
945 946
 tpng <benny.tpng@gmail.com>
947
+tracylihui <793912329@qq.com>
946 948
 Travis Cline <travis.cline@gmail.com>
947 949
 Travis Thieman <travis.thieman@gmail.com>
948 950
 Trent Ogren <tedwardo2@gmail.com>
949
-Tristan Carel <tristan.carel@gmail.com>
951
+Trevor <trevinwoodstock@gmail.com>
952
+Trevor Pounds <trevor.pounds@gmail.com>
953
+trishnaguha <trishnaguha17@gmail.com>
954
+Tristan Carel <tristan@cogniteev.com>
955
+Troy Denton <trdenton@gmail.com>
950 956
 Tyler Brock <tyler.brock@gmail.com>
951 957
 Tzu-Jung Lee <roylee17@gmail.com>
958
+Tõnis Tiigi <tonistiigi@gmail.com>
952 959
 Ulysse Carion <ulyssecarion@gmail.com>
953 960
 unknown <sebastiaan@ws-key-sebas3.dpi1.dpi>
954 961
 vagrant <vagrant@ubuntu-14.04-amd64-vbox>
955 962
 Vaidas Jablonskis <jablonskis@gmail.com>
963
+Veres Lajos <vlajos@gmail.com>
956 964
 vgeta <gopikannan.venugopalsamy@gmail.com>
957 965
 Victor Coisne <victor.coisne@dotcloud.com>
966
+Victor Costan <costan@gmail.com>
967
+Victor I. Wood <viw@t2am.com>
958 968
 Victor Lyuboslavsky <victor@victoreda.com>
959 969
 Victor Marmol <vmarmol@google.com>
970
+Victor Palma <palma.victor@gmail.com>
960 971
 Victor Vieux <victor.vieux@docker.com>
972
+Victoria Bialas <victoria.bialas@docker.com>
973
+Vijaya Kumar K <vijayak@caviumnetworks.com>
974
+Viktor Stanchev <me@viktorstanchev.com>
961 975
 Viktor Vojnovski <viktor.vojnovski@amadeus.com>
976
+VinayRaghavanKS <raghavan.vinay@gmail.com>
962 977
 Vincent Batts <vbatts@redhat.com>
963 978
 Vincent Bernat <bernat@luffy.cx>
964 979
 Vincent Bernat <Vincent.Bernat@exoscale.ch>
... ...
@@ -976,15 +1374,22 @@ Vivek Goyal <vgoyal@redhat.com>
976 976
 Vladimir Bulyga <xx@ccxx.cc>
977 977
 Vladimir Kirillov <proger@wilab.org.ua>
978 978
 Vladimir Rutsky <altsysrq@gmail.com>
979
+Vladimir Varankin <nek.narqo+git@gmail.com>
979 980
 VladimirAus <v_roudakov@yahoo.com>
980 981
 Vojtech Vitek (V-Teq) <vvitek@redhat.com>
981 982
 waitingkuo <waitingkuo0527@gmail.com>
982 983
 Walter Leibbrandt <github@wrl.co.za>
983 984
 Walter Stanish <walter@pratyeka.org>
985
+WANG Chao <wcwxyz@gmail.com>
984 986
 Ward Vandewege <ward@jhvc.com>
985 987
 WarheadsSE <max@warheads.net>
986 988
 Wayne Chang <wayne@neverfear.org>
987 989
 Wei-Ting Kuo <waitingkuo0527@gmail.com>
990
+weiyan <weiyan3@huawei.com>
991
+Weiyang Zhu <cnresonant@gmail.com>
992
+Wen Cheng Ma <wenchma@cn.ibm.com>
993
+Wenxuan Zhao <viz@linux.com>
994
+Wenyu You <21551128@zju.edu.cn>
988 995
 Wes Morgan <cap10morgan@gmail.com>
989 996
 Will Dietz <w@wdtz.org>
990 997
 Will Rouesnel <w.rouesnel@gmail.com>
... ...
@@ -992,6 +1397,7 @@ Will Weaver <monkey@buildingbananas.com>
992 992
 willhf <willhf@gmail.com>
993 993
 William Delanoue <william.delanoue@gmail.com>
994 994
 William Henry <whenry@redhat.com>
995
+William Hubbs <w.d.hubbs@gmail.com>
995 996
 William Riancho <wr.wllm@gmail.com>
996 997
 William Thurston <thurstw@amazon.com>
997 998
 WiseTrem <shepelyov.g@gmail.com>
... ...
@@ -1000,34 +1406,55 @@ Wolfgang Powisch <powo@powo.priv.at>
1000 1000
 wonderflow <wonderflow.sun@gmail.com>
1001 1001
 xamyzhao <x.amy.zhao@gmail.com>
1002 1002
 XiaoBing Jiang <s7v7nislands@gmail.com>
1003
+Xiaoxu Chen <chenxiaoxu14@otcaix.iscas.ac.cn>
1004
+xiekeyang <xiekeyang@huawei.com>
1003 1005
 Xinzi Zhou <imdreamrunner@gmail.com>
1004 1006
 Xiuming Chen <cc@cxm.cc>
1007
+xlgao-zju <xlgao@zju.edu.cn>
1005 1008
 xuzhaokui <cynicholas@gmail.com>
1006
-y00277921 <yuchangchun1@huawei.com>
1007 1009
 Yahya <ya7yaz@gmail.com>
1008 1010
 YAMADA Tsuyoshi <tyamada@minimum2scp.org>
1009 1011
 Yan Feng <yanfeng2@huawei.com>
1010 1012
 Yang Bai <hamo.by@gmail.com>
1013
+yangshukui <yangshukui@huawei.com>
1011 1014
 Yasunori Mahata <nori@mahata.net>
1012 1015
 Yestin Sun <sunyi0804@gmail.com>
1016
+Yi EungJun <eungjun.yi@navercorp.com>
1017
+Yibai Zhang <xm1994@gmail.com>
1013 1018
 Yihang Ho <hoyihang5@gmail.com>
1019
+Ying Li <cyli@twistedmatrix.com>
1014 1020
 Yohei Ueda <yohei@jp.ibm.com>
1021
+Yong Tang <yong.tang.github@outlook.com>
1015 1022
 Yongzhi Pan <panyongzhi@gmail.com>
1023
+Youcef YEKHLEF <yyekhlef@gmail.com>
1016 1024
 Yuan Sun <sunyuan3@huawei.com>
1025
+yuchangchun <yuchangchun1@huawei.com>
1026
+yuchengxia <yuchengxia@huawei.com>
1017 1027
 Yurii Rashkovskii <yrashk@gmail.com>
1028
+yuzou <zouyu7@huawei.com>
1018 1029
 Zac Dover <zdover@redhat.com>
1019 1030
 Zach Borboa <zachborboa@gmail.com>
1031
+Zachary Jaffee <zij@case.edu>
1020 1032
 Zain Memon <zain@inzain.net>
1021 1033
 Zaiste! <oh@zaiste.net>
1022 1034
 Zane DeGraffenried <zane.deg@gmail.com>
1023 1035
 Zefan Li <lizefan@huawei.com>
1024 1036
 Zen Lin(Zhinan Lin) <linzhinan@huawei.com>
1037
+Zhang Kun <zkazure@gmail.com>
1025 1038
 Zhang Wei <zhangwei555@huawei.com>
1026 1039
 Zhang Wentao <zhangwentao234@huawei.com>
1040
+Zhenan Ye <21551168@zju.edu.cn>
1041
+Zhu Guihua <zhugh.fnst@cn.fujitsu.com>
1042
+Zhuoyun Wei <wzyboy@wzyboy.org>
1027 1043
 Zilin Du <zilin.du@gmail.com>
1028 1044
 zimbatm <zimbatm@zimbatm.com>
1045
+Ziming Dong <bnudzm@foxmail.com>
1046
+ZJUshuaizhou <21551191@zju.edu.cn>
1047
+zmarouf <zeid.marouf@gmail.com>
1029 1048
 Zoltan Tombol <zoltan.tombol@gmail.com>
1030 1049
 zqh <zqhxuyuan@gmail.com>
1050
+Zuhayr Elahi <elahi.zuhayr@gmail.com>
1031 1051
 Álex González <agonzalezro@gmail.com>
1032 1052
 Álvaro Lázaro <alvaro.lazaro.g@gmail.com>
1053
+Átila Camurça Alves <camurca.home@gmail.com>
1033 1054
 尹吉峰 <jifeng.yin@gmail.com>
... ...
@@ -248,7 +248,7 @@ RUN set -x \
248 248
 	&& rm -rf "$GOPATH"
249 249
 
250 250
 # Install runc
251
-ENV RUNC_COMMIT 0c1c615ebd6a15545b6a82ead01d2745ea49b242
251
+ENV RUNC_COMMIT 6c88a526cdd74aab90cc88018368c452c7294a06
252 252
 RUN set -x \
253 253
 	&& export GOPATH="$(mktemp -d)" \
254 254
 	&& git clone git://github.com/opencontainers/runc.git "$GOPATH/src/github.com/opencontainers/runc" \
... ...
@@ -181,7 +181,7 @@ RUN set -x \
181 181
 	&& rm -rf "$GOPATH"
182 182
 
183 183
 # Install runc
184
-ENV RUNC_COMMIT 0c1c615ebd6a15545b6a82ead01d2745ea49b242
184
+ENV RUNC_COMMIT 6c88a526cdd74aab90cc88018368c452c7294a06
185 185
 RUN set -x \
186 186
 	&& export GOPATH="$(mktemp -d)" \
187 187
 	&& git clone git://github.com/opencontainers/runc.git "$GOPATH/src/github.com/opencontainers/runc" \
... ...
@@ -198,7 +198,7 @@ RUN set -x \
198 198
 	&& rm -rf "$GOPATH"
199 199
 
200 200
 # Install runc
201
-ENV RUNC_COMMIT 0c1c615ebd6a15545b6a82ead01d2745ea49b242
201
+ENV RUNC_COMMIT 6c88a526cdd74aab90cc88018368c452c7294a06
202 202
 RUN set -x \
203 203
 	&& export GOPATH="$(mktemp -d)" \
204 204
 	&& git clone git://github.com/opencontainers/runc.git "$GOPATH/src/github.com/opencontainers/runc" \
... ...
@@ -74,13 +74,12 @@ WORKDIR /go/src/github.com/docker/docker
74 74
 ENV DOCKER_BUILDTAGS apparmor seccomp selinux
75 75
 
76 76
 # Install runc
77
-ENV RUNC_COMMIT 0c1c615ebd6a15545b6a82ead01d2745ea49b242
77
+ENV RUNC_COMMIT 6c88a526cdd74aab90cc88018368c452c7294a06
78 78
 RUN set -x \
79 79
 	&& export GOPATH="$(mktemp -d)" \
80 80
 	&& git clone git://github.com/opencontainers/runc.git "$GOPATH/src/github.com/opencontainers/runc" \
81 81
 	&& cd "$GOPATH/src/github.com/opencontainers/runc" \
82 82
 	&& git checkout -q "$RUNC_COMMIT" \
83
-	&& (find . -name "*_ffjson.go" | xargs rm) \
84 83
 	&& make static BUILDTAGS="seccomp apparmor selinux" \
85 84
 	&& cp runc /usr/local/bin/docker-runc
86 85
 
... ...
@@ -199,7 +199,7 @@ RUN set -x \
199 199
 	&& rm -rf "$GOPATH"
200 200
 
201 201
 # Install runc
202
-ENV RUNC_COMMIT 0c1c615ebd6a15545b6a82ead01d2745ea49b242
202
+ENV RUNC_COMMIT 6c88a526cdd74aab90cc88018368c452c7294a06
203 203
 RUN set -x \
204 204
 	&& export GOPATH="$(mktemp -d)" \
205 205
 	&& git clone git://github.com/opencontainers/runc.git "$GOPATH/src/github.com/opencontainers/runc" \
... ...
@@ -178,7 +178,7 @@ RUN set -x \
178 178
 	&& rm -rf "$GOPATH"
179 179
 
180 180
 # Install runc
181
-ENV RUNC_COMMIT 0c1c615ebd6a15545b6a82ead01d2745ea49b242
181
+ENV RUNC_COMMIT 6c88a526cdd74aab90cc88018368c452c7294a06
182 182
 RUN set -x \
183 183
 	&& export GOPATH="$(mktemp -d)" \
184 184
 	&& git clone git://github.com/opencontainers/runc.git "$GOPATH/src/github.com/opencontainers/runc" \
... ...
@@ -30,7 +30,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
30 30
 	&& rm -rf /var/lib/apt/lists/*
31 31
 
32 32
 # Install runc
33
-ENV RUNC_COMMIT 0c1c615ebd6a15545b6a82ead01d2745ea49b242
33
+ENV RUNC_COMMIT 6c88a526cdd74aab90cc88018368c452c7294a06
34 34
 RUN set -x \
35 35
 	&& export GOPATH="$(mktemp -d)" \
36 36
 	&& git clone git://github.com/opencontainers/runc.git "$GOPATH/src/github.com/opencontainers/runc" \
... ...
@@ -102,7 +102,7 @@ func (daemon *Daemon) cleanupContainer(container *container.Container, forceRemo
102 102
 	// Save container state to disk. So that if error happens before
103 103
 	// container meta file got removed from disk, then a restart of
104 104
 	// docker should not make a dead container alive.
105
-	if err := container.ToDiskLocking(); err != nil {
105
+	if err := container.ToDiskLocking(); err != nil && !os.IsNotExist(err) {
106 106
 		logrus.Errorf("Error saving dying container to disk: %v", err)
107 107
 	}
108 108
 
... ...
@@ -123,10 +123,14 @@ func (daemon *Daemon) cleanupContainer(container *container.Container, forceRemo
123 123
 		return fmt.Errorf("Unable to remove filesystem for %v: %v", container.ID, err)
124 124
 	}
125 125
 
126
-	metadata, err := daemon.layerStore.ReleaseRWLayer(container.RWLayer)
127
-	layer.LogReleaseMetadata(metadata)
128
-	if err != nil && err != layer.ErrMountDoesNotExist {
129
-		return fmt.Errorf("Driver %s failed to remove root filesystem %s: %s", daemon.GraphDriverName(), container.ID, err)
126
+	// When container creation fails and `RWLayer` has not been created yet, we
127
+	// do not call `ReleaseRWLayer`
128
+	if container.RWLayer != nil {
129
+		metadata, err := daemon.layerStore.ReleaseRWLayer(container.RWLayer)
130
+		layer.LogReleaseMetadata(metadata)
131
+		if err != nil && err != layer.ErrMountDoesNotExist {
132
+			return fmt.Errorf("Driver %s failed to remove root filesystem %s: %s", daemon.GraphDriverName(), container.ID, err)
133
+		}
130 134
 	}
131 135
 
132 136
 	return nil
... ...
@@ -7,6 +7,10 @@ package btrfs
7 7
 #include <dirent.h>
8 8
 #include <btrfs/ioctl.h>
9 9
 #include <btrfs/ctree.h>
10
+
11
+static void set_name_btrfs_ioctl_vol_args_v2(struct btrfs_ioctl_vol_args_v2* btrfs_struct, const char* value) {
12
+    snprintf(btrfs_struct->name, BTRFS_SUBVOL_NAME_MAX, "%s", value);
13
+}
10 14
 */
11 15
 import "C"
12 16
 
... ...
@@ -159,9 +163,10 @@ func subvolSnapshot(src, dest, name string) error {
159 159
 
160 160
 	var args C.struct_btrfs_ioctl_vol_args_v2
161 161
 	args.fd = C.__s64(getDirFd(srcDir))
162
-	for i, c := range []byte(name) {
163
-		args.name[i] = C.char(c)
164
-	}
162
+
163
+	var cs = C.CString(name)
164
+	C.set_name_btrfs_ioctl_vol_args_v2(&args, cs)
165
+	C.free(unsafe.Pointer(cs))
165 166
 
166 167
 	_, _, errno := syscall.Syscall(syscall.SYS_IOCTL, getDirFd(destDir), C.BTRFS_IOC_SNAP_CREATE_V2,
167 168
 		uintptr(unsafe.Pointer(&args)))
... ...
@@ -22,6 +22,7 @@ import (
22 22
 	"github.com/Sirupsen/logrus"
23 23
 
24 24
 	"github.com/docker/docker/daemon/graphdriver"
25
+	"github.com/docker/docker/dockerversion"
25 26
 	"github.com/docker/docker/pkg/devicemapper"
26 27
 	"github.com/docker/docker/pkg/idtools"
27 28
 	"github.com/docker/docker/pkg/loopback"
... ...
@@ -1656,7 +1657,12 @@ func (devices *DeviceSet) initDevmapper(doInit bool) error {
1656 1656
 
1657 1657
 	// https://github.com/docker/docker/issues/4036
1658 1658
 	if supported := devicemapper.UdevSetSyncSupport(true); !supported {
1659
-		logrus.Errorf("devmapper: Udev sync is not supported. This will lead to data loss and unexpected behavior. Install a dynamic binary to use devicemapper or select a different storage driver. For more information, see https://docs.docker.com/engine/reference/commandline/daemon/#daemon-storage-driver-option")
1659
+		if dockerversion.IAmStatic == "true" {
1660
+			logrus.Errorf("devmapper: Udev sync is not supported. This will lead to data loss and unexpected behavior. Install a dynamic binary to use devicemapper or select a different storage driver. For more information, see https://docs.docker.com/engine/reference/commandline/daemon/#daemon-storage-driver-option")
1661
+		} else {
1662
+			logrus.Errorf("devmapper: Udev sync is not supported. This will lead to data loss and unexpected behavior. Install a more recent version of libdevmapper or select a different storage driver. For more information, see https://docs.docker.com/engine/reference/commandline/daemon/#daemon-storage-driver-option")
1663
+		}
1664
+
1660 1665
 		if !devices.overrideUdevSyncCheck {
1661 1666
 			return graphdriver.ErrNotSupported
1662 1667
 		}
... ...
@@ -536,6 +536,8 @@ func setMounts(daemon *Daemon, s *specs.Spec, c *container.Container, mounts []c
536 536
 				}
537 537
 			}
538 538
 		}
539
+		s.Linux.ReadonlyPaths = nil
540
+		s.Linux.MaskedPaths = nil
539 541
 	}
540 542
 
541 543
 	// TODO: until a kernel/mount solution exists for handling remount in a user namespace,
... ...
@@ -660,10 +662,10 @@ func (daemon *Daemon) createSpec(c *container.Container) (*libcontainerd.Spec, e
660 660
 
661 661
 	if apparmor.IsEnabled() {
662 662
 		appArmorProfile := "docker-default"
663
-		if c.HostConfig.Privileged {
664
-			appArmorProfile = "unconfined"
665
-		} else if len(c.AppArmorProfile) > 0 {
663
+		if len(c.AppArmorProfile) > 0 {
666 664
 			appArmorProfile = c.AppArmorProfile
665
+		} else if c.HostConfig.Privileged {
666
+			appArmorProfile = "unconfined"
667 667
 		}
668 668
 		s.Process.ApparmorProfile = appArmorProfile
669 669
 	}
... ...
@@ -169,9 +169,10 @@ Responds with a list of Docker subsystems which this plugin implements.
169 169
 After activation, the plugin will then be sent events from this subsystem.
170 170
 
171 171
 Possible values are:
172
- - [`authz`](plugins_authorization.md)
173
- - [`NetworkDriver`](plugins_network.md)
174
- - [`VolumeDriver`](plugins_volume.md)
172
+
173
+* [`authz`](plugins_authorization.md)
174
+* [`NetworkDriver`](plugins_network.md)
175
+* [`VolumeDriver`](plugins_volume.md)
175 176
 
176 177
 
177 178
 ## Plugin retries
... ...
@@ -154,14 +154,9 @@ Create a container
154 154
                    "com.example.license": "GPL",
155 155
                    "com.example.version": "1.0"
156 156
            },
157
-           "Mounts": [
158
-             {
159
-               "Source": "/data",
160
-               "Destination": "/data",
161
-               "Mode": "ro,Z",
162
-               "RW": false
163
-             }
164
-           ],
157
+           "Volumes": {
158
+             "/volumes/data": {}
159
+           }
165 160
            "WorkingDir": "",
166 161
            "NetworkDisabled": false,
167 162
            "MacAddress": "12:34:56:78:9a:bc",
... ...
@@ -245,7 +240,8 @@ Json Parameters:
245 245
 -   **Entrypoint** - Set the entry point for the container as a string or an array
246 246
       of strings.
247 247
 -   **Image** - A string specifying the image name to use for the container.
248
--   **Mounts** - An array of mount points in the container.
248
+-   **Volumes** - An object mapping mount point paths (strings) inside the
249
+      container to empty objects.
249 250
 -   **WorkingDir** - A string specifying the working directory for commands to
250 251
       run in.
251 252
 -   **NetworkDisabled** - Boolean value, when true disables networking for the
... ...
@@ -158,14 +158,9 @@ Create a container
158 158
                    "com.example.license": "GPL",
159 159
                    "com.example.version": "1.0"
160 160
            },
161
-           "Mounts": [
162
-             {
163
-               "Source": "/data",
164
-               "Destination": "/data",
165
-               "Mode": "ro,Z",
166
-               "RW": false
167
-             }
168
-           ],
161
+           "Volumes": {
162
+             "/volumes/data": {}
163
+           }
169 164
            "WorkingDir": "",
170 165
            "NetworkDisabled": false,
171 166
            "MacAddress": "12:34:56:78:9a:bc",
... ...
@@ -256,7 +251,8 @@ Json Parameters:
256 256
 -   **Entrypoint** - Set the entry point for the container as a string or an array
257 257
       of strings.
258 258
 -   **Image** - A string specifying the image name to use for the container.
259
--   **Mounts** - An array of mount points in the container.
259
+-   **Volumes** - An object mapping mount point paths (strings) inside the
260
+      container to empty objects.
260 261
 -   **WorkingDir** - A string specifying the working directory for commands to
261 262
       run in.
262 263
 -   **NetworkDisabled** - Boolean value, when true disables networking for the
... ...
@@ -246,17 +246,6 @@ Create a container
246 246
                    "com.example.license": "GPL",
247 247
                    "com.example.version": "1.0"
248 248
            },
249
-           "Mounts": [
250
-             {
251
-               "Name": "fac362...80535",
252
-               "Source": "/data",
253
-               "Destination": "/data",
254
-               "Driver": "local",
255
-               "Mode": "ro,Z",
256
-               "RW": false,
257
-               "Propagation": ""
258
-             }
259
-           ],
260 249
            "Volumes": {
261 250
              "/volumes/data": {}
262 251
            }
... ...
@@ -366,7 +355,8 @@ Json Parameters:
366 366
 -   **Entrypoint** - Set the entry point for the container as a string or an array
367 367
       of strings.
368 368
 -   **Image** - A string specifying the image name to use for the container.
369
--   **Mounts** - An array of mount points in the container.
369
+-   **Volumes** - An object mapping mount point paths (strings) inside the
370
+      container to empty objects.
370 371
 -   **WorkingDir** - A string specifying the working directory for commands to
371 372
       run in.
372 373
 -   **NetworkDisabled** - Boolean value, when true disables networking for the
... ...
@@ -265,17 +265,6 @@ Create a container
265 265
                    "com.example.license": "GPL",
266 266
                    "com.example.version": "1.0"
267 267
            },
268
-           "Mounts": [
269
-             {
270
-               "Name": "fac362...80535",
271
-               "Source": "/data",
272
-               "Destination": "/data",
273
-               "Driver": "local",
274
-               "Mode": "ro,Z",
275
-               "RW": false,
276
-               "Propagation": ""
277
-             }
278
-           ],
279 268
            "Volumes": {
280 269
              "/volumes/data": {}
281 270
            }
... ...
@@ -386,7 +375,8 @@ Json Parameters:
386 386
 -   **Entrypoint** - Set the entry point for the container as a string or an array
387 387
       of strings.
388 388
 -   **Image** - A string specifying the image name to use for the container.
389
--   **Mounts** - An array of mount points in the container.
389
+-   **Volumes** - An object mapping mount point paths (strings) inside the
390
+      container to empty objects.
390 391
 -   **WorkingDir** - A string specifying the working directory for commands to
391 392
       run in.
392 393
 -   **NetworkDisabled** - Boolean value, when true disables networking for the
... ...
@@ -1174,8 +1174,10 @@ To use these, simply pass them on the command line using the `--build-arg
1174 1174
 `ARG` variables are not persisted into the built image as `ENV` variables are.
1175 1175
 However, `ARG` variables do impact the build cache in similar ways. If a
1176 1176
 Dockerfile defines an `ARG` variable whose value is different from a previous
1177
-build, then a "cache miss" occurs upon its first usage, not its declaration.
1178
-For example, consider this Dockerfile:
1177
+build, then a "cache miss" occurs upon first use of the `ARG` variable. The
1178
+declaration of the `ARG` variable does not count as a use.
1179
+
1180
+For example, consider these two Dockerfile:
1179 1181
 
1180 1182
 ```
1181 1183
 1 FROM ubuntu
... ...
@@ -1183,12 +1185,17 @@ For example, consider this Dockerfile:
1183 1183
 3 RUN echo $CONT_IMG_VER
1184 1184
 ```
1185 1185
 
1186
-If you specify `--build-arg CONT_IMG_VER=<value>` on the command line the
1187
-specification on line 2 does not cause a cache miss; line 3 does cause a cache
1188
-miss. The definition on line 2 has no impact on the resulting image. The `RUN`
1189
-on line 3 executes a command and in doing so defines a set of environment
1190
-variables, including `CONT_IMG_VER`. At that point, the `ARG` variable may
1191
-impact the resulting image, so a cache miss occurs.
1186
+```
1187
+1 FROM ubuntu
1188
+2 ARG CONT_IMG_VER
1189
+3 RUN echo hello
1190
+```
1191
+
1192
+If you specify `--build-arg CONT_IMG_VER=<value>` on the command line, in both
1193
+cases, the specification on line 2 does not cause a cache miss; line 3 does
1194
+cause a cache miss.`ARG CONT_IMG_VER` causes the RUN line to be identified
1195
+as the same as running `CONT_IMG_VER=<value>` echo hello, so if the `<value>`
1196
+changes, we get a cache miss.
1192 1197
 
1193 1198
 Consider another example under the same command line:
1194 1199
 
... ...
@@ -1203,6 +1210,20 @@ the variable's value in the `ENV` references the `ARG` variable and that
1203 1203
 variable is changed through the command line. In this example, the `ENV`
1204 1204
 command causes the image to include the value.
1205 1205
 
1206
+If an `ENV` instruction overrides an `ARG` instruction of the same name, like
1207
+this Dockerfile:
1208
+
1209
+```
1210
+1 FROM ubuntu
1211
+2 ARG CONT_IMG_VER
1212
+3 ENV CONT_IMG_VER hello
1213
+4 RUN echo $CONT_IMG_VER
1214
+```
1215
+
1216
+Line 3 does not cause a cache miss because the value of `CONT_IMG_VER` is a
1217
+constant (`hello`). As a result, the environment variables and values used on
1218
+the `RUN` (line 4) doesn't change between builds.
1219
+
1206 1220
 ## ONBUILD
1207 1221
 
1208 1222
     ONBUILD [INSTRUCTION]
... ...
@@ -1056,7 +1056,7 @@ Both flags take limits in the `<device-path>:<limit>` format. Both read and
1056 1056
 write rates must be a positive integer.
1057 1057
 
1058 1058
 ## Additional groups
1059
-    --group-add: Add Linux capabilities
1059
+    --group-add: Add additional groups to run as 
1060 1060
 
1061 1061
 By default, the docker container process runs with the supplementary groups looked
1062 1062
 up for the specified user. If one wants to add more to that list of groups, then
... ...
@@ -29,7 +29,7 @@ clone git github.com/RackSec/srslog 259aed10dfa74ea2961eddd1d9847619f6e98837
29 29
 clone git github.com/imdario/mergo 0.2.1
30 30
 
31 31
 #get libnetwork packages
32
-clone git github.com/docker/libnetwork v0.7.0-rc.1
32
+clone git github.com/docker/libnetwork v0.7.0-rc.4
33 33
 clone git github.com/armon/go-metrics eb0af217e5e9747e41dd5303755356b62d28e3ec
34 34
 clone git github.com/hashicorp/go-msgpack 71c2886f5a673a35f909803f38ece5810165097b
35 35
 clone git github.com/hashicorp/memberlist 9a1e242e454d2443df330bdd51a436d5a9058fc4
... ...
@@ -60,7 +60,7 @@ clone git github.com/docker/go v1.5.1-1-1-gbaf439e
60 60
 clone git github.com/agl/ed25519 d2b94fd789ea21d12fac1a4443dd3a3f79cda72c
61 61
 
62 62
 clone git github.com/opencontainers/runc 7b6c4c418d5090f4f11eee949fdf49afd15838c9 # libcontainer
63
-clone git github.com/opencontainers/specs 3ce138b1934bf227a418e241ead496c383eaba1c # specs
63
+clone git github.com/opencontainers/specs 93ca97e83ca7fb4fba6d9e30d5470f99ddc02d11 # specs
64 64
 clone git github.com/seccomp/libseccomp-golang 1b506fc7c24eec5a3693cdcbed40d9c226cfc6a1
65 65
 # libcontainer deps (see src/github.com/opencontainers/runc/Godeps/Godeps.json)
66 66
 clone git github.com/coreos/go-systemd v4
... ...
@@ -1109,7 +1109,7 @@ func (s *DockerSuite) TestRunProcNotWritableInNonPrivilegedContainers(c *check.C
1109 1109
 func (s *DockerSuite) TestRunProcWritableInPrivilegedContainers(c *check.C) {
1110 1110
 	// Not applicable for Windows as there is no concept of --privileged
1111 1111
 	testRequires(c, DaemonIsLinux, NotUserNamespace)
1112
-	if _, code := dockerCmd(c, "run", "--privileged", "busybox", "sh", "-c", "umount /proc/sysrq-trigger && touch /proc/sysrq-trigger"); code != 0 {
1112
+	if _, code := dockerCmd(c, "run", "--privileged", "busybox", "sh", "-c", "touch /proc/sysrq-trigger"); code != 0 {
1113 1113
 		c.Fatalf("proc should be writable in privileged container")
1114 1114
 	}
1115 1115
 }
... ...
@@ -54,6 +54,11 @@ var (
54 54
 	dockerBasePath       string
55 55
 	volumesConfigPath    string
56 56
 	containerStoragePath string
57
+
58
+	// daemonStorageDriver is held globally so that tests can know the storage
59
+	// driver of the daemon. This is initialized in docker_utils by sending
60
+	// a version call to the daemon and examining the response header.
61
+	daemonStorageDriver string
57 62
 )
58 63
 
59 64
 const (
... ...
@@ -86,6 +86,7 @@ func init() {
86 86
 
87 87
 	var info types.Info
88 88
 	err = json.Unmarshal(body, &info)
89
+	daemonStorageDriver = info.Driver
89 90
 	dockerBasePath = info.DockerRootDir
90 91
 	volumesConfigPath = filepath.Join(dockerBasePath, "volumes")
91 92
 	containerStoragePath = filepath.Join(dockerBasePath, "containers")
... ...
@@ -109,22 +109,14 @@ var (
109 109
 	}
110 110
 	NotOverlay = testRequirement{
111 111
 		func() bool {
112
-			cmd := exec.Command("grep", "^overlay / overlay", "/proc/mounts")
113
-			if err := cmd.Run(); err != nil {
114
-				return true
115
-			}
116
-			return false
112
+			return !strings.HasPrefix(daemonStorageDriver, "overlay")
117 113
 		},
118 114
 		"Test requires underlying root filesystem not be backed by overlay.",
119 115
 	}
120 116
 
121 117
 	Devicemapper = testRequirement{
122 118
 		func() bool {
123
-			cmd := exec.Command("grep", "^devicemapper / devicemapper", "/proc/mounts")
124
-			if err := cmd.Run(); err != nil {
125
-				return false
126
-			}
127
-			return true
119
+			return strings.HasPrefix(daemonStorageDriver, "devicemapper")
128 120
 		},
129 121
 		"Test requires underlying root filesystem to be backed by devicemapper.",
130 122
 	}
... ...
@@ -79,6 +79,20 @@ func DefaultSpec() specs.Spec {
79 79
 	}
80 80
 
81 81
 	s.Linux = specs.Linux{
82
+		MaskedPaths: []string{
83
+			"/proc/kcore",
84
+			"/proc/latency_stats",
85
+			"/proc/timer_stats",
86
+			"/proc/sched_debug",
87
+		},
88
+		ReadonlyPaths: []string{
89
+			"/proc/asound",
90
+			"/proc/bus",
91
+			"/proc/fs",
92
+			"/proc/irq",
93
+			"/proc/sys",
94
+			"/proc/sysrq-trigger",
95
+		},
82 96
 		Namespaces: []specs.Namespace{
83 97
 			{Type: "mount"},
84 98
 			{Type: "network"},
... ...
@@ -1,5 +1,18 @@
1 1
 # Changelog
2 2
 
3
+## 0.7.0-rc.4 (2016-04-06)
4
+- Fix the handling for default gateway Endpoint join/leave.
5
+
6
+## 0.7.0-rc.3 (2016-04-05)
7
+- Revert fix for default gateway endoint join/leave. Needs to be reworked.
8
+- Persist the network internal mode for bridge networks
9
+
10
+## 0.7.0-rc.2 (2016-04-05)
11
+- Fixes https://github.com/docker/libnetwork/issues/1070
12
+- Move IPAM resource initialization out of init()
13
+- Initialize overlay driver before network delete 
14
+- Fix the handling for default gateway Endpoint join/lean 
15
+
3 16
 ## 0.7.0-rc.1 (2016-03-30)
4 17
 - Fixes https://github.com/docker/libnetwork/issues/985
5 18
 - Fixes https://github.com/docker/libnetwork/issues/945
... ...
@@ -65,20 +65,13 @@ func (sb *sandbox) setupDefaultGW() error {
65 65
 	return nil
66 66
 }
67 67
 
68
-// If present, removes the endpoint connecting the sandbox to the default gw network.
69
-// Unless it is the endpoint designated to provide the external connectivity.
70
-// If the sandbox is being deleted, removes the endpoint unconditionally.
68
+// If present, detach and remove the endpoint connecting the sandbox to the default gw network.
71 69
 func (sb *sandbox) clearDefaultGW() error {
72 70
 	var ep *endpoint
73 71
 
74 72
 	if ep = sb.getEndpointInGWNetwork(); ep == nil {
75 73
 		return nil
76 74
 	}
77
-
78
-	if ep == sb.getGatewayEndpoint() && !sb.inDelete {
79
-		return nil
80
-	}
81
-
82 75
 	if err := ep.sbLeave(sb, false); err != nil {
83 76
 		return fmt.Errorf("container %s: endpoint leaving GW Network failed: %v", sb.containerID, err)
84 77
 	}
... ...
@@ -88,21 +81,26 @@ func (sb *sandbox) clearDefaultGW() error {
88 88
 	return nil
89 89
 }
90 90
 
91
+// Evaluate whether the sandbox requires a default gateway based
92
+// on the endpoints to which it is connected. It does not account
93
+// for the default gateway network endpoint.
94
+
91 95
 func (sb *sandbox) needDefaultGW() bool {
92 96
 	var needGW bool
93 97
 
94 98
 	for _, ep := range sb.getConnectedEndpoints() {
95 99
 		if ep.endpointInGWNetwork() {
96
-			return false
100
+			continue
97 101
 		}
98 102
 		if ep.getNetwork().Type() == "null" || ep.getNetwork().Type() == "host" {
99 103
 			continue
100 104
 		}
101 105
 		if ep.getNetwork().Internal() {
102
-			return false
106
+			continue
103 107
 		}
104
-		if ep.joinInfo.disableGatewayService {
105
-			return false
108
+		// During stale sandbox cleanup, joinInfo may be nil
109
+		if ep.joinInfo != nil && ep.joinInfo.disableGatewayService {
110
+			continue
106 111
 		}
107 112
 		// TODO v6 needs to be handled.
108 113
 		if len(ep.Gateway()) > 0 {
... ...
@@ -115,6 +113,7 @@ func (sb *sandbox) needDefaultGW() bool {
115 115
 		}
116 116
 		needGW = true
117 117
 	}
118
+
118 119
 	return needGW
119 120
 }
120 121
 
... ...
@@ -95,6 +95,7 @@ func (ncfg *networkConfiguration) MarshalJSON() ([]byte, error) {
95 95
 	nMap["EnableIPMasquerade"] = ncfg.EnableIPMasquerade
96 96
 	nMap["EnableICC"] = ncfg.EnableICC
97 97
 	nMap["Mtu"] = ncfg.Mtu
98
+	nMap["Internal"] = ncfg.Internal
98 99
 	nMap["DefaultBridge"] = ncfg.DefaultBridge
99 100
 	nMap["DefaultBindingIP"] = ncfg.DefaultBindingIP.String()
100 101
 	nMap["DefaultGatewayIPv4"] = ncfg.DefaultGatewayIPv4.String()
... ...
@@ -143,6 +144,9 @@ func (ncfg *networkConfiguration) UnmarshalJSON(b []byte) error {
143 143
 	ncfg.EnableIPMasquerade = nMap["EnableIPMasquerade"].(bool)
144 144
 	ncfg.EnableICC = nMap["EnableICC"].(bool)
145 145
 	ncfg.Mtu = int(nMap["Mtu"].(float64))
146
+	if v, ok := nMap["Internal"]; ok {
147
+		ncfg.Internal = v.(bool)
148
+	}
146 149
 
147 150
 	return nil
148 151
 }
... ...
@@ -104,6 +104,11 @@ func (d *driver) DeleteNetwork(nid string) error {
104 104
 		return fmt.Errorf("invalid network id")
105 105
 	}
106 106
 
107
+	// Make sure driver resources are initialized before proceeding
108
+	if err := d.configure(); err != nil {
109
+		return err
110
+	}
111
+
107 112
 	n := d.network(nid)
108 113
 	if n == nil {
109 114
 		return fmt.Errorf("could not find network with id %s", nid)
... ...
@@ -446,7 +446,7 @@ func (ep *endpoint) sbJoin(sb *sandbox, options ...EndpointOption) error {
446 446
 		return err
447 447
 	}
448 448
 
449
-	if sb.needDefaultGW() {
449
+	if sb.needDefaultGW() && sb.getEndpointInGWNetwork() == nil {
450 450
 		return sb.setupDefaultGW()
451 451
 	}
452 452
 
... ...
@@ -479,7 +479,14 @@ func (ep *endpoint) sbJoin(sb *sandbox, options ...EndpointOption) error {
479 479
 		}
480 480
 	}
481 481
 
482
-	return sb.clearDefaultGW()
482
+	if !sb.needDefaultGW() {
483
+		if err := sb.clearDefaultGW(); err != nil {
484
+			log.Warnf("Failure while disconnecting sandbox %s (%s) from gateway network: %v",
485
+				sb.ID(), sb.ContainerID(), err)
486
+		}
487
+	}
488
+
489
+	return nil
483 490
 }
484 491
 
485 492
 func (ep *endpoint) rename(name string) error {
... ...
@@ -622,10 +629,7 @@ func (ep *endpoint) sbLeave(sb *sandbox, force bool, options ...EndpointOption)
622 622
 	}
623 623
 
624 624
 	sb.deleteHostsEntries(n.getSvcRecords(ep))
625
-	if !sb.inDelete && sb.needDefaultGW() {
626
-		if sb.getEPwithoutGateway() == nil {
627
-			return fmt.Errorf("endpoint without GW expected, but not found")
628
-		}
625
+	if !sb.inDelete && sb.needDefaultGW() && sb.getEndpointInGWNetwork() == nil {
629 626
 		return sb.setupDefaultGW()
630 627
 	}
631 628
 
... ...
@@ -639,7 +643,14 @@ func (ep *endpoint) sbLeave(sb *sandbox, force bool, options ...EndpointOption)
639 639
 		}
640 640
 	}
641 641
 
642
-	return sb.clearDefaultGW()
642
+	if !sb.needDefaultGW() {
643
+		if err := sb.clearDefaultGW(); err != nil {
644
+			log.Warnf("Failure while disconnecting sandbox %s (%s) from gateway network: %v",
645
+				sb.ID(), sb.ContainerID(), err)
646
+		}
647
+	}
648
+
649
+	return nil
643 650
 }
644 651
 
645 652
 func (n *network) validateForceDelete(locator string) error {
... ...
@@ -8,6 +8,7 @@ import (
8 8
 	"github.com/docker/libnetwork/datastore"
9 9
 	"github.com/docker/libnetwork/ipam"
10 10
 	"github.com/docker/libnetwork/ipamapi"
11
+	"github.com/docker/libnetwork/ipamutils"
11 12
 )
12 13
 
13 14
 // Init registers the built-in ipam service with libnetwork
... ...
@@ -28,6 +29,9 @@ func Init(ic ipamapi.Callback, l, g interface{}) error {
28 28
 			return fmt.Errorf("incorrect global datastore passed to built-in ipam init")
29 29
 		}
30 30
 	}
31
+
32
+	ipamutils.InitNetworks()
33
+
31 34
 	a, err := ipam.NewAllocator(localDs, globalDs)
32 35
 	if err != nil {
33 36
 		return err
... ...
@@ -1,7 +1,10 @@
1 1
 // Package ipamutils provides utililty functions for ipam management
2 2
 package ipamutils
3 3
 
4
-import "net"
4
+import (
5
+	"net"
6
+	"sync"
7
+)
5 8
 
6 9
 var (
7 10
 	// PredefinedBroadNetworks contains a list of 31 IPv4 private networks with host size 16 and 12
... ...
@@ -10,11 +13,16 @@ var (
10 10
 	// PredefinedGranularNetworks contains a list of 64K IPv4 private networks with host size 8
11 11
 	// (10.x.x.x/24) which do not overlap with the networks in `PredefinedBroadNetworks`
12 12
 	PredefinedGranularNetworks []*net.IPNet
13
+
14
+	initNetworksOnce sync.Once
13 15
 )
14 16
 
15
-func init() {
16
-	PredefinedBroadNetworks = initBroadPredefinedNetworks()
17
-	PredefinedGranularNetworks = initGranularPredefinedNetworks()
17
+// InitNetworks initializes the pre-defined networks used by the  built-in IP allocator
18
+func InitNetworks() {
19
+	initNetworksOnce.Do(func() {
20
+		PredefinedBroadNetworks = initBroadPredefinedNetworks()
21
+		PredefinedGranularNetworks = initGranularPredefinedNetworks()
22
+	})
18 23
 }
19 24
 
20 25
 func initBroadPredefinedNetworks() []*net.IPNet {
... ...
@@ -22,6 +22,8 @@ func ElectInterfaceAddresses(name string) (*net.IPNet, []*net.IPNet, error) {
22 22
 		err    error
23 23
 	)
24 24
 
25
+	InitNetworks()
26
+
25 27
 	defer osl.InitOSContext()()
26 28
 
27 29
 	link, _ := netlink.LinkByName(name)
... ...
@@ -49,8 +49,14 @@ const (
49 49
 	defaultRespSize = 512
50 50
 	maxConcurrent   = 50
51 51
 	logInterval     = 2 * time.Second
52
+	maxDNSID        = 65536
52 53
 )
53 54
 
55
+type clientConn struct {
56
+	dnsID      uint16
57
+	respWriter dns.ResponseWriter
58
+}
59
+
54 60
 type extDNSEntry struct {
55 61
 	ipStr   string
56 62
 	extConn net.Conn
... ...
@@ -69,6 +75,7 @@ type resolver struct {
69 69
 	count      int32
70 70
 	tStamp     time.Time
71 71
 	queryLock  sync.Mutex
72
+	client     map[uint16]clientConn
72 73
 }
73 74
 
74 75
 func init() {
... ...
@@ -78,8 +85,9 @@ func init() {
78 78
 // NewResolver creates a new instance of the Resolver
79 79
 func NewResolver(sb *sandbox) Resolver {
80 80
 	return &resolver{
81
-		sb:  sb,
82
-		err: fmt.Errorf("setup not done yet"),
81
+		sb:     sb,
82
+		err:    fmt.Errorf("setup not done yet"),
83
+		client: make(map[uint16]clientConn),
83 84
 	}
84 85
 }
85 86
 
... ...
@@ -375,7 +383,9 @@ func (r *resolver) ServeDNS(w dns.ResponseWriter, query *dns.Msg) {
375 375
 			extConn.SetDeadline(time.Now().Add(extIOTimeout))
376 376
 			co := &dns.Conn{Conn: extConn}
377 377
 
378
-			if r.concurrentQueryInc() == false {
378
+			// forwardQueryStart stores required context to mux multiple client queries over
379
+			// one connection; and limits the number of outstanding concurrent queries.
380
+			if r.forwardQueryStart(w, query) == false {
379 381
 				old := r.tStamp
380 382
 				r.tStamp = time.Now()
381 383
 				if r.tStamp.Sub(old) > logInterval {
... ...
@@ -391,18 +401,25 @@ func (r *resolver) ServeDNS(w dns.ResponseWriter, query *dns.Msg) {
391 391
 			}()
392 392
 			err = co.WriteMsg(query)
393 393
 			if err != nil {
394
-				r.concurrentQueryDec()
394
+				r.forwardQueryEnd(w, query)
395 395
 				log.Debugf("Send to DNS server failed, %s", err)
396 396
 				continue
397 397
 			}
398 398
 
399 399
 			resp, err = co.ReadMsg()
400
-			r.concurrentQueryDec()
401 400
 			if err != nil {
401
+				r.forwardQueryEnd(w, query)
402 402
 				log.Debugf("Read from DNS server failed, %s", err)
403 403
 				continue
404 404
 			}
405 405
 
406
+			// Retrieves the context for the forwarded query and returns the client connection
407
+			// to send the reply to
408
+			w = r.forwardQueryEnd(w, resp)
409
+			if w == nil {
410
+				continue
411
+			}
412
+
406 413
 			resp.Compress = true
407 414
 			break
408 415
 		}
... ...
@@ -418,22 +435,71 @@ func (r *resolver) ServeDNS(w dns.ResponseWriter, query *dns.Msg) {
418 418
 	}
419 419
 }
420 420
 
421
-func (r *resolver) concurrentQueryInc() bool {
421
+func (r *resolver) forwardQueryStart(w dns.ResponseWriter, msg *dns.Msg) bool {
422
+	proto := w.LocalAddr().Network()
423
+	dnsID := uint16(rand.Intn(maxDNSID))
424
+
425
+	cc := clientConn{
426
+		dnsID:      msg.Id,
427
+		respWriter: w,
428
+	}
429
+
422 430
 	r.queryLock.Lock()
423 431
 	defer r.queryLock.Unlock()
432
+
424 433
 	if r.count == maxConcurrent {
425 434
 		return false
426 435
 	}
427 436
 	r.count++
437
+
438
+	switch proto {
439
+	case "tcp":
440
+		break
441
+	case "udp":
442
+		for ok := true; ok == true; dnsID = uint16(rand.Intn(maxDNSID)) {
443
+			_, ok = r.client[dnsID]
444
+		}
445
+		log.Debugf("client dns id %v, changed id %v", msg.Id, dnsID)
446
+		r.client[dnsID] = cc
447
+		msg.Id = dnsID
448
+	default:
449
+		log.Errorf("Invalid protocol..")
450
+		return false
451
+	}
452
+
428 453
 	return true
429 454
 }
430 455
 
431
-func (r *resolver) concurrentQueryDec() bool {
456
+func (r *resolver) forwardQueryEnd(w dns.ResponseWriter, msg *dns.Msg) dns.ResponseWriter {
457
+	var (
458
+		cc clientConn
459
+		ok bool
460
+	)
461
+	proto := w.LocalAddr().Network()
462
+
432 463
 	r.queryLock.Lock()
433 464
 	defer r.queryLock.Unlock()
465
+
434 466
 	if r.count == 0 {
435
-		return false
467
+		log.Errorf("Invalid concurrent query count")
468
+	} else {
469
+		r.count--
436 470
 	}
437
-	r.count--
438
-	return true
471
+
472
+	switch proto {
473
+	case "tcp":
474
+		break
475
+	case "udp":
476
+		if cc, ok = r.client[msg.Id]; ok == false {
477
+			log.Debugf("Can't retrieve client context for dns id %v", msg.Id)
478
+			return nil
479
+		}
480
+		delete(r.client, msg.Id)
481
+		msg.Id = cc.dnsID
482
+		w = cc.respWriter
483
+	default:
484
+		log.Errorf("Invalid protocol")
485
+		return nil
486
+	}
487
+	return w
439 488
 }
... ...
@@ -197,6 +197,10 @@ func (sb *sandbox) delete(force bool) error {
197 197
 	// Detach from all endpoints
198 198
 	retain := false
199 199
 	for _, ep := range sb.getConnectedEndpoints() {
200
+		// gw network endpoint detach and removal are automatic
201
+		if ep.endpointInGWNetwork() {
202
+			continue
203
+		}
200 204
 		// Retain the sanbdox if we can't obtain the network from store.
201 205
 		if _, err := c.getNetworkFromStore(ep.getNetwork().ID()); err != nil {
202 206
 			retain = true
... ...
@@ -96,9 +96,10 @@ type Mount struct {
96 96
 
97 97
 // Hook specifies a command that is run at a particular event in the lifecycle of a container
98 98
 type Hook struct {
99
-	Path string   `json:"path"`
100
-	Args []string `json:"args,omitempty"`
101
-	Env  []string `json:"env,omitempty"`
99
+	Path    string   `json:"path"`
100
+	Args    []string `json:"args,omitempty"`
101
+	Env     []string `json:"env,omitempty"`
102
+	Timeout *int     `json:"timeout,omitempty"`
102 103
 }
103 104
 
104 105
 // Hooks for container setup and teardown
... ...
@@ -128,13 +129,17 @@ type Linux struct {
128 128
 	// If resources are specified, the cgroups at CgroupsPath will be updated based on resources.
129 129
 	CgroupsPath *string `json:"cgroupsPath,omitempty"`
130 130
 	// Namespaces contains the namespaces that are created and/or joined by the container
131
-	Namespaces []Namespace `json:"namespaces"`
131
+	Namespaces []Namespace `json:"namespaces,omitempty"`
132 132
 	// Devices are a list of device nodes that are created for the container
133
-	Devices []Device `json:"devices"`
133
+	Devices []Device `json:"devices,omitempty"`
134 134
 	// Seccomp specifies the seccomp security settings for the container.
135 135
 	Seccomp *Seccomp `json:"seccomp,omitempty"`
136 136
 	// RootfsPropagation is the rootfs mount propagation mode for the container.
137 137
 	RootfsPropagation string `json:"rootfsPropagation,omitempty"`
138
+	// MaskedPaths masks over the provided paths inside the container.
139
+	MaskedPaths []string `json:"maskedPaths,omitempty"`
140
+	// ReadonlyPaths sets the provided paths as RO inside the container.
141
+	ReadonlyPaths []string `json:"readonlyPaths,omitempty"`
138 142
 }
139 143
 
140 144
 // Namespace is the configuration for a Linux namespace
... ...
@@ -6,12 +6,12 @@ const (
6 6
 	// VersionMajor is for an API incompatible changes
7 7
 	VersionMajor = 0
8 8
 	// VersionMinor is for functionality in a backwards-compatible manner
9
-	VersionMinor = 4
9
+	VersionMinor = 5
10 10
 	// VersionPatch is for backwards-compatible bug fixes
11 11
 	VersionPatch = 0
12 12
 
13 13
 	// VersionDev indicates development branch. Releases will be empty string.
14
-	VersionDev = ""
14
+	VersionDev = "-dev"
15 15
 )
16 16
 
17 17
 // Version is the specification version that the package types support.