Change default tmpdir from /tmp to /var/tmp

Resolves: #858264
This commit is contained in:
Honza Horák 2012-09-27 15:23:02 +02:00
parent 68b28ff599
commit 0478cee6b6
2 changed files with 153 additions and 1 deletions

146
mutt-1.5.21-tmpdir.patch Normal file
View File

@ -0,0 +1,146 @@
Subject: Changed tmpdir default to /var/tmp
By default, mutt stores drafts in
/tmp/mutt-$HOSTNAME-$UID-$PID-$REV. /tmp is designed to hold data
that isn't guaranteed to be preserved between different invocations
of programmes. For practical purposes, and on Debian at least, this
translates to files being deleted on every boot, unless TMPTIME is
amended in /etc/default/rcS and /tmp is not a tmpfs.
This behaviour can cause loss of data, e.g. when the laptop dies or
turns itself off due to low power; the user might not have a chance
to commit the temporary mail draft s/he was working on to
non-volatile storage.
I suggest that mutt should use /var/tmp by default for its mail
drafts, as that directory is also temporary in nature, but cleaned
less frequently than /tmp. More specifically, the FHS dictates that
"files and directories located in /var/tmp must not be deleted when
the system is booted."
This patch modifies all occurrences of $tmpdir, $TMPDIR and Tempdir, but
not the documentation, which looks like it's generated from init.h.
Patch created by: martin f. krafft <madduck@madduck.net>, submitted to
http://dev.mutt.org/trac/ticket/3236
and repaired to be able to apply.
Fedora related: Upstream is not willing to change defualt tmpdir,
because they don't believe /var/tmp is on all supported platforms.
However, they agree with changing it in distrubution packages.
More info at http://dev.mutt.org/trac/ticket/3236
diff -up mutt-1.5.21/doc/manual.html.tmpdir mutt-1.5.21/doc/manual.html
--- mutt-1.5.21/doc/manual.html.tmpdir 2012-09-27 15:02:53.455915783 +0200
+++ mutt-1.5.21/doc/manual.html 2012-09-27 15:04:07.439427603 +0200
@@ -3090,7 +3090,7 @@ information, notably the type, encoding
</p><p>
Attachments appear as follows by default:
</p><pre class="screen">
-- 1 [text/plain, 7bit, 1K] /tmp/mutt-euler-8082-0 &lt;no description&gt;
+- 1 [text/plain, 7bit, 1K] /var/tmp/mutt-euler-8082-0 &lt;no description&gt;
2 [applica/x-gunzip, base64, 422K] ~/src/mutt-0.85.tar.gz &lt;no description&gt;
</pre><p>
The <span class="quote">“<span class="quote">-</span>”</span> denotes that Mutt will delete the file after
@@ -6944,7 +6944,7 @@ Default: (empty)</p></div><p>
This variable allows you to specify where Mutt will place its
temporary files needed for displaying and composing messages. If
this variable is not set, the environment variable <code class="literal">$TMPDIR</code> is
-used. If <code class="literal">$TMPDIR</code> is not set then <span class="quote">“<span class="quote"><code class="literal">/tmp</code></span>”</span> is used.
+used. If <code class="literal">$TMPDIR</code> is not set then <span class="quote">“<span class="quote"><code class="literal">/var/tmp</code></span>”</span> is used.
</p></div><div class="sect2" title="3.294. to_chars"><div class="titlepage"><div><div><h3 class="title"><a id="to-chars"></a>3.294. to_chars</h3></div></div></div><div class="literallayout"><p>Type: string<br />
Default: <span class="quote">“<span class="quote"><code class="literal"> +TCFL</code></span>”</span></p></div><p>
Controls the character used to indicate mail addressed to you. The
diff -up mutt-1.5.21/doc/manual.txt.tmpdir mutt-1.5.21/doc/manual.txt
--- mutt-1.5.21/doc/manual.txt.tmpdir 2012-09-27 15:04:20.601518838 +0200
+++ mutt-1.5.21/doc/manual.txt 2012-09-27 15:04:50.154724683 +0200
@@ -4524,7 +4524,7 @@ description.
Attachments appear as follows by default:
-- 1 [text/plain, 7bit, 1K] /tmp/mutt-euler-8082-0 <no description>
+- 1 [text/plain, 7bit, 1K] /var/tmp/mutt-euler-8082-0 <no description>
2 [applica/x-gunzip, base64, 422K] ~/src/mutt-0.85.tar.gz <no description>
The ?-? denotes that Mutt will delete the file after sending (or postponing, or
@@ -9746,7 +9746,7 @@ Default: (empty)
This variable allows you to specify where Mutt will place its temporary files
needed for displaying and composing messages. If this variable is not set, the
-environment variable $TMPDIR is used. If $TMPDIR is not set then ?/tmp? is
+environment variable $TMPDIR is used. If $TMPDIR is not set then ?/var/tmp? is
used.
3.294. to_chars
diff -up mutt-1.5.21/doc/Muttrc.tmpdir mutt-1.5.21/doc/Muttrc
--- mutt-1.5.21/doc/Muttrc.tmpdir 2012-09-27 15:02:16.391661482 +0200
+++ mutt-1.5.21/doc/Muttrc 2012-09-27 15:02:33.822780695 +0200
@@ -4515,7 +4515,7 @@ attachments -I message/external-body
# This variable allows you to specify where Mutt will place its
# temporary files needed for displaying and composing messages. If
# this variable is not set, the environment variable $TMPDIR is
-# used. If $TMPDIR is not set then ``/tmp'' is used.
+# used. If $TMPDIR is not set then ``/var/tmp'' is used.
#
#
# set to_chars=" +TCFL"
diff -up mutt-1.5.21/doc/reference.html.tmpdir mutt-1.5.21/doc/reference.html
--- mutt-1.5.21/doc/reference.html.tmpdir 2012-09-27 15:05:12.288879110 +0200
+++ mutt-1.5.21/doc/reference.html 2012-09-27 15:05:51.130151344 +0200
@@ -2804,7 +2804,7 @@ Default: (empty)</p></div><p>
This variable allows you to specify where Mutt will place its
temporary files needed for displaying and composing messages. If
this variable is not set, the environment variable <code class="literal">$TMPDIR</code> is
-used. If <code class="literal">$TMPDIR</code> is not set then <span class="quote">“<span class="quote"><code class="literal">/tmp</code></span>”</span> is used.
+used. If <code class="literal">$TMPDIR</code> is not set then <span class="quote">“<span class="quote"><code class="literal">/var/tmp</code></span>”</span> is used.
</p></div><div class="sect2" title="3.294. to_chars"><div class="titlepage"><div><div><h3 class="title"><a id="to-chars"></a>3.294. to_chars</h3></div></div></div><div class="literallayout"><p>Type: string<br />
Default: <span class="quote">“<span class="quote"><code class="literal"> +TCFL</code></span>”</span></p></div><p>
Controls the character used to indicate mail addressed to you. The
diff -up mutt-1.5.21/init.c.tmpdir mutt-1.5.21/init.c
--- mutt-1.5.21/init.c.tmpdir 2012-09-27 14:59:10.099395476 +0200
+++ mutt-1.5.21/init.c 2012-09-27 14:59:23.292484023 +0200
@@ -2992,7 +2992,7 @@ void mutt_init (int skip_sys_rc, LIST *c
MailcapPath = safe_strdup ("~/.mailcap:" PKGDATADIR "/mailcap:" SYSCONFDIR "/mailcap:/etc/mailcap:/usr/etc/mailcap:/usr/local/etc/mailcap");
}
- Tempdir = safe_strdup ((p = getenv ("TMPDIR")) ? p : "/tmp");
+ Tempdir = safe_strdup ((p = getenv ("TMPDIR")) ? p : "/var/tmp");
p = getenv ("VISUAL");
if (!p)
diff -up mutt-1.5.21/init.h.tmpdir mutt-1.5.21/init.h
--- mutt-1.5.21/init.h.tmpdir 2012-09-27 14:59:46.214638908 +0200
+++ mutt-1.5.21/init.h 2012-09-27 15:00:21.541877784 +0200
@@ -3178,7 +3178,7 @@ struct option_t MuttVars[] = {
** This variable allows you to specify where Mutt will place its
** temporary files needed for displaying and composing messages. If
** this variable is not set, the environment variable \fC$$$TMPDIR\fP is
- ** used. If \fC$$$TMPDIR\fP is not set then ``\fC/tmp\fP'' is used.
+ ** used. If \fC$$$TMPDIR\fP is not set then ``\fC/var/tmp\fP'' is used.
*/
{ "to_chars", DT_STR, R_BOTH, UL &Tochars, UL " +TCFL" },
/*
diff -up mutt-1.5.21/install-sh.tmpdir mutt-1.5.21/install-sh
--- mutt-1.5.21/install-sh.tmpdir 2012-09-27 15:00:32.246950740 +0200
+++ mutt-1.5.21/install-sh 2012-09-27 15:01:15.957247967 +0200
@@ -332,7 +332,7 @@ do
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
;;
*)
- tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+ tmpdir=${TMPDIR-/var/tmp}/ins$RANDOM-$$
trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
if (umask $mkdir_umask &&
diff -up mutt-1.5.21/muttbug.sh.in.tmpdir mutt-1.5.21/muttbug.sh.in
--- mutt-1.5.21/muttbug.sh.in.tmpdir 2012-09-27 15:01:37.097392500 +0200
+++ mutt-1.5.21/muttbug.sh.in 2012-09-27 15:01:52.061494226 +0200
@@ -85,7 +85,7 @@ esac
exec > /dev/tty
exec < /dev/tty
-SCRATCH=${TMPDIR-/tmp}/`basename $0`.`hostname`.$$
+SCRATCH=${TMPDIR-/var/tmp}/`basename $0`.`hostname`.$$
mkdir ${SCRATCH} || \
{

View File

@ -16,7 +16,7 @@
Summary: A text mode mail user agent Summary: A text mode mail user agent
Name: mutt Name: mutt
Version: 1.5.21 Version: 1.5.21
Release: 14%{?dist} Release: 15%{?dist}
Epoch: 5 Epoch: 5
# The entire source code is GPLv2+ except # The entire source code is GPLv2+ except
# pgpewrap.c setenv.c sha1.c wcwidth.c which are Public Domain # pgpewrap.c setenv.c sha1.c wcwidth.c which are Public Domain
@ -37,6 +37,7 @@ Patch11: mutt-1.5.21-certscomp.patch
Patch12: mutt-1.5.21-notation.patch Patch12: mutt-1.5.21-notation.patch
Patch13: mutt-1.5.21-syncdebug.patch Patch13: mutt-1.5.21-syncdebug.patch
Patch14: mutt-1.5.21-writehead.patch Patch14: mutt-1.5.21-writehead.patch
Patch15: mutt-1.5.21-tmpdir.patch
Url: http://www.mutt.org/ Url: http://www.mutt.org/
Requires: mailcap urlview Requires: mailcap urlview
BuildRequires: ncurses-devel BuildRequires: ncurses-devel
@ -85,6 +86,7 @@ for selecting groups of messages.
%patch12 -p1 -b .notation %patch12 -p1 -b .notation
%patch13 -p1 -b .syncdebug %patch13 -p1 -b .syncdebug
%patch14 -p1 -b .writehead %patch14 -p1 -b .writehead
%patch15 -p1 -b .tmpdir
sed -i.gpgerror 's/`$GPGME_CONFIG --libs`/"\0 -lgpg-error"/' configure sed -i.gpgerror 's/`$GPGME_CONFIG --libs`/"\0 -lgpg-error"/' configure
@ -163,6 +165,10 @@ rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/INSTALL
%{_mandir}/man5/muttrc.* %{_mandir}/man5/muttrc.*
%changelog %changelog
* Thu Sep 27 2012 Honza Horak <hhorak@redhat.com> - 5:1.5.21-15
- Change default tmpdir from /tmp to /var/tmp
Resolves: #858264
* Mon Sep 10 2012 Honza Horak <hhorak@redhat.com> - 5:1.5.21-14 * Mon Sep 10 2012 Honza Horak <hhorak@redhat.com> - 5:1.5.21-14
- Minor spec file changes - Minor spec file changes