From 4cfd397ff6c6c9f7207cfbb01989073fa8226926 Mon Sep 17 00:00:00 2001 From: Charlotte Van Petegem Date: Mon, 24 Oct 2022 09:54:14 +0200 Subject: [PATCH] Add android-tools build failure patch --- patches/196146.patch | 112 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 patches/196146.patch diff --git a/patches/196146.patch b/patches/196146.patch new file mode 100644 index 00000000..0f794a13 --- /dev/null +++ b/patches/196146.patch @@ -0,0 +1,112 @@ +From f5db877954c6839a2de43b3e2a4f70f0836fad3b Mon Sep 17 00:00:00 2001 +From: Yureka +Date: Sat, 15 Oct 2022 16:38:28 +0200 +Subject: [PATCH] android-tools: add patch to fix build against 6.0 kernel + headers + +--- + .../android-tools-kernel-headers-6.0.diff | 82 +++++++++++++++++++ + pkgs/tools/misc/android-tools/default.nix | 1 + + 2 files changed, 83 insertions(+) + create mode 100644 pkgs/tools/misc/android-tools/android-tools-kernel-headers-6.0.diff + +diff --git a/pkgs/tools/misc/android-tools/android-tools-kernel-headers-6.0.diff b/pkgs/tools/misc/android-tools/android-tools-kernel-headers-6.0.diff +new file mode 100644 +index 0000000000000..38c0c9f394911 +--- /dev/null ++++ b/pkgs/tools/misc/android-tools/android-tools-kernel-headers-6.0.diff +@@ -0,0 +1,82 @@ ++diff --git a/vendor/adb/client/usb_linux.cpp b/vendor/adb/client/usb_linux.cpp ++index 25a50bd..0d09c47 100644 ++--- a/vendor/adb/client/usb_linux.cpp +++++ b/vendor/adb/client/usb_linux.cpp ++@@ -59,8 +59,15 @@ using namespace std::literals; ++ #define DBGX(x...) ++ ++ struct usb_handle { +++ usb_handle() : urb_in(0), urb_out(0) { +++ this->urb_in = new usbdevfs_urb; +++ this->urb_out = new usbdevfs_urb; +++ } +++ ++ ~usb_handle() { ++ if (fd != -1) unix_close(fd); +++ delete urb_in; +++ delete urb_out; ++ } ++ ++ std::string path; ++@@ -72,8 +79,8 @@ struct usb_handle { ++ unsigned zero_mask; ++ unsigned writeable = 1; ++ ++- usbdevfs_urb urb_in; ++- usbdevfs_urb urb_out; +++ usbdevfs_urb *urb_in; +++ usbdevfs_urb *urb_out; ++ ++ bool urb_in_busy = false; ++ bool urb_out_busy = false; ++@@ -304,7 +311,7 @@ static int usb_bulk_write(usb_handle* h, const void* data, int len) { ++ std::unique_lock lock(h->mutex); ++ D("++ usb_bulk_write ++"); ++ ++- usbdevfs_urb* urb = &h->urb_out; +++ usbdevfs_urb* urb = h->urb_out; ++ memset(urb, 0, sizeof(*urb)); ++ urb->type = USBDEVFS_URB_TYPE_BULK; ++ urb->endpoint = h->ep_out; ++@@ -343,7 +350,7 @@ static int usb_bulk_read(usb_handle* h, void* data, int len) { ++ std::unique_lock lock(h->mutex); ++ D("++ usb_bulk_read ++"); ++ ++- usbdevfs_urb* urb = &h->urb_in; +++ usbdevfs_urb* urb = h->urb_in; ++ memset(urb, 0, sizeof(*urb)); ++ urb->type = USBDEVFS_URB_TYPE_BULK; ++ urb->endpoint = h->ep_in; ++@@ -388,7 +395,7 @@ static int usb_bulk_read(usb_handle* h, void* data, int len) { ++ } ++ D("[ urb @%p status = %d, actual = %d ]", out, out->status, out->actual_length); ++ ++- if (out == &h->urb_in) { +++ if (out == h->urb_in) { ++ D("[ reap urb - IN complete ]"); ++ h->urb_in_busy = false; ++ if (urb->status != 0) { ++@@ -397,7 +404,7 @@ static int usb_bulk_read(usb_handle* h, void* data, int len) { ++ } ++ return urb->actual_length; ++ } ++- if (out == &h->urb_out) { +++ if (out == h->urb_out) { ++ D("[ reap urb - OUT compelete ]"); ++ h->urb_out_busy = false; ++ h->cv.notify_all(); ++@@ -501,10 +508,10 @@ void usb_kick(usb_handle* h) { ++ ** but this ensures that a reader blocked on REAPURB ++ ** will get unblocked ++ */ ++- ioctl(h->fd, USBDEVFS_DISCARDURB, &h->urb_in); ++- ioctl(h->fd, USBDEVFS_DISCARDURB, &h->urb_out); ++- h->urb_in.status = -ENODEV; ++- h->urb_out.status = -ENODEV; +++ ioctl(h->fd, USBDEVFS_DISCARDURB, h->urb_in); +++ ioctl(h->fd, USBDEVFS_DISCARDURB, h->urb_out); +++ h->urb_in->status = -ENODEV; +++ h->urb_out->status = -ENODEV; ++ h->urb_in_busy = false; ++ h->urb_out_busy = false; ++ h->cv.notify_all(); +diff --git a/pkgs/tools/misc/android-tools/default.nix b/pkgs/tools/misc/android-tools/default.nix +index 5bc9e1d820fac..030486aab335c 100644 +--- a/pkgs/tools/misc/android-tools/default.nix ++++ b/pkgs/tools/misc/android-tools/default.nix +@@ -25,6 +25,7 @@ stdenv.mkDerivation rec { + revert = true; + excludes = [ "vendor/fmtlib" ]; + }) ++ ./android-tools-kernel-headers-6.0.diff + ]; + + nativeBuildInputs = [ cmake perl go ];