davfs2: update to 1.5.6
Split musl patch into multiple small ones. Much easier to reason about. Removed stack protector patch. This is not an issue anymore. Removed NLS support. There seems to be a linking issue as libiconv-stub does not have a shared library component. Signed-off-by: Rosen Penev <rosenp@gmail.com>
This commit is contained in:
parent
139d518599
commit
cf6c95d752
9 changed files with 210 additions and 257 deletions
|
@ -8,23 +8,22 @@
|
|||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=davfs2
|
||||
PKG_VERSION:=1.5.5
|
||||
PKG_RELEASE:=3
|
||||
PKG_VERSION:=1.5.6
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=@SAVANNAH/davfs2
|
||||
PKG_HASH:=587c6a25ad78109995a7ccb8e60aa1c491b149f2c99d47033f3d5e648430ad2f
|
||||
PKG_HASH:=417476cdcfd53966b2dcfaf12455b54f315959b488a89255ab4b44586153d801
|
||||
|
||||
PKG_MAINTAINER:=Federico Di Marco <fededim@gmail.com>
|
||||
PKG_LICENSE:=GPL-3
|
||||
PKG_LICENSE_FILES:=COPYING
|
||||
PKG_CPE_ID:=cpe:/a:davfs2:davfs2
|
||||
|
||||
PKG_FIXUP:=gettext-version autoreconf
|
||||
PKG_FIXUP:=autoreconf
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(INCLUDE_DIR)/nls.mk
|
||||
|
||||
define Package/davfs2
|
||||
SECTION:=net
|
||||
|
@ -56,14 +55,11 @@ define Package/davfs2/conffiles
|
|||
/etc/davfs2/davfs2.conf
|
||||
endef
|
||||
|
||||
TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include # $(ICONV_CFLAGS) $(INTL_CFLAGS)
|
||||
|
||||
TARGET_CPPFLAGS += -D_GNU_SOURCE # $(ICONV_CPFLAGS) $(INTL_CPPFLAGS)
|
||||
|
||||
CONFIGURE_VARS += \
|
||||
LDFLAGS="$(TARGET_LDFLAGS) -L$(TOOLCHAIN_DIR)/usr/lib -L$(TOOLCHAIN_DIR)/lib $(if $(INTL_FULL),-lintl) $(if $(ICONV_FULL),-liconv)" #$(INTL_LDFLAGS) $(ICONV_LDFLAGS)
|
||||
|
||||
CONFIGURE_ARGS += --with-neon="$(STAGING_DIR)/usr" --enable-largefile #--with-libintl-prefix=$(INTL_PREFIX) --with-libiconv-prefix=$(ICONV_PREFIX)
|
||||
CONFIGURE_ARGS += \
|
||||
--with-neon="$(STAGING_DIR)/usr" \
|
||||
--without-libiconv-prefix \
|
||||
--without-libintl-prefix \
|
||||
--disable-rpath
|
||||
|
||||
define Package/davfs2/install
|
||||
$(INSTALL_DIR) $(1)/usr/sbin
|
||||
|
|
49
net/davfs2/patches/030-realpath.patch
Normal file
49
net/davfs2/patches/030-realpath.patch
Normal file
|
@ -0,0 +1,49 @@
|
|||
--- a/src/mount_davfs.c
|
||||
+++ b/src/mount_davfs.c
|
||||
@@ -702,7 +702,7 @@ check_fstab(const dav_args *args)
|
||||
struct mntent *ft = getmntent(fstab);
|
||||
while (ft) {
|
||||
if (ft->mnt_dir) {
|
||||
- char *mp = canonicalize_file_name(ft->mnt_dir);
|
||||
+ char *mp = realpath(ft->mnt_dir, NULL);
|
||||
if (mp) {
|
||||
if (strcmp(mp, mpoint) == 0) {
|
||||
free(mp);
|
||||
@@ -966,7 +966,7 @@ parse_commandline(int argc, char *argv[])
|
||||
url = ne_strdup(argv[i]);
|
||||
}
|
||||
i++;
|
||||
- mpoint = canonicalize_file_name(argv[i]);
|
||||
+ mpoint = realpath(argv[i], NULL);
|
||||
if (!mpoint)
|
||||
error(EXIT_FAILURE, 0,
|
||||
_("can't evaluate path of mount point %s"), mpoint);
|
||||
@@ -2188,7 +2188,7 @@ read_config(dav_args *args, const char * filename, int system)
|
||||
error_at_line(EXIT_FAILURE, 0, filename, lineno,
|
||||
_("malformed line"));
|
||||
*(parmv[0] + strlen(parmv[0]) - 1) = '\0';
|
||||
- char *mp = canonicalize_file_name(parmv[0] + 1);
|
||||
+ char *mp = realpath(parmv[0] + 1, NULL);
|
||||
if (mp) {
|
||||
applies = (strcmp(mp, mpoint) == 0);
|
||||
free(mp);
|
||||
@@ -2440,7 +2440,7 @@ read_secrets(dav_args *args, const char *filename)
|
||||
if (scheme && !port)
|
||||
port = ne_uri_defaultport(scheme);
|
||||
|
||||
- char *mp = canonicalize_file_name(parmv[0]);
|
||||
+ char *mp = realpath(parmv[0], NULL);
|
||||
|
||||
char *ccert = NULL;
|
||||
if (args->clicert) {
|
||||
--- a/src/umount_davfs.c
|
||||
+++ b/src/umount_davfs.c
|
||||
@@ -118,7 +118,7 @@ main(int argc, char *argv[])
|
||||
if (optind < (argc - 1))
|
||||
error(EXIT_FAILURE, 0, _("too many arguments"));
|
||||
|
||||
- char *mpoint = canonicalize_file_name(argv[optind]);
|
||||
+ char *mpoint = realpath(argv[optind], NULL);
|
||||
|
||||
char *umount_command = NULL;
|
||||
if (mpoint) {
|
11
net/davfs2/patches/040-sys-select.patch
Normal file
11
net/davfs2/patches/040-sys-select.patch
Normal file
|
@ -0,0 +1,11 @@
|
|||
--- a/src/dav_fuse.c
|
||||
+++ b/src/dav_fuse.c
|
||||
@@ -48,6 +48,8 @@
|
||||
#include <sys/stat.h>
|
||||
#endif
|
||||
|
||||
+#include <sys/select.h>
|
||||
+
|
||||
#include "defaults.h"
|
||||
#include "mount_davfs.h"
|
||||
#include "cache.h"
|
11
net/davfs2/patches/050-sys-types.h
Normal file
11
net/davfs2/patches/050-sys-types.h
Normal file
|
@ -0,0 +1,11 @@
|
|||
--- a/src/kernel_interface.c
|
||||
+++ b/src/kernel_interface.c
|
||||
@@ -45,6 +45,8 @@
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
+#include <sys/types.h>
|
||||
+
|
||||
#ifdef HAVE_SYS_MOUNT_H
|
||||
#include <sys/mount.h>
|
||||
#endif
|
10
net/davfs2/patches/060-paths.patch
Normal file
10
net/davfs2/patches/060-paths.patch
Normal file
|
@ -0,0 +1,10 @@
|
|||
--- a/src/mount_davfs.c
|
||||
+++ b/src/mount_davfs.c
|
||||
@@ -40,6 +40,7 @@
|
||||
#ifdef HAVE_MNTENT_H
|
||||
#include <mntent.h>
|
||||
#endif
|
||||
+#include <paths.h>
|
||||
#include <pwd.h>
|
||||
#include <signal.h>
|
||||
#ifdef HAVE_STDINT_H
|
120
net/davfs2/patches/070-no-error.patch
Normal file
120
net/davfs2/patches/070-no-error.patch
Normal file
|
@ -0,0 +1,120 @@
|
|||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -42,7 +42,7 @@ DAV_CHECK_NEON
|
||||
# Checks for header files.
|
||||
AC_HEADER_DIRENT
|
||||
AC_HEADER_STDC
|
||||
-AC_CHECK_HEADERS([fcntl.h iconv.h libintl.h langinfo.h limits.h locale.h mntent.h stddef.h stdint.h stdlib.h string.h sys/file.h sys/mount.h sys/time.h syslog.h termios.h unistd.h utime.h])
|
||||
+AC_CHECK_HEADERS([error.h fcntl.h iconv.h libintl.h langinfo.h limits.h locale.h mntent.h stddef.h stdint.h stdlib.h string.h sys/file.h sys/mount.h sys/time.h syslog.h termios.h unistd.h utime.h])
|
||||
|
||||
# Checks for typedefs, structures, and compiler characteristics.
|
||||
AC_C_CONST
|
||||
--- a/src/cache.c
|
||||
+++ b/src/cache.c
|
||||
@@ -19,12 +19,12 @@
|
||||
|
||||
|
||||
#include "config.h"
|
||||
+#include "compat.h"
|
||||
|
||||
#ifdef HAVE_DIRENT_H
|
||||
#include <dirent.h>
|
||||
#endif
|
||||
#include <errno.h>
|
||||
-#include <error.h>
|
||||
#ifdef HAVE_FCNTL_H
|
||||
#include <fcntl.h>
|
||||
#endif
|
||||
--- /dev/null
|
||||
+++ b/src/compat.h
|
||||
@@ -0,0 +1,39 @@
|
||||
+#ifndef _COMPAT_H
|
||||
+#define _COMPAT_H
|
||||
+
|
||||
+#ifdef HAVE_ERROR_H
|
||||
+# include <error.h>
|
||||
+#else
|
||||
+# include <stdio.h>
|
||||
+# include <stdarg.h>
|
||||
+# include <stdlib.h>
|
||||
+# include <string.h>
|
||||
+static void error_at_line(int status, int errnum, const char *filename,
|
||||
+ unsigned int linenum, const char *format, ...)
|
||||
+{
|
||||
+ va_list ap;
|
||||
+
|
||||
+ fflush(stdout);
|
||||
+
|
||||
+ if (filename != NULL)
|
||||
+ fprintf(stderr, "%s:%u: ", filename, linenum);
|
||||
+
|
||||
+ va_start(ap, format);
|
||||
+ vfprintf(stderr, format, ap);
|
||||
+ va_end(ap);
|
||||
+
|
||||
+ if (errnum != 0)
|
||||
+ fprintf(stderr, ": %s", strerror(errnum));
|
||||
+
|
||||
+ fprintf(stderr, "\n");
|
||||
+
|
||||
+ if (status != 0)
|
||||
+ exit(status);
|
||||
+}
|
||||
+
|
||||
+#define error(status, errnum, format...) \
|
||||
+ error_at_line(status, errnum, NULL, 0, format)
|
||||
+
|
||||
+#endif /* HAVE_ERROR_H */
|
||||
+
|
||||
+#endif /* _COMPAT_H */
|
||||
--- a/src/kernel_interface.c
|
||||
+++ b/src/kernel_interface.c
|
||||
@@ -19,8 +19,8 @@
|
||||
|
||||
|
||||
#include "config.h"
|
||||
+#include "compat.h"
|
||||
|
||||
-#include <error.h>
|
||||
#ifdef HAVE_FCNTL_H
|
||||
#include <fcntl.h>
|
||||
#endif
|
||||
--- a/src/mount_davfs.c
|
||||
+++ b/src/mount_davfs.c
|
||||
@@ -19,10 +19,10 @@
|
||||
|
||||
|
||||
#include "config.h"
|
||||
+#include "compat.h"
|
||||
|
||||
#include <ctype.h>
|
||||
#include <errno.h>
|
||||
-#include <error.h>
|
||||
#ifdef HAVE_FCNTL_H
|
||||
#include <fcntl.h>
|
||||
#endif
|
||||
--- a/src/umount_davfs.c
|
||||
+++ b/src/umount_davfs.c
|
||||
@@ -19,8 +19,8 @@
|
||||
|
||||
|
||||
#include "config.h"
|
||||
+#include "compat.h"
|
||||
|
||||
-#include <error.h>
|
||||
#include <errno.h>
|
||||
#include <getopt.h>
|
||||
#ifdef HAVE_LIBINTL_H
|
||||
--- a/src/webdav.c
|
||||
+++ b/src/webdav.c
|
||||
@@ -19,9 +19,9 @@
|
||||
|
||||
|
||||
#include "config.h"
|
||||
+#include "compat.h"
|
||||
|
||||
#include <errno.h>
|
||||
-#include <error.h>
|
||||
#ifdef HAVE_FCNTL_H
|
||||
#include <fcntl.h>
|
||||
#endif
|
|
@ -1,194 +0,0 @@
|
|||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -42,7 +42,7 @@ DAV_CHECK_NEON
|
||||
# Checks for header files.
|
||||
AC_HEADER_DIRENT
|
||||
AC_HEADER_STDC
|
||||
-AC_CHECK_HEADERS([fcntl.h libintl.h langinfo.h limits.h locale.h mntent.h stddef.h stdint.h stdlib.h string.h sys/file.h sys/mount.h sys/time.h syslog.h termios.h unistd.h utime.h])
|
||||
+AC_CHECK_HEADERS([error.h fcntl.h libintl.h langinfo.h limits.h locale.h mntent.h stddef.h stdint.h stdlib.h string.h sys/file.h sys/mount.h sys/time.h sys/select.h sys/types.h syslog.h termios.h unistd.h utime.h])
|
||||
|
||||
# Checks for typedefs, structures, and compiler characteristics.
|
||||
AC_C_CONST
|
||||
@@ -78,7 +78,7 @@ AC_FUNC_SELECT_ARGTYPES
|
||||
AC_FUNC_STRFTIME
|
||||
AC_FUNC_STAT
|
||||
AC_FUNC_UTIME_NULL
|
||||
-AC_CHECK_FUNCS([endpwent ftruncate getmntent memset mkdir nl_langinfo rpmatch select setlocale strcasecmp strchr strdup strerror strpbrk strrchr strstr strtol strtoull utime])
|
||||
+AC_CHECK_FUNCS([endpwent ftruncate getmntent memset mkdir nl_langinfo rpmatch select setlocale strcasecmp strchr strdup strerror strpbrk strrchr strstr strtol strtoull utime canonicalize_file_name fopencookie])
|
||||
|
||||
# Misc.
|
||||
DAV_DEFAULTS
|
||||
--- a/src/cache.c
|
||||
+++ b/src/cache.c
|
||||
@@ -19,12 +19,12 @@
|
||||
|
||||
|
||||
#include "config.h"
|
||||
+#include "compat.h"
|
||||
|
||||
#ifdef HAVE_DIRENT_H
|
||||
#include <dirent.h>
|
||||
#endif
|
||||
#include <errno.h>
|
||||
-#include <error.h>
|
||||
#ifdef HAVE_FCNTL_H
|
||||
#include <fcntl.h>
|
||||
#endif
|
||||
--- /dev/null
|
||||
+++ b/src/compat.h
|
||||
@@ -0,0 +1,64 @@
|
||||
+#ifndef _COMPAT_H
|
||||
+#define _COMPAT_H
|
||||
+
|
||||
+#ifndef _PATH_MOUNTED
|
||||
+# define _PATH_MOUNTED "/proc/mounts"
|
||||
+#endif
|
||||
+
|
||||
+#ifndef _PATH_MNTTAB
|
||||
+# define _PATH_MNTTAB "/etc/fstab"
|
||||
+#endif
|
||||
+
|
||||
+#ifdef HAVE_ERROR_H
|
||||
+# include <error.h>
|
||||
+#else
|
||||
+# include <stdio.h>
|
||||
+# include <stdarg.h>
|
||||
+# include <stdlib.h>
|
||||
+# include <string.h>
|
||||
+static void error_at_line(int status, int errnum, const char *filename,
|
||||
+ unsigned int linenum, const char *format, ...)
|
||||
+{
|
||||
+ va_list ap;
|
||||
+
|
||||
+ fflush(stdout);
|
||||
+
|
||||
+ if (filename != NULL)
|
||||
+ fprintf(stderr, "%s:%u: ", filename, linenum);
|
||||
+
|
||||
+ va_start(ap, format);
|
||||
+ vfprintf(stderr, format, ap);
|
||||
+ va_end(ap);
|
||||
+
|
||||
+ if (errnum != 0)
|
||||
+ fprintf(stderr, ": %s", strerror(errnum));
|
||||
+
|
||||
+ fprintf(stderr, "\n");
|
||||
+
|
||||
+ if (status != 0)
|
||||
+ exit(status);
|
||||
+}
|
||||
+
|
||||
+#define error(status, errnum, format...) \
|
||||
+ error_at_line(status, errnum, NULL, 0, format)
|
||||
+
|
||||
+#endif /* HAVE_ERROR_H */
|
||||
+
|
||||
+#ifndef HAVE_CANONICALIZE_FILE_NAME
|
||||
+#include <limits.h>
|
||||
+#include <string.h>
|
||||
+#include <stdlib.h>
|
||||
+static char * canonicalize_file_name(const char *path)
|
||||
+{
|
||||
+ char buf[PATH_MAX] = { };
|
||||
+
|
||||
+ snprintf(buf, sizeof(buf) - 1, "%s", path);
|
||||
+
|
||||
+ if (!realpath(path, buf))
|
||||
+ return NULL;
|
||||
+
|
||||
+ return strdup(buf);
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
+#endif /* _COMPAT_H */
|
||||
--- a/src/dav_fuse.c
|
||||
+++ b/src/dav_fuse.c
|
||||
@@ -47,6 +47,9 @@
|
||||
#ifdef HAVE_SYS_STAT_H
|
||||
#include <sys/stat.h>
|
||||
#endif
|
||||
+#ifdef HAVE_SYS_SELECT_H
|
||||
+#include <sys/select.h>
|
||||
+#endif
|
||||
|
||||
#include "defaults.h"
|
||||
#include "mount_davfs.h"
|
||||
--- a/src/kernel_interface.c
|
||||
+++ b/src/kernel_interface.c
|
||||
@@ -19,8 +19,8 @@
|
||||
|
||||
|
||||
#include "config.h"
|
||||
+#include "compat.h"
|
||||
|
||||
-#include <error.h>
|
||||
#ifdef HAVE_FCNTL_H
|
||||
#include <fcntl.h>
|
||||
#endif
|
||||
@@ -51,6 +51,9 @@
|
||||
#ifdef HAVE_SYS_STAT_H
|
||||
#include <sys/stat.h>
|
||||
#endif
|
||||
+#ifdef HAVE_SYS_TYPES_H
|
||||
+#include <sys/types.h>
|
||||
+#endif
|
||||
#include <sys/wait.h>
|
||||
|
||||
#include "defaults.h"
|
||||
--- a/src/mount_davfs.c
|
||||
+++ b/src/mount_davfs.c
|
||||
@@ -19,10 +19,10 @@
|
||||
|
||||
|
||||
#include "config.h"
|
||||
+#include "compat.h"
|
||||
|
||||
#include <ctype.h>
|
||||
#include <errno.h>
|
||||
-#include <error.h>
|
||||
#ifdef HAVE_FCNTL_H
|
||||
#include <fcntl.h>
|
||||
#endif
|
||||
--- a/src/umount_davfs.c
|
||||
+++ b/src/umount_davfs.c
|
||||
@@ -19,8 +19,8 @@
|
||||
|
||||
|
||||
#include "config.h"
|
||||
+#include "compat.h"
|
||||
|
||||
-#include <error.h>
|
||||
#include <errno.h>
|
||||
#include <getopt.h>
|
||||
#ifdef HAVE_LIBINTL_H
|
||||
--- a/src/webdav.c
|
||||
+++ b/src/webdav.c
|
||||
@@ -19,9 +19,9 @@
|
||||
|
||||
|
||||
#include "config.h"
|
||||
+#include "compat.h"
|
||||
|
||||
#include <errno.h>
|
||||
-#include <error.h>
|
||||
#ifdef HAVE_FCNTL_H
|
||||
#include <fcntl.h>
|
||||
#endif
|
||||
@@ -368,6 +368,7 @@ dav_init_webdav(const dav_args *args)
|
||||
error(EXIT_FAILURE, errno, _("socket library initialization failed"));
|
||||
|
||||
if (args->neon_debug & ~NE_DBG_HTTPPLAIN) {
|
||||
+#ifdef HAVE_FOPENCOOKIE
|
||||
char *buf = malloc(log_bufsize);
|
||||
cookie_io_functions_t *log_func = malloc(sizeof(cookie_io_functions_t));
|
||||
if (!log_func) abort();
|
||||
@@ -380,6 +381,9 @@ dav_init_webdav(const dav_args *args)
|
||||
error(EXIT_FAILURE, errno,
|
||||
_("can't open stream to log neon-messages"));
|
||||
ne_debug_init(log_stream, args->neon_debug);
|
||||
+#else
|
||||
+ error(EXIT_FAILURE, 0, "neon debugging unsupported");
|
||||
+#endif
|
||||
}
|
||||
|
||||
session = ne_session_create(args->scheme, args->host, args->port);
|
|
@ -1,12 +0,0 @@
|
|||
--- a/src/Makefile.am
|
||||
+++ b/src/Makefile.am
|
||||
@@ -32,8 +32,7 @@ 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-strong --param=ssp-buffer-size=4
|
||||
+AM_CFLAGS = -Wall -Werror=format-security
|
||||
DEFS = -DPROGRAM_NAME=\"mount.davfs\" \
|
||||
-DDAV_SYS_CONF_DIR=\"$(pkgsysconfdir)\" \
|
||||
-DDAV_LOCALSTATE_DIR=\"$(dav_localstatedir)\" \
|
|
@ -1,38 +0,0 @@
|
|||
--- a/src/webdav.c
|
||||
+++ b/src/webdav.c
|
||||
@@ -25,7 +25,7 @@
|
||||
#ifdef HAVE_FCNTL_H
|
||||
#include <fcntl.h>
|
||||
#endif
|
||||
-#ifdef HAVE_ICONV_H
|
||||
+#ifdef HAVE_ICONV
|
||||
#include <iconv.h>
|
||||
#endif
|
||||
#ifdef HAVE_LANGINFO_H
|
||||
@@ -231,7 +231,7 @@ static int initialized;
|
||||
Needed by ssl_verify() which may be called at any time. */
|
||||
static int have_terminal;
|
||||
|
||||
-#ifdef HAVE_ICONV_H
|
||||
+#ifdef HAVE_ICONV
|
||||
/* Handle to convert character encoding from utf-8 to LC_CTYPE.
|
||||
If NULL no conversion is done. */
|
||||
static iconv_t from_utf_8;
|
||||
@@ -264,7 +264,7 @@ static char **cookie_list;
|
||||
/* Private function prototypes and inline functions */
|
||||
/*==================================================*/
|
||||
|
||||
-#ifdef HAVE_ICONV_H
|
||||
+#ifdef HAVE_ICONV
|
||||
static void
|
||||
convert(char **s, iconv_t conv);
|
||||
#endif
|
||||
@@ -337,7 +337,7 @@ dav_init_webdav(const dav_args *args)
|
||||
if (args->neon_debug & ~NE_DBG_HTTPPLAIN)
|
||||
syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_DEBUG), "Initializing webdav");
|
||||
|
||||
-#ifdef HAVE_ICONV_H
|
||||
+#ifdef HAVE_ICONV
|
||||
char *lc_charset = nl_langinfo(CODESET);
|
||||
if (lc_charset && strcasecmp(lc_charset, "UTF-8") != 0) {
|
||||
from_utf_8 = iconv_open(lc_charset, "UTF-8");
|
Loading…
Reference in a new issue