From 527d6a5b8392ed486e5a868a9a0575f293fab419 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 Mar 2023 00:13:41 +0000 Subject: [PATCH] Bump github.com/docker/docker Bumps [github.com/docker/docker](https://github.com/docker/docker) from 1.4.2-0.20200203170920-46ec8731fbce to 1.6.1. - [Release notes](https://github.com/docker/docker/releases) - [Changelog](https://github.com/moby/moby/blob/v1.6.1/CHANGELOG.md) - [Commits](https://github.com/docker/docker/commits/v1.6.1) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] --- go.mod | 3 +- go.sum | 6 +- vendor/github.com/docker/docker/AUTHORS | 1462 +---------------- vendor/github.com/docker/docker/LICENSE | 6 +- vendor/github.com/docker/docker/NOTICE | 14 +- .../homedir/{homedir_unix.go => homedir.go} | 25 +- .../docker/pkg/homedir/homedir_linux.go | 93 -- .../docker/pkg/homedir/homedir_others.go | 27 - .../docker/pkg/homedir/homedir_windows.go | 24 - vendor/github.com/docker/libcontainer/LICENSE | 191 +++ vendor/github.com/docker/libcontainer/NOTICE | 16 + .../docker/libcontainer/user/MAINTAINERS | 2 + .../docker/libcontainer/user/lookup.go | 108 ++ .../docker/libcontainer/user/lookup_unix.go | 30 + .../libcontainer/user/lookup_unsupported.go | 21 + .../docker/libcontainer/user/user.go | 407 +++++ vendor/modules.txt | 5 +- 17 files changed, 858 insertions(+), 1582 deletions(-) rename vendor/github.com/docker/docker/pkg/homedir/{homedir_unix.go => homedir.go} (63%) delete mode 100644 vendor/github.com/docker/docker/pkg/homedir/homedir_linux.go delete mode 100644 vendor/github.com/docker/docker/pkg/homedir/homedir_others.go delete mode 100644 vendor/github.com/docker/docker/pkg/homedir/homedir_windows.go create mode 100644 vendor/github.com/docker/libcontainer/LICENSE create mode 100644 vendor/github.com/docker/libcontainer/NOTICE create mode 100644 vendor/github.com/docker/libcontainer/user/MAINTAINERS create mode 100644 vendor/github.com/docker/libcontainer/user/lookup.go create mode 100644 vendor/github.com/docker/libcontainer/user/lookup_unix.go create mode 100644 vendor/github.com/docker/libcontainer/user/lookup_unsupported.go create mode 100644 vendor/github.com/docker/libcontainer/user/user.go diff --git a/go.mod b/go.mod index 0497ce5d..fc78eb5a 100644 --- a/go.mod +++ b/go.mod @@ -38,8 +38,9 @@ require ( github.com/cespare/xxhash/v2 v2.1.2 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.0 // indirect github.com/docker/distribution v2.7.1+incompatible // indirect - github.com/docker/docker v1.4.2-0.20200203170920-46ec8731fbce // indirect + github.com/docker/docker v1.6.1 // indirect github.com/docker/docker-credential-helpers v0.6.3 // indirect + github.com/docker/libcontainer v2.2.1+incompatible // indirect github.com/fsnotify/fsnotify v1.4.9 // indirect github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // indirect github.com/gogo/protobuf v1.3.2 // indirect diff --git a/go.sum b/go.sum index 0939763e..1f22a9cb 100644 --- a/go.sum +++ b/go.sum @@ -111,12 +111,14 @@ github.com/docker/cli v20.10.0-rc1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU github.com/docker/distribution v2.7.1+incompatible h1:a5mlkVzth6W5A4fOsS3D2EO5BUmsJpcB+cRlLU7cSug= github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/docker v1.4.2-0.20190924003213-a8608b5b67c7/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v1.4.2-0.20200203170920-46ec8731fbce h1:KXS1Jg+ddGcWA8e1N7cupxaHHZhit5rB9tfDU+mfjyY= -github.com/docker/docker v1.4.2-0.20200203170920-46ec8731fbce/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v1.6.1 h1:4xYASHy5cScPkLD7PO0uTmnVc860m9NarPN1X8zeMe8= +github.com/docker/docker v1.6.1/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker-credential-helpers v0.6.3 h1:zI2p9+1NQYdnG6sMU26EX4aVGlqbInSQxQXLvzJ4RPQ= github.com/docker/docker-credential-helpers v0.6.3/go.mod h1:WRaJzqw3CTB9bk10avuGsjVBZsD05qeibJ1/TYlvc0Y= github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/docker/libcontainer v2.2.1+incompatible h1:++SbbkCw+X8vAd4j2gOCzZ2Nn7s2xFALTf7LZKmM1/0= +github.com/docker/libcontainer v2.2.1+incompatible/go.mod h1:osvj61pYsqhNCMLGX31xr7klUBhHb/ZBuXS0o1Fvwbw= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/drone/envsubst v1.0.2 h1:dpYLMAspQHW0a8dZpLRKe9jCNvIGZPhCPrycZzIHdqo= diff --git a/vendor/github.com/docker/docker/AUTHORS b/vendor/github.com/docker/docker/AUTHORS index ad166ba8..88fff3aa 100644 --- a/vendor/github.com/docker/docker/AUTHORS +++ b/vendor/github.com/docker/docker/AUTHORS @@ -2,151 +2,58 @@ # For how it is generated, see `hack/generate-authors.sh`. Aanand Prasad -Aaron Davidson Aaron Feng -Aaron Hnatiw Aaron Huslage -Aaron L. Xu -Aaron Lehmann -Aaron Welch -Aaron.L.Xu Abel Muiño -Abhijeet Kasurde -Abhinandan Prativadi Abhinav Ajgaonkar -Abhishek Chanda -Abhishek Sharma Abin Shahab -Adam Avilla -Adam Dobrawy -Adam Eijdenberg -Adam Kunk Adam Miller -Adam Mills -Adam Pointer Adam Singer -Adam Walz -Addam Hardy -Aditi Rajagopal Aditya -Adnan Khan -Adolfo Ochagavía -Adria Casas -Adrian Moisey Adrian Mouat -Adrian Oprea Adrien Folie -Adrien Gallouët Ahmed Kamal Ahmet Alp Balkan -Aidan Feldman Aidan Hobson Sayers -AJ Bowen -Ajey Charantimath -ajneu -Akash Gupta -Akihiro Matsushima -Akihiro Suda -Akim Demaille -Akira Koyasu -Akshay Karle +AJ Bowen Al Tobey alambike -Alan Scherger Alan Thompson Albert Callarisa Albert Zhang -Alejandro González Hevia -Aleksa Sarai +Aleksa Sarai Aleksandrs Fadins -Alena Prokharchyk -Alessandro Boch -Alessio Biancalana -Alex Chan -Alex Chen -Alex Coventry -Alex Crawford -Alex Ellis Alex Gaynor -Alex Goodman -Alex Olshansky -Alex Samorukov Alex Warhawk -Alexander Artemenko Alexander Boyd Alexander Larsson -Alexander Midlash Alexander Morozov Alexander Shopov -Alexandre Beslic -Alexandre Garnier -Alexandre González -Alexandre Jomin -Alexandru Sfirlogea -Alexei Margasov -Alexey Guskov +Alexandr Morozov Alexey Kotlyarov Alexey Shamrin Alexis THOMAS -Alfred Landrum -Ali Dehghani -Alicia Lauerman -Alihan Demir -Allen Madsen -Allen Sun almoehi -Alvaro Saurin -Alvin Deng -Alvin Richards amangoel -Amen Belayneh -Amir Goldstein Amit Bakshi -Amit Krishnan -Amit Shukla -Amr Gawish -Amy Lindburg Anand Patil AnandkumarPatel -Anatoly Borodin -Anchal Agrawal -Anda Xu -Anders Janmyr Andre Dublin <81dublin@gmail.com> -Andre Granovsky -Andrea Denisse Gómez Andrea Luzzardi Andrea Turli -Andreas Elvers Andreas Köhler Andreas Savvides Andreas Tiefenthaler -Andrei Gherzan -Andrei Vagin Andrew C. Bodine -Andrew Clay Shafer Andrew Duckworth Andrew France -Andrew Gerrand -Andrew Guenther -Andrew He -Andrew Hsu -Andrew Kuklewicz Andrew Macgregor -Andrew Macpherson -Andrew Martin -Andrew McDonnell Andrew Munsell -Andrew Pennebaker -Andrew Po -Andrew Weiss +Andrew Weiss Andrew Williams Andrews Medina -Andrey Kolomentsev Andrey Petrov Andrey Stolbovsky -André Martins -andy Andy Chambers andy diller Andy Goldstein @@ -154,120 +61,53 @@ Andy Kipp Andy Rothfusz Andy Smith Andy Wilson -Anes Hasicic -Anil Belur -Anil Madhavapeddy -Ankit Jain Ankush Agarwal -Anonmily -Anran Qiao -Anshul Pundir -Anthon van der Neut Anthony Baire Anthony Bishopric -Anthony Dahanne -Anthony Sottile Anton Löfgren Anton Nikitin -Anton Polonskiy -Anton Tiurin -Antonio Murdaca -Antonis Kalipetis Antony Messerli -Anuj Bahuguna -Anusha Ragunathan apocas -Arash Deshmeh ArikaChen -Arko Dasgupta -Arnaud Lefebvre Arnaud Porterie -Arnaud Rebillout -Arthur Barr Arthur Gautier -Artur Meyster -Arun Gupta -Asad Saeeduddin Asbjørn Enge averagehuman -Avi Das -Avi Kivity Avi Miller -Avi Vaid -ayoshitake -Azat Khuyiyakhmetov -Bardia Keyoumarsi Barnaby Gray Barry Allard Bartłomiej Piotrowski -Bastiaan Bakker bdevloed -Ben Bonnefoy Ben Firshman -Ben Golub -Ben Gould -Ben Hall Ben Sargent -Ben Severson Ben Toews Ben Wiklund Benjamin Atkin -Benjamin Baker -Benjamin Boudreau -Benjamin Yolken Benoit Chesneau Bernerd Schaefer -Bernhard M. Wiedemann Bert Goethals -Bevisy Zhang -Bharath Thiruveedula Bhiraj Butala -Bhumika Bayani -Bilal Amarni -Bill Wang -Bily Zhang -Bin Liu -Bingshen Wang +bin liu Blake Geno -Boaz Shuster -bobby abbott -Boris Pruessmann -Boshi Lian Bouke Haarsma Boyd Hemphill -boynux -Bradley Cicenas -Bradley Wright Brandon Liu -Brandon Philips +Brandon Philips Brandon Rhodes -Brendan Dixon -Brent Salisbury -Brett Higgins Brett Kochendorfer -Brett Randall Brian (bex) Exelbierd -Brian Bland -Brian DeHamer Brian Dorsey Brian Flad Brian Goff Brian McCallister Brian Olsen -Brian Schwind Brian Shumate -Brian Torres-Gil -Brian Trump Brice Jaglin Briehan Lombaard -Brielle Broder Bruno Bigras Bruno Binet -Bruno Gazzera Bruno Renié -Bruno Tavares Bryan Bess -Bryan Boreham Bryan Matsuo Bryan Murphy Burke Libbey @@ -275,1861 +115,659 @@ Byung Kang Caleb Spare Calen Pennington Cameron Boehmer -Cameron Spear -Campbell Allen -Candid Dauth -Cao Weiwei -Carl Henrik Lunde -Carl Loa Odin Carl X. Su -Carlo Mion -Carlos Alexandro Becker -Carlos de Paula -Carlos Sanchez -Carol Fager-Higgins -Cary -Casey Bisson -Catalin Pirvu -Ce Gao -Cedric Davies -Cezar Sa Espinola -Chad Swenson -Chance Zibolski -Chander Govindarajan -Chanhun Jeong -Chao Wang -Charles Chan Charles Hooper -Charles Law Charles Lindsay Charles Merriam -Charles Sarrazin -Charles Smith -Charlie Drage Charlie Lewis -Chase Bolt -ChaYoung You Chen Chao -Chen Chuanliang -Chen Hanxiao -Chen Min -Chen Mingjie -Chen Qiu -Cheng-mean Liu -Chengfei Shang -Chengguang Xu -chenyuzhu -Chetan Birajdar Chewey Chia-liang Kao -chli -Cholerae Hu Chris Alfonso Chris Armstrong -Chris Dias -Chris Dituri -Chris Fordham -Chris Gavin -Chris Gibson -Chris Khoo -Chris McKinnel -Chris McKinnel -Chris Price -Chris Seto Chris Snow Chris St. Pierre -Chris Stivers -Chris Swan -Chris Telfer -Chris Wahl -Chris Weyl -Chris White +chrismckinnel Christian Berendt -Christian Brauner -Christian Böhme -Christian Muehlhaeuser -Christian Persson -Christian Rotzoll -Christian Simon Christian Stefanescu -Christophe Mehay +ChristoperBiscardi Christophe Troestler -Christophe Vidal -Christopher Biscardi -Christopher Crone Christopher Currie -Christopher Jones Christopher Latham Christopher Rigor -Christy Perez -Chun Chen +Chun Chen Ciro S. Costa Clayton Coleman -Clinton Kitson -Cody Roseborough -Coenraad Loubser Colin Dunklau -Colin Hebert -Colin Panisset Colin Rice Colin Walters -Collin Guarino -Colm Hally -companycy -Corbin Coleman -Corey Farrell Cory Forsyth cressie176 -CrimsonGlory Cristian Staretu -cristiano balducci Cruceru Calin-Cristian -CUI Wei -Cyprian Gracz -Cyril F Daan van Berkel Daehyeok Mun Dafydd Crosby -dalanlan -Damian Smyth -Damien Nadé -Damien Nozay -Damjan Georgievski -Dan Anolik Dan Buch Dan Cotora -Dan Feldman Dan Griffin Dan Hirsch Dan Keder -Dan Levy Dan McPherson Dan Stine +Dan Walsh Dan Williams -Dani Hodovic -Dani Louca -Daniel Antlinger -Daniel Dao Daniel Exner Daniel Farrell Daniel Garcia Daniel Gasienica -Daniel Grunwell -Daniel Hiltgen -Daniel J Walsh Daniel Menet Daniel Mizyrycki -Daniel Nephin Daniel Norberg Daniel Nordberg Daniel Robinson -Daniel S -Daniel Sweet Daniel Von Fange -Daniel Watkins -Daniel X Moore Daniel YC Lin -Daniel Zhang +Daniel, Dao Quang Minh Danny Berger -Danny Milosavljevic Danny Yates -Danyal Khaliq Darren Coxall Darren Shepherd -Darren Stahl -Dattatraya Kumbhar -Davanum Srinivas -Dave Barboza -Dave Goodchild -Dave Henderson -Dave MacDonald -Dave Tucker David Anderson David Calavera -David Chung David Corking -David Cramer -David Currie -David Davis -David Dooling David Gageot David Gebler -David Glasser -David Lawrence -David Lechner -David M. Karr -David Mackey David Mat David Mcanulty -David McKay -David P Hilton David Pelaez -David R. Jenni David Röthlisberger -David Sheets David Sissitka -David Trott -David Wang <00107082@163.com> -David Williamson -David Xia -David Young Davide Ceretti Dawn Chen -dbdd -dcylabs -Debayan De -Deborah Gertrude Digges -deed02392 -Deep Debroy -Deng Guangxing +decadent Deni Bertovic -Denis Defreyne -Denis Gladkikh -Denis Ollier -Dennis Chen -Dennis Chen -Dennis Docter Derek Derek -Derek Ch Derek McGowan Deric Crago Deshi Xiao -devmeyster -Devvyn Murphy -Dharmit Shah -Dhawal Yogesh Bhanushali -Diego Romero -Diego Siqueira -Dieter Reuter -Dillon Dixon -Dima Stopel -Dimitri John Ledkov -Dimitris Mandalidis -Dimitris Rozakis -Dimitry Andric Dinesh Subhraveti -Ding Fei -Diogo Monica -DiuDiugirl Djibril Koné dkumor -Dmitri Logvinenko -Dmitri Shuralyov Dmitry Demeshchuk -Dmitry Gusev -Dmitry Kononenko -Dmitry Sharshakov -Dmitry Shyshkin -Dmitry Smirnov Dmitry V. Krivenok -Dmitry Vorobev Dolph Mathews -Dominic Tubach -Dominic Yin -Dominik Dingel -Dominik Finkbeiner Dominik Honnef -Don Kirkby Don Kjer Don Spaulding -Donald Huang -Dong Chen -Donghwa Kim -Donovan Jones -Doron Podoleanu Doug Davis -Doug MacEachern -Doug Tangren -Douglas Curtis +doug tangren Dr Nic Williams dragon788 Dražen Lučanin -Drew Erny -Drew Hubl Dustin Sallings -Ed Costello Edmund Wagner Eiichi Tsukata Eike Herzbach -Eivin Giske Skaaren Eivind Uggedal -Elan Ruusamäe -Elango Sivanandam -Elena Morozova -Eli Uriegas -Elias Faxö Elias Probst -Elijah Zupancic -eluck -Elvir Kuric -Emil Davtyan Emil Hernvall Emily Maier Emily Rose -Emir Ozer -Enguerran -Eohyung Lee -epeterso -Eric Barch -Eric Curtin -Eric G. Noriega Eric Hanchrow Eric Lee Eric Myhre Eric Paris -Eric Rafaloff -Eric Rosenberg -Eric Sage -Eric Soderstrom -Eric Yang -Eric-Olivier Lamey -Erica Windisch -Erik Bray +Eric Windisch Erik Dubbelboer Erik Hollensbe Erik Inge Bolsø Erik Kristensen -Erik St. Martin -Erik Weathers Erno Hopearuoho Erwin van der Koogh -Ethan Bell -Ethan Mosbaugh -Euan Kemp -Eugen Krizo Eugene Yakubovich -Evan Allrich +eugenkrizo Evan Carmi Evan Hazlett Evan Krall Evan Phoenix Evan Wies -Evelyn Xu -Everett Toews -Evgeny Shmarnev -Evgeny Vereshchagin -Ewa Czechowska Eystein Måløy Stenberg ezbercih -Ezra Silvera -Fabian Kramm -Fabian Lauer -Fabian Raetz -Fabiano Rosas Fabio Falci -Fabio Kung -Fabio Rapposelli Fabio Rehm Fabrizio Regini -Fabrizio Soppelsa Faiz Khan -falmp -Fangming Fang -Fangyuan Gao <21551127@zju.edu.cn> -fanjiyun Fareed Dudhia -Fathi Boudra -Federico Gimenez -Felipe Oliveira -Felipe Ruhland -Felix Abecassis -Felix Geisendörfer -Felix Hupfeld Felix Rabe -Felix Ruess -Felix Schindler -Feng Yan -Fengtu Wang -Ferenc Szabo Fernando -Fero Volar -Ferran Rodenas Filipe Brandenburger -Filipe Oliveira Flavio Castelli -Flavio Crisciani -Florian -Florian Klein -Florian Maier -Florian Noeding -Florian Weingarten -Florin Asavoaie -Florin Patan -fonglh -Foysal Iqbal -Francesc Campoy -Francesco Mari -Francis Chuang +FLGMwt Francisco Carriedo Francisco Souza -Frank Groeneveld -Frank Herrmann Frank Macreery Frank Rosquin -frankyang Fred Lifton -Frederick F. Kautz IV +Frederick F. Kautz IV Frederik Loeffert -Frederik Nordahl Jul Sabroe Freek Kalter -Frieder Bluemle -Fu JinLin -Félix Baylac-Jacqué -Félix Cantournet Gabe Rosenhouse Gabor Nagy -Gabriel Linder Gabriel Monroy -Gabriel Nicolas Avellaneda -Gaetan de Villele Galen Sampson -Gang Qiao Gareth Rushgrove -Garrett Barboza -Gary Schaetz -Gaurav gautam, prasanna -Gaël PORTAY -Genki Takiuchi -GennadySpb Geoffrey Bachelet -Geon Kim -George Kontridze -George MacRorie George Xie -Georgi Hristozov Gereon Frey German DZ Gert van Valkenhoef -Gerwim Feiken -Ghislain Bourgeois -Giampaolo Mancini -Gianluca Borello -Gildas Cuisinier -Giovan Isa Musthofa -gissehel Giuseppe Mazzotta Gleb Fotengauer-Malinovskiy Gleb M Borisov Glyn Normington -GoBella Goffert van Gool -Goldwyn Rodrigues -Gopikannan Venugopalsamy -Gosuke Miyashita -Gou Rao -Govinda Fichtner -Grant Millar -Grant Reaber +golubbe Graydon Hoare -Greg Fausak -Greg Pflaum -Greg Stephens Greg Thornton -Grzegorz Jaśkiewicz -Guilhem Lettron +grunny Guilherme Salgado Guillaume Dufour Guillaume J. Charmes -guoxiuyan -Guri Gurjeet Singh Guruprasad -Gustav Sinder -gwx296173 -Günter Zöchbauer -Haichao Yang -haikuoliu -Hakan Özler -Hamish Hutchings -Hans Kristian Flaatten Hans Rødtang -Hao Shu Wei -Hao Zhang <21521210@zju.edu.cn> Harald Albers -Harald Niesche Harley Laue -Harold Cooper -Harrison Turton -Harry Zhang -Harshal Patil -Harshal Patil -He Simei -He Xiaoxi -He Xin -heartlock <21521209@zju.edu.cn> Hector Castro -Helen Xie Henning Sprang -Hiroshi Hatake -Hiroyuki Sasagawa Hobofan Hollie Teal -Hong Xu -Hongbin Lu -Hongxu Jia -hsinko <21551195@zju.edu.cn> Hu Keping Hu Tao -HuanHuan Ye -Huanzhong Zhang Huayi Zhang Hugo Duncan -Hugo Marisco <0x6875676f@gmail.com> Hunter Blanks -huqun Huu Nguyen hyeongkyu.lee -Hyzhou Zhy -Iago López Galeiras Ian Babrou Ian Bishop Ian Bull -Ian Calvert -Ian Campbell -Ian Chen -Ian Lee Ian Main -Ian Philpot Ian Truslove -Iavael -Icaro Seara -Ignacio Capurro Igor Dolzhikov -Igor Karpovich -Iliana Weller -Ilkka Laukkanen -Ilya Dmitrichenko -Ilya Gusev -Ilya Khlopotov -imre Fitos +ILYA Khlopotov inglesp -Ingo Gottwald -Innovimax Isaac Dupree Isabel Jimenez Isao Jonas -Iskander Sharipov -Ivan Babrou Ivan Fraixedes -Ivan Grcic -Ivan Markin -J Bruni -J. Nunn Jack Danger Canty -Jack Laxson Jacob Atzen Jacob Edelman -Jacob Tomlinson -Jacob Vallejo -Jacob Wen -Jaivish Kothari -Jake Champlin Jake Moshenko -Jake Sanders jakedt James Allen -James Carey James Carr James DeFelice James Harrison Fisher -James Kyburz James Kyle -James Lal James Mills -James Nesbitt -James Nugent James Turnbull -James Watkins-Harvey -Jamie Hannaford -Jamshid Afshar Jan Keromnes -Jan Koprowski Jan Pazdziora Jan Toebes -Jan-Gerd Tenberge -Jan-Jaap Driessen -Jana Radhakrishnan -Jannick Fahlbusch -Januar Wayong -Jared Biel -Jared Hocutt Jaroslaw Zabiello jaseg -Jasmine Hegman -Jason Divock Jason Giedymin -Jason Green Jason Hall -Jason Heiss Jason Livesay Jason McVetta Jason Plum -Jason Shepherd -Jason Smith -Jason Sommer -Jason Stangroome -jaxgeller -Jay -Jay -Jay Kamat -Jean Rouge Jean-Baptiste Barth Jean-Baptiste Dalido -Jean-Christophe Berthon Jean-Paul Calderone -Jean-Pierre Huynh Jean-Tiare Le Bigot -Jeeva S. Chelladhurai Jeff Anderson -Jeff Hajewski -Jeff Johnston Jeff Lindsay -Jeff Mickey -Jeff Minard -Jeff Nickoloff -Jeff Silberman Jeff Welch Jeffrey Bolle -Jeffrey Morgan -Jeffrey van Gogh -Jenny Gebske -Jeremy Chambers Jeremy Grosser -Jeremy Price -Jeremy Qian -Jeremy Unruh -Jeremy Yallop -Jeroen Franse -Jeroen Jacobs -Jesse Dearing Jesse Dubay -Jessica Frazelle +Jessica Frazelle Jezeniel Zapanta -Jhon Honce -Ji.Zhilong -Jian Liao -Jian Zhang -Jiang Jinyang -Jie Luo -Jihyun Hwang Jilles Oldenbeuving Jim Alateras -Jim Ehrismann -Jim Galasyn -Jim Minter Jim Perrin Jimmy Cuadra -Jimmy Puckett -Jimmy Song -Jinsoo Park -Jintao Zhang -Jiri Appl -Jiri Popelka -Jiuyue Ma Jiří Župka -Joao Fernandes -Joao Trindade Joe Beda -Joe Doliner Joe Ferguson -Joe Gordon Joe Shaw Joe Van Dyk Joel Friedly Joel Handwell -Joel Hansson -Joel Wurtz -Joey Geiger -Joey Geiger -Joey Gibson Joffrey F Johan Euphrosine Johan Rydberg -Johanan Lieberman Johannes 'fish' Ziemke John Costa John Feminella John Gardiner Myers John Gossman -John Harris -John Howard -John Laswell -John Maguire -John Mulhausen John OBrien III -John Starks -John Stephens -John Tims -John V. Martinez John Warwick -John Willis -Jon Johnson -Jon Surrell Jon Wedaman -Jonas Dohse Jonas Pfenniger -Jonathan A. Schweder Jonathan A. Sternberg Jonathan Boulle Jonathan Camp -Jonathan Choy -Jonathan Dowland -Jonathan Lebon -Jonathan Lomas Jonathan McCrohan Jonathan Mueller Jonathan Pares Jonathan Rudenberg -Jonathan Stoppani -Jonh Wendell -Joni Sar Joost Cassee Jordan Arentsen -Jordan Jennings Jordan Sissel -Jorge Marin -Jorit Kleine-Möllhoff -Jose Diaz-Gonzalez Joseph Anthony Pasquale Holsten Joseph Hager -Joseph Kern -Joseph Rothrock Josh -Josh Bodah -Josh Bonczkowski -Josh Chorlton -Josh Eveleth Josh Hawn -Josh Horwitz Josh Poimboeuf -Josh Soref -Josh Wilson Josiah Kiehl -José Tomás Albornoz -Joyce Jang JP Julian Taylor Julien Barbier -Julien Bisconti Julien Bordellier Julien Dubois -Julien Kassar -Julien Maitrehenry -Julien Pervillé -Julio Montes -Jun-Ru Chang -Jussi Nummelin -Justas Brazauskas -Justen Martin -Justin Cormack Justin Force -Justin Menga Justin Plock Justin Simonelis -Justin Terry -Justyn Temme Jyrki Puttonen -Jérémy Leherpeur -Jérôme Petazzoni +Jérôme Petazzoni Jörg Thalheim -K. Heller -Kai Blin -Kai Qiang Wu (Kennan) -Kamil Domański -Kamjar Gerami -Kanstantsin Shautsou -Kara Alexandra +Kamil Domanski Karan Lyons -Kareem Khazem -kargakis Karl Grzeszczak -Karol Duleba -Karthik Karanth -Karthik Nayak -Kasper Fabæch Brandt -Kate Heddleston -Katie McLaughlin Kato Kazuyoshi -Katrina Owen Kawsar Saiyeed -Kay Yan -kayrus -Kazuhiro Sera -Ke Li -Ke Xu -Kei Ohmura -Keith Hudgins Keli Hu Ken Cochrane -Ken Herner Ken ICHIKAWA -Ken Reese -Kenfe-Mickaël Laventure -Kenjiro Nakayama -Kent Johnson -Kenta Tada Kevin "qwazerty" Houdebert -Kevin Burke Kevin Clark -Kevin Feyrer Kevin J. Lynagh -Kevin Jing Qiu -Kevin Kern Kevin Menard -Kevin Meredith -Kevin P. Kucharczyk -Kevin Parsons -Kevin Richardson -Kevin Shi Kevin Wallace -Kevin Yap Keyvan Fatehi kies Kim BKC Carlbacker -Kim Eik Kimbro Staken -Kir Kolyshkin Kiran Gangadharan -Kirill SIbirev knappe Kohei Tsuruta -Koichi Shiraishi Konrad Kleine -Konstantin Gribov -Konstantin L Konstantin Pelykh -Krasi Georgiev Krasimir Georgiev -Kris-Mikael Krister -Kristian Haugene -Kristina Zabunova -Krystian Wojcicki -Kun Zhang -Kunal Kushwaha -Kunal Tyagi +krrg Kyle Conroy -Kyle Linden -Kyle Wuolle kyu Lachlan Coote -Lai Jiangshan Lajos Papp Lakshan Perera -Lalatendu Mohanty +lalyos Lance Chen -Lance Kinley -Lars Butler -Lars Kellogg-Stedman Lars R. Damerow -Lars-Magnus Skog -Laszlo Meszaros -Laura Frank -Laurent Erignoux Laurie Voss -Leandro Siqueira -Lee Chao <932819864@qq.com> -Lee, Meng-Han leeplay -Lei Gong Lei Jitang Len Weincier -Lennie -Leo Gallucci Leszek Kowalski -Levi Blackstone Levi Gross -Lewis Daly Lewis Marshall Lewis Peckover -Li Yi -Liam Macgillavry -Liana Lo -Liang Mingqiang Liang-Chi Hsieh -Liao Qingwei -Lifubang -Lihua Tang -Lily Guo limsy -Lin Lu -LingFaKe -Linus Heckemann -Liran Tal -Liron Levin -Liu Bo -Liu Hua -liwenqi -lixiaobing10051267 -Liz Zhang -LIZAO LI -Lizzie Dixon <_@lizzie.io> -Lloyd Dewolf Lokesh Mandvekar -longliqiang88 <394564827@qq.com> Lorenz Leutgeb -Lorenzo Fontana -Lotus Fenn -Louis Delossantos Louis Opter -Luca Favatella -Luca Marturana -Luca Orlandi -Luca-Bogdan Grigorescu -Lucas Chan -Lucas Chi -Lucas Molas -Lucas Silvestre -Luciano Mores -Luis Martínez de Bartolomé Izquierdo -Luiz Svoboda -Lukas Heeren -Lukas Waslowski lukaspustina -Lukasz Zajaczkowski -Luke Marsden -Lyn -Lynda O'Leary -lzhfromutsc +lukemarsden Lénaïc Huard -Ma Müller -Ma Shimiao -Mabin -Madhan Raj Mookkandy -Madhav Puri Madhu Venugopal -Mageee Mahesh Tiyyagura -malnick Malte Janduda -Manfred Touron Manfred Zabarauskas -Manjunath A Kumatagi -Mansi Nahar Manuel Meurer -Manuel Rüger Manuel Woelker -mapk0y Marc Abramowitz Marc Kuo Marc Tamsky -Marcel Edmund Franke -Marcelo Horacio Fortino -Marcelo Salazar Marco Hennings -Marcus Cobden Marcus Farkas Marcus Linke -Marcus Martins Marcus Ramberg Marek Goldmann -Marian Marinov -Marianna Tessel -Mario Loriedo -Marius Gundersen -Marius Sturm +Marianna Marius Voila Mark Allen -Mark Jeromin Mark McGranaghan -Mark McKinstry -Mark Milstein -Mark Oates -Mark Parker -Mark West -Markan Patel Marko Mikulicic Marko Tibold Markus Fix -Markus Kortlang -Martijn Dwars Martijn van Oosterhout Martin Honermeyer -Martin Kelly -Martin Mosegaard Amdisen -Martin Muzatko -Martin Redmond -Mary Anthony -Masahito Zembutsu -Masato Ohba -Masayuki Morita +Martin Redmond +Mary Anthony Mason Malone Mateusz Sulima Mathias Monnerville -Mathieu Champlon Mathieu Le Marec - Pasquet -Mathieu Parent Matt Apperson Matt Bachmann -Matt Bentley Matt Haggard -Matt Hoyle -Matt McCormick -Matt Moore -Matt Richardson -Matt Rickard -Matt Robenolt -Matt Schurenko -Matt Williams Matthew Heon -Matthew Lapworth -Matthew Mayer -Matthew Mosesohn Matthew Mueller Matthew Riley Matthias Klumpp Matthias Kühnle -Matthias Rampke -Matthieu Hauglustaine -Mattias Jernberg -Mauricio Garavaglia -mauriyouth +mattymo +mattyw Max Shytikov -Maxim Fedchyshyn -Maxim Ivanov -Maxim Kulkin Maxim Treskin Maxime Petazzoni -Maximiliano Maccanti -Maxwell -Meaglith Ma meejah -Megan Kostick -Mehul Kar -Mei ChunTao Mengdi Gao Mert Yazıcıoğlu -mgniu -Micah Zoltu -Michael A. Smith -Michael Bridgen Michael Brown -Michael Chiang Michael Crosby -Michael Currie -Michael Friis Michael Gorsuch -Michael Grauer -Michael Holzheu -Michael Hudson-Doyle -Michael Huettermann -Michael Irwin -Michael Käufl +Michael Hudson-Doyle Michael Neale -Michael Nussbaum Michael Prokop Michael Scharf -Michael Spetsiotis Michael Stapelberg Michael Steinert Michael Thies -Michael West -Michael Zhao -Michal Fojtik -Michal Gebauer Michal Jemala -Michal Minář -Michal Wieczorek +Michal Minar Michaël Pailloncy -Michał Czeraszkiewicz -Michał Gryko -Michiel de Jong -Mickaël Fortunato -Mickaël Remars +Michiel@unhosted Miguel Angel Fernández -Miguel Morales -Mihai Borobocea -Mihuleacc Sergiu -Mike Brown -Mike Casas Mike Chelen -Mike Danese -Mike Dillon -Mike Dougherty -Mike Estes Mike Gaffney -Mike Goelzer -Mike Leone -Mike Lundy Mike MacCana Mike Naberezny Mike Snitzer -mikelinjie <294893458@qq.com> Mikhail Sobolev -Miklos Szegedi -Milind Chawre -Miloslav Trmač -mingqing -Mingzhen Feng -Misty Stanley-Jones -Mitch Capper -Mizuki Urushida -mlarcher -Mohammad Banikazemi -Mohammad Nasirifar -Mohammed Aaqib Ansari Mohit Soni -Moorthy RS -Morgan Bauer Morgante Pell -Morgy93 Morten Siebuhr -Morton Fox -Moysés Borges -mrfly Mrunal Patel -Muayyad Alsadi +mschurenko Mustafa Akın -Muthukumar R -Máximo Cuadros Médi-Rémi Hashim -Nace Oroz -Nahum Shalman -Nakul Pathak -Nalin Dahyabhai Nan Monnand Deng Naoki Orii -Natalie Parker -Natanael Copa -Natasha Jarus -Nate Brennand Nate Eagleson Nate Jones Nathan Hsieh Nathan Kleyn Nathan LeClaire -Nathan McCauley -Nathan Williams -Naveed Jamil Neal McBurnett -Neil Horman -Neil Peterson Nelson Chen -Neyazul Haque -Nghia Tran Niall O'Higgins Nicholas E. Rabenau -Nick Adcock -Nick DeCoursin -Nick Irvine -Nick Neisen -Nick Parker Nick Payne -Nick Russo Nick Stenning Nick Stinemates -NickrenREN -Nicola Kabar -Nicolas Borboën -Nicolas De Loof +Nicolas De loof Nicolas Dudebout Nicolas Goy Nicolas Kaiser -Nicolas Sterchele -Nicolas V Castet -Nicolás Hock Isaza -Nigel Poulton -Nik Nyby -Nikhil Chawla NikolaMandic -Nikolas Garofil -Nikolay Milovanov -Nirmal Mehta -Nishant Totla -NIWA Hideyuki -Noah Meyerhans -Noah Treuhaft -NobodyOnSE noducks Nolan Darilek -Noriki Nakamura -nponeccop -Nuutti Kotivuori nzwsch O.S. Tezer -objectified -Odin Ugedal +OddBloke +odk- Oguz Bilgic Oh Jinkyun -Ohad Schneider -ohmystack Ole Reifschneider -Oliver Neal -Oliver Reason Olivier Gambier -Olle Jonsson -Olli Janatuinen -Olly Pomeroy -Omri Shiv -Oriol Francès -Oskar Niburski -Otto Kekäläinen -Ouyang Liduo -Ovidio Mallo -Panagiotis Moustafellos -Paolo G. Giarrusso -Pascal -Pascal Bach +pandrew +panticz Pascal Borreli Pascal Hartig -Patrick Böänziger -Patrick Devine Patrick Hemmer Patrick Stapleton -Patrik Cyvoct pattichen Paul -paul Paul Annesley -Paul Bellamy Paul Bowsher -Paul Furtado Paul Hammond Paul Jimenez -Paul Kehrer Paul Lietar -Paul Liljenberg Paul Morie Paul Nasrat Paul Weaver -Paulo Ribeiro -Pavel Lobashov -Pavel Matěja -Pavel Pletenev -Pavel Pospisil -Pavel Sutyrin -Pavel Tikhomirov Pavlos Ratis -Pavol Vargovcik -Pawel Konczalski -Peeyush Gupta -Peggy Li -Pei Su -Peng Tao -Penghan Wang -Per Weijnitz -perhapszzy@sina.com Peter Bourgon Peter Braden -Peter Bücker -Peter Choi -Peter Dave Hello -Peter Edge Peter Ericson -Peter Esbensen -Peter Jaffe -Peter Kang -Peter Malmgren Peter Salvatore -Peter Volpe Peter Waller -Petr Švihlík Phil Phil Estes Phil Spitler -Philip Alexander Etling -Philip Monroe -Philipp Gillé -Philipp Wahala Philipp Weissensteiner Phillip Alexander -phineas -pidster Piergiuliano Bossi Pierre -Pierre Carrier -Pierre Dal-Pra Pierre Wacrenier Pierre-Alain RIVIERE Piotr Bogdan pixelistik Porjo -Poul Kjeldager Sørensen -Pradeep Chhetri -Pradip Dhara Prasanna Gautam -Pratik Karki -Prayag Verma -Priya Wadhwa -Projjol Banerji Przemek Hejman -Pure White pysqz Qiang Huang -Qinglan Peng -qudongfang Quentin Brossard -Quentin Perez -Quentin Tayssier r0n22 -Radostin Stoyanov Rafal Jeczalik Rafe Colton -Raghavendra K T -Raghuram Devarakonda -Raja Sami Rajat Pandit Rajdeep Dua -Ralf Sippl -Ralle Ralph Bean Ramkumar Ramachandra -Ramon Brooker Ramon van Alteren -RaviTeja Pothana -Ray Tsang -ReadmeCritic Recursive Madman -Reficul -Regan McCooey Remi Rampin -Remy Suen Renato Riccieri Santos Zannon -Renaud Gaubert +rgstephens Rhys Hiltner -Ri Xu -Ricardo N Feliciano -Rich Moyse -Rich Seymour -Richard -Richard Burnison Richard Harvey -Richard Mathie Richard Metzler -Richard Scothern Richo Healey Rick Bradley Rick van de Loo -Rick Wieman -Rik Nijessen -Riku Voipio -Riley Guerin -Ritesh H Shukla -Riyaz Faizullabhoy -Rob Gulewich -Rob Vesse Robert Bachmann Robert Bittle Robert Obryk -Robert Schneider -Robert Stern -Robert Terhaar -Robert Wallis -Robert Wang Roberto G. Hashioka -Roberto Muñoz Fernández -Robin Naundorf -Robin Schneider Robin Speekenbrink -Robin Thoni robpc -Rodolfo Carvalho Rodrigo Vaz Roel Van Nyen Roger Peppe Rohit Jnagal -Rohit Kadam -Rohit Kapur -Rojin George Roland Huß -Roland Kammerer Roland Moriz -Roma Sokolov -Roman Dudin -Roman Strashkin Ron Smits -Ron Williams -Rong Gao -Rong Zhang -Rongxiang Song -root -root -root -root -Rory Hunter -Rory McCune -Ross Boucher Rovanion Luckey -Royce Remer -Rozhnov Alexandr Rudolph Gottesheim -Rui Cao -Rui Lopes -Ruilin Li -Runshen Zhu -Russ Magee -Ryan Abrams Ryan Anderson Ryan Aslett -Ryan Belgrave Ryan Detzel Ryan Fowler -Ryan Liu -Ryan McLaughlin Ryan O'Donnell Ryan Seto -Ryan Simmen -Ryan Stelly Ryan Thomas -Ryan Trauntvein -Ryan Wallner -Ryan Zhang -ryancooper7 -RyanDeng -Ryo Nakao Rémy Greinhofer -s. rannou -s00318865 -Sabin Basyal -Sachin Joshi -Sagar Hani -Sainath Grandhi -Sakeven Jiang -Salahuddin Khan -Sally O'Malley -Sam Abed Sam Alba Sam Bailey Sam J Sharpe -Sam Neirinck Sam Reis Sam Rijs -Sam Whited -Sambuddha Basu Sami Wagiaalla Samuel Andaya -Samuel Dion-Girardeau -Samuel Karp Samuel PHAN -Sandeep Bansal -Sankar சங்கர் -Sanket Saurav -Santhosh Manohar -sapphiredev -Sargun Dhillon -Sascha Andres -Sascha Grunert -SataQiu Satnam Singh +satoru Satoshi Amemiya -Satoshi Tagomori Scott Bessler Scott Collier Scott Johnston Scott Stamp Scott Walls -sdreyesg -Sean Christopherson Sean Cronin -Sean Lee -Sean McIntyre -Sean OMeara Sean P. Kane -Sean Rodman -Sebastiaan van Steenis Sebastiaan van Stijn Senthil Kumar Selvaraj -Senthil Kumaran SeongJae Park -Seongyeol Lim -Serge Hallyn -Sergey Alekseev -Sergey Evstifeev -Sergii Kabashniuk -Sergio Lopez -Serhat Gülçiçek -SeungUkLee -Sevki Hasirci Shane Canon -Shane da Silva -Shaun Kaasten shaunol Shawn Landden Shawn Siefkas -shawnhe -Shayne Wang -Shekhar Gulati -Sheng Yang -Shengbo Song -Shev Yan Shih-Yuan Lee -Shijiang Wei -Shijun Qin Shishir Mahajan -Shoubhik Bose -Shourya Sarcar -Shu-Wai Chow shuai-z -Shukui Yang -Shuwei Hao -Sian Lerk Lau -Sidhartha Mani -sidharthamani Silas Sewell -Silvan Jegen -Simão Reis -Simei He -Simon Barendse -Simon Eskildsen -Simon Ferquel -Simon Leinen -Simon Menke Simon Taranto -Simon Vikstrom Sindhu S Sjoerd Langkemper -skanehira -Solganik Alexander Solomon Hykes Song Gao -Soshi Katsuta Soulou -Spencer Brown -Spencer Smith +soulshake Sridatta Thatipamala Sridhar Ratnakumar +Srini Brahmaroutu Srini Brahmaroutu -Srinivasan Srivatsan -Staf Wagemakers -Stanislav Bondarenko Steeve Morin -Stefan Berger -Stefan J. Wernli Stefan Praszalowicz -Stefan S. -Stefan Scherer -Stefan Staudenmeyer -Stefan Weil -Stephan Spindler -Stephen Benjamin Stephen Crosby -Stephen Day -Stephen Drake -Stephen Rust -Steve Desmond -Steve Dougherty -Steve Durrheimer -Steve Francia -Steve Koch Steven Burgess -Steven Erenst -Steven Hartland -Steven Iveson Steven Merrill -Steven Richards -Steven Taylor -Stig Larsson -Subhajit Ghosh -Sujith Haridasan -Sun Gengze <690388648@qq.com> -Sun Jianbo -Sune Keller -Sunny Gogoi -Suryakumar Sudar Sven Dowideit -Swapnil Daingade -Sylvain Baubeau -Sylvain Bellemare +Sylvain Bellemare Sébastien -Sébastien HOUZÉ Sébastien Luttringer Sébastien Stormacq -Tabakhase -Tadej Janež -TAGOMORI Satoshi tang0th -Tangi Colin Tatsuki Sugiura Tatsushi Inagaki -Taylan Isikdemir -Taylor Jones Ted M. Young Tehmasp Chaudhri -Tejaswini Duggaraju Tejesh Mehta -terryding77 <550147740@qq.com> -tgic Thatcher Peskens -theadactyl -Thell 'Bo' Fowler Thermionix Thijs Terlouw Thomas Bikeev Thomas Frössman -Thomas Gazagnaire -Thomas Grainger Thomas Hansen -Thomas Leonard -Thomas Léveil +Thomas LEVEIL Thomas Orozco -Thomas Riccardi Thomas Schroeter -Thomas Sjögren -Thomas Swift -Thomas Tanaka -Thomas Texier -Ti Zhou Tianon Gravi -Tianyi Wang Tibor Vass -Tiffany Jernigan -Tiffany Low -Tim -Tim Bart Tim Bosse -Tim Dettrick -Tim Düsterhus Tim Hockin -Tim Potter Tim Ruffles Tim Smith Tim Terhorst -Tim Wang -Tim Waugh -Tim Wraight -Tim Zju <21651152@zju.edu.cn> -timfeirg Timothy Hobbs tjwebb123 tobe Tobias Bieniek -Tobias Bradtke Tobias Gesellchen -Tobias Klauser -Tobias Munk Tobias Schmidt Tobias Schwab -Todd Crane Todd Lunter -Todd Whiteman -Toli Kuznets -Tom Barlow -Tom Booth -Tom Denham Tom Fotherby -Tom Howe Tom Hulihan Tom Maaswinkel -Tom Sweeney -Tom Wilkie -Tom X. Tobin Tomas Tomecek -Tomasz Kopczynski Tomasz Lipinski Tomasz Nurkiewicz Tommaso Visconti -Tomáš Hrčka -Tonny Xu -Tony Abboud +Tonis Tiigi Tony Daws -Tony Miller -toogley Torstein Husebø -Tõnis Tiigi tpng -tracylihui <793912329@qq.com> -Trapier Marshall Travis Cline -Travis Thieman Trent Ogren -Trevor -Trevor Pounds -Trevor Sullivan -Trishna Guha -Tristan Carel -Troy Denton -Tycho Andersen Tyler Brock -Tyler Brown Tzu-Jung Lee -uhayate Ulysse Carion -Umesh Yadav -Utz Bacher -vagrant +unknown Vaidas Jablonskis -vanderliang -Veres Lajos -Victor Algaze +vgeta Victor Coisne -Victor Costan -Victor I. Wood Victor Lyuboslavsky Victor Marmol -Victor Palma Victor Vieux -Victoria Bialas -Vijaya Kumar K -Vikram bir Singh -Viktor Stanchev Viktor Vojnovski -VinayRaghavanKS Vincent Batts +Vincent Bernat Vincent Bernat -Vincent Demeester Vincent Giersch Vincent Mayers Vincent Woo Vinod Kulkarni Vishal Doshi Vishnu Kannan -Vitaly Ostrosablin Vitor Monteiro Vivek Agarwal Vivek Dasgupta Vivek Goyal Vladimir Bulyga Vladimir Kirillov -Vladimir Pouzanov Vladimir Rutsky -Vladimir Varankin -VladimirAus -Vlastimil Zeman Vojtech Vitek (V-Teq) waitingkuo Walter Leibbrandt Walter Stanish -Wang Chao -Wang Guoliang -Wang Jie -Wang Long -Wang Ping -Wang Xing -Wang Yuexiao Ward Vandewege WarheadsSE -Wassim Dhif Wayne Chang -Wayne Song -Weerasak Chongnguluam -Wei Fu -Wei Wu -Wei-Ting Kuo -weipeng -weiyan -Weiyang Zhu -Wen Cheng Ma -Wendel Fleming -Wenjun Tang -Wenkai Yin -Wentao Zhang -Wenxuan Zhao -Wenyu You <21551128@zju.edu.cn> -Wenzhi Liang Wes Morgan -Wewang Xiaorenfine -Wiktor Kwapisiewicz Will Dietz Will Rouesnel Will Weaver -willhf William Delanoue William Henry -William Hubbs -William Martin William Riancho William Thurston -WiseTrem -Wolfgang Powisch -Wonjun Kim -xamyzhao -Xian Chaobo -Xianglin Gao -Xianlu Bird -Xiao YongBiao -XiaoBing Jiang -Xiaodong Zhang -Xiaoxi He -Xiaoxu Chen -Xiaoyu Zhang -xichengliudui <1693291525@qq.com> -xiekeyang -Ximo Guanter Gonzálbez -Xinbo Weng -Xinfeng Liu -Xinzi Zhou Xiuming Chen -Xuecong Liao xuzhaokui -Yadnyawalkya Tale -Yahya -YAMADA Tsuyoshi -Yamasaki Masahide -Yan Feng Yang Bai -Yang Pengfei -yangchenliang -Yanqiang Miao -Yao Zaiyong -Yash Murty -Yassine Tijani Yasunori Mahata -Yazhong Liu -Yestin Sun -Yi EungJun -Yibai Zhang -Yihang Ho -Ying Li Yohei Ueda -Yong Tang -Yongxin Li -Yongzhi Pan -Yosef Fertel -You-Sheng Yang (楊有勝) -youcai -Youcef YEKHLEF -Yu Changchun -Yu Chengxia -Yu Peng -Yu-Ju Hong -Yuan Sun -Yuanhong Peng -Yue Zhang -Yuhao Fang -Yuichiro Kaneko -Yunxiang Huang Yurii Rashkovskii -Yusuf Tarık Günaydın -Yves Junqueira Zac Dover Zach Borboa -Zachary Jaffee Zain Memon Zaiste! Zane DeGraffenried -Zefan Li -Zen Lin(Zhinan Lin) -Zhang Kun -Zhang Wei -Zhang Wentao -ZhangHang -zhangxianwei -Zhenan Ye <21551168@zju.edu.cn> -zhenghenghuo -Zhenhai Gao -Zhenkun Bi -Zhou Hao -Zhoulin Xie -Zhu Guihua -Zhu Kunjia -Zhuoyun Wei -Ziheng Liu Zilin Du zimbatm -Ziming Dong -ZJUshuaizhou <21551191@zju.edu.cn> -zmarouf Zoltan Tombol -Zou Yu zqh -Zuhayr Elahi -Zunayed Ali Álex González Álvaro Lázaro -Átila Camurça Alves 尹吉峰 -徐俊杰 -慕陶 -搏通 -黄艳红00139573 diff --git a/vendor/github.com/docker/docker/LICENSE b/vendor/github.com/docker/docker/LICENSE index 6d8d58fb..508036ef 100644 --- a/vendor/github.com/docker/docker/LICENSE +++ b/vendor/github.com/docker/docker/LICENSE @@ -1,7 +1,7 @@ Apache License Version 2.0, January 2004 - https://www.apache.org/licenses/ + http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION @@ -176,13 +176,13 @@ END OF TERMS AND CONDITIONS - Copyright 2013-2018 Docker, Inc. + Copyright 2013-2015 Docker, Inc. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - https://www.apache.org/licenses/LICENSE-2.0 + http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, diff --git a/vendor/github.com/docker/docker/NOTICE b/vendor/github.com/docker/docker/NOTICE index 58b19b6d..435ace7f 100644 --- a/vendor/github.com/docker/docker/NOTICE +++ b/vendor/github.com/docker/docker/NOTICE @@ -1,19 +1,19 @@ Docker -Copyright 2012-2017 Docker, Inc. +Copyright 2012-2015 Docker, Inc. -This product includes software developed at Docker, Inc. (https://www.docker.com). +This product includes software developed at Docker, Inc. (http://www.docker.com). -This product contains software (https://github.com/creack/pty) developed +This product contains software (https://github.com/kr/pty) developed by Keith Rarick, licensed under the MIT License. The following is courtesy of our legal counsel: Use and transfer of Docker may be subject to certain restrictions by the -United States and other governments. +United States and other governments. It is your responsibility to ensure that your use and/or transfer does not -violate applicable laws. +violate applicable laws. -For more information, please see https://www.bis.doc.gov +For more information, please see http://www.bis.doc.gov -See also https://www.apache.org/dev/crypto.html and/or seek legal counsel. +See also http://www.apache.org/dev/crypto.html and/or seek legal counsel. diff --git a/vendor/github.com/docker/docker/pkg/homedir/homedir_unix.go b/vendor/github.com/docker/docker/pkg/homedir/homedir.go similarity index 63% rename from vendor/github.com/docker/docker/pkg/homedir/homedir_unix.go rename to vendor/github.com/docker/docker/pkg/homedir/homedir.go index 441bd727..61137a8f 100644 --- a/vendor/github.com/docker/docker/pkg/homedir/homedir_unix.go +++ b/vendor/github.com/docker/docker/pkg/homedir/homedir.go @@ -1,31 +1,29 @@ -// +build !windows - -package homedir // import "github.com/docker/docker/pkg/homedir" +package homedir import ( "os" - "os/user" + "runtime" + + "github.com/docker/libcontainer/user" ) // Key returns the env var name for the user's home dir based on // the platform being run on func Key() string { + if runtime.GOOS == "windows" { + return "USERPROFILE" + } return "HOME" } // Get returns the home directory of the current user with the help of // environment variables depending on the target operating system. // Returned path should be used with "path/filepath" to form new paths. -// -// If linking statically with cgo enabled against glibc, ensure the -// osusergo build tag is used. -// -// If needing to do nss lookups, do not disable cgo or set osusergo. func Get() string { home := os.Getenv(Key()) - if home == "" { - if u, err := user.Current(); err == nil { - return u.HomeDir + if home == "" && runtime.GOOS != "windows" { + if u, err := user.CurrentUser(); err == nil { + return u.Home } } return home @@ -34,5 +32,8 @@ func Get() string { // GetShortcutString returns the string that is shortcut to user's home directory // in the native shell of the platform running on. func GetShortcutString() string { + if runtime.GOOS == "windows" { + return "%USERPROFILE%" // be careful while using in format functions + } return "~" } diff --git a/vendor/github.com/docker/docker/pkg/homedir/homedir_linux.go b/vendor/github.com/docker/docker/pkg/homedir/homedir_linux.go deleted file mode 100644 index 5e6310fd..00000000 --- a/vendor/github.com/docker/docker/pkg/homedir/homedir_linux.go +++ /dev/null @@ -1,93 +0,0 @@ -package homedir // import "github.com/docker/docker/pkg/homedir" - -import ( - "errors" - "os" - "path/filepath" - "strings" -) - -// GetRuntimeDir returns XDG_RUNTIME_DIR. -// XDG_RUNTIME_DIR is typically configured via pam_systemd. -// GetRuntimeDir returns non-nil error if XDG_RUNTIME_DIR is not set. -// -// See also https://standards.freedesktop.org/basedir-spec/latest/ar01s03.html -func GetRuntimeDir() (string, error) { - if xdgRuntimeDir := os.Getenv("XDG_RUNTIME_DIR"); xdgRuntimeDir != "" { - return xdgRuntimeDir, nil - } - return "", errors.New("could not get XDG_RUNTIME_DIR") -} - -// StickRuntimeDirContents sets the sticky bit on files that are under -// XDG_RUNTIME_DIR, so that the files won't be periodically removed by the system. -// -// StickyRuntimeDir returns slice of sticked files. -// StickyRuntimeDir returns nil error if XDG_RUNTIME_DIR is not set. -// -// See also https://standards.freedesktop.org/basedir-spec/latest/ar01s03.html -func StickRuntimeDirContents(files []string) ([]string, error) { - runtimeDir, err := GetRuntimeDir() - if err != nil { - // ignore error if runtimeDir is empty - return nil, nil - } - runtimeDir, err = filepath.Abs(runtimeDir) - if err != nil { - return nil, err - } - var sticked []string - for _, f := range files { - f, err = filepath.Abs(f) - if err != nil { - return sticked, err - } - if strings.HasPrefix(f, runtimeDir+"/") { - if err = stick(f); err != nil { - return sticked, err - } - sticked = append(sticked, f) - } - } - return sticked, nil -} - -func stick(f string) error { - st, err := os.Stat(f) - if err != nil { - return err - } - m := st.Mode() - m |= os.ModeSticky - return os.Chmod(f, m) -} - -// GetDataHome returns XDG_DATA_HOME. -// GetDataHome returns $HOME/.local/share and nil error if XDG_DATA_HOME is not set. -// -// See also https://standards.freedesktop.org/basedir-spec/latest/ar01s03.html -func GetDataHome() (string, error) { - if xdgDataHome := os.Getenv("XDG_DATA_HOME"); xdgDataHome != "" { - return xdgDataHome, nil - } - home := os.Getenv("HOME") - if home == "" { - return "", errors.New("could not get either XDG_DATA_HOME or HOME") - } - return filepath.Join(home, ".local", "share"), nil -} - -// GetConfigHome returns XDG_CONFIG_HOME. -// GetConfigHome returns $HOME/.config and nil error if XDG_CONFIG_HOME is not set. -// -// See also https://standards.freedesktop.org/basedir-spec/latest/ar01s03.html -func GetConfigHome() (string, error) { - if xdgConfigHome := os.Getenv("XDG_CONFIG_HOME"); xdgConfigHome != "" { - return xdgConfigHome, nil - } - home := os.Getenv("HOME") - if home == "" { - return "", errors.New("could not get either XDG_CONFIG_HOME or HOME") - } - return filepath.Join(home, ".config"), nil -} diff --git a/vendor/github.com/docker/docker/pkg/homedir/homedir_others.go b/vendor/github.com/docker/docker/pkg/homedir/homedir_others.go deleted file mode 100644 index 67ab9e9b..00000000 --- a/vendor/github.com/docker/docker/pkg/homedir/homedir_others.go +++ /dev/null @@ -1,27 +0,0 @@ -// +build !linux - -package homedir // import "github.com/docker/docker/pkg/homedir" - -import ( - "errors" -) - -// GetRuntimeDir is unsupported on non-linux system. -func GetRuntimeDir() (string, error) { - return "", errors.New("homedir.GetRuntimeDir() is not supported on this system") -} - -// StickRuntimeDirContents is unsupported on non-linux system. -func StickRuntimeDirContents(files []string) ([]string, error) { - return nil, errors.New("homedir.StickRuntimeDirContents() is not supported on this system") -} - -// GetDataHome is unsupported on non-linux system. -func GetDataHome() (string, error) { - return "", errors.New("homedir.GetDataHome() is not supported on this system") -} - -// GetConfigHome is unsupported on non-linux system. -func GetConfigHome() (string, error) { - return "", errors.New("homedir.GetConfigHome() is not supported on this system") -} diff --git a/vendor/github.com/docker/docker/pkg/homedir/homedir_windows.go b/vendor/github.com/docker/docker/pkg/homedir/homedir_windows.go deleted file mode 100644 index 2f81813b..00000000 --- a/vendor/github.com/docker/docker/pkg/homedir/homedir_windows.go +++ /dev/null @@ -1,24 +0,0 @@ -package homedir // import "github.com/docker/docker/pkg/homedir" - -import ( - "os" -) - -// Key returns the env var name for the user's home dir based on -// the platform being run on -func Key() string { - return "USERPROFILE" -} - -// Get returns the home directory of the current user with the help of -// environment variables depending on the target operating system. -// Returned path should be used with "path/filepath" to form new paths. -func Get() string { - return os.Getenv(Key()) -} - -// GetShortcutString returns the string that is shortcut to user's home directory -// in the native shell of the platform running on. -func GetShortcutString() string { - return "%USERPROFILE%" // be careful while using in format functions -} diff --git a/vendor/github.com/docker/libcontainer/LICENSE b/vendor/github.com/docker/libcontainer/LICENSE new file mode 100644 index 00000000..27448585 --- /dev/null +++ b/vendor/github.com/docker/libcontainer/LICENSE @@ -0,0 +1,191 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + Copyright 2014 Docker, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/github.com/docker/libcontainer/NOTICE b/vendor/github.com/docker/libcontainer/NOTICE new file mode 100644 index 00000000..dc912987 --- /dev/null +++ b/vendor/github.com/docker/libcontainer/NOTICE @@ -0,0 +1,16 @@ +libcontainer +Copyright 2012-2015 Docker, Inc. + +This product includes software developed at Docker, Inc. (http://www.docker.com). + +The following is courtesy of our legal counsel: + + +Use and transfer of Docker may be subject to certain restrictions by the +United States and other governments. +It is your responsibility to ensure that your use and/or transfer does not +violate applicable laws. + +For more information, please see http://www.bis.doc.gov + +See also http://www.apache.org/dev/crypto.html and/or seek legal counsel. diff --git a/vendor/github.com/docker/libcontainer/user/MAINTAINERS b/vendor/github.com/docker/libcontainer/user/MAINTAINERS new file mode 100644 index 00000000..edbe2006 --- /dev/null +++ b/vendor/github.com/docker/libcontainer/user/MAINTAINERS @@ -0,0 +1,2 @@ +Tianon Gravi (@tianon) +Aleksa Sarai (@cyphar) diff --git a/vendor/github.com/docker/libcontainer/user/lookup.go b/vendor/github.com/docker/libcontainer/user/lookup.go new file mode 100644 index 00000000..6f8a982f --- /dev/null +++ b/vendor/github.com/docker/libcontainer/user/lookup.go @@ -0,0 +1,108 @@ +package user + +import ( + "errors" + "fmt" + "syscall" +) + +var ( + // The current operating system does not provide the required data for user lookups. + ErrUnsupported = errors.New("user lookup: operating system does not provide passwd-formatted data") +) + +func lookupUser(filter func(u User) bool) (User, error) { + // Get operating system-specific passwd reader-closer. + passwd, err := GetPasswd() + if err != nil { + return User{}, err + } + defer passwd.Close() + + // Get the users. + users, err := ParsePasswdFilter(passwd, filter) + if err != nil { + return User{}, err + } + + // No user entries found. + if len(users) == 0 { + return User{}, fmt.Errorf("no matching entries in passwd file") + } + + // Assume the first entry is the "correct" one. + return users[0], nil +} + +// CurrentUser looks up the current user by their user id in /etc/passwd. If the +// user cannot be found (or there is no /etc/passwd file on the filesystem), +// then CurrentUser returns an error. +func CurrentUser() (User, error) { + return LookupUid(syscall.Getuid()) +} + +// LookupUser looks up a user by their username in /etc/passwd. If the user +// cannot be found (or there is no /etc/passwd file on the filesystem), then +// LookupUser returns an error. +func LookupUser(username string) (User, error) { + return lookupUser(func(u User) bool { + return u.Name == username + }) +} + +// LookupUid looks up a user by their user id in /etc/passwd. If the user cannot +// be found (or there is no /etc/passwd file on the filesystem), then LookupId +// returns an error. +func LookupUid(uid int) (User, error) { + return lookupUser(func(u User) bool { + return u.Uid == uid + }) +} + +func lookupGroup(filter func(g Group) bool) (Group, error) { + // Get operating system-specific group reader-closer. + group, err := GetGroup() + if err != nil { + return Group{}, err + } + defer group.Close() + + // Get the users. + groups, err := ParseGroupFilter(group, filter) + if err != nil { + return Group{}, err + } + + // No user entries found. + if len(groups) == 0 { + return Group{}, fmt.Errorf("no matching entries in group file") + } + + // Assume the first entry is the "correct" one. + return groups[0], nil +} + +// CurrentGroup looks up the current user's group by their primary group id's +// entry in /etc/passwd. If the group cannot be found (or there is no +// /etc/group file on the filesystem), then CurrentGroup returns an error. +func CurrentGroup() (Group, error) { + return LookupGid(syscall.Getgid()) +} + +// LookupGroup looks up a group by its name in /etc/group. If the group cannot +// be found (or there is no /etc/group file on the filesystem), then LookupGroup +// returns an error. +func LookupGroup(groupname string) (Group, error) { + return lookupGroup(func(g Group) bool { + return g.Name == groupname + }) +} + +// LookupGid looks up a group by its group id in /etc/group. If the group cannot +// be found (or there is no /etc/group file on the filesystem), then LookupGid +// returns an error. +func LookupGid(gid int) (Group, error) { + return lookupGroup(func(g Group) bool { + return g.Gid == gid + }) +} diff --git a/vendor/github.com/docker/libcontainer/user/lookup_unix.go b/vendor/github.com/docker/libcontainer/user/lookup_unix.go new file mode 100644 index 00000000..758b734c --- /dev/null +++ b/vendor/github.com/docker/libcontainer/user/lookup_unix.go @@ -0,0 +1,30 @@ +// +build darwin dragonfly freebsd linux netbsd openbsd solaris + +package user + +import ( + "io" + "os" +) + +// Unix-specific path to the passwd and group formatted files. +const ( + unixPasswdPath = "/etc/passwd" + unixGroupPath = "/etc/group" +) + +func GetPasswdPath() (string, error) { + return unixPasswdPath, nil +} + +func GetPasswd() (io.ReadCloser, error) { + return os.Open(unixPasswdPath) +} + +func GetGroupPath() (string, error) { + return unixGroupPath, nil +} + +func GetGroup() (io.ReadCloser, error) { + return os.Open(unixGroupPath) +} diff --git a/vendor/github.com/docker/libcontainer/user/lookup_unsupported.go b/vendor/github.com/docker/libcontainer/user/lookup_unsupported.go new file mode 100644 index 00000000..72179488 --- /dev/null +++ b/vendor/github.com/docker/libcontainer/user/lookup_unsupported.go @@ -0,0 +1,21 @@ +// +build !darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris + +package user + +import "io" + +func GetPasswdPath() (string, error) { + return "", ErrUnsupported +} + +func GetPasswd() (io.ReadCloser, error) { + return nil, ErrUnsupported +} + +func GetGroupPath() (string, error) { + return "", ErrUnsupported +} + +func GetGroup() (io.ReadCloser, error) { + return nil, ErrUnsupported +} diff --git a/vendor/github.com/docker/libcontainer/user/user.go b/vendor/github.com/docker/libcontainer/user/user.go new file mode 100644 index 00000000..13226dbf --- /dev/null +++ b/vendor/github.com/docker/libcontainer/user/user.go @@ -0,0 +1,407 @@ +package user + +import ( + "bufio" + "fmt" + "io" + "os" + "strconv" + "strings" +) + +const ( + minId = 0 + maxId = 1<<31 - 1 //for 32-bit systems compatibility +) + +var ( + ErrRange = fmt.Errorf("Uids and gids must be in range %d-%d", minId, maxId) +) + +type User struct { + Name string + Pass string + Uid int + Gid int + Gecos string + Home string + Shell string +} + +type Group struct { + Name string + Pass string + Gid int + List []string +} + +func parseLine(line string, v ...interface{}) { + if line == "" { + return + } + + parts := strings.Split(line, ":") + for i, p := range parts { + if len(v) <= i { + // if we have more "parts" than we have places to put them, bail for great "tolerance" of naughty configuration files + break + } + + switch e := v[i].(type) { + case *string: + // "root", "adm", "/bin/bash" + *e = p + case *int: + // "0", "4", "1000" + // ignore string to int conversion errors, for great "tolerance" of naughty configuration files + *e, _ = strconv.Atoi(p) + case *[]string: + // "", "root", "root,adm,daemon" + if p != "" { + *e = strings.Split(p, ",") + } else { + *e = []string{} + } + default: + // panic, because this is a programming/logic error, not a runtime one + panic("parseLine expects only pointers! argument " + strconv.Itoa(i) + " is not a pointer!") + } + } +} + +func ParsePasswdFile(path string) ([]User, error) { + passwd, err := os.Open(path) + if err != nil { + return nil, err + } + defer passwd.Close() + return ParsePasswd(passwd) +} + +func ParsePasswd(passwd io.Reader) ([]User, error) { + return ParsePasswdFilter(passwd, nil) +} + +func ParsePasswdFileFilter(path string, filter func(User) bool) ([]User, error) { + passwd, err := os.Open(path) + if err != nil { + return nil, err + } + defer passwd.Close() + return ParsePasswdFilter(passwd, filter) +} + +func ParsePasswdFilter(r io.Reader, filter func(User) bool) ([]User, error) { + if r == nil { + return nil, fmt.Errorf("nil source for passwd-formatted data") + } + + var ( + s = bufio.NewScanner(r) + out = []User{} + ) + + for s.Scan() { + if err := s.Err(); err != nil { + return nil, err + } + + text := strings.TrimSpace(s.Text()) + if text == "" { + continue + } + + // see: man 5 passwd + // name:password:UID:GID:GECOS:directory:shell + // Name:Pass:Uid:Gid:Gecos:Home:Shell + // root:x:0:0:root:/root:/bin/bash + // adm:x:3:4:adm:/var/adm:/bin/false + p := User{} + parseLine( + text, + &p.Name, &p.Pass, &p.Uid, &p.Gid, &p.Gecos, &p.Home, &p.Shell, + ) + + if filter == nil || filter(p) { + out = append(out, p) + } + } + + return out, nil +} + +func ParseGroupFile(path string) ([]Group, error) { + group, err := os.Open(path) + if err != nil { + return nil, err + } + defer group.Close() + return ParseGroup(group) +} + +func ParseGroup(group io.Reader) ([]Group, error) { + return ParseGroupFilter(group, nil) +} + +func ParseGroupFileFilter(path string, filter func(Group) bool) ([]Group, error) { + group, err := os.Open(path) + if err != nil { + return nil, err + } + defer group.Close() + return ParseGroupFilter(group, filter) +} + +func ParseGroupFilter(r io.Reader, filter func(Group) bool) ([]Group, error) { + if r == nil { + return nil, fmt.Errorf("nil source for group-formatted data") + } + + var ( + s = bufio.NewScanner(r) + out = []Group{} + ) + + for s.Scan() { + if err := s.Err(); err != nil { + return nil, err + } + + text := s.Text() + if text == "" { + continue + } + + // see: man 5 group + // group_name:password:GID:user_list + // Name:Pass:Gid:List + // root:x:0:root + // adm:x:4:root,adm,daemon + p := Group{} + parseLine( + text, + &p.Name, &p.Pass, &p.Gid, &p.List, + ) + + if filter == nil || filter(p) { + out = append(out, p) + } + } + + return out, nil +} + +type ExecUser struct { + Uid, Gid int + Sgids []int + Home string +} + +// GetExecUserPath is a wrapper for GetExecUser. It reads data from each of the +// given file paths and uses that data as the arguments to GetExecUser. If the +// files cannot be opened for any reason, the error is ignored and a nil +// io.Reader is passed instead. +func GetExecUserPath(userSpec string, defaults *ExecUser, passwdPath, groupPath string) (*ExecUser, error) { + passwd, err := os.Open(passwdPath) + if err != nil { + passwd = nil + } else { + defer passwd.Close() + } + + group, err := os.Open(groupPath) + if err != nil { + group = nil + } else { + defer group.Close() + } + + return GetExecUser(userSpec, defaults, passwd, group) +} + +// GetExecUser parses a user specification string (using the passwd and group +// readers as sources for /etc/passwd and /etc/group data, respectively). In +// the case of blank fields or missing data from the sources, the values in +// defaults is used. +// +// GetExecUser will return an error if a user or group literal could not be +// found in any entry in passwd and group respectively. +// +// Examples of valid user specifications are: +// * "" +// * "user" +// * "uid" +// * "user:group" +// * "uid:gid +// * "user:gid" +// * "uid:group" +func GetExecUser(userSpec string, defaults *ExecUser, passwd, group io.Reader) (*ExecUser, error) { + var ( + userArg, groupArg string + name string + ) + + if defaults == nil { + defaults = new(ExecUser) + } + + // Copy over defaults. + user := &ExecUser{ + Uid: defaults.Uid, + Gid: defaults.Gid, + Sgids: defaults.Sgids, + Home: defaults.Home, + } + + // Sgids slice *cannot* be nil. + if user.Sgids == nil { + user.Sgids = []int{} + } + + // allow for userArg to have either "user" syntax, or optionally "user:group" syntax + parseLine(userSpec, &userArg, &groupArg) + + users, err := ParsePasswdFilter(passwd, func(u User) bool { + if userArg == "" { + return u.Uid == user.Uid + } + return u.Name == userArg || strconv.Itoa(u.Uid) == userArg + }) + if err != nil && passwd != nil { + if userArg == "" { + userArg = strconv.Itoa(user.Uid) + } + return nil, fmt.Errorf("Unable to find user %v: %v", userArg, err) + } + + haveUser := users != nil && len(users) > 0 + if haveUser { + // if we found any user entries that matched our filter, let's take the first one as "correct" + name = users[0].Name + user.Uid = users[0].Uid + user.Gid = users[0].Gid + user.Home = users[0].Home + } else if userArg != "" { + // we asked for a user but didn't find them... let's check to see if we wanted a numeric user + user.Uid, err = strconv.Atoi(userArg) + if err != nil { + // not numeric - we have to bail + return nil, fmt.Errorf("Unable to find user %v", userArg) + } + + // Must be inside valid uid range. + if user.Uid < minId || user.Uid > maxId { + return nil, ErrRange + } + + // if userArg couldn't be found in /etc/passwd but is numeric, just roll with it - this is legit + } + + if groupArg != "" || name != "" { + groups, err := ParseGroupFilter(group, func(g Group) bool { + // Explicit group format takes precedence. + if groupArg != "" { + return g.Name == groupArg || strconv.Itoa(g.Gid) == groupArg + } + + // Check if user is a member. + for _, u := range g.List { + if u == name { + return true + } + } + + return false + }) + if err != nil && group != nil { + return nil, fmt.Errorf("Unable to find groups for user %v: %v", users[0].Name, err) + } + + haveGroup := groups != nil && len(groups) > 0 + if groupArg != "" { + if haveGroup { + // if we found any group entries that matched our filter, let's take the first one as "correct" + user.Gid = groups[0].Gid + } else { + // we asked for a group but didn't find id... let's check to see if we wanted a numeric group + user.Gid, err = strconv.Atoi(groupArg) + if err != nil { + // not numeric - we have to bail + return nil, fmt.Errorf("Unable to find group %v", groupArg) + } + + // Ensure gid is inside gid range. + if user.Gid < minId || user.Gid > maxId { + return nil, ErrRange + } + + // if groupArg couldn't be found in /etc/group but is numeric, just roll with it - this is legit + } + } else if haveGroup { + // If implicit group format, fill supplementary gids. + user.Sgids = make([]int, len(groups)) + for i, group := range groups { + user.Sgids[i] = group.Gid + } + } + } + + return user, nil +} + +// GetAdditionalGroupsPath looks up a list of groups by name or group id +// against the group file. If a group name cannot be found, an error will be +// returned. If a group id cannot be found, it will be returned as-is. +func GetAdditionalGroupsPath(additionalGroups []string, groupPath string) ([]int, error) { + groupReader, err := os.Open(groupPath) + if err != nil { + return nil, fmt.Errorf("Failed to open group file: %v", err) + } + defer groupReader.Close() + + groups, err := ParseGroupFilter(groupReader, func(g Group) bool { + for _, ag := range additionalGroups { + if g.Name == ag || strconv.Itoa(g.Gid) == ag { + return true + } + } + return false + }) + if err != nil { + return nil, fmt.Errorf("Unable to find additional groups %v: %v", additionalGroups, err) + } + + gidMap := make(map[int]struct{}) + for _, ag := range additionalGroups { + var found bool + for _, g := range groups { + // if we found a matched group either by name or gid, take the + // first matched as correct + if g.Name == ag || strconv.Itoa(g.Gid) == ag { + if _, ok := gidMap[g.Gid]; !ok { + gidMap[g.Gid] = struct{}{} + found = true + break + } + } + } + // we asked for a group but didn't find it. let's check to see + // if we wanted a numeric group + if !found { + gid, err := strconv.Atoi(ag) + if err != nil { + return nil, fmt.Errorf("Unable to find group %s", ag) + } + // Ensure gid is inside gid range. + if gid < minId || gid > maxId { + return nil, ErrRange + } + gidMap[gid] = struct{}{} + } + } + gids := []int{} + for gid := range gidMap { + gids = append(gids, gid) + } + return gids, nil +} diff --git a/vendor/modules.txt b/vendor/modules.txt index 804bc58b..feab0cbc 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -37,13 +37,16 @@ github.com/docker/cli/cli/config/types # github.com/docker/distribution v2.7.1+incompatible ## explicit github.com/docker/distribution/registry/client/auth/challenge -# github.com/docker/docker v1.4.2-0.20200203170920-46ec8731fbce +# github.com/docker/docker v1.6.1 ## explicit github.com/docker/docker/pkg/homedir # github.com/docker/docker-credential-helpers v0.6.3 ## explicit github.com/docker/docker-credential-helpers/client github.com/docker/docker-credential-helpers/credentials +# github.com/docker/libcontainer v2.2.1+incompatible +## explicit +github.com/docker/libcontainer/user # github.com/drone/envsubst v1.0.2 ## explicit github.com/drone/envsubst