File: ziptools/ziptools/docetc/1.1-upgrades/py-2.X-3.X-zipoff.txt
########################################################################################## # A brief Unix demo under Python 2.X: ziptools works equally well in either 2.X or 3.X, # though 3.X is recommended for archives with symlinks (2.X can't retain their modtimes). ########################################################################################## ########################################################################################## # Create and extract same content on 2.X and 3.X ########################################################################################## ~/Desktop$ py2 $Z/zip-create.py testziptools/UNION2.zip UNION -skipcruft > testziptools/py2create.txt ~/Desktop$ py2 $Z/zip-extract.py testziptools/UNION2.zip testziptools/NOPERMS22 > testziptools/py22extract.txt ~/Desktop$ py2 $Z/zip-extract.py testziptools/UNION2.zip testziptools/PERMS22 -permissions >> testziptools/py22extract.txt ~/Desktop$ py3 $Z/zip-create.py testziptools/UNION3.zip UNION -skipcruft > testziptools/py3create.txt ~/Desktop$ py3 $Z/zip-extract.py testziptools/UNION3.zip testziptools/NOPERMS33 > testziptools/py33extract.txt ~/Desktop$ py3 $Z/zip-extract.py testziptools/UNION3.zip testziptools/PERMS33 -permissions >> testziptools/py33extract.txt # Create console logs are the same, including Unicode filenames ~/Desktop$ diff testziptools/py2create.txt testziptools/py3create.txt 1c1 < Zipping ['UNION'] to testziptools/UNION2.zip --- > Zipping ['UNION'] to testziptools/UNION3.zip # Extract console logs differ only by '22'/'33' subfolder names ~/Desktop$ diff testziptools/py22extract.txt testziptools/py33extract.txt | more ...every line differs: version number in folder name... ~/Desktop$ py3 >>> t2 = open('testziptools/py22extract.txt', 'rb').read().replace(b'PERMS22', b'-'*7) >>> t3 = open('testziptools/py33extract.txt', 'rb').read().replace(b'PERMS33', b'-'*7) >>> open('t2.txt', 'wb').write(t2) 1280188 >>> open('t3.txt', 'wb').write(t3) 1280188 >>> ^D ~/Desktop$ diff t2.txt t3.txt 1c1 < Unzipping from testziptools/UNION2.zip to testziptools/NO------- --- > Unzipping from testziptools/UNION3.zip to testziptools/NO------- 8791c8791 < Unzipping from testziptools/UNION2.zip to testziptools/------- --- > Unzipping from testziptools/UNION3.zip to testziptools/------- ########################################################################################## # No content diffs in 3.X or 2.X results ########################################################################################## ~/Desktop$ py3 $M/diffall.py UNION testziptools/NOPERMS33/UNION/ -skipcruft | tail -n 6 ================================================================================ Runtime hrs:mins:secs = 0:0:5.31 Dirs checked 268, Files checked: 4127, Files skipped: 0 System metadata (cruft) files were skipped No diffs found. End of report. ~/Desktop$ py3 $M/diffall.py UNION testziptools/PERMS33/UNION/ -skipcruft | tail -n 6 ================================================================================ Runtime hrs:mins:secs = 0:0:5.21 Dirs checked 268, Files checked: 4127, Files skipped: 0 System metadata (cruft) files were skipped No diffs found. End of report. ~/Desktop$ py3 $M/diffall.py UNION testziptools/PERMS22/UNION/ -skipcruft | tail -n 6 ================================================================================ Runtime hrs:mins:secs = 0:0:5.17 Dirs checked 268, Files checked: 4127, Files skipped: 0 System metadata (cruft) files were skipped No diffs found. End of report. ~/Desktop$ py3 $M/diffall.py UNION testziptools/NOPERMS22/UNION/ -skipcruft | tail -n 6 ================================================================================ Runtime hrs:mins:secs = 0:0:5.18 Dirs checked 268, Files checked: 4127, Files skipped: 0 System metadata (cruft) files were skipped No diffs found. End of report. ########################################################################################## # No modtime diffs in 3.X or 2.X results, EXCEPT 4 symlinks in 2.X (known 2.X limitation) ########################################################################################## ~/Desktop$ py3 $M/mergeall.py UNION testziptools/NOPERMS33/UNION/ -skipcruft -report | tail -n 9 ------------------------------------------------------------------------------- *Summary Compared => files: 4123, folders: 268 Differences => samefile: 0, uniqueto: 0, uniquefrom: 0, mixedmode: 0 Changed: files => created: 0, deleted: 0, replaced: 0 folders => created: 0, deleted: 0, replaced: 0 ------------------------------------------------------------------------------- Finished. ~/Desktop$ py3 $M/mergeall.py UNION testziptools/PERMS33/UNION/ -skipcruft -report | tail -n 9 ------------------------------------------------------------------------------- *Summary Compared => files: 4123, folders: 268 Differences => samefile: 0, uniqueto: 0, uniquefrom: 0, mixedmode: 0 Changed: files => created: 0, deleted: 0, replaced: 0 folders => created: 0, deleted: 0, replaced: 0 ------------------------------------------------------------------------------- Finished. ~/Desktop$ py3 $M/mergeall.py UNION testziptools/NOPERMS22/UNION/ -skipcruft -report | tail -n 9 ------------------------------------------------------------------------------- *Summary Compared => files: 4123, folders: 268 Differences => samefile: 4, uniqueto: 0, uniquefrom: 0, mixedmode: 0 Changed: files => created: 0, deleted: 0, replaced: 0 folders => created: 0, deleted: 0, replaced: 0 ------------------------------------------------------------------------------- Finished. ~/Desktop$ py3 $M/mergeall.py UNION testziptools/PERMS22/UNION/ -skipcruft -report | tail -n 9 ------------------------------------------------------------------------------- *Summary Compared => files: 4123, folders: 268 Differences => samefile: 4, uniqueto: 0, uniquefrom: 0, mixedmode: 0 Changed: files => created: 0, deleted: 0, replaced: 0 folders => created: 0, deleted: 0, replaced: 0 ------------------------------------------------------------------------------- Finished. ########################################################################################## # 2.X propagates permissions but not modtime for symlinks (known 2.X limitation) ########################################################################################## # original folder ~/Desktop$ ls -l UNION/cgi total 328 -rw-r--r-- 1 blue staff 1219 Jun 13 2017 DIFFS-with-offline-june2017.txt lrwxr-xr-x 1 blue staff 12 Mar 21 13:37 DIRLINK1 -> LIVE-Aug2017 lrwxr-xr-x 1 blue staff 13 Mar 21 13:38 DIRLINK2 -> LIVE-Aug2017/ lrw------- 1 blue staff 11 Mar 21 13:36 FILELINK1 -> showcode.py lrwxr-xr-x 1 blue staff 25 Mar 21 13:37 FILELINK2 -> sitesearch-savedterms.txt -rw-r--r-- 1 blue staff 1768 Jun 29 2019 HOW-INSTALL-CGI-SCRIPTS.txt -rwxrwxrwx 1 blue staff 1042 Apr 14 2018 HOW.txt drwx------ 3 blue staff 102 Aug 6 2017 LIVE-Aug2017 drwxr-xr-x 12 blue staff 408 Jun 13 2017 LIVE-June2017 -rw-r--r-- 1 blue staff 6315 Feb 17 2018 __prior-sitesearch-savedterms.txt -rw-r--r-- 1 blue staff 5205 Jul 30 2017 _prior-sitesearch-savedterms.txt drwxrwxrwx 9 blue staff 306 Jun 13 2017 dev -rw-r--r-- 1 blue staff 2584 Feb 23 14:55 index.html -rwxr-xr-x 1 blue staff 20729 Feb 18 2014 pylotto-full.py -rwxr-xr-x 1 blue staff 151 Jun 13 2017 pylotto.py -rwxrwxrwx 1 blue staff 3035 Jul 19 2019 showcode-template.txt -rw-r--r-- 1 blue staff 72 Feb 23 2018 showcode-unicode-demo.txt -rw------- 1 blue staff 26250 Aug 19 2019 showcode.py -rw------- 1 blue staff 13948 Jun 30 2019 sitesearch-savedterms.txt -rwxr-xr-x 1 blue staff 14054 Jun 29 2019 sitesearch.py -rw-r--r-- 1 blue staff 15372 Feb 23 14:55 temp.html -rwxr-xr-x 1 blue staff 78 Apr 14 2018 test.py # 2.X gets symlink permissions but not modtimes ~/Desktop$ ls -l testziptools/PERMS22/UNION/cgi total 328 -rw-r--r-- 1 blue staff 1219 Jun 13 2017 DIFFS-with-offline-june2017.txt lrwxr-xr-x 1 blue staff 12 Mar 26 12:25 DIRLINK1 -> LIVE-Aug2017 lrwxr-xr-x 1 blue staff 13 Mar 26 12:25 DIRLINK2 -> LIVE-Aug2017/ lrw------- 1 blue staff 11 Mar 26 12:25 FILELINK1 -> showcode.py lrwxr-xr-x 1 blue staff 25 Mar 26 12:25 FILELINK2 -> sitesearch-savedterms.txt -rw-r--r-- 1 blue staff 1768 Jun 29 2019 HOW-INSTALL-CGI-SCRIPTS.txt -rwxrwxrwx 1 blue staff 1042 Apr 14 2018 HOW.txt drwx------ 3 blue staff 102 Aug 6 2017 LIVE-Aug2017 drwxr-xr-x 11 blue staff 374 Jun 13 2017 LIVE-June2017 -rw-r--r-- 1 blue staff 6315 Feb 17 2018 __prior-sitesearch-savedterms.txt -rw-r--r-- 1 blue staff 5205 Jul 30 2017 _prior-sitesearch-savedterms.txt drwxrwxrwx 8 blue staff 272 Jun 13 2017 dev -rw-r--r-- 1 blue staff 2584 Feb 23 14:55 index.html -rwxr-xr-x 1 blue staff 20729 Feb 18 2014 pylotto-full.py -rwxr-xr-x 1 blue staff 151 Jun 13 2017 pylotto.py -rwxrwxrwx 1 blue staff 3035 Jul 19 2019 showcode-template.txt -rw-r--r-- 1 blue staff 72 Feb 23 2018 showcode-unicode-demo.txt -rw------- 1 blue staff 26250 Aug 19 2019 showcode.py -rw------- 1 blue staff 13948 Jun 30 2019 sitesearch-savedterms.txt -rwxr-xr-x 1 blue staff 14054 Jun 29 2019 sitesearch.py -rw-r--r-- 1 blue staff 15372 Feb 23 14:55 temp.html -rwxr-xr-x 1 blue staff 78 Apr 14 2018 test.py # 3.X gets symink permissions and modtimes ~/Desktop$ ls -l testziptools/PERMS33/UNION/cgi total 328 -rw-r--r-- 1 blue staff 1219 Jun 13 2017 DIFFS-with-offline-june2017.txt lrwxr-xr-x 1 blue staff 12 Mar 21 13:37 DIRLINK1 -> LIVE-Aug2017 lrwxr-xr-x 1 blue staff 13 Mar 21 13:38 DIRLINK2 -> LIVE-Aug2017/ lrw------- 1 blue staff 11 Mar 21 13:36 FILELINK1 -> showcode.py lrwxr-xr-x 1 blue staff 25 Mar 21 13:37 FILELINK2 -> sitesearch-savedterms.txt -rw-r--r-- 1 blue staff 1768 Jun 29 2019 HOW-INSTALL-CGI-SCRIPTS.txt -rwxrwxrwx 1 blue staff 1042 Apr 14 2018 HOW.txt drwx------ 3 blue staff 102 Aug 6 2017 LIVE-Aug2017 drwxr-xr-x 11 blue staff 374 Jun 13 2017 LIVE-June2017 -rw-r--r-- 1 blue staff 6315 Feb 17 2018 __prior-sitesearch-savedterms.txt -rw-r--r-- 1 blue staff 5205 Jul 30 2017 _prior-sitesearch-savedterms.txt drwxrwxrwx 8 blue staff 272 Jun 13 2017 dev -rw-r--r-- 1 blue staff 2584 Feb 23 14:55 index.html -rwxr-xr-x 1 blue staff 20729 Feb 18 2014 pylotto-full.py -rwxr-xr-x 1 blue staff 151 Jun 13 2017 pylotto.py -rwxrwxrwx 1 blue staff 3035 Jul 19 2019 showcode-template.txt -rw-r--r-- 1 blue staff 72 Feb 23 2018 showcode-unicode-demo.txt -rw------- 1 blue staff 26250 Aug 19 2019 showcode.py -rw------- 1 blue staff 13948 Jun 30 2019 sitesearch-savedterms.txt -rwxr-xr-x 1 blue staff 14054 Jun 29 2019 sitesearch.py -rw-r--r-- 1 blue staff 15372 Feb 23 14:55 temp.html -rwxr-xr-x 1 blue staff 78 Apr 14 2018 test.py ########################################################################################## # Interoperability: 2.X and 3.X can unzip each other's zips (as well as other tools') ########################################################################################## # # 2.X can unzip a 3.X zip (former non-ASCII trace-message exception fixed) # ~/Desktop$ py2 $Z/zip-extract.py testziptools/UNION3.zip testziptools/PERMS23 -permissions > testziptools/py23extract.txt ~/Desktop$ tail -n 3 testziptools/py23extract.txt Extracted UNION/ziptools.html => testziptools/PERMS23/UNION/ziptools.html Extract finished: files=4122, folders=268, links=4, unknowns=0. ~/Desktop$ py3 $M/diffall.py UNION testziptools/PERMS23/UNION/ -skipcruft | tail -n 6 ================================================================================ Runtime hrs:mins:secs = 0:0:5.23 Dirs checked 268, Files checked: 4126, Files skipped: 0 System metadata (cruft) files were skipped No diffs found. End of report. ~/Desktop$ py3 $M/mergeall.py UNION testziptools/PERMS23/UNION/ -skipcruft -report | tail -n 9 ------------------------------------------------------------------------------- *Summary Compared => files: 4122, folders: 268 Differences => samefile: 4, uniqueto: 0, uniquefrom: 0, mixedmode: 0 Changed: files => created: 0, deleted: 0, replaced: 0 folders => created: 0, deleted: 0, replaced: 0 ------------------------------------------------------------------------------- Finished. # # 3.X can unzip a 2.X zip (former non-ASCII filenames mangling fixed) # ~/Desktop$ py3 $Z/zip-extract.py testziptools/UNION2.zip testziptools/PERMS32 -permissions > testziptools/py32extract.txt ~/Desktop$ tail -n 3 testziptools/py32extract.txt Extracted UNION/ziptools.html => testziptools/PERMS32/UNION/ziptools.html Extract finished: files=4122, folders=268, links=4, unknowns=0. ~/Desktop$ py3 $M/diffall.py UNION testziptools/PERMS32/UNION/ -skipcruft | tail -n 6 ================================================================================ Runtime hrs:mins:secs = 0:0:5.30 Dirs checked 268, Files checked: 4126, Files skipped: 0 System metadata (cruft) files were skipped No diffs found. End of report. ~/Desktop$ py3 $M/mergeall.py UNION testziptools/PERMS32/UNION/ -report -skipcruft | tail -n 6 Differences => samefile: 0, uniqueto: 0, uniquefrom: 0, mixedmode: 0 Changed: files => created: 0, deleted: 0, replaced: 0 folders => created: 0, deleted: 0, replaced: 0 ------------------------------------------------------------------------------- Finished.