aboutsummaryrefslogtreecommitdiffstats
path: root/testing/curlftpfs
diff options
context:
space:
mode:
authorMilan P. Stanić <mps@arvanta.net>2018-12-11 19:08:00 +0100
committerLeonardo Arena <rnalrd@alpinelinux.org>2019-02-05 08:28:58 +0000
commitf04039399781204786e376f730b8849aea59dcd2 (patch)
tree9b8a9c3a0e690d8ae57888e8f7c054c4c50301c4 /testing/curlftpfs
parent20380256b171efa7c66a16fbf75d842922e46f27 (diff)
downloadaports-f04039399781204786e376f730b8849aea59dcd2.tar.bz2
aports-f04039399781204786e376f730b8849aea59dcd2.tar.xz
testing/curlftpfs: new aport
Diffstat (limited to 'testing/curlftpfs')
-rw-r--r--testing/curlftpfs/001-uclibc_mod.patch37
-rw-r--r--testing/curlftpfs/500-fix-CURLOPT_INFILESIZE.patch11
-rw-r--r--testing/curlftpfs/510-free_ftpfs_file-memleak-fix.patch13
-rw-r--r--testing/curlftpfs/520-nocache-memleak-fix.patch58
-rw-r--r--testing/curlftpfs/530-curlftpfs__no_verify_hostname.patch21
-rw-r--r--testing/curlftpfs/540-consistent-feature-flag.patch60
-rw-r--r--testing/curlftpfs/550-getpass-prototype.patch20
-rw-r--r--testing/curlftpfs/APKBUILD44
8 files changed, 264 insertions, 0 deletions
diff --git a/testing/curlftpfs/001-uclibc_mod.patch b/testing/curlftpfs/001-uclibc_mod.patch
new file mode 100644
index 0000000000..8eb155618a
--- /dev/null
+++ b/testing/curlftpfs/001-uclibc_mod.patch
@@ -0,0 +1,37 @@
+diff -cr curlftpfs-0.9.2/ftpfs-ls.c curlftpfs-0.9.2-1/ftpfs-ls.c
+*** curlftpfs-0.9.2/ftpfs-ls.c 2008-04-23 12:55:41.000000000 +0200
+--- curlftpfs-0.9.2-1/ftpfs-ls.c 2009-09-24 23:19:03.000000000 +0200
+***************
+*** 58,64 ****
+ "%5s" "%*c"
+ "%1023c",
+ mode, &nlink, user, group, &size, month, day, year, file);
+! if (res < 9) {
+ res = sscanf(line,
+ "%11s"
+ "%32s" SPACES
+--- 58,64 ----
+ "%5s" "%*c"
+ "%1023c",
+ mode, &nlink, user, group, &size, month, day, year, file);
+! if (res < 8) {
+ res = sscanf(line,
+ "%11s"
+ "%32s" SPACES
+***************
+*** 69,75 ****
+ "%5s" "%*c"
+ "%1023c",
+ mode, user, group, &size, month, day, year, file);
+! if (res < 8) {
+ return 0;
+ }
+ }
+--- 69,75 ----
+ "%5s" "%*c"
+ "%1023c",
+ mode, user, group, &size, month, day, year, file);
+! if (res < 7) {
+ return 0;
+ }
+ }
diff --git a/testing/curlftpfs/500-fix-CURLOPT_INFILESIZE.patch b/testing/curlftpfs/500-fix-CURLOPT_INFILESIZE.patch
new file mode 100644
index 0000000000..bd14184b0b
--- /dev/null
+++ b/testing/curlftpfs/500-fix-CURLOPT_INFILESIZE.patch
@@ -0,0 +1,11 @@
+CURLOPT_INFILESIZE does not support -1 arg. This fix bug #556012.
+--- curlftpfs-0.9.2/ftpfs.c.old 2009-12-13 14:12:25.000000000 +0100
++++ curlftpfs-0.9.2/ftpfs.c 2009-12-13 14:12:32.000000000 +0100
+@@ -503,7 +503,6 @@
+
+ curl_easy_setopt_or_die(fh->write_conn, CURLOPT_URL, fh->full_path);
+ curl_easy_setopt_or_die(fh->write_conn, CURLOPT_UPLOAD, 1);
+- curl_easy_setopt_or_die(fh->write_conn, CURLOPT_INFILESIZE, -1);
+ curl_easy_setopt_or_die(fh->write_conn, CURLOPT_READFUNCTION, write_data_bg);
+ curl_easy_setopt_or_die(fh->write_conn, CURLOPT_READDATA, fh);
+ curl_easy_setopt_or_die(fh->write_conn, CURLOPT_LOW_SPEED_LIMIT, 1);
diff --git a/testing/curlftpfs/510-free_ftpfs_file-memleak-fix.patch b/testing/curlftpfs/510-free_ftpfs_file-memleak-fix.patch
new file mode 100644
index 0000000000..38a77ac9a6
--- /dev/null
+++ b/testing/curlftpfs/510-free_ftpfs_file-memleak-fix.patch
@@ -0,0 +1,13 @@
+Fix a memory leak. See Bug #587250.
+
+--- a/ftpfs.c 2008-04-30 01:05:47.000000000 +0200
++++ a/ftpfs.c.slesimple 2010-01-01 22:12:10.000000000 +0100
+@@ -614,6 +614,8 @@ static void free_ftpfs_file(struct ftpfs
+ sem_destroy(&fh->data_need);
+ sem_destroy(&fh->data_written);
+ sem_destroy(&fh->ready);
++ if (fh->buf.size) { buf_free(&fh->buf); }
++ if (fh->stream_buf.size) { buf_free(&fh->stream_buf); }
+ free(fh);
+ }
+
diff --git a/testing/curlftpfs/520-nocache-memleak-fix.patch b/testing/curlftpfs/520-nocache-memleak-fix.patch
new file mode 100644
index 0000000000..2c351a42b3
--- /dev/null
+++ b/testing/curlftpfs/520-nocache-memleak-fix.patch
@@ -0,0 +1,58 @@
+Fix a memory leak when cache is disabled. Closes: #614347.
+
+diff -ur curlftpfs-0.9.2/cache.c curlftpfs-0.9.2-olexat/cache.c
+--- curlftpfs-0.9.2/cache.c 2008-04-30 01:03:09.000000000 +0200
++++ curlftpfs-0.9.2-olexat/cache.c 2011-02-04 16:43:05.000000000 +0100
+@@ -25,7 +25,7 @@
+ time_t last_cleaned;
+ };
+
+-static struct cache cache;
++struct cache cache;
+
+ struct node {
+ struct stat stat;
+diff -ur curlftpfs-0.9.2/ftpfs-ls.c curlftpfs-0.9.2-olexat/ftpfs-ls.c
+--- curlftpfs-0.9.2/ftpfs-ls.c 2008-04-23 12:55:41.000000000 +0200
++++ curlftpfs-0.9.2-olexat/ftpfs-ls.c 2011-02-07 17:23:37.000000000 +0100
+@@ -25,6 +25,13 @@
+ #include "charset_utils.h"
+ #include "ftpfs-ls.h"
+
++struct cache {
++ int on;
++ char incomplete[];
++};
++
++extern struct cache cache;
++
+ static int parse_dir_unix(const char *line,
+ struct stat *sbuf,
+ char *file,
+@@ -243,8 +256,10 @@
+ reallink = g_strdup(link);
+ }
+ int linksize = strlen(reallink);
+- cache_add_link(full_path, reallink, linksize+1);
+- DEBUG(1, "cache_add_link: %s %s\n", full_path, reallink);
++ if (cache.on) {
++ cache_add_link(full_path, reallink, linksize+1);
++ DEBUG(1, "cache_add_link: %s %s\n", full_path, reallink);
++ }
+ if (linkbuf && linklen) {
+ if (linksize > linklen) linksize = linklen - 1;
+ strncpy(linkbuf, reallink, linksize);
+@@ -257,8 +272,10 @@
+ DEBUG(1, "filler: %s\n", file);
+ filler(h, file, &stat_buf);
+ } else {
+- DEBUG(1, "cache_add_attr: %s\n", full_path);
+- cache_add_attr(full_path, &stat_buf);
++ if (cache.on) {
++ DEBUG(1, "cache_add_attr: %s\n", full_path);
++ cache_add_attr(full_path, &stat_buf);
++ }
+ }
+
+ DEBUG(2, "comparing %s %s\n", name, file);
+
diff --git a/testing/curlftpfs/530-curlftpfs__no_verify_hostname.patch b/testing/curlftpfs/530-curlftpfs__no_verify_hostname.patch
new file mode 100644
index 0000000000..578eaa7b96
--- /dev/null
+++ b/testing/curlftpfs/530-curlftpfs__no_verify_hostname.patch
@@ -0,0 +1,21 @@
+Author: Georg Oechsler
+Subject: Fix no_verify_hostname option with recent versions of curl
+
+Index: curlftpfs-0.9.2/ftpfs.c
+===================================================================
+--- curlftpfs-0.9.2.orig/ftpfs.c
++++ curlftpfs-0.9.2/ftpfs.c
+@@ -1626,9 +1626,10 @@ static void set_common_curl_stuff(CURL*
+ }
+
+ if (ftpfs.no_verify_hostname) {
+- /* The default is 2 which verifies even the host string. This sets to 1
+- * which means verify the host but not the string. */
+- curl_easy_setopt_or_die(easy, CURLOPT_SSL_VERIFYHOST, 1);
++ /* The default is 2 which verifies even the host string. This sets
++ * to 0 which means the connection succeeds regardless of the names
++ * in the certificate. */
++ curl_easy_setopt_or_die(easy, CURLOPT_SSL_VERIFYHOST, 0);
+ }
+
+ curl_easy_setopt_or_die(easy, CURLOPT_INTERFACE, ftpfs.interface);
diff --git a/testing/curlftpfs/540-consistent-feature-flag.patch b/testing/curlftpfs/540-consistent-feature-flag.patch
new file mode 100644
index 0000000000..71a37fecd0
--- /dev/null
+++ b/testing/curlftpfs/540-consistent-feature-flag.patch
@@ -0,0 +1,60 @@
+Author: Vincent Bernat
+Subject: ensure consistent use of _XOPEN_SOURCE
+
+See bug #748143
+
+Index: curlftpfs-0.9.2/Makefile.am
+===================================================================
+--- curlftpfs-0.9.2.orig/Makefile.am
++++ curlftpfs-0.9.2/Makefile.am
+@@ -5,7 +5,7 @@ DIST_SUBDIRS = $(SUBDIRS) tests
+
+ LIBICONV = @LIBICONV@
+
+-AM_CPPFLAGS = -DFUSE_USE_VERSION=26
++AM_CPPFLAGS = -DFUSE_USE_VERSION=26 -D_XOPEN_SOURCE=600
+ AM_LDFLAGS = $(LIBICONV)
+
+ bin_PROGRAMS = curlftpfs
+Index: curlftpfs-0.9.2/ftpfs-ls.c
+===================================================================
+--- curlftpfs-0.9.2.orig/ftpfs-ls.c
++++ curlftpfs-0.9.2/ftpfs-ls.c
+@@ -6,12 +6,6 @@
+ See the file COPYING.
+ */
+
+-#ifndef __FreeBSD__
+-#define _XOPEN_SOURCE 600
+-#else
+-#define _XOPEN_SOURCE
+-#endif
+-
+ #include <time.h>
+ #include <string.h>
+ #include <sys/types.h>
+Index: curlftpfs-0.9.2/tests/Makefile.am
+===================================================================
+--- curlftpfs-0.9.2.orig/tests/Makefile.am
++++ curlftpfs-0.9.2/tests/Makefile.am
+@@ -2,7 +2,7 @@ EXTRA_DIST = run_tests.sh
+
+ noinst_PROGRAMS = ftpfs-ls_unittest
+
+-AM_CPPFLAGS = -DFUSE_USE_VERSION=25
++AM_CPPFLAGS = -DFUSE_USE_VERSION=25 -D_XOPEN_SOURCE=600
+
+ ftpfs_ls_unittest_SOURCES = ftpfs-ls_unittest.c
+ if FUSE_OPT_COMPAT
+Index: curlftpfs-0.9.2/tests/ftpfs-ls_unittest.c
+===================================================================
+--- curlftpfs-0.9.2.orig/tests/ftpfs-ls_unittest.c
++++ curlftpfs-0.9.2/tests/ftpfs-ls_unittest.c
+@@ -6,7 +6,6 @@
+ See the file COPYING.
+ */
+
+-#define _XOPEN_SOURCE 600 /* glibc2 needs this */
+ #include <time.h>
+ #include <stdlib.h>
+ #include <stdio.h>
diff --git a/testing/curlftpfs/550-getpass-prototype.patch b/testing/curlftpfs/550-getpass-prototype.patch
new file mode 100644
index 0000000000..6ec55eff58
--- /dev/null
+++ b/testing/curlftpfs/550-getpass-prototype.patch
@@ -0,0 +1,20 @@
+Description: add getpass() prototype
+ This function has been deprecated and is not declared with
+ _XOPEN_SOURCE>=600. To avoid fiddling too much with feature flags, we
+ just add its prototype to ensure a correct declaration.
+Forwarded: no (dead upstream)
+Bug: #795879
+
+Index: curlftpfs-0.9.2/ftpfs.c
+===================================================================
+--- curlftpfs-0.9.2.orig/ftpfs.c
++++ curlftpfs-0.9.2/ftpfs.c
+@@ -36,6 +36,8 @@
+
+ #define MAX_BUFFER_LEN (300*1024)
+
++extern char *getpass(const char *prompt);
++
+ struct ftpfs ftpfs;
+ static char error_buf[CURL_ERROR_SIZE];
+
diff --git a/testing/curlftpfs/APKBUILD b/testing/curlftpfs/APKBUILD
new file mode 100644
index 0000000000..1e13c16969
--- /dev/null
+++ b/testing/curlftpfs/APKBUILD
@@ -0,0 +1,44 @@
+# Contributor: Milan P. Stanić <mps@arvanta.net>
+# Maintainer: Milan P. Stanić <mps@arvanta.net>
+pkgname=curlftpfs
+pkgver=0.9.2
+pkgrel=0
+pkgdesc="Fuse mount FTP server"
+url="https://sourceforge.net/projects/curlftpfs/"
+arch="all"
+license="GPL-2.0-only"
+depends="libcurl glib"
+makedepends="curl-dev glib-dev fuse-dev"
+install=""
+subpackages="$pkgname-doc"
+source="https://downloads.sourceforge.net/project/curlftpfs/curlftpfs/0.9.2/curlftpfs-0.9.2.tar.gz
+ 001-uclibc_mod.patch
+ 500-fix-CURLOPT_INFILESIZE.patch
+ 510-free_ftpfs_file-memleak-fix.patch
+ 520-nocache-memleak-fix.patch
+ 530-curlftpfs__no_verify_hostname.patch
+ 540-consistent-feature-flag.patch
+ 550-getpass-prototype.patch
+ "
+builddir="$srcdir/${pkgname}-${pkgver}"
+patch_args="-p1"
+
+build() {
+ cd "$builddir"
+ ./configure --prefix=/usr
+ make CFLAGS="-I/usr/include/fuse -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -D__off_t=off_t -D_FILE_OFFSET_BITS=64"
+}
+
+package() {
+ cd "$builddir"
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="df07c418d175f766c89525017fc56e79726061eee0c3a6607ded0e1bf24f64f1475ba0e546157b65892194e3c4414c120822bf8fb175437e68366f82de216067 curlftpfs-0.9.2.tar.gz
+a5705945c04382db2f82b6f8c34e9367b6ee3d442d11744403c78f7a9236d5117fbb0a94824dc5c5572bcda701104f2769264764ab4b5d24017ff58f6a3fa3d1 001-uclibc_mod.patch
+ee0055cb2271da9ed5251800a4d0a7bc64b68482d6f221127d1dbe3df6bdda22a45a9e9ea7f0c938d1eac484a86920c9a76dbd160deb87f78da1515373309f57 500-fix-CURLOPT_INFILESIZE.patch
+e37011cfcb60004d68a4cb76da3a811349166063057e7af5d75d9f982ffab6093cda648f07ee1dfc30abfc8ef19894ae7cb6f90b3d3ca4b1a4affe3a19a95f08 510-free_ftpfs_file-memleak-fix.patch
+ffef57586e2023c3257bfa1d48c5dd318c17e80867b2c467ee99a538813d459568260daf23caf84a751a7d1c18fd05b54d967a5d8e740adbd1bac1af1effe74c 520-nocache-memleak-fix.patch
+f3478952ef8667ac808d0a1c97c7211da8a091ef27fe2fc87cb2a685060c479af1422e2a8cfaea6d3cd3014758cbb4cc25a3dbec4d9b50da03195cd294efb296 530-curlftpfs__no_verify_hostname.patch
+4448ee5ebb79e404cc0eb37ef39c510015ef9b8901724c396ffee52bc45ba8c2636f6f3e6ec2dc4390b37c5662b54c72a13df32807dabfc523a0f65f484a8540 540-consistent-feature-flag.patch
+5657e2261012b81fda02488a0aa083d88c3d9ea2b435b38a46dc1e04afc34824aa452dd903f1ac956a37c9c2fa19f65c4021d531450abbe47e074dbad5819a63 550-getpass-prototype.patch"