commit 868f438f146726de3f01981dec7da74df16ca0c8 Author: Lokesh Mandvekar <l...@redhat.com> Date: Thu Feb 6 10:57:33 2014 -0500
upstream bump to v0.8.0 BZ1062177 Signed-off-by: Lokesh Mandvekar <l...@redhat.com> devicemapper-discard-freespace.patch | 137 ------------------ docker-io.spec | 49 ++++--- docker.service | 13 -- ignore-btrfs-for-rhel6.patch | 256 ++++++++++++++++++++++++++++++++++ sources | 2 +- 5 files changed, 282 insertions(+), 175 deletions(-) --- diff --git a/docker-io.spec b/docker-io.spec index b7e73af..8d43bbc 100644 --- a/docker-io.spec +++ b/docker-io.spec @@ -9,26 +9,25 @@ %global debug_package %{nil} %global gopath %{_datadir}/gocode -%global commit bc3b2ec0622f50879ae96f042056b6bd2e0b4fba +%global commit cc3a8c8d8ec57e15b7b7316797132d770408ab1a %global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: docker-io -Version: 0.7.6 -Release: 4%{?dist} +Version: 0.8.0 +Release: 1%{?dist} Summary: Automates deployment of containerized applications License: ASL 2.0 -Patch0: devicemapper-discard-freespace.patch +Patch0: ignore-btrfs-for-rhel6.patch URL: http://www.docker.io # only x86_64 for now: https://github.com/dotcloud/docker/issues/136 ExclusiveArch: x86_64 Source0: https://github.com/dotcloud/docker/archive/v%{version}.tar.gz -Source1: docker.service # though final name for sysconf/sysvinit files is simply 'docker', # having .sysvinit and .sysconfig makes things clear -Source2: docker.sysconfig -Source3: docker.sysvinit -Source4: docker.1 +Source1: docker.sysconfig +Source2: docker.sysvinit +Source3: docker.1 BuildRequires: gcc BuildRequires: glibc-static # ensure build uses golang 1.2 and above @@ -40,6 +39,10 @@ BuildRequires: golang(code.google.com/p/go.net/websocket) BuildRequires: golang(code.google.com/p/gosqlite/sqlite3) BuildRequires: golang(github.com/syndtr/gocapability/capability) BuildRequires: device-mapper-devel +#btrfs not available for rhel6 +%if 0%{?fedora} || 0%{?rhel} > 7 +BuildRequires: btrfs-progs-devel +%endif %if %{with systemd} BuildRequires: pkgconfig(systemd) Requires: systemd-units @@ -76,9 +79,9 @@ servers, OpenStack clusters, public instances, or combinations of the above. %prep %setup -q -n docker-%{version} rm -rf vendor -# discard free space after deleting image -# https://bugzilla.redhat.com/show_bug.cgi?id=1055645 -%patch0 -p1 -b devicemapper-discard-freespace +%if 0%{?rhel} >= 6 && 0%{?rhel} < 7 +%patch0 -p1 -b ignore-btrfs-for-rhel6 +%endif %build mkdir _build @@ -86,6 +89,7 @@ mkdir _build pushd _build mkdir -p src/github.com/dotcloud ln -s $(dirs +1 -l) src/github.com/dotcloud/docker + popd export DOCKER_GITCOMMIT="%{shortcommit}/%{version}" @@ -102,17 +106,17 @@ install -d %{buildroot}%{_datadir}/zsh/site-functions install -d -m 700 %{buildroot}%{_sharedstatedir}/docker install -p -m 755 bundles/%{version}/dynbinary/docker-%{version} %{buildroot}%{_bindir}/docker install -p -m 755 bundles/%{version}/dynbinary/dockerinit-%{version} %{buildroot}%{_libexecdir}/docker/dockerinit -install -p -m 644 %{SOURCE4} %{buildroot}%{_mandir}/man1 +install -p -m 644 %{SOURCE3} %{buildroot}%{_mandir}/man1 install -p -m 644 contrib/completion/bash/docker %{buildroot}%{_sysconfdir}/bash_completion.d/docker.bash install -p -m 644 contrib/completion/zsh/_docker %{buildroot}%{_datadir}/zsh/site-functions %if %{with systemd} install -d %{buildroot}%{_unitdir} -install -p -m 644 %{SOURCE1} %{buildroot}%{_unitdir} +install -p -m 644 contrib/init/systemd/docker.service %{buildroot}%{_unitdir} %else install -d %{buildroot}%{_sysconfdir}/sysconfig/ -install -p -m 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/sysconfig/docker +install -p -m 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/sysconfig/docker install -d %{buildroot}%{_initddir} -install -p -m 755 %{SOURCE3} %{buildroot}%{_initddir}/docker +install -p -m 755 %{SOURCE2} %{buildroot}%{_initddir}/docker %endif install -d %{buildroot}%{_sysconfdir}/udev/rules.d install -p -m 755 contrib/udev/80-docker.rules %{buildroot}%{_sysconfdir}/udev/rules.d @@ -123,7 +127,7 @@ exit 0 %post %if %{with systemd} -%systemd_post %{SOURCE1} +%systemd_post docker %else # install but don't activate /sbin/chkconfig --add docker @@ -131,7 +135,7 @@ exit 0 %preun %if %{with systemd} -%systemd_preun %{SOURCE1} +%systemd_preun docker %else /sbin/service docker stop >/dev/null 2>&1 /sbin/chkconfig --del docker @@ -139,7 +143,7 @@ exit 0 %postun %if %{with systemd} -%systemd_postun_with_restart %{SOURCE1} +%systemd_postun_with_restart docker %else if [ "$1" -ge "1" ] ; then /sbin/service docker condrestart >/dev/null 2>&1 || : @@ -167,12 +171,9 @@ fi %{_sysconfdir}/udev/rules.d/80-docker.rules %changelog -* Wed Jan 22 2014 Lokesh Mandvekar <l...@redhat.com> - 0.7.6-4 -- correct typos in manpage - -* Wed Jan 22 2014 Lokesh Mandvekar <l...@redhat.com> - 0.7.6-3 -- install fedora customized manpage instead of upstream provided version -- get rid of python-sphinx* dependencies +* Wed Feb 05 2014 Lokesh Mandvekar <l...@redhat.com> - 0.8.0-1 +- upstream version bump +- don't use btrfs for rhel6 and clones (yet) * Mon Jan 20 2014 Lokesh Mandvekar <l...@redhat.com> - 0.7.6-2 - bridge-utils only for rhel < 7 diff --git a/ignore-btrfs-for-rhel6.patch b/ignore-btrfs-for-rhel6.patch new file mode 100644 index 0000000..5e8cfd5 --- /dev/null +++ b/ignore-btrfs-for-rhel6.patch @@ -0,0 +1,256 @@ +From 4502ce66c679c19d1e4c78eda417063ec87b0656 Mon Sep 17 00:00:00 2001 +From: Lokesh Mandvekar <l...@redhat.com> +Date: Wed, 5 Feb 2014 14:29:41 -0500 +Subject: [PATCH] ignore btrfs for rhel6 + +--- + graphdriver/btrfs/btrfs.go | 213 --------------------------------- + graphdriver/btrfs/dummy_unsupported.go | 3 - + runtime.go | 1 - + 3 files changed, 217 deletions(-) + delete mode 100644 graphdriver/btrfs/btrfs.go + delete mode 100644 graphdriver/btrfs/dummy_unsupported.go + +diff --git a/graphdriver/btrfs/btrfs.go b/graphdriver/btrfs/btrfs.go +deleted file mode 100644 +index 592e058..0000000 +--- a/graphdriver/btrfs/btrfs.go ++++ /dev/null +@@ -1,213 +0,0 @@ +-// +build linux,amd64 +- +-package btrfs +- +-/* +-#include <stdlib.h> +-#include <dirent.h> +-#include <btrfs/ioctl.h> +-*/ +-import "C" +- +-import ( +- "fmt" +- "github.com/dotcloud/docker/graphdriver" +- "os" +- "path" +- "syscall" +- "unsafe" +-) +- +-func init() { +- graphdriver.Register("btrfs", Init) +-} +- +-func Init(home string) (graphdriver.Driver, error) { +- rootdir := path.Dir(home) +- +- var buf syscall.Statfs_t +- if err := syscall.Statfs(rootdir, &buf); err != nil { +- return nil, err +- } +- +- if buf.Type != 0x9123683E { +- return nil, fmt.Errorf("%s is not a btrfs filesystem", rootdir) +- } +- +- return &Driver{ +- home: home, +- }, nil +-} +- +-type Driver struct { +- home string +-} +- +-func (d *Driver) String() string { +- return "btrfs" +-} +- +-func (d *Driver) Status() [][2]string { +- return nil +-} +- +-func (d *Driver) Cleanup() error { +- return nil +-} +- +-func free(p *C.char) { +- C.free(unsafe.Pointer(p)) +-} +- +-func openDir(path string) (*C.DIR, error) { +- Cpath := C.CString(path) +- defer free(Cpath) +- +- dir := C.opendir(Cpath) +- if dir == nil { +- return nil, fmt.Errorf("Can't open dir") +- } +- return dir, nil +-} +- +-func closeDir(dir *C.DIR) { +- if dir != nil { +- C.closedir(dir) +- } +-} +- +-func getDirFd(dir *C.DIR) uintptr { +- return uintptr(C.dirfd(dir)) +-} +- +-func subvolCreate(path, name string) error { +- dir, err := openDir(path) +- if err != nil { +- return err +- } +- defer closeDir(dir) +- +- var args C.struct_btrfs_ioctl_vol_args +- for i, c := range []byte(name) { +- args.name[i] = C.char(c) +- } +- +- _, _, errno := syscall.Syscall(syscall.SYS_IOCTL, getDirFd(dir), C.BTRFS_IOC_SUBVOL_CREATE, +- uintptr(unsafe.Pointer(&args))) +- if errno != 0 { +- return fmt.Errorf("Failed to create btrfs subvolume: %v", errno.Error()) +- } +- return nil +-} +- +-func subvolSnapshot(src, dest, name string) error { +- srcDir, err := openDir(src) +- if err != nil { +- return err +- } +- defer closeDir(srcDir) +- +- destDir, err := openDir(dest) +- if err != nil { +- return err +- } +- defer closeDir(destDir) +- +- var args C.struct_btrfs_ioctl_vol_args_v2 +- args.fd = C.__s64(getDirFd(srcDir)) +- for i, c := range []byte(name) { +- args.name[i] = C.char(c) +- } +- +- _, _, errno := syscall.Syscall(syscall.SYS_IOCTL, getDirFd(destDir), C.BTRFS_IOC_SNAP_CREATE_V2, +- uintptr(unsafe.Pointer(&args))) +- if errno != 0 { +- return fmt.Errorf("Failed to create btrfs snapshot: %v", errno.Error()) +- } +- return nil +-} +- +-func subvolDelete(path, name string) error { +- dir, err := openDir(path) +- if err != nil { +- return err +- } +- defer closeDir(dir) +- +- var args C.struct_btrfs_ioctl_vol_args +- for i, c := range []byte(name) { +- args.name[i] = C.char(c) +- } +- +- _, _, errno := syscall.Syscall(syscall.SYS_IOCTL, getDirFd(dir), C.BTRFS_IOC_SNAP_DESTROY, +- uintptr(unsafe.Pointer(&args))) +- if errno != 0 { +- return fmt.Errorf("Failed to destroy btrfs snapshot: %v", errno.Error()) +- } +- return nil +-} +- +-func (d *Driver) subvolumesDir() string { +- return path.Join(d.home, "subvolumes") +-} +- +-func (d *Driver) subvolumesDirId(id string) string { +- return path.Join(d.subvolumesDir(), id) +-} +- +-func (d *Driver) Create(id string, parent string) error { +- subvolumes := path.Join(d.home, "subvolumes") +- if err := os.MkdirAll(subvolumes, 0700); err != nil { +- return err +- } +- if parent == "" { +- if err := subvolCreate(subvolumes, id); err != nil { +- return err +- } +- } else { +- parentDir, err := d.Get(parent) +- if err != nil { +- return err +- } +- if err := subvolSnapshot(parentDir, subvolumes, id); err != nil { +- return err +- } +- } +- return nil +-} +- +-func (d *Driver) Remove(id string) error { +- dir := d.subvolumesDirId(id) +- if _, err := os.Stat(dir); err != nil { +- return err +- } +- if err := subvolDelete(d.subvolumesDir(), id); err != nil { +- return err +- } +- return os.RemoveAll(dir) +-} +- +-func (d *Driver) Get(id string) (string, error) { +- dir := d.subvolumesDirId(id) +- st, err := os.Stat(dir) +- if err != nil { +- return "", err +- } +- +- if !st.IsDir() { +- return "", fmt.Errorf("%s: not a directory", dir) +- } +- +- return dir, nil +-} +- +-func (d *Driver) Put(id string) { +- // Get() creates no runtime resources (like e.g. mounts) +- // so this doesn't need to do anything. +-} +- +-func (d *Driver) Exists(id string) bool { +- dir := d.subvolumesDirId(id) +- _, err := os.Stat(dir) +- return err == nil +-} +diff --git a/graphdriver/btrfs/dummy_unsupported.go b/graphdriver/btrfs/dummy_unsupported.go +deleted file mode 100644 +index 6c44615..0000000 +--- a/graphdriver/btrfs/dummy_unsupported.go ++++ /dev/null +@@ -1,3 +0,0 @@ +-// +build !linux !amd64 +- +-package btrfs +diff --git a/runtime.go b/runtime.go +index 7e4ae79..b8f315d 100644 +--- a/runtime.go ++++ b/runtime.go +@@ -10,7 +10,6 @@ import ( + "github.com/dotcloud/docker/execdriver/lxc" + "github.com/dotcloud/docker/graphdriver" + "github.com/dotcloud/docker/graphdriver/aufs" +- _ "github.com/dotcloud/docker/graphdriver/btrfs" + _ "github.com/dotcloud/docker/graphdriver/devmapper" + _ "github.com/dotcloud/docker/graphdriver/vfs" + _ "github.com/dotcloud/docker/networkdriver/lxc" +-- +1.8.5.3 + diff --git a/sources b/sources index 8b111eb..4c76ff3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -4c189bce50dac608d0ab7d24f132a889 v0.7.6.tar.gz +737aec190c2ad81b00192f858f9ed31b v0.8.0.tar.gz _______________________________________________ golang mailing list golang@lists.fedoraproject.org https://lists.fedoraproject.org/mailman/listinfo/golang