[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#8055: 24.0.50; [nnmaildir/Gnus] please support in-filename Maildir f
bug#8055: 24.0.50; [nnmaildir/Gnus] please support in-filename Maildir flags
Wed, 16 Feb 2011 15:24:15 +0100
Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux)
NB, I (X-Debbugs-)Cc:ed all the people I know have dealt with this
problem, sooner or later. Given that I could not find any related
bug in the GNU BTS, I thought you would have been interested, please
forgive me if this is not the case.
To anyone who replies: please remove any cc: except the BTS and mine, if
not explicitly requested, TIA.
Disclaimer: I know this is quite an old version of emacs-snapshot, but
given that this bug is quite old, I wanted to report it with the oldest
version I had installed. I will upgrade to the latest emacs-snasphot
package  in the next days.
I guess there is nothing new in the nnmaildir support in Gnus, at least
it seems that nothing has changed since Brian Nelson's rant on the
debian-user@ mailing list back in 2004-08-04 . in Brian words:
[nnamildir] uses its own, errr, "system". In each Maildir directory,
it creates a ".nnmaildir" directory, which in turn contains a "marks"
directory, which in turn contains directories like "read", "reply",
and "ticked", which in turn contain hard links to the original message
For example, if a mail was marked as seen and replied, you would find
a hard link in .nnmaildir/marks/read/1234 and a hard link in
.nnmaildir/marks/reply/1234, both of which point to cur/1234.
 Message-ID: <address@hidden>
Without even talking about file pollution, this is a no-op, especially
if like Brian (and myself, FWIW) you want to synchronize your Maildir
using OfflineIMAP .
Brian solved this *big* problem by writing his own script to synchronize
in-filename Maildir flags with the nnmaildir ones (his script is
included in the email above). And people started using this script
directly from OfflineIMAP .
Another solution is to install a local IMAP server , but I do not
want to install a *full* IMAP server when what I need is simply a
synchronized copy of my remote IMAP Maildir. And the required space
counts (at least for me), on a clean Debian sid chroot:
address@hidden:/# apt-get install dovecot-imapd
The following NEW packages will be installed:
dovecot-common dovecot-imapd libgcrypt11 libgnutls26 libgpg-error0
libgssapi-krb5-2 libk5crypto3 libkeyutils1 libkrb5-3 libkrb5support0
libldap-2.4-2 libmysqlclient16 libpq5 libsasl2-2 libsasl2-modules
libtasn1-3 mysql-common openssl ucf
0 upgraded, 19 newly installed, 0 to remove and 0 not upgraded.
Need to get 12.5 MB of archives.
After this operation, 27.7 MB of additional disk space will be used.
Do you want to continue [Y/n]? n
address@hidden:/# apt-get install offlineimap
The following NEW packages will be installed:
file libexpat1 libmagic1 mime-support offlineimap python
python-minimal python-support python2.6 python2.6-minimal
0 upgraded, 10 newly installed, 0 to remove and 0 not upgraded.
Need to get 4763 kB of archives.
After this operation, 19.3 MB of additional disk space will be used.
Do you want to continue [Y/n]? n
Given that I am switching to a LUKS-encrypted SSD as my primary HD ,
the number of files written by the current nnmaildir support in Gnus is
very much important. Not saying anything about the impact on disk
space... So I did some tests on my non-SSD HD  and the benchmark
method, AKA my .emacs:
(setq debug-on-error t)
(setq gnus-select-method '(nnmaildir "local"
;;;; measure Gnus loading time
(defun gismo-gnus ()
(let ((*gnus-load-start* (current-time)))
(message "My Gnus loaded in %ds"
(hi lo ms)
(- (+ hi lo)
(+ (first *gnus-load-start*)
 actually, the HD was bought last September and because of this bug
(as well as others) I have not completely switched yet :-(
 the default which came with my IBM/Lenovo ThinkPad X60
After having imported the Maildir  in Gnus (keeping an unmodified
copy as ~/Maildir.BCK), I quit and compared the disk space and the
number of files in both Maildirs:
$ du -s $MAILDIR/
$ find $MAILDIR/ -type f | wc -l
 please note that this is *not* my whole Maildir (around 1400
folders), but only a subset, still containing 747 folders, the most
I then re-iterated the test above at different times, always taking care
of having done other work in between, and the results are not at all
encouraging (Gnus vs. BCK):
1) the difference in disk space is constant, but significant,
i.e. 1.093GB (6272120 - 5125812 = 1146308)
2) the difference in the number of files is constant as well, but now it
becomes crazy, i.e. 3 times more (824905 - 274722 = 550183)
3) the time required to import the Maildir is way too much and not
constant at all, given that the function above returned
24113s -38647s 14399s -51172s 14145s 14224s
I do not understand the reason for the negative values: I thought
they were caused by the fact that I performed some tests over the
night (and I completely forgot to also keep the timestamps), but
given that `current-time' returns the seconds since the Unix epoch
, crossing the midnight should not be a problem.
Removing the two negative values above , the average is 16720s,
more than 4.5 hours! My "natural" observations agree with this
value: I sometime started the test on purpose just before going to
bed to be sure it will be finished the morning after .
4) the reload time, i.e. the time Gnus needed to start with an
already-imported Maildir, is more constant, i.e. 1129s, around 19
minutes (raw values are 1130s, 1229s, 1175s, 1089s and 1020s)
 I am too lazy now to try to sort good values (and tired of this bug
and all the tests as well)
 I usually sleep between 6 and 7 hours per night
Now that I know that it is for me impossible to use Gnus with Maildir, I
would like to help *in any way* to find a solution, which IMHO is quite
simple: supporting the in-filename Maildir flags.
I am not such a good programmer (I know a bit of Lisp, both the Common
and Emacs variants), however I have a strong motivation to not leave
Gnus. I tried to live with Mutt for a while, but it was like learning
to walk again and there was nothing similar to the `*Group*' buffer, not
even talking about the default way Gnus shows emails, i.e. hiding the
already read (AKA "ancient") ones.
Gismo / Luca
If Emacs crashed, and you have the Emacs process in the gdb debugger,
please include the output from the following gdb commands:
`bt full' and `xbacktrace'.
For information about debugging Emacs, please read the file
In GNU Emacs 22.214.171.124 (x86_64-pc-linux-gnu, GTK+ Version 2.20.1)
of 2010-12-13 on elegiac, modified by Debian
(emacs-snapshot package, version 1:20101212-2)
configured using `configure '--build' 'x86_64-linux-gnu' '--host'
'x86_64-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib'
'--libexecdir=/usr/lib' '--localstatedir=/var' '--infodir=/usr/share/info'
'--without-compress-info' '--with-x=yes' '--with-x-toolkit=gtk'
'host_alias=x86_64-linux-gnu' 'CFLAGS=-DDEBIAN -DSITELOAD_PURESIZE_EXTRA=5000
-g -O2' 'LDFLAGS=-g -Wl,--as-needed' 'CPPFLAGS=''
value of $LC_ALL: nil
value of $LC_COLLATE: nil
value of $LC_CTYPE: nil
value of $LC_MESSAGES: en_US.UTF-8
value of $LC_MONETARY: nil
value of $LC_NUMERIC: en_US.UTF-8
value of $LC_TIME: nil
value of $LANG: en_US.UTF-8
value of $XMODIFIERS: nil
default enable-multibyte-characters: t
Major mode: Group
Minor modes in effect:
ESC x g i s m o - g n u TAB RET ESC x r e p o r t -
e m a TAB RET
Reading active file from local via nnmaildir...
Reading active file from archive via nnfolder...
Opening nnfolder server on archive...done
Reading active file from archive via nnfolder...done
747 new newsgroups have arrived
Checking new news...done
Setting up drafts group
Warning: Setting up drafts group
My Gnus loaded in 14224s
(shadow sort mail-extr emacsbug nnfolder nndraft nnmh nnmaildir
gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg gnus-art
mm-uu mml2015 epg-config mm-view smime password-cache dig mailcap nntp
proto-stream starttls tls gnus-cache nnir gnus-sum macroexp nnoo
gnus-group time-date gnus-undo nnmail mail-source format-spec gnus-start
gnus-spec gnus-int gnus-range message sendmail regexp-opt rfc822 mml
easymenu mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231
rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils mailheader gnus-win gnus
gnus-ems nnheader gnus-util mail-utils mm-util mail-prsvr wid-edit
t-mouse cl planner-autoloads debian-el debian-el-loaddefs w3m-load
psgml-init muse-autoloads emms-auto emacs-goodies-el
emacs-goodies-custom emacs-goodies-loaddefs easy-mmode dpkg-dev-el
dpkg-dev-el-loaddefs bbdb-autoloads preview-latex tex-site auto-loads
tooltip ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar
dnd fontset image fringe lisp-mode register page menu-bar rfn-eshadow
timer select scroll-bar mouse jit-lock font-lock syntax facemenu
font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan
thai tai-viet lao korean japanese hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese case-table epa-hook
jka-cmpr-hook help simple abbrev loaddefs button minibuffer faces
cus-face files text-properties overlay md5 base64 format env code-pages
mule custom widget hashtable-print-readable backquote
make-network-process dbusbind dynamic-setting font-render-setting
move-toolbar gtk x-toolkit x multi-tty emacs)
Description: PGP signature
- bug#8055: 24.0.50; [nnmaildir/Gnus] please support in-filename Maildir flags,
Luca Capello <=