From be21b60b8993aa75b35c40c15b23cd32972a2c1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Fri, 7 May 2021 13:24:03 +0200 Subject: [PATCH 01/36] modules-load: inline interator variable --- src/modules-load/modules-load.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/modules-load/modules-load.c b/src/modules-load/modules-load.c index b57d806fab..b2a41a7e75 100644 --- a/src/modules-load/modules-load.c +++ b/src/modules-load/modules-load.c @@ -186,9 +186,7 @@ static int run(int argc, char *argv[]) { r = 0; if (argc > optind) { - int i; - - for (i = optind; i < argc; i++) { + for (int i = optind; i < argc; i++) { k = apply_file(ctx, argv[i], false); if (k < 0 && r == 0) r = k; From e0698c66f4569c91e3fdd54ca77449698ae38704 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Sun, 16 May 2021 15:31:00 +0200 Subject: [PATCH 02/36] meson, mkosi: pull in jinja2 as required In preparation for subsequent changes. --- .mkosi/mkosi.arch | 1 + .mkosi/mkosi.debian | 1 + .mkosi/mkosi.fedora | 1 + .mkosi/mkosi.opensuse | 1 + .mkosi/mkosi.ubuntu | 1 + README | 1 + meson.build | 6 ++++++ 7 files changed, 12 insertions(+) diff --git a/.mkosi/mkosi.arch b/.mkosi/mkosi.arch index 867a869e1a..e0cd6f4834 100644 --- a/.mkosi/mkosi.arch +++ b/.mkosi/mkosi.arch @@ -41,6 +41,7 @@ BuildPackages= pkgconfig python python-lxml + python-jinja qrencode rsync xz diff --git a/.mkosi/mkosi.debian b/.mkosi/mkosi.debian index b1173a67dc..cf3f3364b5 100644 --- a/.mkosi/mkosi.debian +++ b/.mkosi/mkosi.debian @@ -51,6 +51,7 @@ BuildPackages= pkg-config python3 python3-lxml + python3-jinja2 tree uuid-dev xsltproc diff --git a/.mkosi/mkosi.fedora b/.mkosi/mkosi.fedora index a069d8c84e..efce52e1e8 100644 --- a/.mkosi/mkosi.fedora +++ b/.mkosi/mkosi.fedora @@ -55,6 +55,7 @@ BuildPackages= pkgconfig python3-devel python3-lxml + python3dist(jinja2) qrencode-devel rpm tpm2-tss-devel diff --git a/.mkosi/mkosi.opensuse b/.mkosi/mkosi.opensuse index 15f70a4352..387f0af70c 100644 --- a/.mkosi/mkosi.opensuse +++ b/.mkosi/mkosi.opensuse @@ -37,6 +37,7 @@ BuildPackages= pcre-devel python3 python3-lxml + python3-jinja2 qrencode-devel system-user-nobody systemd-sysvinit diff --git a/.mkosi/mkosi.ubuntu b/.mkosi/mkosi.ubuntu index dd1036fc85..29df6ee238 100644 --- a/.mkosi/mkosi.ubuntu +++ b/.mkosi/mkosi.ubuntu @@ -54,6 +54,7 @@ BuildPackages= pkg-config python3 python3-lxml + python3-jinja2 tree tzdata uuid-dev diff --git a/README b/README index 955dc11e1b..88057d2d95 100644 --- a/README +++ b/README @@ -190,6 +190,7 @@ REQUIREMENTS: gperf docbook-xsl (optional, required for documentation) xsltproc (optional, required for documentation) + python-jinja2 python-lxml (optional, required to build the indices) python >= 3.5 meson >= 0.46 (>= 0.49 is required to build position-independent executables) diff --git a/meson.build b/meson.build index a8bbeacd85..5dc083f47f 100644 --- a/meson.build +++ b/meson.build @@ -655,6 +655,12 @@ endif ############################################################ +if run_command('python3', '-c', 'import jinja2').returncode() != 0 + error('python3 jinja2 missing') +endif + +############################################################ + gperf = find_program('gperf') gperf_test_format = ''' From 6b1aac3ccf3a554011a1a6030672fa5b5c4b4f77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Sun, 16 May 2021 11:55:36 +0200 Subject: [PATCH 03/36] meson: replace some m4 templates with jinja2 m4 was nice in '85, but the syntax feels a bit dated. Since we use python for meson, let's use a popular python templating engine to replace some m4 usage. A little nicety is that typos are caught: FAILED: sysusers.d/systemd-remote.conf /usr/bin/meson --internal exe --capture sysusers.d/systemd-remote.conf -- /home/zbyszek/src/systemd/tools/meson-render-jinja2.py config.h ../sysusers.d/systemd-remote.conf.j2 Traceback (most recent call last): File "/home/zbyszek/src/systemd/tools/meson-render-jinja2.py", line 28, in print(render(sys.argv[2], defines)) File "/home/zbyszek/src/systemd/tools/meson-render-jinja2.py", line 24, in render return template.render(defines) File "/usr/lib/python3.9/site-packages/jinja2/environment.py", line 1090, in render self.environment.handle_exception() File "/usr/lib/python3.9/site-packages/jinja2/environment.py", line 832, in handle_exception reraise(*rewrite_traceback_stack(source=source)) File "/usr/lib/python3.9/site-packages/jinja2/_compat.py", line 28, in reraise raise value.with_traceback(tb) File "