ソースを参照

samba: add option to install libsmbclient

Closes #301

The libsmbclient library is part of the samba package. It can be used
to build applications that access Samba shares without the need to
mount them. Currently the library is explicitly not installed by
buildroot. Here's a patch that adds a config option to install it.

Signed-off-by: Sven Neumann <s.neumann@raumfeld.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Sven Neumann 16 年 前
コミット
1d9178db29
3 ファイル変更25 行追加2 行削除
  1. 1 0
      CHANGES
  2. 9 0
      package/samba/Config.in
  3. 15 2
      package/samba/samba.mk

+ 1 - 0
CHANGES

@@ -6,6 +6,7 @@
 
 
 	Issues resolved (http://bugs.uclibc.org):
 	Issues resolved (http://bugs.uclibc.org):
 
 
+	#301: allow to install libsmbclient
 	#477: Add sdl_sound package
 	#477: Add sdl_sound package
 	#487: Make kismet package sexier
 	#487: Make kismet package sexier
 	#527: misc fixes for dnsmasq package
 	#527: misc fixes for dnsmasq package

+ 9 - 0
package/samba/Config.in

@@ -40,6 +40,15 @@ config BR2_PACKAGE_SAMBA_FINDSMB
 comment "findsmb       - disabled (requires nmblookup, smbclient and perl)"
 comment "findsmb       - disabled (requires nmblookup, smbclient and perl)"
 	depends on !BR2_PACKAGE_SAMBA_SMBCLIENT || !BR2_PACKAGE_SAMBA_NMBLOOKUP || !BR2_PACKAGE_MICROPERL
 	depends on !BR2_PACKAGE_SAMBA_SMBCLIENT || !BR2_PACKAGE_SAMBA_NMBLOOKUP || !BR2_PACKAGE_MICROPERL
 
 
+config BR2_PACKAGE_SAMBA_LIBSMBCLIENT
+	bool "libsmbclient"
+	depends on BR2_PACKAGE_SAMBA
+	help
+	  libsmbclient is a library toolset that permits applications
+	  to manipulate CIFS/SMB network resources using many of the
+	  standards POSIX functions available for manipulating local
+	  files.
+
 config BR2_PACKAGE_SAMBA_NET
 config BR2_PACKAGE_SAMBA_NET
 	bool "net"
 	bool "net"
 	default y
 	default y

+ 15 - 2
package/samba/samba.mk

@@ -11,6 +11,14 @@ SAMBA_CAT:=$(ZCAT)
 SAMBA_BINARY:=bin/smbd
 SAMBA_BINARY:=bin/smbd
 SAMBA_TARGET_BINARY:=usr/sbin/smbd
 SAMBA_TARGET_BINARY:=usr/sbin/smbd
 
 
+ifeq ($(BR2_PACKAGE_SAMBA_LIBSMBCLIENT),y)
+SAMBA_LIBSMBCLIENT := libsmbclient
+SAMBA_CONF_OPTIONS := --enable-libsmbclient
+else
+SAMBA_LIBSMBCLIENT :=
+SAMBA_CONF_OPTIONS := --disable-libsmbclient
+endif
+
 $(DL_DIR)/$(SAMBA_SOURCE):
 $(DL_DIR)/$(SAMBA_SOURCE):
 	$(call DOWNLOAD,$(SAMBA_SITE),$(SAMBA_SOURCE))
 	$(call DOWNLOAD,$(SAMBA_SITE),$(SAMBA_SOURCE))
 
 
@@ -58,6 +66,7 @@ $(SAMBA_DIR)/.configured: $(SAMBA_DIR)/.unpacked
 		--disable-static \
 		--disable-static \
 		--disable-cups \
 		--disable-cups \
 		$(DISABLE_LARGEFILE) \
 		$(DISABLE_LARGEFILE) \
+		$(SAMBA_CONF_OPTIONS) \
 	)
 	)
 	touch $@
 	touch $@
 
 
@@ -112,7 +121,6 @@ $(TARGET_DIR)/$(SAMBA_TARGET_BINARY): $(SAMBA_DIR)/$(SAMBA_BINARY)
 	rm -f $(addprefix $(TARGET_DIR)/usr/bin/ldb, add del edit modify search)
 	rm -f $(addprefix $(TARGET_DIR)/usr/bin/ldb, add del edit modify search)
 	# Remove not used library by Samba binaries
 	# Remove not used library by Samba binaries
 	rm -f $(TARGET_DIR)/usr/lib/libnetapi*
 	rm -f $(TARGET_DIR)/usr/lib/libnetapi*
-	rm -f $(TARGET_DIR)/usr/lib/libsmbclient*
 	rm -f $(TARGET_DIR)/usr/lib/libtalloc*
 	rm -f $(TARGET_DIR)/usr/lib/libtalloc*
 	rm -f $(TARGET_DIR)/usr/lib/libtdb*
 	rm -f $(TARGET_DIR)/usr/lib/libtdb*
 	# Remove not wanted Samba binaries
 	# Remove not wanted Samba binaries
@@ -134,7 +142,12 @@ endif
 	rm -rf $(TARGET_DIR)/var/cache/samba
 	rm -rf $(TARGET_DIR)/var/cache/samba
 	rm -rf $(TARGET_DIR)/var/lib/samba
 	rm -rf $(TARGET_DIR)/var/lib/samba
 
 
-samba: libiconv $(TARGET_DIR)/$(SAMBA_TARGET_BINARY)
+libsmbclient: $(SAMBA_DIR)/bin/libsmbclient.so
+	$(MAKE) $(TARGET_CONFIGURE_OPTS) \
+		DESTDIR="$(STAGING_DIR)" \
+		-C $(SAMBA_DIR) installlibs
+
+samba: libiconv $(TARGET_DIR)/$(SAMBA_TARGET_BINARY) $(SAMBA_LIBSMBCLIENT)
 
 
 samba-source: $(DL_DIR)/$(SAMBA_SOURCE)
 samba-source: $(DL_DIR)/$(SAMBA_SOURCE)