diff --git a/.github/workflows/package.yml b/.github/workflows/package.yml index e1b8e69cc..1717c158d 100644 --- a/.github/workflows/package.yml +++ b/.github/workflows/package.yml @@ -31,7 +31,7 @@ jobs: libjson-c-dev libnuma-dev libprotobuf-c-dev libreadline-dev \ librtr-dev libsmartcols-dev libtool libyang-dev meson ninja-build \ patch pkg-config protobuf-c-compiler python3-dev python3-pyelftools \ - texinfo + systemd-dev texinfo - uses: actions/checkout@v4 with: fetch-depth: 0 # force fetch all history diff --git a/cli/meson.build b/cli/meson.build index af22f6373..32589bbe2 100644 --- a/cli/meson.build +++ b/cli/meson.build @@ -23,3 +23,9 @@ if not compiler.has_function( endif cli_inc += include_directories('.') + +install_data( + files('grcli.bash-completion'), + rename: ['grcli'], + install_dir: get_option('datadir') / 'bash-completion/completions', +) diff --git a/debian/control b/debian/control index 1aed0f8f4..a55f239f8 100644 --- a/debian/control +++ b/debian/control @@ -21,6 +21,7 @@ Build-Depends: patch, pkg-config, python3-pyelftools, + systemd-dev, Standards-Version: 4.7.0 Rules-Requires-Root: no Homepage: https://github.com/DPDK/grout diff --git a/debian/grout.bash-completion b/debian/grout.bash-completion deleted file mode 100644 index b92095326..000000000 --- a/debian/grout.bash-completion +++ /dev/null @@ -1,2 +0,0 @@ -main/grout.bash-completion grcli -cli/grcli.bash-completion grout diff --git a/debian/grout.install b/debian/grout.install index 033c8531a..a54dbb56f 100644 --- a/debian/grout.install +++ b/debian/grout.install @@ -2,5 +2,8 @@ /etc/grout.init /usr/bin/grcli /usr/bin/grout +/usr/lib/systemd/system/grout.service +/usr/share/bash-completion/completions/grcli +/usr/share/bash-completion/completions/grout /usr/share/man/man1/grcli.1 /usr/share/man/man8/grout.8 diff --git a/debian/grout.service b/debian/grout.service deleted file mode 120000 index 05f1f9e6e..000000000 --- a/debian/grout.service +++ /dev/null @@ -1 +0,0 @@ -../main/grout.service \ No newline at end of file diff --git a/debian/rules b/debian/rules index 3076767a8..51793cdff 100755 --- a/debian/rules +++ b/debian/rules @@ -22,8 +22,6 @@ override_dh_auto_configure: override_dh_auto_install: meson install -C $(build) --skip-subprojects --destdir=$(dest) - install -D -m 644 main/grout.default $(dest)/etc/default/grout - install -D -m 644 main/grout.init $(dest)/etc/grout.init install -D -m 0755 subprojects/dpdk/usertools/dpdk-telemetry-exporter.py \ $(dest)/usr/bin/grout-telemetry-exporter install -D -m 0644 -t $(dest)/usr/share/dpdk/telemetry-endpoints \ diff --git a/main/meson.build b/main/meson.build index f3a11b200..5f5eeff53 100644 --- a/main/meson.build +++ b/main/meson.build @@ -27,3 +27,27 @@ tests += [ ], }, ] + +systemd_dep = dependency('systemd', required: false) +if systemd_dep.found() + systemd_system_unit_dir = systemd_dep.get_variable( + pkgconfig: 'systemdsystemunitdir', + pkgconfig_define: ['prefix', get_option('prefix')] + ) + install_data( + files('grout.service'), + install_dir: systemd_system_unit_dir, + ) + install_data( + files('grout.default'), + rename: ['grout'], + install_dir: get_option('sysconfdir') / 'default', + ) + install_data('grout.init', install_dir: get_option('sysconfdir')) +endif + +install_data( + files('grout.bash-completion'), + rename: ['grout'], + install_dir: get_option('datadir') / 'bash-completion/completions', +) diff --git a/rpm/grout.spec b/rpm/grout.spec index 02c8645b0..4b75edbd6 100644 --- a/rpm/grout.spec +++ b/rpm/grout.spec @@ -81,11 +81,6 @@ FRR dplane plugin for grout %install %meson_install --skip-subprojects -install -D -m 0644 main/grout.default %{buildroot}%{_sysconfdir}/default/grout -install -D -m 0644 main/grout.init %{buildroot}%{_sysconfdir}/grout.init -install -D -m 0644 main/grout.service %{buildroot}%{_unitdir}/grout.service -install -D -m 0644 main/grout.bash-completion %{buildroot}%{_datadir}/bash-completion/completions/grout -install -D -m 0644 cli/grcli.bash-completion %{buildroot}%{_datadir}/bash-completion/completions/grcli install -D -m 0755 subprojects/dpdk/usertools/dpdk-telemetry-exporter.py %{buildroot}%{_bindir}/grout-telemetry-exporter install -D -m 0644 -t %{buildroot}%{_datadir}/dpdk/telemetry-endpoints subprojects/dpdk/usertools/telemetry-endpoints/*