)]}'
{
  "commit": "0ffd3658dcdc21a6c56d234cf2a6008487dcfaa7",
  "tree": "e91ad0942a47e826d91d8d6d6177868970cfaf22",
  "parents": [
    "e9f816b12b3e68de575d21e2a9b7d76e4e5c58ac"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Sun Jul 23 13:18:31 2023 -0700"
  },
  "committer": {
    "name": "Boringssl LUCI CQ",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon Jul 24 17:02:01 2023 +0000"
  },
  "message": "Use a stub fopen implementation when OPENSSL_NO_FILESYSTEM is set\n\nDetecting errors (i.e. fs-less platforms using fs-only APIs) at compile\ntime is generally preferable to doing so at runtime, so\nhttps://boringssl-review.googlesource.com/c/boringssl/+/61726 opted to\nremove the APIs altogether on applicable targets.\n\nHowever, Trusty uses rust-openssl somewhere and rust-openssl binds a\nbunch of filesystem-dependent APIs unconditionally. To keep that\nworking, switch to a stub fopen when OPENSSL_NO_FILESYSTEM is set. We\neffectively model a platform where the filesystem \"exists\", but is\nempty. Upstream OpenSSL similarly has OPENSSL_NO_STDIO still define the\nfile BIO (unlike the socket BIO, which is excluded), but in a stub form.\n\nAs part of this, I\u0027ve gone ahead and resolved one of the Trusty TODOs.\nIt does produce a duplicate symbol with [1], but things seem to link\nfine in treehugger. In case it does break, I\u0027ve bumped\nBORINGSSL_API_VERSION, so we can go in and condition it if needed.\n\n[1] https://android.googlesource.com/trusty/lib/+/refs/heads/main/lib/openssl-stubs/bio.c\n\nBug: 629\nChange-Id: I4f20d872a7cde863d21c78090f270b77b03545fa\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/61925\nCommit-Queue: Bob Beck \u003cbbe@google.com\u003e\nAuto-Submit: David Benjamin \u003cdavidben@google.com\u003e\nReviewed-by: Bob Beck \u003cbbe@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f0801ba9e2006a8a78b7473650ebb9eb276df5bc",
      "old_mode": 33188,
      "old_path": "crypto/bio/file.c",
      "new_id": "dd11e503094f19a5ab9b06df2497c6f679f2ed69",
      "new_mode": 33188,
      "new_path": "crypto/bio/file.c"
    },
    {
      "type": "modify",
      "old_id": "18bec19aabd4a3513fc63e0a57cfb12aafb8b722",
      "old_mode": 33188,
      "old_path": "crypto/conf/conf.c",
      "new_id": "ca950d6284e7893ce40443c9ec132551580628d2",
      "new_mode": 33188,
      "new_path": "crypto/conf/conf.c"
    },
    {
      "type": "modify",
      "old_id": "95a69bf0d6579f96bffe9fa3390a26a20cc34955",
      "old_mode": 33188,
      "old_path": "crypto/x509/by_dir.c",
      "new_id": "57b3a835117801cf0c1e73dbc944d2d8b825e94f",
      "new_mode": 33188,
      "new_path": "crypto/x509/by_dir.c"
    },
    {
      "type": "modify",
      "old_id": "33bd9781928dae0e988902b149fe24987096dc3f",
      "old_mode": 33188,
      "old_path": "crypto/x509/by_file.c",
      "new_id": "2c83137b1e0313c41b9b7a8517f138c9e7e16465",
      "new_mode": 33188,
      "new_path": "crypto/x509/by_file.c"
    },
    {
      "type": "modify",
      "old_id": "7db1d2f340fb84e9ebc0a6fd8e39a1610c5443e7",
      "old_mode": 33188,
      "old_path": "crypto/x509/x509_d2.c",
      "new_id": "269f56fefb6fe38529e2e78e0986a3709b34f137",
      "new_mode": 33188,
      "new_path": "crypto/x509/x509_d2.c"
    },
    {
      "type": "modify",
      "old_id": "38d64742a12242ac794107e99f41dcb6f8834f1c",
      "old_mode": 33188,
      "old_path": "include/openssl/base.h",
      "new_id": "87ffe214b826fdabfb2fb5b1421a0de2a42688cc",
      "new_mode": 33188,
      "new_path": "include/openssl/base.h"
    },
    {
      "type": "modify",
      "old_id": "ce139cccfd7789344759db06d9967b247aa36058",
      "old_mode": 33188,
      "old_path": "include/openssl/bio.h",
      "new_id": "707a4b1553c598cc3ca2470a2a2a31aeed594c3a",
      "new_mode": 33188,
      "new_path": "include/openssl/bio.h"
    },
    {
      "type": "modify",
      "old_id": "f217e980ff9881a8fb5b844717fdee383ba74bde",
      "old_mode": 33188,
      "old_path": "include/openssl/conf.h",
      "new_id": "c9027c1db5a62f22d613ffae30ce0219caa9fbe6",
      "new_mode": 33188,
      "new_path": "include/openssl/conf.h"
    },
    {
      "type": "modify",
      "old_id": "4aba1051a61f8159bf97438433f1c3eae46cde15",
      "old_mode": 33188,
      "old_path": "include/openssl/ssl.h",
      "new_id": "6f35e6bcedabf3cf2043bbd8a4dbd8718ce7b381",
      "new_mode": 33188,
      "new_path": "include/openssl/ssl.h"
    },
    {
      "type": "modify",
      "old_id": "7ce29180f4f070c1533e1e73a843c140a03397ed",
      "old_mode": 33188,
      "old_path": "include/openssl/x509.h",
      "new_id": "0334457953834625c7e3d87ac2a7b8d486a2fdb7",
      "new_mode": 33188,
      "new_path": "include/openssl/x509.h"
    },
    {
      "type": "modify",
      "old_id": "0071153ce0800e81adad3ee22f605c560c8eb523",
      "old_mode": 33188,
      "old_path": "ssl/ssl_file.cc",
      "new_id": "2b596b20a0720943ce8fe6e58a79d90a88728bcc",
      "new_mode": 33188,
      "new_path": "ssl/ssl_file.cc"
    },
    {
      "type": "modify",
      "old_id": "5514cf2030ebe55aedc99dde4ba68712d7b5375b",
      "old_mode": 33188,
      "old_path": "ssl/ssl_x509.cc",
      "new_id": "e4b3775b316cede49c1fd22d6596785411d98f2f",
      "new_mode": 33188,
      "new_path": "ssl/ssl_x509.cc"
    }
  ]
}
