summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/opkg/opkg.inc
diff options
context:
space:
mode:
authorMuhammad Shakeel <muhammad_shakeel@mentor.com>2013-09-27 18:14:15 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-09-30 22:11:58 +0100
commitd2736102f3b32306e3d0edb9584548ad9a967881 (patch)
tree2ed82ca70157d112b7cbdec7e4de4d6fe0486a4f /meta/recipes-devtools/opkg/opkg.inc
parent7509c0f647f65c42ff256d2bfb9e1ffb2f3d816e (diff)
downloadast2050-yocto-poky-d2736102f3b32306e3d0edb9584548ad9a967881.zip
ast2050-yocto-poky-d2736102f3b32306e3d0edb9584548ad9a967881.tar.gz
opkg: Use systemd service for first boot configuration
Currently opkg uses a script to configure packages during first time boot. This script is present in rcS.d and when 'sysvinit' is disabled this script doesn't execute. For systemd only distros this newly added service will run the opkg configure during first boot only. (From OE-Core rev: fdcfcea5b8eae1769a217f8efea9c02f037f63fa) Signed-off-by: Muhammad Shakeel <muhammad_shakeel@mentor.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools/opkg/opkg.inc')
-rw-r--r--meta/recipes-devtools/opkg/opkg.inc21
1 files changed, 19 insertions, 2 deletions
diff --git a/meta/recipes-devtools/opkg/opkg.inc b/meta/recipes-devtools/opkg/opkg.inc
index afe6cb0..3d56886 100644
--- a/meta/recipes-devtools/opkg/opkg.inc
+++ b/meta/recipes-devtools/opkg/opkg.inc
@@ -16,7 +16,13 @@ do_configure_prepend() {
sed -i -e s:-Werror::g ${S}/libopkg/Makefile.am
}
-inherit autotools pkgconfig
+inherit autotools pkgconfig systemd
+
+python () {
+ if 'sysvinit' not in d.getVar("DISTRO_FEATURES", True).split():
+ pn = d.getVar('PN', True)
+ d.setVar('SYSTEMD_SERVICE_%s' % (pn), 'opkg-configure.service')
+}
target_localstatedir := "${localstatedir}"
OPKGLIBDIR = "${target_localstatedir}/lib"
@@ -49,6 +55,16 @@ FILES_libopkg = "${libdir}/*.so.* ${OPKGLIBDIR}/opkg/"
do_install_append() {
# We need to create the lock directory
install -d ${D}${OPKGLIBDIR}/opkg
+
+ if ${@base_contains('DISTRO_FEATURES','sysvinit','false','true',d)};then
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/opkg-configure.service ${D}${systemd_unitdir}/system/
+ sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \
+ -e 's,@SYSCONFDIR@,${sysconfdir},g' \
+ -e 's,@BINDIR@,${bindir},g' \
+ -e 's,@SYSTEMD_UNITDIR@,${systemd_unitdir},g' \
+ ${D}${systemd_unitdir}/system/opkg-configure.service
+ fi
}
do_install_append_class-native() {
@@ -59,7 +75,8 @@ do_install_append_class-native() {
pkg_postinst_${PN} () {
#!/bin/sh
-if [ "x$D" != "x" ] && [ -f $D${OPKGLIBDIR}/opkg/status ]; then
+if ${@base_contains('DISTRO_FEATURES','sysvinit','true','false',d)} && \
+ [ "x$D" != "x" ] && [ -f $D${OPKGLIBDIR}/opkg/status ]; then
install -d $D${sysconfdir}/rcS.d
# this happens at S98 where our good 'ole packages script used to run
OpenPOWER on IntegriCloud