termux / termux-packages

A package build system for Termux.
https://termux.dev
Other
13.15k stars 3.02k forks source link

[Bug]: luarocks: missmatch c file header for luajit #12076

Closed amstests closed 1 year ago

amstests commented 2 years ago

Problem description

compiling C module for luajit, always include lua c header in $PREFIX/include/lua5.3/*

cause bcc3f5a735d9621916aefb5ea4a8b518f2f5de04 https://github.com/termux/termux-packages/blob/bcc3f5a735d9621916aefb5ea4a8b518f2f5de04/packages/luarocks/lua-props.patch#L21

What steps will reproduce the bug?

I have tried. LUA_INCDIR=$PREFIX/include/luajit-2.1 luarocks --lua-version=5.1 --verbose install lpeg > build.log

build was success, but error when i try:

luajit -e 'print(require "lpeg")'

luajit: error loading module 'lpeg' from file '/data/data/com.termux/files/usr/lib/lua/5.1/lpeg.so':                                dlopen failed: cannot locate symbol "lua_callk" referenced by "/data/data/com.termux/files/usr/lib/lua/5.1/lpeg.so"...                                                            stack traceback:
        [C]: at 0x5e6bc23bb4                
        [C]: in function 'require'   (command line):1: in main chunk
        [C]: at 0x5e6bbe5c00

What is the expected behavior?

no error when run luajit -e 'require("lpeg")'

System information

termux-info:

Termux Variables:
TERMUX_API_VERSION=0.49
TERMUX_APK_RELEASE=UNKNOWN
TERMUX_APP_PACKAGE_MANAGER=apt
TERMUX_APP_PID=27679
TERMUX_IS_DEBUGGABLE_BUILD=1
TERMUX_MAIN_PACKAGE_FORMAT=debian
TERMUX_VERSION=0.118.0
Packages CPU architecture:
aarch64
Subscribed repositories:
# sources.list
deb https://packages.termux.dev/apt/termux-main/ stable main
# sources.list.d/pointless.list
deb https://its-pointless.github.io/files/24 termux extras
Updatable packages:
aapt/stable 12.0.0.27-5 aarch64 [upgradable from: 12.0.0.27-4]
apt/stable 2.5.2-3 aarch64 [upgradable from: 2.5.2]
binutils/stable 2.39 aarch64 [upgradable from: 2.38-1]
clang/stable 15.0.1 aarch64 [upgradable from: 14.0.6-2]
cmake/stable 3.24.1 aarch64 [upgradable from: 3.23.2-2]
coreutils/stable 9.1-1 aarch64 [upgradable from: 9.1]
curl/stable 7.85.0 aarch64 [upgradable from: 7.84.0]
file/stable 5.43 aarch64 [upgradable from: 5.42]
fzf/stable 0.33.0 aarch64 [upgradable from: 0.32.1]
git/stable 2.37.3 aarch64 [upgradable from: 2.37.1]
glib/stable 2.74.0 aarch64 [upgradable from: 2.72.2]
groovy/stable 4.0.3-1 all [upgradable from: 4.0.3]
inetutils/stable 2.3-1 aarch64 [upgradable from: 2.3]
libc++/stable 25b aarch64 [upgradable from: 25-2]
libcompiler-rt/stable 15.0.1 aarch64 [upgradable from: 14.0.6-2]
libcurl/stable 7.85.0 aarch64 [upgradable from: 7.84.0]
libevent/stable 2.1.12-2 aarch64 [upgradable from: 2.1.12-1]
libexpat/stable 2.4.9 aarch64 [upgradable from: 2.4.8]
libffi/stable 3.4.2-1 aarch64 [upgradable from: 3.4.2]
libgcrypt/stable 1.10.1-1 aarch64 [upgradable from: 1.10.1]
libjansi/stable 2.4.0-1 aarch64 [upgradable from: 2.4.0]
libllvm/stable 15.0.1 aarch64 [upgradable from: 14.0.6-2]
libltdl/stable 2.4.7 aarch64 [upgradable from: 2.4.6-8]
libnghttp2/stable 1.50.0 aarch64 [upgradable from: 1.48.0]
libpng/stable 1.6.38 aarch64 [upgradable from: 1.6.37-3]
libprotobuf/stable 2:3.21.6 aarch64 [upgradable from: 2:3.19.3-1]
libsqlite/stable 3.39.3 aarch64 [upgradable from: 3.38.5]
libtreesitter/stable 0.20.7-1 aarch64 [upgradable from: 0.20.6]
libx11/stable 1.7.2-2 aarch64 [upgradable from: 1.7.2-1]
libxml2/stable 2.10.2-1 aarch64 [upgradable from: 2.9.14]
libxslt/stable 1.1.37 aarch64 [upgradable from: 1.1.35]
lld/stable 15.0.1 aarch64 [upgradable from: 14.0.6-2]
llvm/stable 15.0.1 aarch64 [upgradable from: 14.0.6-2]
mariadb/stable 2:10.9.2 aarch64 [upgradable from: 2:10.6.7-2]
maven/stable 3.8.6-1 all [upgradable from: 3.8.6]
mosh/stable 1.3.2-39 aarch64 [upgradable from: 1.3.2-38]
ncurses-ui-libs/stable 6.3-3 aarch64 [upgradable from: 6.3-2]
ncurses-utils/stable 6.3-3 aarch64 [upgradable from: 6.3-2]
ncurses/stable 6.3-3 aarch64 [upgradable from: 6.3-2]
ndk-multilib/stable 25b all [upgradable from: 25-1]
ndk-sysroot/stable 25b aarch64 [upgradable from: 25-1]
ninja/stable 1.11.1 aarch64 [upgradable from: 1.11.0-1]
openssl-1.1/stable 1.1.1q aarch64 [upgradable from: 1.1.1o]
openssl-tool/stable 3.0.5 aarch64 [upgradable from: 3.0.3]
openssl/stable 3.0.5 aarch64 [upgradable from: 3.0.3]
postgresql/stable 14.5 aarch64 [upgradable from: 14.2-4]
python/stable 3.10.7 aarch64 [upgradable from: 3.10.6]
radare2/stable 5.7.8 aarch64 [upgradable from: 5.7.6]
sed/stable 4.8-3 aarch64 [upgradable from: 4.8-2]
sqlite/stable 3.39.3 aarch64 [upgradable from: 3.38.5]
subversion/stable 1.14.2-2 aarch64 [upgradable from: 1.14.2-1]
termux-tools/stable 1.29.2 all [upgradable from: 1.27.0-1]
termux-tools version:
1.27.0
Android version:
9
Kernel build information:
Linux localhost 3.18.120-perf-gfca2d6e #1 SMP PREEMPT Fri Mar 27 00:11:59 WIB 2020 aarch64 Android
Device manufacturer:
Xiaomi
Device model:
Mi A2 Lite
amstests commented 2 years ago

contents of build.log:

fs.current_dir()
fs.quiet_stderr("pwd")

io.popen:   pwd 2> /dev/null
fs.current_dir()
fs.is_superuser()
fs.check_command_permissions(table: 0x7568bc2c40)
fs.exists("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1")
fs.absolute_name("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1")
fs.current_dir()
fs.is_writable("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1")
fs.is_dir("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1")
fs.absolute_name("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1")
fs.current_dir()
fs.exists("/data/data/com.termux/files/usr/share/lua/5.1")
fs.absolute_name("/data/data/com.termux/files/usr/share/lua/5.1")
fs.current_dir()
fs.is_writable("/data/data/com.termux/files/usr/share/lua/5.1")
fs.is_dir("/data/data/com.termux/files/usr/share/lua/5.1")
fs.absolute_name("/data/data/com.termux/files/usr/share/lua/5.1")
fs.current_dir()
fs.exists("/data/data/com.termux/files/usr/bin")
fs.absolute_name("/data/data/com.termux/files/usr/bin")
fs.current_dir()
fs.is_writable("/data/data/com.termux/files/usr/bin")
fs.is_dir("/data/data/com.termux/files/usr/bin")
fs.absolute_name("/data/data/com.termux/files/usr/bin")
fs.current_dir()
fs.exists("/data/data/com.termux/files/usr/share/lua/5.1")
fs.absolute_name("/data/data/com.termux/files/usr/share/lua/5.1")
fs.current_dir()
fs.is_writable("/data/data/com.termux/files/usr/share/lua/5.1")
fs.is_dir("/data/data/com.termux/files/usr/share/lua/5.1")
fs.absolute_name("/data/data/com.termux/files/usr/share/lua/5.1")
fs.current_dir()
fs.check_command_permissions(table: 0x7568bc2c40)
fs.exists("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1")
fs.absolute_name("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1")
fs.current_dir()
fs.is_writable("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1")
fs.is_dir("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1")
fs.absolute_name("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1")
fs.current_dir()
fs.exists("/data/data/com.termux/files/usr/share/lua/5.1")
fs.absolute_name("/data/data/com.termux/files/usr/share/lua/5.1")
fs.current_dir()
fs.is_writable("/data/data/com.termux/files/usr/share/lua/5.1")
fs.is_dir("/data/data/com.termux/files/usr/share/lua/5.1")
fs.absolute_name("/data/data/com.termux/files/usr/share/lua/5.1")
fs.current_dir()
fs.exists("/data/data/com.termux/files/usr/bin")
fs.absolute_name("/data/data/com.termux/files/usr/bin")
fs.current_dir()
fs.is_writable("/data/data/com.termux/files/usr/bin")
fs.is_dir("/data/data/com.termux/files/usr/bin")
fs.absolute_name("/data/data/com.termux/files/usr/bin")
fs.current_dir()
fs.exists("/data/data/com.termux/files/usr/share/lua/5.1")
fs.absolute_name("/data/data/com.termux/files/usr/share/lua/5.1")
fs.current_dir()
fs.is_writable("/data/data/com.termux/files/usr/share/lua/5.1")
fs.is_dir("/data/data/com.termux/files/usr/share/lua/5.1")
fs.absolute_name("/data/data/com.termux/files/usr/share/lua/5.1")
fs.current_dir()
fs.exists("lpeg-1.0.2-1.src.rock")
fs.absolute_name("lpeg-1.0.2-1.src.rock")
fs.current_dir()
fs.absolute_name("lpeg-1.0.2-1.src.rock")
fs.current_dir()
fs.absolute_name("lpeg-1.0.2-1.src.rock")
fs.current_dir()
fs.make_temp_dir("lpeg-1.0.2-1")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-XXXXXX")

io.popen:   mktemp -d '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-XXXXXX'
fs.change_dir("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.is_dir("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.unzip("/data/data/com.termux/files/usr/tmp/lpeg-1.0.2-1.src.rock")
fs.is_tool_available("unzip -n", "unzip", "--help")
fs.execute_quiet("unzip -n", "--help")
fs.Q("--help")
fs.execute_string("unzip -n '--help'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "unzip -n '--help'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && unzip -n '--help'
UnZip 6.00 of 20 April 2009, by Info-ZIP.  Maintained by C. Spieler.  Send
bug reports using http://www.info-zip.org/zip-bug.html; see README for details.

Usage: unzip [-Z] [-opts[modifiers]] file[.zip] [list] [-x xlist] [-d exdir]
  Default action is to extract files in list, except those in xlist, to exdir;
  file[.zip] may be a wildcard.  -Z => ZipInfo mode ("unzip -Z" for usage).

  -p  extract files to pipe, no messages     -l  list files (short format)
  -f  freshen existing files, create none    -t  test compressed archive data
  -u  update files, create if necessary      -z  display archive comment only
  -v  list verbosely/show version info       -T  timestamp archive to latest
  -x  exclude files that follow (in xlist)   -d  extract files into exdir
modifiers:
  -n  never overwrite existing files         -q  quiet mode (-qq => quieter)
  -o  overwrite files WITHOUT prompting      -a  auto-convert any text files
  -j  junk paths (do not make directories)   -aa treat ALL files as text
  -U  use escapes for all non-ASCII Unicode  -UU ignore any Unicode fields
  -C  match filenames case-insensitively     -L  make (some) names lowercase
  -X  restore UID/GID info                   -V  retain VMS version numbers
  -K  keep setuid/setgid/tacky permissions   -M  pipe through "more" pager
See "unzip -hh" or unzip.txt for more help.  Examples:
  unzip data1 -x joe   => extract all files except joe from zipfile data1.zip
  unzip -p foo | more  => send contents of foo.zip via pipe into program more
  unzip -fo foo ReadMe => quietly replace existing ReadMe if archive file newer
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.execute_quiet("unzip -n", "/data/data/com.termux/files/usr/tmp/lpeg-1.0.2-1.src.rock")
fs.Q("/data/data/com.termux/files/usr/tmp/lpeg-1.0.2-1.src.rock")
fs.execute_string("unzip -n '/data/data/com.termux/files/usr/tmp/lpeg-1.0.2-1.src.rock'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "unzip -n '/data/data/com.termux/files/usr/tmp/lpeg-1.0.2-1.src.rock'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && unzip -n '/data/data/com.termux/files/usr/tmp/lpeg-1.0.2-1.src.rock'
Archive:  /data/data/com.termux/files/usr/tmp/lpeg-1.0.2-1.src.rock
  inflating: lpeg-1.0.2-1.rockspec   
  inflating: lpeg-1.0.2.tar.gz       
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.pop_dir()
fs.change_dir("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.is_dir("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.exists("lpeg-1.0.2-1.rockspec")
fs.absolute_name("lpeg-1.0.2-1.rockspec")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2-1.rockspec")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2-1.rockspec")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")

os.execute:     "/data/data/com.termux/files/usr/bin//luajit" -e "io.write(tostring(jit and jit.version:gsub([[^%S+ ]], [[]])))" > /data/data/com.termux/files/usr/tmp/lua_M561IU
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.unpack_archive("lpeg-1.0.2.tar.gz")
fs.absolute_name("lpeg-1.0.2.tar.gz")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.gunzip("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2.tar.gz", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2.tar")
fs.Q("gunzip")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2.tar.gz")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2.tar")
fs.execute("'gunzip' -c '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2.tar.gz' > '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2.tar'")
fs.execute_string("'gunzip' -c '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2.tar.gz' > '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2.tar'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "'gunzip' -c '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2.tar.gz' > '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2.tar'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && 'gunzip' -c '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2.tar.gz' > '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2.tar'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.absolute_name("./lpeg-1.0.2")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.make_dir("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2")
fs.execute("mkdir -p", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2")
fs.execute_string("mkdir -p '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "mkdir -p '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && mkdir -p '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.absolute_name("./lpeg-1.0.2/lptypes.h")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.set_time("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lptypes.h", 0x1.7219af74p+30)
fs.execute("touch -t 201903112108.29", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lptypes.h")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lptypes.h")
fs.execute_string("touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lptypes.h'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lptypes.h'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lptypes.h'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.set_permissions("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lptypes.h", "read", "all")
fs._unix_moderate_permissions("644")
fs._unix_umask()

io.popen:   umask -S
fs.execute("chmod", "600", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lptypes.h")
fs.Q("600")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lptypes.h")
fs.execute_string("chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lptypes.h'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lptypes.h'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lptypes.h'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.absolute_name("./lpeg-1.0.2/lpvm.c")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.set_time("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpvm.c", 0x1.7219af74p+30)
fs.execute("touch -t 201903112108.29", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpvm.c")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpvm.c")
fs.execute_string("touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpvm.c'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpvm.c'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpvm.c'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.set_permissions("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpvm.c", "read", "all")
fs._unix_moderate_permissions("644")
fs._unix_umask()
fs.execute("chmod", "600", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpvm.c")
fs.Q("600")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpvm.c")
fs.execute_string("chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpvm.c'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpvm.c'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpvm.c'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.absolute_name("./lpeg-1.0.2/re.html")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.set_time("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/re.html", 0x1.7219af74p+30)
fs.execute("touch -t 201903112108.29", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/re.html")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/re.html")
fs.execute_string("touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/re.html'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/re.html'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/re.html'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.set_permissions("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/re.html", "read", "all")
fs._unix_moderate_permissions("644")
fs._unix_umask()
fs.execute("chmod", "600", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/re.html")
fs.Q("600")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/re.html")
fs.execute_string("chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/re.html'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/re.html'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/re.html'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.absolute_name("./lpeg-1.0.2/lptree.h")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.set_time("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lptree.h", 0x1.7219af74p+30)
fs.execute("touch -t 201903112108.29", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lptree.h")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lptree.h")
fs.execute_string("touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lptree.h'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lptree.h'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lptree.h'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.set_permissions("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lptree.h", "read", "all")
fs._unix_moderate_permissions("644")
fs._unix_umask()
fs.execute("chmod", "600", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lptree.h")
fs.Q("600")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lptree.h")
fs.execute_string("chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lptree.h'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lptree.h'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lptree.h'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.absolute_name("./lpeg-1.0.2/lptree.c")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.set_time("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lptree.c", 0x1.7219af74p+30)
fs.execute("touch -t 201903112108.29", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lptree.c")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lptree.c")
fs.execute_string("touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lptree.c'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lptree.c'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lptree.c'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.set_permissions("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lptree.c", "read", "all")
fs._unix_moderate_permissions("644")
fs._unix_umask()
fs.execute("chmod", "600", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lptree.c")
fs.Q("600")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lptree.c")
fs.execute_string("chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lptree.c'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lptree.c'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lptree.c'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.absolute_name("./lpeg-1.0.2/lpcap.h")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.set_time("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpcap.h", 0x1.7219af74p+30)
fs.execute("touch -t 201903112108.29", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpcap.h")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpcap.h")
fs.execute_string("touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpcap.h'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpcap.h'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpcap.h'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.set_permissions("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpcap.h", "read", "all")
fs._unix_moderate_permissions("644")
fs._unix_umask()
fs.execute("chmod", "600", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpcap.h")
fs.Q("600")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpcap.h")
fs.execute_string("chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpcap.h'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpcap.h'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpcap.h'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.absolute_name("./lpeg-1.0.2/HISTORY")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.set_time("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/HISTORY", 0x1.7219af74p+30)
fs.execute("touch -t 201903112108.29", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/HISTORY")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/HISTORY")
fs.execute_string("touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/HISTORY'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/HISTORY'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/HISTORY'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.set_permissions("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/HISTORY", "read", "all")
fs._unix_moderate_permissions("644")
fs._unix_umask()
fs.execute("chmod", "600", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/HISTORY")
fs.Q("600")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/HISTORY")
fs.execute_string("chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/HISTORY'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/HISTORY'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/HISTORY'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.absolute_name("./lpeg-1.0.2/lpeg.html")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.set_time("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpeg.html", 0x1.7219af74p+30)
fs.execute("touch -t 201903112108.29", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpeg.html")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpeg.html")
fs.execute_string("touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpeg.html'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpeg.html'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpeg.html'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.set_permissions("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpeg.html", "read", "all")
fs._unix_moderate_permissions("644")
fs._unix_umask()
fs.execute("chmod", "600", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpeg.html")
fs.Q("600")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpeg.html")
fs.execute_string("chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpeg.html'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpeg.html'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpeg.html'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.absolute_name("./lpeg-1.0.2/lpeg-128.gif")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.set_time("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpeg-128.gif", 0x1.7219af74p+30)
fs.execute("touch -t 201903112108.29", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpeg-128.gif")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpeg-128.gif")
fs.execute_string("touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpeg-128.gif'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpeg-128.gif'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpeg-128.gif'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.set_permissions("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpeg-128.gif", "read", "all")
fs._unix_moderate_permissions("644")
fs._unix_umask()
fs.execute("chmod", "600", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpeg-128.gif")
fs.Q("600")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpeg-128.gif")
fs.execute_string("chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpeg-128.gif'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpeg-128.gif'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpeg-128.gif'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.absolute_name("./lpeg-1.0.2/lpprint.c")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.set_time("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpprint.c", 0x1.7219af74p+30)
fs.execute("touch -t 201903112108.29", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpprint.c")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpprint.c")
fs.execute_string("touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpprint.c'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpprint.c'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpprint.c'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.set_permissions("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpprint.c", "read", "all")
fs._unix_moderate_permissions("644")
fs._unix_umask()
fs.execute("chmod", "600", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpprint.c")
fs.Q("600")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpprint.c")
fs.execute_string("chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpprint.c'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpprint.c'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpprint.c'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.absolute_name("./lpeg-1.0.2/lpcap.c")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.set_time("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpcap.c", 0x1.7219af74p+30)
fs.execute("touch -t 201903112108.29", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpcap.c")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpcap.c")
fs.execute_string("touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpcap.c'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpcap.c'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpcap.c'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.set_permissions("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpcap.c", "read", "all")
fs._unix_moderate_permissions("644")
fs._unix_umask()
fs.execute("chmod", "600", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpcap.c")
fs.Q("600")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpcap.c")
fs.execute_string("chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpcap.c'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpcap.c'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpcap.c'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.absolute_name("./lpeg-1.0.2/lpprint.h")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.set_time("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpprint.h", 0x1.7219af74p+30)
fs.execute("touch -t 201903112108.29", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpprint.h")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpprint.h")
fs.execute_string("touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpprint.h'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpprint.h'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpprint.h'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.set_permissions("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpprint.h", "read", "all")
fs._unix_moderate_permissions("644")
fs._unix_umask()
fs.execute("chmod", "600", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpprint.h")
fs.Q("600")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpprint.h")
fs.execute_string("chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpprint.h'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpprint.h'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpprint.h'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.absolute_name("./lpeg-1.0.2/re.lua")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.set_time("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/re.lua", 0x1.7219af74p+30)
fs.execute("touch -t 201903112108.29", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/re.lua")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/re.lua")
fs.execute_string("touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/re.lua'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/re.lua'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/re.lua'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.set_permissions("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/re.lua", "read", "all")
fs._unix_moderate_permissions("644")
fs._unix_umask()
fs.execute("chmod", "600", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/re.lua")
fs.Q("600")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/re.lua")
fs.execute_string("chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/re.lua'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/re.lua'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/re.lua'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.absolute_name("./lpeg-1.0.2/lpvm.h")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.set_time("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpvm.h", 0x1.7219af74p+30)
fs.execute("touch -t 201903112108.29", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpvm.h")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpvm.h")
fs.execute_string("touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpvm.h'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpvm.h'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpvm.h'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.set_permissions("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpvm.h", "read", "all")
fs._unix_moderate_permissions("644")
fs._unix_umask()
fs.execute("chmod", "600", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpvm.h")
fs.Q("600")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpvm.h")
fs.execute_string("chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpvm.h'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpvm.h'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpvm.h'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.absolute_name("./lpeg-1.0.2/makefile")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.set_time("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/makefile", 0x1.7219af74p+30)
fs.execute("touch -t 201903112108.29", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/makefile")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/makefile")
fs.execute_string("touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/makefile'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/makefile'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/makefile'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.set_permissions("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/makefile", "read", "all")
fs._unix_moderate_permissions("644")
fs._unix_umask()
fs.execute("chmod", "600", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/makefile")
fs.Q("600")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/makefile")
fs.execute_string("chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/makefile'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/makefile'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/makefile'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.absolute_name("./lpeg-1.0.2/lpcode.h")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.set_time("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpcode.h", 0x1.7219af74p+30)
fs.execute("touch -t 201903112108.29", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpcode.h")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpcode.h")
fs.execute_string("touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpcode.h'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpcode.h'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpcode.h'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.set_permissions("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpcode.h", "read", "all")
fs._unix_moderate_permissions("644")
fs._unix_umask()
fs.execute("chmod", "600", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpcode.h")
fs.Q("600")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpcode.h")
fs.execute_string("chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpcode.h'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpcode.h'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpcode.h'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.absolute_name("./lpeg-1.0.2/lpcode.c")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.set_time("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpcode.c", 0x1.7219af74p+30)
fs.execute("touch -t 201903112108.29", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpcode.c")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpcode.c")
fs.execute_string("touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpcode.c'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpcode.c'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/lpcode.c'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.set_permissions("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpcode.c", "read", "all")
fs._unix_moderate_permissions("644")
fs._unix_umask()
fs.execute("chmod", "600", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpcode.c")
fs.Q("600")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpcode.c")
fs.execute_string("chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpcode.c'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpcode.c'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && chmod '600' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/lpcode.c'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.absolute_name("./lpeg-1.0.2/test.lua")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.set_time("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/test.lua", 0x1.7219af74p+30)
fs.execute("touch -t 201903112108.29", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/test.lua")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/test.lua")
fs.execute_string("touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/test.lua'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/test.lua'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && touch -t 201903112108.29 '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2/test.lua'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.set_permissions("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/test.lua", "exec", "all")
fs._unix_moderate_permissions("755")
fs._unix_umask()
fs.execute("chmod", "700", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/test.lua")
fs.Q("700")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/test.lua")
fs.execute_string("chmod '700' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/test.lua'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "chmod '700' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/test.lua'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && chmod '700' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/./lpeg-1.0.2/test.lua'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.change_dir("lpeg-1.0.2")
fs.is_dir("lpeg-1.0.2")
fs.absolute_name("lpeg-1.0.2")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")

lpeg 1.0.2-1 depends on lua >= 5.1 (5.1-1 provided by VM)
fs.is_dir("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1")
fs.absolute_name("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.make_dir("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua")
fs.execute("mkdir -p", "/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua")
fs.Q("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua")
fs.execute_string("mkdir -p '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2", "mkdir -p '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2' && mkdir -p '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.make_dir("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/bin")
fs.execute("mkdir -p", "/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/bin")
fs.Q("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/bin")
fs.execute_string("mkdir -p '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/bin'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2", "mkdir -p '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/bin'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2' && mkdir -p '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/bin'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.make_dir("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib")
fs.execute("mkdir -p", "/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib")
fs.Q("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib")
fs.execute_string("mkdir -p '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2", "mkdir -p '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2' && mkdir -p '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.make_dir("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/conf")
fs.execute("mkdir -p", "/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/conf")
fs.Q("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/conf")
fs.execute_string("mkdir -p '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/conf'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2", "mkdir -p '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/conf'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2' && mkdir -p '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/conf'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.exists("/data/data/com.termux/files/usr/include/lua5.3/lua.h")
fs.absolute_name("/data/data/com.termux/files/usr/include/lua5.3/lua.h")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
gcc -O2 -fPIC -I/data/data/com.termux/files/usr/include/lua5.3 -c lpcap.c -o lpcap.o
fs.execute("gcc -O2 -fPIC", "-I/data/data/com.termux/files/usr/include/lua5.3", "-c", "lpcap.c", "-o", "lpcap.o")
fs.Q("-I/data/data/com.termux/files/usr/include/lua5.3")
fs.Q("-c")
fs.Q("lpcap.c")
fs.Q("-o")
fs.Q("lpcap.o")
fs.execute_string("gcc -O2 -fPIC '-I/data/data/com.termux/files/usr/include/lua5.3' '-c' 'lpcap.c' '-o' 'lpcap.o'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2", "gcc -O2 -fPIC '-I/data/data/com.termux/files/usr/include/lua5.3' '-c' 'lpcap.c' '-o' 'lpcap.o'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2' && gcc -O2 -fPIC '-I/data/data/com.termux/files/usr/include/lua5.3' '-c' 'lpcap.c' '-o' 'lpcap.o'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
gcc -O2 -fPIC -I/data/data/com.termux/files/usr/include/lua5.3 -c lpcode.c -o lpcode.o
fs.execute("gcc -O2 -fPIC", "-I/data/data/com.termux/files/usr/include/lua5.3", "-c", "lpcode.c", "-o", "lpcode.o")
fs.Q("-I/data/data/com.termux/files/usr/include/lua5.3")
fs.Q("-c")
fs.Q("lpcode.c")
fs.Q("-o")
fs.Q("lpcode.o")
fs.execute_string("gcc -O2 -fPIC '-I/data/data/com.termux/files/usr/include/lua5.3' '-c' 'lpcode.c' '-o' 'lpcode.o'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2", "gcc -O2 -fPIC '-I/data/data/com.termux/files/usr/include/lua5.3' '-c' 'lpcode.c' '-o' 'lpcode.o'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2' && gcc -O2 -fPIC '-I/data/data/com.termux/files/usr/include/lua5.3' '-c' 'lpcode.c' '-o' 'lpcode.o'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
gcc -O2 -fPIC -I/data/data/com.termux/files/usr/include/lua5.3 -c lpprint.c -o lpprint.o
fs.execute("gcc -O2 -fPIC", "-I/data/data/com.termux/files/usr/include/lua5.3", "-c", "lpprint.c", "-o", "lpprint.o")
fs.Q("-I/data/data/com.termux/files/usr/include/lua5.3")
fs.Q("-c")
fs.Q("lpprint.c")
fs.Q("-o")
fs.Q("lpprint.o")
fs.execute_string("gcc -O2 -fPIC '-I/data/data/com.termux/files/usr/include/lua5.3' '-c' 'lpprint.c' '-o' 'lpprint.o'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2", "gcc -O2 -fPIC '-I/data/data/com.termux/files/usr/include/lua5.3' '-c' 'lpprint.c' '-o' 'lpprint.o'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2' && gcc -O2 -fPIC '-I/data/data/com.termux/files/usr/include/lua5.3' '-c' 'lpprint.c' '-o' 'lpprint.o'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
gcc -O2 -fPIC -I/data/data/com.termux/files/usr/include/lua5.3 -c lptree.c -o lptree.o
fs.execute("gcc -O2 -fPIC", "-I/data/data/com.termux/files/usr/include/lua5.3", "-c", "lptree.c", "-o", "lptree.o")
fs.Q("-I/data/data/com.termux/files/usr/include/lua5.3")
fs.Q("-c")
fs.Q("lptree.c")
fs.Q("-o")
fs.Q("lptree.o")
fs.execute_string("gcc -O2 -fPIC '-I/data/data/com.termux/files/usr/include/lua5.3' '-c' 'lptree.c' '-o' 'lptree.o'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2", "gcc -O2 -fPIC '-I/data/data/com.termux/files/usr/include/lua5.3' '-c' 'lptree.c' '-o' 'lptree.o'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2' && gcc -O2 -fPIC '-I/data/data/com.termux/files/usr/include/lua5.3' '-c' 'lptree.c' '-o' 'lptree.o'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
gcc -O2 -fPIC -I/data/data/com.termux/files/usr/include/lua5.3 -c lpvm.c -o lpvm.o
fs.execute("gcc -O2 -fPIC", "-I/data/data/com.termux/files/usr/include/lua5.3", "-c", "lpvm.c", "-o", "lpvm.o")
fs.Q("-I/data/data/com.termux/files/usr/include/lua5.3")
fs.Q("-c")
fs.Q("lpvm.c")
fs.Q("-o")
fs.Q("lpvm.o")
fs.execute_string("gcc -O2 -fPIC '-I/data/data/com.termux/files/usr/include/lua5.3' '-c' 'lpvm.c' '-o' 'lpvm.o'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2", "gcc -O2 -fPIC '-I/data/data/com.termux/files/usr/include/lua5.3' '-c' 'lpvm.c' '-o' 'lpvm.o'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2' && gcc -O2 -fPIC '-I/data/data/com.termux/files/usr/include/lua5.3' '-c' 'lpvm.c' '-o' 'lpvm.o'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
gcc -shared -o lpeg.so lpcap.o lpcode.o lpprint.o lptree.o lpvm.o
fs.execute("gcc -shared", "-o", "lpeg.so", "lpcap.o", "lpcode.o", "lpprint.o", "lptree.o", "lpvm.o")
fs.Q("-o")
fs.Q("lpeg.so")
fs.Q("lpcap.o")
fs.Q("lpcode.o")
fs.Q("lpprint.o")
fs.Q("lptree.o")
fs.Q("lpvm.o")
fs.execute_string("gcc -shared '-o' 'lpeg.so' 'lpcap.o' 'lpcode.o' 'lpprint.o' 'lptree.o' 'lpvm.o'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2", "gcc -shared '-o' 'lpeg.so' 'lpcap.o' 'lpcode.o' 'lpprint.o' 'lptree.o' 'lpvm.o'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2' && gcc -shared '-o' 'lpeg.so' 'lpcap.o' 'lpcode.o' 'lpprint.o' 'lptree.o' 'lpvm.o'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.make_dir("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua")
fs.execute("mkdir -p", "/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua")
fs.Q("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua")
fs.execute_string("mkdir -p '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2", "mkdir -p '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2' && mkdir -p '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.copy("re.lua", "/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua/re.lua", "read")
fs.execute("cp", "re.lua", "/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua/re.lua")
fs.Q("re.lua")
fs.Q("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua/re.lua")
fs.execute_string("cp 're.lua' '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua/re.lua'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2", "cp 're.lua' '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua/re.lua'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2' && cp 're.lua' '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua/re.lua'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.is_dir("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua/re.lua")
fs.absolute_name("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua/re.lua")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.set_permissions("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua/re.lua", "read", "all")
fs._unix_moderate_permissions("644")
fs._unix_umask()
fs.execute("chmod", "600", "/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua/re.lua")
fs.Q("600")
fs.Q("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua/re.lua")
fs.execute_string("chmod '600' '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua/re.lua'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2", "chmod '600' '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua/re.lua'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2' && chmod '600' '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua/re.lua'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.make_dir("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib")
fs.execute("mkdir -p", "/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib")
fs.Q("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib")
fs.execute_string("mkdir -p '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2", "mkdir -p '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2' && mkdir -p '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.copy("lpeg.so", "/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib/lpeg.so", "exec")
fs.execute("cp", "lpeg.so", "/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib/lpeg.so")
fs.Q("lpeg.so")
fs.Q("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib/lpeg.so")
fs.execute_string("cp 'lpeg.so' '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib/lpeg.so'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2", "cp 'lpeg.so' '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib/lpeg.so'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2' && cp 'lpeg.so' '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib/lpeg.so'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.is_dir("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib/lpeg.so")
fs.absolute_name("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib/lpeg.so")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.set_permissions("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib/lpeg.so", "exec", "all")
fs._unix_moderate_permissions("755")
fs._unix_umask()
fs.execute("chmod", "700", "/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib/lpeg.so")
fs.Q("700")
fs.Q("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib/lpeg.so")
fs.execute_string("chmod '700' '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib/lpeg.so'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2", "chmod '700' '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib/lpeg.so'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2' && chmod '700' '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib/lpeg.so'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.is_dir("lua")
fs.absolute_name("lua")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.is_dir("doc")
fs.absolute_name("doc")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.dir()
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.is_dir("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.dir_iterator("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2", "ls", true)
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")

io.popen:   cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2' && ls
fs.remove_dir_if_empty("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua")
fs.execute_quiet("rmdir", "/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua")
fs.Q("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua")
fs.execute_string("rmdir '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2", "rmdir '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2' && rmdir '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua'
Results: 3
  1 (nil): nil
  2 (string): exit
  3 (number): 1
fs.remove_dir_if_empty("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/bin")
fs.execute_quiet("rmdir", "/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/bin")
fs.Q("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/bin")
fs.execute_string("rmdir '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/bin'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2", "rmdir '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/bin'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2' && rmdir '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/bin'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.remove_dir_if_empty("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib")
fs.execute_quiet("rmdir", "/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib")
fs.Q("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib")
fs.execute_string("rmdir '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2", "rmdir '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2' && rmdir '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib'
Results: 3
  1 (nil): nil
  2 (string): exit
  3 (number): 1
fs.remove_dir_if_empty("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/conf")
fs.execute_quiet("rmdir", "/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/conf")
fs.Q("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/conf")
fs.execute_string("rmdir '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/conf'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2", "rmdir '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/conf'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("lpeg-1.0.2", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2' && rmdir '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/conf'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.pop_dir()
fs.copy("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2-1.rockspec", "/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lpeg-1.0.2-1.rockspec", "read")
fs.execute("cp", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2-1.rockspec", "/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lpeg-1.0.2-1.rockspec")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2-1.rockspec")
fs.Q("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lpeg-1.0.2-1.rockspec")
fs.execute_string("cp '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2-1.rockspec' '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lpeg-1.0.2-1.rockspec'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "cp '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2-1.rockspec' '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lpeg-1.0.2-1.rockspec'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && cp '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR/lpeg-1.0.2-1.rockspec' '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lpeg-1.0.2-1.rockspec'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.is_dir("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lpeg-1.0.2-1.rockspec")
fs.absolute_name("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lpeg-1.0.2-1.rockspec")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.set_permissions("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lpeg-1.0.2-1.rockspec", "read", "all")
fs._unix_moderate_permissions("644")
fs._unix_umask()
fs.execute("chmod", "600", "/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lpeg-1.0.2-1.rockspec")
fs.Q("600")
fs.Q("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lpeg-1.0.2-1.rockspec")
fs.execute_string("chmod '600' '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lpeg-1.0.2-1.rockspec'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "chmod '600' '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lpeg-1.0.2-1.rockspec'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && chmod '600' '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lpeg-1.0.2-1.rockspec'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.find("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1")
fs.is_dir("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1")
fs.absolute_name("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.quiet_stderr("find *")
fs.command_at("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1", "find * 2> /dev/null")
fs.absolute_name("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1")

io.popen:   cd '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1' && find * 2> /dev/null
fs.is_file("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib")
fs.absolute_name("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.is_dir("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib")
fs.absolute_name("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.is_file("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib/lpeg.so")
fs.absolute_name("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib/lpeg.so")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.is_dir("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib/lpeg.so")
fs.absolute_name("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib/lpeg.so")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.get_md5("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib/lpeg.so")
fs.which_tool("md5checker")
fs.is_tool_available("md5sum", "md5sum", nil)
fs.execute_quiet("md5sum", "--version")
fs.Q("--version")
fs.execute_string("md5sum '--version'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "md5sum '--version'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && md5sum '--version'
md5sum (GNU coreutils) 9.1
Copyright (C) 2022 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Ulrich Drepper, Scott Miller, and David Madore.
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.absolute_name("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib/lpeg.so")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib/lpeg.so")

io.popen:   md5sum '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib/lpeg.so'
fs.is_file("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lpeg-1.0.2-1.rockspec")
fs.absolute_name("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lpeg-1.0.2-1.rockspec")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.is_dir("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lpeg-1.0.2-1.rockspec")
fs.absolute_name("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lpeg-1.0.2-1.rockspec")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.get_md5("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lpeg-1.0.2-1.rockspec")
fs.which_tool("md5checker")
fs.absolute_name("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lpeg-1.0.2-1.rockspec")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lpeg-1.0.2-1.rockspec")

io.popen:   md5sum '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lpeg-1.0.2-1.rockspec'
fs.is_file("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua")
fs.absolute_name("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.is_dir("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua")
fs.absolute_name("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.is_file("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua/re.lua")
fs.absolute_name("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua/re.lua")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.is_dir("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua/re.lua")
fs.absolute_name("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua/re.lua")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.get_md5("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua/re.lua")
fs.which_tool("md5checker")
fs.absolute_name("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua/re.lua")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua/re.lua")

io.popen:   md5sum '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua/re.lua'
fs.replace_file("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/rock_manifest", "/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/rock_manifest.tmp")
fs.make_dir("/data/data/com.termux/files/usr/share/lua/5.1")
fs.execute("mkdir -p", "/data/data/com.termux/files/usr/share/lua/5.1")
fs.Q("/data/data/com.termux/files/usr/share/lua/5.1")
fs.execute_string("mkdir -p '/data/data/com.termux/files/usr/share/lua/5.1'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "mkdir -p '/data/data/com.termux/files/usr/share/lua/5.1'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && mkdir -p '/data/data/com.termux/files/usr/share/lua/5.1'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.exists("/data/data/com.termux/files/usr/share/lua/5.1/re.lua")
fs.absolute_name("/data/data/com.termux/files/usr/share/lua/5.1/re.lua")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.move("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua/re.lua", "/data/data/com.termux/files/usr/share/lua/5.1/re.lua", "read")
fs.exists("/data/data/com.termux/files/usr/share/lua/5.1/re.lua")
fs.absolute_name("/data/data/com.termux/files/usr/share/lua/5.1/re.lua")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.copy("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua/re.lua", "/data/data/com.termux/files/usr/share/lua/5.1/re.lua", "read")
fs.execute("cp", "/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua/re.lua", "/data/data/com.termux/files/usr/share/lua/5.1/re.lua")
fs.Q("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua/re.lua")
fs.Q("/data/data/com.termux/files/usr/share/lua/5.1/re.lua")
fs.execute_string("cp '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua/re.lua' '/data/data/com.termux/files/usr/share/lua/5.1/re.lua'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "cp '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua/re.lua' '/data/data/com.termux/files/usr/share/lua/5.1/re.lua'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && cp '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua/re.lua' '/data/data/com.termux/files/usr/share/lua/5.1/re.lua'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.is_dir("/data/data/com.termux/files/usr/share/lua/5.1/re.lua")
fs.absolute_name("/data/data/com.termux/files/usr/share/lua/5.1/re.lua")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.set_permissions("/data/data/com.termux/files/usr/share/lua/5.1/re.lua", "read", "all")
fs._unix_moderate_permissions("644")
fs._unix_umask()
fs.execute("chmod", "600", "/data/data/com.termux/files/usr/share/lua/5.1/re.lua")
fs.Q("600")
fs.Q("/data/data/com.termux/files/usr/share/lua/5.1/re.lua")
fs.execute_string("chmod '600' '/data/data/com.termux/files/usr/share/lua/5.1/re.lua'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "chmod '600' '/data/data/com.termux/files/usr/share/lua/5.1/re.lua'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && chmod '600' '/data/data/com.termux/files/usr/share/lua/5.1/re.lua'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.delete("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua/re.lua")
fs.execute_quiet("rm", "-rf", "/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua/re.lua")
fs.Q("-rf")
fs.Q("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua/re.lua")
fs.execute_string("rm '-rf' '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua/re.lua'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "rm '-rf' '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua/re.lua'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && rm '-rf' '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua/re.lua'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.exists("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua/re.lua")
fs.absolute_name("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua/re.lua")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.make_dir("/data/data/com.termux/files/usr/lib/lua/5.1")
fs.execute("mkdir -p", "/data/data/com.termux/files/usr/lib/lua/5.1")
fs.Q("/data/data/com.termux/files/usr/lib/lua/5.1")
fs.execute_string("mkdir -p '/data/data/com.termux/files/usr/lib/lua/5.1'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "mkdir -p '/data/data/com.termux/files/usr/lib/lua/5.1'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && mkdir -p '/data/data/com.termux/files/usr/lib/lua/5.1'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.exists("/data/data/com.termux/files/usr/lib/lua/5.1/lpeg.so")
fs.absolute_name("/data/data/com.termux/files/usr/lib/lua/5.1/lpeg.so")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.move("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib/lpeg.so", "/data/data/com.termux/files/usr/lib/lua/5.1/lpeg.so", "exec")
fs.exists("/data/data/com.termux/files/usr/lib/lua/5.1/lpeg.so")
fs.absolute_name("/data/data/com.termux/files/usr/lib/lua/5.1/lpeg.so")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.copy("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib/lpeg.so", "/data/data/com.termux/files/usr/lib/lua/5.1/lpeg.so", "exec")
fs.execute("cp", "/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib/lpeg.so", "/data/data/com.termux/files/usr/lib/lua/5.1/lpeg.so")
fs.Q("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib/lpeg.so")
fs.Q("/data/data/com.termux/files/usr/lib/lua/5.1/lpeg.so")
fs.execute_string("cp '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib/lpeg.so' '/data/data/com.termux/files/usr/lib/lua/5.1/lpeg.so'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "cp '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib/lpeg.so' '/data/data/com.termux/files/usr/lib/lua/5.1/lpeg.so'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && cp '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib/lpeg.so' '/data/data/com.termux/files/usr/lib/lua/5.1/lpeg.so'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.is_dir("/data/data/com.termux/files/usr/lib/lua/5.1/lpeg.so")
fs.absolute_name("/data/data/com.termux/files/usr/lib/lua/5.1/lpeg.so")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.set_permissions("/data/data/com.termux/files/usr/lib/lua/5.1/lpeg.so", "exec", "all")
fs._unix_moderate_permissions("755")
fs._unix_umask()
fs.execute("chmod", "700", "/data/data/com.termux/files/usr/lib/lua/5.1/lpeg.so")
fs.Q("700")
fs.Q("/data/data/com.termux/files/usr/lib/lua/5.1/lpeg.so")
fs.execute_string("chmod '700' '/data/data/com.termux/files/usr/lib/lua/5.1/lpeg.so'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "chmod '700' '/data/data/com.termux/files/usr/lib/lua/5.1/lpeg.so'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && chmod '700' '/data/data/com.termux/files/usr/lib/lua/5.1/lpeg.so'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.delete("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib/lpeg.so")
fs.execute_quiet("rm", "-rf", "/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib/lpeg.so")
fs.Q("-rf")
fs.Q("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib/lpeg.so")
fs.execute_string("rm '-rf' '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib/lpeg.so'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "rm '-rf' '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib/lpeg.so'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && rm '-rf' '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib/lpeg.so'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
fs.exists("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib/lpeg.so")
fs.absolute_name("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib/lpeg.so")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.remove_dir_tree_if_empty("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua")
fs.execute_quiet("rmdir", "-p", "/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua")
fs.Q("-p")
fs.Q("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua")
fs.execute_string("rmdir '-p' '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "rmdir '-p' '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && rmdir '-p' '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lua'
Results: 3
  1 (nil): nil
  2 (string): exit
  3 (number): 1
fs.remove_dir_tree_if_empty("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib")
fs.execute_quiet("rmdir", "-p", "/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib")
fs.Q("-p")
fs.Q("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib")
fs.execute_string("rmdir '-p' '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib'")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "rmdir '-p' '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib'")
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")

os.execute:     cd '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR' && rmdir '-p' '/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lib'
Results: 3
  1 (nil): nil
  2 (string): exit
  3 (number): 1
fs.exists("/data/data/com.termux/files/usr/share/lua/5.1/re.lua")
fs.absolute_name("/data/data/com.termux/files/usr/share/lua/5.1/re.lua")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.exists("/data/data/com.termux/files/usr/lib/lua/5.1/lpeg.so")
fs.absolute_name("/data/data/com.termux/files/usr/lib/lua/5.1/lpeg.so")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.absolute_name("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/lpeg/1.0.2-1/lpeg-1.0.2-1.rockspec")
fs.current_dir()
fs.absolute_name("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR", "/data/data/com.termux/files/usr/tmp")
fs.replace_file("/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/manifest", "/data/data/com.termux/files/usr/lib/luarocks/rocks-5.1/manifest.tmp")
lpeg 1.0.2-1 is now installed in /data/data/com.termux/files/usr (license: MIT/X11)

fs.pop_dir()
fs.exists("/data/data/com.termux/files/usr/share/lua/5.1/re.lua")
fs.absolute_name("/data/data/com.termux/files/usr/share/lua/5.1/re.lua")
fs.current_dir()
fs.exists("/data/data/com.termux/files/usr/lib/lua/5.1/lpeg.so")
fs.absolute_name("/data/data/com.termux/files/usr/lib/lua/5.1/lpeg.so")
fs.current_dir()
fs.change_dir_to_root()
fs.current_dir()
fs.is_dir("/data/data/com.termux/files/usr/tmp")
fs.absolute_name("/data/data/com.termux/files/usr/tmp")
fs.current_dir()
fs.delete("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.execute_quiet("rm", "-rf", "/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.Q("-rf")
fs.Q("/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR")
fs.execute_string("rm '-rf' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR'")
fs.current_dir()
fs.absolute_name("/", "/data/data/com.termux/files/usr/tmp")
fs.command_at("/", "rm '-rf' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR'")
fs.absolute_name("/")
fs.current_dir()
fs.absolute_name("/", "/data/data/com.termux/files/usr/tmp")
fs.Q("/")

os.execute:     cd '/' && rm '-rf' '/data/data/com.termux/files/usr/tmp/luarocks_lpeg-1.0.2-1-YZxaTR'
Results: 3
  1 (boolean): true
  2 (string): exit
  3 (number): 0
Grimler91 commented 2 years ago

I'm not very familiar with lua(rocks), but our package depends on/uses lua5.3, so I guess it only works with 5.3. Do you strictly need to use lua5.1?

ravener commented 2 years ago

@Grimler91 LuaJIT is a bit behind only supporting Lua 5.1 so a lot of people do write their code in backwards compatible manner to have the JIT support, however I have no idea about luarocks.

The issue in this case is about luarocks installing a C extension but is picking up lua 5.3's headers which I believe would make it incompatible with LuaJIT.

I'm not sure if downgrading luarocks' lua dependency would solve this, there has to be a better answer.

ravener commented 2 years ago

It seems like luarocks' --lua-version and include directory is being hardcoded at build time by termux's packaging through the configure script.

I'm not sure what can we do, perhaps we could package a seperate luarocks that's made for luajit? LuaJIT is compatible with lua 5.1 so building it with lua 5.1 in mind should be enough. I'm not sure if I like this idea though, lua versions are annoying.

amsitlab commented 2 years ago

It seems like luarocks' --lua-version and include directory is being hardcoded at build time by termux's packaging through the configure script.

I'm not sure what can we do, perhaps we could package a seperate luarocks that's made for luajit? LuaJIT is compatible with lua 5.1 so building it with lua 5.1 in mind should be enough. I'm not sure if I like this idea though, lua versions are annoying.

by default luarock allowed user to setting their build environment by creating file ~/.luarocks/config-<lua-version>.lua like: ~/.luarocks/config-5.1.lua (for lua5.1 & luajit) ~/.luarocks/config-5.2.lua (for lua5.2) ~/.luarocks/config-5.3.lua (for lua5.3) ~/.luarocks/config-5.4.lua (for lua5.4) and/or by set environment variable like LUA_INCDIR=$PREFIX/include/luajit-2.1 luarocks --lua-version=5.1 ...

when user typing: luarocks --lua-version=5.1 .... luarock will read config $PREFIX/etc/luarocks/config-5.1.lua and ~/.luarocks/config-5.1.lua (if exists)

error (maybe) caused by https://github.com/termux/termux-packages/blob/bcc3f5a735d9621916aefb5ea4a8b518f2f5de04/packages/luarocks/lua-props.patch#L21

thats patch not allow user to override their build env

when user typing like: LUA_INCDIR=$PREFIX/include/luajit-2.1 luarocks install <module>

LUA_INCDIR value always $PREFIX/include/lua5.3

i have tried compiling lpeg module for luajit, lua5.3 and lua5.4 using luarocks ( form official release archive ) and run as expected. Screenshot_20220923-175400

amsitlab commented 2 years ago

I'm not very familiar with lua(rocks), but our package depends on/uses lua5.3, so I guess it only works with 5.3. Do you strictly need to use lua5.1?

@Grimler91 You may try to ./configure without --with-lua-include options like:

./configure --with-lua=$PREFIX --with-lua-interpreter=lua5.3 --with-lua-lib=$PREFIX/lib --prefix=$PREFIX --rocks-tree=$PREFIX

when user type luarocks without --lua-version, by default luarocks will read config $PREFIX/etc/luarocks/config-5.3.lua

i have tried thats command (but with --prefix=$HOME/Program/Luarocks/3.9.1)

./configure --with-lua=$PREFIX --with-lua-interpreter=lua5.3 --with-lua-lib=$PREFIX/lib --prefix=$HOME/Program/Luarocks/3.9.1 --rocks-tree=$PREFIX

and outputs when i try to check config varibles.LUA_INCDIR for diff lua-version (provided by ~/.luarocks/config-[lua-version].lua) Screenshot_20220923-195443

amsitlab commented 2 years ago

test compiling lpeg with default lua version (lua5.3)


┌[ .../tmp/luarocks-test ]─[ ]
└─ ~/Program/Luarocks/3.9.1/bin/luarocks init

Initializing project 'luarocks-test' for Lua 5.3 ...
----------------------------------------------------

Checking your Lua installation ...
Warning: Please specify supported Lua versions with --lua-versions=<ver>. See '/data/data/com.termux/files/home/Program/Luarocks/3.9.1/bin/luarocks help write_rockspec'.

Wrote template at /data/data/com.termux/files/usr/tmp/luarocks-test/luarocks-test-dev-1.rockspec -- you should now edit and finish it.

Adding entries to .gitignore ...
Preparing ./.luarocks/ ...
Wrote .luarocks/config-5.3.lua
Preparing ./lua_modules/ ...
Preparing ./luarocks ...
Preparing ./lua for version 5.3...

┌[ .../tmp/luarocks-test ]─[ ]
└─ cat .luarocks/config-5.3.lua
lua_interpreter = "lua5.3"
variables = {
   LUA_BINDIR = "/data/data/com.termux/files/usr/bin",
   LUA_DIR = "/data/data/com.termux/files/usr",
   LUA_INCDIR = "/data/data/com.termux/files/usr/include/lua5.3",
   LUA_LIBDIR = "/data/data/com.termux/files/usr/lib"
}

┌[ .../tmp/luarocks-test ]─[ ]
└─ ~/Program/Luarocks/3.9.1/bin/luarocks install ~/storage/shared/Archives/Program/luarocks/lpeg-1.0.2-1.src.rock

lpeg 1.0.2-1 depends on lua >= 5.1 (5.3-1 provided by VM)
gcc -O2 -fPIC -I/data/data/com.termux/files/usr/include/lua5.3 -c lpcap.c -o lpcap.o
gcc -O2 -fPIC -I/data/data/com.termux/files/usr/include/lua5.3 -c lpcode.c -o lpcode.o
gcc -O2 -fPIC -I/data/data/com.termux/files/usr/include/lua5.3 -c lpprint.c -o lpprint.o
gcc -O2 -fPIC -I/data/data/com.termux/files/usr/include/lua5.3 -c lptree.c -o lptree.o
gcc -O2 -fPIC -I/data/data/com.termux/files/usr/include/lua5.3 -c lpvm.c -o lpvm.o
gcc  -shared -o lpeg.so lpcap.o lpcode.o lpprint.o lptree.o lpvm.o
No existing manifest. Attempting to rebuild...
lpeg 1.0.2-1 is now installed in /data/data/com.termux/files/usr/tmp/luarocks-test/./lua_modules (license: MIT/X11)

┌[ .../tmp/luarocks-test ]─[ ]
└─ ./lua -e 'print(require "lpeg")'
table: 0x7d48039840

┌[ .../tmp/luarocks-test ]─[ ]
└─
amsitlab commented 2 years ago

test compiling lpeg for lua5.1/luajit

┌[ .../tmp/luarocks-test-5.1-or-jit ]─[ ]
└─ ~/Program/Luarocks/3.9.1/bin/luarocks --lua-version=5.1 init

Initializing project 'luarocks-test-5.1-or-jit' for Lua 5.1 ...
---------------------------------------------------------------

Checking your Lua installation ...
Adding entries to .gitignore ...
Preparing ./.luarocks/ ...
Wrote .luarocks/config-5.1.lua
Preparing ./lua_modules/ ...
./luarocks already exists. Not overwriting it!
Preparing ./lua for version 5.1...

┌[ .../tmp/luarocks-test-5.1-or-jit ]─[ ]
└─ cat .luarocks/config-5.1.lua                              lua_interpreter = "luajit"
variables = {
   LUA_BINDIR = "/data/data/com.termux/files/usr/bin/",
   LUA_DIR = "/data/data/com.termux/files/usr/bin/",
   LUA_INCDIR = "/data/data/com.termux/files/usr/include/luajit",
   LUA_LIBDIR = "/data/data/com.termux/files/usr/lib"
}

┌[ .../tmp/luarocks-test-5.1-or-jit ]─[ ]
└─ ~/Program/Luarocks/3.9.1/bin/luarocks --lua-version=5.1 install ~/storage/shared/Archives/Program/luarocks/lpeg-1.0.2-1.src.rock

lpeg 1.0.2-1 depends on lua >= 5.1 (5.1-1 provided by VM)
gcc -O2 -fPIC -I/data/data/com.termux/files/usr/include/luajit -c lpcap.c -o lpcap.o
In file included from lpcap.c:9:
In file included from ./lpcap.h:9:
./lptypes.h:38:9: warning: 'luaL_newlib' macro redefined [-Wmacro-redefined]
#define luaL_newlib(L,f)        luaL_register(L,"lpeg",f)
        ^
/data/data/com.termux/files/usr/include/luajit/lauxlib.h:128:9: note: previous definition is here
#define luaL_newlib(L, l)       (luaL_newlibtable(L, l), luaL_setfuncs(L, l, 0))
        ^
1 warning generated.
gcc -O2 -fPIC -I/data/data/com.termux/files/usr/include/luajit -c lpcode.c -o lpcode.o
In file included from lpcode.c:12:
./lptypes.h:38:9: warning: 'luaL_newlib' macro redefined [-Wmacro-redefined]
#define luaL_newlib(L,f)        luaL_register(L,"lpeg",f)
        ^
/data/data/com.termux/files/usr/include/luajit/lauxlib.h:128:9: note: previous definition is here
#define luaL_newlib(L, l)       (luaL_newlibtable(L, l), luaL_setfuncs(L, l, 0))
        ^
1 warning generated.
gcc -O2 -fPIC -I/data/data/com.termux/files/usr/include/luajit -c lpprint.c -o lpprint.o
gcc -O2 -fPIC -I/data/data/com.termux/files/usr/include/luajit -c lptree.c -o lptree.o
In file included from lptree.c:14:
./lptypes.h:38:9: warning: 'luaL_newlib' macro redefined [-Wmacro-redefined]
#define luaL_newlib(L,f)        luaL_register(L,"lpeg",f)
        ^
/data/data/com.termux/files/usr/include/luajit/lauxlib.h:128:9: note: previous definition is here
#define luaL_newlib(L, l)       (luaL_newlibtable(L, l), luaL_setfuncs(L, l, 0))
        ^
1 warning generated.
gcc -O2 -fPIC -I/data/data/com.termux/files/usr/include/luajit -c lpvm.c -o lpvm.o
In file included from lpvm.c:13:
In file included from ./lpcap.h:9:
./lptypes.h:38:9: warning: 'luaL_newlib' macro redefined [-Wmacro-redefined]
#define luaL_newlib(L,f)        luaL_register(L,"lpeg",f)
        ^
/data/data/com.termux/files/usr/include/luajit/lauxlib.h:128:9: note: previous definition is here
#define luaL_newlib(L, l)       (luaL_newlibtable(L, l), luaL_setfuncs(L, l, 0))
        ^
1 warning generated.
gcc  -shared -o lpeg.so lpcap.o lpcode.o lpprint.o lptree.o lpvm.o
No existing manifest. Attempting to rebuild...
lpeg 1.0.2-1 is now installed in /data/data/com.termux/files/usr/tmp/luarocks-test-5.1-or-jit/./lua_modules (license: MIT/X11)

┌[ .../tmp/luarocks-test-5.1-or-jit ]─[ ]
└─ ./lua -v
LuaJIT 2.1.0-beta3 -- Copyright (C) 2005-2021 Mike Pall. https://luajit.org/

┌[ .../tmp/luarocks-test-5.1-or-jit ]─[ ]
└─ ./lua -e "print(require 'lpeg')"
table: 0x7f9d48ac60

┌[ .../tmp/luarocks-test-5.1-or-jit ]─[ ]
└─