diff options
author | Li Wei | 2017-11-21 18:55:15 +0800 |
---|---|---|
committer | Li Wei | 2017-11-21 18:55:15 +0800 |
commit | 4e93c001584a20a27971bbb03d7da20893ed85e7 (patch) | |
tree | d20e3d968f8fe674e209b83f75ef1633d9e52c4c | |
download | aur-hyperd-git.tar.gz |
initial commit
Signed-off-by: Li Wei <liwei@anbutu.com>
-rw-r--r-- | .SRCINFO | 27 | ||||
-rw-r--r-- | PKGBUILD | 55 | ||||
-rw-r--r-- | btrfs-progs-4.5.diff | 27 |
3 files changed, 109 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..aab6696fd122 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,27 @@ +pkgbase = hyperd-git + pkgdesc = HyperContainer Daemon + pkgver = v1.0.0.r5.f2baf06 + pkgrel = 1 + url = https://github.com/hyperhq/hyperd + arch = i686 + arch = x86_64 + license = Apache + makedepends = git + makedepends = go + makedepends = device-mapper + makedepends = sqlite3 + makedepends = libvirt + makedepends = btrfs-progs + depends = libvirt + optdepends = hyperstart: boot files for hyperd instances + provides = hyperd + conflicts = hyperd + options = !strip + options = !emptydirs + source = hyperd::git+https://github.com/hyperhq/hyperd.git + source = btrfs-progs-4.5.diff + md5sums = SKIP + md5sums = 4858adb29a450c9e5775e4cae875fae7 + +pkgname = hyperd-git + diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..832f60f37e3d --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,55 @@ +# Maintainer: Wei Li <liwei@anbutu.com> +pkgname=hyperd-git +pkgver=v1.0.0.r5.f2baf06 +pkgrel=1 +pkgdesc="HyperContainer Daemon" +arch=('i686' 'x86_64') +url="https://github.com/hyperhq/hyperd" +license=('Apache') +depends=('libvirt') +makedepends=('git' 'go' 'device-mapper' 'sqlite3' 'libvirt' 'btrfs-progs') +optdepends=('hyperstart: boot files for hyperd instances') +provides=("${pkgname%-git}") +conflicts=("${pkgname%-git}") +options=('!strip' '!emptydirs') +source=("${pkgname%-git}::git+${url}.git" + 'btrfs-progs-4.5.diff') +md5sums=('SKIP' + '4858adb29a450c9e5775e4cae875fae7') + +pkgver() { + cd "$srcdir/${pkgname%-git}" + printf "%s" "$(git describe --tags --long | sed 's/\([^-]*-\)g/r\1/;s/-/./g')" +} + +prepare() { + cd "$srcdir/${pkgname%-git}" + # https://github.com/hyperhq/hyperd/issues/643 + # https://github.com/moby/moby/commit/a038cccf88998814249a7a40b71a33a680e3f02f + patch -Np0 -i "$srcdir/btrfs-progs-4.5.diff" +} + +build() { + cd "$srcdir/${pkgname%-git}" + local _srcpath="src/github.com/hyperhq/" + export GOPATH="${srcdir}" + install -d "$GOPATH/$_srcpath" + ln -sf "$(pwd)" "$GOPATH/$_srcpath/hyperd" + cd "$GOPATH/$_srcpath/hyperd" + + ./autogen.sh + ./configure --prefix=/usr + make +} + +package() { + cd "$srcdir/${pkgname%-git}" + install -D cmd/hyperctl/hyperctl "${pkgdir}/usr/bin/hyperctl" + install cmd/hyperd/hyperd "${pkgdir}/usr/bin/hyperd" + install cmd/vmlogd/vmlogd "${pkgdir}/usr/bin/vmlogd" + install -D -m644 package/dist/etc/hyper/config "${pkgdir}/etc/hyper/config" + install -D -m644 package/dist/lib/systemd/system/hyperd.service \ + "${pkgdir}/usr/lib/systemd/system/hyperd.service" + install -m644 package/dist/lib/systemd/system/hyper-vmlogd.service \ + "${pkgdir}/usr/lib/systemd/system/hyper-vmlogd.service" +} diff --git a/btrfs-progs-4.5.diff b/btrfs-progs-4.5.diff new file mode 100644 index 000000000000..103ab26dfa41 --- /dev/null +++ b/btrfs-progs-4.5.diff @@ -0,0 +1,27 @@ ++++ vendor/github.com/docker/docker/daemon/graphdriver/btrfs/btrfs.go +--- vendor/github.com/docker/docker/daemon/graphdriver/btrfs/btrfs.go +@@ -7,6 +7,10 @@ package btrfs + #include <dirent.h> + #include <btrfs/ioctl.h> + #include <btrfs/ctree.h> ++ ++static void set_name_btrfs_ioctl_vol_args_v2(struct btrfs_ioctl_vol_args_v2* btrfs_struct, const char* value) { ++ snprintf(btrfs_struct->name, BTRFS_SUBVOL_NAME_MAX, "%s", value); ++} + */ + import "C" + +@@ -159,9 +163,10 @@ func subvolSnapshot(src, dest, name string) error { + + 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) +- } ++ ++ var cs = C.CString(name) ++ C.set_name_btrfs_ioctl_vol_args_v2(&args, cs) ++ C.free(unsafe.Pointer(cs)) + + _, _, errno := syscall.Syscall(syscall.SYS_IOCTL, getDirFd(destDir), C.BTRFS_IOC_SNAP_CREATE_V2, + uintptr(unsafe.Pointer(&args))) |