diff options
author | Alyssa Ross <hi@alyssa.is> | 2019-12-18 23:09:31 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2019-12-19 00:22:11 +0000 |
commit | a8b8108ec74c3fbc395ce7c497e6cbd55fac7172 (patch) | |
tree | 0c6da330d5a8d5ba7c7b108370fb5d1a56225840 | |
parent | ee82445a6dc5e82e90eb44452fb87277f4a18dbe (diff) | |
download | nixpkgs-a8b8108ec74c3fbc395ce7c497e6cbd55fac7172.tar nixpkgs-a8b8108ec74c3fbc395ce7c497e6cbd55fac7172.tar.gz nixpkgs-a8b8108ec74c3fbc395ce7c497e6cbd55fac7172.tar.bz2 nixpkgs-a8b8108ec74c3fbc395ce7c497e6cbd55fac7172.tar.lz nixpkgs-a8b8108ec74c3fbc395ce7c497e6cbd55fac7172.tar.xz nixpkgs-a8b8108ec74c3fbc395ce7c497e6cbd55fac7172.tar.zst nixpkgs-a8b8108ec74c3fbc395ce7c497e6cbd55fac7172.zip |
chromiumOSPackages: 78.12499.0.0-rc1 -> 79.12607.0.0-rc4
18 files changed, 108 insertions, 1471 deletions
diff --git a/pkgs/os-specific/linux/chromium-os/common-mk/0001-common-mk-Adjust-policy-gen-script-cmdline-args.patch b/pkgs/os-specific/linux/chromium-os/common-mk/0001-common-mk-Adjust-policy-gen-script-cmdline-args.patch deleted file mode 100644 index 4829d6eba70..00000000000 --- a/pkgs/os-specific/linux/chromium-os/common-mk/0001-common-mk-Adjust-policy-gen-script-cmdline-args.patch +++ /dev/null @@ -1,109 +0,0 @@ -From fc07988a1837ea947af231d9371a7d7b96618f52 Mon Sep 17 00:00:00 2001 -From: Pavol Marko <pmarko@google.com> -Date: Wed, 4 Sep 2019 15:21:46 +0200 -Subject: [PATCH 01/11] common-mk: Adjust policy gen script cmdline args - -The cmdline args interface of the policy source generation script -'generate_policy_source.py' has changed on the Chromium side as of -CL:1687818. Change invocations accordingly. -While here, remove the targets 'cloud_policy_proto_generator' / -'user_policy-protos' of common-mk/external_dependencies.gyp as the -usages have been migrated to gn. - -BUG=chromium:981128 -TEST=build_packages - -Cq-Depend: chromium:1786282 -Change-Id: I308465451c6cee96319ea5ec104a799f1761d3ab -Reviewed-on: https://chromium-review.googlesource.com/1785600 -Tested-by: Pavol Marko <pmarko@chromium.org> -Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> -Legacy-Commit-Queue: Commit Bot <commit-bot@chromium.org> -Reviewed-by: Mike Frysinger <vapier@chromium.org> -Reviewed-by: Pavol Marko <pmarko@chromium.org> ---- - common-mk/external_dependencies.gyp | 42 ------------------------ - common-mk/external_dependencies/BUILD.gn | 7 ++-- - 2 files changed, 3 insertions(+), 46 deletions(-) - -diff --git a/common-mk/external_dependencies.gyp b/common-mk/external_dependencies.gyp -index 34eaa59ce..751f8566d 100644 ---- a/common-mk/external_dependencies.gyp -+++ b/common-mk/external_dependencies.gyp -@@ -49,33 +49,6 @@ - ], - 'includes': ['xml2cpp.gypi'], - }, -- { -- 'target_name': 'cloud_policy_proto_generator', -- 'type': 'none', -- 'hard_dependency': 1, -- 'variables': { -- 'policy_tools_dir': '<(sysroot)/usr/share/policy_tools', -- 'policy_resources_dir': '<(sysroot)/usr/share/policy_resources', -- 'proto_out_dir': '<(SHARED_INTERMEDIATE_DIR)/proto', -- }, -- 'actions': [{ -- 'action_name': 'run_generate_script', -- 'inputs': [ -- '<(policy_tools_dir)/generate_policy_source.py', -- '<(policy_resources_dir)/policy_templates.json', -- '<(policy_resources_dir)/VERSION', -- ], -- 'outputs': [ '<(proto_out_dir)/cloud_policy.proto' ], -- 'action': [ -- 'python', '<(policy_tools_dir)/generate_policy_source.py', -- '--cloud-policy-protobuf=<(proto_out_dir)/cloud_policy.proto', -- '<(policy_resources_dir)/VERSION', -- '<(OS)', -- '1', # chromeos-flag -- '<(policy_resources_dir)/policy_templates.json', -- ], -- }], -- }, - { - 'target_name': 'policy-protos', - 'type': 'static_library', -@@ -95,21 +68,6 @@ - ], - 'includes': ['protoc.gypi'], - }, -- { -- 'target_name': 'user_policy-protos', -- 'type': 'static_library', -- 'variables': { -- 'proto_in_dir': '<(SHARED_INTERMEDIATE_DIR)/proto', -- 'proto_out_dir': 'include/bindings', -- }, -- 'dependencies': [ -- 'cloud_policy_proto_generator', -- ], -- 'sources': [ -- '<(proto_in_dir)/cloud_policy.proto', -- ], -- 'includes': ['protoc.gypi'], -- }, - { - 'target_name': 'install_attributes-proto', - 'type': 'static_library', -diff --git a/common-mk/external_dependencies/BUILD.gn b/common-mk/external_dependencies/BUILD.gn -index 61774bf8f..4ec1665e3 100644 ---- a/common-mk/external_dependencies/BUILD.gn -+++ b/common-mk/external_dependencies/BUILD.gn -@@ -59,10 +59,9 @@ action("cloud_policy_proto_generator") { - ] - args = [ - "--cloud-policy-protobuf=${proto_out_dir}/cloud_policy.proto", -- "${policy_resources_dir}/VERSION", -- "${OS}", -- "1", # chromeos-flag -- "${policy_resources_dir}/policy_templates.json", -+ "--chrome-version-file=${policy_resources_dir}/VERSION", -+ "--target-platform=chromeos", -+ "--policy-templates-file=${policy_resources_dir}/policy_templates.json", - ] - } - --- -2.23.0 - diff --git a/pkgs/os-specific/linux/chromium-os/common-mk/0003-common-mk-don-t-leak-source-absolute-paths.patch b/pkgs/os-specific/linux/chromium-os/common-mk/0001-common-mk-don-t-leak-source-absolute-paths.patch index 764b997d303..c4e314d7988 100644 --- a/pkgs/os-specific/linux/chromium-os/common-mk/0003-common-mk-don-t-leak-source-absolute-paths.patch +++ b/pkgs/os-specific/linux/chromium-os/common-mk/0001-common-mk-don-t-leak-source-absolute-paths.patch @@ -1,7 +1,7 @@ -From b5ac444592d4bd837934d8a657d9ae8b600d7f95 Mon Sep 17 00:00:00 2001 +From 05622922a69bda21677a7f59b19214e3a00855c4 Mon Sep 17 00:00:00 2001 From: Alyssa Ross <hi@alyssa.is> Date: Sun, 24 Nov 2019 16:56:11 +0000 -Subject: [PATCH 03/11] common-mk: don't leak source-absolute paths +Subject: [PATCH 1/9] common-mk: don't leak source-absolute paths Source-absolute paths like //vm_tools/whatever were being leaked to subprocesses, which of course didn't know how to understand them. diff --git a/pkgs/os-specific/linux/chromium-os/common-mk/0004-common-mk-.gn-don-t-hardcode-env-path.patch b/pkgs/os-specific/linux/chromium-os/common-mk/0002-common-mk-.gn-don-t-hardcode-env-path.patch index 2ab893d04fa..d82b3d7dff8 100644 --- a/pkgs/os-specific/linux/chromium-os/common-mk/0004-common-mk-.gn-don-t-hardcode-env-path.patch +++ b/pkgs/os-specific/linux/chromium-os/common-mk/0002-common-mk-.gn-don-t-hardcode-env-path.patch @@ -1,7 +1,7 @@ -From 11dbc10898cef09008e4ab9d34d855a5e8c12e71 Mon Sep 17 00:00:00 2001 +From d3ea2a8f9f64e2aff9667f03a93540e2e72c0f30 Mon Sep 17 00:00:00 2001 From: Alyssa Ross <hi@alyssa.is> Date: Sun, 24 Nov 2019 17:20:46 +0000 -Subject: [PATCH 04/11] common-mk: .gn: don't hardcode env path +Subject: [PATCH 2/9] common-mk: .gn: don't hardcode env path This is needlessly non-portable. --- diff --git a/pkgs/os-specific/linux/chromium-os/common-mk/0002-common-mk-Add-proto-library-and-its-dependencies-for.patch b/pkgs/os-specific/linux/chromium-os/common-mk/0002-common-mk-Add-proto-library-and-its-dependencies-for.patch deleted file mode 100644 index a8430e1e326..00000000000 --- a/pkgs/os-specific/linux/chromium-os/common-mk/0002-common-mk-Add-proto-library-and-its-dependencies-for.patch +++ /dev/null @@ -1,81 +0,0 @@ -From e0ed9db1d24ad7df27146f37895563f8ebc4d613 Mon Sep 17 00:00:00 2001 -From: Amr Aboelkher <amraboelkher@google.com> -Date: Wed, 2 Oct 2019 18:08:08 +0200 -Subject: [PATCH 02/11] common-mk: Add proto library and its dependencies for - policy common definitions - -BUG=chromium:1009436,chromium:1006077,chromium:552439 -TEST=precq passes - -Cq-Depend: chromium:1833618 -Change-Id: I12e2f15afba615cd4395eb5818f6ff370d187c73 -Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform2/+/1835953 -Tested-by: Amr Aboelkher <amraboelkher@google.com> -Legacy-Commit-Queue: Commit Bot <commit-bot@chromium.org> -Reviewed-by: Mike Frysinger <vapier@chromium.org> ---- - common-mk/external_dependencies/BUILD.gn | 21 +++++++++++++++++++++ - 1 file changed, 21 insertions(+) - -diff --git a/common-mk/external_dependencies/BUILD.gn b/common-mk/external_dependencies/BUILD.gn -index 4ec1665e3..61f571b38 100644 ---- a/common-mk/external_dependencies/BUILD.gn -+++ b/common-mk/external_dependencies/BUILD.gn -@@ -65,14 +65,30 @@ action("cloud_policy_proto_generator") { - ] - } - -+proto_library("policy_common_definitions-protos") { -+ proto_in_dir = "${sysroot}/usr/share/protofiles" -+ proto_out_dir = "include/bindings" -+ sources = [ -+ "${proto_in_dir}/policy_common_definitions.proto", -+ ] -+ -+ # policy-protos.a is used by a shared_libary object: https://crbug.com/715795 -+ # Build it with '-fPIC' instead of '-fPIE'. -+ configs = [ "//common-mk:pic" ] -+} -+ - proto_library("policy-protos") { - proto_in_dir = "${sysroot}/usr/share/protofiles" - proto_out_dir = "include/bindings" -+ proto_lib_dirs = [ "${sysroot}/usr/share/protofiles" ] - sources = [ - "${proto_in_dir}/chrome_device_policy.proto", - "${proto_in_dir}/chrome_extension_policy.proto", - "${proto_in_dir}/device_management_backend.proto", - ] -+ public_deps = [ -+ ":policy_common_definitions-protos", -+ ] - - # policy-protos.a is used by a shared_libary object: https://crbug.com/715795 - # Build it with '-fPIC' instead of '-fPIE'. -@@ -88,18 +104,23 @@ goproto_library("policy-goprotos") { - "${proto_in_dir}/chrome_device_policy.proto", - "${proto_in_dir}/chrome_extension_policy.proto", - "${proto_in_dir}/device_management_backend.proto", -+ "${proto_in_dir}/policy_common_definitions.proto", - ] - } - - proto_library("user_policy-protos") { - proto_in_dir = "${target_gen_dir}/proto" - proto_out_dir = "include/bindings" -+ proto_lib_dirs = [ "${sysroot}/usr/share/protofiles" ] - sources = [ - "${proto_in_dir}/cloud_policy.proto", - ] - deps = [ - ":cloud_policy_proto_generator", - ] -+ public_deps = [ -+ ":policy_common_definitions-protos", -+ ] - } - - proto_library("install_attributes-proto") { --- -2.23.0 - diff --git a/pkgs/os-specific/linux/chromium-os/common-mk/default.nix b/pkgs/os-specific/linux/chromium-os/common-mk/default.nix index 1ebfbfaac70..aad997b882c 100644 --- a/pkgs/os-specific/linux/chromium-os/common-mk/default.nix +++ b/pkgs/os-specific/linux/chromium-os/common-mk/default.nix @@ -57,10 +57,8 @@ stdenv.mkDerivation ({ echo applying patch ${patch} patch -p1 < ${patch} '') ([ - ./0001-common-mk-Adjust-policy-gen-script-cmdline-args.patch - ./0002-common-mk-Add-proto-library-and-its-dependencies-for.patch - ./0003-common-mk-don-t-leak-source-absolute-paths.patch - ./0004-common-mk-.gn-don-t-hardcode-env-path.patch + ./0001-common-mk-don-t-leak-source-absolute-paths.patch + ./0002-common-mk-.gn-don-t-hardcode-env-path.patch ] ++ platform2Patches)} patchShebangs common-mk diff --git a/pkgs/os-specific/linux/chromium-os/libbrillo/0005-libbrillo-Use-a-unique_ptr-for-EVP_MD_CTX.patch b/pkgs/os-specific/linux/chromium-os/libbrillo/0003-libbrillo-Use-a-unique_ptr-for-EVP_MD_CTX.patch index eebe6015546..ceb9b8746d2 100644 --- a/pkgs/os-specific/linux/chromium-os/libbrillo/0005-libbrillo-Use-a-unique_ptr-for-EVP_MD_CTX.patch +++ b/pkgs/os-specific/linux/chromium-os/libbrillo/0003-libbrillo-Use-a-unique_ptr-for-EVP_MD_CTX.patch @@ -1,7 +1,7 @@ -From ed2920bc6864e044ffa5beb8a2508f4e5f5b4ce4 Mon Sep 17 00:00:00 2001 +From d79343f36918fd99861426f658fdfb53237661f0 Mon Sep 17 00:00:00 2001 From: Daniel Kurtz <djkurtz@chromium.org> Date: Thu, 17 Oct 2019 20:45:53 +1100 -Subject: [PATCH 05/11] libbrillo: Use a unique_ptr for EVP_MD_CTX +Subject: [PATCH 3/9] libbrillo: Use a unique_ptr for EVP_MD_CTX In OpenSSL 1.1, the EVP_MD_CTX struct will become opaque, and therefore it will not be possible to allocate on the stack. @@ -33,7 +33,7 @@ Reviewed-by: Nick Crews <ncrews@chromium.org> 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/libbrillo/policy/device_policy_impl.cc b/libbrillo/policy/device_policy_impl.cc -index 6ba297406..e3c12f9d6 100644 +index 958b7ebb7..eaf90c96a 100644 --- a/libbrillo/policy/device_policy_impl.cc +++ b/libbrillo/policy/device_policy_impl.cc @@ -55,36 +55,34 @@ bool ReadPublicKeyFromFile(const base::FilePath& key_file, diff --git a/pkgs/os-specific/linux/chromium-os/libbrillo/0006-libbrillo-Update-for-OpenSSL-1.1.patch b/pkgs/os-specific/linux/chromium-os/libbrillo/0004-libbrillo-Update-for-OpenSSL-1.1.patch index bc49b8fa4fd..6bdb61c4997 100644 --- a/pkgs/os-specific/linux/chromium-os/libbrillo/0006-libbrillo-Update-for-OpenSSL-1.1.patch +++ b/pkgs/os-specific/linux/chromium-os/libbrillo/0004-libbrillo-Update-for-OpenSSL-1.1.patch @@ -1,7 +1,7 @@ -From 1c81e92e7a983c2f9fff7bd56ce769f2edb59a59 Mon Sep 17 00:00:00 2001 +From ad7338d648cfeffbd595e9a7681f746ce834d59e Mon Sep 17 00:00:00 2001 From: Daniel Kurtz <djkurtz@chromium.org> Date: Mon, 3 Jun 2019 16:46:17 -0600 -Subject: [PATCH 06/11] libbrillo: Update for OpenSSL 1.1 +Subject: [PATCH 4/9] libbrillo: Update for OpenSSL 1.1 OpenSSL 1.1 has made significant non-backwards compatible changes to its API as outlined in: @@ -186,7 +186,7 @@ index 603bd1d54..cc63258db 100644 return ReportError(error, FROM_HERE, "Cannot create SSL_CTX"); diff --git a/libbrillo/policy/device_policy_impl.cc b/libbrillo/policy/device_policy_impl.cc -index e3c12f9d6..0c112a1b9 100644 +index eaf90c96a..3f96d12ee 100644 --- a/libbrillo/policy/device_policy_impl.cc +++ b/libbrillo/policy/device_policy_impl.cc @@ -30,6 +30,12 @@ namespace em = enterprise_management; diff --git a/pkgs/os-specific/linux/chromium-os/libbrillo/0007-libbrillo-fix-build-with-relative-platform2_root.patch b/pkgs/os-specific/linux/chromium-os/libbrillo/0005-libbrillo-fix-build-with-relative-platform2_root.patch index d3a4976286d..64f09279bae 100644 --- a/pkgs/os-specific/linux/chromium-os/libbrillo/0007-libbrillo-fix-build-with-relative-platform2_root.patch +++ b/pkgs/os-specific/linux/chromium-os/libbrillo/0005-libbrillo-fix-build-with-relative-platform2_root.patch @@ -1,17 +1,17 @@ -From 16960cbb59804aebc4b7dd5f746d2452c8a1edd0 Mon Sep 17 00:00:00 2001 +From ee36a284641d9ac2b412bba3738729fd5b969f42 Mon Sep 17 00:00:00 2001 From: Alyssa Ross <hi@alyssa.is> Date: Sun, 1 Dec 2019 22:11:39 +0000 -Subject: [PATCH 07/11] libbrillo: fix build with relative platform2_root +Subject: [PATCH 5/9] libbrillo: fix build with relative platform2_root --- libbrillo/BUILD.gn | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libbrillo/BUILD.gn b/libbrillo/BUILD.gn -index e475692ab..c3ca0054b 100644 +index 6739def9c..75b6da6f2 100644 --- a/libbrillo/BUILD.gn +++ b/libbrillo/BUILD.gn -@@ -355,7 +355,8 @@ shared_library("libpolicy-${libbase_ver}") { +@@ -360,7 +360,8 @@ shared_library("libpolicy-${libbase_ver}") { "openssl", "protobuf-lite", ] diff --git a/pkgs/os-specific/linux/chromium-os/libbrillo/0008-libbrillo-don-t-leak-source-absolute-paths.patch b/pkgs/os-specific/linux/chromium-os/libbrillo/0006-libbrillo-don-t-leak-source-absolute-paths.patch index 523a2359bdd..59c31ec4af9 100644 --- a/pkgs/os-specific/linux/chromium-os/libbrillo/0008-libbrillo-don-t-leak-source-absolute-paths.patch +++ b/pkgs/os-specific/linux/chromium-os/libbrillo/0006-libbrillo-don-t-leak-source-absolute-paths.patch @@ -1,17 +1,17 @@ -From 308678664652685d48dccc4ea6d55195a307e36d Mon Sep 17 00:00:00 2001 +From 5c95aae10ef7968ab2d9cbdf1456798dc8f94890 Mon Sep 17 00:00:00 2001 From: Alyssa Ross <hi@alyssa.is> Date: Sun, 1 Dec 2019 14:55:21 +0000 -Subject: [PATCH 08/11] libbrillo: don't leak source-absolute paths +Subject: [PATCH 6/9] libbrillo: don't leak source-absolute paths --- libbrillo/BUILD.gn | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/libbrillo/BUILD.gn b/libbrillo/BUILD.gn -index c3ca0054b..4ae5aced0 100644 +index 75b6da6f2..a3a25865b 100644 --- a/libbrillo/BUILD.gn +++ b/libbrillo/BUILD.gn -@@ -260,10 +260,9 @@ action("libbrillo-${libbase_ver}") { +@@ -265,10 +265,9 @@ action("libbrillo-${libbase_ver}") { deps += [ ":lib" + sublib.library_name ] } script = "//common-mk/write_args.py" diff --git a/pkgs/os-specific/linux/chromium-os/libbrillo/0009-libbrillo-fix-build-with-no-__has_feature.patch b/pkgs/os-specific/linux/chromium-os/libbrillo/0007-libbrillo-fix-build-with-no-__has_feature.patch index f56439145b4..1ac8e0bb4d7 100644 --- a/pkgs/os-specific/linux/chromium-os/libbrillo/0009-libbrillo-fix-build-with-no-__has_feature.patch +++ b/pkgs/os-specific/linux/chromium-os/libbrillo/0007-libbrillo-fix-build-with-no-__has_feature.patch @@ -1,7 +1,7 @@ -From dce65ab2cb0bac44cf5a133aface2acf9f0b2367 Mon Sep 17 00:00:00 2001 +From 268494087143b570af36bf7c4fe891108ea839db Mon Sep 17 00:00:00 2001 From: Alyssa Ross <hi@alyssa.is> Date: Sun, 1 Dec 2019 14:57:01 +0000 -Subject: [PATCH 09/11] libbrillo: fix build with no __has_feature +Subject: [PATCH 7/9] libbrillo: fix build with no __has_feature --- libbrillo/brillo/asan.h | 8 ++++++-- diff --git a/pkgs/os-specific/linux/chromium-os/libbrillo/default.nix b/pkgs/os-specific/linux/chromium-os/libbrillo/default.nix index c5bb961d0cd..511597eea93 100644 --- a/pkgs/os-specific/linux/chromium-os/libbrillo/default.nix +++ b/pkgs/os-specific/linux/chromium-os/libbrillo/default.nix @@ -7,11 +7,11 @@ common-mk { platformSubdir = "libbrillo"; platform2Patches = [ - ./0005-libbrillo-Use-a-unique_ptr-for-EVP_MD_CTX.patch - ./0006-libbrillo-Update-for-OpenSSL-1.1.patch - ./0007-libbrillo-fix-build-with-relative-platform2_root.patch - ./0008-libbrillo-don-t-leak-source-absolute-paths.patch - ./0009-libbrillo-fix-build-with-no-__has_feature.patch + ./0003-libbrillo-Use-a-unique_ptr-for-EVP_MD_CTX.patch + ./0004-libbrillo-Update-for-OpenSSL-1.1.patch + ./0005-libbrillo-fix-build-with-relative-platform2_root.patch + ./0006-libbrillo-don-t-leak-source-absolute-paths.patch + ./0007-libbrillo-fix-build-with-no-__has_feature.patch ]; nativeBuildInputs = [ dbus_cplusplus go-protobuf ]; diff --git a/pkgs/os-specific/linux/chromium-os/modp_b64/0001-modp_b64-Fix-GN-build-and-add-fuzzers.patch b/pkgs/os-specific/linux/chromium-os/modp_b64/0001-modp_b64-Fix-GN-build-and-add-fuzzers.patch deleted file mode 100644 index b5321c9a48c..00000000000 --- a/pkgs/os-specific/linux/chromium-os/modp_b64/0001-modp_b64-Fix-GN-build-and-add-fuzzers.patch +++ /dev/null @@ -1,1127 +0,0 @@ -From 832ee65ffff7353e88bf622e2d14e22e991ce698 Mon Sep 17 00:00:00 2001 -From: Manoj Gupta <manojgupta@google.com> -Date: Wed, 9 Oct 2019 12:40:18 -0700 -Subject: [PATCH 1/2] modp_b64: Fix GN build and add fuzzers. - -modp_b64 is currently build with Makefile. -Fix the BUILD.gn so that it can be used and remove -Makefile usage. -Also add two fuzzers for encode and decode routines. - -BUG=chromium:1012803 -TEST=GN build work with modified ebuild. - -Cq-Depend: chromium:1850664 -Change-Id: I1756237d91630ea7e18e7c3ed055d2b3b532de0d ---- - BUILD.gn | 53 +- - Makefile | 20 - - OWNERS.fuzzer | 1 + - common.mk | 941 ------------------------------ - fuzzers/modp_b64_decode_fuzzer.cc | 17 + - fuzzers/modp_b64_encode_fuzzer.cc | 17 + - 6 files changed, 84 insertions(+), 965 deletions(-) - delete mode 100644 Makefile - create mode 100644 OWNERS.fuzzer - delete mode 100644 common.mk - create mode 100644 fuzzers/modp_b64_decode_fuzzer.cc - create mode 100644 fuzzers/modp_b64_encode_fuzzer.cc - -diff --git a/BUILD.gn b/BUILD.gn -index cd322ac..b2fe97d 100644 ---- a/BUILD.gn -+++ b/BUILD.gn -@@ -1,15 +1,60 @@ --# Copyright (c) 2013 The Chromium Authors. All rights reserved. -+# Copyright 2013 The Chromium Authors. All rights reserved. - # Use of this source code is governed by a BSD-style license that can be - # found in the LICENSE file. - --source_set("modp_b64") { -+group("all") { -+ deps = [ -+ ":modp_b64", -+ ] -+ -+ if (use.fuzzer) { -+ deps += [ -+ ":modp_b64_decode_fuzzer", -+ ":modp_b64_encode_fuzzer", -+ ] -+ } -+} -+ -+static_library("modp_b64") { - sources = [ - "modp_b64.cc", - "modp_b64.h", - "modp_b64_data.h", - ] -- - include_dirs = [ -- "./modp_b64", -+ "modp_b64", - ] - } -+ -+# Fuzzers. -+if (use.fuzzer) { -+ executable("modp_b64_decode_fuzzer") { -+ configs += [ -+ "//common-mk/common_fuzzer", -+ ] -+ deps = [ -+ ":modp_b64", -+ ] -+ sources = [ -+ "fuzzers/modp_b64_decode_fuzzer.cc", -+ ] -+ include_dirs = [ -+ "modp_b64", -+ ] -+ } -+ -+ executable("modp_b64_encode_fuzzer") { -+ configs += [ -+ "//common-mk/common_fuzzer", -+ ] -+ deps = [ -+ ":modp_b64", -+ ] -+ sources = [ -+ "fuzzers/modp_b64_encode_fuzzer.cc", -+ ] -+ include_dirs = [ -+ "modp_b64", -+ ] -+ } -+} -diff --git a/Makefile b/Makefile -deleted file mode 100644 -index c33ff75..0000000 ---- a/Makefile -+++ /dev/null -@@ -1,20 +0,0 @@ --# Copyright (C) 2015 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. -- --include common.mk -- --CXXFLAGS += -I$(SRC)/modp_b64/ --CXX_STATIC_LIBRARY(libmodpb64.pie.a): $(CXX_OBJECTS) -- --all: CXX_STATIC_LIBRARY(libmodpb64.pie.a) -diff --git a/OWNERS.fuzzer b/OWNERS.fuzzer -new file mode 100644 -index 0000000..62800d6 ---- /dev/null -+++ b/OWNERS.fuzzer -@@ -0,0 +1 @@ -+manojgupta@chromium.org -diff --git a/common.mk b/common.mk -deleted file mode 100644 -index 51ead56..0000000 ---- a/common.mk -+++ /dev/null -@@ -1,941 +0,0 @@ --# copyright (c) 2012 the chromium os authors. all rights reserved. --# use of this source code is governed by a bsd-style license that can be --# found in the license file. --# --# If this file is part of another source distribution, it's license may be --# stored in LICENSE.makefile or LICENSE.common.mk. --# --# NOTE NOTE NOTE --# The authoritative common.mk is located in: --# https://chromium.googlesource.com/chromiumos/platform2/+/master/common-mk --# Please make all changes there, then copy into place in other repos. --# NOTE NOTE NOTE --# --# This file provides a common architecture for building C/C++ source trees. --# It uses recursive makefile inclusion to create a single make process which --# can be built in the source tree or with the build artifacts placed elsewhere. --# --# It is fully parallelizable for all targets, including static archives. --# --# To use: --# 1. Place common.mk in your top source level --# 2. In your top-level Makefile, place "include common.mk" at the top --# 3. In all subdirectories, create a 'module.mk' file that starts with: --# include common.mk --# And then contains the remainder of your targets. --# 4. All build targets should look like: --# relative/path/target: relative/path/obj.o --# --# See existing makefiles for rule examples. --# --# Exported macros: --# - cc_binary, cxx_binary provide standard compilation steps for binaries --# - cxx_library, cc_library provide standard compilation steps for --# shared objects. --# All of the above optionally take an argument for extra flags. --# - update_archive creates/updates a given .a target --# --# Instead of using the build macros, most users can just use wrapped targets: --# - CXX_BINARY, CC_BINARY, CC_STATIC_BINARY, CXX_STATIC_BINARY --# - CXX_LIBRARY, CC_LIBRARY, CC_STATIC_LIBRARY, CXX_STATIC_LIBRARY --# - E.g., CXX_BINARY(mahbinary): foo.o --# - object.depends targets may be used when a prerequisite is required for an --# object file. Because object files result in multiple build artifacts to --# handle PIC and PIE weirdness. E.g. --# foo.o.depends: generated/dbus.h --# - TEST(binary) or TEST(CXX_BINARY(binary)) may be used as a prerequisite --# for the tests target to trigger an automated test run. --# - CLEAN(file_or_dir) dependency can be added to 'clean'. --# --# If source code is being generated, rules will need to be registered for --# compiling the objects. This can be done by adding one of the following --# to the Makefile: --# - For C source files --# $(eval $(call add_object_rules,sub/dir/gen_a.o sub/dir/b.o,CC,c,CFLAGS)) --# - For C++ source files --# $(eval $(call add_object_rules,sub/dir/gen_a.o sub/dir/b.o,CXX,cc,CXXFLAGS)) --# --# Exported targets meant to have prerequisites added to: --# - all - Your desired targets should be given --# - tests - Any TEST(test_binary) targets should be given --# - FORCE - force the given target to run regardless of changes --# In most cases, using .PHONY is preferred. --# --# Possible command line variables: --# - COLOR=[0|1] to set ANSI color output (default: 1) --# - VERBOSE=[0|1] to hide/show commands (default: 0) --# - MODE=[opt|dbg|profiling] (default: opt) --# opt - Enable optimizations for release builds --# dbg - Turn down optimization for debugging --# profiling - Turn off optimization and turn on profiling/coverage --# support. --# - ARCH=[x86|arm|supported qemu name] (default: from portage or uname -m) --# - SPLITDEBUG=[0|1] splits debug info in target.debug (default: 0) --# If NOSTRIP=1, SPLITDEBUG will never strip the final emitted objects. --# - NOSTRIP=[0|1] determines if binaries are stripped. (default: 1) --# NOSTRIP=0 and MODE=opt will also drop -g from the CFLAGS. --# - VALGRIND=[0|1] runs tests under valgrind (default: 0) --# - OUT=/path/to/builddir puts all output in given path (default: $PWD) --# - VALGRIND_ARGS="" supplies extra memcheck arguments --# --# Per-target(-ish) variable: --# - NEEDS_ROOT=[0|1] allows a TEST() target to run with root. --# Default is 0 unless it is running under QEmu. --# - NEEDS_MOUNTS=[0|1] allows a TEST() target running on QEmu to get --# setup mounts in the $(SYSROOT) --# --# Caveats: --# - Directories or files with spaces in them DO NOT get along with GNU Make. --# If you need them, all uses of dir/notdir/etc will need to have magic --# wrappers. Proceed at risk to your own sanity. --# - External CXXFLAGS and CFLAGS should be passed via the environment since --# this file does not use 'override' to control them. --# - Our version of GNU Make doesn't seem to support the 'private' variable --# annotation, so you can't tag a variable private on a wrapping target. -- --# Behavior configuration variables --SPLITDEBUG ?= 0 --NOSTRIP ?= 1 --VALGRIND ?= 0 --COLOR ?= 1 --VERBOSE ?= 0 --MODE ?= opt --CXXEXCEPTIONS ?= 0 --ARCH ?= $(shell uname -m) -- --# Put objects in a separate tree based on makefile locations --# This means you can build a tree without touching it: --# make -C $SRCDIR # will create ./build-$(MODE) --# Or --# make -C $SRCDIR OUT=$PWD --# This variable is extended on subdir calls and doesn't need to be re-called. --OUT ?= $(PWD)/ -- --# Make OUT now so we can use realpath. --$(shell mkdir -p "$(OUT)") -- --# TODO(wad) Relative paths are resolved against SRC and not the calling dir. --# Ensure a command-line supplied OUT has a slash --override OUT := $(realpath $(OUT))/ -- --# SRC is not meant to be set by the end user, but during make call relocation. --# $(PWD) != $(CURDIR) all the time. --export SRC ?= $(CURDIR) -- --# If BASE_VER is not set, read the libchrome revision number from --# common-mk/BASE_VER file. --ifeq ($(strip $(BASE_VER)),) --BASE_VER := $(shell cat $(SRC)/../common-mk/BASE_VER) --endif --$(info Using BASE_VER=$(BASE_VER)) -- --# Re-start in the $(OUT) directory if we're not there. --# We may be invoked using -C or bare and we need to ensure behavior --# is consistent so we check both PWD vs OUT and PWD vs CURDIR. --override RELOCATE_BUILD := 0 --ifneq (${PWD}/,${OUT}) --override RELOCATE_BUILD := 1 --endif --# Make sure we're running with no builtin targets. They cause --# leakage and mayhem! --ifneq (${PWD},${CURDIR}) --override RELOCATE_BUILD := 1 --# If we're run from the build dir, don't let it get cleaned up later. --ifeq (${PWD}/,${OUT}) --$(shell touch "$(PWD)/.dont_delete_on_clean") --endif --endif # ifneq (${PWD},${CURDIR} -- --# "Relocate" if we need to restart without implicit rules. --ifeq ($(subst r,,$(MAKEFLAGS)),$(MAKEFLAGS)) --override RELOCATE_BUILD := 1 --endif -- --ifeq (${RELOCATE_BUILD},1) --# By default, silence build output. Reused below as well. --QUIET = @ --ifeq ($(VERBOSE),1) -- QUIET= --endif -- --# This target will override all targets, including prerequisites. To avoid --# calling $(MAKE) once per prereq on the given CMDGOAL, we guard it with a local --# variable. --RUN_ONCE := 0 --MAKECMDGOALS ?= all --# Keep the rules split as newer make does not allow them to be declared --# on the same line. But the way :: rules work, the _all here will also --# invoke the %:: rule while retaining "_all" as the default. --_all:: --%:: -- $(if $(filter 0,$(RUN_ONCE)), \ -- cd "$(OUT)" && \ -- $(MAKE) -r -I "$(SRC)" -f "$(CURDIR)/Makefile" \ -- SRC="$(CURDIR)" OUT="$(OUT)" $(foreach g,$(MAKECMDGOALS),"$(g)"),) -- $(eval RUN_ONCE := 1) --pass-to-subcall := 1 --endif -- --ifeq ($(pass-to-subcall),) -- --# Only call MODULE if we're in a submodule --MODULES_LIST := $(filter-out Makefile %.d,$(MAKEFILE_LIST)) --ifeq ($(words $(filter-out Makefile common.mk %.d $(SRC)/Makefile \ -- $(SRC)/common.mk,$(MAKEFILE_LIST))),0) -- --# All the top-level defines outside of module.mk. -- --# --# Helper macros --# -- --# Create the directory if it doesn't yet exist. --define auto_mkdir -- $(if $(wildcard $(dir $1)),$2,$(QUIET)mkdir -p "$(dir $1)") --endef -- --# Creates the actual archive with an index. --# The target $@ must end with .pic.a or .pie.a. --define update_archive -- $(call auto_mkdir,$(TARGET_OR_MEMBER)) -- $(QUIET)# Create the archive in one step to avoid parallel use accessing it -- $(QUIET)# before all the symbols are present. -- @$(ECHO) "AR $(subst \ --$(SRC)/,,$(^:.o=$(suffix $(basename $(TARGET_OR_MEMBER))).o)) \ ---> $(subst $(SRC)/,,$(TARGET_OR_MEMBER))" -- $(QUIET)$(AR) rcs $(TARGET_OR_MEMBER) \ -- $(subst $(SRC)/,,$(^:.o=$(suffix $(basename $(TARGET_OR_MEMBER))).o)) --endef -- --# Default compile from objects using pre-requisites but filters out --# subdirs and .d files. --define cc_binary -- $(call COMPILE_BINARY_implementation,CC,$(CFLAGS) $(1),$(EXTRA_FLAGS)) --endef -- --define cxx_binary -- $(call COMPILE_BINARY_implementation,CXX,$(CXXFLAGS) $(1),$(EXTRA_FLAGS)) --endef -- --# Default compile from objects using pre-requisites but filters out --# subdirs and .d files. --define cc_library -- $(call COMPILE_LIBRARY_implementation,CC,$(CFLAGS) $(1),$(EXTRA_FLAGS)) --endef --define cxx_library -- $(call COMPILE_LIBRARY_implementation,CXX,$(CXXFLAGS) $(1),$(EXTRA_FLAGS)) --endef -- --# Deletes files silently if they exist. Meant for use in any local --# clean targets. --define silent_rm -- $(if $(wildcard $(1)), -- $(QUIET)($(ECHO) -n '$(COLOR_RED)CLEANFILE$(COLOR_RESET) ' && \ -- $(ECHO) '$(subst $(OUT)/,,$(wildcard $(1)))' && \ -- $(RM) $(1) 2>/dev/null) || true,) --endef --define silent_rmdir -- $(if $(wildcard $(1)), -- $(if $(wildcard $(1)/*), -- $(QUIET)# $(1) not empty [$(wildcard $(1)/*)]. Not deleting., -- $(QUIET)($(ECHO) -n '$(COLOR_RED)CLEANDIR$(COLOR_RESET) ' && \ -- $(ECHO) '$(subst $(OUT)/,,$(wildcard $(1)))' && \ -- $(RMDIR) $(1) 2>/dev/null) || true),) --endef -- --# --# Default variable values --# -- --# Only override toolchain vars if they are from make. --CROSS_COMPILE ?= --define override_var --ifneq ($(filter undefined default,$(origin $1)),) --$1 = $(CROSS_COMPILE)$2 --endif --endef --$(eval $(call override_var,AR,ar)) --$(eval $(call override_var,CC,gcc)) --$(eval $(call override_var,CXX,g++)) --$(eval $(call override_var,OBJCOPY,objcopy)) --$(eval $(call override_var,PKG_CONFIG,pkg-config)) --$(eval $(call override_var,RANLIB,ranlib)) --$(eval $(call override_var,STRIP,strip)) -- --RMDIR ?= rmdir --ECHO = /bin/echo -e -- --ifeq ($(lastword $(subst /, ,$(CC))),clang) --CDRIVER = clang --else --CDRIVER = gcc --endif -- --ifeq ($(lastword $(subst /, ,$(CXX))),clang++) --CXXDRIVER = clang --else --CXXDRIVER = gcc --endif -- --# Internal macro to support check_XXX macros below. --# Usage: $(call check_compile, [code], [compiler], [code_type], [c_flags], --# [extra_c_flags], [library_flags], [success_ret], [fail_ret]) --# Return: [success_ret] if compile succeeded, otherwise [fail_ret] --check_compile = $(shell printf '%b\n' $(1) | \ -- $($(2)) $($(4)) -x $(3) $(LDFLAGS) $(5) - $(6) -o /dev/null > /dev/null 2>&1 \ -- && echo "$(7)" || echo "$(8)") -- --# Helper macro to check whether a test program will compile with the specified --# compiler flags. --# Usage: $(call check_compile_cc, [code], [flags], [alternate_flags]) --# Return: [flags] if compile succeeded, otherwise [alternate_flags] --check_compile_cc = $(call check_compile,$(1),CC,c,CFLAGS,$(2),,$(2),$(3)) --check_compile_cxx = $(call check_compile,$(1),CXX,c++,CXXFLAGS,$(2),,$(2),$(3)) -- --# Helper macro to check whether a test program will compile with the specified --# libraries. --# Usage: $(call check_compile_cc, [code], [library_flags], [alternate_flags]) --# Return: [library_flags] if compile succeeded, otherwise [alternate_flags] --check_libs_cc = $(call check_compile,$(1),CC,c,CFLAGS,,$(2),$(2),$(3)) --check_libs_cxx = $(call check_compile,$(1),CXX,c++,CXXFLAGS,,$(2),$(2),$(3)) -- --# Helper macro to check whether the compiler accepts the specified flags. --# Usage: $(call check_compile_cc, [flags], [alternate_flags]) --# Return: [flags] if compile succeeded, otherwise [alternate_flags] --check_cc = $(call check_compile_cc,'int main() { return 0; }',$(1),$(2)) --check_cxx = $(call check_compile_cxx,'int main() { return 0; }',$(1),$(2)) -- --# Choose the stack protector flags based on whats supported by the compiler. --SSP_CFLAGS := $(call check_cc,-fstack-protector-strong) --ifeq ($(SSP_CFLAGS),) -- SSP_CFLAGS := $(call check_cc,-fstack-protector-all) --endif -- --# To update these from an including Makefile: --# CXXFLAGS += -mahflag # Append to the list --# CXXFLAGS := -mahflag $(CXXFLAGS) # Prepend to the list --# CXXFLAGS := $(filter-out badflag,$(CXXFLAGS)) # Filter out a value --# The same goes for CFLAGS. --COMMON_CFLAGS-gcc := -fvisibility=internal -ggdb3 -Wa,--noexecstack --COMMON_CFLAGS-clang := -fvisibility=hidden -ggdb --COMMON_CFLAGS := -Wall -Werror -fno-strict-aliasing $(SSP_CFLAGS) -O1 -Wformat=2 --CXXFLAGS += $(COMMON_CFLAGS) $(COMMON_CFLAGS-$(CXXDRIVER)) --CFLAGS += $(COMMON_CFLAGS) $(COMMON_CFLAGS-$(CDRIVER)) --CPPFLAGS += -D_FORTIFY_SOURCE=2 -- --# Enable large file support. --CPPFLAGS += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -- --# Disable exceptions based on the CXXEXCEPTIONS setting. --ifeq ($(CXXEXCEPTIONS),0) -- CXXFLAGS := $(CXXFLAGS) -fno-exceptions -fno-unwind-tables \ -- -fno-asynchronous-unwind-tables --endif -- --ifeq ($(MODE),opt) -- # Up the optimizations. -- CFLAGS := $(filter-out -O1,$(CFLAGS)) -O2 -- CXXFLAGS := $(filter-out -O1,$(CXXFLAGS)) -O2 -- # Only drop -g* if symbols aren't desired. -- ifeq ($(NOSTRIP),0) -- # TODO: do we want -fomit-frame-pointer on x86? -- CFLAGS := $(filter-out -ggdb3,$(CFLAGS)) -- CXXFLAGS := $(filter-out -ggdb3,$(CXXFLAGS)) -- endif --endif -- --ifeq ($(MODE),profiling) -- CFLAGS := $(CFLAGS) -O0 -g --coverage -- CXXFLAGS := $(CXXFLAGS) -O0 -g --coverage -- LDFLAGS := $(LDFLAGS) --coverage --endif -- --LDFLAGS := $(LDFLAGS) -Wl,-z,relro -Wl,-z,noexecstack -Wl,-z,now -- --# Fancy helpers for color if a prompt is defined --ifeq ($(COLOR),1) --COLOR_RESET = \x1b[0m --COLOR_GREEN = \x1b[32;01m --COLOR_RED = \x1b[31;01m --COLOR_YELLOW = \x1b[33;01m --endif -- --# By default, silence build output. --QUIET = @ --ifeq ($(VERBOSE),1) -- QUIET= --endif -- --# --# Implementation macros for compile helpers above --# -- --# Useful for dealing with pie-broken toolchains. --# Call make with PIE=0 to disable default PIE use. --OBJ_PIE_FLAG = -fPIE --COMPILE_PIE_FLAG = -pie --ifeq ($(PIE),0) -- OBJ_PIE_FLAG = -- COMPILE_PIE_FLAG = --endif -- --# Favor member targets first for CXX_BINARY(%) magic. --# And strip out nested members if possible. --LP := ( --RP := ) --TARGET_OR_MEMBER = $(lastword $(subst $(LP), ,$(subst $(RP),,$(or $%,$@)))) -- --# Default compile from objects using pre-requisites but filters out --# all non-.o files. --define COMPILE_BINARY_implementation -- @$(ECHO) "LD$(1) $(subst $(PWD)/,,$(TARGET_OR_MEMBER))" -- $(call auto_mkdir,$(TARGET_OR_MEMBER)) -- $(QUIET)$($(1)) $(COMPILE_PIE_FLAGS) -o $(TARGET_OR_MEMBER) \ -- $(2) $(LDFLAGS) \ -- $(filter %.o %.a,$(^:.o=.pie.o)) \ -- $(foreach so,$(filter %.so,$^),-L$(dir $(so)) \ -- -l$(patsubst lib%,%,$(basename $(notdir $(so))))) \ -- $(LDLIBS) -- $(call conditional_strip) -- @$(ECHO) -n "BIN " -- @$(ECHO) "$(COLOR_GREEN)$(subst $(PWD)/,,$(TARGET_OR_MEMBER))$(COLOR_RESET)" -- @$(ECHO) " $(COLOR_YELLOW)-----$(COLOR_RESET)" --endef -- --# TODO: add version support extracted from PV environment variable --#ifeq ($(PV),9999) --#$(warning PV=$(PV). If shared object versions matter, please force PV=.) --#endif --# Then add -Wl,-soname,$@.$(PV) ? -- --# Default compile from objects using pre-requisites but filters out --# all non-.o values. (Remember to add -L$(OUT) -llib) --COMMA := , --define COMPILE_LIBRARY_implementation -- @$(ECHO) "SHARED$(1) $(subst $(PWD)/,,$(TARGET_OR_MEMBER))" -- $(call auto_mkdir,$(TARGET_OR_MEMBER)) -- $(QUIET)$($(1)) -shared -Wl,-E -o $(TARGET_OR_MEMBER) \ -- $(2) $(LDFLAGS) \ -- $(if $(filter %.a,$^),-Wl$(COMMA)--whole-archive,) \ -- $(filter %.o ,$(^:.o=.pic.o)) \ -- $(foreach a,$(filter %.a,$^),-L$(dir $(a)) \ -- -l$(patsubst lib%,%,$(basename $(notdir $(a))))) \ -- $(foreach so,$(filter %.so,$^),-L$(dir $(so)) \ -- -l$(patsubst lib%,%,$(basename $(notdir $(so))))) \ -- $(LDLIBS) -- $(call conditional_strip) -- @$(ECHO) -n "LIB $(COLOR_GREEN)" -- @$(ECHO) "$(subst $(PWD)/,,$(TARGET_OR_MEMBER))$(COLOR_RESET)" -- @$(ECHO) " $(COLOR_YELLOW)-----$(COLOR_RESET)" --endef -- --define conditional_strip -- $(if $(filter 0,$(NOSTRIP)),$(call strip_artifact)) --endef -- --define strip_artifact -- @$(ECHO) "STRIP $(subst $(OUT)/,,$(TARGET_OR_MEMBER))" -- $(if $(filter 1,$(SPLITDEBUG)), @$(ECHO) -n "DEBUG "; \ -- $(ECHO) "$(COLOR_YELLOW)\ --$(subst $(OUT)/,,$(TARGET_OR_MEMBER)).debug$(COLOR_RESET)") -- $(if $(filter 1,$(SPLITDEBUG)), \ -- $(QUIET)$(OBJCOPY) --only-keep-debug "$(TARGET_OR_MEMBER)" \ -- "$(TARGET_OR_MEMBER).debug") -- $(if $(filter-out dbg,$(MODE)),$(QUIET)$(STRIP) --strip-unneeded \ -- "$(TARGET_OR_MEMBER)",) --endef -- --# --# Global pattern rules --# -- --# Below, the archive member syntax is abused to create fancier --# syntactic sugar for recipe authors that avoids needed to know --# subcall options. The downside is that make attempts to look --# into the phony archives for timestamps. This will cause the final --# target to be rebuilt/linked on _every_ call to make even when nothing --# has changed. Until a better way presents itself, we have helpers that --# do the stat check on make's behalf. Dodgy but simple. --define old_or_no_timestamp -- $(if $(realpath $%),,$(1)) -- $(if $(shell find $^ -cnewer "$%" 2>/dev/null),$(1)) --endef -- --define check_deps -- $(if $(filter 0,$(words $^)),\ -- $(error Missing dependencies or declaration of $@($%)),) --endef -- --# Build a cxx target magically --CXX_BINARY(%): -- $(call check_deps) -- $(call old_or_no_timestamp,$(call cxx_binary)) --clean: CLEAN(CXX_BINARY*) -- --CC_BINARY(%): -- $(call check_deps) -- $(call old_or_no_timestamp,$(call cc_binary)) --clean: CLEAN(CC_BINARY*) -- --CXX_STATIC_BINARY(%): -- $(call check_deps) -- $(call old_or_no_timestamp,$(call cxx_binary,-static)) --clean: CLEAN(CXX_STATIC_BINARY*) -- --CC_STATIC_BINARY(%): -- $(call check_deps) -- $(call old_or_no_timestamp,$(call cc_binary,-static)) --clean: CLEAN(CC_STATIC_BINARY*) -- --CXX_LIBRARY(%): -- $(call check_deps) -- $(call old_or_no_timestamp,$(call cxx_library)) --clean: CLEAN(CXX_LIBRARY*) -- --CXX_LIBARY(%): -- $(error Typo alert! LIBARY != LIBRARY) -- --CC_LIBRARY(%): -- $(call check_deps) -- $(call old_or_no_timestamp,$(call cc_library)) --clean: CLEAN(CC_LIBRARY*) -- --CC_LIBARY(%): -- $(error Typo alert! LIBARY != LIBRARY) -- --CXX_STATIC_LIBRARY(%): -- $(call check_deps) -- $(call old_or_no_timestamp,$(call update_archive)) --clean: CLEAN(CXX_STATIC_LIBRARY*) -- --CXX_STATIC_LIBARY(%): -- $(error Typo alert! LIBARY != LIBRARY) -- --CC_STATIC_LIBRARY(%): -- $(call check_deps) -- $(call old_or_no_timestamp,$(call update_archive)) --clean: CLEAN(CC_STATIC_LIBRARY*) -- --CC_STATIC_LIBARY(%): -- $(error Typo alert! LIBARY != LIBRARY) -- -- --TEST(%): % qemu_chroot_install -- $(call TEST_implementation) --.PHONY: TEST -- --# multiple targets with a wildcard need to share an directory. --# Don't use this directly it just makes sure the directory is removed _after_ --# the files are. --CLEANFILE(%): -- $(call silent_rm,$(TARGET_OR_MEMBER)) --.PHONY: CLEANFILE -- --CLEAN(%): CLEANFILE(%) -- $(QUIET)# CLEAN($%) meta-target called -- $(if $(filter-out $(PWD)/,$(dir $(abspath $(TARGET_OR_MEMBER)))), \ -- $(call silent_rmdir,$(dir $(abspath $(TARGET_OR_MEMBER)))),\ -- $(QUIET)# Not deleting $(dir $(abspath $(TARGET_OR_MEMBER))) yet.) --.PHONY: CLEAN -- --# --# Top-level objects and pattern rules --# -- --# All objects for .c files at the top level --C_OBJECTS = $(patsubst $(SRC)/%.c,%.o,$(wildcard $(SRC)/*.c)) -- -- --# All objects for .cxx files at the top level --CXX_OBJECTS = $(patsubst $(SRC)/%.cc,%.o,$(wildcard $(SRC)/*.cc)) -- --# Note, the catch-all pattern rules don't work in subdirectories because --# we're building from the $(OUT) directory. At the top-level (here) they will --# work, but we go ahead and match using the module form. Then we can place a --# generic pattern rule to capture leakage from the main Makefile. (Later in the --# file.) --# --# The reason target specific pattern rules work well for modules, --# MODULE_C_OBJECTS, is because it scopes the behavior to the given target which --# ensures we get a relative directory offset from $(OUT) which otherwise would --# not match without further magic on a per-subdirectory basis. -- --# Creates object file rules. Call with eval. --# $(1) list of .o files --# $(2) source type (CC or CXX) --# $(3) source suffix (cc or c) --# $(4) compiler flag name (CFLAGS or CXXFLAGS) --# $(5) source dir: _only_ if $(SRC). Leave blank for obj tree. --define add_object_rules --$(patsubst %.o,%.pie.o,$(1)): %.pie.o: $(5)%.$(3) %.o.depends -- $$(call auto_mkdir,$$@) -- $$(call OBJECT_PATTERN_implementation,$(2),\ -- $$(basename $$@),$$($(4)) $$(CPPFLAGS) $$(OBJ_PIE_FLAG)) -- --$(patsubst %.o,%.pic.o,$(1)): %.pic.o: $(5)%.$(3) %.o.depends -- $$(call auto_mkdir,$$@) -- $$(call OBJECT_PATTERN_implementation,$(2),\ -- $$(basename $$@),$$($(4)) $$(CPPFLAGS) -fPIC) -- --# Placeholder for depends --$(patsubst %.o,%.o.depends,$(1)): -- $$(call auto_mkdir,$$@) -- $$(QUIET)touch "$$@" -- --$(1): %.o: %.pic.o %.pie.o -- $$(call auto_mkdir,$$@) -- $$(QUIET)touch "$$@" --endef -- --define OBJECT_PATTERN_implementation -- @$(ECHO) "$(1) $(subst $(SRC)/,,$<) -> $(2).o" -- $(call auto_mkdir,$@) -- $(QUIET)$($(1)) -c -MD -MF $(2).d $(3) -o $(2).o $< -- $(QUIET)# Wrap all the deps in $$(wildcard) so a missing header -- $(QUIET)# won't cause weirdness. First we remove newlines and \, -- $(QUIET)# then wrap it. -- $(QUIET)sed -i -e :j -e '$$!N;s|\\\s*\n| |;tj' \ -- -e 's|^\(.*\s*:\s*\)\(.*\)$$|\1 $$\(wildcard \2\)|' $(2).d --endef -- --# Now actually register handlers for C(XX)_OBJECTS. --$(eval $(call add_object_rules,$(C_OBJECTS),CC,c,CFLAGS,$(SRC)/)) --$(eval $(call add_object_rules,$(CXX_OBJECTS),CXX,cc,CXXFLAGS,$(SRC)/)) -- --# Disable default pattern rules to help avoid leakage. --# These may already be handled by '-r', but let's keep it to be safe. --%: %.o ; --%.a: %.o ; --%.o: %.c ; --%.o: %.cc ; -- --# NOTE: A specific rule for archive objects is avoided because parallel --# update of the archive causes build flakiness. --# Instead, just make the objects the prerequisites and use update_archive --# To use the foo.a(obj.o) functionality, targets would need to specify the --# explicit object they expect on the prerequisite line. -- --# --# Architecture detection and QEMU wrapping --# -- --HOST_ARCH ?= $(shell uname -m) --override ARCH := $(strip $(ARCH)) --override HOST_ARCH := $(strip $(HOST_ARCH)) --# emake will supply "x86" or "arm" for ARCH, but --# if uname -m runs and you get x86_64, then this subst --# will break. --ifeq ($(subst x86,i386,$(ARCH)),i386) -- QEMU_ARCH := $(subst x86,i386,$(ARCH)) # x86 -> i386 --else ifeq ($(subst amd64,x86_64,$(ARCH)),x86_64) -- QEMU_ARCH := $(subst amd64,x86_64,$(ARCH)) # amd64 -> x86_64 --else -- QEMU_ARCH = $(ARCH) --endif --override QEMU_ARCH := $(strip $(QEMU_ARCH)) -- --# If we're cross-compiling, try to use qemu for running the tests. --ifneq ($(QEMU_ARCH),$(HOST_ARCH)) -- ifeq ($(SYSROOT),) -- $(info SYSROOT not defined. qemu-based testing disabled) -- else -- # A SYSROOT is assumed for QEmu use. -- USE_QEMU ?= 1 -- -- # Allow 64-bit hosts to run 32-bit without qemu. -- ifeq ($(HOST_ARCH),x86_64) -- ifeq ($(QEMU_ARCH),i386) -- USE_QEMU = 0 -- endif -- endif -- endif --else -- USE_QEMU ?= 0 --endif -- --# Normally we don't need to run as root or do bind mounts, so only --# enable it by default when we're using QEMU. --NEEDS_ROOT ?= $(USE_QEMU) --NEEDS_MOUNTS ?= $(USE_QEMU) -- --SYSROOT_OUT = $(OUT) --ifneq ($(SYSROOT),) -- SYSROOT_OUT = $(subst $(SYSROOT),,$(OUT)) --else -- # Default to / when all the empty-sysroot logic is done. -- SYSROOT = / --endif -- --QEMU_NAME = qemu-$(QEMU_ARCH) --QEMU_PATH = /build/bin/$(QEMU_NAME) --QEMU_SYSROOT_PATH = $(SYSROOT)$(QEMU_PATH) --QEMU_SRC_PATH = /usr/bin/$(QEMU_NAME) --QEMU_BINFMT_PATH = /proc/sys/fs/binfmt_misc/$(QEMU_NAME) --QEMU_REGISTER_PATH = /proc/sys/fs/binfmt_misc/register -- --QEMU_MAGIC_arm = ":$(QEMU_NAME):M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/build/bin/qemu-arm:" -- -- --# --# Output full configuration at top level --# -- --# Don't show on clean --ifneq ($(MAKECMDGOALS),clean) -- $(info build configuration:) -- $(info - OUT=$(OUT)) -- $(info - SRC=$(SRC)) -- $(info - MODE=$(MODE)) -- $(info - SPLITDEBUG=$(SPLITDEBUG)) -- $(info - NOSTRIP=$(NOSTRIP)) -- $(info - VALGRIND=$(VALGRIND)) -- $(info - COLOR=$(COLOR)) -- $(info - CXXEXCEPTIONS=$(CXXEXCEPTIONS)) -- $(info - ARCH=$(ARCH)) -- $(info - QEMU_ARCH=$(QEMU_ARCH)) -- $(info - USE_QEMU=$(USE_QEMU)) -- $(info - NEEDS_ROOT=$(NEEDS_ROOT)) -- $(info - NEEDS_MOUNTS=$(NEEDS_MOUNTS)) -- $(info - SYSROOT=$(SYSROOT)) -- $(info ) --endif -- --# --# Standard targets with detection for when they are improperly configured. --# -- --# all does not include tests by default --all: -- $(QUIET)(test -z "$^" && \ -- $(ECHO) "You must add your targets as 'all' prerequisites") || true -- $(QUIET)test -n "$^" -- --# Builds and runs tests for the target arch --# Run them in parallel --# After the test have completed, if profiling, run coverage analysis --tests: --ifeq ($(MODE),profiling) -- @$(ECHO) "COVERAGE [$(COLOR_YELLOW)STARTED$(COLOR_RESET)]" -- $(QUIET)FILES=""; \ -- for GCNO in `find . -name "*.gcno"`; do \ -- GCDA="$${GCNO%.gcno}.gcda"; \ -- if [ -e $${GCDA} ]; then \ -- FILES="$${FILES} $${GCDA}"; \ -- fi \ -- done; \ -- if [ -n "$${FILES}" ]; then \ -- gcov -l $${FILES}; \ -- lcov --capture --directory . \ -- --output-file=lcov-coverage.info; \ -- genhtml lcov-coverage.info \ -- --output-directory lcov-html; \ -- fi -- @$(ECHO) "COVERAGE [$(COLOR_YELLOW)FINISHED$(COLOR_RESET)]" --endif --.PHONY: tests -- --qemu_chroot_install: --ifeq ($(USE_QEMU),1) -- $(QUIET)$(ECHO) "QEMU Preparing $(QEMU_NAME)" -- @# Copying strategy -- @# Compare /usr/bin/qemu inode to /build/$board/build/bin/qemu, if different -- @# hard link to a temporary file, then rename temp to target. This should -- @# ensure that once $QEMU_SYSROOT_PATH exists it will always exist, regardless -- @# of simultaneous test setups. -- $(QUIET)if [[ ! -e $(QEMU_SYSROOT_PATH) || \ -- `stat -c %i $(QEMU_SRC_PATH)` != `stat -c %i $(QEMU_SYSROOT_PATH)` \ -- ]]; then \ -- $(ROOT_CMD) ln -Tf $(QEMU_SRC_PATH) $(QEMU_SYSROOT_PATH).$$$$; \ -- $(ROOT_CMD) mv -Tf $(QEMU_SYSROOT_PATH).$$$$ $(QEMU_SYSROOT_PATH); \ -- fi -- -- @# Prep the binfmt handler. First mount if needed, then unregister any bad -- @# mappings and then register our mapping. -- @# There may still be some race conditions here where one script de-registers -- @# and another script starts executing before it gets re-registered, however -- @# it should be rare. -- -$(QUIET)[[ -e $(QEMU_REGISTER_PATH) ]] || \ -- $(ROOT_CMD) mount binfmt_misc -t binfmt_misc \ -- /proc/sys/fs/binfmt_misc -- -- -$(QUIET)if [[ -e $(QEMU_BINFMT_PATH) && \ -- `awk '$$1 == "interpreter" {print $$NF}' $(QEMU_BINFMT_PATH)` != \ -- "$(QEMU_PATH)" ]]; then \ -- echo -1 | $(ROOT_CMD) tee $(QEMU_BINFMT_PATH) >/dev/null; \ -- fi -- -- -$(if $(QEMU_MAGIC_$(ARCH)),$(QUIET)[[ -e $(QEMU_BINFMT_PATH) ]] || \ -- echo $(QEMU_MAGIC_$(ARCH)) | $(ROOT_CMD) tee $(QEMU_REGISTER_PATH) \ -- >/dev/null) --endif --.PHONY: qemu_clean qemu_chroot_install -- --# TODO(wad) Move to -L $(SYSROOT) and fakechroot when qemu-user --# doesn't hang traversing /proc from SYSROOT. --SUDO_CMD = sudo --UNSHARE_CMD = unshare --QEMU_CMD = --ROOT_CMD = $(if $(filter 1,$(NEEDS_ROOT)),$(SUDO_CMD) , ) --MOUNT_CMD = $(if $(filter 1,$(NEEDS_MOUNTS)),$(ROOT_CMD) mount, \#) --UMOUNT_CMD = $(if $(filter 1,$(NEEDS_MOUNTS)),$(ROOT_CMD) umount, \#) --QEMU_LDPATH = $(SYSROOT_LDPATH):/lib64:/lib:/usr/lib64:/usr/lib --ROOT_CMD_LDPATH = $(SYSROOT_LDPATH):$(SYSROOT)/lib64: --ROOT_CMD_LDPATH := $(ROOT_CMD_LDPATH):$(SYSROOT)/lib:$(SYSROOT)/usr/lib64: --ROOT_CMD_LDPATH := $(ROOT_CMD_LDPATH):$(SYSROOT)/usr/lib --ifeq ($(USE_QEMU),1) -- export QEMU_CMD = \ -- $(SUDO_CMD) chroot $(SYSROOT) $(QEMU_PATH) \ -- -drop-ld-preload \ -- -E LD_LIBRARY_PATH="$(QEMU_LDPATH):$(patsubst $(OUT),,$(LD_DIRS))" \ -- -E HOME="$(HOME)" -E SRC="$(SRC)" -- -- # USE_QEMU conditional function -- define if_qemu -- $(1) -- endef --else -- ROOT_CMD = $(if $(filter 1,$(NEEDS_ROOT)),sudo, ) \ -- LD_LIBRARY_PATH="$(ROOT_CMD_LDPATH):$(LD_DIRS)" -- define if_qemu -- $(2) -- endef --endif -- --VALGRIND_CMD = --ifeq ($(VALGRIND),1) -- VALGRIND_CMD = /usr/bin/valgrind --tool=memcheck $(VALGRIND_ARGS) -- --endif -- --define TEST_implementation -- $(QUIET)$(call TEST_setup) -- $(QUIET)$(call TEST_run) -- $(QUIET)$(call TEST_teardown) -- $(QUIET)exit $$(cat $(OUT)$(TARGET_OR_MEMBER).status.test) --endef -- --define TEST_setup -- @$(ECHO) -n "TEST $(TARGET_OR_MEMBER) " -- @$(ECHO) "[$(COLOR_YELLOW)SETUP$(COLOR_RESET)]" -- $(QUIET)# Setup a target-specific results file -- $(QUIET)(echo > $(OUT)$(TARGET_OR_MEMBER).setup.test) -- $(QUIET)(echo 1 > $(OUT)$(TARGET_OR_MEMBER).status.test) -- $(QUIET)(echo > $(OUT)$(TARGET_OR_MEMBER).cleanup.test) -- $(QUIET)# No setup if we are not using QEMU -- $(QUIET)# TODO(wad) this is racy until we use a vfs namespace -- $(call if_qemu,\ -- $(QUIET)(echo "mkdir -p '$(SYSROOT)/proc' '$(SYSROOT)/dev' \ -- '$(SYSROOT)/mnt/host/source'" \ -- >> "$(OUT)$(TARGET_OR_MEMBER).setup.test")) -- $(call if_qemu,\ -- $(QUIET)(echo "$(MOUNT_CMD) --bind /mnt/host/source \ -- '$(SYSROOT)/mnt/host/source'" \ -- >> "$(OUT)$(TARGET_OR_MEMBER).setup.test")) -- $(call if_qemu,\ -- $(QUIET)(echo "$(MOUNT_CMD) --bind /proc '$(SYSROOT)/proc'" \ -- >> "$(OUT)$(TARGET_OR_MEMBER).setup.test")) -- $(call if_qemu,\ -- $(QUIET)(echo "$(MOUNT_CMD) --bind /dev '$(SYSROOT)/dev'" \ -- >> "$(OUT)$(TARGET_OR_MEMBER).setup.test")) --endef -- --define TEST_teardown -- @$(ECHO) -n "TEST $(TARGET_OR_MEMBER) " -- @$(ECHO) "[$(COLOR_YELLOW)TEARDOWN$(COLOR_RESET)]" -- $(call if_qemu, $(QUIET)$(SHELL) "$(OUT)$(TARGET_OR_MEMBER).cleanup.test") --endef -- --# Use GTEST_ARGS.[arch] if defined. --override GTEST_ARGS.real = \ -- $(call if_qemu,$(GTEST_ARGS.qemu.$(QEMU_ARCH)),$(GTEST_ARGS.host.$(HOST_ARCH))) -- --define TEST_run -- @$(ECHO) -n "TEST $(TARGET_OR_MEMBER) " -- @$(ECHO) "[$(COLOR_GREEN)RUN$(COLOR_RESET)]" -- $(QUIET)(echo 1 > "$(OUT)$(TARGET_OR_MEMBER).status.test") -- $(QUIET)(echo $(ROOT_CMD) SRC="$(SRC)" $(QEMU_CMD) $(VALGRIND_CMD) \ -- "$(strip $(call if_qemu, $(SYSROOT_OUT),$(OUT))$(TARGET_OR_MEMBER))" \ -- $(if $(filter-out 0,$(words $(GTEST_ARGS.real))),$(GTEST_ARGS.real),\ -- $(GTEST_ARGS)) >> "$(OUT)$(TARGET_OR_MEMBER).setup.test") -- -$(QUIET)$(call if_qemu,$(SUDO_CMD) $(UNSHARE_CMD) -m) $(SHELL) \ -- $(OUT)$(TARGET_OR_MEMBER).setup.test \ -- && echo 0 > "$(OUT)$(TARGET_OR_MEMBER).status.test" --endef -- --# Recursive list reversal so that we get RMDIR_ON_CLEAN in reverse order. --define reverse --$(if $(1),$(call reverse,$(wordlist 2,$(words $(1)),$(1)))) $(firstword $(1)) --endef -- --clean: qemu_clean --clean: CLEAN($(OUT)*.d) CLEAN($(OUT)*.o) CLEAN($(OUT)*.debug) --clean: CLEAN($(OUT)*.test) CLEAN($(OUT)*.depends) --clean: CLEAN($(OUT)*.gcno) CLEAN($(OUT)*.gcda) CLEAN($(OUT)*.gcov) --clean: CLEAN($(OUT)lcov-coverage.info) CLEAN($(OUT)lcov-html) -- --clean: -- $(QUIET)# Always delete the containing directory last. -- $(call silent_rmdir,$(OUT)) -- --FORCE: ; --# Empty rule for use when no special targets are needed, like large_tests --NONE: -- --.PHONY: clean NONE valgrind NONE --.DEFAULT_GOAL := all --# Don't let make blow away "intermediates" --.PRECIOUS: %.pic.o %.pie.o %.a %.pic.a %.pie.a %.test -- --# Start accruing build info --OUT_DIRS = $(OUT) --LD_DIRS = $(OUT) --SRC_DIRS = $(SRC) -- --include $(wildcard $(OUT)*.d) --SUBMODULE_DIRS = $(wildcard $(SRC)/*/module.mk) --include $(SUBMODULE_DIRS) -- -- --else ## In duplicate inclusions of common.mk -- --# Get the current inclusion directory without a trailing slash --MODULE := $(patsubst %/,%, \ -- $(dir $(lastword $(filter-out %common.mk,$(MAKEFILE_LIST))))) --MODULE := $(subst $(SRC)/,,$(MODULE)) --MODULE_NAME := $(subst /,_,$(MODULE)) --#VPATH := $(MODULE):$(VPATH) -- -- --# Depth first --$(eval OUT_DIRS += $(OUT)$(MODULE)) --$(eval SRC_DIRS += $(OUT)$(MODULE)) --$(eval LD_DIRS := $(LD_DIRS):$(OUT)$(MODULE)) -- --# Add the defaults from this dir to rm_clean --clean: CLEAN($(OUT)$(MODULE)/*.d) CLEAN($(OUT)$(MODULE)/*.o) --clean: CLEAN($(OUT)$(MODULE)/*.debug) CLEAN($(OUT)$(MODULE)/*.test) --clean: CLEAN($(OUT)$(MODULE)/*.depends) --clean: CLEAN($(OUT)$(MODULE)/*.gcno) CLEAN($(OUT)$(MODULE)/*.gcda) --clean: CLEAN($(OUT)$(MODULE)/*.gcov) CLEAN($(OUT)lcov-coverage.info) --clean: CLEAN($(OUT)lcov-html) -- --$(info + submodule: $(MODULE_NAME)) --# We must eval otherwise they may be dropped. --MODULE_C_OBJECTS = $(patsubst $(SRC)/$(MODULE)/%.c,$(MODULE)/%.o,\ -- $(wildcard $(SRC)/$(MODULE)/*.c)) --$(eval $(MODULE_NAME)_C_OBJECTS ?= $(MODULE_C_OBJECTS)) --MODULE_CXX_OBJECTS = $(patsubst $(SRC)/$(MODULE)/%.cc,$(MODULE)/%.o,\ -- $(wildcard $(SRC)/$(MODULE)/*.cc)) --$(eval $(MODULE_NAME)_CXX_OBJECTS ?= $(MODULE_CXX_OBJECTS)) -- --# Note, $(MODULE) is implicit in the path to the %.c. --# See $(C_OBJECTS) for more details. --# Register rules for the module objects. --$(eval $(call add_object_rules,$(MODULE_C_OBJECTS),CC,c,CFLAGS,$(SRC)/)) --$(eval $(call add_object_rules,$(MODULE_CXX_OBJECTS),CXX,cc,CXXFLAGS,$(SRC)/)) -- --# Continue recursive inclusion of module.mk files --SUBMODULE_DIRS = $(wildcard $(SRC)/$(MODULE)/*/module.mk) --include $(wildcard $(OUT)$(MODULE)/*.d) --include $(SUBMODULE_DIRS) -- --endif --endif ## pass-to-subcall wrapper for relocating the call directory -diff --git a/fuzzers/modp_b64_decode_fuzzer.cc b/fuzzers/modp_b64_decode_fuzzer.cc -new file mode 100644 -index 0000000..176ebc3 ---- /dev/null -+++ b/fuzzers/modp_b64_decode_fuzzer.cc -@@ -0,0 +1,17 @@ -+// Copyright 2019 The Chromium OS Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style license that can be -+// found in the LICENSE file. -+ -+#include <string> -+#include <cstddef> -+#include <cstdint> -+ -+#include "modp_b64.h" -+ -+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { -+ // Create a buffer to store the output. -+ std::string buffer; -+ buffer.resize(modp_b64_decode_len(size)); -+ modp_b64_decode(&(buffer[0]), (const char *) data, size); -+ return 0; -+} -diff --git a/fuzzers/modp_b64_encode_fuzzer.cc b/fuzzers/modp_b64_encode_fuzzer.cc -new file mode 100644 -index 0000000..0f61575 ---- /dev/null -+++ b/fuzzers/modp_b64_encode_fuzzer.cc -@@ -0,0 +1,17 @@ -+// Copyright 2019 The Chromium OS Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style license that can be -+// found in the LICENSE file. -+ -+#include <string> -+#include <cstddef> -+#include <cstdint> -+ -+#include "modp_b64.h" -+ -+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { -+ // Create a buffer to store the output. -+ std::string buffer; -+ buffer.resize(modp_b64_encode_len(size)); -+ modp_b64_encode(&buffer[0], (const char *)data, size); -+ return 0; -+} --- -2.23.0 - diff --git a/pkgs/os-specific/linux/chromium-os/modp_b64/0002-Use-regular-archives.patch b/pkgs/os-specific/linux/chromium-os/modp_b64/0002-Use-regular-archives.patch deleted file mode 100644 index 57f087d5b16..00000000000 --- a/pkgs/os-specific/linux/chromium-os/modp_b64/0002-Use-regular-archives.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 11a6fc258c6765a43b973b15e86fb4bce7675202 Mon Sep 17 00:00:00 2001 -From: Manoj Gupta <manojgupta@google.com> -Date: Mon, 14 Oct 2019 11:37:20 -0700 -Subject: [PATCH 2/2] Use regular archives. - -libmodp_b64 needs to be linked by libchrome later so -use regular archives. - -BUG=chromium:1012803 -TEST=libchrome can link with libmodp_b64. - -Change-Id: Ie0bbcc8a54051d4136463c95762ba8343e487862 ---- - BUILD.gn | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/BUILD.gn b/BUILD.gn -index b2fe97d..9107609 100644 ---- a/BUILD.gn -+++ b/BUILD.gn -@@ -16,6 +16,12 @@ group("all") { - } - - static_library("modp_b64") { -+ configs -= [ -+ "//common-mk:use_thin_archive", -+ ] -+ configs += [ -+ "//common-mk:nouse_thin_archive", -+ ] - sources = [ - "modp_b64.cc", - "modp_b64.h", --- -2.23.0 - diff --git a/pkgs/os-specific/linux/chromium-os/modp_b64/default.nix b/pkgs/os-specific/linux/chromium-os/modp_b64/default.nix index 4908443f9b7..50d91479193 100644 --- a/pkgs/os-specific/linux/chromium-os/modp_b64/default.nix +++ b/pkgs/os-specific/linux/chromium-os/modp_b64/default.nix @@ -5,13 +5,6 @@ common-mk { src = fetchFromGitiles upstreamInfo.components."aosp/platform/external/modp_b64"; - patches = [ - # We could just use the Makefile, but it's going to be removed in - # the next release anyway so let's just get on the GN train early. - ./0001-modp_b64-Fix-GN-build-and-add-fuzzers.patch - ./0002-Use-regular-archives.patch - ]; - installPhase = '' mkdir -p $out/lib install -m 0644 libmodp_b64.a $out/lib diff --git a/pkgs/os-specific/linux/chromium-os/sommelier/0010-sommelier-don-t-leak-source-absolute-paths.patch b/pkgs/os-specific/linux/chromium-os/sommelier/0008-sommelier-don-t-leak-source-absolute-paths.patch index a9f2df3b73e..aafd443e3e0 100644 --- a/pkgs/os-specific/linux/chromium-os/sommelier/0010-sommelier-don-t-leak-source-absolute-paths.patch +++ b/pkgs/os-specific/linux/chromium-os/sommelier/0008-sommelier-don-t-leak-source-absolute-paths.patch @@ -1,7 +1,7 @@ -From b1a89637c458ea70ea0d280f1c2c469e177bfc6f Mon Sep 17 00:00:00 2001 +From 1f414ce4e36d424e4c4c9124f60e784d364af282 Mon Sep 17 00:00:00 2001 From: Alyssa Ross <hi@alyssa.is> Date: Sun, 1 Dec 2019 17:04:04 +0000 -Subject: [PATCH 10/11] sommelier: don't leak source-absolute paths +Subject: [PATCH 8/9] sommelier: don't leak source-absolute paths --- vm_tools/sommelier/wayland_protocol.gni | 2 +- diff --git a/pkgs/os-specific/linux/chromium-os/sommelier/0011-sommelier-use-stable-xdg-shell-protocol.patch b/pkgs/os-specific/linux/chromium-os/sommelier/0009-sommelier-use-stable-xdg-shell-protocol.patch index b72d5c7c588..3c1b49adcea 100644 --- a/pkgs/os-specific/linux/chromium-os/sommelier/0011-sommelier-use-stable-xdg-shell-protocol.patch +++ b/pkgs/os-specific/linux/chromium-os/sommelier/0009-sommelier-use-stable-xdg-shell-protocol.patch @@ -1,7 +1,7 @@ -From f2655b38379414312efda57d6c0fdb73492fcab6 Mon Sep 17 00:00:00 2001 +From ab753b1f376a9a348a0d3a6cc106d097bb4160c3 Mon Sep 17 00:00:00 2001 From: Puck Meerburg <puck@puckipedia.com> Date: Tue, 3 Dec 2019 18:06:14 +0000 -Subject: [PATCH 11/11] sommelier: use stable xdg-shell protocol +Subject: [PATCH 9/9] sommelier: use stable xdg-shell protocol From https://github.com/wayland-project/weston/commit/d8d9f5e6e16c8f6a3c06763d5f56c27dc9a6e52e: @@ -12,17 +12,17 @@ From https://github.com/wayland-project/weston/commit/d8d9f5e6e16c8f6a3c06763d5f --- vm_tools/sommelier/BUILD.gn | 2 +- ...dg-shell-unstable-v6.xml => xdg-shell.xml} | 319 ++++++++++++------ - vm_tools/sommelier/sommelier-xdg-shell.c | 242 ++++++------- - vm_tools/sommelier/sommelier.c | 209 ++++++------ + vm_tools/sommelier/sommelier-xdg-shell.c | 233 ++++++------- + vm_tools/sommelier/sommelier.c | 211 ++++++------ vm_tools/sommelier/sommelier.h | 17 +- - 5 files changed, 450 insertions(+), 339 deletions(-) + 5 files changed, 447 insertions(+), 335 deletions(-) rename vm_tools/sommelier/protocol/{xdg-shell-unstable-v6.xml => xdg-shell.xml} (79%) diff --git a/vm_tools/sommelier/BUILD.gn b/vm_tools/sommelier/BUILD.gn -index 72d5c1647..f01655010 100644 +index 871c142bc..498a0ccab 100644 --- a/vm_tools/sommelier/BUILD.gn +++ b/vm_tools/sommelier/BUILD.gn -@@ -67,7 +67,7 @@ wayland_protocol_library("sommelier-protocol") { +@@ -68,7 +68,7 @@ wayland_protocol_library("sommelier-protocol") { "protocol/relative-pointer-unstable-v1.xml", "protocol/text-input-unstable-v1.xml", "protocol/viewporter.xml", @@ -618,7 +618,7 @@ index 1c0f92452..3a87a9ed6 100644 xdg_popup surfaces associated with the same xdg_toplevel. diff --git a/vm_tools/sommelier/sommelier-xdg-shell.c b/vm_tools/sommelier/sommelier-xdg-shell.c -index a5551b25e..0c11b8de9 100644 +index ecd0fc647..a3ba0d6e1 100644 --- a/vm_tools/sommelier/sommelier-xdg-shell.c +++ b/vm_tools/sommelier/sommelier-xdg-shell.c @@ -7,37 +7,37 @@ @@ -886,7 +886,7 @@ index a5551b25e..0c11b8de9 100644 static void sl_xdg_toplevel_set_fullscreen( @@ -292,25 +292,25 @@ static void sl_xdg_toplevel_set_fullscreen( struct sl_host_output* host_output = - output_resource ? wl_resource_get_user_data(resource) : NULL; + output_resource ? wl_resource_get_user_data(output_resource) : NULL; - zxdg_toplevel_v6_set_fullscreen(host->proxy, - host_output ? host_output->proxy : NULL); @@ -1091,7 +1091,7 @@ index a5551b25e..0c11b8de9 100644 struct sl_host_surface* host_surface = wl_resource_get_user_data(surface_resource); struct sl_host_xdg_surface* host_xdg_surface; -@@ -493,71 +496,74 @@ static void sl_xdg_shell_get_xdg_surface(struct wl_client* client, +@@ -493,71 +496,75 @@ static void sl_xdg_shell_get_xdg_surface(struct wl_client* client, assert(host_xdg_surface); host_xdg_surface->ctx = host->ctx; @@ -1176,39 +1176,34 @@ index a5551b25e..0c11b8de9 100644 - host->resource = wl_resource_create(client, &zxdg_shell_v6_interface, 1, id); - wl_resource_set_implementation(host->resource, &sl_xdg_shell_implementation, - host, sl_destroy_host_xdg_shell); -- host->proxy = -- wl_registry_bind(wl_display_get_registry(ctx->display), ++ host->resource = wl_resource_create(client, &xdg_wm_base_interface, ++ ctx->xdg_wm_base->id, id); ++ wl_resource_set_implementation(host->resource, &sl_xdg_wm_base_implementation, ++ host, sl_destroy_host_xdg_wm_base); + host->proxy = + wl_registry_bind(wl_display_get_registry(ctx->display), - ctx->xdg_shell->id, &zxdg_shell_v6_interface, 1); - zxdg_shell_v6_set_user_data(host->proxy, host); - zxdg_shell_v6_add_listener(host->proxy, &sl_xdg_shell_listener, host); --} -- ++ ctx->xdg_wm_base->id, &xdg_wm_base_interface, ++ ctx->xdg_wm_base->version); ++ xdg_wm_base_set_user_data(host->proxy, host); ++ xdg_wm_base_add_listener(host->proxy, &sl_xdg_wm_base_listener, host); + } + -struct sl_global* sl_xdg_shell_global_create(struct sl_context* ctx) { - return sl_global_create(ctx, &zxdg_shell_v6_interface, 1, ctx, - sl_bind_host_xdg_shell); --} -\ No newline at end of file -+ host->resource = wl_resource_create(client, &xdg_wm_base_interface, -+ MIN(version, ctx->xdg_wm_base->version), id); -+ wl_resource_set_implementation(host->resource, &sl_xdg_wm_base_implementation, -+ host, sl_destroy_host_xdg_wm_base); -+ host->proxy = wl_registry_bind( -+ wl_display_get_registry(ctx->display), ctx->xdg_wm_base->id, -+ &xdg_wm_base_interface, ctx->xdg_wm_base->version); -+ xdg_wm_base_set_user_data(host->proxy, host); -+ xdg_wm_base_add_listener(host->proxy, &sl_xdg_wm_base_listener, host); -+} -+ +struct sl_global* sl_xdg_wm_base_global_create(struct sl_context* ctx) { -+ return sl_global_create(ctx, &xdg_wm_base_interface, ++ return sl_global_create(ctx, &xdg_wm_base_interface, + ctx->xdg_wm_base->version, ctx, + sl_bind_host_xdg_wm_base); -+} + } diff --git a/vm_tools/sommelier/sommelier.c b/vm_tools/sommelier/sommelier.c -index ff066e1f3..3fbcde473 100644 +index 3637385a5..fba0d1277 100644 --- a/vm_tools/sommelier/sommelier.c +++ b/vm_tools/sommelier/sommelier.c -@@ -33,7 +33,7 @@ +@@ -35,7 +35,7 @@ #include "relative-pointer-unstable-v1-client-protocol.h" #include "text-input-unstable-v1-client-protocol.h" #include "viewporter-client-protocol.h" @@ -1217,7 +1212,7 @@ index ff066e1f3..3fbcde473 100644 // Check that required macro definitions exist. #ifndef XWAYLAND_PATH -@@ -245,14 +245,14 @@ void sl_sync_point_destroy(struct sl_sync_point* sync_point) { +@@ -272,14 +272,14 @@ void sl_sync_point_destroy(struct sl_sync_point* sync_point) { free(sync_point); } @@ -1237,7 +1232,7 @@ index ff066e1f3..3fbcde473 100644 static void sl_send_configure_notify(struct sl_window* window) { xcb_configure_notify_event_t event = { -@@ -415,8 +415,8 @@ int sl_process_pending_configure_acks(struct sl_window* window, +@@ -442,8 +442,8 @@ int sl_process_pending_configure_acks(struct sl_window* window, } if (window->xdg_surface) { @@ -1248,7 +1243,7 @@ index ff066e1f3..3fbcde473 100644 } window->pending_config.serial = 0; -@@ -427,8 +427,8 @@ int sl_process_pending_configure_acks(struct sl_window* window, +@@ -454,8 +454,8 @@ int sl_process_pending_configure_acks(struct sl_window* window, } static void sl_internal_xdg_surface_configure( @@ -1259,7 +1254,7 @@ index ff066e1f3..3fbcde473 100644 window->next_config.serial = serial; if (!window->pending_config.serial) { -@@ -449,16 +449,16 @@ static void sl_internal_xdg_surface_configure( +@@ -476,16 +476,16 @@ static void sl_internal_xdg_surface_configure( } } @@ -1279,7 +1274,7 @@ index ff066e1f3..3fbcde473 100644 int activated = 0; uint32_t* state; int i = 0; -@@ -488,21 +488,21 @@ static void sl_internal_xdg_toplevel_configure( +@@ -515,21 +515,21 @@ static void sl_internal_xdg_toplevel_configure( window->allow_resize = 1; wl_array_for_each(state, states) { @@ -1305,7 +1300,7 @@ index ff066e1f3..3fbcde473 100644 window->allow_resize = 0; } -@@ -518,8 +518,8 @@ static void sl_internal_xdg_toplevel_configure( +@@ -545,8 +545,8 @@ static void sl_internal_xdg_toplevel_configure( } static void sl_internal_xdg_toplevel_close( @@ -1316,7 +1311,7 @@ index ff066e1f3..3fbcde473 100644 xcb_client_message_event_t event = { .response_type = XCB_CLIENT_MESSAGE, .format = 32, -@@ -536,21 +536,21 @@ static void sl_internal_xdg_toplevel_close( +@@ -563,21 +563,21 @@ static void sl_internal_xdg_toplevel_close( XCB_EVENT_MASK_NO_EVENT, (const char*)&event); } @@ -1342,7 +1337,7 @@ index ff066e1f3..3fbcde473 100644 sl_internal_xdg_popup_configure, sl_internal_xdg_popup_done}; static void sl_window_set_wm_state(struct sl_window* window, int state) { -@@ -590,15 +590,15 @@ void sl_window_update(struct sl_window* window) { +@@ -645,15 +645,15 @@ void sl_window_update(struct sl_window* window) { window->aura_surface = NULL; } if (window->xdg_toplevel) { @@ -1361,7 +1356,7 @@ index ff066e1f3..3fbcde473 100644 window->xdg_surface = NULL; } window->realized = 0; -@@ -609,8 +609,8 @@ void sl_window_update(struct sl_window* window) { +@@ -664,8 +664,8 @@ void sl_window_update(struct sl_window* window) { assert(host_surface); assert(!host_surface->has_role); @@ -1372,7 +1367,7 @@ index ff066e1f3..3fbcde473 100644 if (window->managed) { if (window->transient_for != XCB_WINDOW_NONE) { -@@ -672,11 +672,11 @@ void sl_window_update(struct sl_window* window) { +@@ -727,11 +727,11 @@ void sl_window_update(struct sl_window* window) { } if (!window->xdg_surface) { @@ -1389,7 +1384,7 @@ index ff066e1f3..3fbcde473 100644 } if (ctx->aura_shell) { -@@ -730,47 +730,47 @@ void sl_window_update(struct sl_window* window) { +@@ -761,50 +761,50 @@ void sl_window_update(struct sl_window* window) { // window is closed. if (ctx->xwayland || !parent) { if (!window->xdg_toplevel) { @@ -1419,6 +1414,10 @@ index ff066e1f3..3fbcde473 100644 window->max_width / ctx->scale, window->max_height / ctx->scale); } + if (window->maximized) { +- zxdg_toplevel_v6_set_maximized(window->xdg_toplevel); ++ xdg_toplevel_set_maximized(window->xdg_toplevel); + } } else if (!window->xdg_popup) { - struct zxdg_positioner_v6* positioner; + struct xdg_positioner* positioner; @@ -1455,7 +1454,7 @@ index ff066e1f3..3fbcde473 100644 } if ((window->size_flags & (US_POSITION | P_POSITION)) && parent && -@@ -1122,22 +1122,23 @@ static void sl_registry_handler(void* data, +@@ -1168,22 +1168,23 @@ static void sl_registry_handler(void* data, data_device_manager->host_global = sl_data_device_manager_global_create(ctx); } @@ -1493,7 +1492,7 @@ index ff066e1f3..3fbcde473 100644 } } else if (strcmp(interface, "zaura_shell") == 0) { if (version >= MIN_AURA_SHELL_VERSION) { -@@ -1244,13 +1245,13 @@ static void sl_registry_remover(void* data, +@@ -1290,13 +1291,13 @@ static void sl_registry_remover(void* data, ctx->data_device_manager = NULL; return; } @@ -1514,7 +1513,7 @@ index ff066e1f3..3fbcde473 100644 return; } if (ctx->aura_shell && ctx->aura_shell->id == id) { -@@ -1405,11 +1406,11 @@ static void sl_destroy_window(struct sl_window* window) { +@@ -1458,11 +1459,11 @@ static void sl_destroy_window(struct sl_window* window) { } if (window->xdg_popup) @@ -1529,7 +1528,7 @@ index ff066e1f3..3fbcde473 100644 if (window->aura_surface) zaura_surface_destroy(window->aura_surface); -@@ -1827,15 +1828,15 @@ static void sl_handle_configure_request(struct sl_context* ctx, +@@ -1906,15 +1907,15 @@ static void sl_handle_configure_request(struct sl_context* ctx, // that matching contents will arrive. if (window->xdg_toplevel) { if (window->pending_config.serial) { @@ -1549,7 +1548,7 @@ index ff066e1f3..3fbcde473 100644 window->next_config.serial = 0; window->next_config.mask = 0; window->next_config.states_length = 0; -@@ -1956,23 +1957,23 @@ static void sl_handle_configure_notify(struct sl_context* ctx, +@@ -2035,23 +2036,23 @@ static void sl_handle_configure_notify(struct sl_context* ctx, static uint32_t sl_resize_edge(int net_wm_moveresize_size) { switch (net_wm_moveresize_size) { case NET_WM_MOVERESIZE_SIZE_TOPLEFT: @@ -1582,7 +1581,7 @@ index ff066e1f3..3fbcde473 100644 } } -@@ -2002,15 +2003,15 @@ static void sl_handle_client_message(struct sl_context* ctx, +@@ -2098,15 +2099,15 @@ static void sl_handle_client_message(struct sl_context* ctx, return; if (event->data.data32[2] == NET_WM_MOVERESIZE_MOVE) { @@ -1601,7 +1600,7 @@ index ff066e1f3..3fbcde473 100644 seat->seat->last_serial, edge); } } -@@ -2029,24 +2030,24 @@ static void sl_handle_client_message(struct sl_context* ctx, +@@ -2125,24 +2126,24 @@ static void sl_handle_client_message(struct sl_context* ctx, if (changed[ATOM_NET_WM_STATE_FULLSCREEN]) { if (action == NET_WM_STATE_ADD) @@ -1631,7 +1630,7 @@ index ff066e1f3..3fbcde473 100644 } } } -@@ -2059,7 +2060,7 @@ static void sl_handle_focus_in(struct sl_context* ctx, +@@ -2155,7 +2156,7 @@ static void sl_handle_focus_in(struct sl_context* ctx, // window was realized. struct sl_window* parent = sl_lookup_window(ctx, window->transient_for); if (parent && parent->xdg_toplevel && window->xdg_toplevel) @@ -1640,7 +1639,7 @@ index ff066e1f3..3fbcde473 100644 } } -@@ -2277,9 +2278,9 @@ static void sl_handle_property_notify(struct sl_context* ctx, +@@ -2373,9 +2374,9 @@ static void sl_handle_property_notify(struct sl_context* ctx, return; if (window->name) { @@ -1650,9 +1649,9 @@ index ff066e1f3..3fbcde473 100644 - zxdg_toplevel_v6_set_title(window->xdg_toplevel, ""); + xdg_toplevel_set_title(window->xdg_toplevel, ""); } - } else if (event->atom == XCB_ATOM_WM_NORMAL_HINTS) { + } else if (event->atom == XCB_ATOM_WM_CLASS) { struct sl_window* window = sl_lookup_window(ctx, event->window); -@@ -2316,19 +2317,19 @@ static void sl_handle_property_notify(struct sl_context* ctx, +@@ -2427,19 +2428,19 @@ static void sl_handle_property_notify(struct sl_context* ctx, return; if (window->size_flags & P_MIN_SIZE) { @@ -1674,9 +1673,9 @@ index ff066e1f3..3fbcde473 100644 - zxdg_toplevel_v6_set_max_size(window->xdg_toplevel, 0, 0); + xdg_toplevel_set_max_size(window->xdg_toplevel, 0, 0); } - } else if (event->atom == ctx->atoms[ATOM_MOTIF_WM_HINTS].value) { + } else if (event->atom == XCB_ATOM_WM_HINTS) { struct sl_window* window = sl_lookup_window(ctx, event->window); -@@ -3377,7 +3378,7 @@ int main(int argc, char** argv) { +@@ -3530,7 +3531,7 @@ int main(int argc, char** argv) { .shm = NULL, .shell = NULL, .data_device_manager = NULL, @@ -1686,7 +1685,7 @@ index ff066e1f3..3fbcde473 100644 .viewporter = NULL, .linux_dmabuf = NULL, diff --git a/vm_tools/sommelier/sommelier.h b/vm_tools/sommelier/sommelier.h -index 40feb52c0..16aab1818 100644 +index b851b5c8d..7e6daf773 100644 --- a/vm_tools/sommelier/sommelier.h +++ b/vm_tools/sommelier/sommelier.h @@ -31,7 +31,7 @@ struct sl_shell; @@ -1698,7 +1697,7 @@ index 40feb52c0..16aab1818 100644 struct sl_subcompositor; struct sl_aura_shell; struct sl_viewporter; -@@ -96,7 +96,7 @@ struct sl_context { +@@ -99,7 +99,7 @@ struct sl_context { struct sl_shm* shm; struct sl_shell* shell; struct sl_data_device_manager* data_device_manager; @@ -1707,7 +1706,7 @@ index 40feb52c0..16aab1818 100644 struct sl_aura_shell* aura_shell; struct sl_viewporter* viewporter; struct sl_linux_dmabuf* linux_dmabuf; -@@ -356,11 +356,12 @@ struct sl_viewporter { +@@ -373,11 +373,12 @@ struct sl_viewporter { struct wp_viewporter* internal; }; @@ -1722,7 +1721,7 @@ index 40feb52c0..16aab1818 100644 }; struct sl_aura_shell { -@@ -458,9 +459,9 @@ struct sl_window { +@@ -476,9 +477,9 @@ struct sl_window { int max_height; struct sl_config next_config; struct sl_config pending_config; @@ -1735,7 +1734,7 @@ index 40feb52c0..16aab1818 100644 struct zaura_surface* aura_surface; struct wl_list link; }; -@@ -504,7 +505,7 @@ struct sl_global* sl_data_device_manager_global_create(struct sl_context* ctx); +@@ -522,7 +523,7 @@ struct sl_global* sl_data_device_manager_global_create(struct sl_context* ctx); struct sl_global* sl_viewporter_global_create(struct sl_context* ctx); diff --git a/pkgs/os-specific/linux/chromium-os/sommelier/default.nix b/pkgs/os-specific/linux/chromium-os/sommelier/default.nix index 400671d866a..635d07634c9 100644 --- a/pkgs/os-specific/linux/chromium-os/sommelier/default.nix +++ b/pkgs/os-specific/linux/chromium-os/sommelier/default.nix @@ -7,8 +7,8 @@ common-mk { platformSubdir = "vm_tools/sommelier"; platform2Patches = [ - ./0010-sommelier-don-t-leak-source-absolute-paths.patch - ./0011-sommelier-use-stable-xdg-shell-protocol.patch + ./0008-sommelier-don-t-leak-source-absolute-paths.patch + ./0009-sommelier-use-stable-xdg-shell-protocol.patch ]; buildInputs = [ diff --git a/pkgs/os-specific/linux/chromium-os/upstream-info.json b/pkgs/os-specific/linux/chromium-os/upstream-info.json index 50520c4881c..c4103d6f4c3 100644 --- a/pkgs/os-specific/linux/chromium-os/upstream-info.json +++ b/pkgs/os-specific/linux/chromium-os/upstream-info.json @@ -1,55 +1,55 @@ { - "version": "78.12499.0.0-rc1", + "version": "79.12607.0.0-rc4", "components": { "aosp/platform/external/libchrome": { "name": "libchrome", "url": "https://chromium.googlesource.com/aosp/platform/external/libchrome", - "rev": "f4736afd702d3f9ac65a2810a1fc472d964941b7", - "sha256": "1wry24ma855rbjnawkjqyjjp4p4rsv6fa8i63mlg3pp5j7bflzip", + "rev": "78e77b7f04d2d1be4868a9696c30e38be73b37cc", + "sha256": "0fq394hwdfi7zfiakcr4nqr40v6lajznq7ix6pgngd8fa8wrjmkr", "version": "462023" }, "aosp/platform/external/modp_b64": { "name": "modp_b64", "url": "https://chromium.googlesource.com/aosp/platform/external/modp_b64", - "rev": "afc3e28a3de4a627e3afaf73b4c55ed85c992470", - "sha256": "0cyvbdvnfcm958dglm0ci36v4np2fskkjxr8kzncgmhxpxdhkmwj" + "rev": "11a6fc258c6765a43b973b15e86fb4bce7675202", + "sha256": "06wjrqm7j6vkzlms1mj1czbdhsd8sxpyii43vqr456c2mzvrzr0n" }, "chromiumos/overlays/chromiumos-overlay": { "name": "chromiumos-overlay", "url": "https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay", - "rev": "63153be50fe6cbcd7126f9eed6b5bdda28526dae", - "sha256": "0v5b2mfrg8c927m073xhjcmgbn077s1gs36kvc7m23194y5wa75i" + "rev": "a02872323ae57e95572106a76255ac28a24dd34f", + "sha256": "07j5scnmcx95mp4wy1wnx20kawlhydc90cnp8andbvn7rjkz1fbk" }, "chromiumos/platform/crosvm": { "name": "crosvm", "url": "https://chromium.googlesource.com/chromiumos/platform/crosvm", - "rev": "0b86007d3e1ee400c6201c00b7dea323d661b50f", - "sha256": "1i3wf7f5ikly404ail161llghzw07wsalpdfdfpr5bs321yfkpsp" + "rev": "cfb7db44eb9e5a0bca9a22bfb985252ef74ab251", + "sha256": "0gm1ggyzh9qfizm36jmh71c3anygxj1840cm94h71kzg9kiw0330" }, "chromiumos/platform2": { "name": "platform2", "url": "https://chromium.googlesource.com/chromiumos/platform2", - "rev": "1a01bbebf957f4750021c6689eb65b9fc026338b", - "sha256": "1fyasgg2azixddnnsgfccnbjkpm2qbzjkvv22f298hv8qxhp32nr" + "rev": "dfa3da3447127dc941aacfee56617dd6ec7ae1c1", + "sha256": "1vgvapn0cn0g8n7h7l0f4n1jqnzb6hkcbkymr5dn0v2zb5s04inn" }, "chromiumos/third_party/adhd": { "name": "adhd", "url": "https://chromium.googlesource.com/chromiumos/third_party/adhd", - "rev": "72bf5919510c200fdd9a44ed223fd3a871908b49", - "sha256": "0fva5pfa8907qczf2lrinwbw60vvwfc9jv536p2lv86pb36q2vly" + "rev": "a8df1c52bde3bfd2aebc1d7adcd6f195eb212cb1", + "sha256": "1hyvnvwr5ka9zw4h7hhl6fpsfl2acp3zy4wr5qrw8s1cn8ljr9vy" }, "chromiumos/third_party/kernel": { "name": "kernel", "url": "https://chromium.googlesource.com/chromiumos/third_party/kernel", - "rev": "673c07c063fb4fc7d50078ba337e5acd7efca18c", - "sha256": "01qww3db1r5aw2r75xfv11qa8ysvwhcdw5sfmdwx1cc3l8j45m7g", - "version": "4.19.66" + "rev": "96bfeffb29ca01693d3b444c4e01eefaf5514055", + "sha256": "11svqzq01xv6p82dz8440kknz0bn1v2g3jhh00g73g4kyxr8lq62", + "version": "4.19.79" }, "chromiumos/third_party/modemmanager-next": { "name": "modemmanager-next", "url": "https://chromium.googlesource.com/chromiumos/third_party/modemmanager-next", - "rev": "5b752047977b69618f1b31bd08fd38de6f4f5ba3", - "sha256": "0369khzax3r3nxf7jx7d2ryv14xi5s5dz60f4ml4cxidcca20xcj" + "rev": "8eb16ade574b2292497e76c07b1ab0ee6e3dd44e", + "sha256": "0ss26bh3f8gzbrxxg6mkif6p9jf2l6m5kazvpr0qdzd8gqh9pca3" } } } |