浏览代码

package/nbd: add nbd-server support

Closes #645

Signed-off-by: Vincent Palatin <vincent.palatin_buildroot@m4x.org>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Vincent Palatin 15 年之前
父节点
当前提交
6aac003abf
共有 3 个文件被更改,包括 40 次插入6 次删除
  1. 3 2
      CHANGES
  2. 15 1
      package/nbd/Config.in
  3. 22 3
      package/nbd/nbd.mk

+ 3 - 2
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

+ 15 - 1
package/nbd/Config.in

@@ -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

+ 22 - 3
package/nbd/nbd.mk

@@ -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: