)]}'
{
  "commit": "7052381409b223f303b6cb6e69b89180ba841e2c",
  "tree": "f5af96ef96df4fcacd6344f4a04a4f41b038ced0",
  "parents": [
    "e29a0a11ab646d3095707d6be8b41beb5b6a621b"
  ],
  "author": {
    "name": "Willy Tu",
    "email": "wltu@google.com",
    "time": "Fri Sep 04 09:21:00 2026 +0000"
  },
  "committer": {
    "name": "Willy Tu",
    "email": "wltu@google.com",
    "time": "Thu Sep 10 10:02:55 2026 -0700"
  },
  "message": "grpc: Separate unsecure and channelz packages\n\nCurrently, the grpc recipe packages all runtime shared libraries into\nthe main ${PN} package. This pulls libgrpc_unsecure, libgrpc++_unsecure,\nand libgrpcpp_channelz into any target image installing grpc. Target\nbinaries linking against gRPC (e.g. bmcweb) link against standard\nlibgrpc and libgrpc++, which support both secure (TLS) and insecure\nplaintext channels via grpc::InsecureChannelCredentials(). No binaries\nin target images have a DT_NEEDED dependency on the unsecure variants.\nAdditionally, an ELF dependency audit confirmed that zero binaries or\nlibraries in the target root filesystem reference libgrpcpp_channelz.\nSplit libgrpc*_unsecure.so.* into ${PN}-unsecure and\nlibgrpcpp_channelz.so.* into ${PN}-channelz via PACKAGE_BEFORE_PN.\nPackages that explicitly require these variants can declare an RDEPENDS\non grpc-unsecure or grpc-channelz. On flash-constrained 64MB SPI NOR\nplatforms, this removes ~9.5–10 MB of uncompressed shared libraries\n(~2.5–2.7 MB compressed in squashfs-xz), substantially expanding free\nflash headroom.\n\nTested:\n- platform17 (64MB SPI NOR, NPCM845x / Cortex-A35):\n  - Built obmc-phosphor-image\n  - Verified libgrpc*_unsecure.so.* and libgrpcpp_channelz.so.* are\n    absent from target /usr/lib\n  - cr51-image-layout.json:\n    - rofs reduced from 52.94 MB (55,508,992 B) to 50.44 MB (52887552 B)\n    - empty margin expanded from 64 KB (65,536 B) to 2.56 MB (2686976 B)\n      (41x increase)\n- platform11 (64MB SPI NOR, NPCM730 / ARMv7a):\n  - Built obmc-phosphor-image\n  - Rootfs gRPC footprint dropped from 26.22 MB (27,491,164 B) to\n    16.72 MB (17,537,196 B) uncompressed (-9.49 MB)\n  - cr51-image-layout.json:\n    - rofs reduced from 53.81 MB (56,426,496 B) to 51.13 MB\n      (53608448 B) (-2.69 MB)\n    - empty margin expanded from 256 KB (262,144 B) to 2.94 MB\n      (3080192 B) (11.7x increase)\n\n- platform5: http://fusion2/07e96813-e509-357b-9acc-3a83d536a660\n- platform15: http://fusion2/4a4d37e8-3a24-3011-b5d9-9667cf1f52d7\n- platform18: http://fusion2/039f9c31-1433-329f-9a4a-9de8c7e7c535\n- platform17: http://fusion2/4d77663a-81d3-3140-813c-82eb267aa42a\n- platform11+ext: http://fusion2/96c53567-d19e-3509-9163-7e7978c4a6a6\n- platform11: http://fusion2/d650156d-7e78-3c70-93d6-56bea6a393f5\n- platform25: http://fusion2/b68d4d26-157e-3ded-86ec-6d69f216ba56\nGoogle-Bug-Id: 425362808\nChange-Id: I031bbf6d526f9097b0d5ed460fbf96c589b247de\nSigned-off-by: Willy Tu \u003cwltu@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c595577c937fa876b50e4e59f208ed539f3360f9",
      "old_mode": 33188,
      "old_path": "recipes-devtools/grpc/grpc_%.bbappend",
      "new_id": "ec5aa851446d74b449f944cd922028c83394a4f2",
      "new_mode": 33188,
      "new_path": "recipes-devtools/grpc/grpc_%.bbappend"
    }
  ]
}
