Bug 1055712

Summary: Review Request: docker - Automates deployment of containerized applications
Product: [Fedora] Fedora Reporter: Lokesh Mandvekar <lsm5>
Component: Package ReviewAssignee: Jan Chaloupka <jchaloup>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: admiller, dwalsh, gbailey, golang-updates, lemenkov, lsm5, lwang, mattdm, mgoldman, ohadlevy, package-review, pahan, panemade, sct, vbatts
Target Milestone: ---Flags: jchaloup: fedora-review+
gwync: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: docker-1.5.0-25.git5ebfacd.fc22 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-03-29 05:04:11 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1111916, 1114175, 1117562, 1118880    
Bug Blocks:    
Attachments:
Description Flags
docker systemd unit file
none
patch for docs generation on el6+
none
init script (for el6) none

Description Lokesh Mandvekar 2014-01-20 19:37:02 UTC
Things to note:
1. This is docker-io renamed to docker.
2. This will go into non-EPEL fedora starting with f22 https://fedorahosted.org/fpc/ticket/341. 
3. This will tentatively go into EPEL with EPEL7 asap (and EPEL6 sometime after the previous docker package is retired)
4. https://bugzilla.redhat.com/show_bug.cgi?id=1043676


Spec URL: http://lsm5.fedorapeople.org/docker/SOURCES/docker.spec
SRPM URL: http://lsm5.fedorapeople.org/docker/SRPMS/docker-0.7.6-3.fc21.src.rpm

Description:
Docker is an open-source engine that automates the deployment of any
application as a lightweight, portable, self-sufficient container that will
run virtually anywhere.

Docker containers can encapsulate any payload, and will run consistently on
and between virtually any server. The same container that a developer builds
and tests on a laptop will run at scale, in production*, on VMs, bare-metal
servers, OpenStack clusters, public instances, or combinations of the above.


Fedora Account System Username: lsm5

koji: http://koji.fedoraproject.org/koji/taskinfo?taskID=6430852 (currently for rawhide, epel7 scratch builds won't succeed until https://bugzilla.redhat.com/show_bug.cgi?id=1055684 is taken care of)

Comment 1 Lokesh Mandvekar 2014-01-20 19:46:25 UTC
Created attachment 852824 [details]
docker systemd unit file

Comment 2 Lokesh Mandvekar 2014-01-20 20:17:13 UTC
Created attachment 852837 [details]
patch for docs generation on el6+

Comment 3 Lokesh Mandvekar 2014-01-20 20:18:35 UTC
Created attachment 852838 [details]
init script (for el6)

Comment 5 Lokesh Mandvekar 2014-07-11 17:37:49 UTC
Matt, perhaps we should get this going? rawhide seems to have just made the switch to 22.

Comment 6 Matthew Miller 2014-07-11 19:20:46 UTC
Lokesh -- funny, yes... I was just independently thinking the same thing. First blocker is #1118880

Comment 7 Matthew Miller 2014-07-11 19:21:41 UTC
Let's make that clickable! Bug #1118880

Comment 8 Lokesh Mandvekar 2014-07-11 20:30:31 UTC
Some more golang-* package review blockers added

Comment 9 Lokesh Mandvekar 2014-11-10 15:23:11 UTC
Matt: ping, would you like to go ahead with Bug 1118880, so that we can get this one going too?

Comment 10 Lokesh Mandvekar 2014-11-25 19:18:40 UTC
Spec URL: https://lsm5.fedorapeople.org/docker/docker.spec
SRPM URL: https://lsm5.fedorapeople.org/docker/SRPMS/docker-1.3.2-2.fc22.src.rpm

Other files:
unitfile: https://lsm5.fedorapeople.org/docker/docker.service
extra options: https://lsm5.fedorapeople.org/docker/docker.sysconfig
storage options: https://lsm5.fedorapeople.org/docker/docker-storage.sysconfig

koji: http://koji.fedoraproject.org/koji/taskinfo?taskID=8230597

The libcontainer dep is a little messed up, so I've used the version from within the vendor dir. Also, there's a cyclic dep docker -> libcontainer -> docker-pkg-devel (from docker), so whenever things get messy I've been using the vendor/ dir itself. (The cyclic dep is because of the upstream repos depending on each other.)

Comment 11 Lokesh Mandvekar 2015-03-04 17:59:23 UTC
Spec URL: https://github.com/lsm5/docker-rpm/blob/master/docker.spec

Let's use github for this review :)

Comment 12 Lokesh Mandvekar 2015-03-04 18:00:38 UTC
also, see https://github.com/lsm5/docker-rpm for other files used

Comment 13 Jan Chaloupka 2015-03-13 12:20:26 UTC
Looking at Provides of devel subpackage, do we have to provide old docker-io-... as well? docker-devel and docker-pkg-devel should be sufficient for f22. 

The same for other subpackages: fish-completion provides docker-io-fish-completion.

Or is this because of upgrade path from f21 to f22? In this case spec file is fine.

Summary:
- wmdocker is already renamed
- wmdocker for f22 and higher no longer obsoletes docker
- docker repository for master branch (f22 in this case) is dead.package so we can reuse the branch and create master (f23) for this docker
- building docker from vendored source codes is fine as it needs update of github.com/coreos/libcontainer and 1.4.0 version is not back-compatible with 1.2.0 (see [1])
- license is correct (ASL 2.0)
- provider, provider_tld, project, repo, import_path, commit macros presented
- devel subpackage is missing some BuildRequires but as it is built from vendored source codes and there is a cyclic dependency on libcontainer, this is not an issue



[1] Api check of libcontainer-1.2.0 and libcontainer-1.4.0 (incompatible changes):
$ gofed apidiff libcontainer-1.2.0 libcontainer-1.4.0 -c
Package: .
	-interface Container removed methods: Path
	-identifiers differ in type: error != Error
	-identifiers differ in type: error != Error
	-identifiers differ in type: error != Error
	-identifiers differ in type: error != Error
	-identifiers differ in type: error != Error
	-identifiers differ in type: error != Error
	-identifiers differ in type: error != Error
	-identifiers differ in type: error != Error
	-identifiers differ in type: error != Error
Package: cgroups
	-ActiveCgroup type removed
	-struct CpuUsage: CurrentUsage field removed
	-struct CpuUsage: PercentUsage field removed
Package: cgroups/fs
	-Paths func removed
	-Cleanup func removed
	-type differs: pointer != map
	-type differs: selector != map
Package: cgroups/systemd
	-Paths func removed
	-Cleanup func removed
	-GetStats func removed
	-type differs: selector != map
Package: mount
	-Mounts type removed
	-OfType func removed
Package: namespaces
	-function CreateCommand: parameter count changed: 7 -> 6
	-Selector differs in selector: syncpipe != os, at function: Init
	-Selector differs in expression: SyncPipe != File, at function: Init
	-function DefaultCreateCommand: parameter count changed: 7 -> 6
	-function Exec: parameter count changed: 10 -> 9
	-function InitializeNetworking: parameter count changed: 4 -> 3
	-type differs: selector != map
Package: netlink
	-function NetworkCreateVethPair: parameter count changed: 2 -> 3
Package: network
	-function CreateVethPair: parameter count changed: 2 -> 3
Package: user
	-GetUserGroupSupplementaryHome func removed
	-function ParsePasswd: parameter count changed: 0 -> 1
	-function ParsePasswdFilter: parameter count changed: 1 -> 2
	-function ParseGroupFilter: parameter count changed: 1 -> 2
	-function ParseGroup: parameter count changed: 0 -> 1

Comment 14 Lokesh Mandvekar 2015-03-13 14:54:35 UTC
(In reply to Jan Chaloupka from comment #13)
> Looking at Provides of devel subpackage, do we have to provide old
> docker-io-... as well? docker-devel and docker-pkg-devel should be
> sufficient for f22. 
> 
> The same for other subpackages: fish-completion provides
> docker-io-fish-completion.
> 
> Or is this because of upgrade path from f21 to f22? In this case spec file
> is fine.

yup: http://pkgs.fedoraproject.org/cgit/docker-io.git/tree/docker-io.spec#n55 . I'll include that comment in the spec file here too.

Also, RE: https://fedorahosted.org/fpc/ticket/341#comment:15 if this package is approved, we need to check with infrastructure before doing a new SCM request.


> Summary:
> - wmdocker is already renamed
> - wmdocker for f22 and higher no longer obsoletes docker
> - docker repository for master branch (f22 in this case) is dead.package so
> we can reuse the branch and create master (f23) for this docker
> - building docker from vendored source codes is fine as it needs update of
> github.com/coreos/libcontainer and 1.4.0 version is not back-compatible with
> 1.2.0 (see [1])
> - license is correct (ASL 2.0)
> - provider, provider_tld, project, repo, import_path, commit macros presented
> - devel subpackage is missing some BuildRequires but as it is built from
> vendored source codes and there is a cyclic dependency on libcontainer, this
> is not an issue
> 
> 
> 
> [1] Api check of libcontainer-1.2.0 and libcontainer-1.4.0 (incompatible
> changes):
> $ gofed apidiff libcontainer-1.2.0 libcontainer-1.4.0 -c
> Package: .
> 	-interface Container removed methods: Path
> 	-identifiers differ in type: error != Error
> 	-identifiers differ in type: error != Error
> 	-identifiers differ in type: error != Error
> 	-identifiers differ in type: error != Error
> 	-identifiers differ in type: error != Error
> 	-identifiers differ in type: error != Error
> 	-identifiers differ in type: error != Error
> 	-identifiers differ in type: error != Error
> 	-identifiers differ in type: error != Error
> Package: cgroups
> 	-ActiveCgroup type removed
> 	-struct CpuUsage: CurrentUsage field removed
> 	-struct CpuUsage: PercentUsage field removed
> Package: cgroups/fs
> 	-Paths func removed
> 	-Cleanup func removed
> 	-type differs: pointer != map
> 	-type differs: selector != map
> Package: cgroups/systemd
> 	-Paths func removed
> 	-Cleanup func removed
> 	-GetStats func removed
> 	-type differs: selector != map
> Package: mount
> 	-Mounts type removed
> 	-OfType func removed
> Package: namespaces
> 	-function CreateCommand: parameter count changed: 7 -> 6
> 	-Selector differs in selector: syncpipe != os, at function: Init
> 	-Selector differs in expression: SyncPipe != File, at function: Init
> 	-function DefaultCreateCommand: parameter count changed: 7 -> 6
> 	-function Exec: parameter count changed: 10 -> 9
> 	-function InitializeNetworking: parameter count changed: 4 -> 3
> 	-type differs: selector != map
> Package: netlink
> 	-function NetworkCreateVethPair: parameter count changed: 2 -> 3
> Package: network
> 	-function CreateVethPair: parameter count changed: 2 -> 3
> Package: user
> 	-GetUserGroupSupplementaryHome func removed
> 	-function ParsePasswd: parameter count changed: 0 -> 1
> 	-function ParsePasswdFilter: parameter count changed: 1 -> 2
> 	-function ParseGroupFilter: parameter count changed: 1 -> 2
> 	-function ParseGroup: parameter count changed: 0 -> 1

apicheck rocks!!

Thanks!

Comment 15 Jan Chaloupka 2015-03-13 15:15:27 UTC
In that case, the spec file can be approved.

Comment 16 Lokesh Mandvekar 2015-03-20 18:57:15 UTC
Package Change Request
======================
Package Name: docker
New Branches: f22
Owners: lsm5
InitialCC: golang-sig


The already existing 'docker' in dist-git used to be a windowmanager traying app (or something) and it's now been renamed to 'wmdocker', while docker-io will be renamed to 'docker' starting with fedora 22. http://pkgs.fedoraproject.org/cgit/docker.git/ will have f22 and later branches contain the container specific stuff, while f20 and prior branches will continue to have the older wm docker stuff. See: https://fedorahosted.org/fedora-infrastructure/ticket/4691

Comment 17 Lokesh Mandvekar 2015-03-20 19:04:59 UTC
Package Change Request
======================
Package Name: docker
Short Description: Automates deployment of containerized applications
New Branches: f22
Owners: lsm5
InitialCC: golang-sig


(added "Short Description:" field, I hope this doesn't collide with the prior description)

Comment 18 Gwyn Ciesla 2015-03-20 19:31:50 UTC
Git done (by process-git-requests).

Actually that will be ignored, you probably need to have rel-eng fix it.

Comment 19 Fedora Update System 2015-03-24 16:18:22 UTC
docker-1.5.0-24.git5ebfacd.fc22 has been submitted as an update for Fedora 22.
https://admin.fedoraproject.org/updates/docker-1.5.0-24.git5ebfacd.fc22

Comment 20 Fedora Update System 2015-03-26 16:56:20 UTC
docker-1.5.0-25.git5ebfacd.fc22 has been submitted as an update for Fedora 22.
https://admin.fedoraproject.org/updates/docker-1.5.0-25.git5ebfacd.fc22

Comment 21 Fedora Update System 2015-03-26 21:50:48 UTC
Package docker-1.5.0-24.git5ebfacd.fc22:
* should fix your issue,
* was pushed to the Fedora 22 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing docker-1.5.0-24.git5ebfacd.fc22'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2015-4619/docker-1.5.0-24.git5ebfacd.fc22
then log in and leave karma (feedback).

Comment 22 Fedora Update System 2015-03-29 05:04:11 UTC
docker-1.5.0-25.git5ebfacd.fc22 has been pushed to the Fedora 22 stable repository.  If problems still persist, please make note of it in this bug report.