Patchwork shadow: Fix various invalid assumptions about directory layout

login
register
mail settings
Submitter Phil Blundell
Date Sept. 9, 2012, 10:22 a.m.
Message ID <1347186173.4396.258.camel@x121e.pbcl.net>
Download mbox | patch
Permalink /patch/36167/
State Accepted
Commit d4e62e164ef73b47c178edcbc2579f5358934afc
Headers show

Comments

Phil Blundell - Sept. 9, 2012, 10:22 a.m.
The makefiles in the shadow package have their own hard-coded paths
for ${base_bindir} and ${base_sbindir} (known as "bindir" and "sbindir"
in shadow-speak).  Ensure that they install into our paths rather than
their own.

Also check that ${base_bindir} and ${bindir} are different before trying
to move files from one to the other; likewise for ${base_sbindir} and
${sbindir}.

Signed-off-by: Phil Blundell <pb@pbcl.net>
---
 meta/recipes-extended/shadow/shadow_4.1.4.3.bb |   17 ++++++++++++++---
 1 files changed, 14 insertions(+), 3 deletions(-)

Patch

diff --git a/meta/recipes-extended/shadow/shadow_4.1.4.3.bb b/meta/recipes-extended/shadow/shadow_4.1.4.3.bb
index 6794cc1..eb00bf0 100644
--- a/meta/recipes-extended/shadow/shadow_4.1.4.3.bb
+++ b/meta/recipes-extended/shadow/shadow_4.1.4.3.bb
@@ -56,7 +56,14 @@  PAM_SRC_URI = "file://pam.d/chfn \
                file://pam.d/passwd \
                file://pam.d/su"
 
-do_install_append() {
+do_install() {
+	oe_runmake DESTDIR="${D}" sbindir="${base_sbindir}" usbindir="${sbindir}" install
+
+	# Info dir listing isn't interesting at this point so remove it if it exists.
+	if [ -e "${D}${infodir}/dir" ]; then
+		rm -f ${D}${infodir}/dir
+	fi
+
 	# Ensure that the image has as a /var/spool/mail dir so shadow can
 	# put mailboxes there if the user reconfigures shadow to its
 	# defaults (see sed below).
@@ -93,8 +100,12 @@  do_install_append() {
 	# Move binaries to the locations we want
 	rm ${D}${sbindir}/vigr
 	ln -sf vipw.${BPN} ${D}${base_sbindir}/vigr
-	mv ${D}${sbindir}/vipw ${D}${base_sbindir}/vipw
-	mv ${D}${bindir}/login ${D}${base_bindir}/login
+	if [ "${sbindir}" != "${base_sbindir}" ]; then
+		mv ${D}${sbindir}/vipw ${D}${base_sbindir}/vipw
+	fi
+	if [ "${bindir}" != "${base_bindir}" ]; then
+		mv ${D}${bindir}/login ${D}${base_bindir}/login
+	fi
 
 	# Handle link properly after rename, otherwise missing files would
 	# lead rpm failed dependencies.