aboutsummaryrefslogtreecommitdiffstats
path: root/unmaintained/xnbd
diff options
context:
space:
mode:
Diffstat (limited to 'unmaintained/xnbd')
-rw-r--r--unmaintained/xnbd/APKBUILD63
-rw-r--r--unmaintained/xnbd/fix-cblocksize.patch42
-rw-r--r--unmaintained/xnbd/remove-pagesize.patch29
-rw-r--r--unmaintained/xnbd/remove-sys_siglist.patch35
4 files changed, 169 insertions, 0 deletions
diff --git a/unmaintained/xnbd/APKBUILD b/unmaintained/xnbd/APKBUILD
new file mode 100644
index 0000000000..fb064dd337
--- /dev/null
+++ b/unmaintained/xnbd/APKBUILD
@@ -0,0 +1,63 @@
+# Contributor: Carlo Landmeter <clandmeter@gmail.com>
+# Maintainer:
+pkgname=xnbd
+pkgver=0.3.0
+pkgrel=0
+pkgdesc="NBD server program enabling live block device migration over wide-area networks"
+url="https://bitbucket.org/hirofuchi/xnbd/wiki/Home"
+arch="all"
+license="GPL-2"
+depends=""
+depends_dev=""
+makedepends="$depends_dev glib-dev automake autoconf libtool linux-headers"
+install=""
+subpackages="$pkgname-dev $pkgname-doc"
+source="https://bitbucket.org/hirofuchi/xnbd/downloads/xnbd-$pkgver.tar.bz2
+ remove-pagesize.patch
+ fix-cblocksize.patch
+ remove-sys_siglist.patch"
+
+_builddir="$srcdir"/xnbd-$pkgver
+prepare() {
+ local i
+ cd "$_builddir"
+ for i in $source; do
+ case $i in
+ *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
+ esac
+ done
+ #update_config_sub || return 1
+}
+
+build() {
+ cd "$_builddir"
+ autoreconf -vif || return 1
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --localstatedir=/var \
+ || return 1
+ make -j1 || return 1
+}
+
+package() {
+ cd "$_builddir"
+ make DESTDIR="$pkgdir" install || return 1
+}
+
+md5sums="73327ea76230e123aee6e115f9eed779 xnbd-0.3.0.tar.bz2
+358c26ecf6fc9a82ac2c6bca3b12d4d6 remove-pagesize.patch
+1c33da534f8b4f8fb3aad4d97532ed00 fix-cblocksize.patch
+d8bda14a419a89c7279ff4d83a0325b4 remove-sys_siglist.patch"
+sha256sums="8bbac0a95ab31ffac20e06825b5170dd2cf16bd1acfe07e54656ea823a339b4a xnbd-0.3.0.tar.bz2
+1a8a86a114ed2ad0471261d9974a9d6bb704e0741a29e5ce3ea5c4901dc7fa6a remove-pagesize.patch
+f8214480f998e516fb27fa2b945caf783e8ed9a398918ef795199061b80e29a6 fix-cblocksize.patch
+20d026e88dc22cc25888f4507400d5c8395f51c4dddad81ee57cbc160f6530bb remove-sys_siglist.patch"
+sha512sums="650874ae2790619970217917a6d56c7855dd6ab723269c8e027f1ce7abbf9b5b718131571f4ae4f7b3301bde1516f464ec1b1aeb6581e84bfefff5e73903c74f xnbd-0.3.0.tar.bz2
+9fa5106787cd0fc1ade23fa82f9caa37b920bda90be87aa948a5b11d0c604879663a3d7ae140857beed6af03e18d2b83580201262e1c99162ff697df90346ae3 remove-pagesize.patch
+7fffb13527db255b95e335d648dbb74ca2f26f44a07e126ae7514c3cb0705465b6d57aa660bf5a345a28f54ffe3b77f27a1e3022ef53ae29a811f3f164997a03 fix-cblocksize.patch
+611575a15386940085bf37d933d37c3599d8de4f4ed741822e552a471a5727a380e0bddfd126a516a8de3d2819f4b1c5aef1e71d57ee1427727c0aff8772e4c9 remove-sys_siglist.patch"
diff --git a/unmaintained/xnbd/fix-cblocksize.patch b/unmaintained/xnbd/fix-cblocksize.patch
new file mode 100644
index 0000000000..c678204a1b
--- /dev/null
+++ b/unmaintained/xnbd/fix-cblocksize.patch
@@ -0,0 +1,42 @@
+# HG changeset patch
+# User hirofuchi
+# Date 1393586078 -32400
+# Node ID 34a08647f2e40d22960d8cb1de718a4391c15f3b
+# Parent 93c3b58d3df2ea3f361779dad61240e9381f0bf4
+make the requirement of CBLOCKSIZE clear
+
+CBLOCKSIZE must be a power of 2. 1024 or 8192 should be possible, which is not equal to PAGESIZE.
+
+diff --git a/xnbd_common.c b/trunk/xnbd_common.c
+--- a/xnbd_common.c
++++ b/xnbd_common.c
+@@ -25,6 +25,13 @@
+ #include "xnbd_common.h"
+
+
++/*
++ * CBLOCKSIZE must be a power of 2, because bit operations are used in
++ * mmap_block_region functions. There is an assertion to check this in main()
++ * of xnbd-server.
++ *
++ * 1024 or 8192, which is different from the page size, is also possible, but not well tested.
++ **/
+ const unsigned int CBLOCKSIZE = 4096;
+ unsigned int PAGESIZE = 4096;
+
+diff --git a/xnbd_server.c b/trunk/xnbd_server.c
+--- a/xnbd_server.c
++++ b/xnbd_server.c
+@@ -1060,10 +1060,9 @@
+ xnbd_initialize(&xnbd);
+
+
++ /* must be a power of 2 */
++ g_assert((CBLOCKSIZE & (CBLOCKSIZE - 1)) == 0);
+
+- PAGESIZE = (unsigned int) getpagesize();
+- if (CBLOCKSIZE % PAGESIZE != 0)
+- warn("CBLOCKSIZE %u PAGESIZE %u", CBLOCKSIZE, PAGESIZE);
+
+ if (xnbd.cmd == xnbd_cmd_proxy)
+ cachestat_initialize(DEFAULT_CACHESTAT_PATH, xnbd.nblocks);
diff --git a/unmaintained/xnbd/remove-pagesize.patch b/unmaintained/xnbd/remove-pagesize.patch
new file mode 100644
index 0000000000..61c91c1454
--- /dev/null
+++ b/unmaintained/xnbd/remove-pagesize.patch
@@ -0,0 +1,29 @@
+# HG changeset patch
+# User hirofuchi
+# Date 1393586706 -32400
+# Node ID 6cc644b989ecd4a2cdd7cd3dd2d5c40fd63537d7
+# Parent 34a08647f2e40d22960d8cb1de718a4391c15f3b
+remove PAGESIZE
+
+diff --git a/xnbd.h b/trunk/xnbd.h
+--- a/xnbd.h
++++ b/xnbd.h
+@@ -189,7 +189,6 @@
+
+
+ extern const unsigned int CBLOCKSIZE;
+-extern unsigned int PAGESIZE;
+
+
+
+diff --git a/xnbd_common.c b/trunk/xnbd_common.c
+--- a/xnbd_common.c
++++ b/xnbd_common.c
+@@ -33,7 +33,6 @@
+ * 1024 or 8192, which is different from the page size, is also possible, but not well tested.
+ **/
+ const unsigned int CBLOCKSIZE = 4096;
+-unsigned int PAGESIZE = 4096;
+
+ const int XNBD_PORT = 8520;
+
diff --git a/unmaintained/xnbd/remove-sys_siglist.patch b/unmaintained/xnbd/remove-sys_siglist.patch
new file mode 100644
index 0000000000..8d9c3618f8
--- /dev/null
+++ b/unmaintained/xnbd/remove-sys_siglist.patch
@@ -0,0 +1,35 @@
+--- ./xnbd_server.c.orig
++++ ./xnbd_server.c
+@@ -181,7 +181,7 @@
+
+ static void signal_handler(int signum)
+ {
+- dbg("sig: signal catched, code %d (%s)", signum, sys_siglist[signum]);
++ dbg("sig: signal catched, code %d (%s)", signum, strsignal(signum));
+
+ if (signum == SIGCHLD)
+ got_sigchld = 1;
+@@ -495,7 +495,7 @@
+ info(" with exit status=%d", WEXITSTATUS(status));
+
+ if (WIFSIGNALED(status))
+- info(" killed by signal=%d(%s)", WTERMSIG(status), sys_siglist[WTERMSIG(status)]);
++ info(" killed by signal=%d(%s)", WTERMSIG(status), strsignal(WTERMSIG(status)));
+ }
+
+ const bool single_client_at_most = (connect_fd != -1);
+--- ./xnbd_watchdog.c.orig
++++ ./xnbd_watchdog.c
+@@ -26,10 +26,10 @@
+
+ static void nbddev_watchdog_sigalarm_handler(int signum)
+ {
+- info("sig: signal catched, code %d (%s)", signum, sys_siglist[signum]);
++ info("sig: signal catched, code %d (%s)", signum, strsignal(signum));
+
+ if (signum != SIGALRM)
+- warn("unexpected signal, code %d (%s)", signum, sys_siglist[signum]);
++ warn("unexpected signal, code %d (%s)", signum, strsignal(signum));
+ }
+
+ /* string is dummy */