commit 2c557f1a49f614765d429f61502aad6c0b3ed6b8
parent c33600e47629b9740cce9f727cb7b93347e9c7df
Author: champtar <champetier.etienne@gmail.com>
Date: Fri, 12 Sep 2014 21:19:35 +0200
Merge pull request #304 from champtar/davfs
Davfs2
Diffstat:
4 files changed, 189 insertions(+), 0 deletions(-)
diff --git a/libs/neon/Makefile b/libs/neon/Makefile
@@ -0,0 +1,78 @@
+#
+# Copyright (C) 2007-2014 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=neon
+PKG_VERSION:=0.30.0
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://www.webdav.org/neon
+PKG_MD5SUM:=fb60b3a124eeec441937a812c456fd94
+
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/libneon
+ SECTION:=libs
+ CATEGORY:=Libraries
+ TITLE:=HTTP and WebDAV client library
+ URL:=http://www.webdav.org/neon/
+ DEPENDS:=+libopenssl +libexpat
+ MAINTAINER:=Federico Di Marco <fededim@gmail.com>
+endef
+
+define Package/libneon/description
+ neon is an HTTP and WebDAV client library, with a C interface. Features:
+
+ - High-level wrappers for common HTTP and WebDAV operations (GET, MOVE, DELETE, etc)
+ - Low-level interface to the HTTP request/response engine, allowing the use of arbitrary HTTP methods, headers, etc.
+ - Authentication support including Basic and Digest support, along with GSSAPI-based Negotiate on Unix, and
+ SSPI-based Negotiate/NTLM on Win32
+ - SSL/TLS support using OpenSSL or GnuTLS; exposing an abstraction layer for verifying server certificates, handling client
+ certificates, and examining certificate properties. Smartcard-based client certificates are also supported via a
+ PKCS11 wrapper interface.
+ - Abstract interface to parsing XML using libxml2 or expat, and wrappers for simplifying handling XML HTTP response bodies
+ - WebDAV metadata support; wrappers for PROPFIND and PROPPATCH to simplify property manipulation.
+endef
+
+
+TARGET_CFLAGS += $(FPIC)
+TARGET_CPPFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
+
+CONFIGURE_ARGS += \
+ --enable-shared \
+ --enable-static \
+ --with-expat \
+ --with-ssl="openssl" \
+ --without-egd \
+ --without-libproxy
+
+CONFIGURE_VARS += \
+ LDFLAGS="$$$$LDFLAGS -lcrypto -lssl"
+
+define Build/InstallDev
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/neon-config $(1)/usr/bin/
+ $(INSTALL_DIR) $(1)/usr/include
+ $(CP) $(PKG_INSTALL_DIR)/usr/include/neon $(1)/usr/include/
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libneon.{a,so*} $(1)/usr/lib/
+ $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/neon.pc $(1)/usr/lib/pkgconfig/
+ $(SED) 's,-I$$$${includedir}/,-I$(STAGING_DIR)/usr/include/,g' $(1)/usr/bin/neon-config
+ $(SED) 's,-L$$$${libdir},,g' $(1)/usr/bin/neon-config
+endef
+
+define Package/libneon/install
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libneon.so.* $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,libneon))
diff --git a/net/davfs2/Makefile b/net/davfs2/Makefile
@@ -0,0 +1,67 @@
+#
+# Copyright (C) 2006-2014 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=davfs2
+PKG_VERSION:=1.5.2
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://download.savannah.gnu.org/releases/davfs2/
+PKG_MD5SUM:=376bc9346454135cba78afacbcb23f86
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/davfs2
+ SECTION:=net
+ CATEGORY:=Network
+ SUBMENU:=Filesystem
+ DEPENDS=+libopenssl +libneon +libiconv +libintl +libexpat +kmod-fuse +libfuse
+ TITLE:=Mount a WebDAV resource as a regular file system.
+ URL:=http://savannah.nongnu.org/projects/davfs2/
+ MAINTAINER:=Federico Di Marco <fededim@gmail.com>
+endef
+
+define Package/davfs2/description
+ Web Distributed Authoring and Versioning (WebDAV), an extension to the HTTP-protocol,
+ allows authoring of resources on a remote web server.davfs2 provides the ability to
+ access such resources like a typical filesystem, allowing for use by standard
+ applications with no built-in support for WebDAV.
+
+ davfs2 is designed to fully integrate into the filesystem semantics of Unix-like
+ systems (mount, umount, etc.). davfs2 makes mounting by unprivileged users as easy
+ and secure as possible.
+
+ davfs2 does extensive caching to make the file system responsive, to avoid
+ unnecessary network traffic and to prevent data loss, and to cope for slow or
+ unreliable connections.
+
+ davfs2 will work with most WebDAV servers needing little or no configuration.
+endef
+
+define Package/davfs2/conffiles
+/etc/davfs2/davfs2.conf
+endef
+
+TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include
+
+CONFIGURE_VARS += \
+ LDFLAGS="$(TARGET_LDFLAGS) -L$(TOOLCHAIN_DIR)/usr/lib -L$(TOOLCHAIN_DIR)/lib"
+
+CONFIGURE_ARGS += --with-neon="$(STAGING_DIR)/usr"
+
+define Package/davfs2/install
+ $(INSTALL_DIR) $(1)/usr/sbin
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/mount.davfs $(1)/usr/sbin/
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/umount.davfs $(1)/usr/sbin/
+ $(INSTALL_DIR) $(1)/etc
+ $(INSTALL_DIR) $(1)/etc/davfs2
+ $(INSTALL_DATA) files/$(PKG_NAME).conf $(1)/etc/davfs2
+endef
+
+$(eval $(call BuildPackage,davfs2))
diff --git a/net/davfs2/files/davfs2.conf b/net/davfs2/files/davfs2.conf
@@ -0,0 +1,9 @@
+#
+# davfs2 configuration file
+# please see http://linux.die.net/man/5/davfs2.conf for details
+#
+
+dav_user nobody
+dav_group nogroup
+cache_dir /tmp/davfs2
+cache_size 4
diff --git a/net/davfs2/patches/010-main_code_fix.patch b/net/davfs2/patches/010-main_code_fix.patch
@@ -0,0 +1,35 @@
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -32,8 +32,8 @@ mount_davfs_SOURCES = cache.c dav_coda.c
+ kernel_interface.h mount_davfs.h webdav.h
+ umount_davfs_SOURCES = umount_davfs.c defaults.h
+
+-AM_CFLAGS = -Wall -Werror=format-security \
+- -fstack-protector --param=ssp-buffer-size=4
++AM_CFLAGS = -Wall -Werror=format-security
++# -fstack-protector --param=ssp-buffer-size=4 -- removed ssp not supported in openwrt
+ DEFS = -DPROGRAM_NAME=\"mount.davfs\" \
+ -DDAV_SYS_CONF_DIR=\"$(pkgsysconfdir)\" \
+ -DDAV_LOCALSTATE_DIR=\"$(dav_localstatedir)\" \
+--- a/src/cache.c
++++ b/src/cache.c
+@@ -58,7 +58,7 @@
+ #ifdef HAVE_SYS_TYPES_H
+ #include <sys/types.h>
+ #endif
+-#include <sys/xattr.h>
++#include <linux/xattr.h>
+
+ #include <ne_alloc.h>
+ #include <ne_string.h>
+--- a/src/webdav.c
++++ b/src/webdav.c
+@@ -2033,7 +2033,7 @@ ssl_verify(void *userdata, int failures,
+ len = getline(&s, &n, stdin);
+ if (len < 0)
+ abort();
+- if (rpmatch(s) > 0)
++ if ((s[0]=='y' || s[0]=='Y') > 0)
+ ret = 0;
+ free(s);
+ }