|
|
e0018b |
From 4e5faa1726d22e8ef51e860d56f4300077a3e9ba Mon Sep 17 00:00:00 2001
|
|
|
e0018b |
From: Dan Williams <dan.j.williams@intel.com>
|
|
|
e0018b |
Date: Wed, 5 Jan 2022 13:32:53 -0800
|
|
|
e0018b |
Subject: [PATCH 082/217] build: Add meson build infrastructure
|
|
|
e0018b |
|
|
|
e0018b |
Build times improve from 10s of seconds to sub-second builds especially
|
|
|
e0018b |
when ccache gets involved and the only change is a git version bump. Recall
|
|
|
e0018b |
that every time the version changes with autotools it does a reconfigure.
|
|
|
e0018b |
With meson only the objects that depend on the version string are rebuilt.
|
|
|
e0018b |
So the primary motivation is to make the ndctl project more enjoyable to
|
|
|
e0018b |
develop.
|
|
|
e0018b |
|
|
|
e0018b |
Tools, libraries, documentation, and tests all seem to be working. The
|
|
|
e0018b |
remaining work is to redo the rpm build infrastructure, and validate that
|
|
|
e0018b |
installation is working as expected.
|
|
|
e0018b |
|
|
|
e0018b |
Given the long standing momentum on the old build system it is still kept
|
|
|
e0018b |
functional for now. The only compatibility hack when moving from an
|
|
|
e0018b |
autotools build to a meson build is to delete the config.h files generated
|
|
|
e0018b |
by the old system in favor of the unified configuration header build from
|
|
|
e0018b |
the config.h.meson template.
|
|
|
e0018b |
|
|
|
e0018b |
Link: https://lore.kernel.org/r/164141837329.3990253.11664056350173402543.stgit@dwillia2-desk3.amr.corp.intel.com
|
|
|
e0018b |
Tested-by: Vaibhav Jain <vaibhav@linux.ibm.com>
|
|
|
e0018b |
Tested-by: Alison Schofield <alison.schofield@intel.com>
|
|
|
e0018b |
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
|
|
|
e0018b |
Signed-off-by: Vishal Verma <vishal.l.verma@intel.com>
|
|
|
e0018b |
---
|
|
|
e0018b |
.gitignore | 5 +-
|
|
|
e0018b |
Documentation/cxl/lib/meson.build | 79 +++++++++
|
|
|
e0018b |
Documentation/cxl/meson.build | 84 +++++++++
|
|
|
e0018b |
Documentation/daxctl/meson.build | 94 ++++++++++
|
|
|
e0018b |
Documentation/ndctl/meson.build | 124 +++++++++++++
|
|
|
e0018b |
clean_config.sh | 2 +
|
|
|
e0018b |
config.h.meson | 151 ++++++++++++++++
|
|
|
e0018b |
contrib/meson.build | 28 +++
|
|
|
e0018b |
cxl/lib/meson.build | 35 ++++
|
|
|
e0018b |
cxl/meson.build | 25 +++
|
|
|
e0018b |
daxctl/device.c | 1 +
|
|
|
e0018b |
daxctl/lib/meson.build | 44 +++++
|
|
|
e0018b |
daxctl/meson.build | 35 ++++
|
|
|
e0018b |
meson.build | 280 ++++++++++++++++++++++++++++++
|
|
|
e0018b |
meson_options.txt | 25 +++
|
|
|
e0018b |
ndctl/lib/meson.build | 48 +++++
|
|
|
e0018b |
ndctl/meson.build | 82 +++++++++
|
|
|
e0018b |
test/meson.build | 237 +++++++++++++++++++++++++
|
|
|
e0018b |
tools/meson-vcs-tag.sh | 18 ++
|
|
|
e0018b |
util/meson.build | 16 ++
|
|
|
e0018b |
version.h.in | 2 +
|
|
|
e0018b |
21 files changed, 1414 insertions(+), 1 deletion(-)
|
|
|
e0018b |
create mode 100644 Documentation/cxl/lib/meson.build
|
|
|
e0018b |
create mode 100644 Documentation/cxl/meson.build
|
|
|
e0018b |
create mode 100644 Documentation/daxctl/meson.build
|
|
|
e0018b |
create mode 100644 Documentation/ndctl/meson.build
|
|
|
e0018b |
create mode 100755 clean_config.sh
|
|
|
e0018b |
create mode 100644 config.h.meson
|
|
|
e0018b |
create mode 100644 contrib/meson.build
|
|
|
e0018b |
create mode 100644 cxl/lib/meson.build
|
|
|
e0018b |
create mode 100644 cxl/meson.build
|
|
|
e0018b |
create mode 100644 daxctl/lib/meson.build
|
|
|
e0018b |
create mode 100644 daxctl/meson.build
|
|
|
e0018b |
create mode 100644 meson.build
|
|
|
e0018b |
create mode 100644 meson_options.txt
|
|
|
e0018b |
create mode 100644 ndctl/lib/meson.build
|
|
|
e0018b |
create mode 100644 ndctl/meson.build
|
|
|
e0018b |
create mode 100644 test/meson.build
|
|
|
e0018b |
create mode 100755 tools/meson-vcs-tag.sh
|
|
|
e0018b |
create mode 100644 util/meson.build
|
|
|
e0018b |
create mode 100644 version.h.in
|
|
|
e0018b |
|
|
|
e0018b |
diff -up ndctl-71.1/.gitignore.orig ndctl-71.1/.gitignore
|
|
|
e0018b |
--- ndctl-71.1/.gitignore.orig 2022-10-07 17:29:42.924688214 -0400
|
|
|
e0018b |
+++ ndctl-71.1/.gitignore 2022-10-07 17:29:51.566717638 -0400
|
|
|
e0018b |
@@ -9,7 +9,9 @@ Makefile.in
|
|
|
e0018b |
/aclocal.m4
|
|
|
e0018b |
/autom4te.cache
|
|
|
e0018b |
/build-aux
|
|
|
e0018b |
-/config.*
|
|
|
e0018b |
+/config.h
|
|
|
e0018b |
+/config.log
|
|
|
e0018b |
+/config.status
|
|
|
e0018b |
/configure
|
|
|
e0018b |
/libtool
|
|
|
e0018b |
/stamp-h1
|
|
|
e0018b |
@@ -24,6 +26,7 @@ Documentation/ndctl/asciidoctor-extensio
|
|
|
e0018b |
Documentation/cxl/asciidoctor-extensions.rb
|
|
|
e0018b |
Documentation/cxl/lib/asciidoctor-extensions.rb
|
|
|
e0018b |
.dirstamp
|
|
|
e0018b |
+build/
|
|
|
e0018b |
daxctl/config.h
|
|
|
e0018b |
daxctl/daxctl
|
|
|
e0018b |
daxctl/lib/libdaxctl.la
|
|
|
e0018b |
diff -up ndctl-71.1/Documentation/cxl/lib/meson.build.orig ndctl-71.1/Documentation/cxl/lib/meson.build
|
|
|
e0018b |
--- ndctl-71.1/Documentation/cxl/lib/meson.build.orig 2022-10-07 17:29:51.567717641 -0400
|
|
|
e0018b |
+++ ndctl-71.1/Documentation/cxl/lib/meson.build 2022-10-07 17:29:51.567717641 -0400
|
|
|
e0018b |
@@ -0,0 +1,79 @@
|
|
|
e0018b |
+if get_option('asciidoctor').enabled()
|
|
|
e0018b |
+ asciidoc_conf = custom_target('asciidoctor-extensions.rb',
|
|
|
e0018b |
+ command : [
|
|
|
e0018b |
+ 'sed', '-e', 's,@Utility@,Libcxl,g', '-e', 's,@utility@,cxl,g', '@INPUT@'
|
|
|
e0018b |
+ ],
|
|
|
e0018b |
+ input : '../../asciidoctor-extensions.rb.in',
|
|
|
e0018b |
+ output : 'asciidoctor-extensions.rb',
|
|
|
e0018b |
+ capture : true,
|
|
|
e0018b |
+ )
|
|
|
e0018b |
+else
|
|
|
e0018b |
+ asciidoc_conf = custom_target('asciidoc.conf',
|
|
|
e0018b |
+ command : [
|
|
|
e0018b |
+ 'sed', '-e', 's,UTILITY,libcxl,g',
|
|
|
e0018b |
+ ],
|
|
|
e0018b |
+ input : '../../asciidoc.conf.in',
|
|
|
e0018b |
+ output : 'asciidoc.conf',
|
|
|
e0018b |
+ capture : true,
|
|
|
e0018b |
+ )
|
|
|
e0018b |
+endif
|
|
|
e0018b |
+
|
|
|
e0018b |
+filedeps = [
|
|
|
e0018b |
+ '../../copyright.txt',
|
|
|
e0018b |
+]
|
|
|
e0018b |
+
|
|
|
e0018b |
+libcxl_manpages = [
|
|
|
e0018b |
+ 'libcxl.txt',
|
|
|
e0018b |
+ 'cxl_new.txt',
|
|
|
e0018b |
+]
|
|
|
e0018b |
+
|
|
|
e0018b |
+foreach man : libcxl_manpages
|
|
|
e0018b |
+ name = man.split('.')[0]
|
|
|
e0018b |
+ output = name + '.3'
|
|
|
e0018b |
+ output_xml = name + '.xml'
|
|
|
e0018b |
+ if get_option('asciidoctor').enabled()
|
|
|
e0018b |
+ custom_target(name,
|
|
|
e0018b |
+ command : [
|
|
|
e0018b |
+ asciidoc,
|
|
|
e0018b |
+ '-b', 'manpage', '-d', 'manpage', '-acompat-mode', '-I', '@OUTDIR@',
|
|
|
e0018b |
+ '-rasciidoctor-extensions', '-amansource=libcxl',
|
|
|
e0018b |
+ '-amanmanual=libcxl Manual',
|
|
|
e0018b |
+ '-andctl_version=@0@'.format(meson.project_version()),
|
|
|
e0018b |
+ '-o', '@OUTPUT@', '@INPUT@'
|
|
|
e0018b |
+ ],
|
|
|
e0018b |
+ input : man,
|
|
|
e0018b |
+ output : output,
|
|
|
e0018b |
+ depend_files : filedeps,
|
|
|
e0018b |
+ depends : asciidoc_conf,
|
|
|
e0018b |
+ install : get_option('docs').enabled(),
|
|
|
e0018b |
+ install_dir : join_paths(get_option('mandir'), 'man3'),
|
|
|
e0018b |
+ )
|
|
|
e0018b |
+ else
|
|
|
e0018b |
+ xml = custom_target(output_xml,
|
|
|
e0018b |
+ command : [
|
|
|
e0018b |
+ asciidoc,
|
|
|
e0018b |
+ '-b', 'docbook', '-d', 'manpage', '-f', asciidoc_conf, '--unsafe',
|
|
|
e0018b |
+ '-andctl_version=@0@'.format(meson.project_version()),
|
|
|
e0018b |
+ '-o', '@OUTPUT@', '@INPUT@',
|
|
|
e0018b |
+ ],
|
|
|
e0018b |
+ input : man,
|
|
|
e0018b |
+ output : output_xml,
|
|
|
e0018b |
+ depend_files : filedeps,
|
|
|
e0018b |
+ depends : asciidoc_conf,
|
|
|
e0018b |
+ )
|
|
|
e0018b |
+
|
|
|
e0018b |
+ xsl = files('../../manpage-normal.xsl')
|
|
|
e0018b |
+
|
|
|
e0018b |
+ custom_target(name,
|
|
|
e0018b |
+ command : [
|
|
|
e0018b |
+ xmlto, '-o', '@OUTDIR@', '-m', xsl, 'man', '@INPUT@'
|
|
|
e0018b |
+ ],
|
|
|
e0018b |
+ depends : xml,
|
|
|
e0018b |
+ depend_files : xsl,
|
|
|
e0018b |
+ input : xml,
|
|
|
e0018b |
+ output : output,
|
|
|
e0018b |
+ install : get_option('docs').enabled(),
|
|
|
e0018b |
+ install_dir : join_paths(get_option('mandir'), 'man3'),
|
|
|
e0018b |
+ )
|
|
|
e0018b |
+ endif
|
|
|
e0018b |
+endforeach
|
|
|
e0018b |
diff -up ndctl-71.1/Documentation/cxl/meson.build.orig ndctl-71.1/Documentation/cxl/meson.build
|
|
|
e0018b |
--- ndctl-71.1/Documentation/cxl/meson.build.orig 2022-10-07 17:29:51.568717645 -0400
|
|
|
e0018b |
+++ ndctl-71.1/Documentation/cxl/meson.build 2022-10-07 17:29:51.568717645 -0400
|
|
|
e0018b |
@@ -0,0 +1,84 @@
|
|
|
e0018b |
+if get_option('asciidoctor').enabled()
|
|
|
e0018b |
+ asciidoc_conf = custom_target('asciidoctor-extensions.rb',
|
|
|
e0018b |
+ command : [
|
|
|
e0018b |
+ 'sed', '-e', 's,@Utility@,Cxl,g', '-e', 's,@utility@,cxl,g', '@INPUT@'
|
|
|
e0018b |
+ ],
|
|
|
e0018b |
+ input : '../asciidoctor-extensions.rb.in',
|
|
|
e0018b |
+ output : 'asciidoctor-extensions.rb',
|
|
|
e0018b |
+ capture : true,
|
|
|
e0018b |
+ )
|
|
|
e0018b |
+else
|
|
|
e0018b |
+ asciidoc_conf = custom_target('asciidoc.conf',
|
|
|
e0018b |
+ command : [
|
|
|
e0018b |
+ 'sed', '-e', 's,UTILITY,cxl,g',
|
|
|
e0018b |
+ ],
|
|
|
e0018b |
+ input : '../asciidoc.conf.in',
|
|
|
e0018b |
+ output : 'asciidoc.conf',
|
|
|
e0018b |
+ capture : true,
|
|
|
e0018b |
+ )
|
|
|
e0018b |
+endif
|
|
|
e0018b |
+
|
|
|
e0018b |
+filedeps = [
|
|
|
e0018b |
+ '../copyright.txt',
|
|
|
e0018b |
+]
|
|
|
e0018b |
+
|
|
|
e0018b |
+cxl_manpages = [
|
|
|
e0018b |
+ 'cxl.txt',
|
|
|
e0018b |
+ 'cxl-list.txt',
|
|
|
e0018b |
+ 'cxl-read-labels.txt',
|
|
|
e0018b |
+ 'cxl-write-labels.txt',
|
|
|
e0018b |
+ 'cxl-zero-labels.txt',
|
|
|
e0018b |
+]
|
|
|
e0018b |
+
|
|
|
e0018b |
+foreach man : cxl_manpages
|
|
|
e0018b |
+ name = man.split('.')[0]
|
|
|
e0018b |
+ output = name + '.1'
|
|
|
e0018b |
+ output_xml = name + '.xml'
|
|
|
e0018b |
+ if get_option('asciidoctor').enabled()
|
|
|
e0018b |
+ custom_target(name,
|
|
|
e0018b |
+ command : [
|
|
|
e0018b |
+ asciidoc,
|
|
|
e0018b |
+ '-b', 'manpage', '-d', 'manpage', '-acompat-mode', '-I', '@OUTDIR@',
|
|
|
e0018b |
+ '-rasciidoctor-extensions', '-amansource=cxl',
|
|
|
e0018b |
+ '-amanmanual=cxl Manual',
|
|
|
e0018b |
+ '-andctl_version=@0@'.format(meson.project_version()),
|
|
|
e0018b |
+ '-o', '@OUTPUT@', '@INPUT@'
|
|
|
e0018b |
+ ],
|
|
|
e0018b |
+ input : man,
|
|
|
e0018b |
+ output : output,
|
|
|
e0018b |
+ depend_files : filedeps,
|
|
|
e0018b |
+ depends : asciidoc_conf,
|
|
|
e0018b |
+ install : get_option('docs').enabled(),
|
|
|
e0018b |
+ install_dir : join_paths(get_option('mandir'), 'man1'),
|
|
|
e0018b |
+ )
|
|
|
e0018b |
+ else
|
|
|
e0018b |
+ xml = custom_target(output_xml,
|
|
|
e0018b |
+ command : [
|
|
|
e0018b |
+ asciidoc,
|
|
|
e0018b |
+ '-b', 'docbook', '-d', 'manpage', '-f', asciidoc_conf, '--unsafe',
|
|
|
e0018b |
+ '-andctl_version=@0@'.format(meson.project_version()),
|
|
|
e0018b |
+ '-o', '@OUTPUT@', '@INPUT@',
|
|
|
e0018b |
+ ],
|
|
|
e0018b |
+ input : man,
|
|
|
e0018b |
+ output : output_xml,
|
|
|
e0018b |
+ depend_files : filedeps,
|
|
|
e0018b |
+ depends : asciidoc_conf,
|
|
|
e0018b |
+ )
|
|
|
e0018b |
+
|
|
|
e0018b |
+ xsl = files('../manpage-normal.xsl')
|
|
|
e0018b |
+
|
|
|
e0018b |
+ custom_target(name,
|
|
|
e0018b |
+ command : [
|
|
|
e0018b |
+ xmlto, '-o', '@OUTDIR@', '-m', xsl, 'man', '@INPUT@'
|
|
|
e0018b |
+ ],
|
|
|
e0018b |
+ depends : xml,
|
|
|
e0018b |
+ depend_files : xsl,
|
|
|
e0018b |
+ input : xml,
|
|
|
e0018b |
+ output : output,
|
|
|
e0018b |
+ install : get_option('docs').enabled(),
|
|
|
e0018b |
+ install_dir : join_paths(get_option('mandir'), 'man1'),
|
|
|
e0018b |
+ )
|
|
|
e0018b |
+ endif
|
|
|
e0018b |
+endforeach
|
|
|
e0018b |
+
|
|
|
e0018b |
+subdir('lib')
|
|
|
e0018b |
diff -up ndctl-71.1/Documentation/daxctl/meson.build.orig ndctl-71.1/Documentation/daxctl/meson.build
|
|
|
e0018b |
--- ndctl-71.1/Documentation/daxctl/meson.build.orig 2022-10-07 17:29:51.569717648 -0400
|
|
|
e0018b |
+++ ndctl-71.1/Documentation/daxctl/meson.build 2022-10-07 17:29:51.568717645 -0400
|
|
|
e0018b |
@@ -0,0 +1,94 @@
|
|
|
e0018b |
+if get_option('asciidoctor').enabled()
|
|
|
e0018b |
+ asciidoc_conf = custom_target('asciidoctor-extensions.rb',
|
|
|
e0018b |
+ command : [
|
|
|
e0018b |
+ 'sed', '-e', 's,@Utility@,Daxctl,g', '-e', 's,@utility@,daxctl,g', '@INPUT@'
|
|
|
e0018b |
+ ],
|
|
|
e0018b |
+ input : '../asciidoctor-extensions.rb.in',
|
|
|
e0018b |
+ output : 'asciidoctor-extensions.rb',
|
|
|
e0018b |
+ capture : true,
|
|
|
e0018b |
+ )
|
|
|
e0018b |
+else
|
|
|
e0018b |
+ asciidoc_conf = custom_target('asciidoc.conf',
|
|
|
e0018b |
+ command : [
|
|
|
e0018b |
+ 'sed', '-e', 's,UTILITY,daxctl,g',
|
|
|
e0018b |
+ ],
|
|
|
e0018b |
+ input : '../asciidoc.conf.in',
|
|
|
e0018b |
+ output : 'asciidoc.conf',
|
|
|
e0018b |
+ capture : true,
|
|
|
e0018b |
+ )
|
|
|
e0018b |
+endif
|
|
|
e0018b |
+
|
|
|
e0018b |
+filedeps = [
|
|
|
e0018b |
+ 'human-option.txt',
|
|
|
e0018b |
+ '../copyright.txt',
|
|
|
e0018b |
+]
|
|
|
e0018b |
+
|
|
|
e0018b |
+daxctl_manpages = [
|
|
|
e0018b |
+ 'daxctl.txt',
|
|
|
e0018b |
+ 'daxctl-list.txt',
|
|
|
e0018b |
+ 'daxctl-migrate-device-model.txt',
|
|
|
e0018b |
+ 'daxctl-reconfigure-device.txt',
|
|
|
e0018b |
+ 'daxctl-online-memory.txt',
|
|
|
e0018b |
+ 'daxctl-offline-memory.txt',
|
|
|
e0018b |
+ 'daxctl-disable-device.txt',
|
|
|
e0018b |
+ 'daxctl-enable-device.txt',
|
|
|
e0018b |
+ 'daxctl-create-device.txt',
|
|
|
e0018b |
+ 'daxctl-destroy-device.txt',
|
|
|
e0018b |
+]
|
|
|
e0018b |
+
|
|
|
e0018b |
+foreach man : daxctl_manpages
|
|
|
e0018b |
+ name = man.split('.')[0]
|
|
|
e0018b |
+ output = name + '.1'
|
|
|
e0018b |
+ output_xml = name + '.xml'
|
|
|
e0018b |
+ if get_option('asciidoctor').enabled()
|
|
|
e0018b |
+ custom_target(name,
|
|
|
e0018b |
+ command : [
|
|
|
e0018b |
+ asciidoc,
|
|
|
e0018b |
+ '-b', 'manpage', '-d', 'manpage', '-acompat-mode', '-I', '@OUTDIR@',
|
|
|
e0018b |
+ '-rasciidoctor-extensions', '-amansource=daxctl',
|
|
|
e0018b |
+ '-amanmanual=daxctl Manual',
|
|
|
e0018b |
+ '-adaxctl_confdir=@0@'.format(daxctlconf_dir),
|
|
|
e0018b |
+ '-adaxctl_conf=@0@'.format(daxctlconf),
|
|
|
e0018b |
+ '-andctl_keysdir=@0@'.format(ndctlkeys_dir),
|
|
|
e0018b |
+ '-andctl_version=@0@'.format(meson.project_version()),
|
|
|
e0018b |
+ '-o', '@OUTPUT@', '@INPUT@'
|
|
|
e0018b |
+ ],
|
|
|
e0018b |
+ input : man,
|
|
|
e0018b |
+ output : output,
|
|
|
e0018b |
+ depend_files : filedeps,
|
|
|
e0018b |
+ depends : asciidoc_conf,
|
|
|
e0018b |
+ install : get_option('docs').enabled(),
|
|
|
e0018b |
+ install_dir : join_paths(get_option('mandir'), 'man1'),
|
|
|
e0018b |
+ )
|
|
|
e0018b |
+ else
|
|
|
e0018b |
+ xml = custom_target(output_xml,
|
|
|
e0018b |
+ command : [
|
|
|
e0018b |
+ asciidoc,
|
|
|
e0018b |
+ '-b', 'docbook', '-d', 'manpage', '-f', asciidoc_conf, '--unsafe',
|
|
|
e0018b |
+ '-adaxctl_confdir=@0@'.format(daxctlconf_dir),
|
|
|
e0018b |
+ '-adaxctl_conf=@0@'.format(daxctlconf),
|
|
|
e0018b |
+ '-andctl_keysdir=@0@'.format(ndctlkeys_dir),
|
|
|
e0018b |
+ '-andctl_version=@0@'.format(meson.project_version()),
|
|
|
e0018b |
+ '-o', '@OUTPUT@', '@INPUT@',
|
|
|
e0018b |
+ ],
|
|
|
e0018b |
+ input : man,
|
|
|
e0018b |
+ output : output_xml,
|
|
|
e0018b |
+ depend_files : filedeps,
|
|
|
e0018b |
+ depends : asciidoc_conf,
|
|
|
e0018b |
+ )
|
|
|
e0018b |
+
|
|
|
e0018b |
+ xsl = files('../manpage-normal.xsl')
|
|
|
e0018b |
+
|
|
|
e0018b |
+ custom_target(name,
|
|
|
e0018b |
+ command : [
|
|
|
e0018b |
+ xmlto, '-o', '@OUTDIR@', '-m', xsl, 'man', '@INPUT@'
|
|
|
e0018b |
+ ],
|
|
|
e0018b |
+ depends : xml,
|
|
|
e0018b |
+ depend_files : xsl,
|
|
|
e0018b |
+ input : xml,
|
|
|
e0018b |
+ output : output,
|
|
|
e0018b |
+ install : get_option('docs').enabled(),
|
|
|
e0018b |
+ install_dir : join_paths(get_option('mandir'), 'man1'),
|
|
|
e0018b |
+ )
|
|
|
e0018b |
+ endif
|
|
|
e0018b |
+endforeach
|
|
|
e0018b |
diff -up ndctl-71.1/Documentation/ndctl/meson.build.orig ndctl-71.1/Documentation/ndctl/meson.build
|
|
|
e0018b |
--- ndctl-71.1/Documentation/ndctl/meson.build.orig 2022-10-07 17:29:51.570717651 -0400
|
|
|
e0018b |
+++ ndctl-71.1/Documentation/ndctl/meson.build 2022-10-07 17:29:51.570717651 -0400
|
|
|
e0018b |
@@ -0,0 +1,124 @@
|
|
|
e0018b |
+if get_option('asciidoctor').enabled()
|
|
|
e0018b |
+ asciidoc_conf = custom_target('asciidoctor-extensions.rb',
|
|
|
e0018b |
+ command : [
|
|
|
e0018b |
+ 'sed', '-e', 's,@Utility@,Ndctl,g', '-e', 's,@utility@,ndctl,g', '@INPUT@'
|
|
|
e0018b |
+ ],
|
|
|
e0018b |
+ input : '../asciidoctor-extensions.rb.in',
|
|
|
e0018b |
+ output : 'asciidoctor-extensions.rb',
|
|
|
e0018b |
+ capture : true,
|
|
|
e0018b |
+ )
|
|
|
e0018b |
+else
|
|
|
e0018b |
+ asciidoc_conf = custom_target('asciidoc.conf',
|
|
|
e0018b |
+ command : [
|
|
|
e0018b |
+ 'sed', '-e', 's,UTILITY,ndctl,g',
|
|
|
e0018b |
+ ],
|
|
|
e0018b |
+ input : '../asciidoc.conf.in',
|
|
|
e0018b |
+ output : 'asciidoc.conf',
|
|
|
e0018b |
+ capture : true,
|
|
|
e0018b |
+ )
|
|
|
e0018b |
+endif
|
|
|
e0018b |
+
|
|
|
e0018b |
+filedeps = [
|
|
|
e0018b |
+ '../copyright.txt',
|
|
|
e0018b |
+ 'region-description.txt',
|
|
|
e0018b |
+ 'xable-region-options.txt',
|
|
|
e0018b |
+ 'dimm-description.txt',
|
|
|
e0018b |
+ 'xable-dimm-options.txt',
|
|
|
e0018b |
+ 'xable-namespace-options.txt',
|
|
|
e0018b |
+ 'ars-description.txt',
|
|
|
e0018b |
+ 'labels-description.txt',
|
|
|
e0018b |
+ 'labels-options.txt',
|
|
|
e0018b |
+]
|
|
|
e0018b |
+
|
|
|
e0018b |
+ndctl_manpages = [
|
|
|
e0018b |
+ 'ndctl.txt',
|
|
|
e0018b |
+ 'ndctl-wait-scrub.txt',
|
|
|
e0018b |
+ 'ndctl-start-scrub.txt',
|
|
|
e0018b |
+ 'ndctl-zero-labels.txt',
|
|
|
e0018b |
+ 'ndctl-read-labels.txt',
|
|
|
e0018b |
+ 'ndctl-write-labels.txt',
|
|
|
e0018b |
+ 'ndctl-init-labels.txt',
|
|
|
e0018b |
+ 'ndctl-check-labels.txt',
|
|
|
e0018b |
+ 'ndctl-enable-region.txt',
|
|
|
e0018b |
+ 'ndctl-disable-region.txt',
|
|
|
e0018b |
+ 'ndctl-enable-dimm.txt',
|
|
|
e0018b |
+ 'ndctl-disable-dimm.txt',
|
|
|
e0018b |
+ 'ndctl-enable-namespace.txt',
|
|
|
e0018b |
+ 'ndctl-disable-namespace.txt',
|
|
|
e0018b |
+ 'ndctl-create-namespace.txt',
|
|
|
e0018b |
+ 'ndctl-destroy-namespace.txt',
|
|
|
e0018b |
+ 'ndctl-check-namespace.txt',
|
|
|
e0018b |
+ 'ndctl-clear-errors.txt',
|
|
|
e0018b |
+ 'ndctl-inject-error.txt',
|
|
|
e0018b |
+ 'ndctl-inject-smart.txt',
|
|
|
e0018b |
+ 'ndctl-update-firmware.txt',
|
|
|
e0018b |
+ 'ndctl-list.txt',
|
|
|
e0018b |
+ 'ndctl-monitor.txt',
|
|
|
e0018b |
+ 'ndctl-setup-passphrase.txt',
|
|
|
e0018b |
+ 'ndctl-update-passphrase.txt',
|
|
|
e0018b |
+ 'ndctl-remove-passphrase.txt',
|
|
|
e0018b |
+ 'ndctl-freeze-security.txt',
|
|
|
e0018b |
+ 'ndctl-sanitize-dimm.txt',
|
|
|
e0018b |
+ 'ndctl-load-keys.txt',
|
|
|
e0018b |
+ 'ndctl-wait-overwrite.txt',
|
|
|
e0018b |
+ 'ndctl-read-infoblock.txt',
|
|
|
e0018b |
+ 'ndctl-write-infoblock.txt',
|
|
|
e0018b |
+ 'ndctl-activate-firmware.txt',
|
|
|
e0018b |
+]
|
|
|
e0018b |
+
|
|
|
e0018b |
+foreach man : ndctl_manpages
|
|
|
e0018b |
+ name = man.split('.')[0]
|
|
|
e0018b |
+ output = name + '.1'
|
|
|
e0018b |
+ output_xml = name + '.xml'
|
|
|
e0018b |
+ if get_option('asciidoctor').enabled()
|
|
|
e0018b |
+ custom_target(name,
|
|
|
e0018b |
+ command : [
|
|
|
e0018b |
+ asciidoc,
|
|
|
e0018b |
+ '-b', 'manpage', '-d', 'manpage', '-acompat-mode', '-I', '@OUTDIR@',
|
|
|
e0018b |
+ '-rasciidoctor-extensions', '-amansource=ndctl',
|
|
|
e0018b |
+ '-amanmanual=ndctl Manual',
|
|
|
e0018b |
+ '-andctl_confdir=@0@'.format(ndctlconf_dir),
|
|
|
e0018b |
+ '-andctl_monitorconf=@0@'.format(ndctlconf),
|
|
|
e0018b |
+ '-andctl_keysdir=@0@'.format(ndctlkeys_dir),
|
|
|
e0018b |
+ '-andctl_version=@0@'.format(meson.project_version()),
|
|
|
e0018b |
+ '-o', '@OUTPUT@', '@INPUT@'
|
|
|
e0018b |
+ ],
|
|
|
e0018b |
+ input : man,
|
|
|
e0018b |
+ output : output,
|
|
|
e0018b |
+ depend_files : filedeps,
|
|
|
e0018b |
+ depends : asciidoc_conf,
|
|
|
e0018b |
+ install : get_option('docs').enabled(),
|
|
|
e0018b |
+ install_dir : join_paths(get_option('mandir'), 'man1'),
|
|
|
e0018b |
+ )
|
|
|
e0018b |
+ else
|
|
|
e0018b |
+ xml = custom_target(output_xml,
|
|
|
e0018b |
+ command : [
|
|
|
e0018b |
+ asciidoc,
|
|
|
e0018b |
+ '-b', 'docbook', '-d', 'manpage', '-f', asciidoc_conf, '--unsafe',
|
|
|
e0018b |
+ '-andctl_version=@0@'.format(meson.project_version()),
|
|
|
e0018b |
+ '-andctl_confdir=@0@'.format(ndctlconf_dir),
|
|
|
e0018b |
+ '-andctl_monitorconf=@0@'.format(ndctlconf),
|
|
|
e0018b |
+ '-andctl_keysdir=@0@'.format(ndctlkeys_dir),
|
|
|
e0018b |
+ '-o', '@OUTPUT@', '@INPUT@',
|
|
|
e0018b |
+ ],
|
|
|
e0018b |
+ input : man,
|
|
|
e0018b |
+ output : output_xml,
|
|
|
e0018b |
+ depend_files : filedeps,
|
|
|
e0018b |
+ depends : asciidoc_conf,
|
|
|
e0018b |
+ )
|
|
|
e0018b |
+
|
|
|
e0018b |
+ xsl = files('../manpage-normal.xsl')
|
|
|
e0018b |
+
|
|
|
e0018b |
+ custom_target(name,
|
|
|
e0018b |
+ command : [
|
|
|
e0018b |
+ xmlto, '-o', '@OUTDIR@', '-m', xsl, 'man', '@INPUT@'
|
|
|
e0018b |
+ ],
|
|
|
e0018b |
+ depends : xml,
|
|
|
e0018b |
+ depend_files : xsl,
|
|
|
e0018b |
+ input : xml,
|
|
|
e0018b |
+ output : output,
|
|
|
e0018b |
+ install : get_option('docs').enabled(),
|
|
|
e0018b |
+ install_dir : join_paths(get_option('mandir'), 'man1'),
|
|
|
e0018b |
+ )
|
|
|
e0018b |
+ endif
|
|
|
e0018b |
+endforeach
|
|
|
e0018b |
diff -up ndctl-71.1/clean_config.sh.orig ndctl-71.1/clean_config.sh
|
|
|
e0018b |
--- ndctl-71.1/clean_config.sh.orig 2022-10-07 17:29:51.570717651 -0400
|
|
|
e0018b |
+++ ndctl-71.1/clean_config.sh 2022-10-07 17:29:51.570717651 -0400
|
|
|
e0018b |
@@ -0,0 +1,2 @@
|
|
|
e0018b |
+#!/bin/bash
|
|
|
e0018b |
+git ls-files -o --exclude build | grep config.h\$ | xargs rm
|
|
|
e0018b |
diff -up ndctl-71.1/config.h.meson.orig ndctl-71.1/config.h.meson
|
|
|
e0018b |
--- ndctl-71.1/config.h.meson.orig 2022-10-07 17:29:51.570717651 -0400
|
|
|
e0018b |
+++ ndctl-71.1/config.h.meson 2022-10-07 17:29:51.570717651 -0400
|
|
|
e0018b |
@@ -0,0 +1,151 @@
|
|
|
e0018b |
+/* Debug messages. */
|
|
|
e0018b |
+#mesondefine ENABLE_DEBUG
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* destructive functional tests support */
|
|
|
e0018b |
+#mesondefine ENABLE_DESTRUCTIVE
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Documentation / man pages. */
|
|
|
e0018b |
+#mesondefine ENABLE_DOCS
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Enable keyutils support */
|
|
|
e0018b |
+#mesondefine ENABLE_KEYUTILS
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* System logging. */
|
|
|
e0018b |
+#mesondefine ENABLE_LOGGING
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* ndctl test poison support */
|
|
|
e0018b |
+#mesondefine ENABLE_POISON
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* ndctl test support */
|
|
|
e0018b |
+#mesondefine ENABLE_TEST
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Define to 1 if big-endian-arch */
|
|
|
e0018b |
+#mesondefine HAVE_BIG_ENDIAN
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Define to 1 if you have the declaration of `BUS_MCEERR_AR', and to 0 if you
|
|
|
e0018b |
+ don't. */
|
|
|
e0018b |
+#mesondefine HAVE_DECL_BUS_MCEERR_AR
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Define to 1 if you have the declaration of `MAP_SHARED_VALIDATE', and to 0
|
|
|
e0018b |
+ if you don't. */
|
|
|
e0018b |
+#mesondefine HAVE_DECL_MAP_SHARED_VALIDATE
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Define to 1 if you have the declaration of `MAP_SYNC', and to 0 if you
|
|
|
e0018b |
+ don't. */
|
|
|
e0018b |
+#mesondefine HAVE_DECL_MAP_SYNC
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Define to 1 if you have the <dlfcn.h> header file. */
|
|
|
e0018b |
+#mesondefine HAVE_DLFCN_H
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Define to 1 if you have the <inttypes.h> header file. */
|
|
|
e0018b |
+#mesondefine HAVE_INTTYPES_H
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Define to 1 if you have the <keyutils.h> header file. */
|
|
|
e0018b |
+#mesondefine HAVE_KEYUTILS_H
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Define to 1 if you have the <linux/version.h> header file. */
|
|
|
e0018b |
+#mesondefine HAVE_LINUX_VERSION_H
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Define to 1 if little-endian-arch */
|
|
|
e0018b |
+#mesondefine HAVE_LITTLE_ENDIAN
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Define to 1 if you have the <memory.h> header file. */
|
|
|
e0018b |
+#mesondefine HAVE_MEMORY_H
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Define to 1 if you have the `secure_getenv' function. */
|
|
|
e0018b |
+#mesondefine HAVE_SECURE_GETENV
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Define to 1 if you have statement expressions. */
|
|
|
e0018b |
+#mesondefine HAVE_STATEMENT_EXPR
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Define to 1 if you have the <stdint.h> header file. */
|
|
|
e0018b |
+#mesondefine HAVE_STDINT_H
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Define to 1 if you have the <stdlib.h> header file. */
|
|
|
e0018b |
+#mesondefine HAVE_STDLIB_H
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Define to 1 if you have the <strings.h> header file. */
|
|
|
e0018b |
+#mesondefine HAVE_STRINGS_H
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Define to 1 if you have the <string.h> header file. */
|
|
|
e0018b |
+#mesondefine HAVE_STRING_H
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Define to 1 if you have the <sys/stat.h> header file. */
|
|
|
e0018b |
+#mesondefine HAVE_SYS_STAT_H
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Define to 1 if you have the <sys/types.h> header file. */
|
|
|
e0018b |
+#mesondefine HAVE_SYS_TYPES_H
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Define to 1 if typeof works with your compiler. */
|
|
|
e0018b |
+#mesondefine HAVE_TYPEOF
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Define to 1 if you have the <unistd.h> header file. */
|
|
|
e0018b |
+#mesondefine HAVE_UNISTD_H
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Define to 1 if using libuuid */
|
|
|
e0018b |
+#mesondefine HAVE_UUID
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Define to 1 if you have the `__secure_getenv' function. */
|
|
|
e0018b |
+#mesondefine HAVE___SECURE_GETENV
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Define to the sub-directory where libtool stores uninstalled libraries. */
|
|
|
e0018b |
+#mesondefine LT_OBJDIR
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Name of package */
|
|
|
e0018b |
+#mesondefine PACKAGE
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Define to the address where bug reports for this package should be sent. */
|
|
|
e0018b |
+#mesondefine PACKAGE_BUGREPORT
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Define to the full name of this package. */
|
|
|
e0018b |
+#mesondefine PACKAGE_NAME
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Define to the full name and version of this package. */
|
|
|
e0018b |
+#mesondefine PACKAGE_STRING
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Define to the one symbol short name of this package. */
|
|
|
e0018b |
+#mesondefine PACKAGE_TARNAME
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Define to the home page for this package. */
|
|
|
e0018b |
+#mesondefine PACKAGE_URL
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Define to the version of this package. */
|
|
|
e0018b |
+#mesondefine PACKAGE_VERSION
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Define to 1 if you have the ANSI C header files. */
|
|
|
e0018b |
+#mesondefine STDC_HEADERS
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Version number of package */
|
|
|
e0018b |
+#mesondefine VERSION
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Number of bits in a file offset, on hosts where this is settable. */
|
|
|
e0018b |
+#mesondefine _FILE_OFFSET_BITS
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Define for large files, on AIX-style hosts. */
|
|
|
e0018b |
+#mesondefine _LARGE_FILES
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Define to 1 if on MINIX. */
|
|
|
e0018b |
+#mesondefine _MINIX
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Define to 2 if the system does not provide POSIX.1 features except with
|
|
|
e0018b |
+ this defined. */
|
|
|
e0018b |
+#mesondefine _POSIX_1_SOURCE
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Define to 1 if you need to in order for `stat' and other things to work. */
|
|
|
e0018b |
+#mesondefine _POSIX_SOURCE
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Define to __typeof__ if your compiler spells it that way. */
|
|
|
e0018b |
+#mesondefine typeof
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Define to enable GNU Source Extensions */
|
|
|
e0018b |
+#mesondefine _GNU_SOURCE
|
|
|
e0018b |
+
|
|
|
e0018b |
+/* Locations to install configuration files, key config, man pages, etc.. */
|
|
|
e0018b |
+#mesondefine NDCTL_CONF_FILE
|
|
|
e0018b |
+#mesondefine NDCTL_CONF_DIR
|
|
|
e0018b |
+#mesondefine DAXCTL_CONF_DIR
|
|
|
e0018b |
+#mesondefine NDCTL_KEYS_DIR
|
|
|
e0018b |
+#mesondefine NDCTL_MAN_PATH
|
|
|
e0018b |
+#mesondefine DAXCTL_MODPROBE_DATA
|
|
|
e0018b |
+#mesondefine DAXCTL_MODPROBE_INSTALL
|
|
|
e0018b |
+#mesondefine PREFIX
|
|
|
e0018b |
diff -up ndctl-71.1/contrib/meson.build.orig ndctl-71.1/contrib/meson.build
|
|
|
e0018b |
--- ndctl-71.1/contrib/meson.build.orig 2022-10-07 17:29:51.571717655 -0400
|
|
|
e0018b |
+++ ndctl-71.1/contrib/meson.build 2022-10-07 17:29:51.570717651 -0400
|
|
|
e0018b |
@@ -0,0 +1,28 @@
|
|
|
e0018b |
+bashcompletiondir = get_option('bashcompletiondir')
|
|
|
e0018b |
+if bashcompletiondir == ''
|
|
|
e0018b |
+ bash_completion = dependency('bash-completion', required : false)
|
|
|
e0018b |
+ if bash_completion.found()
|
|
|
e0018b |
+ bashcompletiondir = bash_completion.get_pkgconfig_variable('completionsdir')
|
|
|
e0018b |
+ else
|
|
|
e0018b |
+ bashcompletiondir = datadir / 'bash-completion/completions'
|
|
|
e0018b |
+ endif
|
|
|
e0018b |
+endif
|
|
|
e0018b |
+
|
|
|
e0018b |
+if bashcompletiondir != 'no'
|
|
|
e0018b |
+ install_data('ndctl', install_dir : bashcompletiondir)
|
|
|
e0018b |
+
|
|
|
e0018b |
+# TODO Switch to symlinks once 0.61.0 is more widely available
|
|
|
e0018b |
+# install_symlink('daxctl',
|
|
|
e0018b |
+# install_dir : bashcompletiondir,
|
|
|
e0018b |
+# pointing_to : 'ndctl'
|
|
|
e0018b |
+# )
|
|
|
e0018b |
+# install_symlink('cxl',
|
|
|
e0018b |
+# install_dir : bashcompletiondir,
|
|
|
e0018b |
+# pointing_to : 'ndctl'
|
|
|
e0018b |
+# )
|
|
|
e0018b |
+ install_data('ndctl', rename : 'daxctl', install_dir : bashcompletiondir)
|
|
|
e0018b |
+ install_data('ndctl', rename : 'cxl', install_dir : bashcompletiondir)
|
|
|
e0018b |
+endif
|
|
|
e0018b |
+
|
|
|
e0018b |
+modprobedatadir = get_option('sysconfdir') + '/modprobe.d/'
|
|
|
e0018b |
+install_data('nvdimm-security.conf', install_dir : modprobedatadir)
|
|
|
e0018b |
diff -up ndctl-71.1/cxl/lib/meson.build.orig ndctl-71.1/cxl/lib/meson.build
|
|
|
e0018b |
--- ndctl-71.1/cxl/lib/meson.build.orig 2022-10-07 17:29:51.571717655 -0400
|
|
|
e0018b |
+++ ndctl-71.1/cxl/lib/meson.build 2022-10-07 17:29:51.571717655 -0400
|
|
|
e0018b |
@@ -0,0 +1,35 @@
|
|
|
e0018b |
+libcxl_version = '@0@.@1@.@2@'.format(
|
|
|
e0018b |
+ LIBCXL_CURRENT - LIBCXL_AGE,
|
|
|
e0018b |
+ LIBCXL_REVISION,
|
|
|
e0018b |
+ LIBCXL_AGE)
|
|
|
e0018b |
+
|
|
|
e0018b |
+mapfile = files('libcxl.sym')
|
|
|
e0018b |
+vflag = '-Wl,--version-script,@0@/@1@'.format(project_source_root, mapfile[0])
|
|
|
e0018b |
+
|
|
|
e0018b |
+cxl = library('cxl',
|
|
|
e0018b |
+ '../../util/sysfs.c',
|
|
|
e0018b |
+ '../../util/log.c',
|
|
|
e0018b |
+ '../../util/log.h',
|
|
|
e0018b |
+ 'libcxl.c',
|
|
|
e0018b |
+ include_directories : root_inc,
|
|
|
e0018b |
+ dependencies : [
|
|
|
e0018b |
+ uuid,
|
|
|
e0018b |
+ kmod,
|
|
|
e0018b |
+ ],
|
|
|
e0018b |
+ version : libcxl_version,
|
|
|
e0018b |
+ install : true,
|
|
|
e0018b |
+ install_dir : rootlibdir,
|
|
|
e0018b |
+ link_args : vflag,
|
|
|
e0018b |
+ link_depends : mapfile,
|
|
|
e0018b |
+)
|
|
|
e0018b |
+cxl_dep = declare_dependency(link_with : cxl)
|
|
|
e0018b |
+
|
|
|
e0018b |
+custom_target(
|
|
|
e0018b |
+ 'libcxl.pc',
|
|
|
e0018b |
+ command : pkgconfig_script + [ '@INPUT@' ],
|
|
|
e0018b |
+ input : 'libcxl.pc.in',
|
|
|
e0018b |
+ output : 'libcxl.pc',
|
|
|
e0018b |
+ capture : true,
|
|
|
e0018b |
+ install : true,
|
|
|
e0018b |
+ install_dir : pkgconfiglibdir,
|
|
|
e0018b |
+)
|
|
|
e0018b |
diff -up ndctl-71.1/cxl/meson.build.orig ndctl-71.1/cxl/meson.build
|
|
|
e0018b |
--- ndctl-71.1/cxl/meson.build.orig 2022-10-07 17:29:51.571717655 -0400
|
|
|
e0018b |
+++ ndctl-71.1/cxl/meson.build 2022-10-07 17:29:51.571717655 -0400
|
|
|
e0018b |
@@ -0,0 +1,25 @@
|
|
|
e0018b |
+cxl_src = [
|
|
|
e0018b |
+ 'cxl.c',
|
|
|
e0018b |
+ 'list.c',
|
|
|
e0018b |
+ 'memdev.c',
|
|
|
e0018b |
+ '../util/json.c',
|
|
|
e0018b |
+ 'json.c',
|
|
|
e0018b |
+ 'filter.c',
|
|
|
e0018b |
+]
|
|
|
e0018b |
+
|
|
|
e0018b |
+cxl_tool = executable('cxl',
|
|
|
e0018b |
+ cxl_src,
|
|
|
e0018b |
+ include_directories : root_inc,
|
|
|
e0018b |
+ dependencies : [
|
|
|
e0018b |
+ cxl_dep,
|
|
|
e0018b |
+ util_dep,
|
|
|
e0018b |
+ uuid,
|
|
|
e0018b |
+ kmod,
|
|
|
e0018b |
+ json,
|
|
|
e0018b |
+ versiondep,
|
|
|
e0018b |
+ ],
|
|
|
e0018b |
+ install : true,
|
|
|
e0018b |
+ install_dir : rootbindir,
|
|
|
e0018b |
+)
|
|
|
e0018b |
+
|
|
|
e0018b |
+install_headers('libcxl.h', subdir : 'cxl')
|
|
|
e0018b |
diff -up ndctl-71.1/daxctl/device.c.orig ndctl-71.1/daxctl/device.c
|
|
|
e0018b |
--- ndctl-71.1/daxctl/device.c.orig 2022-10-07 17:29:42.909688163 -0400
|
|
|
e0018b |
+++ ndctl-71.1/daxctl/device.c 2022-10-07 17:29:51.572717658 -0400
|
|
|
e0018b |
@@ -8,6 +8,7 @@
|
|
|
e0018b |
#include <limits.h>
|
|
|
e0018b |
#include <sys/stat.h>
|
|
|
e0018b |
#include <sys/types.h>
|
|
|
e0018b |
+#include <uuid/uuid.h>
|
|
|
e0018b |
#include <sys/sysmacros.h>
|
|
|
e0018b |
#include <util/size.h>
|
|
|
e0018b |
#include <util/json.h>
|
|
|
e0018b |
diff -up ndctl-71.1/daxctl/lib/meson.build.orig ndctl-71.1/daxctl/lib/meson.build
|
|
|
e0018b |
--- ndctl-71.1/daxctl/lib/meson.build.orig 2022-10-07 17:29:51.573717662 -0400
|
|
|
e0018b |
+++ ndctl-71.1/daxctl/lib/meson.build 2022-10-07 17:29:51.573717662 -0400
|
|
|
e0018b |
@@ -0,0 +1,44 @@
|
|
|
e0018b |
+libdaxctl_version = '@0@.@1@.@2@'.format(
|
|
|
e0018b |
+ LIBDAXCTL_CURRENT - LIBDAXCTL_AGE,
|
|
|
e0018b |
+ LIBDAXCTL_REVISION,
|
|
|
e0018b |
+ LIBDAXCTL_AGE,
|
|
|
e0018b |
+)
|
|
|
e0018b |
+
|
|
|
e0018b |
+mapfile = files('libdaxctl.sym')
|
|
|
e0018b |
+vflag = '-Wl,--version-script,@0@/@1@'.format(project_source_root, mapfile[0])
|
|
|
e0018b |
+
|
|
|
e0018b |
+libdaxctl_src = [
|
|
|
e0018b |
+ '../../util/iomem.c',
|
|
|
e0018b |
+ '../../util/sysfs.c',
|
|
|
e0018b |
+ '../../util/log.c',
|
|
|
e0018b |
+ 'libdaxctl.c',
|
|
|
e0018b |
+]
|
|
|
e0018b |
+
|
|
|
e0018b |
+daxctl = library(
|
|
|
e0018b |
+ 'daxctl',
|
|
|
e0018b |
+ libdaxctl_src,
|
|
|
e0018b |
+ version : libdaxctl_version,
|
|
|
e0018b |
+ include_directories : root_inc,
|
|
|
e0018b |
+ dependencies : [
|
|
|
e0018b |
+ uuid,
|
|
|
e0018b |
+ kmod,
|
|
|
e0018b |
+ ],
|
|
|
e0018b |
+ install : true,
|
|
|
e0018b |
+ install_dir : rootlibdir,
|
|
|
e0018b |
+ link_args : vflag,
|
|
|
e0018b |
+ link_depends : mapfile,
|
|
|
e0018b |
+)
|
|
|
e0018b |
+
|
|
|
e0018b |
+daxctl_dep = declare_dependency(link_with : daxctl)
|
|
|
e0018b |
+
|
|
|
e0018b |
+custom_target(
|
|
|
e0018b |
+ 'libdaxctl.pc',
|
|
|
e0018b |
+ command : pkgconfig_script + [ '@INPUT@' ],
|
|
|
e0018b |
+ input : 'libdaxctl.pc.in',
|
|
|
e0018b |
+ output : 'libdaxctl.pc',
|
|
|
e0018b |
+ capture : true,
|
|
|
e0018b |
+ install : true,
|
|
|
e0018b |
+ install_dir : pkgconfiglibdir,
|
|
|
e0018b |
+)
|
|
|
e0018b |
+
|
|
|
e0018b |
+install_data('daxctl.conf', install_dir : datadir / 'daxctl')
|
|
|
e0018b |
diff -up ndctl-71.1/daxctl/meson.build.orig ndctl-71.1/daxctl/meson.build
|
|
|
e0018b |
--- ndctl-71.1/daxctl/meson.build.orig 2022-10-07 17:29:51.574717665 -0400
|
|
|
e0018b |
+++ ndctl-71.1/daxctl/meson.build 2022-10-07 17:29:51.574717665 -0400
|
|
|
e0018b |
@@ -0,0 +1,28 @@
|
|
|
e0018b |
+daxctl_src = [
|
|
|
e0018b |
+ 'daxctl.c',
|
|
|
e0018b |
+ 'acpi.c',
|
|
|
e0018b |
+ 'list.c',
|
|
|
e0018b |
+ 'migrate.c',
|
|
|
e0018b |
+ 'device.c',
|
|
|
e0018b |
+ '../util/json.c',
|
|
|
e0018b |
+ 'json.c',
|
|
|
e0018b |
+ 'filter.c',
|
|
|
e0018b |
+]
|
|
|
e0018b |
+
|
|
|
e0018b |
+daxctl_tool = executable('daxctl',
|
|
|
e0018b |
+ daxctl_src,
|
|
|
e0018b |
+ include_directories : root_inc,
|
|
|
e0018b |
+ dependencies : [
|
|
|
e0018b |
+ daxctl_dep,
|
|
|
e0018b |
+ ndctl_dep,
|
|
|
e0018b |
+ util_dep,
|
|
|
e0018b |
+ uuid,
|
|
|
e0018b |
+ kmod,
|
|
|
e0018b |
+ json,
|
|
|
e0018b |
+ versiondep,
|
|
|
e0018b |
+ ],
|
|
|
e0018b |
+ install : true,
|
|
|
e0018b |
+ install_dir : rootbindir,
|
|
|
e0018b |
+)
|
|
|
e0018b |
+
|
|
|
e0018b |
+install_headers('libdaxctl.h', subdir : 'daxctl')
|
|
|
e0018b |
diff -up ndctl-71.1/meson.build.orig ndctl-71.1/meson.build
|
|
|
e0018b |
--- ndctl-71.1/meson.build.orig 2022-10-07 17:29:51.575717669 -0400
|
|
|
e0018b |
+++ ndctl-71.1/meson.build 2022-10-07 17:33:21.562432608 -0400
|
|
|
e0018b |
@@ -0,0 +1,279 @@
|
|
|
e0018b |
+project('ndctl', 'c',
|
|
|
e0018b |
+ version : '72',
|
|
|
e0018b |
+ license : [
|
|
|
e0018b |
+ 'GPL-2.0',
|
|
|
e0018b |
+ 'LGPL-2.1',
|
|
|
e0018b |
+ 'CC0-1.0',
|
|
|
e0018b |
+ 'MIT',
|
|
|
e0018b |
+ ],
|
|
|
e0018b |
+ default_options : [
|
|
|
e0018b |
+ 'c_std=gnu99',
|
|
|
e0018b |
+ 'prefix=/usr',
|
|
|
e0018b |
+ 'sysconfdir=/etc',
|
|
|
e0018b |
+ 'localstatedir=/var',
|
|
|
e0018b |
+ ],
|
|
|
e0018b |
+)
|
|
|
e0018b |
+
|
|
|
e0018b |
+# rootprefixdir and rootlibdir setup copied from systemd:
|
|
|
e0018b |
+rootprefixdir = get_option('rootprefix')
|
|
|
e0018b |
+rootprefix_default = '/usr'
|
|
|
e0018b |
+if rootprefixdir == ''
|
|
|
e0018b |
+ rootprefixdir = rootprefix_default
|
|
|
e0018b |
+endif
|
|
|
e0018b |
+rootbindir = join_paths(rootprefixdir, 'bin')
|
|
|
e0018b |
+
|
|
|
e0018b |
+# join_paths ignores the preceding arguments if an absolute component is
|
|
|
e0018b |
+# encountered, so this should canonicalize various paths when they are
|
|
|
e0018b |
+# absolute or relative.
|
|
|
e0018b |
+prefixdir = get_option('prefix')
|
|
|
e0018b |
+if not prefixdir.startswith('/')
|
|
|
e0018b |
+ error('Prefix is not absolute: "@0@"'.format(prefixdir))
|
|
|
e0018b |
+endif
|
|
|
e0018b |
+if prefixdir != rootprefixdir and rootprefixdir != '/' and not prefixdir.strip('/').startswith(rootprefixdir.strip('/') + '/')
|
|
|
e0018b |
+ error('Prefix is not below root prefix (now rootprefix=@0@ prefix=@1@)'.format(
|
|
|
e0018b |
+ rootprefixdir, prefixdir))
|
|
|
e0018b |
+endif
|
|
|
e0018b |
+
|
|
|
e0018b |
+libdir = join_paths(prefixdir, get_option('libdir'))
|
|
|
e0018b |
+rootlibdir = get_option('rootlibdir')
|
|
|
e0018b |
+if rootlibdir == ''
|
|
|
e0018b |
+ rootlibdir = join_paths(rootprefixdir, libdir.split('/')[-1])
|
|
|
e0018b |
+endif
|
|
|
e0018b |
+datadir = prefixdir / get_option('datadir')
|
|
|
e0018b |
+includedir = prefixdir / get_option('includedir')
|
|
|
e0018b |
+
|
|
|
e0018b |
+pkgconfiglibdir = get_option('pkgconfiglibdir') != '' ? get_option('pkgconfiglibdir') : libdir / 'pkgconfig'
|
|
|
e0018b |
+
|
|
|
e0018b |
+datadir = prefixdir / get_option('datadir')
|
|
|
e0018b |
+includedir = prefixdir / get_option('includedir')
|
|
|
e0018b |
+sysconfdir = get_option('sysconfdir')
|
|
|
e0018b |
+
|
|
|
e0018b |
+pkgconfig_script = '''
|
|
|
e0018b |
+sed -e s,@VERSION@,@0@,g
|
|
|
e0018b |
+ -e s,@prefix@,@1@,g
|
|
|
e0018b |
+ -e s,@exec_prefix@,@1@,g
|
|
|
e0018b |
+ -e s,@libdir@,@2@,g
|
|
|
e0018b |
+ -e s,@includedir@,@3@,g
|
|
|
e0018b |
+'''.format(meson.project_version(), prefixdir, libdir, includedir).split()
|
|
|
e0018b |
+
|
|
|
e0018b |
+cc_flags = [
|
|
|
e0018b |
+ '-Wall',
|
|
|
e0018b |
+ '-Wchar-subscripts',
|
|
|
e0018b |
+ '-Wformat-security',
|
|
|
e0018b |
+ '-Wmissing-declarations',
|
|
|
e0018b |
+ '-Wmissing-prototypes',
|
|
|
e0018b |
+ '-Wnested-externs ',
|
|
|
e0018b |
+ '-Wshadow',
|
|
|
e0018b |
+ '-Wsign-compare',
|
|
|
e0018b |
+ '-Wstrict-prototypes',
|
|
|
e0018b |
+ '-Wtype-limits',
|
|
|
e0018b |
+ '-Wmaybe-uninitialized',
|
|
|
e0018b |
+ '-Wdeclaration-after-statement',
|
|
|
e0018b |
+ '-Wunused-result',
|
|
|
e0018b |
+ '-D_FORTIFY_SOURCE=2',
|
|
|
e0018b |
+ '-O2',
|
|
|
e0018b |
+]
|
|
|
e0018b |
+cc = meson.get_compiler('c')
|
|
|
e0018b |
+add_project_arguments(cc.get_supported_arguments(cc_flags), language : 'c')
|
|
|
e0018b |
+
|
|
|
e0018b |
+project_source_root = meson.current_source_dir()
|
|
|
e0018b |
+
|
|
|
e0018b |
+# Remove this after the conversion to meson has been completed
|
|
|
e0018b |
+# Cleanup the leftover config.h files to avoid conflicts with the meson
|
|
|
e0018b |
+# generated config.h
|
|
|
e0018b |
+git = find_program('git', required : false)
|
|
|
e0018b |
+if git.found()
|
|
|
e0018b |
+ run_command('clean_config.sh',
|
|
|
e0018b |
+ env : 'GIT_DIR=@0@/.git'.format(project_source_root),
|
|
|
e0018b |
+ )
|
|
|
e0018b |
+endif
|
|
|
e0018b |
+
|
|
|
e0018b |
+version_tag = get_option('version-tag')
|
|
|
e0018b |
+if version_tag != ''
|
|
|
e0018b |
+ vcs_data = configuration_data()
|
|
|
e0018b |
+ vcs_data.set('VCS_TAG', version_tag)
|
|
|
e0018b |
+ version_h = configure_file(
|
|
|
e0018b |
+ configuration : vcs_data,
|
|
|
e0018b |
+ input : 'version.h.in',
|
|
|
e0018b |
+ output : 'version.h'
|
|
|
e0018b |
+ )
|
|
|
e0018b |
+else
|
|
|
e0018b |
+ vcs_tagger = [
|
|
|
e0018b |
+ project_source_root + '/tools/meson-vcs-tag.sh',
|
|
|
e0018b |
+ project_source_root,
|
|
|
e0018b |
+ meson.project_version()
|
|
|
e0018b |
+ ]
|
|
|
e0018b |
+
|
|
|
e0018b |
+ version_h = vcs_tag(
|
|
|
e0018b |
+ input : 'version.h.in',
|
|
|
e0018b |
+ output : 'version.h',
|
|
|
e0018b |
+ command: vcs_tagger
|
|
|
e0018b |
+ )
|
|
|
e0018b |
+endif
|
|
|
e0018b |
+
|
|
|
e0018b |
+versiondep = declare_dependency(
|
|
|
e0018b |
+ compile_args: ['-include', 'version.h'],
|
|
|
e0018b |
+ sources: version_h
|
|
|
e0018b |
+)
|
|
|
e0018b |
+
|
|
|
e0018b |
+kmod = dependency('libkmod')
|
|
|
e0018b |
+libudev = dependency('libudev')
|
|
|
e0018b |
+uuid = dependency('uuid')
|
|
|
e0018b |
+json = dependency('json-c')
|
|
|
e0018b |
+if get_option('docs').enabled()
|
|
|
e0018b |
+ if get_option('asciidoctor').enabled()
|
|
|
e0018b |
+ asciidoc = find_program('asciidoctor', required : true)
|
|
|
e0018b |
+ else
|
|
|
e0018b |
+ asciidoc = find_program('asciidoc', required : true)
|
|
|
e0018b |
+ xmlto = find_program('xmlto', required : true)
|
|
|
e0018b |
+ endif
|
|
|
e0018b |
+endif
|
|
|
e0018b |
+
|
|
|
e0018b |
+if get_option('systemd').enabled()
|
|
|
e0018b |
+ systemd = dependency('systemd', required : true)
|
|
|
e0018b |
+ systemdunitdir = systemd.get_pkgconfig_variable('systemdsystemunitdir')
|
|
|
e0018b |
+ udev = dependency('udev', required : true)
|
|
|
e0018b |
+ udevdir = udev.get_pkgconfig_variable('udevdir')
|
|
|
e0018b |
+ udevrulesdir = udevdir / 'rules.d'
|
|
|
e0018b |
+endif
|
|
|
e0018b |
+
|
|
|
e0018b |
+cc = meson.get_compiler('c')
|
|
|
e0018b |
+
|
|
|
e0018b |
+# keyutils and iniparser lack pkgconfig
|
|
|
e0018b |
+keyutils = cc.find_library('keyutils', required : get_option('keyutils'))
|
|
|
e0018b |
+
|
|
|
e0018b |
+conf = configuration_data()
|
|
|
e0018b |
+check_headers = [
|
|
|
e0018b |
+ ['HAVE_DLFCN_H', 'dlfcn.h'],
|
|
|
e0018b |
+ ['HAVE_INTTYPES_H', 'inttypes.h'],
|
|
|
e0018b |
+ ['HAVE_KEYUTILS_H', 'keyutils.h'],
|
|
|
e0018b |
+ ['HAVE_LINUX_VERSION_H', 'linux/version.h'],
|
|
|
e0018b |
+ ['HAVE_MEMORY_H', 'memory.h'],
|
|
|
e0018b |
+ ['HAVE_STDINT_H', 'stdint.h'],
|
|
|
e0018b |
+ ['HAVE_STDLIB_H', 'stdlib.h'],
|
|
|
e0018b |
+ ['HAVE_STRINGS_H', 'strings.h'],
|
|
|
e0018b |
+ ['HAVE_STRING_H', 'string.h'],
|
|
|
e0018b |
+ ['HAVE_SYS_STAT_H', 'sys/stat.h'],
|
|
|
e0018b |
+ ['HAVE_SYS_TYPES_H', 'sys/types.h'],
|
|
|
e0018b |
+ ['HAVE_UNISTD_H', 'unistd.h'],
|
|
|
e0018b |
+]
|
|
|
e0018b |
+
|
|
|
e0018b |
+foreach h : check_headers
|
|
|
e0018b |
+ if cc.has_header(h.get(1))
|
|
|
e0018b |
+ conf.set(h.get(0), 1)
|
|
|
e0018b |
+ endif
|
|
|
e0018b |
+endforeach
|
|
|
e0018b |
+
|
|
|
e0018b |
+map_sync_symbols = [
|
|
|
e0018b |
+ [ 'signal.h', 'BUS_MCEERR_AR' ],
|
|
|
e0018b |
+ [ 'linux/mman.h', 'MAP_SHARED_VALIDATE' ],
|
|
|
e0018b |
+ [ 'linux/mman.h', 'MAP_SYNC' ],
|
|
|
e0018b |
+]
|
|
|
e0018b |
+
|
|
|
e0018b |
+count = 0
|
|
|
e0018b |
+foreach symbol : map_sync_symbols
|
|
|
e0018b |
+ if cc.has_header_symbol(symbol[0], symbol[1])
|
|
|
e0018b |
+ conf.set('HAVE_DECL_@0@'.format(symbol[1].to_upper()), 1)
|
|
|
e0018b |
+ count = count + 1
|
|
|
e0018b |
+ endif
|
|
|
e0018b |
+endforeach
|
|
|
e0018b |
+
|
|
|
e0018b |
+poison_enabled = false
|
|
|
e0018b |
+if get_option('poison').enabled() and count == 3
|
|
|
e0018b |
+ poison_enabled = true
|
|
|
e0018b |
+endif
|
|
|
e0018b |
+
|
|
|
e0018b |
+conf.set('ENABLE_POISON', poison_enabled)
|
|
|
e0018b |
+conf.set('ENABLE_KEYUTILS', get_option('keyutils').enabled())
|
|
|
e0018b |
+conf.set('ENABLE_TEST', get_option('test').enabled())
|
|
|
e0018b |
+conf.set('ENABLE_DESTRUCTIVE', get_option('destructive').enabled())
|
|
|
e0018b |
+conf.set('ENABLE_LOGGING', get_option('logging').enabled())
|
|
|
e0018b |
+conf.set('ENABLE_DEBUG', get_option('dbg').enabled())
|
|
|
e0018b |
+
|
|
|
e0018b |
+typeof = cc.run('''
|
|
|
e0018b |
+ int main() {
|
|
|
e0018b |
+ struct {
|
|
|
e0018b |
+ char a[16];
|
|
|
e0018b |
+ } x;
|
|
|
e0018b |
+ typeof(x) y;
|
|
|
e0018b |
+
|
|
|
e0018b |
+ return sizeof(x) == sizeof(y);
|
|
|
e0018b |
+ }
|
|
|
e0018b |
+ '''
|
|
|
e0018b |
+)
|
|
|
e0018b |
+
|
|
|
e0018b |
+if typeof.compiled() and typeof.returncode() == 1
|
|
|
e0018b |
+ conf.set('HAVE_TYPEOF', 1)
|
|
|
e0018b |
+ conf.set('HAVE_STATEMENT_EXPR', 1)
|
|
|
e0018b |
+endif
|
|
|
e0018b |
+
|
|
|
e0018b |
+if target_machine.endian() == 'big'
|
|
|
e0018b |
+ conf.set('HAVE_BIG_ENDIAN', 1)
|
|
|
e0018b |
+else
|
|
|
e0018b |
+ conf.set('HAVE_LITTLE_ENDIAN', 1)
|
|
|
e0018b |
+endif
|
|
|
e0018b |
+
|
|
|
e0018b |
+conf.set('_GNU_SOURCE', true)
|
|
|
e0018b |
+conf.set_quoted('PREFIX', get_option('prefix'))
|
|
|
e0018b |
+conf.set_quoted('NDCTL_MAN_PATH', get_option('mandir'))
|
|
|
e0018b |
+
|
|
|
e0018b |
+foreach ident : ['secure_getenv', '__secure_getenv']
|
|
|
e0018b |
+ conf.set10('HAVE_' + ident.to_upper(), cc.has_function(ident))
|
|
|
e0018b |
+endforeach
|
|
|
e0018b |
+
|
|
|
e0018b |
+
|
|
|
e0018b |
+ndctlconf_dir = sysconfdir / 'ndctl'
|
|
|
e0018b |
+ndctlconf = ndctlconf_dir / 'monitor.conf'
|
|
|
e0018b |
+conf.set_quoted('NDCTL_CONF_FILE', ndctlconf)
|
|
|
e0018b |
+conf.set_quoted('NDCTL_CONF_DIR', ndctlconf_dir)
|
|
|
e0018b |
+
|
|
|
e0018b |
+ndctlkeys_dir = sysconfdir / 'ndctl' / 'keys'
|
|
|
e0018b |
+conf.set_quoted('NDCTL_KEYS_DIR', ndctlkeys_dir)
|
|
|
e0018b |
+
|
|
|
e0018b |
+daxctlconf_dir = sysconfdir / 'daxctl.conf.d'
|
|
|
e0018b |
+daxctlconf = daxctlconf_dir / 'dax.conf'
|
|
|
e0018b |
+conf.set_quoted('DAXCTL_CONF_DIR', daxctlconf_dir)
|
|
|
e0018b |
+
|
|
|
e0018b |
+conf.set_quoted('DAXCTL_MODPROBE_DATA', datadir / 'daxctl/daxctl.conf')
|
|
|
e0018b |
+conf.set_quoted('DAXCTL_MODPROBE_INSTALL', sysconfdir / 'modprobe.d/daxctl.conf')
|
|
|
e0018b |
+
|
|
|
e0018b |
+config_h = configure_file(
|
|
|
e0018b |
+ input : 'config.h.meson',
|
|
|
e0018b |
+ output : 'config.h',
|
|
|
e0018b |
+ configuration : conf
|
|
|
e0018b |
+)
|
|
|
e0018b |
+add_project_arguments('-include', 'config.h', language : 'c')
|
|
|
e0018b |
+
|
|
|
e0018b |
+LIBNDCTL_CURRENT=25
|
|
|
e0018b |
+LIBNDCTL_REVISION=1
|
|
|
e0018b |
+LIBNDCTL_AGE=19
|
|
|
e0018b |
+
|
|
|
e0018b |
+LIBDAXCTL_CURRENT=6
|
|
|
e0018b |
+LIBDAXCTL_REVISION=0
|
|
|
e0018b |
+LIBDAXCTL_AGE=5
|
|
|
e0018b |
+
|
|
|
e0018b |
+LIBCXL_CURRENT=1
|
|
|
e0018b |
+LIBCXL_REVISION=0
|
|
|
e0018b |
+LIBCXL_AGE=0
|
|
|
e0018b |
+
|
|
|
e0018b |
+root_inc = include_directories(['.', 'ndctl', ])
|
|
|
e0018b |
+
|
|
|
e0018b |
+ccan = static_library('ccan',
|
|
|
e0018b |
+ [ 'ccan/str/str.c', 'ccan/list/list.c' ],
|
|
|
e0018b |
+)
|
|
|
e0018b |
+ccan_dep = declare_dependency(link_with : ccan)
|
|
|
e0018b |
+
|
|
|
e0018b |
+subdir('daxctl/lib')
|
|
|
e0018b |
+subdir('ndctl/lib')
|
|
|
e0018b |
+subdir('cxl/lib')
|
|
|
e0018b |
+subdir('util')
|
|
|
e0018b |
+subdir('ndctl')
|
|
|
e0018b |
+subdir('daxctl')
|
|
|
e0018b |
+subdir('cxl')
|
|
|
e0018b |
+if get_option('docs').enabled()
|
|
|
e0018b |
+ subdir('Documentation/ndctl')
|
|
|
e0018b |
+ subdir('Documentation/daxctl')
|
|
|
e0018b |
+ subdir('Documentation/cxl')
|
|
|
e0018b |
+endif
|
|
|
e0018b |
+subdir('test')
|
|
|
e0018b |
+subdir('contrib')
|
|
|
e0018b |
diff -up ndctl-71.1/meson_options.txt.orig ndctl-71.1/meson_options.txt
|
|
|
e0018b |
--- ndctl-71.1/meson_options.txt.orig 2022-10-07 17:29:51.575717669 -0400
|
|
|
e0018b |
+++ ndctl-71.1/meson_options.txt 2022-10-07 17:29:51.575717669 -0400
|
|
|
e0018b |
@@ -0,0 +1,25 @@
|
|
|
e0018b |
+option('version-tag', type : 'string',
|
|
|
e0018b |
+ description : 'override the git version string')
|
|
|
e0018b |
+option('docs', type : 'feature', value : 'enabled')
|
|
|
e0018b |
+option('asciidoctor', type : 'feature', value : 'disabled')
|
|
|
e0018b |
+option('systemd', type : 'feature', value : 'enabled')
|
|
|
e0018b |
+option('keyutils', type : 'feature', value : 'enabled',
|
|
|
e0018b |
+ description : 'enable nvdimm device passphrase management')
|
|
|
e0018b |
+option('test', type : 'feature', value : 'disabled',
|
|
|
e0018b |
+ description : 'enable shipping tests in ndctl')
|
|
|
e0018b |
+option('destructive', type : 'feature', value : 'disabled',
|
|
|
e0018b |
+ description : 'enable tests that may clobber live system resources')
|
|
|
e0018b |
+option('poison', type : 'feature', value : 'enabled',
|
|
|
e0018b |
+ description : 'enable tests that inject poison / memory-failure')
|
|
|
e0018b |
+option('logging', type : 'feature', value : 'enabled',
|
|
|
e0018b |
+ description : 'enable log infrastructure')
|
|
|
e0018b |
+option('dbg', type : 'feature', value : 'enabled',
|
|
|
e0018b |
+ description : 'enable dbg messages')
|
|
|
e0018b |
+option('rootprefix', type : 'string',
|
|
|
e0018b |
+ description : '''override the root prefix [default '/' if split-usr and '/usr' otherwise]''')
|
|
|
e0018b |
+option('rootlibdir', type : 'string',
|
|
|
e0018b |
+ description : '''[/usr]/lib/x86_64-linux-gnu or such''')
|
|
|
e0018b |
+option('pkgconfiglibdir', type : 'string', value : '',
|
|
|
e0018b |
+ description : 'directory for standard pkg-config files')
|
|
|
e0018b |
+option('bashcompletiondir', type : 'string',
|
|
|
e0018b |
+ description : '''${datadir}/bash-completion/completions''')
|
|
|
e0018b |
diff -up ndctl-71.1/ndctl/lib/meson.build.orig ndctl-71.1/ndctl/lib/meson.build
|
|
|
e0018b |
--- ndctl-71.1/ndctl/lib/meson.build.orig 2022-10-07 17:29:51.576717672 -0400
|
|
|
e0018b |
+++ ndctl-71.1/ndctl/lib/meson.build 2022-10-07 17:29:51.576717672 -0400
|
|
|
e0018b |
@@ -0,0 +1,48 @@
|
|
|
e0018b |
+libndctl_version = '@0@.@1@.@2@'.format(
|
|
|
e0018b |
+ LIBNDCTL_CURRENT - LIBNDCTL_AGE,
|
|
|
e0018b |
+ LIBNDCTL_REVISION,
|
|
|
e0018b |
+ LIBNDCTL_AGE)
|
|
|
e0018b |
+
|
|
|
e0018b |
+mapfile = files('libndctl.sym')
|
|
|
e0018b |
+vflag = '-Wl,--version-script,@0@/@1@'.format(project_source_root, mapfile[0])
|
|
|
e0018b |
+
|
|
|
e0018b |
+ndctl = library(
|
|
|
e0018b |
+ 'ndctl',
|
|
|
e0018b |
+ '../../util/log.c',
|
|
|
e0018b |
+ '../../util/sysfs.c',
|
|
|
e0018b |
+ 'dimm.c',
|
|
|
e0018b |
+ 'inject.c',
|
|
|
e0018b |
+ 'nfit.c',
|
|
|
e0018b |
+ 'smart.c',
|
|
|
e0018b |
+ 'intel.c',
|
|
|
e0018b |
+ 'hpe1.c',
|
|
|
e0018b |
+ 'msft.c',
|
|
|
e0018b |
+ 'hyperv.c',
|
|
|
e0018b |
+ 'papr.c',
|
|
|
e0018b |
+ 'ars.c',
|
|
|
e0018b |
+ 'firmware.c',
|
|
|
e0018b |
+ 'libndctl.c',
|
|
|
e0018b |
+ dependencies : [
|
|
|
e0018b |
+ daxctl_dep,
|
|
|
e0018b |
+ libudev,
|
|
|
e0018b |
+ uuid,
|
|
|
e0018b |
+ kmod,
|
|
|
e0018b |
+ ],
|
|
|
e0018b |
+ include_directories : root_inc,
|
|
|
e0018b |
+ version : libndctl_version,
|
|
|
e0018b |
+ install : true,
|
|
|
e0018b |
+ install_dir : rootlibdir,
|
|
|
e0018b |
+ link_args : vflag,
|
|
|
e0018b |
+ link_depends : mapfile,
|
|
|
e0018b |
+)
|
|
|
e0018b |
+ndctl_dep = declare_dependency(link_with : ndctl)
|
|
|
e0018b |
+
|
|
|
e0018b |
+custom_target(
|
|
|
e0018b |
+ 'libndctl.pc',
|
|
|
e0018b |
+ command : pkgconfig_script + [ '@INPUT@' ],
|
|
|
e0018b |
+ input : 'libndctl.pc.in',
|
|
|
e0018b |
+ output : 'libndctl.pc',
|
|
|
e0018b |
+ capture : true,
|
|
|
e0018b |
+ install : true,
|
|
|
e0018b |
+ install_dir : pkgconfiglibdir,
|
|
|
e0018b |
+)
|
|
|
e0018b |
diff -up ndctl-71.1/ndctl/meson.build.orig ndctl-71.1/ndctl/meson.build
|
|
|
e0018b |
--- ndctl-71.1/ndctl/meson.build.orig 2022-10-07 17:29:51.576717672 -0400
|
|
|
e0018b |
+++ ndctl-71.1/ndctl/meson.build 2022-10-07 17:29:51.576717672 -0400
|
|
|
e0018b |
@@ -0,0 +1,80 @@
|
|
|
e0018b |
+ndctl_src = [
|
|
|
e0018b |
+ 'ndctl.c',
|
|
|
e0018b |
+ 'bus.c',
|
|
|
e0018b |
+ 'create-nfit.c',
|
|
|
e0018b |
+ 'namespace.c',
|
|
|
e0018b |
+ 'check.c',
|
|
|
e0018b |
+ 'region.c',
|
|
|
e0018b |
+ 'dimm.c',
|
|
|
e0018b |
+ '../util/log.c',
|
|
|
e0018b |
+ '../daxctl/filter.c',
|
|
|
e0018b |
+ 'filter.c',
|
|
|
e0018b |
+ 'list.c',
|
|
|
e0018b |
+ '../util/json.c',
|
|
|
e0018b |
+ '../daxctl/json.c',
|
|
|
e0018b |
+ 'json.c',
|
|
|
e0018b |
+ 'json-smart.c',
|
|
|
e0018b |
+ 'inject-error.c',
|
|
|
e0018b |
+ 'inject-smart.c',
|
|
|
e0018b |
+ 'monitor.c',
|
|
|
e0018b |
+]
|
|
|
e0018b |
+
|
|
|
e0018b |
+deps = [
|
|
|
e0018b |
+ util_dep,
|
|
|
e0018b |
+ ndctl_dep,
|
|
|
e0018b |
+ daxctl_dep,
|
|
|
e0018b |
+ cxl_dep,
|
|
|
e0018b |
+ uuid,
|
|
|
e0018b |
+ kmod,
|
|
|
e0018b |
+ json,
|
|
|
e0018b |
+ versiondep,
|
|
|
e0018b |
+]
|
|
|
e0018b |
+
|
|
|
e0018b |
+if get_option('keyutils').enabled()
|
|
|
e0018b |
+ ndctl_src += [
|
|
|
e0018b |
+ 'keys.c',
|
|
|
e0018b |
+ 'load-keys.c',
|
|
|
e0018b |
+ ]
|
|
|
e0018b |
+ deps += keyutils
|
|
|
e0018b |
+endif
|
|
|
e0018b |
+
|
|
|
e0018b |
+if get_option('test').enabled()
|
|
|
e0018b |
+ ndctl_src += [
|
|
|
e0018b |
+ '../test/libndctl.c',
|
|
|
e0018b |
+ '../test/dsm-fail.c',
|
|
|
e0018b |
+ '../util/sysfs.c',
|
|
|
e0018b |
+ '../test/core.c',
|
|
|
e0018b |
+ 'test.c',
|
|
|
e0018b |
+]
|
|
|
e0018b |
+endif
|
|
|
e0018b |
+
|
|
|
e0018b |
+if get_option('destructive').enabled()
|
|
|
e0018b |
+ if get_option('test').disabled()
|
|
|
e0018b |
+ error('\'-D=destructive=enabled\' requires \'-Dtest=enabled\'\n')
|
|
|
e0018b |
+ endif
|
|
|
e0018b |
+ ndctl_src += [
|
|
|
e0018b |
+ '../test/pmem_namespaces.c',
|
|
|
e0018b |
+ 'bat.c',
|
|
|
e0018b |
+ ]
|
|
|
e0018b |
+endif
|
|
|
e0018b |
+
|
|
|
e0018b |
+if get_option('systemd').enabled()
|
|
|
e0018b |
+ install_data('ndctl-monitor.service', install_dir : systemdunitdir)
|
|
|
e0018b |
+endif
|
|
|
e0018b |
+install_data('monitor.conf', install_dir : ndctlconf_dir)
|
|
|
e0018b |
+install_data('keys.readme', install_dir : ndctlkeys_dir)
|
|
|
e0018b |
+
|
|
|
e0018b |
+ndctl_tool = executable('ndctl', ndctl_src,
|
|
|
e0018b |
+ dependencies : deps,
|
|
|
e0018b |
+ install : true,
|
|
|
e0018b |
+ install_dir : rootbindir,
|
|
|
e0018b |
+ include_directories : root_inc,
|
|
|
e0018b |
+)
|
|
|
e0018b |
+
|
|
|
e0018b |
+install_headers(
|
|
|
e0018b |
+ [
|
|
|
e0018b |
+ 'libndctl.h',
|
|
|
e0018b |
+ 'ndctl.h'
|
|
|
e0018b |
+ ],
|
|
|
e0018b |
+ subdir : 'ndctl'
|
|
|
e0018b |
+)
|
|
|
e0018b |
diff -up ndctl-71.1/test/meson.build.orig ndctl-71.1/test/meson.build
|
|
|
e0018b |
--- ndctl-71.1/test/meson.build.orig 2022-10-07 17:29:51.577717675 -0400
|
|
|
e0018b |
+++ ndctl-71.1/test/meson.build 2022-10-07 17:29:51.577717675 -0400
|
|
|
e0018b |
@@ -0,0 +1,237 @@
|
|
|
e0018b |
+testcore = [
|
|
|
e0018b |
+ 'core.c',
|
|
|
e0018b |
+ '../util/log.c',
|
|
|
e0018b |
+ '../util/sysfs.c',
|
|
|
e0018b |
+]
|
|
|
e0018b |
+
|
|
|
e0018b |
+libndctl_deps = [
|
|
|
e0018b |
+ ndctl_dep,
|
|
|
e0018b |
+ daxctl_dep,
|
|
|
e0018b |
+ uuid,
|
|
|
e0018b |
+ kmod,
|
|
|
e0018b |
+]
|
|
|
e0018b |
+
|
|
|
e0018b |
+ndctl_deps = libndctl_deps + [
|
|
|
e0018b |
+ json,
|
|
|
e0018b |
+ util_dep,
|
|
|
e0018b |
+ versiondep,
|
|
|
e0018b |
+]
|
|
|
e0018b |
+
|
|
|
e0018b |
+libndctl = executable('libndctl', testcore + [ 'libndctl.c'],
|
|
|
e0018b |
+ dependencies : libndctl_deps,
|
|
|
e0018b |
+ include_directories : root_inc,
|
|
|
e0018b |
+)
|
|
|
e0018b |
+
|
|
|
e0018b |
+namespace_core = [
|
|
|
e0018b |
+ '../ndctl/namespace.c',
|
|
|
e0018b |
+ '../ndctl/filter.c',
|
|
|
e0018b |
+ '../ndctl/check.c',
|
|
|
e0018b |
+ '../util/json.c',
|
|
|
e0018b |
+ '../ndctl/json.c',
|
|
|
e0018b |
+ '../daxctl/filter.c',
|
|
|
e0018b |
+ '../daxctl/json.c',
|
|
|
e0018b |
+]
|
|
|
e0018b |
+
|
|
|
e0018b |
+dsm_fail = executable('dsm-fail', testcore + namespace_core + [ 'dsm-fail.c' ],
|
|
|
e0018b |
+ dependencies : ndctl_deps,
|
|
|
e0018b |
+ include_directories : root_inc,
|
|
|
e0018b |
+)
|
|
|
e0018b |
+
|
|
|
e0018b |
+hugetlb_src = testcore + [ 'hugetlb.c', 'dax-pmd.c' ]
|
|
|
e0018b |
+if poison_enabled
|
|
|
e0018b |
+ hugetlb_src += [ 'dax-poison.c' ]
|
|
|
e0018b |
+endif
|
|
|
e0018b |
+hugetlb = executable('hugetlb', hugetlb_src,
|
|
|
e0018b |
+ dependencies : libndctl_deps,
|
|
|
e0018b |
+ include_directories : root_inc,
|
|
|
e0018b |
+)
|
|
|
e0018b |
+
|
|
|
e0018b |
+ack_shutdown_count = executable('ack-shutdown-count-set',
|
|
|
e0018b |
+ testcore + [ 'ack-shutdown-count-set.c' ],
|
|
|
e0018b |
+ dependencies : libndctl_deps,
|
|
|
e0018b |
+ include_directories : root_inc,
|
|
|
e0018b |
+)
|
|
|
e0018b |
+
|
|
|
e0018b |
+dax_errors = executable('dax-errors',
|
|
|
e0018b |
+ 'dax-errors.c',
|
|
|
e0018b |
+)
|
|
|
e0018b |
+
|
|
|
e0018b |
+smart_notify = executable('smart-notify', 'smart-notify.c',
|
|
|
e0018b |
+ dependencies : libndctl_deps,
|
|
|
e0018b |
+ include_directories : root_inc,
|
|
|
e0018b |
+)
|
|
|
e0018b |
+
|
|
|
e0018b |
+smart_listen = executable('smart-listen', 'smart-listen.c',
|
|
|
e0018b |
+ dependencies : libndctl_deps,
|
|
|
e0018b |
+ include_directories : root_inc,
|
|
|
e0018b |
+)
|
|
|
e0018b |
+
|
|
|
e0018b |
+daxdev_errors = executable('daxdev-errors', [
|
|
|
e0018b |
+ 'daxdev-errors.c',
|
|
|
e0018b |
+ '../util/log.c',
|
|
|
e0018b |
+ '../util/sysfs.c',
|
|
|
e0018b |
+ ],
|
|
|
e0018b |
+ dependencies : libndctl_deps,
|
|
|
e0018b |
+ include_directories : root_inc,
|
|
|
e0018b |
+)
|
|
|
e0018b |
+
|
|
|
e0018b |
+list_smart_dimm = executable('list-smart-dimm', [
|
|
|
e0018b |
+ 'list-smart-dimm.c',
|
|
|
e0018b |
+ '../ndctl/filter.c',
|
|
|
e0018b |
+ '../util/json.c',
|
|
|
e0018b |
+ '../ndctl/json.c',
|
|
|
e0018b |
+ '../daxctl/json.c',
|
|
|
e0018b |
+ '../daxctl/filter.c',
|
|
|
e0018b |
+ ],
|
|
|
e0018b |
+ dependencies : ndctl_deps,
|
|
|
e0018b |
+ include_directories : root_inc,
|
|
|
e0018b |
+)
|
|
|
e0018b |
+
|
|
|
e0018b |
+pmem_ns = executable('pmem-ns', testcore + [ 'pmem_namespaces.c' ],
|
|
|
e0018b |
+ dependencies : libndctl_deps,
|
|
|
e0018b |
+ include_directories : root_inc,
|
|
|
e0018b |
+)
|
|
|
e0018b |
+
|
|
|
e0018b |
+dax_dev = executable('dax-dev', testcore + [ 'dax-dev.c' ],
|
|
|
e0018b |
+ dependencies : libndctl_deps,
|
|
|
e0018b |
+ include_directories : root_inc,
|
|
|
e0018b |
+)
|
|
|
e0018b |
+
|
|
|
e0018b |
+dax_pmd_src = testcore + [ 'dax-pmd.c' ]
|
|
|
e0018b |
+if poison_enabled
|
|
|
e0018b |
+ dax_pmd_src += [ 'dax-poison.c' ]
|
|
|
e0018b |
+endif
|
|
|
e0018b |
+
|
|
|
e0018b |
+dax_pmd = executable('dax-pmd', dax_pmd_src,
|
|
|
e0018b |
+ dependencies : libndctl_deps,
|
|
|
e0018b |
+ include_directories : root_inc,
|
|
|
e0018b |
+)
|
|
|
e0018b |
+
|
|
|
e0018b |
+device_dax_src = testcore + namespace_core + [
|
|
|
e0018b |
+ 'device-dax.c',
|
|
|
e0018b |
+ 'dax-dev.c',
|
|
|
e0018b |
+ 'dax-pmd.c',
|
|
|
e0018b |
+]
|
|
|
e0018b |
+
|
|
|
e0018b |
+if poison_enabled
|
|
|
e0018b |
+ device_dax_src += 'dax-poison.c'
|
|
|
e0018b |
+endif
|
|
|
e0018b |
+
|
|
|
e0018b |
+device_dax = executable('device-dax', device_dax_src,
|
|
|
e0018b |
+ dependencies : ndctl_deps,
|
|
|
e0018b |
+ include_directories : root_inc,
|
|
|
e0018b |
+)
|
|
|
e0018b |
+
|
|
|
e0018b |
+revoke_devmem = executable('revoke_devmem', testcore + [
|
|
|
e0018b |
+ 'revoke-devmem.c',
|
|
|
e0018b |
+ 'dax-dev.c',
|
|
|
e0018b |
+ ],
|
|
|
e0018b |
+ dependencies : libndctl_deps,
|
|
|
e0018b |
+ include_directories : root_inc,
|
|
|
e0018b |
+)
|
|
|
e0018b |
+
|
|
|
e0018b |
+mmap = executable('mmap', 'mmap.c',)
|
|
|
e0018b |
+
|
|
|
e0018b |
+create = find_program('create.sh')
|
|
|
e0018b |
+clear = find_program('clear.sh')
|
|
|
e0018b |
+pmem_errors = find_program('pmem-errors.sh')
|
|
|
e0018b |
+daxdev_errors_sh = find_program('daxdev-errors.sh')
|
|
|
e0018b |
+multi_dax = find_program('multi-dax.sh')
|
|
|
e0018b |
+btt_check = find_program('btt-check.sh')
|
|
|
e0018b |
+label_compat = find_program('label-compat.sh')
|
|
|
e0018b |
+sector_mode = find_program('sector-mode.sh')
|
|
|
e0018b |
+inject_error = find_program('inject-error.sh')
|
|
|
e0018b |
+btt_errors = find_program('btt-errors.sh')
|
|
|
e0018b |
+btt_pad_compat = find_program('btt-pad-compat.sh')
|
|
|
e0018b |
+firmware_update = find_program('firmware-update.sh')
|
|
|
e0018b |
+rescan_partitions = find_program('rescan-partitions.sh')
|
|
|
e0018b |
+inject_smart = find_program('inject-smart.sh')
|
|
|
e0018b |
+monitor = find_program('monitor.sh')
|
|
|
e0018b |
+max_extent = find_program('max_available_extent_ns.sh')
|
|
|
e0018b |
+pfn_meta_errors = find_program('pfn-meta-errors.sh')
|
|
|
e0018b |
+track_uuid = find_program('track-uuid.sh')
|
|
|
e0018b |
+
|
|
|
e0018b |
+tests = [
|
|
|
e0018b |
+ [ 'libndctl', libndctl ],
|
|
|
e0018b |
+ [ 'dsm-fail', dsm_fail ],
|
|
|
e0018b |
+ [ 'create.sh', create ],
|
|
|
e0018b |
+ [ 'clear.sh', clear ],
|
|
|
e0018b |
+ [ 'pmem-errors.sh', pmem_errors ],
|
|
|
e0018b |
+ [ 'daxdev-errors.sh', daxdev_errors_sh ],
|
|
|
e0018b |
+ [ 'multi-dax.sh', multi_dax ],
|
|
|
e0018b |
+ [ 'btt-check.sh', btt_check ],
|
|
|
e0018b |
+ [ 'label-compat.sh', label_compat ],
|
|
|
e0018b |
+ [ 'sector-mode.sh', sector_mode ],
|
|
|
e0018b |
+ [ 'inject-error.sh', inject_error ],
|
|
|
e0018b |
+ [ 'btt-errors.sh', btt_errors ],
|
|
|
e0018b |
+ [ 'hugetlb', hugetlb ],
|
|
|
e0018b |
+ [ 'btt-pad-compat.sh', btt_pad_compat ],
|
|
|
e0018b |
+ [ 'firmware-update.sh', firmware_update ],
|
|
|
e0018b |
+ [ 'ack-shutdown-count-set', ack_shutdown_count ],
|
|
|
e0018b |
+ [ 'rescan-partitions.sh', rescan_partitions ],
|
|
|
e0018b |
+ [ 'inject-smart.sh', inject_smart ],
|
|
|
e0018b |
+ [ 'monitor.sh', monitor ],
|
|
|
e0018b |
+ [ 'max_extent_ns', max_extent ],
|
|
|
e0018b |
+ [ 'pfn-meta-errors.sh', pfn_meta_errors ],
|
|
|
e0018b |
+ [ 'track-uuid.sh', track_uuid ],
|
|
|
e0018b |
+]
|
|
|
e0018b |
+
|
|
|
e0018b |
+if get_option('destructive').enabled()
|
|
|
e0018b |
+ sub_section = find_program('sub-section.sh')
|
|
|
e0018b |
+ dax_ext4 = find_program('dax-ext4.sh')
|
|
|
e0018b |
+ dax_xfs = find_program('dax-xfs.sh')
|
|
|
e0018b |
+ align = find_program('align.sh')
|
|
|
e0018b |
+ device_dax_fio = find_program('device-dax-fio.sh')
|
|
|
e0018b |
+ daxctl_devices = find_program('daxctl-devices.sh')
|
|
|
e0018b |
+ daxctl_create = find_program('daxctl-create.sh')
|
|
|
e0018b |
+ dm = find_program('dm.sh')
|
|
|
e0018b |
+ mmap_test = find_program('mmap.sh')
|
|
|
e0018b |
+
|
|
|
e0018b |
+ tests += [
|
|
|
e0018b |
+ [ 'pmem-ns', pmem_ns ],
|
|
|
e0018b |
+ [ 'sub-section.sh', sub_section ],
|
|
|
e0018b |
+ [ 'dax-dev', dax_dev ],
|
|
|
e0018b |
+ [ 'dax-ext4.sh', dax_ext4 ],
|
|
|
e0018b |
+ [ 'dax-xfs.sh', dax_xfs ],
|
|
|
e0018b |
+ [ 'align.sh', align ],
|
|
|
e0018b |
+ [ 'device-dax', device_dax ],
|
|
|
e0018b |
+ [ 'revoke-devmem', revoke_devmem ],
|
|
|
e0018b |
+ [ 'device-dax-fio.sh', device_dax_fio ],
|
|
|
e0018b |
+ [ 'daxctl-devices.sh', daxctl_devices ],
|
|
|
e0018b |
+ [ 'daxctl-create.sh', daxctl_create ],
|
|
|
e0018b |
+ [ 'dm.sh', dm ],
|
|
|
e0018b |
+ [ 'mmap.sh', mmap_test ],
|
|
|
e0018b |
+ ]
|
|
|
e0018b |
+endif
|
|
|
e0018b |
+
|
|
|
e0018b |
+if get_option('keyutils').enabled()
|
|
|
e0018b |
+ security = find_program('security.sh')
|
|
|
e0018b |
+ tests += [
|
|
|
e0018b |
+ [ 'security.sh', security ]
|
|
|
e0018b |
+ ]
|
|
|
e0018b |
+endif
|
|
|
e0018b |
+
|
|
|
e0018b |
+foreach t : tests
|
|
|
e0018b |
+ test(t[0], t[1],
|
|
|
e0018b |
+ is_parallel : false,
|
|
|
e0018b |
+ depends : [
|
|
|
e0018b |
+ ndctl_tool,
|
|
|
e0018b |
+ daxctl_tool,
|
|
|
e0018b |
+ cxl_tool,
|
|
|
e0018b |
+ smart_notify,
|
|
|
e0018b |
+ list_smart_dimm,
|
|
|
e0018b |
+ dax_pmd,
|
|
|
e0018b |
+ dax_errors,
|
|
|
e0018b |
+ daxdev_errors,
|
|
|
e0018b |
+ dax_dev,
|
|
|
e0018b |
+ mmap,
|
|
|
e0018b |
+ ],
|
|
|
e0018b |
+ timeout : 0,
|
|
|
e0018b |
+ env : [
|
|
|
e0018b |
+ 'NDCTL=@0@'.format(ndctl_tool.full_path()),
|
|
|
e0018b |
+ 'DAXCTL=@0@'.format(daxctl_tool.full_path()),
|
|
|
e0018b |
+ 'TEST_PATH=@0@'.format(meson.current_build_dir()),
|
|
|
e0018b |
+ 'DATA_PATH=@0@'.format(meson.current_source_dir()),
|
|
|
e0018b |
+ ],
|
|
|
e0018b |
+ )
|
|
|
e0018b |
+endforeach
|
|
|
e0018b |
diff -up ndctl-71.1/tools/meson-vcs-tag.sh.orig ndctl-71.1/tools/meson-vcs-tag.sh
|
|
|
e0018b |
--- ndctl-71.1/tools/meson-vcs-tag.sh.orig 2022-10-07 17:29:51.577717675 -0400
|
|
|
e0018b |
+++ ndctl-71.1/tools/meson-vcs-tag.sh 2022-10-07 17:29:51.577717675 -0400
|
|
|
e0018b |
@@ -0,0 +1,18 @@
|
|
|
e0018b |
+#!/usr/bin/env bash
|
|
|
e0018b |
+# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
|
e0018b |
+
|
|
|
e0018b |
+set -eu
|
|
|
e0018b |
+set -o pipefail
|
|
|
e0018b |
+
|
|
|
e0018b |
+dir="${1:?}"
|
|
|
e0018b |
+fallback="${2:?}"
|
|
|
e0018b |
+
|
|
|
e0018b |
+# Apparently git describe has a bug where it always considers the work-tree
|
|
|
e0018b |
+# dirty when invoked with --git-dir (even though 'git status' is happy). Work
|
|
|
e0018b |
+# around this issue by cd-ing to the source directory.
|
|
|
e0018b |
+cd "$dir"
|
|
|
e0018b |
+# Check that we have either .git/ (a normal clone) or a .git file (a work-tree)
|
|
|
e0018b |
+# and that we don't get confused if a tarball is extracted in a higher-level
|
|
|
e0018b |
+# git repository.
|
|
|
e0018b |
+[ -e .git ] && git describe --abbrev=7 --dirty=+ 2>/dev/null | \
|
|
|
e0018b |
+ sed -e 's/^v//' -e 's/-/./g' || echo "$fallback"
|
|
|
e0018b |
diff -up ndctl-71.1/util/meson.build.orig ndctl-71.1/util/meson.build
|
|
|
e0018b |
--- ndctl-71.1/util/meson.build.orig 2022-10-07 17:29:51.578717679 -0400
|
|
|
e0018b |
+++ ndctl-71.1/util/meson.build 2022-10-07 17:29:51.578717679 -0400
|
|
|
e0018b |
@@ -0,0 +1,15 @@
|
|
|
e0018b |
+util = static_library('util', [
|
|
|
e0018b |
+ 'parse-options.c',
|
|
|
e0018b |
+ 'usage.c',
|
|
|
e0018b |
+ 'size.c',
|
|
|
e0018b |
+ 'main.c',
|
|
|
e0018b |
+ 'help.c',
|
|
|
e0018b |
+ 'strbuf.c',
|
|
|
e0018b |
+ 'wrapper.c',
|
|
|
e0018b |
+ 'bitmap.c',
|
|
|
e0018b |
+ 'abspath.c',
|
|
|
e0018b |
+ 'iomem.c',
|
|
|
e0018b |
+ ],
|
|
|
e0018b |
+ include_directories : root_inc,
|
|
|
e0018b |
+)
|
|
|
e0018b |
+util_dep = declare_dependency(link_with : util)
|
|
|
e0018b |
diff -up ndctl-71.1/version.h.in.orig ndctl-71.1/version.h.in
|
|
|
e0018b |
--- ndctl-71.1/version.h.in.orig 2022-10-07 17:29:51.578717679 -0400
|
|
|
e0018b |
+++ ndctl-71.1/version.h.in 2022-10-07 17:29:51.578717679 -0400
|
|
|
e0018b |
@@ -0,0 +1,2 @@
|
|
|
e0018b |
+/* SPDX-License-Identifier: LGPL-2.1 */
|
|
|
e0018b |
+#define VERSION "@VCS_TAG@"
|