diff options
author | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2020-02-12 16:30:39 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2020-02-12 16:30:39 +0000 |
commit | b56e69fa753679e730bd1179610d4b61cfc3fa0b (patch) | |
tree | 7f5f73eff5fe1e21acb23c11efe67a6f4b9c84db | |
parent | ae40536100004f6160bc37570885cb532ebc9ccd (diff) | |
parent | 44e9a33d41eb4bf9bc18c330f1115dcf8d258ecf (diff) | |
download | minijail-b56e69fa753679e730bd1179610d4b61cfc3fa0b.tar.gz |
add support for python installer am: a12687bc60 am: 51a01cfe87 am: 44e9a33d41
Change-Id: I0e25c88f813c63e3f2529e1eb8129d2a1c1ec7eb
-rw-r--r-- | setup.py | 51 | ||||
-rw-r--r-- | tools/README.md | 6 | ||||
-rwxr-xr-x | tools/compile_seccomp_policy.py | 20 | ||||
-rw-r--r-- | tools/compiler.py | 8 | ||||
-rwxr-xr-x | tools/generate_constants_json.py | 6 | ||||
-rwxr-xr-x | tools/generate_seccomp_policy.py | 6 | ||||
-rw-r--r-- | tools/parser.py | 6 |
7 files changed, 87 insertions, 16 deletions
diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..ab02ddf --- /dev/null +++ b/setup.py @@ -0,0 +1,51 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# Copyright (C) 2020 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +"""A file that specifies how to install minijail's python-based tool(s).""" + +import os +from setuptools import setup + + +this_directory = os.path.abspath(os.path.dirname(__file__)) +with open(os.path.join(this_directory, 'README.md'), encoding='utf-8') as f: + long_description = f.read() + +setup(name='minijail', + version='0.12', + description='A set of tools for Minijail', + classifiers=[ + 'Programming Language :: Python :: 3', + 'License :: OSI Approved :: Apache Software License', + 'Operating System :: Linux', + ], + python_requires='>=3.6', + license='Apache License 2.0', + long_description=long_description, + long_description_content_type='text/markdown', + author='Minijail Developers', + author_email='minijail-dev@google.com', + url='https://google.github.io/minijail/', + packages=['minijail'], + package_dir={'minijail': 'tools'}, + entry_points={ + 'console_scripts': [ + 'compile_seccomp_policy = minijail.compile_seccomp_policy:main', + 'generate_seccomp_policy = minijail.generate_seccomp_policy:main', + 'generate_constants_json = minijail.generate_constants_json:main', + ], + }, +) diff --git a/tools/README.md b/tools/README.md index 95997af..d056797 100644 --- a/tools/README.md +++ b/tools/README.md @@ -37,12 +37,6 @@ profile-guided optimization of the generated BPF code. The generated BPF code can be analyzed using [libseccomp](https://github.com/seccomp/libseccomp)'s `tools/scmp_bpf_disasm`. -*** note -**Note:** This tool is currently only supported for native and Android builds. -In Chrome OS builds, the build-time generation of arch-specific `constants.json` -is not yet enabled. -*** - ### Sample usage ```shell diff --git a/tools/compile_seccomp_policy.py b/tools/compile_seccomp_policy.py index 5887e91..f3b9eea 100755 --- a/tools/compile_seccomp_policy.py +++ b/tools/compile_seccomp_policy.py @@ -25,10 +25,16 @@ from __future__ import print_function import argparse import sys -import arch -import bpf -import compiler -import parser +try: + import arch + import bpf + import compiler + import parser +except ImportError: + from minijail import arch + from minijail import bpf + from minijail import compiler + from minijail import parser def parse_args(argv): @@ -61,8 +67,12 @@ def parse_args(argv): return parser.parse_args(argv) -def main(argv): +def main(argv=None): """Main entrypoint.""" + + if argv is None: + argv = sys.argv[1:] + opts = parse_args(argv) parsed_arch = arch.Arch.load_from_json(opts.arch_json) policy_compiler = compiler.PolicyCompiler(parsed_arch) diff --git a/tools/compiler.py b/tools/compiler.py index 4e3881a..161eadf 100644 --- a/tools/compiler.py +++ b/tools/compiler.py @@ -20,8 +20,12 @@ from __future__ import print_function import enum -import bpf -import parser # pylint: disable=wrong-import-order +try: + import bpf + import parser # pylint: disable=wrong-import-order +except ImportError: + from minijail import bpf + from minijail import parser # pylint: disable=wrong-import-order class OptimizationStrategy(enum.Enum): diff --git a/tools/generate_constants_json.py b/tools/generate_constants_json.py index ae958ab..814c4ae 100755 --- a/tools/generate_constants_json.py +++ b/tools/generate_constants_json.py @@ -72,8 +72,12 @@ def parse_llvm_ir(ir): return ParseResults(table_name=table_name, table_entries=table_entries) -def main(argv): +def main(argv=None): """Main entrypoint.""" + + if argv is None: + argv = sys.argv[1:] + parser = argparse.ArgumentParser(description=__doc__) parser.add_argument('--output', help='The path of the generated constants.json file.', diff --git a/tools/generate_seccomp_policy.py b/tools/generate_seccomp_policy.py index fe122d5..2cfb611 100755 --- a/tools/generate_seccomp_policy.py +++ b/tools/generate_seccomp_policy.py @@ -117,8 +117,12 @@ def parse_trace_file(trace_filename, syscalls, arg_inspection): arg_inspection[syscall].value_set.add(arg_value) -def main(argv): +def main(argv=None): """Main entrypoint.""" + + if argv is None: + argv = sys.argv[1:] + opts = parse_args(argv) syscalls = collections.defaultdict(int) diff --git a/tools/parser.py b/tools/parser.py index d58dbd6..a2ba336 100644 --- a/tools/parser.py +++ b/tools/parser.py @@ -25,7 +25,11 @@ import itertools import os.path import re -import bpf +try: + import bpf +except ImportError: + from minijail import bpf + Token = collections.namedtuple( 'Token', ['type', 'value', 'filename', 'line', 'line_number', 'column']) |