summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/recipes-devtools/opkg/opkg.inc21
-rw-r--r--meta/recipes-devtools/opkg/opkg/opkg-configure.service17
-rw-r--r--meta/recipes-devtools/opkg/opkg_svn.bb1
3 files changed, 37 insertions, 2 deletions
diff --git a/meta/recipes-devtools/opkg/opkg.inc b/meta/recipes-devtools/opkg/opkg.inc
index afe6cb0ce6..3d568867d4 100644
--- a/meta/recipes-devtools/opkg/opkg.inc
+++ b/meta/recipes-devtools/opkg/opkg.inc
@@ -16,7 +16,13 @@ do_configure_prepend() {
16 sed -i -e s:-Werror::g ${S}/libopkg/Makefile.am 16 sed -i -e s:-Werror::g ${S}/libopkg/Makefile.am
17} 17}
18 18
19inherit autotools pkgconfig 19inherit autotools pkgconfig systemd
20
21python () {
22 if 'sysvinit' not in d.getVar("DISTRO_FEATURES", True).split():
23 pn = d.getVar('PN', True)
24 d.setVar('SYSTEMD_SERVICE_%s' % (pn), 'opkg-configure.service')
25}
20 26
21target_localstatedir := "${localstatedir}" 27target_localstatedir := "${localstatedir}"
22OPKGLIBDIR = "${target_localstatedir}/lib" 28OPKGLIBDIR = "${target_localstatedir}/lib"
@@ -49,6 +55,16 @@ FILES_libopkg = "${libdir}/*.so.* ${OPKGLIBDIR}/opkg/"
49do_install_append() { 55do_install_append() {
50 # We need to create the lock directory 56 # We need to create the lock directory
51 install -d ${D}${OPKGLIBDIR}/opkg 57 install -d ${D}${OPKGLIBDIR}/opkg
58
59 if ${@base_contains('DISTRO_FEATURES','sysvinit','false','true',d)};then
60 install -d ${D}${systemd_unitdir}/system
61 install -m 0644 ${WORKDIR}/opkg-configure.service ${D}${systemd_unitdir}/system/
62 sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \
63 -e 's,@SYSCONFDIR@,${sysconfdir},g' \
64 -e 's,@BINDIR@,${bindir},g' \
65 -e 's,@SYSTEMD_UNITDIR@,${systemd_unitdir},g' \
66 ${D}${systemd_unitdir}/system/opkg-configure.service
67 fi
52} 68}
53 69
54do_install_append_class-native() { 70do_install_append_class-native() {
@@ -59,7 +75,8 @@ do_install_append_class-native() {
59 75
60pkg_postinst_${PN} () { 76pkg_postinst_${PN} () {
61#!/bin/sh 77#!/bin/sh
62if [ "x$D" != "x" ] && [ -f $D${OPKGLIBDIR}/opkg/status ]; then 78if ${@base_contains('DISTRO_FEATURES','sysvinit','true','false',d)} && \
79 [ "x$D" != "x" ] && [ -f $D${OPKGLIBDIR}/opkg/status ]; then
63 install -d $D${sysconfdir}/rcS.d 80 install -d $D${sysconfdir}/rcS.d
64 81
65 # this happens at S98 where our good 'ole packages script used to run 82 # this happens at S98 where our good 'ole packages script used to run
diff --git a/meta/recipes-devtools/opkg/opkg/opkg-configure.service b/meta/recipes-devtools/opkg/opkg/opkg-configure.service
new file mode 100644
index 0000000000..a1c3a31796
--- /dev/null
+++ b/meta/recipes-devtools/opkg/opkg/opkg-configure.service
@@ -0,0 +1,17 @@
1[Unit]
2Description=Opkg first boot configure
3DefaultDependencies=no
4After=systemd-remount-fs.service systemd-tmpfiles-setup.service tmp.mount
5Before=sysinit.target
6
7[Service]
8Type=oneshot
9EnvironmentFile=-@SYSCONFDIR@/default/postinst
10ExecStart=@BASE_BINDIR@/sh -c " if [ $POSTINST_LOGGING = '1' ]; then @BINDIR@/opkg-cl configure > $LOGFILE 2>&1; else @BINDIR@/opkg-cl configure; fi"
11ExecStartPost=@BASE_BINDIR@/systemctl disable opkg-configure.service
12StandardOutput=syslog
13RemainAfterExit=No
14
15[Install]
16WantedBy=basic.target
17WantedBy=sysinit.target
diff --git a/meta/recipes-devtools/opkg/opkg_svn.bb b/meta/recipes-devtools/opkg/opkg_svn.bb
index bc10491030..cd0485fe38 100644
--- a/meta/recipes-devtools/opkg/opkg_svn.bb
+++ b/meta/recipes-devtools/opkg/opkg_svn.bb
@@ -3,6 +3,7 @@ require opkg.inc
3SRC_URI = "svn://opkg.googlecode.com/svn;module=trunk;protocol=http \ 3SRC_URI = "svn://opkg.googlecode.com/svn;module=trunk;protocol=http \
4 file://no-install-recommends.patch \ 4 file://no-install-recommends.patch \
5 file://add-exclude.patch \ 5 file://add-exclude.patch \
6 file://opkg-configure.service \
6" 7"
7 8
8S = "${WORKDIR}/trunk" 9S = "${WORKDIR}/trunk"