diff options
Diffstat (limited to 'patch')
-rw-r--r-- | patch/EXPRESSIONS | 77 | ||||
-rw-r--r-- | patch/RULES | 351 | ||||
-rw-r--r-- | patch/TARGETS | 6 |
3 files changed, 0 insertions, 434 deletions
diff --git a/patch/EXPRESSIONS b/patch/EXPRESSIONS deleted file mode 100644 index 7f8ce19..0000000 --- a/patch/EXPRESSIONS +++ /dev/null @@ -1,77 +0,0 @@ -{ "default-PATCH": - { "vars": ["defaults-transition"] - , "imports": {"list_provider": ["./", "..", "field_list_provider"]} - , "expression": - { "type": "let*" - , "bindings": - [ ["fieldname", "patch-defaults"] - , ["provider", "PATCH"] - , ["transition", {"type": "var", "name": "defaults-transition"}] - ] - , "body": {"type": "CALL_EXPRESSION", "name": "list_provider"} - } - } -, "default-ENV": - { "vars": ["defaults-transition"] - , "imports": {"map_provider": ["./", "..", "field_map_provider"]} - , "expression": - { "type": "let*" - , "bindings": - [ ["fieldname", "patch-defaults"] - , ["provider", "ENV"] - , ["transition", {"type": "var", "name": "defaults-transition"}] - , ["default", {"type": "empty_map"}] - ] - , "body": {"type": "CALL_EXPRESSION", "name": "map_provider"} - } - } -, "default-PATH": - { "vars": ["defaults-transition"] - , "imports": {"list_provider": ["./", "..", "field_list_provider"]} - , "expression": - { "type": "let*" - , "bindings": - [ ["fieldname", "patch-defaults"] - , ["provider", "PATH"] - , ["transition", {"type": "var", "name": "defaults-transition"}] - ] - , "body": {"type": "CALL_EXPRESSION", "name": "list_provider"} - } - } -, "default-TOOLCHAIN": - { "vars": ["defaults-transition"] - , "imports": {"map_provider": ["./", "..", "field_map_provider"]} - , "expression": - { "type": "let*" - , "bindings": - [ ["fieldname", "patch-defaults"] - , ["provider", "TOOLCHAIN"] - , ["transition", {"type": "var", "name": "defaults-transition"}] - , ["default", {"type": "empty_map"}] - ] - , "body": {"type": "CALL_EXPRESSION", "name": "map_provider"} - } - } -, "default-NON_SYSTEM_TOOLS": - { "vars": ["defaults-transition"] - , "expression": - { "type": "map_union" - , "$1": - { "type": "foreach" - , "var": "x" - , "range": {"type": "FIELD", "name": "patch-defaults"} - , "body": - { "type": "DEP_PROVIDES" - , "dep": {"type": "var", "name": "x"} - , "provider": "NON_SYSTEM_TOOLS" - , "transition": - { "type": "var" - , "name": "defaults-transition" - , "default": {"type": "empty_map"} - } - , "default": {"type": "empty_map"} - } - } - } - } -} diff --git a/patch/RULES b/patch/RULES deleted file mode 100644 index ea495f0..0000000 --- a/patch/RULES +++ /dev/null @@ -1,351 +0,0 @@ -{ "defaults": - { "doc": - [ "A rule to provide defaults." - , "All targets take their defaults for PATCH from the target" - , "[\"patch\", \"defaults\"]. This is probably the only sensible" - , "use of this rule. As targets form a different root, the defaults" - , "can be provided without changing this directory." - ] - , "target_fields": ["base", "toolchain"] - , "string_fields": ["PATCH", "PATH", "SYSTEM_TOOLS"] - , "field_doc": - { "base": ["Other targets (using the same rule) to inherit values from."] - , "toolchain": - [ "Optional toolchain directory. A collection of artifacts that provide" - , "the tool PATCH. Note that only artifacts of" - , "the specified targets are considered (no runfiles etc.). Specifying" - , "this field extends artifacts from \"base\"." - ] - , "PATCH": ["The patch binary to use"] - , "SYSTEM_TOOLS": - [ "List of tools (\"PATCH\") that should be taken from" - , "the system instead of from \"toolchain\" (if specified)." - ] - , "PATH": - [ "Path for looking up the compilers. Individual paths are joined" - , "with \":\". Specifying this field extends values from \"base\"." - ] - } - , "config_vars": ["ARCH", "HOST_ARCH"] - , "imports": - { "base-provides": ["CC", "defaults-base-provides"] - , "base-provides-++": ["CC", "defaults-base-provides-++"] - , "base-provides-list": ["CC", "defaults-base-provides-list"] - , "artifacts_list": ["", "field_artifacts_list"] - , "for host": ["transitions", "for host"] - } - , "config_transitions": - {"toolchain": [{"type": "CALL_EXPRESSION", "name": "for host"}]} - , "expression": - { "type": "let*" - , "bindings": - [ ["PATCH", {"type": "FIELD", "name": "PATCH"}] - , ["PATH", {"type": "FIELD", "name": "PATH"}] - , ["provider", "PATCH"] - , [ "PATCH" - , { "type": "if" - , "cond": {"type": "var", "name": "PATCH"} - , "then": {"type": "var", "name": "PATCH"} - , "else": {"type": "CALL_EXPRESSION", "name": "base-provides"} - } - ] - , ["provider", "PATH"] - , [ "PATH" - , { "type": "nub_left" - , "$1": - { "type": "++" - , "$1": - [ {"type": "var", "name": "PATH"} - , {"type": "CALL_EXPRESSION", "name": "base-provides-++"} - ] - } - } - ] - , ["provider", "ENV"] - , ["default", {"type": "empty_map"}] - , ["ENV", {"type": "CALL_EXPRESSION", "name": "base-provides"}] - , ["provider", "NON_SYSTEM_TOOLS"] - , ["default", {"type": "empty_map"}] - , [ "NON_SYSTEM_TOOLS" - , { "type": "map_union" - , "$1": - { "type": "++" - , "$1": - [ [{"type": "CALL_EXPRESSION", "name": "base-provides"}] - , { "type": "if" - , "cond": {"type": "FIELD", "name": "PATCH"} - , "then": - [ { "type": "singleton_map" - , "key": "PATCH" - , "value": - { "type": "if" - , "cond": {"type": "FIELD", "name": "toolchain"} - , "then": true - , "else": false - } - } - ] - } - , { "type": "foreach" - , "range": {"type": "FIELD", "name": "SYSTEM_TOOLS"} - , "var": "tool" - , "body": - { "type": "singleton_map" - , "key": {"type": "var", "name": "tool"} - , "value": false - } - } - ] - } - } - ] - , ["provider", "TOOLCHAIN"] - , ["default", {"type": "empty_map"}] - , [ "TOOLCHAIN" - , { "type": "disjoint_map_union" - , "msg": "toolchain artifacts may not overlap" - , "$1": - { "type": "++" - , "$1": - [ {"type": "CALL_EXPRESSION", "name": "base-provides-list"} - , { "type": "if" - , "cond": {"type": "FIELD", "name": "toolchain"} - , "then": - { "type": "let*" - , "bindings": - [ ["fieldname", "toolchain"] - , [ "transition" - , {"type": "CALL_EXPRESSION", "name": "for host"} - ] - ] - , "body": - {"type": "CALL_EXPRESSION", "name": "artifacts_list"} - } - } - ] - } - } - ] - ] - , "body": - { "type": "RESULT" - , "provides": - { "type": "env" - , "vars": ["PATCH", "PATH", "ENV", "TOOLCHAIN", "NON_SYSTEM_TOOLS"] - } - } - } - } -, "file": - { "doc": ["Replace a file, logically in place, by a patched version"] - , "target_fields": ["src", "patch"] - , "config_vars": ["PATCH", "ENV"] - , "implicit": - {"patch-defaults": ["defaults"], "defaults": [["shell", "defaults"]]} - , "field_doc": - { "src": - [ "The single source file to patch, typically an explicit file reference." - ] - , "patch": ["The patch to apply."] - , "patch-defaults": ["The patch binary (and toolchain) to use"] - , "defaults": ["The shell toolchain to use"] - } - , "artifacts_doc": - ["The patched file, staged to the position the of the original file"] - , "runfiles_doc": ["Same as artifacts"] - , "imports": - { "stage_field": ["./", "..", "stage_singleton_field"] - , "stage_artifact": ["./", "..", "stage_artifact_to_singleton_field"] - , "default-PATCH": "default-PATCH" - , "default-TOOLCHAIN": "default-TOOLCHAIN" - , "default-ENV": "default-ENV" - , "default-PATH": "default-PATH" - , "default-NON_SYSTEM_TOOLS": "default-NON_SYSTEM_TOOLS" - , "sh-TOOLCHAIN": ["CC", "default-TOOLCHAIN"] - , "sh-PATH": ["CC", "default-PATH"] - , "sh": ["shell", "sh"] - , "list_provider": ["./", "..", "field_list_provider"] - } - , "expression": - { "type": "let*" - , "bindings": - [ ["TOOLCHAIN_DIR", "toolchain"] - , [ "TOOLCHAIN" - , { "type": "disjoint_map_union" - , "msg": "Staging conflict between patch and sh toolchain" - , "$1": - [ {"type": "CALL_EXPRESSION", "name": "default-TOOLCHAIN"} - , {"type": "CALL_EXPRESSION", "name": "sh-TOOLCHAIN"} - ] - } - ] - , [ "TOOLCHAIN" - , { "type": "to_subdir" - , "subdir": {"type": "var", "name": "TOOLCHAIN_DIR"} - , "$1": {"type": "var", "name": "TOOLCHAIN"} - } - ] - , [ "bin dirs" - , { "type": "let*" - , "bindings": [["fieldname", "defaults"], ["provider", "bin dirs"]] - , "body": {"type": "CALL_EXPRESSION", "name": "list_provider"} - } - ] - , [ "bin dirs" - , { "type": "foreach" - , "range": {"type": "var", "name": "bin dirs"} - , "body": - { "type": "join" - , "$1": - [ "./" - , {"type": "var", "name": "TOOLCHAIN_DIR"} - , "/" - , {"type": "var", "name": "_"} - ] - } - } - ] - , [ "NON_SYSTEM_TOOLS" - , {"type": "CALL_EXPRESSION", "name": "default-NON_SYSTEM_TOOLS"} - ] - , [ "PATCH" - , { "type": "var" - , "name": "PATCH" - , "default": - { "type": "join" - , "$1": - { "type": "++" - , "$1": - [ { "type": "if" - , "cond": - { "type": "lookup" - , "key": "PATCH" - , "map": {"type": "var", "name": "NON_SYSTEM_TOOLS"} - } - , "then": - ["./", {"type": "var", "name": "TOOLCHAIN_DIR"}, "/"] - } - , {"type": "CALL_EXPRESSION", "name": "default-PATCH"} - ] - } - } - } - ] - , [ "ENV" - , { "type": "map_union" - , "$1": - [ {"type": "CALL_EXPRESSION", "name": "default-ENV"} - , {"type": "var", "name": "ENV", "default": {"type": "empty_map"}} - ] - } - ] - , [ "ENV_PATH" - , { "type": "lookup" - , "map": {"type": "var", "name": "ENV"} - , "key": "PATH" - } - ] - , [ "ENV" - , { "type": "map_union" - , "$1": - [ {"type": "var", "name": "ENV"} - , { "type": "singleton_map" - , "key": "PATH" - , "value": - { "type": "join" - , "separator": ":" - , "$1": - { "type": "++" - , "$1": - [ {"type": "CALL_EXPRESSION", "name": "default-PATH"} - , {"type": "CALL_EXPRESSION", "name": "sh-PATH"} - , {"type": "var", "name": "bin dirs"} - , { "type": "if" - , "cond": {"type": "var", "name": "ENV_PATH"} - , "then": [{"type": "var", "name": "ENV_PATH"}] - } - ] - } - } - } - ] - } - ] - , ["sh", {"type": "CALL_EXPRESSION", "name": "sh"}] - , [ "orig" - , { "type": "let*" - , "bindings": [["fieldname", "src"], ["location", "orig"]] - , "body": {"type": "CALL_EXPRESSION", "name": "stage_field"} - } - ] - , [ "patch" - , { "type": "let*" - , "bindings": [["fieldname", "patch"], ["location", "patch"]] - , "body": {"type": "CALL_EXPRESSION", "name": "stage_field"} - } - ] - , [ "script" - , { "type": "singleton_map" - , "key": "run_patch.sh" - , "value": - { "type": "BLOB" - , "data": - { "type": "join" - , "separator": "\n" - , "$1": - [ "set -e" - , "cp orig patched" - , "chmod +w patched" - , { "type": "join" - , "$1": - [ { "type": "join_cmd" - , "$1": - [ {"type": "var", "name": "PATCH", "default": "patch"} - , "patched" - , "patch" - ] - } - , " >log || (cat log && exit 1)" - ] - } - ] - } - } - } - ] - , [ "inputs" - , { "type": "map_union" - , "$1": - [ {"type": "var", "name": "orig"} - , {"type": "var", "name": "patch"} - , {"type": "var", "name": "TOOLCHAIN"} - , {"type": "var", "name": "script"} - ] - } - ] - , [ "patched" - , { "type": "ACTION" - , "inputs": {"type": "var", "name": "inputs"} - , "outs": ["patched"] - , "cmd": [{"type": "var", "name": "sh"}, "./run_patch.sh"] - , "env": {"type": "var", "name": "ENV"} - } - ] - , [ "result" - , { "type": "let*" - , "bindings": - [ ["artifact", {"type": "var", "name": "patched"}] - , ["fieldname", "src"] - ] - , "body": {"type": "CALL_EXPRESSION", "name": "stage_artifact"} - } - ] - ] - , "body": - { "type": "RESULT" - , "artifacts": {"type": "var", "name": "result"} - , "runfiles": {"type": "var", "name": "result"} - } - } - } -} diff --git a/patch/TARGETS b/patch/TARGETS deleted file mode 100644 index 9a0ad77..0000000 --- a/patch/TARGETS +++ /dev/null @@ -1,6 +0,0 @@ -{ "defaults": - { "type": ["patch", "defaults"] - , "PATCH": ["patch"] - , "PATH": ["/bin", "/usr/bin"] - } -} |