[cmc] Remove services from restricted_features
Services are now GA, no need to restrict them any longer.
Change-Id: Id5cc620d2c7b48344cdd777758ca628c1583bc49
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/693827
Commit-Queue: Gary Bressler <geb@google.com>
Reviewed-by: Shai Barack <shayba@google.com>
Reviewed-by: Yegor Pomortsev <ypomortsev@google.com>
diff --git a/build/drivers/fuchsia_driver_component.gni b/build/drivers/fuchsia_driver_component.gni
index ae1737d4..c7fab80 100644
--- a/build/drivers/fuchsia_driver_component.gni
+++ b/build/drivers/fuchsia_driver_component.gni
@@ -229,7 +229,6 @@
if (!defined(restricted_features)) {
restricted_features = []
}
- restricted_features += [ "services" ]
}
if (!defined(deps)) {
deps = []
diff --git a/docs/development/components/build.md b/docs/development/components/build.md
index 3e69aca..db56374 100644
--- a/docs/development/components/build.md
+++ b/docs/development/components/build.md
@@ -1071,8 +1071,8 @@
```gn
fuchsia_component("my-component") {
manifest = "meta/my-component.cml"
- # This component opts-in to the restricted "services" feature.
- restricted_features = [ "services" ]
+ # This component opts-in to the restricted "allow_long_names" feature.
+ restricted_features = [ "allow_long_names" ]
deps = [ ... ]
}
```
diff --git a/examples/components/services/BUILD.gn b/examples/components/services/BUILD.gn
index 5aaefc7..da5ccb7 100644
--- a/examples/components/services/BUILD.gn
+++ b/examples/components/services/BUILD.gn
@@ -57,14 +57,12 @@
testonly = true
component_name = "services"
manifest = "meta/services.cml"
- restricted_features = [ "services" ]
}
fuchsia_component("branch-cmp") {
testonly = true
component_name = "branch"
manifest = "meta/branch.cml"
- restricted_features = [ "services" ]
deps = [ ":branch-bin" ]
}
@@ -72,7 +70,6 @@
testonly = true
component_name = "provider-a"
manifest = "meta/provider-a.cml"
- restricted_features = [ "services" ]
deps = [ ":provider-bin" ]
}
@@ -80,7 +77,6 @@
testonly = true
component_name = "provider-b"
manifest = "meta/provider-b.cml"
- restricted_features = [ "services" ]
deps = [ ":provider-bin" ]
}
diff --git a/examples/drivers/v2/demo-number/BUILD.gn b/examples/drivers/v2/demo-number/BUILD.gn
index d3eae96..74663b1 100644
--- a/examples/drivers/v2/demo-number/BUILD.gn
+++ b/examples/drivers/v2/demo-number/BUILD.gn
@@ -37,7 +37,6 @@
manifest = "meta/demo_number.cml"
deps = [ ":driver" ]
info = "component-info.json"
- restricted_features = [ "services" ]
}
test("demo_number_test") {
diff --git a/examples/fidl/echo-realm/BUILD.gn b/examples/fidl/echo-realm/BUILD.gn
index 76703a8..cdf1450 100644
--- a/examples/fidl/echo-realm/BUILD.gn
+++ b/examples/fidl/echo-realm/BUILD.gn
@@ -8,7 +8,6 @@
# Realm component used to launch FIDL examples
fuchsia_component("echo_realm") {
manifest = "meta/echo_realm.cml"
- restricted_features = [ "services" ]
}
# Integration testing components for FIDL examples
diff --git a/examples/fidl/hlcpp/services/client/BUILD.gn b/examples/fidl/hlcpp/services/client/BUILD.gn
index 2bb88ae..3b4b380 100644
--- a/examples/fidl/hlcpp/services/client/BUILD.gn
+++ b/examples/fidl/hlcpp/services/client/BUILD.gn
@@ -20,5 +20,4 @@
component_name = "echo_client"
manifest = "meta/client.cml"
deps = [ ":bin" ]
- restricted_features = [ "services" ]
}
diff --git a/examples/fidl/hlcpp/services/server/BUILD.gn b/examples/fidl/hlcpp/services/server/BUILD.gn
index a7d96af..aadc413 100644
--- a/examples/fidl/hlcpp/services/server/BUILD.gn
+++ b/examples/fidl/hlcpp/services/server/BUILD.gn
@@ -20,5 +20,4 @@
component_name = "echo_server"
manifest = "meta/server.cml"
deps = [ ":bin" ]
- restricted_features = [ "services" ]
}
diff --git a/examples/fidl/llcpp/services/client/BUILD.gn b/examples/fidl/llcpp/services/client/BUILD.gn
index 50f8465..0b5e6b6 100644
--- a/examples/fidl/llcpp/services/client/BUILD.gn
+++ b/examples/fidl/llcpp/services/client/BUILD.gn
@@ -21,5 +21,4 @@
component_name = "echo_client"
manifest = "meta/client.cml"
deps = [ ":bin" ]
- restricted_features = [ "services" ]
}
diff --git a/examples/fidl/llcpp/services/server/BUILD.gn b/examples/fidl/llcpp/services/server/BUILD.gn
index a63056f..3b51ea1 100644
--- a/examples/fidl/llcpp/services/server/BUILD.gn
+++ b/examples/fidl/llcpp/services/server/BUILD.gn
@@ -25,5 +25,4 @@
component_name = "echo_server"
manifest = "meta/server.cml"
deps = [ ":bin" ]
- restricted_features = [ "services" ]
}
diff --git a/examples/fidl/rust/services/client/BUILD.gn b/examples/fidl/rust/services/client/BUILD.gn
index c7c5414..dd2338a 100644
--- a/examples/fidl/rust/services/client/BUILD.gn
+++ b/examples/fidl/rust/services/client/BUILD.gn
@@ -26,5 +26,4 @@
component_name = "echo_client"
manifest = "meta/client.cml"
deps = [ ":bin" ]
- restricted_features = [ "services" ]
}
diff --git a/examples/fidl/rust/services/server/BUILD.gn b/examples/fidl/rust/services/server/BUILD.gn
index 886138a..d18b6be 100644
--- a/examples/fidl/rust/services/server/BUILD.gn
+++ b/examples/fidl/rust/services/server/BUILD.gn
@@ -26,5 +26,4 @@
component_name = "echo_server"
manifest = "meta/server.cml"
deps = [ ":bin" ]
- restricted_features = [ "services" ]
}
diff --git a/sdk/lib/sys/component/cpp/tests/BUILD.gn b/sdk/lib/sys/component/cpp/tests/BUILD.gn
index e58e64c..88b4d07 100644
--- a/sdk/lib/sys/component/cpp/tests/BUILD.gn
+++ b/sdk/lib/sys/component/cpp/tests/BUILD.gn
@@ -203,7 +203,6 @@
testonly = true
deps = [ ":echo_service_server_bin" ]
manifest = "meta/echo_service_server.cml"
- restricted_features = [ "services" ]
}
fuchsia_component("echo_server_legacy") {
diff --git a/sdk/lib/sys/component/llcpp/tests/BUILD.gn b/sdk/lib/sys/component/llcpp/tests/BUILD.gn
index 5de78de..c9b18d9 100644
--- a/sdk/lib/sys/component/llcpp/tests/BUILD.gn
+++ b/sdk/lib/sys/component/llcpp/tests/BUILD.gn
@@ -64,7 +64,6 @@
testonly = true
deps = [ ":llcpp_echo_service_server_bin" ]
manifest = "meta/llcpp_echo_service_server.cml"
- restricted_features = [ "services" ]
}
fuchsia_component("outgoing_directory_test") {
diff --git a/src/devices/tests/v2/composite/BUILD.gn b/src/devices/tests/v2/composite/BUILD.gn
index 1555c44a..1886261 100644
--- a/src/devices/tests/v2/composite/BUILD.gn
+++ b/src/devices/tests/v2/composite/BUILD.gn
@@ -47,7 +47,6 @@
manifest = "meta/root.cml"
deps = [ ":root_driver" ]
info = "root-info.json"
- restricted_features = [ "services" ]
}
driver_bind_rules("composite_leaf_bind") {
@@ -74,7 +73,6 @@
manifest = "meta/leaf.cml"
deps = [ ":leaf_driver" ]
info = "leaf-info.json"
- restricted_features = [ "services" ]
}
rustc_test("bin") {
diff --git a/src/devices/tests/v2/interop/BUILD.gn b/src/devices/tests/v2/interop/BUILD.gn
index feb438b..db040e1 100644
--- a/src/devices/tests/v2/interop/BUILD.gn
+++ b/src/devices/tests/v2/interop/BUILD.gn
@@ -49,7 +49,6 @@
manifest = "meta/root.cml"
deps = [ ":root_driver" ]
info = "root-info.json"
- restricted_features = [ "services" ]
}
driver_bind_rules("interop_v1_bind") {
diff --git a/src/devices/tests/v2/services/BUILD.gn b/src/devices/tests/v2/services/BUILD.gn
index b3a2062..7214fb1 100644
--- a/src/devices/tests/v2/services/BUILD.gn
+++ b/src/devices/tests/v2/services/BUILD.gn
@@ -38,7 +38,6 @@
fuchsia_driver_component("root") {
testonly = true
manifest = "meta/root.cml"
- restricted_features = [ "services" ]
deps = [ ":root_driver" ]
info = "root-info.json"
}
@@ -73,10 +72,7 @@
fuchsia_test_component("realm") {
manifest = "${target_out_dir}/realm.cml"
- restricted_features = [
- "dynamic_offers",
- "services",
- ]
+ restricted_features = [ "dynamic_offers" ]
manifest_deps = [ ":realm.cml" ]
}
diff --git a/src/storage/ext4/server/BUILD.gn b/src/storage/ext4/server/BUILD.gn
index 0ddd399..013feff 100644
--- a/src/storage/ext4/server/BUILD.gn
+++ b/src/storage/ext4/server/BUILD.gn
@@ -74,7 +74,6 @@
fuchsia_component("ext4_readonly_comp") {
component_name = "ext4_readonly"
manifest = "meta/ext4_readonly.cml"
- restricted_features = [ "services" ]
deps = [ ":bin" ]
}
@@ -102,7 +101,6 @@
testonly = true
component_name = "ext4_server_integration_test"
manifest = "meta/ext4_server_integration_test.cml"
- restricted_features = [ "services" ]
deps = [
":ext4_server_integration_test",
"//src/lib/storage/ramdevice_client:ramdisk-isolated-devmgr-component",
diff --git a/src/sys/component_manager/tests/services/BUILD.gn b/src/sys/component_manager/tests/services/BUILD.gn
index a7a5e78..86db921 100644
--- a/src/sys/component_manager/tests/services/BUILD.gn
+++ b/src/sys/component_manager/tests/services/BUILD.gn
@@ -33,7 +33,6 @@
fuchsia_test_component("service-routing-branch") {
manifest = "meta/service-routing-branch.cml"
- restricted_features = [ "services" ]
deps = [ ":service-routing-branch-bin" ]
}
@@ -64,7 +63,6 @@
fuchsia_test_component("service-routing-test") {
manifest = "meta/service-routing-test.cml"
- restricted_features = [ "services" ]
deps = [ ":service-routing-test-bin" ]
}
@@ -96,10 +94,7 @@
fuchsia_test_component("filtered-service-routing-test") {
manifest = "meta/filtered-service-routing-test.cml"
- restricted_features = [
- "services",
- "dynamic_offers",
- ]
+ restricted_features = [ "dynamic_offers" ]
deps = [ ":filtered-service-routing-test-bin" ]
}
@@ -127,7 +122,6 @@
fuchsia_test_component("echo-service-client") {
manifest = "meta/echo-service-client.cml"
- restricted_features = [ "services" ]
deps = [ ":service-routing-client-bin" ]
}
@@ -151,7 +145,6 @@
fuchsia_test_component("multi-instance-echo-provider") {
manifest = "meta/multi-instance-echo-provider.cml"
- restricted_features = [ "services" ]
deps = [ ":multi_instance_echo_service_bin" ]
}
diff --git a/src/sys/component_manager/tests/structured_config/client_integration/cpp_driver/BUILD.gn b/src/sys/component_manager/tests/structured_config/client_integration/cpp_driver/BUILD.gn
index d8f4a70..ff9b123 100644
--- a/src/sys/component_manager/tests/structured_config/client_integration/cpp_driver/BUILD.gn
+++ b/src/sys/component_manager/tests/structured_config/client_integration/cpp_driver/BUILD.gn
@@ -39,7 +39,6 @@
testonly = true
component_name = "cpp_driver_receiver"
manifest = "meta/receiver.cml"
- restricted_features = [ "services" ]
}
fuchsia_driver_component("receiver_component") {
@@ -100,10 +99,7 @@
fuchsia_test_component("realm") {
manifest = "${target_out_dir}/realm.cml"
- restricted_features = [
- "dynamic_offers",
- "services",
- ]
+ restricted_features = [ "dynamic_offers" ]
manifest_deps = [ ":realm.cml" ]
}
diff --git a/src/ui/input/drivers/hid-input-report/BUILD.gn b/src/ui/input/drivers/hid-input-report/BUILD.gn
index 2c92c13..ca870343 100644
--- a/src/ui/input/drivers/hid-input-report/BUILD.gn
+++ b/src/ui/input/drivers/hid-input-report/BUILD.gn
@@ -92,7 +92,6 @@
manifest = "meta/hid-input-report.cml"
deps = [ ":hid-input-report-driver-v2" ]
info = "hid-input-report-info.json"
- restricted_features = [ "services" ]
}
test("hid-input-report-test-bin") {
diff --git a/tools/cmc/BUILD.gn b/tools/cmc/BUILD.gn
index 75eacc8..c3a5c3e 100644
--- a/tools/cmc/BUILD.gn
+++ b/tools/cmc/BUILD.gn
@@ -97,7 +97,6 @@
fuchsia_component_manifest("example_component_manifest") {
testonly = true
restricted_features = [
- "services",
"dynamic_offers",
"allow_long_names",
]
diff --git a/tools/cmc/build/restricted_features/BUILD.gn b/tools/cmc/build/restricted_features/BUILD.gn
index 549bc6e..cc4a408 100644
--- a/tools/cmc/build/restricted_features/BUILD.gn
+++ b/tools/cmc/build/restricted_features/BUILD.gn
@@ -2,12 +2,6 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-# The allowlist of components that can use the "services" feature in CML.
-group("services") {
- # This allowlist is empty as all drivers are using services.
- # This group still exists because a component has to manually opt-in to services.
-}
-
# The allowlist of components that can use the "dynamic_offers" feature in CML.
group("dynamic_offers") {
visibility = [
diff --git a/tools/cmc/src/compile.rs b/tools/cmc/src/compile.rs
index b14a0a8..832f8dc2 100644
--- a/tools/cmc/src/compile.rs
+++ b/tools/cmc/src/compile.rs
@@ -170,7 +170,7 @@
fdecl::Component::EMPTY
}
- test_compile_with_features! { FeatureSet::from(vec![Feature::Services]), {
+ test_compile_with_features! { FeatureSet::from(vec![]), {
test_compile_service_capabilities => {
input = json!({
"capabilities": [
diff --git a/tools/cmc/src/features.rs b/tools/cmc/src/features.rs
index ef2fe9cc..e939dda 100644
--- a/tools/cmc/src/features.rs
+++ b/tools/cmc/src/features.rs
@@ -40,9 +40,6 @@
/// A feature that can be enabled/opt-into.
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Feature {
- /// Enables unified services support in CML.
- Services,
-
/// Allows `ComponentDecl.allowed_offers` to be specified in CML.
DynamicOffers,
@@ -60,7 +57,6 @@
type Err = String;
fn from_str(s: &str) -> Result<Self, Self::Err> {
match s {
- "services" => Ok(Feature::Services),
"dynamic_offers" => Ok(Feature::DynamicOffers),
"structured_config" => Ok(Feature::StructuredConfig),
"hub" => Ok(Feature::Hub),
@@ -73,7 +69,6 @@
impl fmt::Display for Feature {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
f.write_str(match self {
- Feature::Services => "services",
Feature::DynamicOffers => "dynamic_offers",
Feature::StructuredConfig => "structured_config",
Feature::Hub => "hub",
@@ -88,7 +83,6 @@
#[test]
fn feature_is_parsed() {
- assert_eq!(Feature::Services, "services".parse::<Feature>().unwrap());
assert_eq!(Feature::DynamicOffers, "dynamic_offers".parse::<Feature>().unwrap());
assert_eq!(Feature::StructuredConfig, "structured_config".parse::<Feature>().unwrap());
assert_eq!(Feature::Hub, "hub".parse::<Feature>().unwrap());
@@ -97,7 +91,6 @@
#[test]
fn feature_is_printed() {
- assert_eq!("services", Feature::Services.to_string());
assert_eq!("dynamic_offers", Feature::DynamicOffers.to_string());
assert_eq!("structured_config", Feature::StructuredConfig.to_string());
assert_eq!("hub", Feature::Hub.to_string());
@@ -107,18 +100,18 @@
#[test]
fn feature_set_has() {
let set = FeatureSet::empty();
- assert!(!set.has(&Feature::Services));
+ assert!(!set.has(&Feature::DynamicOffers));
- let set = FeatureSet::from(vec![Feature::Services]);
- assert!(set.has(&Feature::Services));
+ let set = FeatureSet::from(vec![Feature::DynamicOffers]);
+ assert!(set.has(&Feature::DynamicOffers));
}
#[test]
fn feature_set_check() {
let set = FeatureSet::empty();
- assert_matches!(set.check(Feature::Services), Err(Error::RestrictedFeature(f)) if f == "services");
+ assert_matches!(set.check(Feature::DynamicOffers), Err(Error::RestrictedFeature(f)) if f == "dynamic_offers");
- let set = FeatureSet::from(vec![Feature::Services]);
- assert_matches!(set.check(Feature::Services), Ok(()));
+ let set = FeatureSet::from(vec![Feature::DynamicOffers]);
+ assert_matches!(set.check(Feature::DynamicOffers), Ok(()));
}
}
diff --git a/tools/cmc/src/validate.rs b/tools/cmc/src/validate.rs
index e7b1f92..343641e3 100644
--- a/tools/cmc/src/validate.rs
+++ b/tools/cmc/src/validate.rs
@@ -345,9 +345,6 @@
capability: &'a cml::Capability,
used_ids: &mut HashMap<String, cml::CapabilityId>,
) -> Result<(), Error> {
- if capability.service.is_some() {
- self.features.check(Feature::Services)?;
- }
if capability.directory.is_some() && capability.path.is_none() {
return Err(Error::validate("\"path\" should be present with \"directory\""));
}
@@ -407,7 +404,6 @@
strong_dependencies: &mut DirectedGraph<DependencyNode<'a>>,
) -> Result<(), Error> {
if use_.service.is_some() {
- self.features.check(Feature::Services)?;
if use_.r#as.is_some() {
return Err(Error::validate("\"as\" cannot be used with \"service\""));
}
@@ -601,7 +597,6 @@
// Ensure that services exposed from self are defined in `capabilities`.
if let Some(service) = expose.service.as_ref() {
- self.features.check(Feature::Services)?;
for service in service {
if expose.from.iter().any(|r| *r == cml::ExposeFromRef::Self_) {
if !self.all_services.contains(service) {
@@ -752,7 +747,6 @@
// Ensure that services offered from self are defined in `services`.
if let Some(service) = offer.service.as_ref() {
- self.features.check(Feature::Services)?;
for service in service {
if offer.from.iter().any(|r| *r == cml::OfferFromRef::Self_) {
if !self.all_services.contains(service) {
@@ -5329,8 +5323,8 @@
),
}
- // Tests the use of services when the "services" feature is set.
- test_validate_cml_with_feature! { FeatureSet::from(vec![Feature::Services]), {
+ // Tests for services.
+ test_validate_cml! {
test_cml_validate_use_service(
json!({
"use": [
@@ -5569,55 +5563,6 @@
}),
Ok(())
),
- }}
-
- // Tests that the use of services fail when the "services" feature is not set.
- test_validate_cml! {
- test_cml_use_service_without_feature(
- json!({
- "use": [
- { "service": "my.service.Service" },
- ],
- }),
- Err(Error::RestrictedFeature(s)) if s == "services"
- ),
- test_cml_offer_service_without_feature(
- json!({
- "offer": [
- {
- "service": "my.service.Service",
- "from": "parent",
- "to": [ "#child" ],
- },
- ],
- "children": [
- { "name": "child", "url": "fuchsia-pkg://child" }
- ],
- }),
- Err(Error::RestrictedFeature(s)) if s == "services"
- ),
- test_cml_expose_service_without_feature(
- json!({
- "expose": [
- {
- "service": "my.service.Service",
- "from": "#child",
- },
- ],
- "children": [
- { "name": "child", "url": "fuchsia-pkg://child" }
- ],
- }),
- Err(Error::RestrictedFeature(s)) if s == "services"
- ),
- test_cml_capability_service_without_feature(
- json!({
- "capabilities": [
- { "service": "my.service.Service" },
- ]
- }),
- Err(Error::RestrictedFeature(s)) if s == "services"
- ),
}
// Tests structured config when the feature is enabled