package/nbd: add nbd-server support
authorVincent Palatin <vincent.palatin_buildroot@m4x.org>
Sun, 22 Nov 2009 20:18:11 +0000 (21:18 +0100)
committerPeter Korsgaard <jacmet@sunsite.dk>
Sun, 22 Nov 2009 20:18:11 +0000 (21:18 +0100)
Closes #645

Signed-off-by: Vincent Palatin <vincent.palatin_buildroot@m4x.org>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
CHANGES
package/nbd/Config.in
package/nbd/nbd.mk

diff --git a/CHANGES b/CHANGES
index 421629f25984334fb9cca0cb4d7b64c5f3c53731..abf9774fa54ca6f2a1cf5ea73fd024b92b5fe92a 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -14,8 +14,8 @@
        e2fsprogs, festival, gstreamer, gst-plugins-bad, gst-plugins-base,
        gst-plugins-good, imagemagick, ipkg, iptables, iw, kernel-headers,
        kismet, libelf, libevent, libglib2, libidn, liblockfile, libmad,
-       libpcap, libupnp, libuuid, lighttpd, ltrace, lua, lzma, mdadm, ncftp,
-       ncurses, netkittelnet, netsnmp, ntfs-3g, openntp, openssl, php,
+       libpcap, libupnp, libuuid, lighttpd, ltrace, lua, lzma, mdadm, nbd,
+       ncftp, ncurses, netkittelnet, netsnmp, ntfs-3g, openntp, openssl, php,
        python, quagga, radvd, rsync, samba, sawman, sdl, shared-mime-info,
        spawn-fcgi, speech-tools, sqlite, squashfs, synergy, syslinux,
        tcpdump, u-boot, util-linux, valgrind, vsftpd, wipe, wpa-supplicant,
@@ -38,6 +38,7 @@
        #615: python: Don't delete .py files unless asked
        #617: netkit/inetd requires RPC and fails to build if RPC is disabled
        #619: netkittelnet requires netkitbase to install, but there's no ...
+       #645: allow to build nbd-server with NBD package
        #653: [SECURITY] Update php package to version 5.2.11
        #655: Update sqlite package to version 3.6.18
        #657: Bug in imagemagick-clean target
index 788240b662f61b0a02374457fe4554b9153b60aa..66c24afa3735078a202e666e7d71bebe7585c4b4 100644 (file)
@@ -4,8 +4,22 @@ config BR2_PACKAGE_NBD
        help
          NBD is a set of utilities to configure network block devices,
          allowing access to remote block devices over TCP/IP network.
-         Notice: This package only provides the NBD client.
 
          Depends on glib.
 
          http://nbd.sf.net/
+
+if BR2_PACKAGE_NBD
+
+config BR2_NBD_CLIENT
+       bool "nbd client"
+       default y
+       help
+         the client part of NBD.
+
+config BR2_NBD_SERVER
+       bool "nbd server"
+       help
+         the server part of NBD.
+
+endif
index 6a2f6bc6ebd201d143b742d640054f96e46b57e8..df8e1673162358fa88e86e1d09706984a7125b0c 100644 (file)
@@ -10,6 +10,13 @@ NBD_CAT:=$(BZCAT)
 NBD_SITE=http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/nbd/
 NBD_DIR=$(BUILD_DIR)/nbd-$(NBD_VERSION)
 
+ifeq ($(BR2_NBD_CLIENT),y)
+NBD_TARGET_BINARY+= $(TARGET_DIR)/sbin/nbd-client
+endif
+ifeq ($(BR2_NBD_SERVER),y)
+NBD_TARGET_BINARY+= $(TARGET_DIR)/bin/nbd-server
+endif
+
 $(DL_DIR)/$(NBD_SOURCE):
        $(call DOWNLOAD,$(NBD_SITE),$(NBD_SOURCE))
 
@@ -17,7 +24,11 @@ $(NBD_DIR)/.unpacked: $(DL_DIR)/$(NBD_SOURCE)
        $(NBD_CAT) $(DL_DIR)/$(NBD_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
        touch $@
 
-$(NBD_DIR)/.configured: $(NBD_DIR)/.unpacked
+$(NBD_DIR)/.patched: $(NBD_DIR)/.unpacked
+       toolchain/patch-kernel.sh $(NBD_DIR) package/nbd/ nbd\*.patch
+       touch $@
+
+$(NBD_DIR)/.configured: $(NBD_DIR)/.patched
        (cd $(NBD_DIR); rm -rf config.cache; \
                $(TARGET_CONFIGURE_OPTS) \
                $(TARGET_CONFIGURE_ARGS) \
@@ -27,6 +38,7 @@ $(NBD_DIR)/.configured: $(NBD_DIR)/.unpacked
                --host=$(GNU_TARGET_NAME) \
                --build=$(GNU_HOST_NAME) \
                --prefix=/usr \
+               --sysconfdir=/etc \
        )
        touch $@
 
@@ -37,12 +49,19 @@ $(TARGET_DIR)/sbin/nbd-client: $(NBD_DIR)/nbd-client
        cp $< $@
        $(STRIPCMD) $@
 
-nbd: libglib2 $(TARGET_DIR)/sbin/nbd-client
+$(NBD_DIR)/nbd-server: $(NBD_DIR)/.configured
+       $(MAKE) -C $(NBD_DIR) nbd-server
+
+$(TARGET_DIR)/bin/nbd-server: $(NBD_DIR)/nbd-server
+       cp $< $@
+       $(STRIPCMD) $@
+
+nbd: libglib2 $(NBD_TARGET_BINARY)
 
 nbd-source: $(DL_DIR)/$(NBD_SOURCE)
 
 nbd-clean:
-       rm -f $(TARGET_DIR)/sbin/nbd-client
+       rm -f $(NBD_TARGET_BINARY)
        -$(MAKE) -C $(NBD_DIR) clean
 
 nbd-dirclean: