File: mergeall-products/unzipped/test/ziptools/docetc/1.2-upgrades/more-platform-demos/android-pie-log.txt
#############################################################################
# ziptools console session on Android Pie (9). Modtimes work, but symlink
# creates raise errors and permissions fail silently. SYmlink errors are
# reported and skipped, except that symlinks become stub files in unzips.
# This behavior occurs in Oreo and later - Oreo replaced a FUSE filesystem.
# See android-nougat-log.txt for the same tests run on Nougat (and earlier).
#############################################################################
Welcome to Termux!
...
$ pwd
/sdcard/WORK/testziptools
$ date
Sat Apr 11 09:26:33 PDT 2020
#
# Extract a zipfile by ziptools made on Unix (Mac OS)
#
$ py /sdcard/Download/ziptools/zip-extract.py ../cgi.zip . -permissions
Unzipping from ../cgi.zip to .
Extracted cgi/
=> cgi
Extracted cgi/.htaccess
=> cgi/.htaccess
Extracted cgi/__prior-sitesearch-savedterms.txt
=> cgi/__prior-sitesearch-savedterms.txt
Extracted cgi/_prior-sitesearch-savedterms.txt
=> cgi/_prior-sitesearch-savedterms.txt
Extracted cgi/dev/
=> cgi/dev
Extracted cgi/dev/orig-sitesearch.py
=> cgi/dev/orig-sitesearch.py
Extracted cgi/dev/other-sitesearch.py
=> cgi/dev/other-sitesearch.py
Extracted cgi/dev/py2-mock-out.txt
=> cgi/dev/py2-mock-out.txt
Extracted cgi/dev/py3-mock-out.txt
=> cgi/dev/py3-mock-out.txt
Extracted cgi/dev/sitesearch-savedterms-live.txt
=> cgi/dev/sitesearch-savedterms-live.txt
Extracted cgi/dev/sitesearch-savedterms.txt
=> cgi/dev/sitesearch-savedterms.txt
Extracted cgi/DIFFS-with-offline-june2017.txt
=> cgi/DIFFS-with-offline-june2017.txt
(Link) --Symlink not supported
Extracted cgi/DIRLINK1
=> cgi/DIRLINK1
(Link) --Symlink not supported
Extracted cgi/DIRLINK2
=> cgi/DIRLINK2
(Link) --Symlink not supported
Extracted cgi/FILELINK1
=> cgi/FILELINK1
(Link) --Symlink not supported
Extracted cgi/FILELINK2
=> cgi/FILELINK2
Extracted cgi/HOW-INSTALL-CGI-SCRIPTS.txt
=> cgi/HOW-INSTALL-CGI-SCRIPTS.txt
Extracted cgi/HOW.txt
=> cgi/HOW.txt
Extracted cgi/index.html
=> cgi/index.html
Extracted cgi/LIVE-Aug2017/
=> cgi/LIVE-Aug2017
Extracted cgi/LIVE-Aug2017/sitesearch-savedterms.txt
=> cgi/LIVE-Aug2017/sitesearch-savedterms.txt
Extracted cgi/LIVE-June2017/
=> cgi/LIVE-June2017
Extracted cgi/LIVE-June2017/gdform.cgi
=> cgi/LIVE-June2017/gdform.cgi
Extracted cgi/LIVE-June2017/gdformssl.cgi
=> cgi/LIVE-June2017/gdformssl.cgi
Extracted cgi/LIVE-June2017/pylotto-players.txt
=> cgi/LIVE-June2017/pylotto-players.txt
Extracted cgi/LIVE-June2017/pylotto.pswd
=> cgi/LIVE-June2017/pylotto.pswd
Extracted cgi/LIVE-June2017/pylotto.py
=> cgi/LIVE-June2017/pylotto.py
Extracted cgi/LIVE-June2017/pylotto24.py
=> cgi/LIVE-June2017/pylotto24.py
Extracted cgi/LIVE-June2017/sitesearch-savedterms.txt
=> cgi/LIVE-June2017/sitesearch-savedterms.txt
Extracted cgi/LIVE-June2017/sitesearch.html
=> cgi/LIVE-June2017/sitesearch.html
Extracted cgi/LIVE-June2017/sitesearch.py
=> cgi/LIVE-June2017/sitesearch.py
Extracted cgi/pylotto-full.py
=> cgi/pylotto-full.py
Extracted cgi/pylotto.py
=> cgi/pylotto.py
Extracted cgi/showcode-template.txt
=> cgi/showcode-template.txt
Extracted cgi/showcode-unicode-demo.txt
=> cgi/showcode-unicode-demo.txt
Extracted cgi/showcode.py
=> cgi/showcode.py
Extracted cgi/sitesearch-savedterms.txt
=> cgi/sitesearch-savedterms.txt
Extracted cgi/sitesearch.py
=> cgi/sitesearch.py
Extracted cgi/temp.html
=> cgi/temp.html
Extracted cgi/test.py
=> cgi/test.py
Extracted cgi/xreadonly.txt
=> cgi/xreadonly.txt
Extracted cgi/xwriteonly.txt
=> cgi/xwriteonly.txt
Extract finished: files=38, folders=4, links=0, unknowns=0.
#
# Content same (sans 4 dummy stub files for links: see end of this log)
#
$ py /sdcard/Download/Mergeall-source/diffall.py cgi /storage/8BB9-1202/_test/cgi -skipcruft
--------------------
Comparing cgi to /storage/8BB9-1202/_test/cgi
Directory lists are identical
Comparing contents
.htaccess matches
__prior-sitesearch-savedterms.txt matches
_prior-sitesearch-savedterms.txt matches
DIFFS-with-offline-june2017.txt matches
*DIFFER: DIRLINK1
*DIFFER: DIRLINK2
*DIFFER: FILELINK1
*DIFFER: FILELINK2
HOW-INSTALL-CGI-SCRIPTS.txt matches
HOW.txt matches
index.html matches
pylotto-full.py matches
pylotto.py matches
showcode-template.txt matches
showcode-unicode-demo.txt matches
showcode.py matches
sitesearch-savedterms.txt matches
sitesearch.py matches
temp.html matches
test.py matches
xreadonly.txt matches
xwriteonly.txt matches
--------------------
Comparing cgi/dev to /storage/8BB9-1202/_test/cgi/dev
Directory lists are identical
Comparing contents
orig-sitesearch.py matches
other-sitesearch.py matches
py2-mock-out.txt matches
py3-mock-out.txt matches
sitesearch-savedterms-live.txt matches
sitesearch-savedterms.txt matches
--------------------
Comparing cgi/LIVE-Aug2017 to /storage/8BB9-1202/_test/cgi/LIVE-Aug2017
Directory lists are identical
Comparing contents
sitesearch-savedterms.txt matches
--------------------
Comparing cgi/LIVE-June2017 to /storage/8BB9-1202/_test/cgi/LIVE-June2017
Directory lists are identical
Comparing contents
gdform.cgi matches
gdformssl.cgi matches
pylotto-players.txt matches
pylotto.pswd matches
pylotto.py matches
pylotto24.py matches
sitesearch-savedterms.txt matches
sitesearch.html matches
sitesearch.py matches
================================================================================
Runtime hrs:mins:secs = 0:0:0.09
Dirs checked 4, Files checked: 38, Files skipped: 0
System metadata (cruft) files were skipped
Diffs found: 4
- files DIFFER at [cgi/DIRLINK1] - [/storage/8BB9-1202/_test/cgi/DIRLINK1]
- files DIFFER at [cgi/DIRLINK2] - [/storage/8BB9-1202/_test/cgi/DIRLINK2]
- files DIFFER at [cgi/FILELINK1] - [/storage/8BB9-1202/_test/cgi/FILELINK1]
- files DIFFER at [cgi/FILELINK2] - [/storage/8BB9-1202/_test/cgi/FILELINK2]
End of report.
#
# All modtimes same, except 4 link stub files' content (Mergeall backups work on Oreo and later)
#
$ py /sdcard/Download/Mergeall-source/mergeall.py cgi /storage/8BB9-1202/_test/cgi -skipcruft -report
Starting.
-------------------------------------------------------------------------------
*Collecting tree differences
Skipping system cruft (metadata) files in both FROM and TO
comparing [cgi] [/storage/8BB9-1202/_test/cgi]
comparing [cgi/dev] [/storage/8BB9-1202/_test/cgi/dev]
comparing [cgi/LIVE-Aug2017] [/storage/8BB9-1202/_test/cgi/LIVE-Aug2017]
comparing [cgi/LIVE-June2017] [/storage/8BB9-1202/_test/cgi/LIVE-June2017]
Phase runtime: 0.011180832996615209
-------------------------------------------------------------------------------
*Reporting tree differences
-------------------------------------------------------------------------------
SAMEFILE DIFFERENCES: (name, dirfrom, dirto, why)
**These items will be replaced in dirto by automatic resolution**
[('DIRLINK1', 'cgi', '/storage/8BB9-1202/_test/cgi', 'filesize'),
('DIRLINK2', 'cgi', '/storage/8BB9-1202/_test/cgi', 'filesize'),
('FILELINK1', 'cgi', '/storage/8BB9-1202/_test/cgi', 'filesize'),
('FILELINK2', 'cgi', '/storage/8BB9-1202/_test/cgi', 'filesize')]
-------------------------------------------------------------------------------
UNIQUE ITEMS IN DIRTO: (names, dirfrom, dirto)
**These items will be deleted from dirto by automatic resolution**
[]
-------------------------------------------------------------------------------
UNIQUE ITEMS IN DIRFROM: (names, dirfrom, dirto)
**These items will be copied over to dirto by automatic resolution**
[]
-------------------------------------------------------------------------------
MIXED MODE NAMES: (name, dirfrom, dirto)
**These items will be replaced in dirto by automatic resolution**
[]
-------------------------------------------------------------------------------
*Summary
Compared => files: 38, folders: 4
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.
#
# Create a new zipfile from unzipped content (there are no links now)
#
$ py /sdcard/Download/ziptools/zip-create.py rezip cgi -skipcruft
Zipping ['cgi'] to rezip.zip
Cruft patterns: {'skip': ['.*', '[dD]esktop.ini', 'Thumbs.db', '~*', '$*', '*.py[co]'], 'ke
ep': ['.htaccess']}
Adding folder cgi
Adding file cgi/.htaccess
Adding file cgi/__prior-sitesearch-savedterms.txt
Adding file cgi/_prior-sitesearch-savedterms.txt
Adding folder cgi/dev
Adding file cgi/dev/orig-sitesearch.py
Adding file cgi/dev/other-sitesearch.py
Adding file cgi/dev/py2-mock-out.txt
Adding file cgi/dev/py3-mock-out.txt
Adding file cgi/dev/sitesearch-savedterms-live.txt
Adding file cgi/dev/sitesearch-savedterms.txt
Adding file cgi/DIFFS-with-offline-june2017.txt
Adding file cgi/DIRLINK1
Adding file cgi/DIRLINK2
Adding file cgi/FILELINK1
Adding file cgi/FILELINK2
Adding file cgi/HOW-INSTALL-CGI-SCRIPTS.txt
Adding file cgi/HOW.txt
Adding file cgi/index.html
Adding folder cgi/LIVE-Aug2017
Adding file cgi/LIVE-Aug2017/sitesearch-savedterms.txt
Adding folder cgi/LIVE-June2017
Adding file cgi/LIVE-June2017/gdform.cgi
Adding file cgi/LIVE-June2017/gdformssl.cgi
Adding file cgi/LIVE-June2017/pylotto-players.txt
Adding file cgi/LIVE-June2017/pylotto.pswd
Adding file cgi/LIVE-June2017/pylotto.py
Adding file cgi/LIVE-June2017/pylotto24.py
Adding file cgi/LIVE-June2017/sitesearch-savedterms.txt
Adding file cgi/LIVE-June2017/sitesearch.html
Adding file cgi/LIVE-June2017/sitesearch.py
Adding file cgi/pylotto-full.py
Adding file cgi/pylotto.py
Adding file cgi/showcode-template.txt
Adding file cgi/showcode-unicode-demo.txt
Adding file cgi/showcode.py
Adding file cgi/sitesearch-savedterms.txt
Adding file cgi/sitesearch.py
Adding file cgi/temp.html
Adding file cgi/test.py
Adding file cgi/xreadonly.txt
Adding file cgi/xwriteonly.txt
Create finished: files=38, folders=4, links=0, unknowns=0, crufts=0.
#
# Unzip zip just made on Android, with or without -permissions (fails silently)
#
$ py /sdcard/Download/ziptools/zip-extract.py rezip.zip reunzip -permissions
Unzipping from rezip.zip to reunzip
Extracted cgi/
=> reunzip/cgi
Extracted cgi/.htaccess
=> reunzip/cgi/.htaccess
Extracted cgi/__prior-sitesearch-savedterms.txt
=> reunzip/cgi/__prior-sitesearch-savedterms.txt
Extracted cgi/_prior-sitesearch-savedterms.txt
=> reunzip/cgi/_prior-sitesearch-savedterms.txt
Extracted cgi/dev/
=> reunzip/cgi/dev
Extracted cgi/dev/orig-sitesearch.py
=> reunzip/cgi/dev/orig-sitesearch.py
Extracted cgi/dev/other-sitesearch.py
=> reunzip/cgi/dev/other-sitesearch.py
Extracted cgi/dev/py2-mock-out.txt
=> reunzip/cgi/dev/py2-mock-out.txt
Extracted cgi/dev/py3-mock-out.txt
=> reunzip/cgi/dev/py3-mock-out.txt
Extracted cgi/dev/sitesearch-savedterms-live.txt
=> reunzip/cgi/dev/sitesearch-savedterms-live.txt
Extracted cgi/dev/sitesearch-savedterms.txt
=> reunzip/cgi/dev/sitesearch-savedterms.txt
Extracted cgi/DIFFS-with-offline-june2017.txt
=> reunzip/cgi/DIFFS-with-offline-june2017.txt
Extracted cgi/DIRLINK1
=> reunzip/cgi/DIRLINK1
Extracted cgi/DIRLINK2
=> reunzip/cgi/DIRLINK2
Extracted cgi/FILELINK1
=> reunzip/cgi/FILELINK1
Extracted cgi/FILELINK2
=> reunzip/cgi/FILELINK2
Extracted cgi/HOW-INSTALL-CGI-SCRIPTS.txt
=> reunzip/cgi/HOW-INSTALL-CGI-SCRIPTS.txt
Extracted cgi/HOW.txt
=> reunzip/cgi/HOW.txt
Extracted cgi/index.html
=> reunzip/cgi/index.html
Extracted cgi/LIVE-Aug2017/
=> reunzip/cgi/LIVE-Aug2017
Extracted cgi/LIVE-Aug2017/sitesearch-savedterms.txt
=> reunzip/cgi/LIVE-Aug2017/sitesearch-savedterms.txt
Extracted cgi/LIVE-June2017/
=> reunzip/cgi/LIVE-June2017
Extracted cgi/LIVE-June2017/gdform.cgi
=> reunzip/cgi/LIVE-June2017/gdform.cgi
Extracted cgi/LIVE-June2017/gdformssl.cgi
=> reunzip/cgi/LIVE-June2017/gdformssl.cgi
Extracted cgi/LIVE-June2017/pylotto-players.txt
=> reunzip/cgi/LIVE-June2017/pylotto-players.txt
Extracted cgi/LIVE-June2017/pylotto.pswd
=> reunzip/cgi/LIVE-June2017/pylotto.pswd
Extracted cgi/LIVE-June2017/pylotto.py
=> reunzip/cgi/LIVE-June2017/pylotto.py
Extracted cgi/LIVE-June2017/pylotto24.py
=> reunzip/cgi/LIVE-June2017/pylotto24.py
Extracted cgi/LIVE-June2017/sitesearch-savedterms.txt
=> reunzip/cgi/LIVE-June2017/sitesearch-savedterms.txt
Extracted cgi/LIVE-June2017/sitesearch.html
=> reunzip/cgi/LIVE-June2017/sitesearch.html
Extracted cgi/LIVE-June2017/sitesearch.py
=> reunzip/cgi/LIVE-June2017/sitesearch.py
Extracted cgi/pylotto-full.py
=> reunzip/cgi/pylotto-full.py
Extracted cgi/pylotto.py
=> reunzip/cgi/pylotto.py
Extracted cgi/showcode-template.txt
=> reunzip/cgi/showcode-template.txt
Extracted cgi/showcode-unicode-demo.txt
=> reunzip/cgi/showcode-unicode-demo.txt
Extracted cgi/showcode.py
=> reunzip/cgi/showcode.py
Extracted cgi/sitesearch-savedterms.txt
=> reunzip/cgi/sitesearch-savedterms.txt
Extracted cgi/sitesearch.py
=> reunzip/cgi/sitesearch.py
Extracted cgi/temp.html
=> reunzip/cgi/temp.html
Extracted cgi/test.py
=> reunzip/cgi/test.py
Extracted cgi/xreadonly.txt
=> reunzip/cgi/xreadonly.txt
Extracted cgi/xwriteonly.txt
=> reunzip/cgi/xwriteonly.txt
Extract finished: files=38, folders=4, links=0, unknowns=0.
#
# Same data, same (original) modtimes, munged perms
#
$ ls --full-time cgi/test.py reunzip/cgi/test.py
-rw-rw---- 1 root everybody 78 2018-04-14 15:51:26.000000000 -0700 cgi/test.py
-rw-rw---- 1 root everybody 78 2018-04-14 15:51:26.000000000 -0700 reunzip/cgi/test.py
#
# Symlink stub files: modtimes same, content is dummy text (original link path), perms differ
#
$ ls --full-time cgi/FILELINK1 reunzip/cgi/FILELINK1 /storage/8BB9-1202/_test/cgi/FILELINK1
-rwxr-xr-x 1 root everybody 1067 2020-03-21 13:36:56.000000000 -0700 /storage/8BB9-1202/_test/cgi/FILELINK1
-rw-rw---- 1 root everybody 11 2020-03-21 13:36:56.000000000 -0700 cgi/FILELINK1
-rw-rw---- 1 root everybody 11 2020-03-21 13:36:56.000000000 -0700 reunzip/cgi/FILELINK1
$
$ cat cgi/FILELINK1
showcode.py$
$
$ cat reunzip/cgi/FILELINK1
showcode.py$
$
$ cat /storage/8BB9-1202/_test/cgi/FILELINK1
XSym
0011
f67d36fa88bde9cb2fa4bbd07e3d5e66
showcode.py