frida 16.2.0 → 16.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BSDmakefile +6 -0
- package/Makefile +16 -0
- package/README.md +14 -11
- package/configure +18 -0
- package/configure.bat +22 -0
- package/dist/native.js +0 -8
- package/lib/application.ts +98 -0
- package/lib/authentication.ts +3 -0
- package/lib/build.py +50 -0
- package/lib/bus.ts +30 -0
- package/lib/cancellable.ts +33 -0
- package/lib/child.ts +15 -0
- package/lib/crash.ts +11 -0
- package/lib/device.ts +329 -0
- package/lib/device_manager.ts +69 -0
- package/lib/endpoint_parameters.ts +56 -0
- package/lib/icon.ts +15 -0
- package/lib/index.ts +311 -0
- package/lib/iostream.ts +78 -0
- package/lib/meson.build +53 -0
- package/lib/native.ts +9 -0
- package/lib/portal_membership.ts +10 -0
- package/lib/portal_service.ts +105 -0
- package/lib/process.ts +57 -0
- package/lib/relay.ts +44 -0
- package/lib/script.ts +352 -0
- package/lib/session.ts +113 -0
- package/lib/signals.ts +45 -0
- package/lib/socket_address.ts +35 -0
- package/lib/spawn.ts +4 -0
- package/lib/system_parameters.ts +78 -0
- package/make.bat +23 -0
- package/meson.build +160 -0
- package/meson.options +11 -0
- package/package.json +27 -6
- package/releng/deps.py +1133 -0
- package/releng/deps.toml +391 -0
- package/releng/devkit-assets/frida-core-example-unix.c +188 -0
- package/releng/devkit-assets/frida-core-example-windows.c +197 -0
- package/releng/devkit-assets/frida-core-example.sln +28 -0
- package/releng/devkit-assets/frida-core-example.vcxproj +157 -0
- package/releng/devkit-assets/frida-core-example.vcxproj.filters +27 -0
- package/releng/devkit-assets/frida-gum-example-unix.c +122 -0
- package/releng/devkit-assets/frida-gum-example-windows.c +132 -0
- package/releng/devkit-assets/frida-gum-example.sln +28 -0
- package/releng/devkit-assets/frida-gum-example.vcxproj +157 -0
- package/releng/devkit-assets/frida-gum-example.vcxproj.filters +27 -0
- package/releng/devkit-assets/frida-gumjs-example-unix.c +84 -0
- package/releng/devkit-assets/frida-gumjs-example-windows.c +91 -0
- package/releng/devkit-assets/frida-gumjs-example.sln +28 -0
- package/releng/devkit-assets/frida-gumjs-example.vcxproj +157 -0
- package/releng/devkit-assets/frida-gumjs-example.vcxproj.filters +27 -0
- package/releng/devkit.py +535 -0
- package/releng/env.py +420 -0
- package/releng/env_android.py +150 -0
- package/releng/env_apple.py +176 -0
- package/releng/env_generic.py +373 -0
- package/releng/frida_version.py +69 -0
- package/releng/machine_file.py +44 -0
- package/releng/machine_spec.py +290 -0
- package/releng/meson/meson.py +27 -0
- package/releng/meson/mesonbuild/__init__.py +0 -0
- package/releng/meson/mesonbuild/_pathlib.py +63 -0
- package/releng/meson/mesonbuild/_typing.py +69 -0
- package/releng/meson/mesonbuild/arglist.py +321 -0
- package/releng/meson/mesonbuild/ast/__init__.py +23 -0
- package/releng/meson/mesonbuild/ast/interpreter.py +441 -0
- package/releng/meson/mesonbuild/ast/introspection.py +374 -0
- package/releng/meson/mesonbuild/ast/postprocess.py +109 -0
- package/releng/meson/mesonbuild/ast/printer.py +620 -0
- package/releng/meson/mesonbuild/ast/visitor.py +161 -0
- package/releng/meson/mesonbuild/backend/__init__.py +0 -0
- package/releng/meson/mesonbuild/backend/backends.py +2047 -0
- package/releng/meson/mesonbuild/backend/ninjabackend.py +3808 -0
- package/releng/meson/mesonbuild/backend/nonebackend.py +26 -0
- package/releng/meson/mesonbuild/backend/vs2010backend.py +2078 -0
- package/releng/meson/mesonbuild/backend/vs2012backend.py +35 -0
- package/releng/meson/mesonbuild/backend/vs2013backend.py +34 -0
- package/releng/meson/mesonbuild/backend/vs2015backend.py +35 -0
- package/releng/meson/mesonbuild/backend/vs2017backend.py +59 -0
- package/releng/meson/mesonbuild/backend/vs2019backend.py +54 -0
- package/releng/meson/mesonbuild/backend/vs2022backend.py +54 -0
- package/releng/meson/mesonbuild/backend/xcodebackend.py +1781 -0
- package/releng/meson/mesonbuild/build.py +3249 -0
- package/releng/meson/mesonbuild/cargo/__init__.py +5 -0
- package/releng/meson/mesonbuild/cargo/builder.py +238 -0
- package/releng/meson/mesonbuild/cargo/cfg.py +274 -0
- package/releng/meson/mesonbuild/cargo/interpreter.py +733 -0
- package/releng/meson/mesonbuild/cargo/manifest.py +227 -0
- package/releng/meson/mesonbuild/cargo/version.py +95 -0
- package/releng/meson/mesonbuild/cmake/__init__.py +28 -0
- package/releng/meson/mesonbuild/cmake/common.py +331 -0
- package/releng/meson/mesonbuild/cmake/data/__init__.py +0 -0
- package/releng/meson/mesonbuild/cmake/data/preload.cmake +82 -0
- package/releng/meson/mesonbuild/cmake/executor.py +241 -0
- package/releng/meson/mesonbuild/cmake/fileapi.py +324 -0
- package/releng/meson/mesonbuild/cmake/generator.py +186 -0
- package/releng/meson/mesonbuild/cmake/interpreter.py +1267 -0
- package/releng/meson/mesonbuild/cmake/toolchain.py +248 -0
- package/releng/meson/mesonbuild/cmake/traceparser.py +814 -0
- package/releng/meson/mesonbuild/cmake/tracetargets.py +161 -0
- package/releng/meson/mesonbuild/compilers/__init__.py +86 -0
- package/releng/meson/mesonbuild/compilers/asm.py +307 -0
- package/releng/meson/mesonbuild/compilers/c.py +788 -0
- package/releng/meson/mesonbuild/compilers/c_function_attributes.py +143 -0
- package/releng/meson/mesonbuild/compilers/compilers.py +1388 -0
- package/releng/meson/mesonbuild/compilers/cpp.py +1035 -0
- package/releng/meson/mesonbuild/compilers/cs.py +136 -0
- package/releng/meson/mesonbuild/compilers/cuda.py +806 -0
- package/releng/meson/mesonbuild/compilers/cython.py +91 -0
- package/releng/meson/mesonbuild/compilers/d.py +861 -0
- package/releng/meson/mesonbuild/compilers/detect.py +1396 -0
- package/releng/meson/mesonbuild/compilers/fortran.py +523 -0
- package/releng/meson/mesonbuild/compilers/java.py +113 -0
- package/releng/meson/mesonbuild/compilers/mixins/__init__.py +0 -0
- package/releng/meson/mesonbuild/compilers/mixins/arm.py +167 -0
- package/releng/meson/mesonbuild/compilers/mixins/ccrx.py +113 -0
- package/releng/meson/mesonbuild/compilers/mixins/clang.py +170 -0
- package/releng/meson/mesonbuild/compilers/mixins/clike.py +1330 -0
- package/releng/meson/mesonbuild/compilers/mixins/compcert.py +117 -0
- package/releng/meson/mesonbuild/compilers/mixins/elbrus.py +93 -0
- package/releng/meson/mesonbuild/compilers/mixins/emscripten.py +89 -0
- package/releng/meson/mesonbuild/compilers/mixins/gnu.py +629 -0
- package/releng/meson/mesonbuild/compilers/mixins/intel.py +167 -0
- package/releng/meson/mesonbuild/compilers/mixins/islinker.py +120 -0
- package/releng/meson/mesonbuild/compilers/mixins/metrowerks.py +279 -0
- package/releng/meson/mesonbuild/compilers/mixins/pgi.py +88 -0
- package/releng/meson/mesonbuild/compilers/mixins/ti.py +130 -0
- package/releng/meson/mesonbuild/compilers/mixins/visualstudio.py +458 -0
- package/releng/meson/mesonbuild/compilers/mixins/xc16.py +111 -0
- package/releng/meson/mesonbuild/compilers/objc.py +120 -0
- package/releng/meson/mesonbuild/compilers/objcpp.py +102 -0
- package/releng/meson/mesonbuild/compilers/rust.py +230 -0
- package/releng/meson/mesonbuild/compilers/swift.py +131 -0
- package/releng/meson/mesonbuild/compilers/vala.py +121 -0
- package/releng/meson/mesonbuild/coredata.py +1532 -0
- package/releng/meson/mesonbuild/dependencies/__init__.py +252 -0
- package/releng/meson/mesonbuild/dependencies/base.py +663 -0
- package/releng/meson/mesonbuild/dependencies/boost.py +1083 -0
- package/releng/meson/mesonbuild/dependencies/cmake.py +656 -0
- package/releng/meson/mesonbuild/dependencies/coarrays.py +80 -0
- package/releng/meson/mesonbuild/dependencies/configtool.py +163 -0
- package/releng/meson/mesonbuild/dependencies/cuda.py +295 -0
- package/releng/meson/mesonbuild/dependencies/data/CMakeLists.txt +102 -0
- package/releng/meson/mesonbuild/dependencies/data/CMakeListsLLVM.txt +204 -0
- package/releng/meson/mesonbuild/dependencies/data/CMakePathInfo.txt +31 -0
- package/releng/meson/mesonbuild/dependencies/data/__init__.py +0 -0
- package/releng/meson/mesonbuild/dependencies/detect.py +225 -0
- package/releng/meson/mesonbuild/dependencies/dev.py +707 -0
- package/releng/meson/mesonbuild/dependencies/dub.py +424 -0
- package/releng/meson/mesonbuild/dependencies/factory.py +146 -0
- package/releng/meson/mesonbuild/dependencies/framework.py +111 -0
- package/releng/meson/mesonbuild/dependencies/hdf5.py +168 -0
- package/releng/meson/mesonbuild/dependencies/misc.py +618 -0
- package/releng/meson/mesonbuild/dependencies/mpi.py +231 -0
- package/releng/meson/mesonbuild/dependencies/pkgconfig.py +570 -0
- package/releng/meson/mesonbuild/dependencies/platform.py +52 -0
- package/releng/meson/mesonbuild/dependencies/python.py +431 -0
- package/releng/meson/mesonbuild/dependencies/qt.py +484 -0
- package/releng/meson/mesonbuild/dependencies/scalapack.py +142 -0
- package/releng/meson/mesonbuild/dependencies/ui.py +281 -0
- package/releng/meson/mesonbuild/depfile.py +82 -0
- package/releng/meson/mesonbuild/envconfig.py +480 -0
- package/releng/meson/mesonbuild/environment.py +987 -0
- package/releng/meson/mesonbuild/interpreter/__init__.py +47 -0
- package/releng/meson/mesonbuild/interpreter/compiler.py +900 -0
- package/releng/meson/mesonbuild/interpreter/dependencyfallbacks.py +386 -0
- package/releng/meson/mesonbuild/interpreter/interpreter.py +3595 -0
- package/releng/meson/mesonbuild/interpreter/interpreterobjects.py +1096 -0
- package/releng/meson/mesonbuild/interpreter/kwargs.py +479 -0
- package/releng/meson/mesonbuild/interpreter/mesonmain.py +487 -0
- package/releng/meson/mesonbuild/interpreter/primitives/__init__.py +29 -0
- package/releng/meson/mesonbuild/interpreter/primitives/array.py +108 -0
- package/releng/meson/mesonbuild/interpreter/primitives/boolean.py +52 -0
- package/releng/meson/mesonbuild/interpreter/primitives/dict.py +88 -0
- package/releng/meson/mesonbuild/interpreter/primitives/integer.py +86 -0
- package/releng/meson/mesonbuild/interpreter/primitives/range.py +38 -0
- package/releng/meson/mesonbuild/interpreter/primitives/string.py +247 -0
- package/releng/meson/mesonbuild/interpreter/type_checking.py +853 -0
- package/releng/meson/mesonbuild/interpreterbase/__init__.py +126 -0
- package/releng/meson/mesonbuild/interpreterbase/_unholder.py +25 -0
- package/releng/meson/mesonbuild/interpreterbase/baseobjects.py +174 -0
- package/releng/meson/mesonbuild/interpreterbase/decorators.py +806 -0
- package/releng/meson/mesonbuild/interpreterbase/disabler.py +35 -0
- package/releng/meson/mesonbuild/interpreterbase/exceptions.py +22 -0
- package/releng/meson/mesonbuild/interpreterbase/helpers.py +67 -0
- package/releng/meson/mesonbuild/interpreterbase/interpreterbase.py +665 -0
- package/releng/meson/mesonbuild/interpreterbase/operator.py +32 -0
- package/releng/meson/mesonbuild/linkers/__init__.py +20 -0
- package/releng/meson/mesonbuild/linkers/base.py +39 -0
- package/releng/meson/mesonbuild/linkers/detect.py +229 -0
- package/releng/meson/mesonbuild/linkers/linkers.py +1614 -0
- package/releng/meson/mesonbuild/mcompile.py +380 -0
- package/releng/meson/mesonbuild/mconf.py +368 -0
- package/releng/meson/mesonbuild/mdevenv.py +234 -0
- package/releng/meson/mesonbuild/mdist.py +376 -0
- package/releng/meson/mesonbuild/mesondata.py +38 -0
- package/releng/meson/mesonbuild/mesonlib.py +23 -0
- package/releng/meson/mesonbuild/mesonmain.py +289 -0
- package/releng/meson/mesonbuild/minit.py +204 -0
- package/releng/meson/mesonbuild/minstall.py +864 -0
- package/releng/meson/mesonbuild/mintro.py +667 -0
- package/releng/meson/mesonbuild/mlog.py +542 -0
- package/releng/meson/mesonbuild/modules/__init__.py +270 -0
- package/releng/meson/mesonbuild/modules/cmake.py +442 -0
- package/releng/meson/mesonbuild/modules/cuda.py +377 -0
- package/releng/meson/mesonbuild/modules/dlang.py +117 -0
- package/releng/meson/mesonbuild/modules/external_project.py +306 -0
- package/releng/meson/mesonbuild/modules/fs.py +323 -0
- package/releng/meson/mesonbuild/modules/gnome.py +2215 -0
- package/releng/meson/mesonbuild/modules/hotdoc.py +487 -0
- package/releng/meson/mesonbuild/modules/i18n.py +405 -0
- package/releng/meson/mesonbuild/modules/icestorm.py +123 -0
- package/releng/meson/mesonbuild/modules/java.py +112 -0
- package/releng/meson/mesonbuild/modules/keyval.py +65 -0
- package/releng/meson/mesonbuild/modules/modtest.py +33 -0
- package/releng/meson/mesonbuild/modules/pkgconfig.py +744 -0
- package/releng/meson/mesonbuild/modules/python.py +556 -0
- package/releng/meson/mesonbuild/modules/python3.py +85 -0
- package/releng/meson/mesonbuild/modules/qt.py +621 -0
- package/releng/meson/mesonbuild/modules/qt4.py +23 -0
- package/releng/meson/mesonbuild/modules/qt5.py +23 -0
- package/releng/meson/mesonbuild/modules/qt6.py +22 -0
- package/releng/meson/mesonbuild/modules/rust.py +355 -0
- package/releng/meson/mesonbuild/modules/simd.py +114 -0
- package/releng/meson/mesonbuild/modules/sourceset.py +291 -0
- package/releng/meson/mesonbuild/modules/wayland.py +151 -0
- package/releng/meson/mesonbuild/modules/windows.py +207 -0
- package/releng/meson/mesonbuild/mparser.py +1114 -0
- package/releng/meson/mesonbuild/msetup.py +365 -0
- package/releng/meson/mesonbuild/msubprojects.py +764 -0
- package/releng/meson/mesonbuild/mtest.py +2201 -0
- package/releng/meson/mesonbuild/munstable_coredata.py +107 -0
- package/releng/meson/mesonbuild/optinterpreter.py +276 -0
- package/releng/meson/mesonbuild/programs.py +367 -0
- package/releng/meson/mesonbuild/rewriter.py +1075 -0
- package/releng/meson/mesonbuild/scripts/__init__.py +10 -0
- package/releng/meson/mesonbuild/scripts/clangformat.py +55 -0
- package/releng/meson/mesonbuild/scripts/clangtidy.py +30 -0
- package/releng/meson/mesonbuild/scripts/cleantrees.py +35 -0
- package/releng/meson/mesonbuild/scripts/cmake_run_ctgt.py +103 -0
- package/releng/meson/mesonbuild/scripts/cmd_or_ps.ps1 +17 -0
- package/releng/meson/mesonbuild/scripts/copy.py +19 -0
- package/releng/meson/mesonbuild/scripts/coverage.py +214 -0
- package/releng/meson/mesonbuild/scripts/delwithsuffix.py +27 -0
- package/releng/meson/mesonbuild/scripts/depfixer.py +495 -0
- package/releng/meson/mesonbuild/scripts/depscan.py +198 -0
- package/releng/meson/mesonbuild/scripts/dirchanger.py +20 -0
- package/releng/meson/mesonbuild/scripts/env2mfile.py +402 -0
- package/releng/meson/mesonbuild/scripts/externalproject.py +106 -0
- package/releng/meson/mesonbuild/scripts/gettext.py +86 -0
- package/releng/meson/mesonbuild/scripts/gtkdochelper.py +286 -0
- package/releng/meson/mesonbuild/scripts/hotdochelper.py +40 -0
- package/releng/meson/mesonbuild/scripts/itstool.py +77 -0
- package/releng/meson/mesonbuild/scripts/meson_exe.py +115 -0
- package/releng/meson/mesonbuild/scripts/msgfmthelper.py +29 -0
- package/releng/meson/mesonbuild/scripts/pycompile.py +54 -0
- package/releng/meson/mesonbuild/scripts/python_info.py +121 -0
- package/releng/meson/mesonbuild/scripts/regen_checker.py +55 -0
- package/releng/meson/mesonbuild/scripts/run_tool.py +58 -0
- package/releng/meson/mesonbuild/scripts/scanbuild.py +57 -0
- package/releng/meson/mesonbuild/scripts/symbolextractor.py +322 -0
- package/releng/meson/mesonbuild/scripts/tags.py +44 -0
- package/releng/meson/mesonbuild/scripts/test_loaded_modules.py +14 -0
- package/releng/meson/mesonbuild/scripts/uninstall.py +41 -0
- package/releng/meson/mesonbuild/scripts/vcstagger.py +35 -0
- package/releng/meson/mesonbuild/scripts/yasm.py +24 -0
- package/releng/meson/mesonbuild/templates/__init__.py +0 -0
- package/releng/meson/mesonbuild/templates/cpptemplates.py +143 -0
- package/releng/meson/mesonbuild/templates/cstemplates.py +90 -0
- package/releng/meson/mesonbuild/templates/ctemplates.py +126 -0
- package/releng/meson/mesonbuild/templates/cudatemplates.py +143 -0
- package/releng/meson/mesonbuild/templates/dlangtemplates.py +109 -0
- package/releng/meson/mesonbuild/templates/fortrantemplates.py +101 -0
- package/releng/meson/mesonbuild/templates/javatemplates.py +94 -0
- package/releng/meson/mesonbuild/templates/mesontemplates.py +70 -0
- package/releng/meson/mesonbuild/templates/objcpptemplates.py +126 -0
- package/releng/meson/mesonbuild/templates/objctemplates.py +126 -0
- package/releng/meson/mesonbuild/templates/rusttemplates.py +79 -0
- package/releng/meson/mesonbuild/templates/samplefactory.py +41 -0
- package/releng/meson/mesonbuild/templates/sampleimpl.py +160 -0
- package/releng/meson/mesonbuild/templates/valatemplates.py +82 -0
- package/releng/meson/mesonbuild/utils/__init__.py +0 -0
- package/releng/meson/mesonbuild/utils/core.py +166 -0
- package/releng/meson/mesonbuild/utils/platform.py +27 -0
- package/releng/meson/mesonbuild/utils/posix.py +32 -0
- package/releng/meson/mesonbuild/utils/universal.py +2445 -0
- package/releng/meson/mesonbuild/utils/vsenv.py +126 -0
- package/releng/meson/mesonbuild/utils/win32.py +29 -0
- package/releng/meson/mesonbuild/wrap/__init__.py +59 -0
- package/releng/meson/mesonbuild/wrap/wrap.py +846 -0
- package/releng/meson/mesonbuild/wrap/wraptool.py +198 -0
- package/releng/meson-scripts/BSDmakefile +6 -0
- package/releng/meson-scripts/Makefile +16 -0
- package/releng/meson-scripts/configure +18 -0
- package/releng/meson-scripts/configure.bat +22 -0
- package/releng/meson-scripts/make.bat +23 -0
- package/releng/meson_configure.py +506 -0
- package/releng/meson_make.py +131 -0
- package/releng/mkdevkit.py +107 -0
- package/releng/mkfatmacho.py +54 -0
- package/releng/post-process-oabi.py +97 -0
- package/releng/progress.py +14 -0
- package/releng/sync-from-upstream.py +185 -0
- package/releng/tomlkit/tomlkit/__init__.py +59 -0
- package/releng/tomlkit/tomlkit/_compat.py +22 -0
- package/releng/tomlkit/tomlkit/_types.py +83 -0
- package/releng/tomlkit/tomlkit/_utils.py +158 -0
- package/releng/tomlkit/tomlkit/api.py +308 -0
- package/releng/tomlkit/tomlkit/container.py +875 -0
- package/releng/tomlkit/tomlkit/exceptions.py +227 -0
- package/releng/tomlkit/tomlkit/items.py +1967 -0
- package/releng/tomlkit/tomlkit/parser.py +1141 -0
- package/releng/tomlkit/tomlkit/py.typed +0 -0
- package/releng/tomlkit/tomlkit/source.py +180 -0
- package/releng/tomlkit/tomlkit/toml_char.py +52 -0
- package/releng/tomlkit/tomlkit/toml_document.py +7 -0
- package/releng/tomlkit/tomlkit/toml_file.py +58 -0
- package/releng/winenv.py +140 -0
- package/scripts/adjust-version.py +19 -0
- package/scripts/detect-version.py +40 -0
- package/scripts/fetch-abi-bits.py +343 -0
- package/scripts/install.js +23 -0
- package/scripts/package.py +15 -0
- package/src/addon.cc +76 -0
- package/src/application.cc +148 -0
- package/src/application.h +31 -0
- package/src/authentication.cc +174 -0
- package/src/authentication.h +24 -0
- package/src/bus.cc +167 -0
- package/src/bus.h +33 -0
- package/src/cancellable.cc +117 -0
- package/src/cancellable.h +31 -0
- package/src/child.cc +150 -0
- package/src/child.h +32 -0
- package/src/crash.cc +122 -0
- package/src/crash.h +30 -0
- package/src/device.cc +1302 -0
- package/src/device.h +55 -0
- package/src/device_manager.cc +362 -0
- package/src/device_manager.h +35 -0
- package/src/endpoint_parameters.cc +171 -0
- package/src/endpoint_parameters.h +28 -0
- package/src/glib_context.cc +62 -0
- package/src/glib_context.h +29 -0
- package/src/glib_object.cc +25 -0
- package/src/glib_object.h +37 -0
- package/src/iostream.cc +247 -0
- package/src/iostream.h +30 -0
- package/src/meson.build +26 -0
- package/src/operation.h +94 -0
- package/src/portal_membership.cc +100 -0
- package/src/portal_membership.h +26 -0
- package/src/portal_service.cc +401 -0
- package/src/portal_service.h +40 -0
- package/src/process.cc +135 -0
- package/src/process.h +30 -0
- package/src/relay.cc +139 -0
- package/src/relay.h +31 -0
- package/src/runtime.cc +443 -0
- package/src/runtime.h +64 -0
- package/src/script.cc +301 -0
- package/src/script.h +36 -0
- package/src/session.cc +860 -0
- package/src/session.h +42 -0
- package/src/signals.cc +334 -0
- package/src/signals.h +47 -0
- package/src/spawn.cc +95 -0
- package/src/spawn.h +27 -0
- package/src/usage_monitor.h +117 -0
- package/src/uv_context.cc +118 -0
- package/src/uv_context.h +40 -0
- package/src/win_delay_load_hook.cc +63 -0
- package/subprojects/frida-core.wrap +8 -0
- package/subprojects/nan.wrap +9 -0
- package/subprojects/packagefiles/nan.patch +13 -0
- package/test/data/index.ts +13 -0
- package/test/data/unixvictim-linux-x86 +0 -0
- package/test/data/unixvictim-linux-x86_64 +0 -0
- package/test/data/unixvictim-macos +0 -0
- package/test/device.ts +27 -0
- package/test/device_manager.ts +16 -0
- package/test/labrat.ts +32 -0
- package/test/script.ts +176 -0
- package/test/session.ts +73 -0
- package/tsconfig.json +18 -0
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
import platform
|
|
4
|
+
import re
|
|
5
|
+
from typing import Optional
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
@dataclass
|
|
9
|
+
class MachineSpec:
|
|
10
|
+
os: str
|
|
11
|
+
arch: str
|
|
12
|
+
config: Optional[str] = None
|
|
13
|
+
triplet: Optional[str] = None
|
|
14
|
+
|
|
15
|
+
@staticmethod
|
|
16
|
+
def make_from_local_system() -> MachineSpec:
|
|
17
|
+
return MachineSpec(detect_os(), detect_arch())
|
|
18
|
+
|
|
19
|
+
@staticmethod
|
|
20
|
+
def parse(raw_spec: str) -> MachineSpec:
|
|
21
|
+
os = None
|
|
22
|
+
arch = None
|
|
23
|
+
config = None
|
|
24
|
+
triplet = None
|
|
25
|
+
|
|
26
|
+
tokens = raw_spec.split("-")
|
|
27
|
+
if len(tokens) in {3, 4}:
|
|
28
|
+
arch = tokens[0]
|
|
29
|
+
m = TARGET_TRIPLET_ARCH_PATTERN.match(arch)
|
|
30
|
+
if m is not None:
|
|
31
|
+
kernel = tokens[-2]
|
|
32
|
+
system = tokens[-1]
|
|
33
|
+
|
|
34
|
+
if kernel == "w64":
|
|
35
|
+
os = "windows"
|
|
36
|
+
elif kernel == "nto":
|
|
37
|
+
os = "qnx"
|
|
38
|
+
else:
|
|
39
|
+
os = kernel
|
|
40
|
+
|
|
41
|
+
if arch[0] == "i":
|
|
42
|
+
arch = "x86"
|
|
43
|
+
elif arch == "arm":
|
|
44
|
+
if system == "gnueabihf":
|
|
45
|
+
arch = "armhf"
|
|
46
|
+
elif os == "qnx" and system.endswith("eabi"):
|
|
47
|
+
arch = "armeabi"
|
|
48
|
+
elif arch == "aarch64":
|
|
49
|
+
arch = "arm64"
|
|
50
|
+
|
|
51
|
+
if system.startswith("musl"):
|
|
52
|
+
config = "musl"
|
|
53
|
+
elif kernel == "w64":
|
|
54
|
+
config = "mingw"
|
|
55
|
+
|
|
56
|
+
triplet = raw_spec
|
|
57
|
+
|
|
58
|
+
if os is None:
|
|
59
|
+
os, arch, *rest = tokens
|
|
60
|
+
if rest:
|
|
61
|
+
assert len(rest) == 1
|
|
62
|
+
config = rest[0]
|
|
63
|
+
|
|
64
|
+
return MachineSpec(os, arch, config, triplet)
|
|
65
|
+
|
|
66
|
+
def evolve(self,
|
|
67
|
+
os: Optional[str] = None,
|
|
68
|
+
arch: Optional[str] = None,
|
|
69
|
+
config: Optional[str] = None,
|
|
70
|
+
triplet: Optional[str] = None) -> MachineSpec:
|
|
71
|
+
return MachineSpec(
|
|
72
|
+
os if os is not None else self.os,
|
|
73
|
+
arch if arch is not None else self.arch,
|
|
74
|
+
config if config is not None else self.config,
|
|
75
|
+
triplet if triplet is not None else self.triplet,
|
|
76
|
+
)
|
|
77
|
+
|
|
78
|
+
def default_missing(self, recommended_vscrt: Optional[str] = None) -> MachineSpec:
|
|
79
|
+
config = self.config
|
|
80
|
+
if config is None and self.toolchain_is_msvc:
|
|
81
|
+
if recommended_vscrt is not None:
|
|
82
|
+
config = recommended_vscrt
|
|
83
|
+
else:
|
|
84
|
+
config = "mt"
|
|
85
|
+
return self.evolve(config=config)
|
|
86
|
+
|
|
87
|
+
def maybe_adapt_to_host(self, host_machine: MachineSpec) -> MachineSpec:
|
|
88
|
+
if self.identifier == host_machine.identifier and host_machine.triplet is not None:
|
|
89
|
+
return host_machine
|
|
90
|
+
if self.os == "windows":
|
|
91
|
+
if self.arch == "x86_64" and host_machine.arch == "x86":
|
|
92
|
+
return host_machine
|
|
93
|
+
if self.arch == host_machine.arch:
|
|
94
|
+
return host_machine
|
|
95
|
+
return self
|
|
96
|
+
|
|
97
|
+
@property
|
|
98
|
+
def identifier(self) -> str:
|
|
99
|
+
parts = [self.os, self.arch]
|
|
100
|
+
if self.config is not None:
|
|
101
|
+
parts += [self.config]
|
|
102
|
+
return "-".join(parts)
|
|
103
|
+
|
|
104
|
+
@property
|
|
105
|
+
def os_dash_arch(self) -> str:
|
|
106
|
+
return f"{self.os}-{self.arch}"
|
|
107
|
+
|
|
108
|
+
@property
|
|
109
|
+
def os_dash_config(self) -> str:
|
|
110
|
+
parts = [self.os]
|
|
111
|
+
if self.config is not None:
|
|
112
|
+
parts += [self.config]
|
|
113
|
+
return "-".join(parts)
|
|
114
|
+
|
|
115
|
+
@property
|
|
116
|
+
def config_is_optimized(self) -> bool:
|
|
117
|
+
if self.toolchain_is_msvc:
|
|
118
|
+
return self.config in {"md", "mt"}
|
|
119
|
+
return True
|
|
120
|
+
|
|
121
|
+
@property
|
|
122
|
+
def meson_optimization_options(self) -> list[str]:
|
|
123
|
+
if self.config_is_optimized:
|
|
124
|
+
optimization = "s"
|
|
125
|
+
ndebug = "true"
|
|
126
|
+
else:
|
|
127
|
+
optimization = "0"
|
|
128
|
+
ndebug = "false"
|
|
129
|
+
return [
|
|
130
|
+
f"-Doptimization={optimization}",
|
|
131
|
+
f"-Db_ndebug={ndebug}",
|
|
132
|
+
]
|
|
133
|
+
|
|
134
|
+
@property
|
|
135
|
+
def executable_suffix(self) -> str:
|
|
136
|
+
return ".exe" if self.os == "windows" else ""
|
|
137
|
+
|
|
138
|
+
@property
|
|
139
|
+
def msvc_platform(self) -> str:
|
|
140
|
+
return "x64" if self.arch == "x86_64" else "x86"
|
|
141
|
+
|
|
142
|
+
@property
|
|
143
|
+
def is_apple(self) -> str:
|
|
144
|
+
return self.os in {"macos", "ios", "watchos", "tvos"}
|
|
145
|
+
|
|
146
|
+
@property
|
|
147
|
+
def system(self) -> str:
|
|
148
|
+
return "darwin" if self.is_apple else self.os
|
|
149
|
+
|
|
150
|
+
@property
|
|
151
|
+
def subsystem(self) -> str:
|
|
152
|
+
return self.os_dash_config if self.is_apple else self.os
|
|
153
|
+
|
|
154
|
+
@property
|
|
155
|
+
def kernel(self) -> str:
|
|
156
|
+
return KERNELS.get(self.os, self.os)
|
|
157
|
+
|
|
158
|
+
@property
|
|
159
|
+
def cpu_family(self) -> str:
|
|
160
|
+
arch = self.arch
|
|
161
|
+
return CPU_FAMILIES.get(arch, arch)
|
|
162
|
+
|
|
163
|
+
@property
|
|
164
|
+
def cpu(self) -> str:
|
|
165
|
+
arch = self.arch
|
|
166
|
+
|
|
167
|
+
mappings_to_search = [
|
|
168
|
+
CPU_TYPES_PER_OS_OVERRIDES.get(self.os, {}),
|
|
169
|
+
CPU_TYPES,
|
|
170
|
+
]
|
|
171
|
+
for m in mappings_to_search:
|
|
172
|
+
cpu = m.get(arch, None)
|
|
173
|
+
if cpu is not None:
|
|
174
|
+
return cpu
|
|
175
|
+
|
|
176
|
+
return arch
|
|
177
|
+
|
|
178
|
+
@property
|
|
179
|
+
def endian(self) -> str:
|
|
180
|
+
return "big" if self.arch in BIG_ENDIAN_ARCHS else "little"
|
|
181
|
+
|
|
182
|
+
@property
|
|
183
|
+
def pointer_size(self) -> int:
|
|
184
|
+
arch = self.arch
|
|
185
|
+
if arch in {"x86_64", "s390x"}:
|
|
186
|
+
return 8
|
|
187
|
+
if arch.startswith("arm64") or arch.startswith("mips64"):
|
|
188
|
+
return 8
|
|
189
|
+
return 4
|
|
190
|
+
|
|
191
|
+
@property
|
|
192
|
+
def libdatadir(self) -> str:
|
|
193
|
+
return "libdata" if self.os == "freebsd" else "lib"
|
|
194
|
+
|
|
195
|
+
@property
|
|
196
|
+
def toolchain_is_msvc(self) -> bool:
|
|
197
|
+
return self.os == "windows" and self.config != "mingw"
|
|
198
|
+
|
|
199
|
+
@property
|
|
200
|
+
def toolchain_can_strip(self) -> bool:
|
|
201
|
+
return not self.toolchain_is_msvc
|
|
202
|
+
|
|
203
|
+
def __eq__(self, other):
|
|
204
|
+
if isinstance(other, MachineSpec):
|
|
205
|
+
return other.identifier == self.identifier
|
|
206
|
+
return False
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
def detect_os() -> str:
|
|
210
|
+
os = platform.system().lower()
|
|
211
|
+
if os == "darwin":
|
|
212
|
+
os = "macos"
|
|
213
|
+
return os
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
def detect_arch() -> str:
|
|
217
|
+
arch = platform.machine().lower()
|
|
218
|
+
return ARCHS.get(arch, arch)
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
ARCHS = {
|
|
222
|
+
"amd64": "x86_64",
|
|
223
|
+
"armv7l": "armhf",
|
|
224
|
+
"aarch64": "arm64",
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
KERNELS = {
|
|
228
|
+
"windows": "nt",
|
|
229
|
+
|
|
230
|
+
"macos": "xnu",
|
|
231
|
+
"ios": "xnu",
|
|
232
|
+
"watchos": "xnu",
|
|
233
|
+
"tvos": "xnu",
|
|
234
|
+
|
|
235
|
+
"qnx": "nto",
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
CPU_FAMILIES = {
|
|
239
|
+
"armbe8": "arm",
|
|
240
|
+
"armeabi": "arm",
|
|
241
|
+
"armhf": "arm",
|
|
242
|
+
|
|
243
|
+
"arm64": "aarch64",
|
|
244
|
+
"arm64e": "aarch64",
|
|
245
|
+
"arm64eoabi": "aarch64",
|
|
246
|
+
|
|
247
|
+
"mipsel": "mips",
|
|
248
|
+
"mips64el": "mips64",
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
CPU_TYPES = {
|
|
252
|
+
"arm": "armv7",
|
|
253
|
+
"armbe8": "armv6",
|
|
254
|
+
"armhf": "armv7hf",
|
|
255
|
+
"armeabi": "armv7eabi",
|
|
256
|
+
|
|
257
|
+
"arm64": "aarch64",
|
|
258
|
+
"arm64e": "aarch64",
|
|
259
|
+
"arm64eoabi": "aarch64",
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
CPU_TYPES_PER_OS_OVERRIDES = {
|
|
263
|
+
"linux": {
|
|
264
|
+
"arm": "armv5t",
|
|
265
|
+
"armbe8": "armv6t",
|
|
266
|
+
"armhf": "armv7a",
|
|
267
|
+
|
|
268
|
+
"mips": "mips1",
|
|
269
|
+
"mipsel": "mips1",
|
|
270
|
+
|
|
271
|
+
"mips64": "mips64r2",
|
|
272
|
+
"mips64el": "mips64r2",
|
|
273
|
+
},
|
|
274
|
+
"android": {
|
|
275
|
+
"x86": "i686",
|
|
276
|
+
},
|
|
277
|
+
"qnx": {
|
|
278
|
+
"arm": "armv6",
|
|
279
|
+
"armeabi": "armv7",
|
|
280
|
+
},
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
BIG_ENDIAN_ARCHS = {
|
|
284
|
+
"armbe8",
|
|
285
|
+
"mips",
|
|
286
|
+
"mips64",
|
|
287
|
+
"s390x",
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
TARGET_TRIPLET_ARCH_PATTERN = re.compile(r"^(i.86|x86_64|arm(v\w+)?|aarch64|mips\w*|s390x)$")
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
# Copyright 2016 The Meson development team
|
|
4
|
+
# Copyright © 2023 Intel Corporation
|
|
5
|
+
|
|
6
|
+
import sys
|
|
7
|
+
|
|
8
|
+
# Check python version before importing anything else, we might have an older
|
|
9
|
+
# Python that would error on f-string syntax for example.
|
|
10
|
+
if sys.version_info < (3, 7):
|
|
11
|
+
print('Meson works correctly only with python 3.7+.')
|
|
12
|
+
print('You have python {}.'.format(sys.version))
|
|
13
|
+
print('Please update your environment')
|
|
14
|
+
sys.exit(1)
|
|
15
|
+
|
|
16
|
+
from pathlib import Path
|
|
17
|
+
|
|
18
|
+
# If we're run uninstalled, add the script directory to sys.path to ensure that
|
|
19
|
+
# we always import the correct mesonbuild modules even if PYTHONPATH is mangled
|
|
20
|
+
meson_exe = Path(sys.argv[0]).resolve()
|
|
21
|
+
if (meson_exe.parent / 'mesonbuild').is_dir():
|
|
22
|
+
sys.path.insert(0, str(meson_exe.parent))
|
|
23
|
+
|
|
24
|
+
from mesonbuild import mesonmain
|
|
25
|
+
|
|
26
|
+
if __name__ == '__main__':
|
|
27
|
+
sys.exit(mesonmain.main())
|
|
File without changes
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
# Copyright 2021 The Meson development team
|
|
3
|
+
|
|
4
|
+
'''
|
|
5
|
+
This module soly exists to work around a pathlib.resolve bug on
|
|
6
|
+
certain Windows systems:
|
|
7
|
+
|
|
8
|
+
https://github.com/mesonbuild/meson/issues/7295
|
|
9
|
+
https://bugs.python.org/issue31842
|
|
10
|
+
|
|
11
|
+
It should **never** be used directly. Instead, it is automatically
|
|
12
|
+
used when `import pathlib` is used. This is achieved by messing with
|
|
13
|
+
`sys.modules['pathlib']` in mesonmain.
|
|
14
|
+
|
|
15
|
+
Additionally, the sole purpose of this module is to work around a
|
|
16
|
+
python bug. This only bugfixes to pathlib functions and classes are
|
|
17
|
+
allowed here. Finally, this file should be removed once all upstream
|
|
18
|
+
python bugs are fixed and it is OK to tell our users to "just upgrade
|
|
19
|
+
python".
|
|
20
|
+
'''
|
|
21
|
+
from __future__ import annotations
|
|
22
|
+
|
|
23
|
+
import pathlib
|
|
24
|
+
import os
|
|
25
|
+
import platform
|
|
26
|
+
|
|
27
|
+
__all__ = [
|
|
28
|
+
'PurePath',
|
|
29
|
+
'PurePosixPath',
|
|
30
|
+
'PureWindowsPath',
|
|
31
|
+
'Path',
|
|
32
|
+
]
|
|
33
|
+
|
|
34
|
+
PurePath = pathlib.PurePath
|
|
35
|
+
PurePosixPath = pathlib.PurePosixPath
|
|
36
|
+
PureWindowsPath = pathlib.PureWindowsPath
|
|
37
|
+
|
|
38
|
+
# Only patch on platforms where the bug occurs
|
|
39
|
+
if platform.system().lower() in {'windows'}:
|
|
40
|
+
# Can not directly inherit from pathlib.Path because the __new__
|
|
41
|
+
# operator of pathlib.Path() returns a {Posix,Windows}Path object.
|
|
42
|
+
class Path(type(pathlib.Path())):
|
|
43
|
+
def resolve(self, strict: bool = False) -> 'Path':
|
|
44
|
+
'''
|
|
45
|
+
Work around a resolve bug on certain Windows systems:
|
|
46
|
+
|
|
47
|
+
https://github.com/mesonbuild/meson/issues/7295
|
|
48
|
+
https://bugs.python.org/issue31842
|
|
49
|
+
'''
|
|
50
|
+
|
|
51
|
+
try:
|
|
52
|
+
return super().resolve(strict=strict)
|
|
53
|
+
except OSError:
|
|
54
|
+
return Path(os.path.normpath(self))
|
|
55
|
+
else:
|
|
56
|
+
Path = pathlib.Path
|
|
57
|
+
PosixPath = pathlib.PosixPath
|
|
58
|
+
WindowsPath = pathlib.WindowsPath
|
|
59
|
+
|
|
60
|
+
__all__ += [
|
|
61
|
+
'PosixPath',
|
|
62
|
+
'WindowsPath',
|
|
63
|
+
]
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
# Copyright 2020 The Meson development team
|
|
3
|
+
# Copyright © 2020-2023 Intel Corporation
|
|
4
|
+
|
|
5
|
+
"""Meson specific typing helpers.
|
|
6
|
+
|
|
7
|
+
Holds typing helper classes, such as the ImmutableProtocol classes
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
__all__ = [
|
|
11
|
+
'Protocol',
|
|
12
|
+
'ImmutableListProtocol'
|
|
13
|
+
]
|
|
14
|
+
|
|
15
|
+
import typing
|
|
16
|
+
|
|
17
|
+
# We can change this to typing when we require python 3.8
|
|
18
|
+
from typing_extensions import Protocol
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
T = typing.TypeVar('T')
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class StringProtocol(Protocol):
|
|
25
|
+
def __str__(self) -> str: ...
|
|
26
|
+
|
|
27
|
+
class SizedStringProtocol(Protocol, StringProtocol, typing.Sized):
|
|
28
|
+
pass
|
|
29
|
+
|
|
30
|
+
class ImmutableListProtocol(Protocol[T]):
|
|
31
|
+
|
|
32
|
+
"""A protocol used in cases where a list is returned, but should not be
|
|
33
|
+
mutated.
|
|
34
|
+
|
|
35
|
+
This provides all of the methods of a Sequence, as well as copy(). copy()
|
|
36
|
+
returns a list, which allows mutation as it's a copy and that's (hopefully)
|
|
37
|
+
safe.
|
|
38
|
+
|
|
39
|
+
One particular case this is important is for cached values, since python is
|
|
40
|
+
a pass-by-reference language.
|
|
41
|
+
"""
|
|
42
|
+
|
|
43
|
+
def __iter__(self) -> typing.Iterator[T]: ...
|
|
44
|
+
|
|
45
|
+
@typing.overload
|
|
46
|
+
def __getitem__(self, index: int) -> T: ...
|
|
47
|
+
@typing.overload
|
|
48
|
+
def __getitem__(self, index: slice) -> typing.List[T]: ...
|
|
49
|
+
|
|
50
|
+
def __contains__(self, item: T) -> bool: ...
|
|
51
|
+
|
|
52
|
+
def __reversed__(self) -> typing.Iterator[T]: ...
|
|
53
|
+
|
|
54
|
+
def __len__(self) -> int: ...
|
|
55
|
+
|
|
56
|
+
def __add__(self, other: typing.List[T]) -> typing.List[T]: ...
|
|
57
|
+
|
|
58
|
+
def __eq__(self, other: typing.Any) -> bool: ...
|
|
59
|
+
def __ne__(self, other: typing.Any) -> bool: ...
|
|
60
|
+
def __le__(self, other: typing.Any) -> bool: ...
|
|
61
|
+
def __lt__(self, other: typing.Any) -> bool: ...
|
|
62
|
+
def __gt__(self, other: typing.Any) -> bool: ...
|
|
63
|
+
def __ge__(self, other: typing.Any) -> bool: ...
|
|
64
|
+
|
|
65
|
+
def count(self, item: T) -> int: ...
|
|
66
|
+
|
|
67
|
+
def index(self, item: T) -> int: ...
|
|
68
|
+
|
|
69
|
+
def copy(self) -> typing.List[T]: ...
|