All of lore.kernel.org
 help / color / mirror / Atom feed
From: Saul Wold <sgw@linux.intel.com>
To: "Ahsan, Noor" <Noor_Ahsan@mentor.com>
Cc: "openembedded-core@lists.openembedded.org"
	<openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH] [v2] openssh: Enabling with systemd
Date: Thu, 11 Jul 2013 11:32:20 -0700	[thread overview]
Message-ID: <51DEFA34.70405@linux.intel.com> (raw)
In-Reply-To: <53609789-437E-429A-997E-7A1BECF21A48@mentor.com>

On 07/11/2013 11:18 AM, Ahsan, Noor wrote:
> We are seeing different checks for different recipes. Do you guys think that it is possible to handle them in bbclass.
>
How different are they, there is the DISTRO_FEATURE check and then 
typically the service file or the init file is sed'ed and installed.

We can cover the common cases and then just have a few outsiders.

Can you detail what the different checks and installs are?

Sau!

> Noor
>
>
> Sent from my iPhone
>
> On Jul 11, 2013, at 23:04, "Saul Wold" <sgw@linux.intel.com> wrote:
>
>> On 07/11/2013 12:45 AM, Shakeel, Muhammad wrote:
>>> From: Muhammad Shakeel <muhammad_shakeel@mentor.com>
>>>
>>> - Remove dependency on systemd layer
>>> - Install 'sysv' related files only if distro has this feature
>>>
>> Seeing all these changes has me thinking we really need to support this correctly in the systemd and maybe a new sysvinit bbclass since you are doing the same thing in multiple recipes, seems like the classes should have some kind of do_install_append that operates on those files.
>>
>> I guess this has been mentioned by JaMa on the oe-devel list, and Ross might be looking into it, but he could use some help if you have time to address the bbclass that would be very helpful.
>>
>> See also: https://bugzilla.yoctoproject.org/show_bug.cgi?id=4309
>>
>> I am going to hold off taking any more of these systemd patches until we get this sorted out.
>>
>>
>> Thanks
>>     Sau!
>>
>>
>>> Signed-off-by: Muhammad Shakeel <muhammad_shakeel@mentor.com>
>>> ---
>>>   .../openssh/openssh-6.2p2/sshd.socket              |   11 ++++++++
>>>   .../openssh/openssh-6.2p2/sshd@.service            |    9 ++++++
>>>   .../openssh/openssh-6.2p2/sshdgenkeys.service      |   10 +++++++
>>>   meta/recipes-connectivity/openssh/openssh_6.2p2.bb |   29 +++++++++++++++++---
>>>   4 files changed, 55 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/meta/recipes-connectivity/openssh/openssh-6.2p2/sshd.socket b/meta/recipes-connectivity/openssh/openssh-6.2p2/sshd.socket
>>> new file mode 100644
>>> index 0000000..753a33b
>>> --- /dev/null
>>> +++ b/meta/recipes-connectivity/openssh/openssh-6.2p2/sshd.socket
>>> @@ -0,0 +1,11 @@
>>> +[Unit]
>>> +Conflicts=sshd.service
>>> +
>>> +[Socket]
>>> +ExecStartPre=/bin/mkdir -p /var/run/sshd
>>> +ListenStream=22
>>> +Accept=yes
>>> +
>>> +[Install]
>>> +WantedBy=sockets.target
>>> +Also=sshdgenkeys.service
>>> diff --git a/meta/recipes-connectivity/openssh/openssh-6.2p2/sshd@.service b/meta/recipes-connectivity/openssh/openssh-6.2p2/sshd@.service
>>> new file mode 100644
>>> index 0000000..d118490
>>> --- /dev/null
>>> +++ b/meta/recipes-connectivity/openssh/openssh-6.2p2/sshd@.service
>>> @@ -0,0 +1,9 @@
>>> +[Unit]
>>> +Description=OpenSSH Per-Connection Daemon
>>> +After=sshdgenkeys.service
>>> +
>>> +[Service]
>>> +ExecStart=-/usr/sbin/sshd -i
>>> +ExecReload=/bin/kill -HUP $MAINPID
>>> +StandardInput=socket
>>> +StandardError=syslog
>>> diff --git a/meta/recipes-connectivity/openssh/openssh-6.2p2/sshdgenkeys.service b/meta/recipes-connectivity/openssh/openssh-6.2p2/sshdgenkeys.service
>>> new file mode 100644
>>> index 0000000..c717214
>>> --- /dev/null
>>> +++ b/meta/recipes-connectivity/openssh/openssh-6.2p2/sshdgenkeys.service
>>> @@ -0,0 +1,10 @@
>>> +[Unit]
>>> +Description=SSH Key Generation
>>> +
>>> +[Service]
>>> +ExecStart=/usr/bin/ssh-keygen -A
>>> +Type=oneshot
>>> +RemainAfterExit=yes
>>> +
>>> +[Install]
>>> +WantedBy=multi-user.target
>>> diff --git a/meta/recipes-connectivity/openssh/openssh_6.2p2.bb b/meta/recipes-connectivity/openssh/openssh_6.2p2.bb
>>> index ab2eefb..b9657d5 100644
>>> --- a/meta/recipes-connectivity/openssh/openssh_6.2p2.bb
>>> +++ b/meta/recipes-connectivity/openssh/openssh_6.2p2.bb
>>> @@ -26,14 +26,17 @@ SRC_URI = "ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-${PV}.tar.
>>>              file://init \
>>>              file://openssh-CVE-2011-4327.patch \
>>>              file://mac.patch \
>>> -           ${@base_contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)}"
>>> +           ${@base_contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \
>>> +           file://sshd.socket \
>>> +           file://sshd@.service \
>>> +           file://sshdgenkeys.service "
>>>
>>>   PAM_SRC_URI = "file://sshd"
>>>
>>>   SRC_URI[md5sum] = "be46174dcbb77ebb4ea88ef140685de1"
>>>   SRC_URI[sha256sum] = "7f29b9d2ad672ae0f9e1dcbff871fc5c2e60a194e90c766432e32161b842313b"
>>>
>>> -inherit useradd update-rc.d update-alternatives
>>> +inherit useradd update-rc.d update-alternatives systemd
>>>
>>>   USERADD_PACKAGES = "${PN}-sshd"
>>>   USERADD_PARAM_${PN}-sshd = "--system --no-create-home --home-dir /var/run/sshd --shell /bin/false --user-group sshd"
>>> @@ -41,6 +44,10 @@ INITSCRIPT_PACKAGES = "${PN}-sshd"
>>>   INITSCRIPT_NAME_${PN}-sshd = "sshd"
>>>   INITSCRIPT_PARAMS_${PN}-sshd = "defaults 9"
>>>
>>> +SYSTEMD_PACKAGES = "${PN}-sshd"
>>> +SYSTEMD_SERVICE_${PN}-sshd = "sshd.socket"
>>> +SYSTEMD_AUTO_ENABLE = "enable"
>>> +
>>>   PACKAGECONFIG ??= "tcp-wrappers"
>>>   PACKAGECONFIG[tcp-wrappers] = "--with-tcp-wrappers,,tcp-wrappers"
>>>
>>> @@ -82,8 +89,21 @@ do_install_append () {
>>>               install -m 0755 ${WORKDIR}/sshd ${D}${sysconfdir}/pam.d/sshd
>>>           fi
>>>       done
>>> -    install -d ${D}${sysconfdir}/init.d
>>> -    install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/sshd
>>> +
>>> +    if ${@base_contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then
>>> +        install -d ${D}${sysconfdir}/init.d
>>> +        install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/sshd
>>> +    fi
>>> +
>>> +    if ${@base_contains('DISTRO_FEATURES','systemd','true','false',d)}; then
>>> +        install -d ${D}${systemd_unitdir}/system
>>> +        install -m 0644 ${WORKDIR}/sshd.socket ${D}${systemd_unitdir}/system
>>> +        install -m 0644 ${WORKDIR}/sshd@.service ${D}${systemd_unitdir}/system
>>> +        install -m 0644 ${WORKDIR}/sshdgenkeys.service ${D}${systemd_unitdir}/system
>>> +        sed -i 's,/usr/sbin/,${sbindir}/,g' ${D}${systemd_unitdir}/system/sshd@.service
>>> +        sed -i 's,/usr/bin/,${bindir}/,g' ${D}${systemd_unitdir}/system/sshdgenkeys.service
>>> +    fi
>>> +
>>>       rm -f ${D}${bindir}/slogin ${D}${datadir}/Ssh.bin
>>>       rmdir ${D}${localstatedir}/run/sshd ${D}${localstatedir}/run ${D}${localstatedir}
>>>   }
>>> @@ -95,6 +115,7 @@ FILES_${PN}-scp = "${bindir}/scp.${BPN}"
>>>   FILES_${PN}-ssh = "${bindir}/ssh.${BPN} ${sysconfdir}/ssh/ssh_config"
>>>   FILES_${PN}-sshd = "${sbindir}/sshd ${sysconfdir}/init.d/sshd"
>>>   FILES_${PN}-sshd += "${sysconfdir}/ssh/moduli ${sysconfdir}/ssh/sshd_config"
>>> +FILES_${PN}-sshd += "${systemd_unitdir}"
>>>   FILES_${PN}-sftp = "${bindir}/sftp"
>>>   FILES_${PN}-sftp-server = "${libexecdir}/sftp-server"
>>>   FILES_${PN}-misc = "${bindir}/ssh* ${libexecdir}/ssh*"
>>>
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core@lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
>


  reply	other threads:[~2013-07-11 18:32 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-11  7:45 [PATCH] [v2] openssh: Enabling with systemd Shakeel, Muhammad
2013-07-11  8:04 ` Muhammad Shakeel
2013-07-11  8:23 ` Martin Jansa
2013-07-11  9:55   ` Shakeel, Muhammad
2013-07-11 18:03 ` Saul Wold
2013-07-11 18:18   ` Ahsan, Noor
2013-07-11 18:32     ` Saul Wold [this message]
2013-07-12 16:32       ` Burton, Ross
2013-07-15 11:42         ` Muhammad Shakeel
2013-07-17 12:27           ` Burton, Ross

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=51DEFA34.70405@linux.intel.com \
    --to=sgw@linux.intel.com \
    --cc=Noor_Ahsan@mentor.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.