diff --git a/meta-oe/recipes-devtools/jq/jq/0001-Support-building-with-disable-maintainer-mode-and-so.patch b/meta-oe/recipes-devtools/jq/jq/0001-Support-building-with-disable-maintainer-mode-and-so.patch
new file mode 100644
index 0000000000..5986fd963c
--- /dev/null
+++ b/meta-oe/recipes-devtools/jq/jq/0001-Support-building-with-disable-maintainer-mode-and-so.patch
@@ -0,0 +1,43 @@
+From 91ea97fb0993d755ac971497da59985950b23843 Mon Sep 17 00:00:00 2001
+From: Peter Kjellerstedt <pkj@axis.com>
+Date: Tue, 7 Apr 2026 21:59:27 +0200
+Subject: [PATCH] Support building with --disable-maintainer-mode and source !=
+ build dir
+
+If --disable-maintainer-mode is enabled, then the rules for generating
+parser.[ch] and lexer.[ch] did nothing. This worked fine if the source
+and build directories are the same as the pre-generated parser.c and
+lexer.c files would suffice. However, if the build directory is not the
+same as the source directory, then the rest of the Make rules expect
+parser.[ch] and lexer.[ch] to have been created in the build directory
+if their source files (parser.y and lexer.l) are newer than the target
+files, which can happen in case the source is fetched using Git.
+
+Avoid the problem by copying the files to the build directory if needed.
+
+Upstream-Status: Submitted [https://github.com/jqlang/jq/pull/3518/changes/282619d60d42c193ddce1095b34469e14dbe87b6]
+---
+ Makefile.am | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 1df4143..511012f 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -41,9 +41,14 @@ src/lexer.h: src/lexer.c
+ else
+ BUILT_SOURCES = src/builtin.inc src/config_opts.inc src/version.h
+ .y.c:
+-	$(AM_V_YACC) echo "NOT building parser.c!"
++	$(AM_V_YACC) [ "$(<D)" = "$(@D)" ] || cp $(<D)/$(@F) $@
++	$(AM_V_YACC) [ "$(<D)" = "$(@D)" ] || cp $(<D)/$(*F).h $*.h
++	$(AM_V_YACC) touch $@ $*.h
++
+ .l.c:
+-	$(AM_V_LEX) echo "NOT building lexer.c!"
++	$(AM_V_LEX) [ "$(<D)" = "$(@D)" ] || cp $(<D)/$(@F) $@
++	$(AM_V_LEX) [ "$(<D)" = "$(@D)" ] || cp $(<D)/$(*F).h $*.h
++	$(AM_V_LEX) touch $@ $*.h
+ endif
+ 
+ # Tell YACC (Bison) autoconf macros that you want a header file created.
diff --git a/meta-oe/recipes-devtools/jq/jq_1.8.1.bb b/meta-oe/recipes-devtools/jq/jq_1.8.1.bb
index b9383c76f7..6eaa2de6df 100644
--- a/meta-oe/recipes-devtools/jq/jq_1.8.1.bb
+++ b/meta-oe/recipes-devtools/jq/jq_1.8.1.bb
@@ -8,15 +8,17 @@ SECTION = "utils"
 LICENSE = "MIT & BSD-2-Clause"
 LIC_FILES_CHKSUM = "file://COPYING;md5=cf7fcb0a1def4a7ad62c028f7d0dca47"
 
-GITHUB_BASE_URI = "https://github.com/jqlang/${BPN}/releases/"
-SRC_URI = "${GITHUB_BASE_URI}/download/${BPN}-${PV}/${BPN}-${PV}.tar.gz \
+SRCREV = "4467af7068b1bcd7f882defff6e7ea674c5357f4"
+
+SRC_URI = " \
+    git://github.com/jqlang/jq.git;protocol=https;branch=master;tag=jq-${PV} \
     file://run-ptest \
-    "
-SRC_URI[sha256sum] = "2be64e7129cecb11d5906290eba10af694fb9e3e7f9fc208a311dc33ca837eb0"
+    file://0001-Support-building-with-disable-maintainer-mode-and-so.patch \
+"
 
-inherit autotools github-releases ptest
+inherit autotools ptest
 
-UPSTREAM_CHECK_REGEX = "releases/tag/${BPN}-(?P<pver>\d+(\.\d+)+)"
+UPSTREAM_CHECK_GITTAGREGEX = "${BPN}-(?P<pver>\d+(\.\d+)+)"
 
 PACKAGECONFIG ?= "oniguruma"
 
