Message ID | 20240209103337.25332-1-r-gunasekaran@ti.com |
---|---|
State | Superseded |
Delegated to: | Ryan Eatmon |
Headers | show |
Series | [master/kirkstone] meta-arago-extras: sysrepo: Update netopeer and sysrepo to start under systemd | expand |
On 2/9/24 4:03 PM, Ravi Gunasekaran wrote: > The init.d scripts for sysrepo and netopeer2-server requires certain > other init.d scripts that are now removed. And the systemd services generated > systemd-sysv-generator is not sufficient. > > So introduce new unit files for sysrepo and netopeer2 and update the > respective bitbake recipes. > > Signed-off-by: Ravi Gunasekaran <r-gunasekaran@ti.com> > --- > .../netopeer2-serverd.service | 29 +++++++++++++++ > .../netopeer2-server/netopeer2-server_git.bb | 20 +++++++++- > .../sysrepo/sysrepo/sysrepod.service | 37 +++++++++++++++++++ > .../recipes-sysrepo/sysrepo/sysrepo_git.bb | 23 ++++++++++-- > 4 files changed, 104 insertions(+), 5 deletions(-) > create mode 100644 meta-arago-extras/recipes-sysrepo/netopeer2-server/netopeer2-server/netopeer2-serverd.service > create mode 100644 meta-arago-extras/recipes-sysrepo/sysrepo/sysrepo/sysrepod.service > systemd service status at boot-up and after starting sservices /* sysrepo and netopeer2-server disabled at bootup */ root@am62pxx-evm:~# systemctl status sysrepod.service * sysrepod.service - Sysrepo Loaded: loaded (8;;file://am62pxx-evm/lib/systemd/system/sysrepod.service/lib/systemd/system/sysrepod.service8;;; disabled; vendor preset: disabled)8;; Active: inactive (dead) root@am62pxx-evm:~# root@am62pxx-evm:~# systemctl status netopeer2-serverd.service * netopeer2-serverd.service - Netopeer2-Server Loaded: loaded (8;;file://am62pxx-evm/lib/systemd/system/netopeer2-serverd.service/lib/systemd/system/netopeer2-serverd.service8;;; disabled; vendor preset: disabled)8;; Active: inactive (dead) root@am62pxx-evm:~# root@am62pxx-evm:~# root@am62pxx-evm:~# systemctl start sysrepod.service root@am62pxx-evm:~# root@am62pxx-evm:~# systemctl status sysrepod.service * sysrepod.service - Sysrepo Loaded: loaded (8;;file://am62pxx-evm/lib/systemd/system/sysrepod.service/lib/systemd/system/sysrepod.service8;;; disabled; vendor preset: disabled)8;; Active: active (exited) since Thu 1970-01-01 00:00:56 UTC; 5s ago Process: 1097 ExecStartPre=/bin/bash -c NP2_MODULE_DIR="/usr/share/yang/modules/netopeer2" NP2_MODULE_PERMS="600" NP2_MODULE_OWNER="root" NP2_MODULE_GROU> Process: 1342 ExecStartPre=/bin/bash /etc/netopeer2/scripts/merge_hostkey.sh (code=exited, status=0/SUCCESS) Process: 1365 ExecStartPre=/bin/bash /etc/netopeer2/scripts/merge_config.sh (code=exited, status=0/SUCCESS) Process: 1373 ExecStartPre=touch /etc/sysrepo/init (code=exited, status=0/SUCCESS) Process: 1374 ExecStart=/usr/bin/sysrepo-plugind (code=exited, status=0/SUCCESS) Main PID: 1374 (code=exited, status=0/SUCCESS) Tasks: 3 (limit: 8760) Memory: 6.7M CGroup: /system.slice/sysrepod.service `- 1375 /usr/bin/sysrepo-plugind Jan 01 00:00:51 am62pxx-evm systemd[1]: Starting Sysrepo... Jan 01 00:00:56 am62pxx-evm systemd[1]: Finished Sysrepo. root@am62pxx-evm:~# root@am62pxx-evm:~# systemctl start netopeer2-serverd.service root@am62pxx-evm:~# root@am62pxx-evm:~# systemctl status netopeer2-serverd.service * netopeer2-serverd.service - Netopeer2-Server Loaded: loaded (8;;file://am62pxx-evm/lib/systemd/system/netopeer2-serverd.service/lib/systemd/system/netopeer2-serverd.service8;;; disabled; vendor preset: disabled)8;; Active: active (exited) since Thu 1970-01-01 00:01:15 UTC; 5s ago Process: 1382 ExecStart=/usr/sbin/netopeer2-server -v 1 (code=exited, status=0/SUCCESS) Main PID: 1382 (code=exited, status=0/SUCCESS) Tasks: 6 (limit: 8760) Memory: 5.6M CGroup: /system.slice/netopeer2-serverd.service `- 1383 /usr/sbin/netopeer2-server -v 1 Jan 01 00:01:15 am62pxx-evm systemd[1]: Starting Netopeer2-Server... Jan 01 00:01:15 am62pxx-evm systemd[1]: Finished Netopeer2-Server.
Hi Ravi, On 09/02/24 16:03, Ravi Gunasekaran via lists.yoctoproject.org wrote: > The init. d scripts for sysrepo and netopeer2-server requires certain > other init. d scripts that are now removed. And the systemd services > generated systemd-sysv-generator is not sufficient. So introduce new > unit files for sysrepo and netopeer2 > ZjQcmQRYFpfptBannerStart > This message was sent from outside of Texas Instruments. > Do not click links or open attachments unless you recognize the source > of this email and know the content is safe. > ZjQcmQRYFpfptBannerEnd > The init.d scripts for sysrepo and netopeer2-server requires certain > other init.d scripts that are now removed. And the systemd services generated > systemd-sysv-generator is not sufficient. > > So introduce new unit files for sysrepo and netopeer2 and update the > respective bitbake recipes. > > Signed-off-by: Ravi Gunasekaran <r-gunasekaran@ti.com> > --- > .../netopeer2-serverd.service | 29 +++++++++++++++ > .../netopeer2-server/netopeer2-server_git.bb | 20 +++++++++- > .../sysrepo/sysrepo/sysrepod.service | 37 +++++++++++++++++++ > .../recipes-sysrepo/sysrepo/sysrepo_git.bb | 23 ++++++++++-- > 4 files changed, 104 insertions(+), 5 deletions(-) > create mode 100644 meta-arago-extras/recipes-sysrepo/netopeer2-server/netopeer2-server/netopeer2-serverd.service > create mode 100644 meta-arago-extras/recipes-sysrepo/sysrepo/sysrepo/sysrepod.service > > diff --git a/meta-arago-extras/recipes-sysrepo/netopeer2-server/netopeer2-server/netopeer2-serverd.service b/meta-arago-extras/recipes-sysrepo/netopeer2-server/netopeer2-server/netopeer2-serverd.service > new file mode 100644 > index 00000000..3b365fca > --- /dev/null > +++ b/meta-arago-extras/recipes-sysrepo/netopeer2-server/netopeer2-server/netopeer2-serverd.service > @@ -0,0 +1,29 @@ > +#Permission is hereby granted, free of charge, to any person obtaining a copy > +#of this software and associated documentation files (the "Software"), to deal > +#in the Software without restriction, including without limitation the rights > +#to use, copy, modify, merge, publish, distribute, sublicense, and/or sell > +#copies of the Software, and to permit persons to whom the Software is > +#furnished to do so, subject to the following conditions: > +# > +#The above copyright notice and this permission notice shall be included in > +#all copies or substantial portions of the Software. > +# > +#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR > +#IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > +#FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE > +#AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER > +#LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > +#OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > +#THE SOFTWARE. > + > +[Unit] > +Description=Netopeer2-Server > +After=sysrepod.service > + > +[Service] > +RemainAfterExit=true > +Type=oneshot > +ExecStart=/usr/sbin/netopeer2-server -v 1 > + > +[Install] > +WantedBy=multi-user.target > diff --git a/meta-arago-extras/recipes-sysrepo/netopeer2-server/netopeer2-server_git.bb b/meta-arago-extras/recipes-sysrepo/netopeer2-server/netopeer2-server_git.bb > index e4278d23..7c840243 100644 > --- a/meta-arago-extras/recipes-sysrepo/netopeer2-server/netopeer2-server_git.bb > +++ b/meta-arago-extras/recipes-sysrepo/netopeer2-server/netopeer2-server_git.bb > @@ -3,7 +3,12 @@ DESCRIPTION = "Netopeer2 is based on the new generation of the NETCONF and YANG > LICENSE = "BSD-3-Clause" > LIC_FILES_CHKSUM = "file://LICENSE;md5=41daedff0b24958b2eba4f9086d782e1" > > -SRC_URI = "git://github.com/CESNET/Netopeer2.git;protocol=https;branch=devel file://netopeer2-server" > +SRC_URI = "git://github.com/CESNET/Netopeer2.git;protocol=https;branch=devel \ > + ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', \ > + 'file://netopeer2-server', '', d)} \ > + ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', \ > + 'file://netopeer2-serverd.service', '', d)} \ > + " > > PV = "2.1.59+git${SRCPV}" > SRCREV = "b81788d9a81770313a0eb7f88d4224726b3d6e15" > @@ -16,10 +21,15 @@ RDEPENDS:${PN} += "bash curl" > FILES:${PN} += "/usr/share/yang* /usr/share/netopeer2/* /usr/lib/sysrepo-plugind/*" > > inherit cmake pkgconfig > +inherit ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} > > # Specify any options you want to pass to cmake using EXTRA_OECMAKE: > EXTRA_OECMAKE = " -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE:String=Release -DINSTALL_MODULES=OFF -DGENERATE_HOSTKEY=OFF -DMERGE_LISTEN_CONFIG=OFF" > > +SYSTEMD_PACKAGES = "${PN}" > +SYSTEMD_SERVICE:${PN} = "netopeer2-serverd.service" > +SYSTEMD_AUTO_ENABLE:${PN} = "disable" > + > do_install:append () { > install -d ${D}/etc/netopeer2/scripts > install -o root -g root ${S}/scripts/setup.sh ${D}/etc/netopeer2/scripts/setup.sh > @@ -27,5 +37,11 @@ do_install:append () { > install -o root -g root ${S}/scripts/merge_config.sh ${D}/etc/netopeer2/scripts/merge_config.sh > install -d ${D}/etc/netopeer2 > install -d ${D}/etc/init.d > - install -m 0755 ${WORKDIR}/netopeer2-server ${D}/etc/init.d/ > + if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then > + install -m 0755 ${WORKDIR}/netopeer2-server ${D}/etc/init.d/ > + fi > + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then > + install -d ${D}${systemd_system_unitdir} > + install -m 0644 ${WORKDIR}/netopeer2-serverd.service ${D}${systemd_system_unitdir} > + fi > } > diff --git a/meta-arago-extras/recipes-sysrepo/sysrepo/sysrepo/sysrepod.service b/meta-arago-extras/recipes-sysrepo/sysrepo/sysrepo/sysrepod.service > new file mode 100644 > index 00000000..1b4c3e3b > --- /dev/null > +++ b/meta-arago-extras/recipes-sysrepo/sysrepo/sysrepo/sysrepod.service > @@ -0,0 +1,37 @@ > +#Permission is hereby granted, free of charge, to any person obtaining a copy > +#of this software and associated documentation files (the "Software"), to deal > +#in the Software without restriction, including without limitation the rights > +#to use, copy, modify, merge, publish, distribute, sublicense, and/or sell > +#copies of the Software, and to permit persons to whom the Software is > +#furnished to do so, subject to the following conditions: > +# > +#The above copyright notice and this permission notice shall be included in > +#all copies or substantial portions of the Software. > +# > +#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR > +#IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > +#FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE > +#AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER > +#LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > +#OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > +#THE SOFTWARE. > + > +[Unit] > +Description=Sysrepo > +After=local-fs.target > + > +[Service] > +RemainAfterExit=true > +Type=oneshot > + > +ExecStartPre=/bin/bash -c 'NP2_MODULE_DIR="/usr/share/yang/modules/netopeer2" \ > + NP2_MODULE_PERMS="600" NP2_MODULE_OWNER="root" \ > + NP2_MODULE_GROUP="root" \ > + exec /etc/netopeer2/scripts/setup.sh' > +ExecStartPre=/bin/bash /etc/netopeer2/scripts/merge_hostkey.sh > +ExecStartPre=/bin/bash /etc/netopeer2/scripts/merge_config.sh > +ExecStartPre= touch /etc/sysrepo/init > +ExecStart=/usr/bin/sysrepo-plugind > + > +[Install] > +WantedBy=multi-user.target > diff --git a/meta-arago-extras/recipes-sysrepo/sysrepo/sysrepo_git.bb b/meta-arago-extras/recipes-sysrepo/sysrepo/sysrepo_git.bb > index 18da3ca3..77da7b7a 100644 > --- a/meta-arago-extras/recipes-sysrepo/sysrepo/sysrepo_git.bb > +++ b/meta-arago-extras/recipes-sysrepo/sysrepo/sysrepo_git.bb > @@ -4,7 +4,11 @@ DESCRIPTION = "" > LICENSE = "BSD-3-Clause" > LIC_FILES_CHKSUM = "file://LICENSE;md5=ef345f161efb68c3836e6f5648b2312f" > > -SRC_URI = "git://github.com/sysrepo/sysrepo.git;protocol=https;branch=devel file://sysrepo" > +SRC_URI = "git://github.com/sysrepo/sysrepo.git;protocol=https;branch=devel \ > + ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', \ > + 'file://sysrepo','', d)} \ > + ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', \ > + 'file://sysrepod.service','', d)}" > > PV = "2.2.71+git${SRCPV}" > SRCREV = "b828f0ab4693c613cc66efd053a146e05854d5c8" > @@ -16,12 +20,18 @@ DEPENDS = "libyang protobuf protobuf-c protobuf-c-native libredblack libev libne > FILES:${PN} += "/usr/share/yang/* /usr/lib/sysrepo-plugind/*" > > inherit cmake pkgconfig python3native python3-dir > +inherit ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} > + > > # Specify any options you want to pass to cmake using EXTRA_OECMAKE: > EXTRA_OECMAKE = " -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_BUILD_TYPE:String=Release -DBUILD_EXAMPLES:String=False -DENABLE_TESTS:String=False -DREPOSITORY_LOC:PATH=/etc/sysrepo -DCALL_TARGET_BINS_DIRECTLY=False -DGEN_LANGUAGE_BINDINGS:String=False " > > BBCLASSEXTEND = "native nativesdk" > > +SYSTEMD_PACKAGES = "${PN}" > +SYSTEMD_SERVICE:${PN} = "sysrepod.service" > +SYSTEMD_AUTO_ENABLE:${PN} = "disable" > + > do_install:append () { > install -d ${D}/etc/sysrepo/data/notifications > install -d ${D}/etc/sysrepo/yang > @@ -29,6 +39,13 @@ do_install:append () { > install -o root -g root ${S}/modules/ietf-netconf-with-defaults.yang ${D}/etc/sysrepo/yang/ietf-netconf-with-defaults@2011-06-01.yang > install -o root -g root ${S}/modules/ietf-netconf.yang ${D}/etc/sysrepo/yang/ietf-netconf@2011-06-01.yang > install -d ${D}/etc/init.d > - install -m 0775 ${WORKDIR}/sysrepo ${D}/etc/init.d/ > - install -d ${D}/usr/lib/sysrepo/plugins > + if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then > + install -m 0775 ${WORKDIR}/sysrepo ${D}/etc/init.d/ > + install -d ${D}/usr/lib/sysrepo/plugins Using Yocto's Installation variables (just like you have it for systemd below) is a good idea [1] Eg, * ${D}/etc/init.d/ should be ${D}${sysconfdir}/init.d * ${D}/usr/lib/sysrepo/plugins should be ${D}${libdir}/sysrepo/plugins Reference --------- [1] http://www.embeddedlinux.org.cn/OEManual/directories_installation.html > + fi > + > + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then > + install -d ${D}${systemd_system_unitdir} > + install -m 0644 ${WORKDIR}/sysrepod.service ${D}${systemd_system_unitdir} > + fi > } > > base-commit: db4752d19a46406683f4a4adf8187de8075b70b6 > -- > 2.17.1 > > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#15148):https://urldefense.com/v3/__https://lists.yoctoproject.org/g/meta-arago/message/15148__;!!G3vK!WteFVQcTWZuhDmKaUzOjchX06LXVt5bLZibOfjHxJB6hb6iS8cqgjcWTUCC72HeA5RiRLZJ012AQbGldvKNki1dPVak8P43vSawg$ > Mute This Topic:https://urldefense.com/v3/__https://lists.yoctoproject.org/mt/104256565/7030289__;!!G3vK!WteFVQcTWZuhDmKaUzOjchX06LXVt5bLZibOfjHxJB6hb6iS8cqgjcWTUCC72HeA5RiRLZJ012AQbGldvKNki1dPVak8P27WlTjr$ > Group Owner: meta-arago+owner@lists.yoctoproject.org > Unsubscribe:https://urldefense.com/v3/__https://lists.yoctoproject.org/g/meta-arago/unsub__;!!G3vK!WteFVQcTWZuhDmKaUzOjchX06LXVt5bLZibOfjHxJB6hb6iS8cqgjcWTUCC72HeA5RiRLZJ012AQbGldvKNki1dPVak8P5U1J_IW$ [c-shilwant@ti.com] > -=-=-=-=-=-=-=-=-=-=-=- > >
Chirag, On 2/9/24 4:32 PM, Chirag Shilwant wrote: > Hi Ravi, > >> install -d ${D}/etc/sysrepo/data/notifications >> install -d ${D}/etc/sysrepo/yang >> @@ -29,6 +39,13 @@ do_install:append () { >> install -o root -g root ${S}/modules/ietf-netconf-with-defaults.yang ${D}/etc/sysrepo/yang/ietf-netconf-with-defaults@2011-06-01.yang >> install -o root -g root ${S}/modules/ietf-netconf.yang ${D}/etc/sysrepo/yang/ietf-netconf@2011-06-01.yang >> install -d ${D}/etc/init.d >> - install -m 0775 ${WORKDIR}/sysrepo ${D}/etc/init.d/ >> - install -d ${D}/usr/lib/sysrepo/plugins >> + if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then >> + install -m 0775 ${WORKDIR}/sysrepo ${D}/etc/init.d/ >> + install -d ${D}/usr/lib/sysrepo/plugins > > Using Yocto's Installation variables (just like you have it for systemd below) is a good idea [1] > Eg, > > * ${D}/etc/init.d/ should be ${D}${sysconfdir}/init.d > * ${D}/usr/lib/sysrepo/plugins should be ${D}${libdir}/sysrepo/plugins > Thanks for reviewing the patch. I will rework and send a v2 > > Reference > --------- > [1] http://www.embeddedlinux.org.cn/OEManual/directories_installation.html > >> + fi >> + >> + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then >> + install -d ${D}${systemd_system_unitdir} >> + install -m 0644 ${WORKDIR}/sysrepod.service ${D}${systemd_system_unitdir} >> + fi >> } >> >> base-commit: db4752d19a46406683f4a4adf8187de8075b70b6 >> -- >> 2.17.1 >> >> >> >> -=-=-=-=-=-=-=-=-=-=-=- >> Links: You receive all messages sent to this group. >> View/Reply Online (#15148):https://urldefense.com/v3/__https://lists.yoctoproject.org/g/meta-arago/message/15148__;!!G3vK!WteFVQcTWZuhDmKaUzOjchX06LXVt5bLZibOfjHxJB6hb6iS8cqgjcWTUCC72HeA5RiRLZJ012AQbGldvKNki1dPVak8P43vSawg$ >> Mute This Topic:https://urldefense.com/v3/__https://lists.yoctoproject.org/mt/104256565/7030289__;!!G3vK!WteFVQcTWZuhDmKaUzOjchX06LXVt5bLZibOfjHxJB6hb6iS8cqgjcWTUCC72HeA5RiRLZJ012AQbGldvKNki1dPVak8P27WlTjr$ >> Group Owner: meta-arago+owner@lists.yoctoproject.org >> Unsubscribe:https://urldefense.com/v3/__https://lists.yoctoproject.org/g/meta-arago/unsub__;!!G3vK!WteFVQcTWZuhDmKaUzOjchX06LXVt5bLZibOfjHxJB6hb6iS8cqgjcWTUCC72HeA5RiRLZJ012AQbGldvKNki1dPVak8P5U1J_IW$ [c-shilwant@ti.com] >> -=-=-=-=-=-=-=-=-=-=-=- >> >>
diff --git a/meta-arago-extras/recipes-sysrepo/netopeer2-server/netopeer2-server/netopeer2-serverd.service b/meta-arago-extras/recipes-sysrepo/netopeer2-server/netopeer2-server/netopeer2-serverd.service new file mode 100644 index 00000000..3b365fca --- /dev/null +++ b/meta-arago-extras/recipes-sysrepo/netopeer2-server/netopeer2-server/netopeer2-serverd.service @@ -0,0 +1,29 @@ +#Permission is hereby granted, free of charge, to any person obtaining a copy +#of this software and associated documentation files (the "Software"), to deal +#in the Software without restriction, including without limitation the rights +#to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +#copies of the Software, and to permit persons to whom the Software is +#furnished to do so, subject to the following conditions: +# +#The above copyright notice and this permission notice shall be included in +#all copies or substantial portions of the Software. +# +#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +#IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +#FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +#AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +#LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +#OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +#THE SOFTWARE. + +[Unit] +Description=Netopeer2-Server +After=sysrepod.service + +[Service] +RemainAfterExit=true +Type=oneshot +ExecStart=/usr/sbin/netopeer2-server -v 1 + +[Install] +WantedBy=multi-user.target diff --git a/meta-arago-extras/recipes-sysrepo/netopeer2-server/netopeer2-server_git.bb b/meta-arago-extras/recipes-sysrepo/netopeer2-server/netopeer2-server_git.bb index e4278d23..7c840243 100644 --- a/meta-arago-extras/recipes-sysrepo/netopeer2-server/netopeer2-server_git.bb +++ b/meta-arago-extras/recipes-sysrepo/netopeer2-server/netopeer2-server_git.bb @@ -3,7 +3,12 @@ DESCRIPTION = "Netopeer2 is based on the new generation of the NETCONF and YANG LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=41daedff0b24958b2eba4f9086d782e1" -SRC_URI = "git://github.com/CESNET/Netopeer2.git;protocol=https;branch=devel file://netopeer2-server" +SRC_URI = "git://github.com/CESNET/Netopeer2.git;protocol=https;branch=devel \ + ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', \ + 'file://netopeer2-server', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', \ + 'file://netopeer2-serverd.service', '', d)} \ + " PV = "2.1.59+git${SRCPV}" SRCREV = "b81788d9a81770313a0eb7f88d4224726b3d6e15" @@ -16,10 +21,15 @@ RDEPENDS:${PN} += "bash curl" FILES:${PN} += "/usr/share/yang* /usr/share/netopeer2/* /usr/lib/sysrepo-plugind/*" inherit cmake pkgconfig +inherit ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} # Specify any options you want to pass to cmake using EXTRA_OECMAKE: EXTRA_OECMAKE = " -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE:String=Release -DINSTALL_MODULES=OFF -DGENERATE_HOSTKEY=OFF -DMERGE_LISTEN_CONFIG=OFF" +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE:${PN} = "netopeer2-serverd.service" +SYSTEMD_AUTO_ENABLE:${PN} = "disable" + do_install:append () { install -d ${D}/etc/netopeer2/scripts install -o root -g root ${S}/scripts/setup.sh ${D}/etc/netopeer2/scripts/setup.sh @@ -27,5 +37,11 @@ do_install:append () { install -o root -g root ${S}/scripts/merge_config.sh ${D}/etc/netopeer2/scripts/merge_config.sh install -d ${D}/etc/netopeer2 install -d ${D}/etc/init.d - install -m 0755 ${WORKDIR}/netopeer2-server ${D}/etc/init.d/ + if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then + install -m 0755 ${WORKDIR}/netopeer2-server ${D}/etc/init.d/ + fi + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${systemd_system_unitdir} + install -m 0644 ${WORKDIR}/netopeer2-serverd.service ${D}${systemd_system_unitdir} + fi } diff --git a/meta-arago-extras/recipes-sysrepo/sysrepo/sysrepo/sysrepod.service b/meta-arago-extras/recipes-sysrepo/sysrepo/sysrepo/sysrepod.service new file mode 100644 index 00000000..1b4c3e3b --- /dev/null +++ b/meta-arago-extras/recipes-sysrepo/sysrepo/sysrepo/sysrepod.service @@ -0,0 +1,37 @@ +#Permission is hereby granted, free of charge, to any person obtaining a copy +#of this software and associated documentation files (the "Software"), to deal +#in the Software without restriction, including without limitation the rights +#to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +#copies of the Software, and to permit persons to whom the Software is +#furnished to do so, subject to the following conditions: +# +#The above copyright notice and this permission notice shall be included in +#all copies or substantial portions of the Software. +# +#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +#IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +#FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +#AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +#LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +#OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +#THE SOFTWARE. + +[Unit] +Description=Sysrepo +After=local-fs.target + +[Service] +RemainAfterExit=true +Type=oneshot + +ExecStartPre=/bin/bash -c 'NP2_MODULE_DIR="/usr/share/yang/modules/netopeer2" \ + NP2_MODULE_PERMS="600" NP2_MODULE_OWNER="root" \ + NP2_MODULE_GROUP="root" \ + exec /etc/netopeer2/scripts/setup.sh' +ExecStartPre=/bin/bash /etc/netopeer2/scripts/merge_hostkey.sh +ExecStartPre=/bin/bash /etc/netopeer2/scripts/merge_config.sh +ExecStartPre= touch /etc/sysrepo/init +ExecStart=/usr/bin/sysrepo-plugind + +[Install] +WantedBy=multi-user.target diff --git a/meta-arago-extras/recipes-sysrepo/sysrepo/sysrepo_git.bb b/meta-arago-extras/recipes-sysrepo/sysrepo/sysrepo_git.bb index 18da3ca3..77da7b7a 100644 --- a/meta-arago-extras/recipes-sysrepo/sysrepo/sysrepo_git.bb +++ b/meta-arago-extras/recipes-sysrepo/sysrepo/sysrepo_git.bb @@ -4,7 +4,11 @@ DESCRIPTION = "" LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=ef345f161efb68c3836e6f5648b2312f" -SRC_URI = "git://github.com/sysrepo/sysrepo.git;protocol=https;branch=devel file://sysrepo" +SRC_URI = "git://github.com/sysrepo/sysrepo.git;protocol=https;branch=devel \ + ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', \ + 'file://sysrepo','', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', \ + 'file://sysrepod.service','', d)}" PV = "2.2.71+git${SRCPV}" SRCREV = "b828f0ab4693c613cc66efd053a146e05854d5c8" @@ -16,12 +20,18 @@ DEPENDS = "libyang protobuf protobuf-c protobuf-c-native libredblack libev libne FILES:${PN} += "/usr/share/yang/* /usr/lib/sysrepo-plugind/*" inherit cmake pkgconfig python3native python3-dir +inherit ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} + # Specify any options you want to pass to cmake using EXTRA_OECMAKE: EXTRA_OECMAKE = " -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_BUILD_TYPE:String=Release -DBUILD_EXAMPLES:String=False -DENABLE_TESTS:String=False -DREPOSITORY_LOC:PATH=/etc/sysrepo -DCALL_TARGET_BINS_DIRECTLY=False -DGEN_LANGUAGE_BINDINGS:String=False " BBCLASSEXTEND = "native nativesdk" +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE:${PN} = "sysrepod.service" +SYSTEMD_AUTO_ENABLE:${PN} = "disable" + do_install:append () { install -d ${D}/etc/sysrepo/data/notifications install -d ${D}/etc/sysrepo/yang @@ -29,6 +39,13 @@ do_install:append () { install -o root -g root ${S}/modules/ietf-netconf-with-defaults.yang ${D}/etc/sysrepo/yang/ietf-netconf-with-defaults@2011-06-01.yang install -o root -g root ${S}/modules/ietf-netconf.yang ${D}/etc/sysrepo/yang/ietf-netconf@2011-06-01.yang install -d ${D}/etc/init.d - install -m 0775 ${WORKDIR}/sysrepo ${D}/etc/init.d/ - install -d ${D}/usr/lib/sysrepo/plugins + if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then + install -m 0775 ${WORKDIR}/sysrepo ${D}/etc/init.d/ + install -d ${D}/usr/lib/sysrepo/plugins + fi + + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${systemd_system_unitdir} + install -m 0644 ${WORKDIR}/sysrepod.service ${D}${systemd_system_unitdir} + fi }
The init.d scripts for sysrepo and netopeer2-server requires certain other init.d scripts that are now removed. And the systemd services generated systemd-sysv-generator is not sufficient. So introduce new unit files for sysrepo and netopeer2 and update the respective bitbake recipes. Signed-off-by: Ravi Gunasekaran <r-gunasekaran@ti.com> --- .../netopeer2-serverd.service | 29 +++++++++++++++ .../netopeer2-server/netopeer2-server_git.bb | 20 +++++++++- .../sysrepo/sysrepo/sysrepod.service | 37 +++++++++++++++++++ .../recipes-sysrepo/sysrepo/sysrepo_git.bb | 23 ++++++++++-- 4 files changed, 104 insertions(+), 5 deletions(-) create mode 100644 meta-arago-extras/recipes-sysrepo/netopeer2-server/netopeer2-server/netopeer2-serverd.service create mode 100644 meta-arago-extras/recipes-sysrepo/sysrepo/sysrepo/sysrepod.service base-commit: db4752d19a46406683f4a4adf8187de8075b70b6