-list = run_command('grabber.sh', check: true)
-api_files = list.stdout().strip().split('\n')
-install_dir = f'@DATADIR@/kea/api'
-install_data(api_files, install_dir: install_dir)
+if not NETCONF_DEPS_FOUND
+ subdir_done()
+endif
+
+subdir('utils')
+
+yangmodulesdir = f'@DATADIR@/kea/yang/modules'
+yangmodules_list = [
+ 'ietf-dhcpv6-client@2018-09-04.yang',
+ 'ietf-dhcpv6-options@2018-09-04.yang',
+ 'ietf-dhcpv6-relay@2018-09-04.yang',
+ 'ietf-dhcpv6-server@2018-09-04.yang',
+ 'ietf-dhcpv6-types@2018-09-04.yang',
+ 'ietf-inet-types@2013-07-15.yang',
+ 'ietf-interfaces@2018-02-20.yang',
+ 'ietf-yang-types@2013-07-15.yang',
+ 'kea-ctrl-agent@2019-08-12.yang',
+ 'kea-dhcp-ddns@2022-07-27.yang',
+ 'kea-dhcp-types@2024-05-29.yang',
+ 'kea-dhcp4-server@2024-05-29.yang',
+ 'kea-dhcp6-server@2024-05-29.yang',
+ 'kea-types@2019-08-12.yang',
+ 'keatest-module@2022-11-30.yang',
+]
+list = run_command('utils/grabber.sh', check: true)
+grabbed_modules = list.stdout().strip().split('\n')
+foreach file : grabbed_modules
+ assert(
+ yangmodules_list.contains(file),
+ 'module file list mismatch: no ' + file,
+ )
+endforeach
+install_data(yangmodules_list, install_dir: yangmodulesdir)
-subdir('mysql')
-subdir('pgsql')
+yangdir = f'@DATADIR@/kea/yang/modules/utils'
+yang_utils_conf_data = configuration_data()
+# Comment says sources (vs build)
+yang_utils_conf_data.set('abs_top_builddir', TOP_SOURCE_DIR)
+# Beware that top_srcdir here must be a relative path.
+yang_utils_conf_data.set('top_srcdir', '../../../../..')
+yang_utils_conf_data.set('datarootdir', f'@PREFIX@/@DATADIR@')
+yang_lint = find_program('/opt/bin/yanglint', required: false)
+if yang_lint.found()
+ yang_utils_conf_data.set('LIBYANG_PREFIX', '/opt')
+ yang_utils_conf_data.set('SYSREPO_PREFIX', '/opt')
+else
+ yang_utils_conf_data.set('SYSREPO_PREFIX', '/usr/local')
+ yang_lint = find_program('/usr/local/bin/yanglint', required: false)
+ if yang_lint.found()
+ yang_utils_conf_data.set('LIBYANG_PREFIX', '/usr/local')
+ else
+ yang_lint = find_program('yanglint', required: true)
+ yang_utils_conf_data.set('LIBYANG_PREFIX', '')
+ endif
+endif
+
+configure_file(
+ input: 'check-hashes.sh.in',
+ output: 'check-hashes.sh',
+ configuration: yang_utils_conf_data,
+)
+configure_file(
+ input: 'check-revisions.sh.in',
+ output: 'check-revisions.sh',
+ configuration: yang_utils_conf_data,
+)
+configure_file(
+ input: 'reinstall.sh.in',
+ output: 'reinstall.sh',
+ configuration: yang_utils_conf_data,
+)