This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: mailbox.py tries to link even on filesystem wihch does not support symbolic links
Type: behavior Stage:
Components: email, Library (Lib) Versions: Python 3.3, Python 3.4, Python 2.7
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: barry, dominik-stadler, r.david.murray
Priority: normal Keywords:

Created on 2013-03-31 19:44 by dominik-stadler, last changed 2022-04-11 14:57 by admin.

Messages (2)
msg185652 - (view) Author: Dominik Stadler (dominik-stadler) Date: 2013-03-31 19:44
I tried to use NoPriv (https://github.com/RaymiiOrg/NoPriv/) to backup emails to an USB Disk which is formatted for Windows compatibility, i.e. FAT-type filesystem, but got the error below. Seems mailbox.py still tries to create a symbolic link, which is not possible on this filesystem.

Running on ext3 file system works fine. This is on Ubuntu Precise 12.04 with latest updates installed. Python is 2.7.3-0ubuntu3.1

Getting messages from server from folder: [Gmail]/Sent Mail.
Saving message 1.
Traceback (most recent call last):
  File "./nopriv.py", line 783, in <module>
    get_messages_to_local_maildir(folder, mail)    
  File "./nopriv.py", line 236, in get_messages_to_local_maildir
    saveToMaildir(raw_email, maildir_folder)
  File "./nopriv.py", line 155, in saveToMaildir
    message_key = folder.add(msg)
  File "/usr/lib/python2.7/mailbox.py", line 276, in add
    os.link(tmp_file.name, dest)
OSError: [Errno 1] Operation not permitted
msg185699 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2013-04-01 01:28
The problem is that mailbox decides if links are possible based on the OS rather than on the file system.  This is a general problem that Python has...when the Python file system APIs, and this code, were written, OSes could only read their own file systems, and there was only one file system type per OS.

Fixing this, then, pretty much requires solving the general problem of introspecting file system capabilities.  I think there are open issues relating to that.
History
Date User Action Args
2022-04-11 14:57:43adminsetgithub: 61793
2013-04-01 01:28:32r.david.murraysetversions: + Python 3.3, Python 3.4
nosy: + barry, r.david.murray

messages: + msg185699

components: + email
type: behavior
2013-03-31 19:44:31dominik-stadlercreate