* [PATCH 0/1] dhcp: add dhclient.service
@ 2014-12-17 3:03 Chen Qi
2014-12-17 7:22 ` ChenQi
0 siblings, 1 reply; 4+ messages in thread
From: Chen Qi @ 2014-12-17 3:03 UTC (permalink / raw)
To: openembedded-core
The following changes since commit 68ddb28a68ceb59cd1ed322c16143827ce1ac712:
distrodata_class: checkpkg make usage of latest_versionstring methods in bitbake fetcher (2014-11-28 13:59:52 +0000)
are available in the git repository at:
git://git.pokylinux.org/poky-contrib ChenQi/systemd-dhclient
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=ChenQi/systemd-dhclient
Chen Qi (1):
dhcp: add dhclient.service
meta/recipes-connectivity/dhcp/dhcp.inc | 11 ++++++++---
meta/recipes-connectivity/dhcp/files/dhclient.service | 15 +++++++++++++++
2 files changed, 23 insertions(+), 3 deletions(-)
create mode 100644 meta/recipes-connectivity/dhcp/files/dhclient.service
--
1.9.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 0/1] dhcp: add dhclient.service
2014-12-17 3:03 [PATCH 0/1] " Chen Qi
@ 2014-12-17 7:22 ` ChenQi
0 siblings, 0 replies; 4+ messages in thread
From: ChenQi @ 2014-12-17 7:22 UTC (permalink / raw)
To: openembedded-core
Please ignore this one.
This one doesn't take nfs boot into consideration.
V2 will be sent.
Regards,
Chen Qi
On 12/17/2014 11:03 AM, Chen Qi wrote:
> The following changes since commit 68ddb28a68ceb59cd1ed322c16143827ce1ac712:
>
> distrodata_class: checkpkg make usage of latest_versionstring methods in bitbake fetcher (2014-11-28 13:59:52 +0000)
>
> are available in the git repository at:
>
> git://git.pokylinux.org/poky-contrib ChenQi/systemd-dhclient
> http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=ChenQi/systemd-dhclient
>
> Chen Qi (1):
> dhcp: add dhclient.service
>
> meta/recipes-connectivity/dhcp/dhcp.inc | 11 ++++++++---
> meta/recipes-connectivity/dhcp/files/dhclient.service | 15 +++++++++++++++
> 2 files changed, 23 insertions(+), 3 deletions(-)
> create mode 100644 meta/recipes-connectivity/dhcp/files/dhclient.service
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 0/1] dhcp: add dhclient.service
@ 2017-07-20 7:33 Chen Qi
2017-07-20 7:33 ` [PATCH 1/1] " Chen Qi
0 siblings, 1 reply; 4+ messages in thread
From: Chen Qi @ 2017-07-20 7:33 UTC (permalink / raw)
To: openembedded-core
The following changes since commit 57f606b12b339c82e6981d7ac32450c00d787085:
libgcrypt: upgrade to 1.7.8 (2017-07-19 15:13:40 +0100)
are available in the git repository at:
git://git.pokylinux.org/poky-contrib ChenQi/dhclient_service
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=ChenQi/dhclient_service
Chen Qi (1):
dhcp: add dhclient.service
meta/recipes-connectivity/dhcp/dhcp.inc | 21 ++++++++++--
.../dhcp/files/dhclient-systemd-wrapper | 39 ++++++++++++++++++++++
.../dhcp/files/dhclient.service | 13 ++++++++
3 files changed, 70 insertions(+), 3 deletions(-)
create mode 100644 meta/recipes-connectivity/dhcp/files/dhclient-systemd-wrapper
create mode 100644 meta/recipes-connectivity/dhcp/files/dhclient.service
--
1.9.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 1/1] dhcp: add dhclient.service
2017-07-20 7:33 [PATCH 0/1] dhcp: add dhclient.service Chen Qi
@ 2017-07-20 7:33 ` Chen Qi
0 siblings, 0 replies; 4+ messages in thread
From: Chen Qi @ 2017-07-20 7:33 UTC (permalink / raw)
To: openembedded-core
Add dhclient.service. This service file mainly comes from meta-systemd,
with modifications to take nfs boot into consideration.
While using eth0 as the nfsboot interface, we'd like dhclient service
to skip it like what ifup and connman do in sysvinit.
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
meta/recipes-connectivity/dhcp/dhcp.inc | 21 ++++++++++--
.../dhcp/files/dhclient-systemd-wrapper | 39 ++++++++++++++++++++++
.../dhcp/files/dhclient.service | 13 ++++++++
3 files changed, 70 insertions(+), 3 deletions(-)
create mode 100644 meta/recipes-connectivity/dhcp/files/dhclient-systemd-wrapper
create mode 100644 meta/recipes-connectivity/dhcp/files/dhclient.service
diff --git a/meta/recipes-connectivity/dhcp/dhcp.inc b/meta/recipes-connectivity/dhcp/dhcp.inc
index 292f192..db4a963 100644
--- a/meta/recipes-connectivity/dhcp/dhcp.inc
+++ b/meta/recipes-connectivity/dhcp/dhcp.inc
@@ -17,6 +17,8 @@ SRC_URI = "http://ftp.isc.org/isc/dhcp/${PV}/dhcp-${PV}.tar.gz \
file://init-relay file://default-relay \
file://init-server file://default-server \
file://dhclient.conf file://dhcpd.conf \
+ file://dhclient-systemd-wrapper \
+ file://dhclient.service \
file://dhcpd.service file://dhcrelay.service \
file://dhcpd6.service \
file://search-for-libxml2.patch "
@@ -29,13 +31,16 @@ inherit autotools systemd useradd update-rc.d
USERADD_PACKAGES = "${PN}-server"
USERADD_PARAM_${PN}-server = "--system --no-create-home --home-dir /var/run/${PN} --shell /bin/false --user-group ${PN}"
-SYSTEMD_PACKAGES = "${PN}-server ${PN}-relay"
+SYSTEMD_PACKAGES = "${PN}-server ${PN}-relay ${PN}-client"
SYSTEMD_SERVICE_${PN}-server = "dhcpd.service dhcpd6.service"
SYSTEMD_AUTO_ENABLE_${PN}-server = "disable"
SYSTEMD_SERVICE_${PN}-relay = "dhcrelay.service"
SYSTEMD_AUTO_ENABLE_${PN}-relay = "disable"
+SYSTEMD_SERVICE_${PN}-client = "dhclient.service"
+SYSTEMD_AUTO_ENABLE_${PN}-client = "disable"
+
INITSCRIPT_PACKAGES = "dhcp-server"
INITSCRIPT_NAME_dhcp-server = "dhcp-server"
INITSCRIPT_PARAMS_dhcp-server = "defaults"
@@ -79,7 +84,13 @@ do_install_append () {
sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' ${D}${systemd_unitdir}/system/dhcpd*.service
sed -i -e 's,@base_bindir@,${base_bindir},g' ${D}${systemd_unitdir}/system/dhcpd*.service
sed -i -e 's,@localstatedir@,${localstatedir},g' ${D}${systemd_unitdir}/system/dhcpd*.service
- sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' ${D}${systemd_unitdir}/system/dhcrelay.service
+ sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' ${D}${systemd_unitdir}/system/dhcrelay.service
+
+ install -d ${D}${base_sbindir}
+ install -m 0755 ${WORKDIR}/dhclient-systemd-wrapper ${D}${base_sbindir}/dhclient-systemd-wrapper
+ install -m 0644 ${WORKDIR}/dhclient.service ${D}${systemd_unitdir}/system
+ sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' ${D}${systemd_unitdir}/system/dhclient.service
+ sed -i -e 's,@BASE_SBINDIR@,${base_sbindir},g' ${D}${systemd_unitdir}/system/dhclient.service
}
PACKAGES += "dhcp-libs dhcp-server dhcp-server-config dhcp-client dhcp-relay dhcp-omshell"
@@ -97,7 +108,11 @@ FILES_${PN}-server-config = "${sysconfdir}/default/dhcp-server ${sysconfdir}/dhc
FILES_${PN}-relay = "${sbindir}/dhcrelay ${sysconfdir}/init.d/dhcp-relay ${sysconfdir}/default/dhcp-relay"
-FILES_${PN}-client = "${base_sbindir}/dhclient ${base_sbindir}/dhclient-script ${sysconfdir}/dhcp/dhclient.conf"
+FILES_${PN}-client = "${base_sbindir}/dhclient \
+ ${base_sbindir}/dhclient-script \
+ ${sysconfdir}/dhcp/dhclient.conf \
+ ${base_sbindir}/dhclient-systemd-wrapper \
+ "
FILES_${PN}-omshell = "${bindir}/omshell"
diff --git a/meta/recipes-connectivity/dhcp/files/dhclient-systemd-wrapper b/meta/recipes-connectivity/dhcp/files/dhclient-systemd-wrapper
new file mode 100644
index 0000000..7d0e224
--- /dev/null
+++ b/meta/recipes-connectivity/dhcp/files/dhclient-systemd-wrapper
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+# In case the interface is used for nfs, skip it.
+nfsroot=0
+interfaces=""
+exec 9<&0 < /proc/mounts
+while read dev mtpt fstype rest; do
+ if test $mtpt = "/" ; then
+ case $fstype in
+ nfs | nfs4)
+ nfsroot=1
+ nfs_addr=`echo $rest | sed -e 's/^.*addr=\([0-9.]*\).*$/\1/'`
+ break
+ ;;
+ *)
+ ;;
+ esac
+ fi
+done
+exec 0<&9 9<&-
+
+if [ $nfsroot -eq 0 ]; then
+ interfaces="$INTERFACES"
+else
+ if [ -x /bin/ip -o -x /sbin/ip ] ; then
+ nfs_iface=`ip route get $nfs_addr | grep dev | sed -e 's/^.*dev \([-a-z0-9.]*\).*$/\1/'`
+ fi
+ for i in $INTERFACES; do
+ if test "x$i" = "x$nfs_iface"; then
+ echo "dhclient skipping nfsroot interface $i"
+ else
+ interfaces="$interfaces $i"
+ fi
+ done
+fi
+
+if test "x$interfaces" != "x"; then
+ /sbin/dhclient -d -cf /etc/dhcp/dhclient.conf -q -lf /var/lib/dhcp/dhclient.leases $interfaces
+fi
diff --git a/meta/recipes-connectivity/dhcp/files/dhclient.service b/meta/recipes-connectivity/dhcp/files/dhclient.service
new file mode 100644
index 0000000..9ddb4d1
--- /dev/null
+++ b/meta/recipes-connectivity/dhcp/files/dhclient.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Dynamic Host Configuration Protocol (DHCP)
+Wants=network.target
+Before=network.target
+After=systemd-udevd.service
+
+[Service]
+EnvironmentFile=-@SYSCONFDIR@/default/dhcp-client
+ExecStart=@BASE_SBINDIR@/dhclient-systemd-wrapper
+RemainAfterExit=yes
+
+[Install]
+WantedBy=multi-user.target
--
1.9.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2017-07-20 7:29 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-07-20 7:33 [PATCH 0/1] dhcp: add dhclient.service Chen Qi
2017-07-20 7:33 ` [PATCH 1/1] " Chen Qi
-- strict thread matches above, loose matches on Subject: below --
2014-12-17 3:03 [PATCH 0/1] " Chen Qi
2014-12-17 7:22 ` ChenQi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox