diff --git a/_service b/_service
index f1548d0..839d8c8 100644
--- a/_service
+++ b/_service
@@ -3,8 +3,8 @@
     <param name="url">https://github.com/docker/docker.git</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="versionformat">1.8.3</param>
-    <param name="revision">v1.8.3</param>
+    <param name="versionformat">1.9.0</param>
+    <param name="revision">v1.9.0</param>
   </service>
   <service name="recompress" mode="disabled">
     <param name="file">docker-*.tar</param>
diff --git a/docker-1.8.3.tar.xz b/docker-1.8.3.tar.xz
deleted file mode 100644
index 6a50d88..0000000
--- a/docker-1.8.3.tar.xz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:1bfb9c73593f63508a325f88b4ca1d59a2802784e856f54abe292b2f087b6292
-size 6242212
diff --git a/docker-1.9.0.tar.xz b/docker-1.9.0.tar.xz
new file mode 100644
index 0000000..770fe49
--- /dev/null
+++ b/docker-1.9.0.tar.xz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:092f90afb5a677bbe607d7de5543a0e851efa7fd025a658d688273fea8c83c27
+size 6273536
diff --git a/docker.changes b/docker.changes
index ca9aa3b..22993e6 100644
--- a/docker.changes
+++ b/docker.changes
@@ -1,3 +1,93 @@
+-------------------------------------------------------------------
+Fri Nov 13 16:58:43 UTC 2015 - fcastelli@suse.com
+
+- Update to version 1.9.0 (bnc#954812):
+  * Runtime:
+    - `docker stats` now returns block IO metrics (#15005)
+    - `docker stats` now details network stats per interface (#15786)
+    - Add `ancestor=<image>` filter to `docker ps --filter` flag to filter
+      containers based on their ancestor images (#14570)
+    - Add `label=<somelabel>` filter to `docker ps --filter` to filter containers
+      based on label (#16530)
+    - Add `--kernel-memory` flag to `docker run` (#14006)
+    - Add `--message` flag to `docker import` allowing to specify an optional
+      message (#15711)
+    - Add `--privileged` flag to `docker exec` (#14113)
+    - Add `--stop-signal` flag to `docker run` allowing to replace the container
+      process stopping signal (#15307)
+    - Add a new `unless-stopped` restart policy (#15348)
+    - Inspecting an image now returns tags (#13185)
+    - Add container size information to `docker inspect` (#15796)
+    - Add `RepoTags` and `RepoDigests` field to `/images/{name:.*}/json` (#17275)
+    - Remove the deprecated `/container/ps` endpoint from the API (#15972)
+    - Send and document correct HTTP codes for `/exec/<name>/start` (#16250)
+    - Share shm and mqueue between containers sharing IPC namespace (#15862)
+    - Event stream now shows OOM status when `--oom-kill-disable` is set (#16235)
+    - Ensure special network files (/etc/hosts etc.) are read-only if bind-mounted
+      with `ro` option (#14965)
+    - Improve `rmi` performance (#16890)
+    - Do not update /etc/hosts for the default bridge network, except for links (#17325)
+    - Fix conflict with duplicate container names (#17389)
+    - Fix an issue with incorrect template execution in `docker inspect` (#17284)
+    - DEPRECATE `-c` short flag variant for `--cpu-shares` in docker run (#16271)
+  * Client:
+    - Allow `docker import` to import from local files (#11907)
+  * Builder:
+    - Add a `STOPSIGNAL` Dockerfile instruction allowing to set a different
+      stop-signal for the container process (#15307)
+    - Add an `ARG` Dockerfile instruction and a `--build-arg` flag to `docker build`
+      that allows to add build-time environment variables (#15182)
+    - Improve cache miss performance (#16890)
+  * Storage:
+    - devicemapper: Implement deferred deletion capability (#16381)
+  * Networking:
+    - `docker network` exits experimental and is part of standard release (#16645)
+    - New network top-level concept, with associated subcommands and API (#16645)
+      WARNING: the API is different from the experimental API
+    - Support for multiple isolated/micro-segmented networks (#16645)
+    - Built-in multihost networking using VXLAN based overlay driver (#14071)
+    - Support for third-party network plugins (#13424)
+    - Ability to dynamically connect containers to multiple networks (#16645)
+    - Support for user-defined IP address management via pluggable IPAM drivers (#16910)
+    - Add daemon flags `--cluster-store` and `--cluster-advertise` for built-in nodes discovery (#16229)
+    - Add `--cluster-store-opt` for setting up TLS settings (#16644)
+    - Add `--dns-opt` to the daemon (#16031)
+    - DEPRECATE following container `NetworkSettings` fields in API v1.21: `EndpointID`, `Gateway`,
+      `GlobalIPv6Address`, `GlobalIPv6PrefixLen`, `IPAddress`, `IPPrefixLen`, `IPv6Gateway` and `MacAddress`.
+      Those are now specific to the `bridge` network. Use `NetworkSettings.Networks` to inspect
+      the networking settings of a container per network.
+  * Volumes:
+    - New top-level `volume` subcommand and API (#14242)
+    - Move API volume driver settings to host-specific config (#15798)
+    - Print an error message if volume name is not unique (#16009)
+    - Ensure volumes created from Dockerfiles always use the local volume driver
+      (#15507)
+    - DEPRECATE auto-creating missing host paths for bind mounts (#16349)
+  * Logging:
+    - Add `awslogs` logging driver for Amazon CloudWatch (#15495)
+    - Add generic `tag` log option to allow customizing container/image
+      information passed to driver (e.g. show container names) (#15384)
+    - Implement the `docker logs` endpoint for the journald driver (#13707)
+    - DEPRECATE driver-specific log tags (e.g. `syslog-tag`, etc.) (#15384)
+  * Distribution:
+    - `docker search` now works with partial names (#16509)
+    - Push optimization: avoid buffering to file (#15493)
+    - The daemon will display progress for images that were already being pulled
+      by another client (#15489)
+    - Only permissions required for the current action being performed are requested (#)
+    - Renaming trust keys (and respective environment variables) from `offline` to
+      `root` and `tagging` to `repository` (#16894)
+    - DEPRECATE trust key environment variables
+      `DOCKER_CONTENT_TRUST_OFFLINE_PASSPHRASE` and
+      `DOCKER_CONTENT_TRUST_TAGGING_PASSPHRASE` (#16894)
+  * Security:
+    - Add SELinux profiles to the rpm package (#15832)
+    - Fix various issues with AppArmor profiles provided in the deb package
+      (#14609)
+    - Add AppArmor policy that prevents writing to /proc (#15571)
+- Remove fix_15279.patch: code has been merged upstream
+- Change systemd unit file to no longer use the deprecated "-d" option (bnc#954737)
+
 -------------------------------------------------------------------
 Mon Oct 26 14:02:47 UTC 2015 - normand@linux.vnet.ibm.com
 
diff --git a/docker.service b/docker.service
index 14ad99a..013ea44 100644
--- a/docker.service
+++ b/docker.service
@@ -6,7 +6,7 @@ Requires=docker.socket
 
 [Service]
 EnvironmentFile=/etc/sysconfig/docker
-ExecStart=/usr/bin/docker -d -H fd:// $DOCKER_OPTS
+ExecStart=/usr/bin/docker daemon -H fd:// $DOCKER_OPTS
 MountFlags=slave
 LimitNOFILE=1048576
 LimitNPROC=1048576
diff --git a/docker.spec b/docker.spec
index cd9b09b..fdacb90 100644
--- a/docker.spec
+++ b/docker.spec
@@ -16,10 +16,10 @@
 #
 
 
-%define git_version f4bf5c7
+%define git_version 76d6bc9
 %define go_arches %ix86 x86_64
 Name:           docker
-Version:        1.8.3
+Version:        1.9.0
 Release:        0
 Summary:        The Linux container runtime
 License:        Apache-2.0
@@ -43,7 +43,6 @@ Source100:      sysconfig.docker.ppc64le
 Patch0:         fix-docker-init.patch
 # PATCH-FIX-OPENSUSE libcontainer-apparmor-fixes.patch -- mount rules aren't supported in our apparmor
 Patch1:         libcontainer-apparmor-fixes.patch
-Patch2:         fix_15279.patch
 # Required to overcome some limitations of gcc-go: https://groups.google.com/forum/#!msg/golang-nuts/SlGCPYkjxo4/4DjcjXRCqAkJ
 # Right now docker passes the sha1sum of the dockerinit binary to the docker binary at build time
 # We cannot do that, right now a quick and really dirty way to get it running is
@@ -143,7 +142,6 @@ Test package for docker. It contains the source code and the tests.
 %setup -q -n docker-%{version}
 %patch0 -p1
 %patch1 -p1
-%patch2 -p1
 %ifnarch %go_arches
 %patch100 -p1
 %patch101 -p0
diff --git a/fix_15279.patch b/fix_15279.patch
deleted file mode 100644
index 38ab3dc..0000000
--- a/fix_15279.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-diff -Naur a/daemon/graphdriver/devmapper/deviceset.go b/daemon/graphdriver/devmapper/deviceset.go
---- a/daemon/graphdriver/devmapper/deviceset.go	2015-09-10 20:43:43.000000000 +0200
-+++ b/daemon/graphdriver/devmapper/deviceset.go	2015-09-11 00:27:54.818876198 +0200
-@@ -1482,12 +1482,16 @@
- 	if err != nil {
- 		return err
- 	}
--	if d, err := devicemapper.GetDeps(devname); err == nil {
--		// Access to more Debug output
--		logrus.Debugf("[devmapper] devicemapper.GetDeps() %s: %#v", devname, d)
-+
-+	if devinfo.Exists == 0 {
-+		return nil
-+	}
-+	if err := devicemapper.RemoveDevice(devname); err != nil {
-+		return err
- 	}
--	if devinfo.Exists != 0 {
--		return devicemapper.RemoveDevice(devname)
-+
-+	if d, err := devicemapper.GetDeps(devname); err == nil {
-+		logrus.Warnf("[devmapper] device %s still has %d active dependents", devname, d.Count)
- 	}
- 
- 	return nil
-diff -Naur a/pkg/devicemapper/devmapper_wrapper.go b/pkg/devicemapper/devmapper_wrapper.go
---- a/pkg/devicemapper/devmapper_wrapper.go	2015-09-10 20:43:43.000000000 +0200
-+++ b/pkg/devicemapper/devmapper_wrapper.go	2015-09-11 00:27:54.819876198 +0200
-@@ -38,7 +38,10 @@
- */
- import "C"
- 
--import "unsafe"
-+import (
-+	"reflect"
-+	"unsafe"
-+)
- 
- type (
- 	CDmTask C.struct_dm_task
-@@ -184,12 +187,21 @@
- 	if Cdeps == nil {
- 		return nil
- 	}
-+
-+	// golang issue: https://github.com/golang/go/issues/11925
-+	hdr := reflect.SliceHeader{
-+		Data: uintptr(unsafe.Pointer(uintptr(unsafe.Pointer(Cdeps)) + unsafe.Sizeof(*Cdeps))),
-+		Len:  int(Cdeps.count),
-+		Cap:  int(Cdeps.count),
-+	}
-+	devices := *(*[]C.uint64_t)(unsafe.Pointer(&hdr))
-+
- 	deps := &Deps{
- 		Count:  uint32(Cdeps.count),
- 		Filler: uint32(Cdeps.filler),
- 	}
--	for _, device := range Cdeps.device {
--		deps.Device = append(deps.Device, (uint64)(device))
-+	for _, device := range devices {
-+		deps.Device = append(deps.Device, uint64(device))
- 	}
- 	return deps
- }