)]}'
{
  "log": [
    {
      "commit": "7b5267099855d320f6013d667d113e3619f18bf5",
      "tree": "889504eb703afbe747c7ecffed022b881c083175",
      "parents": [
        "f5b79e7fa24fcd2327660e157ff42c0300ea41f6",
        "2e862a2a4223e7e455683f40a0fa9219ca60cdb6"
      ],
      "author": {
        "name": "Radu Vele",
        "email": "raduvele@google.com",
        "time": "Thu Nov 14 22:05:18 2024 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Nov 14 22:05:18 2024 +0000"
      },
      "message": "Merge \"Add a new target for clients running at Android OS level\" into main am: e55e171550 am: 2e862a2a42\n\nOriginal change: https://android-review.googlesource.com/c/platform/external/libusb/+/3317235\n\nChange-Id: I95e09d2eadfdab6fec96a62502d4c5adf220c913\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "2e862a2a4223e7e455683f40a0fa9219ca60cdb6",
      "tree": "889504eb703afbe747c7ecffed022b881c083175",
      "parents": [
        "b0a4eed10343946d84877181aab2b62974dd5dd0",
        "e55e17155068304c17d869a0a4f58e721186123f"
      ],
      "author": {
        "name": "Radu Vele",
        "email": "raduvele@google.com",
        "time": "Thu Nov 14 21:36:32 2024 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Nov 14 21:36:32 2024 +0000"
      },
      "message": "Merge \"Add a new target for clients running at Android OS level\" into main am: e55e171550\n\nOriginal change: https://android-review.googlesource.com/c/platform/external/libusb/+/3317235\n\nChange-Id: I66b57c1c75e8d1c50934b60238c1636690db7807\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "e55e17155068304c17d869a0a4f58e721186123f",
      "tree": "889504eb703afbe747c7ecffed022b881c083175",
      "parents": [
        "c615e3ab2e9c6d8540a8d4b60bfcfa59fffeeed2",
        "94da7f9496c0a60e6252154cb4167e1805185414"
      ],
      "author": {
        "name": "Radu Vele",
        "email": "raduvele@google.com",
        "time": "Thu Nov 14 20:51:27 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 14 20:51:27 2024 +0000"
      },
      "message": "Merge \"Add a new target for clients running at Android OS level\" into main"
    },
    {
      "commit": "94da7f9496c0a60e6252154cb4167e1805185414",
      "tree": "889504eb703afbe747c7ecffed022b881c083175",
      "parents": [
        "c615e3ab2e9c6d8540a8d4b60bfcfa59fffeeed2"
      ],
      "author": {
        "name": "Radu Vele",
        "email": "raduvele@google.com",
        "time": "Tue Oct 22 18:37:23 2024 +0000"
      },
      "committer": {
        "name": "Radu",
        "email": "raduvele@google.com",
        "time": "Thu Nov 14 17:27:37 2024 +0000"
      },
      "message": "Add a new target for clients running at Android OS level\n\nIntroducing a new target that sets the ANDROID_OS flag.\nThe flag indicates that the library is built for a client\nrunning at OS-level such as adbd.\n\nThis was added to provide a way for Android processes with\nthe necessary permisssions to listen to libusb hotplug events\nthrough netlink.\n\nRelated discussions on the libusb repository:\n- https://github.com/libusb/libusb/pull/1577\n- https://github.com/libusb/libusb/pull/1168\n- https://github.com/libusb/libusb/commit \\\n  /2f3bc98b0d0f4766496df53c855685a5f0e5e7cf\n\nTest: TreeHugger\nChange-Id: Ib93a0a246123eb2ecb630f79b318de2fdfa78ebb\n"
    },
    {
      "commit": "f5b79e7fa24fcd2327660e157ff42c0300ea41f6",
      "tree": "1e749a50108f1a07bbb39fa4cac3369b6f166f2e",
      "parents": [
        "8b2bbce9f859ea4b5a816a1a4a4466b5da8a5297",
        "b0a4eed10343946d84877181aab2b62974dd5dd0"
      ],
      "author": {
        "name": "Radu Vele",
        "email": "raduvele@google.com",
        "time": "Thu Nov 14 12:20:42 2024 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Nov 14 12:20:42 2024 +0000"
      },
      "message": "Merge \"Upgrade libusb to de38189e8014fa393f4d8c1d9d3fdf5e2a95899d\" into main am: c615e3ab2e am: b0a4eed103\n\nOriginal change: undetermined\n\nChange-Id: I0544422aec5c172ed8d8825ac2cb41a896cf24f1\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "b0a4eed10343946d84877181aab2b62974dd5dd0",
      "tree": "1e749a50108f1a07bbb39fa4cac3369b6f166f2e",
      "parents": [
        "8b2bbce9f859ea4b5a816a1a4a4466b5da8a5297",
        "c615e3ab2e9c6d8540a8d4b60bfcfa59fffeeed2"
      ],
      "author": {
        "name": "Radu Vele",
        "email": "raduvele@google.com",
        "time": "Thu Nov 14 11:55:56 2024 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Nov 14 11:55:56 2024 +0000"
      },
      "message": "Merge \"Upgrade libusb to de38189e8014fa393f4d8c1d9d3fdf5e2a95899d\" into main am: c615e3ab2e\n\nOriginal change: undetermined\n\nChange-Id: Ib7e3df9e3468773007e7751f4f613745a04835a3\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "c615e3ab2e9c6d8540a8d4b60bfcfa59fffeeed2",
      "tree": "1e749a50108f1a07bbb39fa4cac3369b6f166f2e",
      "parents": [
        "8b2bbce9f859ea4b5a816a1a4a4466b5da8a5297",
        "505250bdae4f55903cf0993e2864ba2e11369e95"
      ],
      "author": {
        "name": "Radu Vele",
        "email": "raduvele@google.com",
        "time": "Thu Nov 14 11:21:11 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 14 11:21:11 2024 +0000"
      },
      "message": "Merge \"Upgrade libusb to de38189e8014fa393f4d8c1d9d3fdf5e2a95899d\" into main"
    },
    {
      "commit": "505250bdae4f55903cf0993e2864ba2e11369e95",
      "tree": "1e749a50108f1a07bbb39fa4cac3369b6f166f2e",
      "parents": [
        "8b2bbce9f859ea4b5a816a1a4a4466b5da8a5297",
        "de38189e8014fa393f4d8c1d9d3fdf5e2a95899d"
      ],
      "author": {
        "name": "Radu",
        "email": "raduvele@google.com",
        "time": "Thu Nov 14 08:13:54 2024 +0000"
      },
      "committer": {
        "name": "Radu",
        "email": "raduvele@google.com",
        "time": "Thu Nov 14 08:13:54 2024 +0000"
      },
      "message": "Upgrade libusb to de38189e8014fa393f4d8c1d9d3fdf5e2a95899d\n\nThis project was upgraded with external_updater.\nUsage: tools/external_updater/updater.sh update external/libusb\nFor more info, check https://cs.android.com/android/platform/superproject/main/+/main:tools/external_updater/README.md\n\nTest: TreeHugger\nChange-Id: I5a0adadeb9528110f552b6d9ace16597921f9340\n"
    },
    {
      "commit": "de38189e8014fa393f4d8c1d9d3fdf5e2a95899d",
      "tree": "832f36b2f2f4ffc9cb8dc631e9ff634ca1a541cc",
      "parents": [
        "7bc88c0f084f3814d8887bb8dd5ea095be176983"
      ],
      "author": {
        "name": "Radu Vele",
        "email": "raduvele@google.com",
        "time": "Fri Oct 18 16:42:34 2024 +0200"
      },
      "committer": {
        "name": "Nathan Hjelm",
        "email": "hjelmn@google.com",
        "time": "Wed Nov 13 21:16:58 2024 -0700"
      },
      "message": "Enable linux netlink event monitoring for Android OS platform services\n\nIntroducing the ANDROID_OS macro that is supposed to be set by clients\nof libusb that are running on Android at the OS level.\n\nIf Android_OS is set (and HAVE_LIBUDEV is not) then linux netlink event\nmonitoring (and consequently hotplug functionality) is enabled. This\nworks for Android services or simple binaries running at the OS level as\nthey have the necessary permissions, in contrast to usual Android apps\n(see commit 2f3bc98).\n\nNote: the __ANDROID__ macro is set by GCC for all targets running on\nAndroid (both OS-level services and apps).\n\nCloses #1577\n\nSigned-off-by: Nathan Hjelm \u003chjelmn@google.com\u003e\n"
    },
    {
      "commit": "7bc88c0f084f3814d8887bb8dd5ea095be176983",
      "tree": "b17de03899d7bbc6f46d52ff6aa83e9f4c3fc762",
      "parents": [
        "7adb2913cebe8f5cba84f68f817a75d3034e9d17"
      ],
      "author": {
        "name": "Fabien Sanglard",
        "email": "fabiensanglard.net@gmail.com",
        "time": "Sat Nov 09 19:44:29 2024 -0800"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Wed Nov 13 19:33:24 2024 +0100"
      },
      "message": "macos: Fix Zero-Length Packet for multiple packets per frame\n\nSummary of problem:\n\nThe LIBUSB_TRANSFER_ADD_ZERO_PACKET flag does not work as expected on\nDarwin. On my USB 3 device, with maxPacketSize \u003d 1024, I see libusb\nsending ZLP for packets multiple of 5120 instead of 1024.\n\nThe ZLPs are not being sent when they should because\ndarwin_get_pipe_properties() retrieve the \"full\" wMaxPacketSize via\nGetPipePropertiesV3(), which includes bandwidth multipliers.\n\nSummary of solution:\n\nGetEndpointPropertiesV3() does retrieve unaltered wMaxPacketSize,\nwithout multipliers. To call it, we first use GetPipePropertiesV3() to\nset the fields required.\n\nFixes #1581\nCloses #1582\n"
    },
    {
      "commit": "7adb2913cebe8f5cba84f68f817a75d3034e9d17",
      "tree": "bf035865e13c99e1e4d535a0a1346feba8d18f44",
      "parents": [
        "0b4eda697f0bd9b817a7c29b4f7fd9513e69c606"
      ],
      "author": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sun Aug 11 13:33:03 2024 +0200"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Wed Nov 13 11:07:55 2024 +0100"
      },
      "message": "docs: Fix broken doxygen references\n\nFixup of commit d7b796f1\n\nReferences #1549\n\nSigned-off-by: Tormod Volden \u003cdebian.tormod@gmail.com\u003e\n"
    },
    {
      "commit": "0b4eda697f0bd9b817a7c29b4f7fd9513e69c606",
      "tree": "2dc36e9451e03bf633c197f3cb56ec44b1dece17",
      "parents": [
        "28a6afb6905bc2c6895b53b0e81a89671cd6f517"
      ],
      "author": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sun Aug 11 13:04:44 2024 +0200"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Wed Nov 13 10:57:56 2024 +0100"
      },
      "message": "docs: Hide internal descriptor.c structure from doxygen\n\nFollow-up of commit f00f06e9\n\nSigned-off-by: Tormod Volden \u003cdebian.tormod@gmail.com\u003e\n"
    },
    {
      "commit": "28a6afb6905bc2c6895b53b0e81a89671cd6f517",
      "tree": "f11e8f03bafa0f876810aed94987729120fefa54",
      "parents": [
        "467b6a8896daea3d104958bf0887312c5d14d150"
      ],
      "author": {
        "name": "Fabien Sanglard",
        "email": "fabiensanglard.net@gmail.com",
        "time": "Thu Nov 07 22:03:52 2024 -0800"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Wed Nov 13 10:57:49 2024 +0100"
      },
      "message": "docs: Document internal_ssplus_capability_descriptor\n\nAlso include SSP documentation fixups of commit f00f06e9\nthat had introduced Doxygen errors.\n\nCloses #1545\n"
    },
    {
      "commit": "467b6a8896daea3d104958bf0887312c5d14d150",
      "tree": "95b2ee38d1e07b0eb88a54506d562bffdc6ad76a",
      "parents": [
        "8776b8021aeafe9ba9db3b899a8a801867c1c9af"
      ],
      "author": {
        "name": "Matthijs Lavrijsen",
        "email": "mattiwatti@gmail.com",
        "time": "Tue Jul 30 07:39:55 2024 +0200"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Wed Jul 31 00:05:01 2024 +0200"
      },
      "message": "winusb: Fix winusb_get_device_list() failing to find port numbers\n\nFix recent regression introduced in commit 9d595d4.\n\nget_dev_port_number() was always returning port number 0 for any port,\ndue to the incorrect assumption that strtoll\u0027s \u0027end\u0027 pointer will point\nto a null terminator on success. This was causing\nwinusb_get_device_list() to always fail. Since we actually know the\nexpected values of *end for both the SPDRP_LOCATION_INFORMATION and the\nSPDRP_LOCATION_PATHS case, check for those instead.\n\nAdditionally, document why a return value of 0 is treated as a failure\nin this particular function, for valid but somewhat coincidental reasons\nthat may not be immediately obvious.\n\nCloses #1544\n"
    },
    {
      "commit": "8776b8021aeafe9ba9db3b899a8a801867c1c9af",
      "tree": "2d3862df30a012e2cb5ece7af46237e0fe908a6a",
      "parents": [
        "a3199696e2abe3ff5054db4a341d2081a2b664e8"
      ],
      "author": {
        "name": "Sean McBride",
        "email": "sean@rogue-research.com",
        "time": "Mon Jul 29 10:55:01 2024 -0400"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Tue Jul 30 00:57:06 2024 +0200"
      },
      "message": "descriptor: Fix clang -Wimplicit-int-conversion warnings\n\nFor the 16-bit case especially, the result of the `or` is implicitly\npromoted to `int`, then when returned was warning:\n\nwarning: implicit conversion loses integer precision: \u0027int\u0027 to \u0027uint16_t\u0027 (aka \u0027unsigned short\u0027) [-Wimplicit-int-conversion]\n\nAdd more casts to shut it up.\n\nCloses #1541\n"
    },
    {
      "commit": "a3199696e2abe3ff5054db4a341d2081a2b664e8",
      "tree": "fe06b9a2b4b856f2d809bbd1518f0f6bb00c83a1",
      "parents": [
        "30ec25f738e6f4fab2e0781f452ab6144fa3b15f"
      ],
      "author": {
        "name": "Sean McBride",
        "email": "sean@rogue-research.com",
        "time": "Mon Jul 29 17:33:03 2024 -0400"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Tue Jul 30 00:54:21 2024 +0200"
      },
      "message": "xcode: Adjust file indentation settings\n\nChange tab vs space and 2 vs 8 intent in Xcode project to match the\nemacs metadata at the top of the files.\n\nCloses #1543\n"
    },
    {
      "commit": "30ec25f738e6f4fab2e0781f452ab6144fa3b15f",
      "tree": "60c9c94c87b9b075cdec187c3de303e39d4f5b3a",
      "parents": [
        "4528752cbecd0ff84c5df2e17453060d8971b3b2"
      ],
      "author": {
        "name": "Sean McBride",
        "email": "sean@rogue-research.com",
        "time": "Mon Jul 29 10:48:44 2024 -0400"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Mon Jul 29 19:55:01 2024 +0200"
      },
      "message": "examples/ezusb: Fix error checking regression in recent commit\n\nCommit 00454ab0 accidently botched error checking when replacing\nrewind() with fseek().\n\nThanks to GitHub user \"anotheruserofgithub\" for noticing.\n\nCloses #1539\n"
    },
    {
      "commit": "4528752cbecd0ff84c5df2e17453060d8971b3b2",
      "tree": "871b47aa452163f16c611c58884599e180ef2665",
      "parents": [
        "d04fc0e60bbca237876ab80530b6e5bae9b73ebd"
      ],
      "author": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Wed Dec 13 13:50:48 2023 +0100"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sun Jul 28 14:25:22 2024 +0200"
      },
      "message": "windows: Base HID device descriptor on cached values\n\nInstead of filling in the blanks with hard-coded made-up values that are\nsometimes correct, use the cached descriptor values retrieved during\nenumeration, which should be a better fallback.\n\nReferences #1360\nCloses #1378\n\nSigned-off-by: Tormod Volden \u003cdebian.tormod@gmail.com\u003e\n"
    },
    {
      "commit": "d04fc0e60bbca237876ab80530b6e5bae9b73ebd",
      "tree": "e48f4963d151b2c4f84d1e816d7866fde86ef4e1",
      "parents": [
        "bc12cda784beb8c0ca72a68d1306309745213501"
      ],
      "author": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Thu Jul 06 14:56:45 2023 +0200"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sun Jul 28 14:22:20 2024 +0200"
      },
      "message": "openbsd: Use default clause in _errno_to_libusb()\n\nSame as for NetBSD.\n\nCloses #1295\n\nSigned-off-by: Tormod Volden \u003cdebian.tormod@gmail.com\u003e\n"
    },
    {
      "commit": "bc12cda784beb8c0ca72a68d1306309745213501",
      "tree": "d6611075502f1e0a3d95088676ef85757c7f3e64",
      "parents": [
        "9d595d4e4ae41cdcb890d58531f522f7cdbae155"
      ],
      "author": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Thu Jul 06 14:51:43 2023 +0200"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sun Jul 28 14:21:32 2024 +0200"
      },
      "message": "netbsd: Debug print all errors\n\nSame as for OpenBSD.\n\nReferences #1295\n\nSigned-off-by: Tormod Volden \u003cdebian.tormod@gmail.com\u003e\n"
    },
    {
      "commit": "9d595d4e4ae41cdcb890d58531f522f7cdbae155",
      "tree": "4b74756137b9dc6f3f581bb10669d4948b158f4a",
      "parents": [
        "bd0fcdb4c2d2e75f684392502cc103402179817d"
      ],
      "author": {
        "name": "Sean McBride",
        "email": "sean@rogue-research.com",
        "time": "Mon Jan 01 17:20:35 2024 -0500"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sun Jul 28 14:12:07 2024 +0200"
      },
      "message": "Replace atoi() with strtol() which allows error checking\n\natoi() gives no opportunity for error checking, strtol() does. Improved\nerror checking.\n\nCloses #1422\n"
    },
    {
      "commit": "bd0fcdb4c2d2e75f684392502cc103402179817d",
      "tree": "40937fe15852fca3485e575f51c54075f6e21798",
      "parents": [
        "c3873d5c2ce95ca4b6259e4be8b07daaa68ad768"
      ],
      "author": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sun May 26 19:03:24 2024 +0200"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sun Jul 28 14:04:37 2024 +0200"
      },
      "message": "Add KEYS file for release files verification\n\nInclude my own public key, used for 1.0.25/1.0.26/1.0.27 already.\n\nThe KEYS file is inspired by the Apache project:\nhttps://infra.apache.org/release-signing#keys-policy\n\nReferences #1469\n\nSigned-off-by: Tormod Volden \u003cdebian.tormod@gmail.com\u003e\n"
    },
    {
      "commit": "c3873d5c2ce95ca4b6259e4be8b07daaa68ad768",
      "tree": "74f298a7878612af84e0e7515103599220d9d08f",
      "parents": [
        "e8d76b1a129ca61315c6ef0f71f5c0f363db70b8"
      ],
      "author": {
        "name": "Yiwei Lin",
        "email": "s921975628@gmail.com",
        "time": "Tue Jun 04 00:18:39 2024 +0800"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sun Jul 28 13:52:17 2024 +0200"
      },
      "message": "xusb: Define proper exit status\n\nConsider different scenario to return from main, we have to choose the\nproper return value. In this way, we can easily check the return code\ndirectly like `echo $?` in Linux to know whether the execution of xusb\nis failed.\n\nCloses #1507\n\nSigned-off-by: Yiwei Lin \u003cs921975628@gmail.com\u003e\n"
    },
    {
      "commit": "e8d76b1a129ca61315c6ef0f71f5c0f363db70b8",
      "tree": "1b96ba1224effd024676a7ea7393063f9682d79c",
      "parents": [
        "197e3052cdd3f875820d0b2436c98a22ff070f0d"
      ],
      "author": {
        "name": "Sean McBride",
        "email": "sean@rogue-research.com",
        "time": "Tue Apr 09 13:31:45 2024 -0400"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sun Jul 28 13:27:06 2024 +0200"
      },
      "message": "clang-tidy: Stop suppressing readability-misleading-indentation warnings\n\nAll such warnings are already fixed in master.\n\nCloses #1479\n"
    },
    {
      "commit": "197e3052cdd3f875820d0b2436c98a22ff070f0d",
      "tree": "7efb0c97b88a34ccb8ed06f4c5709c77f21cf2cb",
      "parents": [
        "55f8c95551890089db2560eae33efbf7d1b6ae42"
      ],
      "author": {
        "name": "Sean McBride",
        "email": "sean@rogue-research.com",
        "time": "Tue Apr 09 13:30:28 2024 -0400"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sun Jul 28 13:27:06 2024 +0200"
      },
      "message": "libusb.h: Match parameter names in declaration and definition\n\nTook the name from the .c file.\n\nFixes all clang-tidy readability-inconsistent-declaration-parameter-name\nwarnings\n\nReferences #1479\n"
    },
    {
      "commit": "55f8c95551890089db2560eae33efbf7d1b6ae42",
      "tree": "7ca6a73cbcf9965a4584d1eb640289373e0ee045",
      "parents": [
        "e3ccc46b6eced61e29464b6751e9ac07fd63a329"
      ],
      "author": {
        "name": "Sean McBride",
        "email": "sean@rogue-research.com",
        "time": "Tue Apr 09 13:42:14 2024 -0400"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sun Jul 28 13:27:06 2024 +0200"
      },
      "message": "descriptor: Fix addition overflow by correcting casts\n\nThe addition could overflow, the upcast needs to be performed before,\nnot after.\n\nFixes all clang-tidy bugprone-misplaced-widening-cast warnings\n\nReferences #1479\n"
    },
    {
      "commit": "e3ccc46b6eced61e29464b6751e9ac07fd63a329",
      "tree": "f07bcd2d3ad72fde1d0e019c45fad6773d93bcaf",
      "parents": [
        "9cf84577cea84b313c202a3740c3220f31e0b6b8"
      ],
      "author": {
        "name": "Sean McBride",
        "email": "sean@rogue-research.com",
        "time": "Tue Apr 09 13:36:02 2024 -0400"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sun Jul 28 13:27:06 2024 +0200"
      },
      "message": "descriptor: Eliminate all duplicate branch bodies, as they are bug-prone\n\nCopy-pasting can often result in mistakes like:\n\n```\nif (test_value(x)) {\n  y++;\n  do_something(x, y);\n} else {\n  y++;\n  do_something(x, y);\n}\n```\n\nThus it is preferable that branch bodies be unique.\n\nFixes all clang-tidy bugprone-branch-clone warnings\n\nReferences #1479\n"
    },
    {
      "commit": "9cf84577cea84b313c202a3740c3220f31e0b6b8",
      "tree": "332ad5d01dec1af9a9084ce24f9691db04388915",
      "parents": [
        "a18a964abaea2cd569c5c18f21b31126237f8a46"
      ],
      "author": {
        "name": "Sean McBride",
        "email": "sean@rogue-research.com",
        "time": "Tue Apr 09 13:34:55 2024 -0400"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sun Jul 28 13:27:05 2024 +0200"
      },
      "message": "Avoid assignments within `if` statements\n\nFixes all clang-tidy bugprone-assignment-in-if-condition warnings\n\nReferences #1479\n"
    },
    {
      "commit": "a18a964abaea2cd569c5c18f21b31126237f8a46",
      "tree": "6998424106eb03d4eb41e1ff554001851d1359cf",
      "parents": [
        "6883f84f931b3c8e975a9b7877680df8406495c5"
      ],
      "author": {
        "name": "Sean McBride",
        "email": "sean@rogue-research.com",
        "time": "Tue Apr 09 13:40:22 2024 -0400"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sun Jul 28 13:27:05 2024 +0200"
      },
      "message": "darwin: Fix multiplication overflow by better matching type sizes\n\nThese multiplication could indeed have overflowed, but now they are\nperformed with a bigger type, matching the type they are ultimately\nstored in.\n\nFixes all clang-tidy bugprone-implicit-widening-of-multiplication-result\nwarnings\n\nReferences #1479\n"
    },
    {
      "commit": "6883f84f931b3c8e975a9b7877680df8406495c5",
      "tree": "f93157e348b9dab99092d2363c4fa8c030a6d246",
      "parents": [
        "418aadc0f9017b7a1bc237f72ffcf684da167567"
      ],
      "author": {
        "name": "Sean McBride",
        "email": "sean@rogue-research.com",
        "time": "Tue Apr 09 13:37:12 2024 -0400"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sun Jul 28 13:27:05 2024 +0200"
      },
      "message": "darwin: Explicitly compare string compare function results to -1, 0, or 1\n\nFixes all clang-tidy bugprone-suspicious-string-compare warnings\n\nReferences #1479\n"
    },
    {
      "commit": "418aadc0f9017b7a1bc237f72ffcf684da167567",
      "tree": "89f21fc4b48c37335c450e539734c5f227d9a16f",
      "parents": [
        "3616e751b108945b9a8622cfe6fc8049c18a1ae8"
      ],
      "author": {
        "name": "Sean McBride",
        "email": "sean@rogue-research.com",
        "time": "Tue Apr 09 13:32:50 2024 -0400"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sun Jul 28 13:27:05 2024 +0200"
      },
      "message": "darwin: Always use uppercase literal suffixes for improved readability\n\nDepending on the font, an l suffix can look like a 1. Consider \"231l\".\nThus prefer uppercase.\n\nFixes all clang-tidy readability-uppercase-literal-suffix warnings\n\nReferences #1479\n"
    },
    {
      "commit": "3616e751b108945b9a8622cfe6fc8049c18a1ae8",
      "tree": "2f9df21f5c34d9bb7b48d5eb0c1b3e91cd725a36",
      "parents": [
        "a7e471dd485bff853ca984c2f32d9b508fe913b6"
      ],
      "author": {
        "name": "Sean McBride",
        "email": "sean@rogue-research.com",
        "time": "Tue Apr 09 13:41:06 2024 -0400"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sun Jul 28 13:27:05 2024 +0200"
      },
      "message": "examples/xusb: Match size of loop index to what is iterated\n\nFixes all clang-tidy bugprone-too-small-loop-variable warnings\n\nReferences #1479\n"
    },
    {
      "commit": "a7e471dd485bff853ca984c2f32d9b508fe913b6",
      "tree": "089f4195c315a02609db50e59b044d5f01c4fdfc",
      "parents": [
        "85055a412b9e0f76c762f01400c046b4318db9a8"
      ],
      "author": {
        "name": "Sean McBride",
        "email": "sean@rogue-research.com",
        "time": "Tue Apr 09 13:38:24 2024 -0400"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sun Jul 28 13:27:05 2024 +0200"
      },
      "message": "examples/xusb: Make some parameters const where possible\n\nFixes all clang-tidy readability-non-const-parameter warnings\n\nReferences #1479\n"
    },
    {
      "commit": "85055a412b9e0f76c762f01400c046b4318db9a8",
      "tree": "a215a10c12e74d3de4921d337d253712f552b67f",
      "parents": [
        "9ffdb7fe6ed8f1f303e851a1088fc05a3bae713d"
      ],
      "author": {
        "name": "Sean McBride",
        "email": "sean@rogue-research.com",
        "time": "Tue Apr 09 13:29:35 2024 -0400"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sun Jul 28 13:27:05 2024 +0200"
      },
      "message": "examples/xusb: Make all macro replacement lists parenthesized\n\nTo protect any lower-precedence operators from the surrounding\nexpression.\n\nFixes all clang-tidy bugprone-macro-parentheses warnings\n\nReferences #1479\n"
    },
    {
      "commit": "9ffdb7fe6ed8f1f303e851a1088fc05a3bae713d",
      "tree": "531b6900e44b885fb9475f75a563b0acbebb65dc",
      "parents": [
        "00454ab087774a62b314805b51215bba81a99aa8"
      ],
      "author": {
        "name": "Sean McBride",
        "email": "sean@rogue-research.com",
        "time": "Tue Apr 09 13:28:25 2024 -0400"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sun Jul 28 13:27:05 2024 +0200"
      },
      "message": "examples/fxload: Eliminate all reserved C identifiers (leading underscores)\n\nThe C langugage reserves various identifiers for itself that user code\nmust not use.\n\nFixes all clang-tidy bugprone-reserved-identifier warnings\n\nAlso, 4 of 5 file extension tests were case insensitive, and 1 was not.\nChanged it to be insensitive too.\n\nReferences #1479\n"
    },
    {
      "commit": "00454ab087774a62b314805b51215bba81a99aa8",
      "tree": "9cefdb8b48df48b5569b3028f031a41f9577bcfa",
      "parents": [
        "e678b3fad58a508cbd0a6e6dc777fb48346f948b"
      ],
      "author": {
        "name": "Sean McBride",
        "email": "sean@rogue-research.com",
        "time": "Tue Apr 09 13:25:55 2024 -0400"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sun Jul 28 13:27:05 2024 +0200"
      },
      "message": "examples/ezusb: Replace rewind with fseek, to check for errors\n\nReplace rewind, which gives no error result, with fseek, which does.\n\nFixes all clang-tidy bugprone-unsafe-functions warnings\n\nReferences #1479\n"
    },
    {
      "commit": "8b2bbce9f859ea4b5a816a1a4a4466b5da8a5297",
      "tree": "658fc9024c2e5e02e3648bb0161ee9593ab3babb",
      "parents": [
        "b8ce66a5c7fb66411942c41601b3d4d3186b41a5",
        "bc88688b5ef81c5ac81241a1d54193c6a0c9349e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed May 29 03:43:23 2024 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed May 29 03:43:23 2024 +0000"
      },
      "message": "Merge \"Upgrade libusb to 2a138c6f12988c42eaa9dd663581faa700c44abe\" into main am: 6786b38b13 am: bc88688b5e\n\nOriginal change: https://android-review.googlesource.com/c/platform/external/libusb/+/3106440\n\nChange-Id: I442ff9ad3b3c342aa97c26453120e1aee8cc44e0\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "bc88688b5ef81c5ac81241a1d54193c6a0c9349e",
      "tree": "658fc9024c2e5e02e3648bb0161ee9593ab3babb",
      "parents": [
        "11a95e9345a4f0c1586f5a079dafe0dfb42de247",
        "6786b38b134031333d5604ac69a84dfb221871eb"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue May 28 21:40:59 2024 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue May 28 21:40:59 2024 +0000"
      },
      "message": "Merge \"Upgrade libusb to 2a138c6f12988c42eaa9dd663581faa700c44abe\" into main am: 6786b38b13\n\nOriginal change: https://android-review.googlesource.com/c/platform/external/libusb/+/3106440\n\nChange-Id: Icc33f2d96ae7bc9a2d3555382feaa175dfc1ce0f\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "6786b38b134031333d5604ac69a84dfb221871eb",
      "tree": "658fc9024c2e5e02e3648bb0161ee9593ab3babb",
      "parents": [
        "192ec9e9ec0013ecb087fcf1d935afd3f25c695f",
        "157a093fe9a8315bb188bf43b1e24ff6d94ce37d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue May 28 21:23:02 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 28 21:23:02 2024 +0000"
      },
      "message": "Merge \"Upgrade libusb to 2a138c6f12988c42eaa9dd663581faa700c44abe\" into main"
    },
    {
      "commit": "e678b3fad58a508cbd0a6e6dc777fb48346f948b",
      "tree": "7bbbf76728036c7075bd403be48564b3d292cbf4",
      "parents": [
        "916c740076d960f2b759e264a0fb456643182590"
      ],
      "author": {
        "name": "Jon Beniston",
        "email": "jon@beniston.com",
        "time": "Fri May 24 14:36:22 2024 +0100"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Tue May 28 22:35:13 2024 +0200"
      },
      "message": "Emscripten: Avoid uncaught TypeError on browsers without USB support\n\nCheck if navigator.usb exists before trying to call one of its methods,\nto avoid unhandled exception, e.g. on current Firefox.\n\nCloses #1500\n"
    },
    {
      "commit": "916c740076d960f2b759e264a0fb456643182590",
      "tree": "1cfe5053dab0dbf3a39663e85b942e120cecae8f",
      "parents": [
        "678c81271b266b955211791e70fe5f16feacb0e0"
      ],
      "author": {
        "name": "Sean McBride",
        "email": "sean@rogue-research.com",
        "time": "Sun Feb 04 21:04:41 2024 -0500"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Tue May 28 22:07:45 2024 +0200"
      },
      "message": "descriptor: Avoid buffer over-increment in parse_iad_array function\n\nThe first iteration of this loop was safe because the beginning of the\nfunction checked that `size` is at least LIBUSB_DT_CONFIG_SIZE (9) bytes\nlong.\n\nBut for subsequent iterations, it could advance the pointer too far\n(which is undefined behaviour) depending on the content of the buffer\nitself.\n\nCloses #1460\n"
    },
    {
      "commit": "678c81271b266b955211791e70fe5f16feacb0e0",
      "tree": "6222558f2fced629a3169b64cec02bcc4cda673a",
      "parents": [
        "016a0de33ac94b19c7772d6c20fbea7fec23bf68"
      ],
      "author": {
        "name": "Sean McBride",
        "email": "sean@rogue-research.com",
        "time": "Sat Feb 03 22:36:12 2024 -0500"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Tue May 28 22:07:45 2024 +0200"
      },
      "message": "descriptor: Small clarifications with no behaviour change\n\nAll the right hand side is `dev_cap`, change one outlier to match.\n\nAlso clarify the relationships between some magic numbers.\n\nNo change in behaviour here.\n"
    },
    {
      "commit": "016a0de33ac94b19c7772d6c20fbea7fec23bf68",
      "tree": "8645524a078cd1922399d61f2a8251ad404e4f18",
      "parents": [
        "5144b1c7b3518863905137af04e75392e9670bb8"
      ],
      "author": {
        "name": "Sean McBride",
        "email": "sean@rogue-research.com",
        "time": "Sat Feb 03 22:32:52 2024 -0500"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Tue May 28 22:07:45 2024 +0200"
      },
      "message": "descriptor: Fix potential offsetting of pointer by too much\n\nThis was checking that `size` is at least `LIBUSB_DT_CONFIG_SIZE` (9)\nbytes long, but then increments the pointer with `buf +\u003d\nheader.bLength`. That could end up pointing past of the end of the\nbuffer. There is a subsequent check that would prevent dereferencing it,\nbut it\u0027s still undefined behaviour to even create such a pointer.\n\nAdd a check with a similar pattern as elsewhere in this file.\n"
    },
    {
      "commit": "5144b1c7b3518863905137af04e75392e9670bb8",
      "tree": "3a139a7babd963f2120626549dfc115f1bf103f6",
      "parents": [
        "d795c0b821899e8611e3694ac72c36a843bef310"
      ],
      "author": {
        "name": "Sean McBride",
        "email": "sean@rogue-research.com",
        "time": "Sat Feb 03 22:19:51 2024 -0500"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Tue May 28 22:07:45 2024 +0200"
      },
      "message": "descriptor: Restore implicitly casted-away const\n"
    },
    {
      "commit": "d795c0b821899e8611e3694ac72c36a843bef310",
      "tree": "01852bfb6e2300420e83a47e37d62ef8e3fab0ed",
      "parents": [
        "2c32efa20e30c1fc93a37b5c7cf1858ce7fa0fb8"
      ],
      "author": {
        "name": "Sean McBride",
        "email": "sean@rogue-research.com",
        "time": "Sat Feb 03 22:19:19 2024 -0500"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Tue May 28 22:07:45 2024 +0200"
      },
      "message": "descriptor: Defer potentially truncating cast to last minute\n"
    },
    {
      "commit": "2c32efa20e30c1fc93a37b5c7cf1858ce7fa0fb8",
      "tree": "df12a6c515f69ffc7df5f1c52973cbd5ea812579",
      "parents": [
        "2a138c6f12988c42eaa9dd663581faa700c44abe"
      ],
      "author": {
        "name": "Sean McBride",
        "email": "sean@rogue-research.com",
        "time": "Sat Jan 27 18:12:33 2024 -0500"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Tue May 28 22:07:29 2024 +0200"
      },
      "message": "descriptor: Replace parse_descriptor() function\n\nThis function had a few problems:\n\n - it takes two buffers as parameters but knows nothing about their\nlength, making it easy to overrun them.\n\n - callers make unwarranted assumptions about the alignment of\nstructures that are passed to it (it assumes there\u0027s no padding)\n\n - it has tricky pointer arithmetic and masking\n\nWith this new formulation, it\u0027s easier to see what\u0027s being read/written,\nespecially the destination. It\u0027s now very clear that the destination is\nnot being overrun because we are simply assigning to struct fields.\n\nAlso convert byte swapping macros to inline functions for more type\nsafety.\n\nReferences #1460\n"
    },
    {
      "commit": "157a093fe9a8315bb188bf43b1e24ff6d94ce37d",
      "tree": "658fc9024c2e5e02e3648bb0161ee9593ab3babb",
      "parents": [
        "192ec9e9ec0013ecb087fcf1d935afd3f25c695f",
        "2a138c6f12988c42eaa9dd663581faa700c44abe"
      ],
      "author": {
        "name": "Fabien Sanglard",
        "email": "sanglardf@google.com",
        "time": "Tue May 28 12:46:18 2024 -0700"
      },
      "committer": {
        "name": "Fabien Sanglard",
        "email": "sanglardf@google.com",
        "time": "Tue May 28 12:46:18 2024 -0700"
      },
      "message": "Upgrade libusb to 2a138c6f12988c42eaa9dd663581faa700c44abe\n\nThis project was upgraded with external_updater.\nUsage: tools/external_updater/updater.sh update external/libusb\nFor more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md\n\nTest: TreeHugger\nChange-Id: I7d00a9849a85bffe05ae89030db1c59424059fea\n"
    },
    {
      "commit": "2a138c6f12988c42eaa9dd663581faa700c44abe",
      "tree": "e28c005d5ae33c810dd455c8668c5ba5ad81334f",
      "parents": [
        "de1398db35890408b2f465bc135c04b816ef2f19"
      ],
      "author": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sun May 26 23:01:18 2024 +0200"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sun May 26 23:10:24 2024 +0200"
      },
      "message": "Consistent use of C-style comment markers\n\nExcept for the Windows, Emscripten, and Haiku backends we use C-style\ncomments markers and not double-slash. Get rid of a few inconsistent\n// instances.\n\nNote the doxygen code examples have // comments because they are inside\nproper /* */ comments.\n\nSigned-off-by: Tormod Volden \u003cdebian.tormod@gmail.com\u003e\n"
    },
    {
      "commit": "de1398db35890408b2f465bc135c04b816ef2f19",
      "tree": "e6a86eb4171e0f500b989f7f10578573f9f94a37",
      "parents": [
        "48c6bdea805d5eacc284910242e146b06b178b8d"
      ],
      "author": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sun May 26 22:29:57 2024 +0200"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sun May 26 22:31:09 2024 +0200"
      },
      "message": "windows: Downgrade get_guid DeviceInterfaceGUID message to debug level\n\nIdeally it should be a warning only for composite devices but it is\ndifficult to discern that case. The message is too invasive and\nconfusing for the non-composite case, so make it debug instead.\n\nFollow-up of commit f9ae36b\n\nCloses #1394\n\nSigned-off-by: Tormod Volden \u003cdebian.tormod@gmail.com\u003e\n"
    },
    {
      "commit": "48c6bdea805d5eacc284910242e146b06b178b8d",
      "tree": "87eb73a4a68be9a005c379ca7bef2a3c9a466869",
      "parents": [
        "34d2ca5c636de25932059d3d48126390cae1e374"
      ],
      "author": {
        "name": "Fabien Sanglard",
        "email": "fabiensanglard.net@gmail.com",
        "time": "Sun May 26 11:46:50 2024 -0700"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sun May 26 22:25:26 2024 +0200"
      },
      "message": "Cosmetic cleanup of SuperSpeedPlus comments\n\n- Fix typos.\n- Use SuperSpeedPlus naming consistently.\n- Remove C++ style comment in favor of C style.\n\nFixup of commit f00f06e9\n\nReferences #1499\nCloses #1502\n"
    },
    {
      "commit": "34d2ca5c636de25932059d3d48126390cae1e374",
      "tree": "d2698383732ddae6b1760f2dec6b8432a43aae6d",
      "parents": [
        "42e8a9ff2c7bcef600cfd48dcc5d2ad167a9737d"
      ],
      "author": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sun May 26 17:05:57 2024 +0200"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sun May 26 17:19:37 2024 +0200"
      },
      "message": "xusb: Only retrieve BOS descriptor for bcdUSB 0x0201 or higher\n\nThe \"Binary device Object Store\" (BOS) descriptor was introduced with\nbcdUSB revision 0x0201.\n\nReferences #1492\n\nSigned-off-by: Tormod Volden \u003cdebian.tormod@gmail.com\u003e\n"
    },
    {
      "commit": "42e8a9ff2c7bcef600cfd48dcc5d2ad167a9737d",
      "tree": "b26e3c268d1965b04149484b72632ffbebc8804b",
      "parents": [
        "8b507434facfd4e4e9c31e99b6a698176a54d970"
      ],
      "author": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sun May 12 18:35:12 2024 +0200"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sun May 26 16:40:59 2024 +0200"
      },
      "message": "linux: ioctl() request number is unsigned long\n\nThe type mismatch was caught by building with -Wconversion.\n\nReferences #1497\n\nSigned-off-by: Tormod Volden \u003cdebian.tormod@gmail.com\u003e\n"
    },
    {
      "commit": "8b507434facfd4e4e9c31e99b6a698176a54d970",
      "tree": "b82f50a57eb1cffd93367cb40a8d7bc77805426c",
      "parents": [
        "b00332d34eaf54a9a77ec309e5d1782c10e34038"
      ],
      "author": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sun May 12 16:13:59 2024 +0200"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sun May 26 16:40:29 2024 +0200"
      },
      "message": "linux: Fix type of open() flags argument\n\nThe second argument to open() is an int carrying flags (including\n\"access modes\"). A third, optional argument has type mode_t, carrying\n\"file mode bits\" for file permissions.\n\nAlso rename the variable to access_mode to make it more clear.\n\nThe type mismatch was caught by building with -Wconversion.\n\nReferences #1497\n\nSigned-off-by: Tormod Volden \u003cdebian.tormod@gmail.com\u003e\n"
    },
    {
      "commit": "b00332d34eaf54a9a77ec309e5d1782c10e34038",
      "tree": "f61d10c393ad15a3fdbc45dee37877e32c2c65d6",
      "parents": [
        "fef78a96e37936f16c10c43c9a220683f7c2ff74"
      ],
      "author": {
        "name": "Fabien Sanglard",
        "email": "fabiensanglard.net@gmail.com",
        "time": "Tue May 21 17:04:26 2024 -0700"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sun May 26 10:44:02 2024 +0200"
      },
      "message": "SuperSpeedPlus: Fix typo mantisa -\u003e mantissa in struct field\n\nFixup of commit f00f06e9\n\nCloses #1499\n"
    },
    {
      "commit": "b8ce66a5c7fb66411942c41601b3d4d3186b41a5",
      "tree": "7747d3b17d1d7059298ea025e94922b656f522b4",
      "parents": [
        "1c8ca58069181c42f23bb64dcac0c9530abaaa86",
        "11a95e9345a4f0c1586f5a079dafe0dfb42de247"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue May 21 21:59:28 2024 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue May 21 21:59:28 2024 +0000"
      },
      "message": "Merge \"Upgrade libusb to fef78a96e37936f16c10c43c9a220683f7c2ff74\" into main am: 192ec9e9ec am: 11a95e9345\n\nOriginal change: https://android-review.googlesource.com/c/platform/external/libusb/+/3095843\n\nChange-Id: I057762bc8d20f977626fe441d685b0acb0c9a9c4\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "11a95e9345a4f0c1586f5a079dafe0dfb42de247",
      "tree": "7747d3b17d1d7059298ea025e94922b656f522b4",
      "parents": [
        "3971de5c7c31973b8914c2beb00215d74d5c514a",
        "192ec9e9ec0013ecb087fcf1d935afd3f25c695f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue May 21 21:33:24 2024 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue May 21 21:33:24 2024 +0000"
      },
      "message": "Merge \"Upgrade libusb to fef78a96e37936f16c10c43c9a220683f7c2ff74\" into main am: 192ec9e9ec\n\nOriginal change: https://android-review.googlesource.com/c/platform/external/libusb/+/3095843\n\nChange-Id: I981952b2de2f3879d9b1c1a03176b57be199ada4\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "192ec9e9ec0013ecb087fcf1d935afd3f25c695f",
      "tree": "7747d3b17d1d7059298ea025e94922b656f522b4",
      "parents": [
        "9326acc6581866ad6b509eefc0cb9e9f1bb24043",
        "9a2eed9c0714e5c3adae95e82dedf64de73e57ef"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue May 21 21:17:40 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 21 21:17:40 2024 +0000"
      },
      "message": "Merge \"Upgrade libusb to fef78a96e37936f16c10c43c9a220683f7c2ff74\" into main"
    },
    {
      "commit": "9a2eed9c0714e5c3adae95e82dedf64de73e57ef",
      "tree": "7747d3b17d1d7059298ea025e94922b656f522b4",
      "parents": [
        "9326acc6581866ad6b509eefc0cb9e9f1bb24043",
        "fef78a96e37936f16c10c43c9a220683f7c2ff74"
      ],
      "author": {
        "name": "Fabien Sanglard",
        "email": "sanglardf@google.com",
        "time": "Tue May 21 09:53:45 2024 -0700"
      },
      "committer": {
        "name": "Fabien Sanglard",
        "email": "sanglardf@google.com",
        "time": "Tue May 21 09:53:46 2024 -0700"
      },
      "message": "Upgrade libusb to fef78a96e37936f16c10c43c9a220683f7c2ff74\n\nThis project was upgraded with external_updater.\nUsage: tools/external_updater/updater.sh update external/libusb\nFor more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md\n\nTest: TreeHugger\nChange-Id: I52801e891e1a773c5963d80eeda6673f144557e6\n"
    },
    {
      "commit": "fef78a96e37936f16c10c43c9a220683f7c2ff74",
      "tree": "86459fb544e1d320c5d9a20b46b2771621de1382",
      "parents": [
        "5b17c383f8dd27e6938ffcc125c2a839db72c1ff"
      ],
      "author": {
        "name": "Francis Hart",
        "email": "francis@kuvacode.com",
        "time": "Wed Mar 20 21:14:15 2024 +0200"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Tue May 07 20:54:00 2024 +0200"
      },
      "message": "windows: Restore behaviour of skipping malformed device GUIDs\n\nPreviously when getting the device list, a malformed device GUID would\nbe explicitly ignored and skipped, allowing the operation to complete. A\nrecent change to winusb_get_device_list() in commit fdab67b accidentally\nchanged this behaviour, so this scenario instead caused an early exit\nwith error code LIBUSB_ERROR_NO_MEM.\n\nCloses #1475\n"
    },
    {
      "commit": "5b17c383f8dd27e6938ffcc125c2a839db72c1ff",
      "tree": "a4bbe63874a668f2784d2c31e2336b3f9fdba596",
      "parents": [
        "f00f06e9ebfcb5673c636e75d1f3d06375eccf03"
      ],
      "author": {
        "name": "Harry Mallon",
        "email": "hjmallon@gmail.com",
        "time": "Wed Mar 27 16:52:18 2024 +0000"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Tue May 07 19:44:28 2024 +0200"
      },
      "message": "Add API support for LIBUSB_SPEED_SUPER_PLUS_X2 20Gbps USB 3.2 gen 2x2\n\nImplement detection on darwin and linux_usbfs, and report it in xusb.\n\nCloses #1477\n"
    },
    {
      "commit": "f00f06e9ebfcb5673c636e75d1f3d06375eccf03",
      "tree": "127a08aeec710406f56f269bc62c56034d9e82fd",
      "parents": [
        "f8a6c412f51c974d8c70fd100e28b3b69b9d3318"
      ],
      "author": {
        "name": "Fabien Sanglard",
        "email": "fabiensanglard.net@gmail.com",
        "time": "Sat Jan 06 00:45:37 2024 -0800"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Tue May 07 19:32:50 2024 +0200"
      },
      "message": "Add support for SuperSpeed+ Capability Descriptors\n\nSee specs in USB 3.1 specs in section:\n\n9.6.2.5 SuperSpeedPlus USB Device Capability\n\nCloses #1428\nFixes #1429\n"
    },
    {
      "commit": "1c8ca58069181c42f23bb64dcac0c9530abaaa86",
      "tree": "eb34442734f63f0ede1d36478fd860c6d52caed3",
      "parents": [
        "ae4472204af6270c8cb7443027cd46df030e258b",
        "3971de5c7c31973b8914c2beb00215d74d5c514a"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Mon Apr 29 22:16:27 2024 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Apr 29 22:16:27 2024 +0000"
      },
      "message": "[automerger skipped] Empty merge of Android 24Q2 Release (ab/11526283) to aosp-main-future am: 3971de5c7c -s ours\n\nam skip reason: Merged-In I32a39c2d8ddb948ae06aed050abed447c9349621 with SHA-1 b8993e1d1e is already in history\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/external/libusb/+/27144065\n\nChange-Id: I65ceb0b89ec69844d8972b03d3d2da666b8ca3e6\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "3971de5c7c31973b8914c2beb00215d74d5c514a",
      "tree": "eb34442734f63f0ede1d36478fd860c6d52caed3",
      "parents": [
        "b8993e1d1e90a0712348c7792b330e9fc4eedc9a",
        "40c15b9624c5cff4190d607158ba403b82c9cbd3"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Mon Apr 29 11:50:03 2024 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Mon Apr 29 11:50:03 2024 -0700"
      },
      "message": "Empty merge of Android 24Q2 Release (ab/11526283) to aosp-main-future\n\nBug: 337098550\nMerged-In: I32a39c2d8ddb948ae06aed050abed447c9349621\nChange-Id: I1b899688f38445c52ca5b2ceb0ea09323e8fe4a4\n"
    },
    {
      "commit": "f8a6c412f51c974d8c70fd100e28b3b69b9d3318",
      "tree": "082675c87e4551803a5aaa4a842fd1044f033d75",
      "parents": [
        "a99a2581026d9a62409f5314c8c9c553c10cc432"
      ],
      "author": {
        "name": "Sean McBride",
        "email": "sean@rogue-research.com",
        "time": "Wed Jan 03 19:37:43 2024 -0500"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sat Apr 20 11:39:06 2024 +0200"
      },
      "message": "darwin: Cleanup of usbi_backend structure\n\nNo real change.\n\n- rearrange elements to be initialized in the same order as they appear\n  in the struct declaration\n\n- explicitly set values to NULL so that global searches for things like\n  `wrap_sys_device` easily reveal that the function is NULL on Darwin\n\nCloses #1439\n"
    },
    {
      "commit": "a99a2581026d9a62409f5314c8c9c553c10cc432",
      "tree": "49f0a46351766f14f5bc38fe95185e483924b587",
      "parents": [
        "2f2e072ce5079c434e348b2a66fcf4669fca3848"
      ],
      "author": {
        "name": "Sean McBride",
        "email": "sean@rogue-research.com",
        "time": "Mon Jan 01 23:01:40 2024 -0500"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sat Apr 20 10:18:17 2024 +0200"
      },
      "message": "Increase usbi_get_tid() size from int to long\n\nThis function has different implementations on every OS, but for some,\nlike macOS, it was truncating from 64 to 32 bit by casting to int. So\nincrease its size from int to long.\n\n(The function is currently only used for debug output.)\n\nCloses #1423\n"
    },
    {
      "commit": "2f2e072ce5079c434e348b2a66fcf4669fca3848",
      "tree": "ab598b60119c36b94b6497b927c64b002956a7b6",
      "parents": [
        "43107c84e4a5f6b15c296eff8cc3578100f35dce"
      ],
      "author": {
        "name": "Adrien Destugues",
        "email": "pulkomandy@pulkomandy.tk",
        "time": "Thu Apr 18 22:13:30 2024 +0200"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sat Apr 20 10:10:55 2024 +0200"
      },
      "message": "haiku: Use gcc atomic builtins to fix build\n\nFixes #1387\nCloses #1482\n"
    },
    {
      "commit": "43107c84e4a5f6b15c296eff8cc3578100f35dce",
      "tree": "5a290ae0754cce5d28cab8bdc95ffcaf4db1f36b",
      "parents": [
        "1c1bad9d128052fa82ba2c648875276f0189c3a2"
      ],
      "author": {
        "name": "Sean McBride",
        "email": "sean@rogue-research.com",
        "time": "Mon Jan 01 23:46:06 2024 -0500"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Thu Apr 04 09:02:32 2024 +0200"
      },
      "message": "darwin: Suppress false positive warning with an assert\n\nThe clang static analyzer doesn\u0027t see that the pointer will always be\nnon-NULL if the return value is success. Just assert this fact so that\nit can see this, and then it won\u0027t warn:\n\nAccess to field \u0027can_enumerate\u0027 results in a dereference of a null\npointer (loaded from variable \u0027cached_device\u0027)\n\nReferences #1414\n"
    },
    {
      "commit": "1c1bad9d128052fa82ba2c648875276f0189c3a2",
      "tree": "92a16beeadc52161db5df0be22919d96525b0f52",
      "parents": [
        "4e246a73eea05bcd1e1e8d1d8d2a7d6b3fcff773"
      ],
      "author": {
        "name": "Sean McBride",
        "email": "sean@rogue-research.com",
        "time": "Mon Jan 01 23:37:15 2024 -0500"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Thu Apr 04 09:02:16 2024 +0200"
      },
      "message": "darwin: Fix clang static analyzer warning about a variable that\u0027s never read\n\nReformulate the loop in a way that the variable is read.\n\nReferences #1414\n"
    },
    {
      "commit": "4e246a73eea05bcd1e1e8d1d8d2a7d6b3fcff773",
      "tree": "cbc079991536aa128a899002a415d1a2aeb54cd2",
      "parents": [
        "d81e80aa5a45c6d24eb1b2556e089c2f21194581"
      ],
      "author": {
        "name": "Sean McBride",
        "email": "sean@rogue-research.com",
        "time": "Sat Dec 30 22:14:13 2023 -0500"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Thu Apr 04 09:01:59 2024 +0200"
      },
      "message": "xcode: Enable several additional warnings in the Xcode project\n\nThese don\u0027t generate any warnings anymore (with Xcode 15).\n\nReferences #1414\n"
    },
    {
      "commit": "d81e80aa5a45c6d24eb1b2556e089c2f21194581",
      "tree": "8dfaf351f4ce6e79bfd39bd6b8c6171c28ed7565",
      "parents": [
        "a07ecfe02aeea6861bbefebd9ab064eae7e15b51"
      ],
      "author": {
        "name": "Sean McBride",
        "email": "sean@rogue-research.com",
        "time": "Sat Dec 30 22:13:09 2023 -0500"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Thu Apr 04 09:01:45 2024 +0200"
      },
      "message": "darwin: Correct interpretation of COM-style Release() return value\n\nFound thanks to a warning about implicit sign conversion.\n\nThe return value is the new reference count, not an IOReturn error code.\n\nI\u0027m not sure if this is copy paste, and the new ref count is\nunimportant, so I just preserved the existing behaviour (but adjusted\nthe log message). The change only impacts debug logs anyway.\n\nReferences #1414\n"
    },
    {
      "commit": "a07ecfe02aeea6861bbefebd9ab064eae7e15b51",
      "tree": "6138ed587e5821767efbebb41a9b9d811f2c25e6",
      "parents": [
        "288d82f15e18dd89893b8db0839a7503361f0643"
      ],
      "author": {
        "name": "Sean McBride",
        "email": "sean@rogue-research.com",
        "time": "Sat Dec 30 21:38:43 2023 -0500"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Thu Apr 04 09:01:26 2024 +0200"
      },
      "message": "Fix most warnings about implicit sign conversion\n\n- Sometimes just change a type to match where it\u0027s coming from\n\n- Sometimes add an explicit cast (but only if it\u0027s guaranteed correct,\n  like a previous check that a signed value is positive before casting to\n  unsigned)\n\n- For libusb_bulk_transfer() add an assert to be certain that the signed\n  return value is never negative.\n  Update API documentation to underline this fact.\n  Add similar assert in usbi_handle_transfer_completion().\n\n- darwin: For parsing OS version, change scanf to use %u instead of %i\n\n- xusb: Add additional range checks before casting\n\n- xusb: Reverse some backwards count and size arguments to calloc, not\n  that it really matters\n\nCloses #1414\n"
    },
    {
      "commit": "288d82f15e18dd89893b8db0839a7503361f0643",
      "tree": "dfe565b2e89d1d34c7c03011421f3b2ebd35f7b7",
      "parents": [
        "233a8de6f9bfb47d767f9d3272532abfce71d05f"
      ],
      "author": {
        "name": "Sean McBride",
        "email": "sean@rogue-research.com",
        "time": "Sat Dec 30 22:29:17 2023 -0500"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Thu Apr 04 09:01:06 2024 +0200"
      },
      "message": "xusb: Avoid warning about implicit switch fallthrough\n\nReferences #1414\n"
    },
    {
      "commit": "233a8de6f9bfb47d767f9d3272532abfce71d05f",
      "tree": "56ed5495583d4e30d78adcf390acb45a7f938119",
      "parents": [
        "6c0ae1ab456da49e7805115e77ce0428ace4ea41"
      ],
      "author": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Mon Mar 04 10:55:23 2024 +0100"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Thu Mar 14 22:18:14 2024 +0100"
      },
      "message": "emscripten: Remove superfluous capability\n\nThis is a common capability, not per backend.\n\nSigned-off-by: Tormod Volden \u003cdebian.tormod@gmail.com\u003e\n"
    },
    {
      "commit": "6c0ae1ab456da49e7805115e77ce0428ace4ea41",
      "tree": "8b82716f7f58b122b0409b9acce02b7333a55add",
      "parents": [
        "51d2c0ffce90916a4950904e12ea091288e8fca5"
      ],
      "author": {
        "name": "Sylvain Fasel",
        "email": "sylvain@sonatique.net",
        "time": "Sun Feb 04 23:48:26 2024 +0100"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Thu Mar 14 22:16:52 2024 +0100"
      },
      "message": "hotplug_exit: Mutex protection of context device list while cleaning it\n\nThis prevents concurrent access to the list by the event background\nthread, which could still be processing a previous hotplug event and\nhaving to modify the list.\n\nFixes #1366\nFixes #1445\nCloses #1452\nReferences #1406\n"
    },
    {
      "commit": "ae4472204af6270c8cb7443027cd46df030e258b",
      "tree": "eb34442734f63f0ede1d36478fd860c6d52caed3",
      "parents": [
        "40c15b9624c5cff4190d607158ba403b82c9cbd3",
        "b8993e1d1e90a0712348c7792b330e9fc4eedc9a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Mar 08 20:39:21 2024 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Mar 08 20:39:21 2024 +0000"
      },
      "message": "Merge \"Add sanglardf to OWNERS\" into main am: 9326acc658 am: b8993e1d1e\n\nOriginal change: https://android-review.googlesource.com/c/platform/external/libusb/+/2995761\n\nChange-Id: I65f0eb872fc8d279ad234c5eb15d2d08584dd8c7\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "b8993e1d1e90a0712348c7792b330e9fc4eedc9a",
      "tree": "eb34442734f63f0ede1d36478fd860c6d52caed3",
      "parents": [
        "7cef6480ecc47556c257ff17642f92896a8e28cb",
        "9326acc6581866ad6b509eefc0cb9e9f1bb24043"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Mar 08 19:55:31 2024 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Mar 08 19:55:31 2024 +0000"
      },
      "message": "Merge \"Add sanglardf to OWNERS\" into main am: 9326acc658\n\nOriginal change: https://android-review.googlesource.com/c/platform/external/libusb/+/2995761\n\nChange-Id: I32a39c2d8ddb948ae06aed050abed447c9349621\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "9326acc6581866ad6b509eefc0cb9e9f1bb24043",
      "tree": "eb34442734f63f0ede1d36478fd860c6d52caed3",
      "parents": [
        "7cef6480ecc47556c257ff17642f92896a8e28cb",
        "f0f7ca254e7ae7de067effdff3a1c09dfae0004c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Mar 08 19:21:27 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 08 19:21:27 2024 +0000"
      },
      "message": "Merge \"Add sanglardf to OWNERS\" into main"
    },
    {
      "commit": "f0f7ca254e7ae7de067effdff3a1c09dfae0004c",
      "tree": "2ceccf4b20c8aa233e31dce54504e6ae8c2180cc",
      "parents": [
        "f8c697b87eae8fc259edd1dc5695e2753163bbfe"
      ],
      "author": {
        "name": "Fabien Sanglard",
        "email": "sanglardf@google.com",
        "time": "Fri Mar 08 11:17:24 2024 -0800"
      },
      "committer": {
        "name": "Fabien Sanglard",
        "email": "sanglardf@google.com",
        "time": "Fri Mar 08 11:17:24 2024 -0800"
      },
      "message": "Add sanglardf to OWNERS\n\nTest: NA\nBug: NA\nChange-Id: Idb99926a50e262a6cfdf19637827ff17f81b8ef5\n"
    },
    {
      "commit": "51d2c0ffce90916a4950904e12ea091288e8fca5",
      "tree": "9838e50c8ce8e9a38b6906850d5416ff99c6ece2",
      "parents": [
        "6cf58bac95ff62cd3453cba2c898993b40e1da66"
      ],
      "author": {
        "name": "Sylvain Fasel",
        "email": "sylvain@sonatique.net",
        "time": "Tue Jan 30 14:15:50 2024 +0100"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Mon Feb 26 23:21:38 2024 +0100"
      },
      "message": "hotplug_exit: Remove parents recursively\n\nRemove all parents with a single child remaining in parent tree.\n\nThis ensures that no parents of the direct parent of the device being\nconsidered are left in the list, when appearing before their child(ren)\nin the processing order of the context device list cleaning.\n\nReferences #1452\nReferences #1406\n"
    },
    {
      "commit": "6cf58bac95ff62cd3453cba2c898993b40e1da66",
      "tree": "992c140cf5ed27fb5f3b61dfde4846c717685de9",
      "parents": [
        "5c64e52554daa0a7d297154cbc07fee039f8727f"
      ],
      "author": {
        "name": "Sean McBride",
        "email": "sean@rogue-research.com",
        "time": "Mon Jan 08 23:51:45 2024 -0500"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Mon Feb 26 22:46:29 2024 +0100"
      },
      "message": "Add clang-tidy config file\n\nAll checks are enabled except for those that cause any warning.\n\nThis is a starting point, some of the currently-suppressed warnings can\nbe fixed hereafter.\n\nCloses #1434\n"
    },
    {
      "commit": "5c64e52554daa0a7d297154cbc07fee039f8727f",
      "tree": "dca5bf8232119a3d6c7332e46e330de5b462c369",
      "parents": [
        "d52e355daa09f17ce64819122cb067b8a2ee0d4b"
      ],
      "author": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Wed Feb 14 22:52:57 2024 +0100"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Wed Feb 14 23:08:10 2024 +0100"
      },
      "message": "sunos: Fix typos breaking build\n\nFixup of commit 66e63d6\n\nFixes #1465\n\nSigned-off-by: Tormod Volden \u003cdebian.tormod@gmail.com\u003e\n"
    },
    {
      "commit": "40c15b9624c5cff4190d607158ba403b82c9cbd3",
      "tree": "fb17f5ca24925515f5ab736101ba199cb6ec194d",
      "parents": [
        "f8c697b87eae8fc259edd1dc5695e2753163bbfe",
        "7cef6480ecc47556c257ff17642f92896a8e28cb"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Feb 09 17:29:56 2024 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Feb 09 17:29:56 2024 +0000"
      },
      "message": "Merge \"Upgrade libusb to v1.0.27\" into main am: 9e9370211c am: 7cef6480ec\n\nOriginal change: https://android-review.googlesource.com/c/platform/external/libusb/+/2954501\n\nChange-Id: I1bb85791fd422cf284aec791b9363ac774627af8\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "7cef6480ecc47556c257ff17642f92896a8e28cb",
      "tree": "fb17f5ca24925515f5ab736101ba199cb6ec194d",
      "parents": [
        "f8c697b87eae8fc259edd1dc5695e2753163bbfe",
        "9e9370211c8d37301902a086424a176f351669f4"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Feb 09 16:50:48 2024 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Feb 09 16:50:48 2024 +0000"
      },
      "message": "Merge \"Upgrade libusb to v1.0.27\" into main am: 9e9370211c\n\nOriginal change: https://android-review.googlesource.com/c/platform/external/libusb/+/2954501\n\nChange-Id: I2b079c8109b34320d54c36a52f2eef69359455da\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "9e9370211c8d37301902a086424a176f351669f4",
      "tree": "fb17f5ca24925515f5ab736101ba199cb6ec194d",
      "parents": [
        "f8c697b87eae8fc259edd1dc5695e2753163bbfe",
        "99d5406da9549698ade1a7079a673852d39a7f2b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Feb 09 16:09:54 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 09 16:09:54 2024 +0000"
      },
      "message": "Merge \"Upgrade libusb to v1.0.27\" into main"
    },
    {
      "commit": "99d5406da9549698ade1a7079a673852d39a7f2b",
      "tree": "fb17f5ca24925515f5ab736101ba199cb6ec194d",
      "parents": [
        "f8c697b87eae8fc259edd1dc5695e2753163bbfe",
        "d52e355daa09f17ce64819122cb067b8a2ee0d4b"
      ],
      "author": {
        "name": "Shaju Mathew",
        "email": "shaju@google.com",
        "time": "Fri Feb 09 01:42:54 2024 +0000"
      },
      "committer": {
        "name": "Shaju Mathew",
        "email": "shaju@google.com",
        "time": "Fri Feb 09 01:42:55 2024 +0000"
      },
      "message": "Upgrade libusb to v1.0.27\n\nThis project was upgraded with external_updater.\nUsage: tools/external_updater/updater.sh update libusb\nFor more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md\n\nTest: TreeHugger\nChange-Id: Ifb65673bd9d1a8653475e1396110447114685d4a\n"
    },
    {
      "commit": "d52e355daa09f17ce64819122cb067b8a2ee0d4b",
      "tree": "b8b07f5722b11a1cc82e3aca71efe19f2948d593",
      "parents": [
        "055d8525cbfad650e98d794a9d301336e3cc12dc"
      ],
      "author": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Wed Jan 31 23:11:14 2024 +0100"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Wed Jan 31 23:11:14 2024 +0100"
      },
      "message": "libusb 1.0.27\n\nSigned-off-by: Tormod Volden \u003cdebian.tormod@gmail.com\u003e\n"
    },
    {
      "commit": "055d8525cbfad650e98d794a9d301336e3cc12dc",
      "tree": "5241a86080964571975750968c1fa24a24c34f60",
      "parents": [
        "853a5eac64a3821fe650aa6a91719c1e35c940b6"
      ],
      "author": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sun Dec 10 12:07:59 2023 +0100"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Wed Jan 31 23:07:43 2024 +0100"
      },
      "message": "configure.ac: Bump libtool library version\n\nPrograms using the previous version may use the new version as drop-in\nreplacement, but programs using the new version may use APIs not present\nin the previous one.\n\nSigned-off-by: Tormod Volden \u003cdebian.tormod@gmail.com\u003e\n"
    },
    {
      "commit": "853a5eac64a3821fe650aa6a91719c1e35c940b6",
      "tree": "1fabc4cd58dfe818209e1d20de5667ada04ad231",
      "parents": [
        "fdff3cd395dd5cfbe2a730b02b64d977e78134cd"
      ],
      "author": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Tue Jan 30 23:38:51 2024 +0100"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Wed Jan 31 12:32:56 2024 +0100"
      },
      "message": "examples/hotplugtest: Tone down message about failed open\n\nReferences #1425\n\nSigned-off-by: Tormod Volden \u003cdebian.tormod@gmail.com\u003e\n"
    },
    {
      "commit": "fdff3cd395dd5cfbe2a730b02b64d977e78134cd",
      "tree": "8654e5fd20f8d0c3a6a1b1d7608043cd0278fa18",
      "parents": [
        "2fad5a8b1b2d0789e3065126b3607fb1a55cc3f5"
      ],
      "author": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sun Jan 28 23:35:16 2024 +0100"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Wed Jan 31 12:32:18 2024 +0100"
      },
      "message": "configure.ac: Do not build umockdev if --enable-debug-log is used\n\numockdev relies on the per-context log callbacks to do its checks\nproperly, and these are not called if ENABLE_DEBUG_LOGGING is defined\n(configure --enable-debug-log).\n\nFixes #1449\n\nSigned-off-by: Tormod Volden \u003cdebian.tormod@gmail.com\u003e\n"
    },
    {
      "commit": "2fad5a8b1b2d0789e3065126b3607fb1a55cc3f5",
      "tree": "c159a85e1109c5affd5c0cf920856e639786432b",
      "parents": [
        "655877883354cd9a3f7713cebbb1425b64341c63"
      ],
      "author": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sun Jan 28 13:31:35 2024 +0100"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sun Jan 28 13:31:35 2024 +0100"
      },
      "message": "libusb 1.0.27-rc2\n\nSigned-off-by: Tormod Volden \u003cdebian.tormod@gmail.com\u003e\n"
    },
    {
      "commit": "655877883354cd9a3f7713cebbb1425b64341c63",
      "tree": "a46fb3ea35f84850bf0785697a13e88c6b6f6d18",
      "parents": [
        "a5483bc0f735291eec23b65a76bb7f0fac90e6a8"
      ],
      "author": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Mon Jan 22 17:31:31 2024 +0100"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sat Jan 27 10:52:30 2024 +0100"
      },
      "message": "docs: Add more references in libusb_option section\n\nSigned-off-by: Tormod Volden \u003cdebian.tormod@gmail.com\u003e\n"
    },
    {
      "commit": "a5483bc0f735291eec23b65a76bb7f0fac90e6a8",
      "tree": "d3ac1317b4da14de964bbb445f0cc2b43b194367",
      "parents": [
        "d09d341f411c94bb2835e9085122dff794716540"
      ],
      "author": {
        "name": "Lars Kanis",
        "email": "lars.kanis@sincnovation.com",
        "time": "Thu Dec 21 12:37:51 2023 +0100"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sat Jan 27 10:52:12 2024 +0100"
      },
      "message": "core: Allow setting global log callback after first libusb_init()\n\nWhen setting LIBUSB_OPTION_LOG_CB before the first libusb_init(),\nthe global callback is set.\n\nHowever, after the first libusb_init() there is a default context, and\nsetting LIBUSB_OPTION_LOG_CB would only set this default context, and\nnot the global callback. There would be no way to set the global\ncallback through libusb_set_option().\n\nChange this so that the global log callback is set in addition to the\ndefault context (when libusb_set_option is called with NULL context).\n\nCloses #1397\n"
    },
    {
      "commit": "d09d341f411c94bb2835e9085122dff794716540",
      "tree": "2d36dda0d5798e76d6414704a1696d5677f19173",
      "parents": [
        "0929a2b1d19c4297b10a5c5f52fee8b4e052f2ee"
      ],
      "author": {
        "name": "Lars Kanis",
        "email": "lars.kanis@sincnovation.com",
        "time": "Thu Dec 21 11:38:56 2023 +0100"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sat Jan 27 10:51:42 2024 +0100"
      },
      "message": "core: Don\u0027t overwrite the log callback on every global libusb_set_option()\n\nBut set it only on option LIBUSB_OPTION_LOG_CB.\n\nOtherwise the following second call resets the callback to the\ndefault one:\n\n libusb_set_option(NULL, LIBUSB_OPTION_LOG_CB, cb_func);\n libusb_set_option(NULL, LIBUSB_OPTION_LOG_LEVEL, LIBUSB_LOG_LEVEL_DEBUG);\n\nReferences #1397\n"
    },
    {
      "commit": "0929a2b1d19c4297b10a5c5f52fee8b4e052f2ee",
      "tree": "0cbb41b5353a1955d1c51a40b5174b4cbac1ed78",
      "parents": [
        "d587c55aaad8801949456e559b4082e98c90d5d3"
      ],
      "author": {
        "name": "Sean McBride",
        "email": "sean@rogue-research.com",
        "time": "Wed Dec 27 23:29:13 2023 -0500"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sat Jan 20 13:27:06 2024 +0100"
      },
      "message": "docs: Prefer use of libusb_init_context() over old libusb_init()\n\n- Replace some uses of the soft-deprecated libusb_init() and\n  libusb_set_debug() with their updates.\n\n- Updated various comments to favour use of the new functions.\n\n- Notably remove \\deprecated doxygen statement, since it causes\n  -Wdocumentation compiler warnings.\n\n- Notably update the xusb example to pass debug options to\n  libusb_init_context() instead of setting environment variable.\n\n- Also improve comments related to LIBUSB_API_VERSION and\n  LIBUSBX_API_VERSION.\n\nCloses #1408\n\n[Tormod: Fix Doxygen formatting and references]\nSigned-off-by: Tormod Volden \u003cdebian.tormod@gmail.com\u003e\n"
    },
    {
      "commit": "d587c55aaad8801949456e559b4082e98c90d5d3",
      "tree": "d6ad5e42d5f621ecb937f9841941e55d9e808ab6",
      "parents": [
        "46dfdede09ca77f5a469033ad051e60452ebc006"
      ],
      "author": {
        "name": "Sean McBride",
        "email": "sean@rogue-research.com",
        "time": "Mon Jan 01 22:44:00 2024 -0500"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sat Jan 20 12:10:53 2024 +0100"
      },
      "message": "xcode: Add files from other backends into the Xcode project\n\nThey aren\u0027t included in any target, so they are never compiled.\n\nBut having them in the project allows doing global searches that also\nlook in these files.\n\nCloses #1421\n"
    },
    {
      "commit": "46dfdede09ca77f5a469033ad051e60452ebc006",
      "tree": "66deadf6a13a1a15c63ead1140f3dc0e00e8a5ac",
      "parents": [
        "66e63d68eb4351c1220a11186a073491ca2c03db"
      ],
      "author": {
        "name": "Sean McBride",
        "email": "sean@rogue-research.com",
        "time": "Mon Jan 01 22:42:48 2024 -0500"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sat Jan 20 12:10:26 2024 +0100"
      },
      "message": "xcode: Move some options from Xcode project to xcconfig file\n\nproject.pbxproj is not so human-readable, and xcconfig files are\npreferable because you can add comments about the build settings.\n\nReferences #1421\n"
    },
    {
      "commit": "66e63d68eb4351c1220a11186a073491ca2c03db",
      "tree": "c12ef2948aba00fc43f6e5fe57aa1fe8b9d80b00",
      "parents": [
        "b4f877f6f406913dbe5ee00159b9ebfbb589de12"
      ],
      "author": {
        "name": "Sean McBride",
        "email": "sean@rogue-research.com",
        "time": "Thu Dec 28 14:21:13 2023 -0500"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Sat Jan 20 12:09:35 2024 +0100"
      },
      "message": "Correct some spelling and add codespell config file\n\nIn one case, renamed a variable from `larg` which codespell thought was\na typo for `large`.\n\nCloses #1411\n"
    },
    {
      "commit": "b4f877f6f406913dbe5ee00159b9ebfbb589de12",
      "tree": "38196ca42f9c7ed96d69b26b619184e9db69785e",
      "parents": [
        "5e4b389f74d5201396af827a6647303b65bafaef"
      ],
      "author": {
        "name": "Sean McBride",
        "email": "sean@rogue-research.com",
        "time": "Fri Dec 29 19:09:32 2023 -0500"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Fri Jan 19 21:53:46 2024 +0100"
      },
      "message": "darwin: locationID is 32-bit, not 64-bit\n\nAlso zero-initialize locationID since otherwise it could be used\nuninitialized.\n\nAlso change the return variable to bool, matching what the function\nactually returns.\n\nFortunately, this only affected log messages.\n\nCloses #1412\n\n[Tormod: Use PRIx32 for printing the 32-bit locationID]\nSigned-off-by: Tormod Volden \u003cdebian.tormod@gmail.com\u003e\n"
    },
    {
      "commit": "5e4b389f74d5201396af827a6647303b65bafaef",
      "tree": "6a7e383730eeb26765c3ac9cd14c700e71687186",
      "parents": [
        "9a4ec8b3817adc6c06982616e5e9956eb3a9de3d"
      ],
      "author": {
        "name": "Sean McBride",
        "email": "sean@rogue-research.com",
        "time": "Wed Dec 27 23:32:25 2023 -0500"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Fri Jan 19 21:53:20 2024 +0100"
      },
      "message": "Replace all http://libusb.info/ with https\n\nThe libusb.info website, like most sites these days, auto-redirects to\nthe https version anyway.\n\nAlso replaced a couple of other http links to https, after verifying\nthat they autoredirect to https.\n\nNote this changes the \"describe\" field in the version info returned by\nlibusb_get_version(). This field is only there for ABI compatibility and\ncontains the website URL.\n\nCloses #1407\n"
    },
    {
      "commit": "9a4ec8b3817adc6c06982616e5e9956eb3a9de3d",
      "tree": "98e21935f74ee0f44ea1d037bcb06c489bdba33e",
      "parents": [
        "f080aec7764da1b378e5ada712d0764ff5a79124"
      ],
      "author": {
        "name": "Sean McBride",
        "email": "sean@rogue-research.com",
        "time": "Wed Jan 03 19:51:38 2024 -0500"
      },
      "committer": {
        "name": "Tormod Volden",
        "email": "debian.tormod@gmail.com",
        "time": "Fri Jan 19 20:34:50 2024 +0100"
      },
      "message": "Document backend functions that already lock dev_handle-\u003elock\n\nCloses #1410\n"
    }
  ],
  "next": "f080aec7764da1b378e5ada712d0764ff5a79124"
}
