From 0df32876d1caba2c9d19e270fa4a4a33e7f5d7ba Mon Sep 17 00:00:00 2001 From: classabbyamp Date: Mon, 16 May 2022 13:06:52 -0400 Subject: [PATCH 1/2] New package: libjaylink-0.2.0 --- common/shlibs | 1 + srcpkgs/libjaylink-devel | 1 + srcpkgs/libjaylink/template | 28 ++++++++++++++++++++++++++++ 3 files changed, 30 insertions(+) create mode 120000 srcpkgs/libjaylink-devel create mode 100644 srcpkgs/libjaylink/template diff --git a/common/shlibs b/common/shlibs index 74c27e6730a9..c1deadaf9eb7 100644 --- a/common/shlibs +++ b/common/shlibs @@ -4169,3 +4169,4 @@ libThread.so root-6.24.06_1 libTMVA.so root-6.24.06_1 libMathCore.so root-6.24.06_1 liblowdown.so lowdown-0.11.2_1 +libjaylink.so.0 libjaylink-0.2.0_1 diff --git a/srcpkgs/libjaylink-devel b/srcpkgs/libjaylink-devel new file mode 120000 index 000000000000..cb83e11967d9 --- /dev/null +++ b/srcpkgs/libjaylink-devel @@ -0,0 +1 @@ +libjaylink \ No newline at end of file diff --git a/srcpkgs/libjaylink/template b/srcpkgs/libjaylink/template new file mode 100644 index 000000000000..9bb202af8dc5 --- /dev/null +++ b/srcpkgs/libjaylink/template @@ -0,0 +1,28 @@ +# Template file for 'libjaylink' +pkgname=libjaylink +version=0.2.0 +revision=1 +build_style=gnu-configure +hostmakedepends="automake libtool pkg-config" +makedepends="libusb-devel" +short_desc="Library to access SEGGER J-Link and compatible devices" +maintainer="classabbyamp " +license="GPL-2.0-or-later" +homepage="https://gitlab.zapb.de/libjaylink/libjaylink" +distfiles="https://gitlab.zapb.de/libjaylink/libjaylink/-/archive/${version}/libjaylink-${version}.tar.gz" +checksum=ac10d03088a2f28ebfc0411f9e617433936220dc183050f2e429694dcadc4f2a + +pre_configure() { + ./autogen.sh +} + +libjaylink-devel_package() { + depends="${sourcepkg}>=${version}_${revision}" + short_desc+=" - development files" + pkg_install() { + vmove usr/include + vmove usr/lib/pkgconfig + vmove "usr/lib/*.a" + vmove "usr/lib/*.so" + } +} From 3b7d653f66fff74c66a373031772f8eb7b21068d Mon Sep 17 00:00:00 2001 From: classabbyamp Date: Mon, 16 May 2022 13:24:35 -0400 Subject: [PATCH 2/2] openocd: update to 0.11.0+1. fixes compatibility with void's jimtcl version --- .../patches/libusb-1.0.25-segfault.patch | 85 ------------------- srcpkgs/openocd/template | 33 ++++--- 2 files changed, 22 insertions(+), 96 deletions(-) delete mode 100644 srcpkgs/openocd/patches/libusb-1.0.25-segfault.patch diff --git a/srcpkgs/openocd/patches/libusb-1.0.25-segfault.patch b/srcpkgs/openocd/patches/libusb-1.0.25-segfault.patch deleted file mode 100644 index 4a2010a1db71..000000000000 --- a/srcpkgs/openocd/patches/libusb-1.0.25-segfault.patch +++ /dev/null @@ -1,85 +0,0 @@ -From cff0e417da58adef1ceef9a63a99412c2cc87ff3 Mon Sep 17 00:00:00 2001 -From: Antonio Borneo -Date: Wed, 23 Jun 2021 16:52:16 +0200 -Subject: [PATCH] stlink: fix SIGSEGV with libusb v1.0.24-33-g32a2206 (11618) -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The stlink driver incorrectly uses a NULL pointer for libusb's -struct libusb_context. -The correct value to be used is local in libusb_helper.c. - -Move in the helper file, in a wrapper function, the only call that -requires the above value, and let stlink driver to use this -wrapper. - -This issue has not triggered any visible problem until a code -refactoring [1] in libusb has made OpenOCD crashing on Windows and -on MacOS. - -Change-Id: Id1818c8af7cf0d4d17dfa1d22aad079da01ef740 -Signed-off-by: Antonio Borneo -Fixes: https://sourceforge.net/p/openocd/tickets/308/ -Fixes: https://github.com/libusb/libusb/issues/928/ -Fixes: 42d8fa899c6a ("stlink_usb: Submit multiple USB URBs at once to improve performance") -Link: [1] https://github.com/libusb/libusb/commit/32a22069428c -Reported-by: Andrzej Sierżęga -Co-developed-by: Andrzej Sierżęga -Co-developed-by: Xiaofan Chen -Reviewed-on: http://openocd.zylin.com/6331 -Tested-by: jenkins -Reviewed-by: Marc Schink -Reviewed-by: Xiaofan -Reviewed-by: Andrzej Sierżęga -Reviewed-by: Oleksij Rempel -Reviewed-by: Andreas Fritiofson ---- - src/jtag/drivers/libusb_helper.c | 5 +++++ - src/jtag/drivers/libusb_helper.h | 1 + - src/jtag/drivers/stlink_usb.c | 7 +------ - 3 files changed, 7 insertions(+), 6 deletions(-) - -diff --git a/src/jtag/drivers/libusb_helper.c b/src/jtag/drivers/libusb_helper.c -index f0122d534a..18fe4bad4c 100644 ---- a/src/jtag/drivers/libusb_helper.c -+++ b/src/jtag/drivers/libusb_helper.c -@@ -363,3 +363,8 @@ int jtag_libusb_get_pid(struct libusb_device *dev, uint16_t *pid) - - return ERROR_FAIL; - } -+ -+int jtag_libusb_handle_events_completed(int *completed) -+{ -+ return libusb_handle_events_completed(jtag_libusb_context, completed); -+} -diff --git a/src/jtag/drivers/libusb_helper.h b/src/jtag/drivers/libusb_helper.h -index fa7d06e286..3e77865d61 100644 ---- a/src/jtag/drivers/libusb_helper.h -+++ b/src/jtag/drivers/libusb_helper.h -@@ -60,5 +60,6 @@ int jtag_libusb_choose_interface(struct libusb_device_handle *devh, - unsigned int *usb_write_ep, - int bclass, int subclass, int protocol, int trans_type); - int jtag_libusb_get_pid(struct libusb_device *dev, uint16_t *pid); -+int jtag_libusb_handle_events_completed(int *completed); - - #endif /* OPENOCD_JTAG_DRIVERS_LIBUSB_HELPER_H */ -diff --git a/src/jtag/drivers/stlink_usb.c b/src/jtag/drivers/stlink_usb.c -index c68bbb3ca8..7b1932b9f6 100644 ---- a/src/jtag/drivers/stlink_usb.c -+++ b/src/jtag/drivers/stlink_usb.c -@@ -497,13 +497,8 @@ static void sync_transfer_wait_for_completion(struct libusb_transfer *transfer) - { - int r, *completed = transfer->user_data; - -- /* Assuming a single libusb context exists. There no existing interface into this -- * module to pass a libusb context. -- */ -- struct libusb_context *ctx = NULL; -- - while (!*completed) { -- r = libusb_handle_events_completed(ctx, completed); -+ r = jtag_libusb_handle_events_completed(completed); - if (r < 0) { - if (r == LIBUSB_ERROR_INTERRUPTED) - continue; diff --git a/srcpkgs/openocd/template b/srcpkgs/openocd/template index 5537a78575c3..856977b045ec 100644 --- a/srcpkgs/openocd/template +++ b/srcpkgs/openocd/template @@ -1,7 +1,10 @@ # Template file for 'openocd' pkgname=openocd -version=0.11.0 -revision=4 +version=0.11.0+1 +revision=1 +# update to a commit that has a compatible jimtcl version +_commit=830d70bfc66ada2a68c73283b9e4fa4770d408ee +wrksrc="${pkgname}-${_commit}" build_style=gnu-configure configure_args=" --disable-werror @@ -35,22 +38,30 @@ configure_args=" --enable-vsllink --enable-aice --enable-cmsis-dap - --enable-cmsis-dap-v2" -case "$XBPS_MACHINE" in - *-musl) configure_args+=" ac_cv_header_malloc_h=no" # no mallinfo -esac -hostmakedepends="pkg-config" -makedepends="hidapi-devel jimtcl-devel libftdi1-devel - libusb-compat-devel libusb-devel" + --enable-cmsis-dap-v2 + --disable-internal-libjaylink" +hostmakedepends="automake pkg-config libtool which" +makedepends="hidapi-devel jimtcl-devel-0.81_1 libftdi1-devel + libusb-devel libjaylink-devel capstone-devel" short_desc="Open On-Chip Debugger" maintainer="Érico Nogueira " license="GPL-2.0-or-later" homepage="http://openocd.org/" -distfiles="${SOURCEFORGE_SITE}/${pkgname}/${pkgname}-${version}.tar.bz2" -checksum=43a3ce734aff1d3706ad87793a9f3a5371cb0e357f0ffd0a151656b06b3d1e7d +# note: switch back to sourceforge for the next tagged release +distfiles="https://github.com/openocd-org/openocd/archive/${_commit}.tar.gz" +checksum=f75cab70ec125ea0cd71cde3bdb2761ae83662c12bbb2d9e1d8e447aa7da9f25 CFLAGS="-fcommon" +case "$XBPS_MACHINE" in + *-musl) configure_args+=" ac_cv_header_malloc_h=no" # no mallinfo +esac + +# should not be needed when using tagged releases +pre_configure() { + ./bootstrap nosubmodule +} + post_install() { vinstall contrib/60-openocd.rules 644 usr/lib/udev/rules.d/ }