From cf6c95d7527755895d33a1a55dbc4b62dc9b0a3b Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Wed, 15 Jul 2020 14:16:27 -0700 Subject: [PATCH] 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 --- net/davfs2/Makefile | 22 +- net/davfs2/patches/030-realpath.patch | 49 +++++ net/davfs2/patches/040-sys-select.patch | 11 + net/davfs2/patches/050-sys-types.h | 11 + net/davfs2/patches/060-paths.patch | 10 + net/davfs2/patches/070-no-error.patch | 120 +++++++++++ net/davfs2/patches/100-musl-compat.patch | 194 ------------------ ...vfs2-1.5.4-no-forced-stack-protector.patch | 12 -- net/davfs2/patches/300-have_iconv_h.patch | 38 ---- 9 files changed, 210 insertions(+), 257 deletions(-) create mode 100644 net/davfs2/patches/030-realpath.patch create mode 100644 net/davfs2/patches/040-sys-select.patch create mode 100644 net/davfs2/patches/050-sys-types.h create mode 100644 net/davfs2/patches/060-paths.patch create mode 100644 net/davfs2/patches/070-no-error.patch delete mode 100644 net/davfs2/patches/100-musl-compat.patch delete mode 100644 net/davfs2/patches/200-davfs2-1.5.4-no-forced-stack-protector.patch delete mode 100644 net/davfs2/patches/300-have_iconv_h.patch diff --git a/net/davfs2/Makefile b/net/davfs2/Makefile index 32deede9c..c77a6e244 100644 --- a/net/davfs2/Makefile +++ b/net/davfs2/Makefile @@ -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 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 diff --git a/net/davfs2/patches/030-realpath.patch b/net/davfs2/patches/030-realpath.patch new file mode 100644 index 000000000..a1658e27a --- /dev/null +++ b/net/davfs2/patches/030-realpath.patch @@ -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) { diff --git a/net/davfs2/patches/040-sys-select.patch b/net/davfs2/patches/040-sys-select.patch new file mode 100644 index 000000000..20502a023 --- /dev/null +++ b/net/davfs2/patches/040-sys-select.patch @@ -0,0 +1,11 @@ +--- a/src/dav_fuse.c ++++ b/src/dav_fuse.c +@@ -48,6 +48,8 @@ + #include + #endif + ++#include ++ + #include "defaults.h" + #include "mount_davfs.h" + #include "cache.h" diff --git a/net/davfs2/patches/050-sys-types.h b/net/davfs2/patches/050-sys-types.h new file mode 100644 index 000000000..9478b8b78 --- /dev/null +++ b/net/davfs2/patches/050-sys-types.h @@ -0,0 +1,11 @@ +--- a/src/kernel_interface.c ++++ b/src/kernel_interface.c +@@ -45,6 +45,8 @@ + #include + #endif + ++#include ++ + #ifdef HAVE_SYS_MOUNT_H + #include + #endif diff --git a/net/davfs2/patches/060-paths.patch b/net/davfs2/patches/060-paths.patch new file mode 100644 index 000000000..f915fa374 --- /dev/null +++ b/net/davfs2/patches/060-paths.patch @@ -0,0 +1,10 @@ +--- a/src/mount_davfs.c ++++ b/src/mount_davfs.c +@@ -40,6 +40,7 @@ + #ifdef HAVE_MNTENT_H + #include + #endif ++#include + #include + #include + #ifdef HAVE_STDINT_H diff --git a/net/davfs2/patches/070-no-error.patch b/net/davfs2/patches/070-no-error.patch new file mode 100644 index 000000000..fb3966b1f --- /dev/null +++ b/net/davfs2/patches/070-no-error.patch @@ -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 + #endif + #include +-#include + #ifdef HAVE_FCNTL_H + #include + #endif +--- /dev/null ++++ b/src/compat.h +@@ -0,0 +1,39 @@ ++#ifndef _COMPAT_H ++#define _COMPAT_H ++ ++#ifdef HAVE_ERROR_H ++# include ++#else ++# include ++# include ++# include ++# include ++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 + #ifdef HAVE_FCNTL_H + #include + #endif +--- a/src/mount_davfs.c ++++ b/src/mount_davfs.c +@@ -19,10 +19,10 @@ + + + #include "config.h" ++#include "compat.h" + + #include + #include +-#include + #ifdef HAVE_FCNTL_H + #include + #endif +--- a/src/umount_davfs.c ++++ b/src/umount_davfs.c +@@ -19,8 +19,8 @@ + + + #include "config.h" ++#include "compat.h" + +-#include + #include + #include + #ifdef HAVE_LIBINTL_H +--- a/src/webdav.c ++++ b/src/webdav.c +@@ -19,9 +19,9 @@ + + + #include "config.h" ++#include "compat.h" + + #include +-#include + #ifdef HAVE_FCNTL_H + #include + #endif diff --git a/net/davfs2/patches/100-musl-compat.patch b/net/davfs2/patches/100-musl-compat.patch deleted file mode 100644 index 67a926c24..000000000 --- a/net/davfs2/patches/100-musl-compat.patch +++ /dev/null @@ -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 - #endif - #include --#include - #ifdef HAVE_FCNTL_H - #include - #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 -+#else -+# include -+# include -+# include -+# include -+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 -+#include -+#include -+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 - #endif -+#ifdef HAVE_SYS_SELECT_H -+#include -+#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 - #ifdef HAVE_FCNTL_H - #include - #endif -@@ -51,6 +51,9 @@ - #ifdef HAVE_SYS_STAT_H - #include - #endif -+#ifdef HAVE_SYS_TYPES_H -+#include -+#endif - #include - - #include "defaults.h" ---- a/src/mount_davfs.c -+++ b/src/mount_davfs.c -@@ -19,10 +19,10 @@ - - - #include "config.h" -+#include "compat.h" - - #include - #include --#include - #ifdef HAVE_FCNTL_H - #include - #endif ---- a/src/umount_davfs.c -+++ b/src/umount_davfs.c -@@ -19,8 +19,8 @@ - - - #include "config.h" -+#include "compat.h" - --#include - #include - #include - #ifdef HAVE_LIBINTL_H ---- a/src/webdav.c -+++ b/src/webdav.c -@@ -19,9 +19,9 @@ - - - #include "config.h" -+#include "compat.h" - - #include --#include - #ifdef HAVE_FCNTL_H - #include - #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); diff --git a/net/davfs2/patches/200-davfs2-1.5.4-no-forced-stack-protector.patch b/net/davfs2/patches/200-davfs2-1.5.4-no-forced-stack-protector.patch deleted file mode 100644 index 86f177532..000000000 --- a/net/davfs2/patches/200-davfs2-1.5.4-no-forced-stack-protector.patch +++ /dev/null @@ -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)\" \ diff --git a/net/davfs2/patches/300-have_iconv_h.patch b/net/davfs2/patches/300-have_iconv_h.patch deleted file mode 100644 index 6bf95a24a..000000000 --- a/net/davfs2/patches/300-have_iconv_h.patch +++ /dev/null @@ -1,38 +0,0 @@ ---- a/src/webdav.c -+++ b/src/webdav.c -@@ -25,7 +25,7 @@ - #ifdef HAVE_FCNTL_H - #include - #endif --#ifdef HAVE_ICONV_H -+#ifdef HAVE_ICONV - #include - #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");