Compare commits

..

No commits in common. "rawhide" and "f42" have entirely different histories.

5 changed files with 91 additions and 5 deletions

2
.gitignore vendored
View file

@ -21,5 +21,3 @@
/aerc-0.20.0-vendor.tar.bz2
/aerc-0.20.1.tar.gz
/aerc-0.20.1-vendor.tar.bz2
/aerc-0.21.0.tar.gz
/aerc-0.21.0-vendor.tar.bz2

View file

@ -7,7 +7,7 @@
# https://git.sr.ht/~rjarry/aerc
%global goipath git.sr.ht/~rjarry/aerc
%global version0 0.21.0
%global version0 0.20.1
%gometa -L -f
@ -29,6 +29,9 @@ Source0: %{gosource}
Source1: %{archivename}-vendor.tar.bz2
Source2: go-vendor-tools.toml
Patch0: open-only-use-part-basename-for-temp-file.patch
Patch1: open-fix-opening-text-html-messages.patch
BuildRequires: desktop-file-utils
# wrap and colorize filters are written in C
BuildRequires: gcc
@ -38,6 +41,8 @@ BuildRequires: gnupg
BuildRequires: notmuch-devel
BuildRequires: scdoc
# for libnotmuch.so
Requires: notmuch
# used in the builtin `html` filter
Requires: w3m
# aerc is mainly targeted at developers using a git+email workflow

View file

@ -0,0 +1,38 @@
From 2bbe75fe0bc87ab4c1e16c5a18c6200224391629 Mon Sep 17 00:00:00 2001
From: Nicole Patricia Mazzuca <nicole@streganil.no>
Date: Fri, 9 May 2025 09:32:21 +0200
Subject: [PATCH aerc] open: fix opening text/html messages
This fixes a bug introduced in 93bec0de8ed5ab3d6b1f01026fe2ef20fa154329:
aerc started using `path.Base(<part>)`, which returns `"."` on an empty
path, but still checked for `""` two lines later.
On macOS, the result is that aerc attempts to open the directory:
```
open /var/folders/vn/hs0zvdsx3vq6svvry8s1bnym0000gn/T/aerc-4229266673: is a directory
```
Signed-off-by: Nicole Patricia Mazzuca <nicole@streganil.no>
Acked-by: Robin Jarry <robin@jarry.cc>
---
commands/msgview/open.go | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/commands/msgview/open.go b/commands/msgview/open.go
index a6e43cb8da5f..7c770d4a90b7 100644
--- a/commands/msgview/open.go
+++ b/commands/msgview/open.go
@@ -59,7 +59,7 @@ func (o Open) Execute(args []string) error {
}
filename := path.Base(part.FileName())
var tmpFile *os.File
- if filename == "" {
+ if filename == "." {
extension := ""
if exts, _ := mime.ExtensionsByType(mimeType); len(exts) > 0 {
extension = exts[0]
--
2.49.0

View file

@ -0,0 +1,45 @@
From 93bec0de8ed5ab3d6b1f01026fe2ef20fa154329 Mon Sep 17 00:00:00 2001
From: Robin Jarry <robin@jarry.cc>
Date: Wed, 9 Apr 2025 10:49:24 +0200
Subject: [PATCH aerc] open: only use part basename for temp file
When an attachment part has a name such as "/tmp/55208186_AllDocs.pdf",
aerc creates a temp folder and tries to store the file by blindly
concatenating the path as follows:
/tmp/aerc-3444057757/tmp/55208186_AllDocs.pdf
And when writing to this path, it gets a "No such file or directory"
error because the intermediate "tmp" subfolder isn't created.
Reported-by: Erik Colson <eco@ecocode.net>
Signed-off-by: Robin Jarry <robin@jarry.cc>
---
commands/msgview/open.go | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/commands/msgview/open.go b/commands/msgview/open.go
index 4293b7e4892c..a6e43cb8da5f 100644
--- a/commands/msgview/open.go
+++ b/commands/msgview/open.go
@@ -5,6 +5,7 @@ import (
"io"
"mime"
"os"
+ "path"
"path/filepath"
"git.sr.ht/~rjarry/aerc/app"
@@ -56,7 +57,7 @@ func (o Open) Execute(args []string) error {
app.PushError(err.Error())
return
}
- filename := part.FileName()
+ filename := path.Base(part.FileName())
var tmpFile *os.File
if filename == "" {
extension := ""
--
2.49.0

View file

@ -1,2 +1,2 @@
SHA512 (aerc-0.21.0.tar.gz) = b58b3ba9fe36a22b5717d48d7b1caf37303003cb4f32138e79f9775a96dbc5d8b27700091dbfe56f31954be5881467a7c5d8c1895d9161eda19a0d7e5c4750aa
SHA512 (aerc-0.21.0-vendor.tar.bz2) = 5deb3e85cdeed9d0366e08ba851bbc4382dfafd3e2ecfb561cfc9b0afdd90183d72683a4c055d95a474144a2a5ba816c2946a1ade9acc85119d0e3242ef8af60
SHA512 (aerc-0.20.1.tar.gz) = 7221217b7f0e6f92b589864b2e214b3edad3a2f702ab1d6b83f11eba6bb443bf334e76dbb61a67a13a9673e5e5106428ea3ba0ade940dc7f2cf488076783f4a5
SHA512 (aerc-0.20.1-vendor.tar.bz2) = 5c940f028f1701631dc9b293b462de1f5c260de781517e8b199a2e92da7d6532f76f675963459f917ff5535b90a4bb1084e9a19093690f9dcf7357d9a898f66a