[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
03/31: gnu: curlftpfs: Add patches to fix bugs.
From: |
guix-commits |
Subject: |
03/31: gnu: curlftpfs: Add patches to fix bugs. |
Date: |
Sat, 29 Jul 2023 20:04:57 -0400 (EDT) |
nckx pushed a commit to branch master
in repository guix.
commit 8244aea1829eec8aa68289d9832e3b77a26fbed9
Author: Tobias Geerinckx-Rice <me@tobias.gr>
AuthorDate: Sun Jul 23 02:00:00 2023 +0200
gnu: curlftpfs: Add patches to fix bugs.
* gnu/packages/file-systems.scm (curlftpfs)[source]: Add patches.
* gnu/packages/patches/curlftpfs-fix-error-closing-file.patch,
gnu/packages/patches/curlftpfs-fix-file-names.patch,
gnu/packages/patches/curlftpfs-fix-memory-leak.patch,
gnu/packages/patches/curlftpfs-fix-no_verify_hostname.patch: New files.
* gnu/local.mk (dist_patch_DATA): Add them.
---
gnu/local.mk | 4 ++
gnu/packages/file-systems.scm | 8 ++-
.../patches/curlftpfs-fix-error-closing-file.patch | 23 +++++++
.../patches/curlftpfs-fix-file-names.patch | 76 ++++++++++++++++++++++
.../patches/curlftpfs-fix-memory-leak.patch | 23 +++++++
.../patches/curlftpfs-fix-no_verify_hostname.patch | 27 ++++++++
6 files changed, 159 insertions(+), 2 deletions(-)
diff --git a/gnu/local.mk b/gnu/local.mk
index ae2f3dd49f..d069dd420e 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1038,6 +1038,10 @@ dist_patch_DATA =
\
%D%/packages/patches/clucene-contribs-lib.patch \
%D%/packages/patches/cube-nocheck.patch \
%D%/packages/patches/curl-use-ssl-cert-env.patch \
+ %D%/packages/patches/curlftpfs-fix-error-closing-file.patch \
+ %D%/packages/patches/curlftpfs-fix-file-names.patch \
+ %D%/packages/patches/curlftpfs-fix-memory-leak.patch \
+ %D%/packages/patches/curlftpfs-fix-no_verify_hostname.patch \
%D%/packages/patches/cursynth-wave-rand.patch \
%D%/packages/patches/cvs-CVE-2017-12836.patch \
%D%/packages/patches/d-feet-drop-unused-meson-argument.patch \
diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm
index c3cb96e151..0798325029 100644
--- a/gnu/packages/file-systems.scm
+++ b/gnu/packages/file-systems.scm
@@ -1012,8 +1012,12 @@ All of this is accomplished without a centralized
metadata server.")
(uri (string-append "mirror://sourceforge/curlftpfs/curlftpfs/" version
"/curlftpfs-" version ".tar.gz"))
(sha256
- (base32
- "0n397hmv21jsr1j7zx3m21i7ryscdhkdsyqpvvns12q7qwwlgd2f"))))
+ (base32 "0n397hmv21jsr1j7zx3m21i7ryscdhkdsyqpvvns12q7qwwlgd2f"))
+ (patches
+ (search-patches "curlftpfs-fix-error-closing-file.patch"
+ "curlftpfs-fix-file-names.patch"
+ "curlftpfs-fix-memory-leak.patch"
+ "curlftpfs-fix-no_verify_hostname.patch"))))
(build-system gnu-build-system)
(arguments
`(#:phases
diff --git a/gnu/packages/patches/curlftpfs-fix-error-closing-file.patch
b/gnu/packages/patches/curlftpfs-fix-error-closing-file.patch
new file mode 100644
index 0000000000..c90b7e9094
--- /dev/null
+++ b/gnu/packages/patches/curlftpfs-fix-error-closing-file.patch
@@ -0,0 +1,23 @@
+From d27d1cd3a79959ff1eb8439b06e108149f21141f Mon Sep 17 00:00:00 2001
+From: Joseph Lansdowne <j49137@gmail.com>
+Date: Sun, 31 Mar 2019 19:26:10 +0100
+Subject: [PATCH] fix error on closing written file
+
+---
+ ChangeLog | 1 +
+ ftpfs.c | 2 +-
+ 2 files changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/ftpfs.c b/ftpfs.c
+index 0346354..34f8c38 100644
+--- a/ftpfs.c
++++ b/ftpfs.c
+@@ -503,7 +503,7 @@ static void *ftpfs_write_thread(void *data) {
+
+ 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_INFILESIZE, -1L);
+ 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/gnu/packages/patches/curlftpfs-fix-file-names.patch
b/gnu/packages/patches/curlftpfs-fix-file-names.patch
new file mode 100644
index 0000000000..04979a3b0c
--- /dev/null
+++ b/gnu/packages/patches/curlftpfs-fix-file-names.patch
@@ -0,0 +1,76 @@
+From bc3fb45db30741a60d4e8904cbd4d6118fb85741 Mon Sep 17 00:00:00 2001
+From: Joseph Lansdowne <j49137@gmail.com>
+Date: Sun, 31 Mar 2019 19:25:26 +0100
+Subject: [PATCH] fix filenames with url-reserved characters
+
+---
+ ChangeLog | 2 +-
+ path_utils.c | 28 +++++++++++++++++-----------
+ 2 files changed, 18 insertions(+), 12 deletions(-)
+
+diff --git a/path_utils.c b/path_utils.c
+index db3d7e4..4f747bb 100644
+--- a/path_utils.c
++++ b/path_utils.c
+@@ -39,9 +39,11 @@ char* get_full_path(const char* path) {
+ path = converted_path;
+ }
+
+- ret = g_strdup_printf("%s%s", ftpfs.host, path);
++ const char *const escaped_path = g_uri_escape_string(path, "/", FALSE);
++ ret = g_strdup_printf("%s%s", ftpfs.host, escaped_path);
+
+ free(converted_path);
++ free((char *) escaped_path);
+
+ return ret;
+ }
+@@ -58,9 +60,12 @@ char* get_fulldir_path(const char* path) {
+ path = converted_path;
+ }
+
+- ret = g_strdup_printf("%s%s%s", ftpfs.host, path, strlen(path) ? "/" : "");
++ const char *const escaped_path = g_uri_escape_string(path, "/", FALSE);
++ ret = g_strdup_printf(
++ "%s%s%s", ftpfs.host, escaped_path, strlen(escaped_path) ? "/" : "");
+
+ free(converted_path);
++ free((char *) escaped_path);
+
+ return ret;
+ }
+@@ -71,24 +76,25 @@ char* get_dir_path(const char* path) {
+ const char *lastdir;
+
+ ++path;
+-
+- lastdir = strrchr(path, '/');
+- if (lastdir == NULL) lastdir = path;
+
+- if (ftpfs.codepage && (lastdir - path > 0)) {
+- converted_path = g_strndup(path, lastdir - path);
++ if (ftpfs.codepage) {
++ converted_path = g_strdup(path);
+ convert_charsets(ftpfs.iocharset, ftpfs.codepage, &converted_path);
+ path = converted_path;
+- lastdir = path + strlen(path);
+ }
+
++ const char *const escaped_path = g_uri_escape_string(path, "/", FALSE);
++ lastdir = strrchr(escaped_path, '/');
++ if (lastdir == NULL) lastdir = escaped_path;
++
+ ret = g_strdup_printf("%s%.*s%s",
+ ftpfs.host,
+- lastdir - path,
+- path,
+- lastdir - path ? "/" : "");
++ lastdir - escaped_path,
++ escaped_path,
++ lastdir - escaped_path ? "/" : "");
+
+ free(converted_path);
++ free((char *) escaped_path);
+
+ return ret;
+ }
diff --git a/gnu/packages/patches/curlftpfs-fix-memory-leak.patch
b/gnu/packages/patches/curlftpfs-fix-memory-leak.patch
new file mode 100644
index 0000000000..eea801957e
--- /dev/null
+++ b/gnu/packages/patches/curlftpfs-fix-memory-leak.patch
@@ -0,0 +1,23 @@
+From 2d01202eee44d8bad5bb982e72829b4a98d58bcd Mon Sep 17 00:00:00 2001
+From: Joseph Lansdowne <j49137@gmail.com>
+Date: Thu, 4 Apr 2019 20:37:06 +0100
+Subject: [PATCH] fix memory leak
+
+---
+ ChangeLog | 1 +
+ ftpfs.c | 2 ++
+ 2 files changed, 3 insertions(+)
+
+diff --git a/ftpfs.c b/ftpfs.c
+index 34f8c38..020e559 100644
+--- a/ftpfs.c
++++ b/ftpfs.c
+@@ -607,6 +607,8 @@ static int finish_write_thread(struct ftpfs_file *fh)
+
+
+ static void free_ftpfs_file(struct ftpfs_file *fh) {
++ buf_free(&fh->buf);
++ buf_free(&fh->stream_buf);
+ if (fh->write_conn)
+ curl_easy_cleanup(fh->write_conn);
+ g_free(fh->full_path);
diff --git a/gnu/packages/patches/curlftpfs-fix-no_verify_hostname.patch
b/gnu/packages/patches/curlftpfs-fix-no_verify_hostname.patch
new file mode 100644
index 0000000000..67a3e933ad
--- /dev/null
+++ b/gnu/packages/patches/curlftpfs-fix-no_verify_hostname.patch
@@ -0,0 +1,27 @@
+From b2ae7a152921bf36a39f01de43769ee90cbbd253 Mon Sep 17 00:00:00 2001
+From: Joseph Lansdowne <j49137@gmail.com>
+Date: Tue, 9 Apr 2019 21:08:32 +0100
+Subject: [PATCH] fix option `no_verify_hostname`
+
+Broke with a curl upgrade at some point. 1 is no longer a valid option
+- not sure exactly what it used to do.
+---
+ ChangeLog | 3 +++
+ ftpfs.c | 4 +---
+ 2 files changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/ftpfs.c b/ftpfs.c
+index 020e559..207d5fd 100644
+--- a/ftpfs.c
++++ b/ftpfs.c
+@@ -1627,9 +1627,7 @@ static void set_common_curl_stuff(CURL* easy) {
+ }
+
+ 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);
++ curl_easy_setopt_or_die(easy, CURLOPT_SSL_VERIFYHOST, 0);
+ }
+
+ curl_easy_setopt_or_die(easy, CURLOPT_INTERFACE, ftpfs.interface);
- 05/31: gnu: perl-db-file: Use G-expressions., (continued)
- 05/31: gnu: perl-db-file: Use G-expressions., guix-commits, 2023/07/29
- 24/31: gnu: lxcfs: Fix build., guix-commits, 2023/07/29
- 01/31: gnu: bcachefs-tools: Fix shell script wrappers., guix-commits, 2023/07/29
- 02/31: gnu: bcachefs-tools: Remove obsolete phase & inputs., guix-commits, 2023/07/29
- 07/31: gnu: bmake: Update to 20230723., guix-commits, 2023/07/29
- 08/31: gnu: bindfs: Update to 1.17.4., guix-commits, 2023/07/29
- 19/31: gnu: font-sarasa-gothic: Update to 0.41.4., guix-commits, 2023/07/29
- 25/31: gnu: lxcfs: Use G-expressions., guix-commits, 2023/07/29
- 22/31: gnu: rewritefs: Update to 0.0.0-1.3a56de8., guix-commits, 2023/07/29
- 31/31: gnu: fuse@2, fuse@3: Reverse inheritance., guix-commits, 2023/07/29
- 03/31: gnu: curlftpfs: Add patches to fix bugs.,
guix-commits <=
- 10/31: gnu: fuse@3: Bind to default FUSE variable., guix-commits, 2023/07/29
- 21/31: gnu: jmtpfs: Mark up description., guix-commits, 2023/07/29
- 26/31: gnu: lxcfs: Update to 5.0.4., guix-commits, 2023/07/29
- 29/31: gnu: unionfs-fuse-static: Update package style., guix-commits, 2023/07/29
- 20/31: gnu: python-llfuse: Update to 1.4.4., guix-commits, 2023/07/29
- 15/31: gnu: python-psycopg2: Update to 2.9.6., guix-commits, 2023/07/29
- 23/31: gnu: rewritefs: Use G-expressions., guix-commits, 2023/07/29
- 13/31: gnu: postgresql@13: Update to 13.11., guix-commits, 2023/07/29
- 09/31: gnu: btrfs-progs: Update to 6.3.3., guix-commits, 2023/07/29
- 18/31: gnu: knot: Update to 3.2.9., guix-commits, 2023/07/29