classification
Title: shutil.make_archive (xxx, zip, root_dir) is adding './' entry to archive which is wrong
Type: behavior Stage: resolved
Components: Library (Lib) Versions: Python 3.7, Python 3.6, Python 3.5, Python 2.7
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: serhiy.storchaka Nosy List: HFM, alanmcintyre, bialix, python-dev, serhiy.storchaka, tarek, twouters
Priority: normal Keywords: patch

Created on 2016-10-20 13:07 by bialix, last changed 2019-02-08 09:35 by HFM. This issue is now closed.

Files
File name Uploaded Description Edit
make-archive-test.py bialix, 2016-10-20 13:07 reproduce the problem
shutil_make_archive_zip_curdir.patch serhiy.storchaka, 2016-10-20 15:54 review
Pull Requests
URL Status Linked Edit
PR 552 closed dstufft, 2017-03-31 16:36
Messages (4)
msg279031 - (view) Author: Alexander Belchenko (bialix) Date: 2016-10-20 13:07
Running shutil.make_archive('a', 'zip', 'subdir') is created wrong and not really needed entry "./" which is visible in zipfile.ZipFile.namelist():

['./', 'foo/', 'hello.txt', 'foo/bar.txt']

This "./" affects some (windows) unzip tools which produces warnings/errors about this incorrect entry.

This error present in Python 2.7.11-12 and Python 3.4.4 (those I have installed right now). But Python 3.3.5 does not have it, maybe because it omits entries for directories at all.

I've attached a simple script which illustrates problem. Tested on Windows with mentioned python versions.

Can't reproduce on Centos 7.2 with Python 3.4.3 and 2.7.5.

I suppose it could be realted to the change I spot in latest 2.7 changelog:

- Issue #24982: shutil.make_archive() with the "zip" format now adds entries
  for directories (including empty directories) in ZIP file.
msg279042 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2016-10-20 15:54
Thank you for your report Alexander. Yes, this regression was introduced in issue24982. Proposed patch fixes it.
msg279258 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2016-10-23 12:58
New changeset 847537b7924c by Serhiy Storchaka in branch '2.7':
Issue #28488: shutil.make_archive() no longer adds entry "./" to ZIP archive.
https://hg.python.org/cpython/rev/847537b7924c

New changeset d4fce66ebe01 by Serhiy Storchaka in branch '3.5':
Issue #28488: shutil.make_archive() no longer adds entry "./" to ZIP archive.
https://hg.python.org/cpython/rev/d4fce66ebe01

New changeset e93149fee04d by Serhiy Storchaka in branch '3.6':
Issue #28488: shutil.make_archive() no longer adds entry "./" to ZIP archive.
https://hg.python.org/cpython/rev/e93149fee04d

New changeset 72da53d3074b by Serhiy Storchaka in branch 'default':
Issue #28488: shutil.make_archive() no longer adds entry "./" to ZIP archive.
https://hg.python.org/cpython/rev/72da53d3074b
msg335067 - (view) Author: HFM (HFM) Date: 2019-02-08 09:35
There is a similar bug/issue for 'tar' archives.
History
Date User Action Args
2019-02-08 09:35:14HFMsetnosy: + HFM
messages: + msg335067
2017-03-31 16:36:12dstufftsetpull_requests: + pull_request878
2016-10-23 16:16:23serhiy.storchakasetstatus: open -> closed
resolution: fixed
stage: patch review -> resolved
2016-10-23 12:58:57python-devsetnosy: + python-dev
messages: + msg279258
2016-10-20 15:54:08serhiy.storchakasetfiles: + shutil_make_archive_zip_curdir.patch
messages: + msg279042

assignee: serhiy.storchaka
keywords: + patch
stage: needs patch -> patch review
2016-10-20 13:37:59serhiy.storchakasetnosy: + twouters, alanmcintyre, tarek, serhiy.storchaka
stage: needs patch
type: behavior

versions: + Python 3.5, Python 3.6, Python 3.7, - Python 3.4
2016-10-20 13:07:50bialixcreate