summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorLi Wei2017-11-21 18:55:15 +0800
committerLi Wei2017-11-21 18:55:15 +0800
commit4e93c001584a20a27971bbb03d7da20893ed85e7 (patch)
treed20e3d968f8fe674e209b83f75ef1633d9e52c4c
downloadaur-4e93c001584a20a27971bbb03d7da20893ed85e7.tar.gz
initial commit
Signed-off-by: Li Wei <liwei@anbutu.com>
-rw-r--r--.SRCINFO27
-rw-r--r--PKGBUILD55
-rw-r--r--btrfs-progs-4.5.diff27
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)))