diff --git a/subprojects/json-c.wrap b/subprojects/json-c.wrap
index e68e6ef..a633336 100644
--- a/subprojects/json-c.wrap
+++ b/subprojects/json-c.wrap
@@ -1,7 +1,8 @@
 [wrap-git]
-revision = json-c-0.18-20240915
+revision = HEAD
 url = https://github.com/json-c/json-c.git
 patch_directory = json-c
 
 [provide]
 json-c = json_c_dep
+
diff --git a/subprojects/packagefiles/json-c/config/meson.build b/subprojects/packagefiles/json-c/config/meson.build
new file mode 100644
index 0000000..0c57785
--- /dev/null
+++ b/subprojects/packagefiles/json-c/config/meson.build
@@ -0,0 +1,110 @@
+conf = configuration_data()
+check_headers = [
+    'dlfcn.h',
+    'endian.h',
+    'fcntl.h',
+    'float.h',
+    'inttypes.h',
+    'limits.h',
+    'memory.h',
+    'stdarg.h',
+    'stdint.h',
+    'stdlib.h',
+    'strings.h',
+    'string.h',
+    'syslog.h',
+    'sys/cdefs.h',
+    'sys/param.h',
+    'sys/stat.h',
+    'sys/types.h',
+    'unistd.h',
+    'xlocale.h',
+]
+
+foreach header : check_headers
+    if cc.has_header(header)
+        conf.set('HAVE_@0@'.format(header.underscorify().to_upper()), 1)
+    endif
+endforeach
+
+have_stdc = true
+foreach header : ['stdlib.h', 'stdarg.h', 'string.h', 'float.h']
+    if not conf.has('HAVE_@0@'.format(header.underscorify().to_upper()))
+        have_stdc = false
+    endif
+endforeach
+conf.set10('STDC_HEADERS', have_stdc)
+
+foreach symbol : ['_isnan', '_finite']
+    if cc.has_header_symbol('float.h', symbol)
+        conf.set('HAVE_DECL_@0@'.format(symbol.to_upper()), 1)
+    endif
+endforeach
+
+foreach symbol : ['INFINITY', 'isinf', 'isnan', 'nan']
+    if cc.has_header_symbol('math.h', symbol)
+        conf.set('HAVE_DECL_@0@'.format(symbol.to_upper()), 1)
+    endif
+endforeach
+
+check_function = [
+    'vasprintf',
+    'realloc',
+    'strcasecmp',
+    'strdup',
+    'strerror',
+    'vsyslog',
+    'open',
+    'strtoll',
+]
+
+if conf.has('HAVE_STRINGS_H')
+    check_function += 'strncasecmp'
+endif
+
+foreach function : check_function
+    if cc.has_function(function)
+        conf.set('HAVE_@0@'.format(function.to_upper()), 1)
+    endif
+endforeach
+conf.set10('HAVE_DOPRNT', cc.has_function('_doprnt'))
+
+foreach f : ['snprintf', 'vsnprintf', 'vprintf']
+    if cc.has_header_symbol('stdio.h', f)
+        conf.set('HAVE_@0@'.format(f.to_upper()), 1)
+    endif
+endforeach
+
+size = cc.sizeof('size_t', prefix: '#include <stddef.h>')
+conf.set('SIZEOF_SIZE_T', size)
+
+if cc.get_argument_syntax() == 'msvc'
+    size = cc.sizeof('SSIZE_T', prefix: '#include <BaseTsd.h>')
+else
+    size = cc.sizeof('ssize_t', prefix: '#include <sys/types.h>')
+endif
+conf.set('SIZEOF_SSIZE_T', size)
+
+foreach type : ['int', 'int64_t', 'long', 'long long']
+    size = cc.sizeof(type, prefix: '#include <stdint.h>')
+    conf.set('SIZEOF_@0@'.format(type.underscorify().to_upper()), size)
+endforeach
+
+if cc.links('int main(){__sync_synchronize();}', name: 'atomic builtins')
+    conf.set('HAVE_ATOMIC_BUILTINS', 1)
+endif
+
+if cc.compiles('static __thread int x = 0;', name: '__thread')
+    conf.set('HAVE___THREAD', 1)
+endif
+
+if conf.has('HAVE___THREAD')
+    conf.set('SPEC___THREAD', '__thread')
+elif cc.get_argument_syntax() == 'msvc'
+    conf.set('SPEC___THREAD', '__declspec(thread)')
+endif
+
+conf.set_quoted('VERSION', meson.project_version())
+
+config_h = configure_file(configuration: conf, output: 'config.h')
+
diff --git a/subprojects/packagefiles/json-c/meson.build b/subprojects/packagefiles/json-c/meson.build
new file mode 100644
index 0000000..c2d1c03
--- /dev/null
+++ b/subprojects/packagefiles/json-c/meson.build
@@ -0,0 +1,111 @@
+project(
+    'json-c',
+    'c',
+    version: '0.18',
+    license: 'MIT',
+    meson_version: '>=0.49',
+    default_options: [
+        meson.version().version_compare('>=1.3.0') ? 'c_std=gnu99,c99' : 'c_std=gnu99',
+    ],
+)
+
+cc = meson.get_compiler('c')
+
+if cc.get_argument_syntax() == 'msvc'
+    add_project_arguments('-D_CRT_SECURE_NO_WARNINGS', language: 'c')
+else
+    add_project_arguments('-D_GNU_SOURCE', language: 'c')
+endif
+
+if get_option('default_library') != 'static'
+    add_project_arguments('-DJSON_C_DLL', language: 'c')
+endif
+
+add_project_arguments(
+    cc.get_supported_arguments('-Wno-deprecated-declarations'),
+    language: 'c',
+)
+
+threads = dependency('threads', required: false)
+math = cc.find_library('m', required: false)
+
+subdir('config')
+inc = include_directories('config')
+
+json_config = configuration_data()
+if conf.has('HAVE_INTTYPES_H')
+    json_config.set('JSON_C_HAVE_INTTYPES_H', 1)
+endif
+json_config_h = configure_file(
+    configuration: json_config,
+    output: 'json_config.h',
+)
+
+jconf = configuration_data()
+jconf.set('JSON_H_JSON_POINTER', '#include "json_pointer.h"')
+jconf.set('JSON_H_JSON_PATCH', '#include "json_patch.h"')
+
+json_h = configure_file(
+    input: 'json.h.cmakein',
+    output: 'json.h',
+    format: 'cmake@',
+    configuration: jconf,
+)
+
+public_headers = [
+    json_config_h,
+    json_h,
+    'arraylist.h',
+    'debug.h',
+    'json_c_version.h',
+    'json_inttypes.h',
+    'json_object.h',
+    'json_pointer.h',
+    'json_tokener.h',
+    'json_util.h',
+    'linkhash.h',
+    'printbuf.h',
+]
+
+sources = files(
+    'arraylist.c',
+    'debug.c',
+    'json_c_version.c',
+    'json_object.c',
+    'json_object_iterator.c',
+    'json_pointer.c',
+    'json_tokener.c',
+    'json_util.c',
+    'json_visit.c',
+    'linkhash.c',
+    'printbuf.c',
+    'random_seed.c',
+    'strerror_override.c',
+)
+
+libjson_c = library(
+    'json-c',
+    sources,
+    include_directories: inc,
+    install: true,
+    version: '5.4.0',
+)
+
+json_c_dep = declare_dependency(
+    link_with: libjson_c,
+    include_directories: include_directories('.', '..'),
+    dependencies: [math, threads],
+    sources: json_config_h,
+)
+
+install_headers(public_headers, subdir: 'json-c')
+
+pkgconfig = import('pkgconfig')
+pkgconfig.generate(
+    libjson_c,
+    description: 'A JSON implementation in C',
+    version: meson.project_version(),
+    filebase: meson.project_name(),
+    name: meson.project_name(),
+    subdirs: 'json-c',
+)
diff --git a/subprojects/packagefiles/jsoncdac/meson.build b/subprojects/packagefiles/jsoncdac/meson.build
index f7af58f..b47b676 100644
--- a/subprojects/packagefiles/jsoncdac/meson.build
+++ b/subprojects/packagefiles/jsoncdac/meson.build
@@ -23,7 +23,7 @@
 add_project_arguments('-Wno-unused-parameter', language: 'c')
 add_project_arguments('-Wformat=0', language: 'c')
 
-jsonc = dependency('json-c')
+jsonc = dependency('json-c', static: true)
 deps += jsonc
 
 jsoncdac_sources = files(
@@ -50,10 +50,15 @@
     deps += m_dep
 endif
 
-jsoncdac = library('jsoncdac', jsoncdac_sources, dependencies: deps)
+jsoncdac = library(
+    'jsoncdac',
+    jsoncdac_sources,
+    dependencies: deps,
+    include_directories: include_directories('..'),
+)
 
 jsoncdac_dep = declare_dependency(
     link_with: jsoncdac,
     dependencies: deps,
-    include_directories: include_directories('include'),
+    include_directories: include_directories('include', '..'),
 )
