From c442887cb73aef0bfe25a3d2a14f396751a54f2e Mon Sep 17 00:00:00 2001 From: Alexander Miroshnichenko Date: Wed, 28 Sep 2022 15:03:48 +0300 Subject: [PATCH] net-misc/netplan: add 0001-buildsystem-meson-fixes.patch --- .../files/0001-buildsystem-meson-fixes.patch | 139 ++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 net-misc/netplan/files/0001-buildsystem-meson-fixes.patch diff --git a/net-misc/netplan/files/0001-buildsystem-meson-fixes.patch b/net-misc/netplan/files/0001-buildsystem-meson-fixes.patch new file mode 100644 index 0000000..822902a --- /dev/null +++ b/net-misc/netplan/files/0001-buildsystem-meson-fixes.patch @@ -0,0 +1,139 @@ +From 89948ed72b80c2671981ce6bb995dccbb5e389b6 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Lukas=20M=C3=A4rdian?= +Date: Wed, 24 Aug 2022 12:34:51 +0200 +Subject: [PATCH] buildsystem: meson fixes +Content-Type: text/plain; charset="utf-8" +Content-Transfer-Encoding: 8bit + +- install all files +- POSIX shell compatibility in generators +- use custom_targets for generators +- fix dbus install directory + +Signed-off-by: Alexander Miroshnichenko +--- + dbus/meson.build | 12 +++++++++++- + features_h_generator.sh | 6 ++++-- + features_py_generator.sh | 6 ++++-- + meson.build | 5 ----- + netplan/meson.build | 15 +++++++++++++-- + 5 files changed, 32 insertions(+), 12 deletions(-) + +diff --git a/dbus/meson.build b/dbus/meson.build +index 68a6ce39208d..fc34e2c2cbf7 100644 +--- a/dbus/meson.build ++++ b/dbus/meson.build +@@ -1,6 +1,16 @@ ++features_h = custom_target( ++ build_always_stale: true, ++ output: '_features.h', ++ input: join_paths(meson.project_source_root(), 'features_h_generator.sh'), ++ command: ['sh', '-c', '@INPUT@'], ++ install: false, ++ capture: true, ++) ++ + executable( + 'netplan-dbus', + '../src/dbus.c', ++ features_h, + include_directories: inc, + link_with: libnetplan, + dependencies: [libsystemd, glib, gio, yaml, uuid], +@@ -9,7 +19,7 @@ executable( + + install_data( + 'io.netplan.Netplan.conf', +- install_dir: join_paths(get_option('datadir'), 'dbus-1', 'systemd.d')) ++ install_dir: join_paths(get_option('datadir'), 'dbus-1', 'system.d')) + + conf_data = configuration_data() + conf_data.set('ROOTLIBEXECDIR', join_paths(get_option('prefix'), get_option('libexecdir'))) +diff --git a/features_h_generator.sh b/features_h_generator.sh +index ed9c3cc78cab..d38771515a2d 100755 +--- a/features_h_generator.sh ++++ b/features_h_generator.sh +@@ -1,6 +1,8 @@ + #!/bin/sh +-OUTPUT=src/_features.h +-INPUT=src/[^_]*.[hc] ++BASE=$(dirname $0) ++OUTPUT=$BASE/src/_features.h ++INPUT=$BASE/src/[!_]*.[hc] + printf "#include \nstatic const char *feature_flags[] __attribute__((__unused__)) = {\n" > $OUTPUT + awk 'match ($0, /netplan-feature:.*/ ) { $0=substr($0, RSTART, RLENGTH); print "\""$2"\"," }' $INPUT >> $OUTPUT + echo "NULL, };" >> $OUTPUT ++cat $OUTPUT +diff --git a/features_py_generator.sh b/features_py_generator.sh +index ecb42af47e75..bbbe3a4e3e30 100755 +--- a/features_py_generator.sh ++++ b/features_py_generator.sh +@@ -1,7 +1,9 @@ + #!/bin/sh +-OUTPUT=netplan/_features.py +-INPUT=src/[^_]*.[hc] ++BASE=$(dirname $0) ++OUTPUT=$BASE/netplan/_features.py ++INPUT=$BASE/src/[!_]*.[hc] + echo "# Generated file" > $OUTPUT + echo "NETPLAN_FEATURE_FLAGS = [" >> $OUTPUT + awk 'match ($0, /netplan-feature:.*/ ) { $0=substr($0, RSTART, RLENGTH); print " \""$2"\"," }' $INPUT >> $OUTPUT + echo "]" >> $OUTPUT ++cat $OUTPUT +diff --git a/meson.build b/meson.build +index 3ab07765b38e..7f48cb4f244a 100644 +--- a/meson.build ++++ b/meson.build +@@ -32,11 +32,6 @@ add_project_arguments( + '-D_XOPEN_SOURCE=700', + language: 'c') + +-message('Generating the _features.[py|h] code') +-#XXX: this is ugly as it produces artifacts in the source directory +-run_command('features_h_generator.sh', check: true) +-run_command('features_py_generator.sh', check: true) +- + inc = include_directories('include') + subdir('include') + subdir('src') +diff --git a/netplan/meson.build b/netplan/meson.build +index 1313cb40ebad..07a13e2cc484 100644 +--- a/netplan/meson.build ++++ b/netplan/meson.build +@@ -4,10 +4,21 @@ install_symlink( + pointing_to: '../share/netplan/netplan.script', + install_dir: get_option('sbindir')) + ++netplan_module = join_paths(get_option('datadir'), meson.project_name(), 'netplan') ++features_py = custom_target( ++ build_always_stale: true, ++ output: '_features.py', ++ input: join_paths(meson.project_source_root(), 'features_py_generator.sh'), ++ command: ['sh', '-c', '@INPUT@'], ++ install: true, ++ install_dir: netplan_module, ++ capture: true, ++) ++ + netplan_sources = files( + '__init__.py', +- '_features.py', + 'configmanager.py', ++ 'libnetplan.py', + 'terminal.py') + + cli_sources = files( +@@ -26,9 +37,9 @@ commands_sources = files( + 'cli/commands/ip.py', + 'cli/commands/migrate.py', + 'cli/commands/set.py', ++ 'cli/commands/sriov_rebind.py', + 'cli/commands/try_command.py') + +-netplan_module = join_paths(get_option('datadir'), meson.project_name(), 'netplan') + install_data(netplan_sources, install_dir: netplan_module) + install_data(cli_sources, install_dir: join_paths(netplan_module, 'cli')) + install_data(commands_sources, install_dir: join_paths(netplan_module, 'cli', 'commands')) +-- +2.26.2 +