* [PATCH 1/5] busybox: fix hardcoding of paths
2014-12-19 9:17 [PATCH 0/5] Misc fixes about hardcoding of paths Chen Qi
@ 2014-12-19 9:17 ` Chen Qi
2014-12-19 9:17 ` [PATCH 2/5] systemd: " Chen Qi
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Chen Qi @ 2014-12-19 9:17 UTC (permalink / raw)
To: openembedded-core
Instead of using paths like '/etc' and '/bin', we should use ${sysconfdir}
and ${base_bindir}.
Otherwise, when ${base_bindir} is not '/bin', there would be errors.
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
meta/recipes-core/busybox/busybox.inc | 66 +++++++++++++++++++++--------------
1 file changed, 39 insertions(+), 27 deletions(-)
diff --git a/meta/recipes-core/busybox/busybox.inc b/meta/recipes-core/busybox/busybox.inc
index bd66e4f..b853adc 100644
--- a/meta/recipes-core/busybox/busybox.inc
+++ b/meta/recipes-core/busybox/busybox.inc
@@ -178,6 +178,9 @@ do_install () {
if [ "${base_sbindir}" != "/sbin" ]; then
sed -i "s:^/sbin/:${base_sbindir}/:" busybox.links*
fi
+ if [ "${base_bindir}" != "/bin" ]; then
+ sed -i "s:^/bin/:${base_bindir}/:" busybox.links*
+ fi
install -d ${D}${sysconfdir}/init.d
@@ -319,6 +322,8 @@ python do_package_prepend () {
dvar = d.getVar('D', True)
pn = d.getVar('PN', True)
+ sysconfdir = d.getVar('sysconfdir', True)
+ base_bindir = d.getVar('base_bindir', True)
def set_alternative_vars(links, target):
f = open('%s%s' % (dvar, links), 'r')
for alt_link_name in f:
@@ -334,11 +339,11 @@ python do_package_prepend () {
f.close()
return
- if os.path.exists('%s/etc/busybox.links' % (dvar)):
- set_alternative_vars("/etc/busybox.links", "/bin/busybox")
+ if os.path.exists('%s%s/busybox.links' % (dvar, sysconfdir)):
+ set_alternative_vars("%s/busybox.links" % sysconfdir, "%s/busybox" % base_bindir)
else:
- set_alternative_vars("/etc/busybox.links.nosuid", "/bin/busybox.nosuid")
- set_alternative_vars("/etc/busybox.links.suid", "/bin/busybox.suid")
+ set_alternative_vars("%s/busybox.links.nosuid" % sysconfdir, "%s/busybox.nosuid" % base_bindir)
+ set_alternative_vars("%s/busybox.links.suid" % sysconfdir, "%s/busybox.suid" % base_bindir)
}
pkg_postinst_${PN} () {
@@ -350,22 +355,29 @@ pkg_postinst_${PN} () {
if test "x$D" = "x"; then
# Remove busybox.nosuid if it's a symlink, because this situation indicates
# that we're installing or upgrading to a one-binary busybox.
- if test -h /bin/busybox.nosuid; then
- rm -f /bin/busybox.nosuid
+ if test -h ${base_bindir}/busybox.nosuid; then
+ rm -f ${base_bindir}/busybox.nosuid
fi
for suffix in "" ".nosuid" ".suid"; do
- if test -e /etc/busybox.links$suffix; then
+ if test -e ${sysconfdir}/busybox.links$suffix; then
while read link; do
if test ! -e "$link"; then
case "$link" in
- /*/*/*)
- to="../../bin/busybox$suffix"
+ ${bindir}/*)
+ to="${@os.path.relpath('%s/busybox' % base_bindir, bindir)}"
+ to="$to$suffix"
+ ;;
+ ${sbindir}/*)
+ to="${@os.path.relpath('%s/busybox' % base_bindir, sbindir)}"
+ to="$to$suffix"
;;
- /bin/*)
- to="busybox$suffix"
+ ${base_bindir}/*)
+ to="${@os.path.relpath('%s/busybox' % base_bindir, base_bindir)}"
+ to="$to$suffix"
;;
- /*/*)
- to="../bin/busybox$suffix"
+ ${base_sbindir}/*)
+ to="${@os.path.relpath('%s/busybox' % base_bindir, base_sbindir)}"
+ to="$to$suffix"
;;
esac
# we can use busybox here because even if we are using splitted busybox
@@ -373,7 +385,7 @@ pkg_postinst_${PN} () {
busybox rm -f $link
busybox ln -s $to $link
fi
- done < /etc/busybox.links$suffix
+ done < ${sysconfdir}/busybox.links$suffix
fi
done
fi
@@ -384,19 +396,19 @@ pkg_prerm_${PN} () {
# providing its files, this will make update-alternatives work, but the update-rc.d part
# for syslog, httpd and/or udhcpd will fail if there is no other package providing sh
tmpdir=`mktemp -d /tmp/busyboxrm-XXXXXX`
- ln -s /bin/busybox $tmpdir/[
- ln -s /bin/busybox $tmpdir/test
- ln -s /bin/busybox $tmpdir/head
- ln -s /bin/busybox $tmpdir/sh
- ln -s /bin/busybox $tmpdir/basename
- ln -s /bin/busybox $tmpdir/echo
- ln -s /bin/busybox $tmpdir/mv
- ln -s /bin/busybox $tmpdir/ln
- ln -s /bin/busybox $tmpdir/dirname
- ln -s /bin/busybox $tmpdir/rm
- ln -s /bin/busybox $tmpdir/sed
- ln -s /bin/busybox $tmpdir/sort
- ln -s /bin/busybox $tmpdir/grep
+ ln -s ${base_bindir}/busybox $tmpdir/[
+ ln -s ${base_bindir}/busybox $tmpdir/test
+ ln -s ${base_bindir}/busybox $tmpdir/head
+ ln -s ${base_bindir}/busybox $tmpdir/sh
+ ln -s ${base_bindir}/busybox $tmpdir/basename
+ ln -s ${base_bindir}/busybox $tmpdir/echo
+ ln -s ${base_bindir}/busybox $tmpdir/mv
+ ln -s ${base_bindir}/busybox $tmpdir/ln
+ ln -s ${base_bindir}/busybox $tmpdir/dirname
+ ln -s ${base_bindir}/busybox $tmpdir/rm
+ ln -s ${base_bindir}/busybox $tmpdir/sed
+ ln -s ${base_bindir}/busybox $tmpdir/sort
+ ln -s ${base_bindir}/busybox $tmpdir/grep
export PATH=$PATH:$tmpdir
}
--
1.9.1
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH 2/5] systemd: fix hardcoding of paths
2014-12-19 9:17 [PATCH 0/5] Misc fixes about hardcoding of paths Chen Qi
2014-12-19 9:17 ` [PATCH 1/5] busybox: fix " Chen Qi
@ 2014-12-19 9:17 ` Chen Qi
2014-12-19 9:17 ` [PATCH 3/5] sed: test bindir and base_bindir before moving and removing things Chen Qi
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Chen Qi @ 2014-12-19 9:17 UTC (permalink / raw)
To: openembedded-core
Instead of using '/lib', we should use ${nonarch_lib_dir}.
Otherwise, when ${nonarch_lib_dir} is not /lib, there would be errors.
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
meta/recipes-core/systemd/systemd_216.bb | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/meta/recipes-core/systemd/systemd_216.bb b/meta/recipes-core/systemd/systemd_216.bb
index 536b7be..b90e739 100644
--- a/meta/recipes-core/systemd/systemd_216.bb
+++ b/meta/recipes-core/systemd/systemd_216.bb
@@ -87,7 +87,7 @@ EXTRA_OECONF = " --with-rootprefix=${rootprefix} \
--enable-split-usr \
--without-python \
--with-sysvrcnd-path=${sysconfdir} \
- --with-firmware-path=/lib/firmware \
+ --with-firmware-path=${nonarch_base_libdir}/firmware \
ac_cv_path_KILL=${base_bindir}/kill \
"
# uclibc does not have NSS
@@ -260,10 +260,10 @@ FILES_${PN} = " ${base_bindir}/* \
${exec_prefix}/lib/sysctl.d \
${exec_prefix}/lib/sysusers.d \
${localstatedir} \
- /lib/udev/rules.d/70-uaccess.rules \
- /lib/udev/rules.d/71-seat.rules \
- /lib/udev/rules.d/73-seat-late.rules \
- /lib/udev/rules.d/99-systemd.rules \
+ ${nonarch_base_libdir}/udev/rules.d/70-uaccess.rules \
+ ${nonarch_base_libdir}/udev/rules.d/71-seat.rules \
+ ${nonarch_base_libdir}/udev/rules.d/73-seat-late.rules \
+ ${nonarch_base_libdir}/udev/rules.d/99-systemd.rules \
${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${sysconfdir}/pam.d', '', d)} \
"
@@ -281,7 +281,7 @@ RRECOMMENDS_${PN} += "systemd-serialgetty systemd-compat-units udev-hwdb\
PACKAGES =+ "udev-dbg udev udev-hwdb"
-FILES_udev-dbg += "/lib/udev/.debug"
+FILES_udev-dbg += "${nonarch_base_libdir}/udev/.debug"
RPROVIDES_udev = "hotplug"
--
1.9.1
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH 3/5] sed: test bindir and base_bindir before moving and removing things
2014-12-19 9:17 [PATCH 0/5] Misc fixes about hardcoding of paths Chen Qi
2014-12-19 9:17 ` [PATCH 1/5] busybox: fix " Chen Qi
2014-12-19 9:17 ` [PATCH 2/5] systemd: " Chen Qi
@ 2014-12-19 9:17 ` Chen Qi
2014-12-19 9:17 ` [PATCH 4/5] alsa-utils: fix FILES of alsa-utils-alsactl Chen Qi
2014-12-19 9:17 ` [PATCH 5/5] glibc-package.inc: fix order in PACKAGES Chen Qi
4 siblings, 0 replies; 6+ messages in thread
From: Chen Qi @ 2014-12-19 9:17 UTC (permalink / raw)
To: openembedded-core
It's possible that ${base_bindir} and ${bindir} point to the same directory.
So we need to test it before moving things around or removing things.
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
meta/recipes-extended/sed/sed_4.1.2.bb | 6 ++++--
meta/recipes-extended/sed/sed_4.2.2.bb | 6 ++++--
2 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/meta/recipes-extended/sed/sed_4.1.2.bb b/meta/recipes-extended/sed/sed_4.1.2.bb
index fe242e1..a2bcb7d 100644
--- a/meta/recipes-extended/sed/sed_4.1.2.bb
+++ b/meta/recipes-extended/sed/sed_4.1.2.bb
@@ -23,8 +23,10 @@ do_configure_prepend () {
do_install () {
autotools_do_install
install -d ${D}${base_bindir}
- mv ${D}${bindir}/sed ${D}${base_bindir}/sed
- rmdir ${D}${bindir}/
+ if [ "${bindir}" != "${base_bindir}" ]; then
+ mv ${D}${bindir}/sed ${D}${base_bindir}/sed
+ rmdir ${D}${bindir}/
+ fi
}
ALTERNATIVE_${PN} = "sed"
diff --git a/meta/recipes-extended/sed/sed_4.2.2.bb b/meta/recipes-extended/sed/sed_4.2.2.bb
index ea39dae..1c49c12 100644
--- a/meta/recipes-extended/sed/sed_4.2.2.bb
+++ b/meta/recipes-extended/sed/sed_4.2.2.bb
@@ -22,8 +22,10 @@ EXTRA_OECONF = "--disable-acl \
do_install () {
autotools_do_install
install -d ${D}${base_bindir}
- mv ${D}${bindir}/sed ${D}${base_bindir}/sed
- rmdir ${D}${bindir}/
+ if [ "${bindir}" != "${base_bindir}" ]; then
+ mv ${D}${bindir}/sed ${D}${base_bindir}/sed
+ rmdir ${D}${bindir}/
+ fi
}
ALTERNATIVE_${PN} = "sed"
--
1.9.1
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH 4/5] alsa-utils: fix FILES of alsa-utils-alsactl
2014-12-19 9:17 [PATCH 0/5] Misc fixes about hardcoding of paths Chen Qi
` (2 preceding siblings ...)
2014-12-19 9:17 ` [PATCH 3/5] sed: test bindir and base_bindir before moving and removing things Chen Qi
@ 2014-12-19 9:17 ` Chen Qi
2014-12-19 9:17 ` [PATCH 5/5] glibc-package.inc: fix order in PACKAGES Chen Qi
4 siblings, 0 replies; 6+ messages in thread
From: Chen Qi @ 2014-12-19 9:17 UTC (permalink / raw)
To: openembedded-core
Fix to use ${nonarch_base_libdir}/udev/rules.d instead of */udev/rules.d
to avoid the following QA warning.
ERROR: QA Issue: alsa-utils: Files/directories were installed but not shipped
/usr/lib/udev
/usr/lib/udev/rules.d
/usr/lib/udev/rules.d/90-alsa-restore.rules [installed-vs-shipped]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
meta/recipes-multimedia/alsa/alsa-utils_1.0.28.bb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta/recipes-multimedia/alsa/alsa-utils_1.0.28.bb b/meta/recipes-multimedia/alsa/alsa-utils_1.0.28.bb
index 5f35d76..ecddd05 100644
--- a/meta/recipes-multimedia/alsa/alsa-utils_1.0.28.bb
+++ b/meta/recipes-multimedia/alsa/alsa-utils_1.0.28.bb
@@ -57,7 +57,7 @@ FILES_alsa-utils-midi = "${bindir}/aplaymidi ${bindir}/arecordmidi ${bind
FILES_alsa-utils-aconnect = "${bindir}/aconnect"
FILES_alsa-utils-aseqnet = "${bindir}/aseqnet"
FILES_alsa-utils-iecset = "${bindir}/iecset"
-FILES_alsa-utils-alsactl = "${sbindir}/alsactl */udev/rules.d ${systemd_unitdir} ${localstatedir}/lib/alsa ${datadir}/alsa/init/"
+FILES_alsa-utils-alsactl = "${sbindir}/alsactl ${nonarch_base_libdir}/udev/rules.d ${systemd_unitdir} ${localstatedir}/lib/alsa ${datadir}/alsa/init/"
FILES_alsa-utils-aseqdump = "${bindir}/aseqdump"
FILES_alsa-utils-alsaloop = "${bindir}/alsaloop"
FILES_alsa-utils-alsaucm = "${bindir}/alsaucm"
--
1.9.1
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH 5/5] glibc-package.inc: fix order in PACKAGES
2014-12-19 9:17 [PATCH 0/5] Misc fixes about hardcoding of paths Chen Qi
` (3 preceding siblings ...)
2014-12-19 9:17 ` [PATCH 4/5] alsa-utils: fix FILES of alsa-utils-alsactl Chen Qi
@ 2014-12-19 9:17 ` Chen Qi
4 siblings, 0 replies; 6+ messages in thread
From: Chen Qi @ 2014-12-19 9:17 UTC (permalink / raw)
To: openembedded-core
FILES_${PN}-utils = "${bindir}/* ${sbindir}/*"
FILES_${PN} = "${libc_baselibs} ${libexecdir}/* ${@base_conditional('USE_LDCONFIG', '1', '${base_sbindir}/ldconfig ${sysconfdir}/ld.so.conf', '', d)}"
From the above two assignments, we can see that ${PN}-utils needs to be ordered
after ${PN} in the PACKAGES variable. Otherwise, ldconfig would be packaged into
${PN}-utils if ${base_sbindir} and ${sbindir} point to the same location.
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
meta/recipes-core/glibc/glibc-package.inc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta/recipes-core/glibc/glibc-package.inc b/meta/recipes-core/glibc/glibc-package.inc
index 6212e5b..2a7a292 100644
--- a/meta/recipes-core/glibc/glibc-package.inc
+++ b/meta/recipes-core/glibc/glibc-package.inc
@@ -17,7 +17,7 @@ python __anonymous () {
# Set this to zero if you don't want ldconfig in the output package
USE_LDCONFIG ?= "1"
-PACKAGES = "${PN}-dbg catchsegv sln nscd ldd tzcode ${PN}-utils glibc-thread-db ${PN}-pic libcidn libmemusage libsegfault ${PN}-pcprofile libsotruss ${PN} glibc-extra-nss ${PN}-dev ${PN}-staticdev ${PN}-doc"
+PACKAGES = "${PN}-dbg catchsegv sln nscd ldd tzcode glibc-thread-db ${PN}-pic libcidn libmemusage libsegfault ${PN}-pcprofile libsotruss ${PN} ${PN}-utils glibc-extra-nss ${PN}-dev ${PN}-staticdev ${PN}-doc"
# The ld.so in this glibc supports the GNU_HASH
RPROVIDES_${PN} = "eglibc rtld(GNU_HASH)"
--
1.9.1
^ permalink raw reply related [flat|nested] 6+ messages in thread