From: Yann E. MORIN Date: Tue, 18 Aug 2015 19:25:53 +0000 (+0200) Subject: package/dropbear: fix when readlink is from busybox X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=29a0f0557984ccb299426712b71fee5abaaa2ca9;p=buildroot.git package/dropbear: fix when readlink is from busybox Busybox "readlink -f" does not canonicalise paths when the target is missing, while coreutils do. Fix that by: - making an absolute symlink - dropping "-f" when calling readlink Fixes #8276. Reported-by: Jason Tang Signed-off-by: "Yann E. MORIN" Cc: Paul Cercueil Cc: Alexandre Belloni Tested-by: Jason Tang Signed-off-by: Peter Korsgaard --- diff --git a/package/dropbear/S50dropbear b/package/dropbear/S50dropbear index 8938789509..765d6a3e1d 100644 --- a/package/dropbear/S50dropbear +++ b/package/dropbear/S50dropbear @@ -18,7 +18,7 @@ start() { # - the filesystem is RW (i.e. we can rm the symlink), # replace the symlink with an actual directory if [ -L /etc/dropbear \ - -a "$(readlink -f /etc/dropbear)" = "/var/run/dropbear" ] + -a "$(readlink /etc/dropbear)" = "/var/run/dropbear" ] then if rm -f /etc/dropbear; then mkdir -p /etc/dropbear diff --git a/package/dropbear/dropbear.mk b/package/dropbear/dropbear.mk index 5bbe864500..aa3fd9d928 100644 --- a/package/dropbear/dropbear.mk +++ b/package/dropbear/dropbear.mk @@ -93,7 +93,7 @@ define DROPBEAR_INSTALL_TARGET_CMDS for f in $(DROPBEAR_TARGET_BINS); do \ ln -snf ../sbin/dropbear $(TARGET_DIR)/usr/bin/$$f ; \ done - ln -snf ../var/run/dropbear $(TARGET_DIR)/etc/dropbear + ln -snf /var/run/dropbear $(TARGET_DIR)/etc/dropbear endef $(eval $(autotools-package)) diff --git a/package/dropbear/dropbear.service b/package/dropbear/dropbear.service index 52c77024f5..9dcbf256cd 100644 --- a/package/dropbear/dropbear.service +++ b/package/dropbear/dropbear.service @@ -10,7 +10,7 @@ After=syslog.target network.target auditd.service # replace the symlink with an actual directory ExecStartPre=/bin/sh -c '\ if [ -L /etc/dropbear \ - -a "$(readlink -f /etc/dropbear)" = "/var/run/dropbear" ]; then \ + -a "$(readlink /etc/dropbear)" = "/var/run/dropbear" ]; then \ if rm -f /etc/dropbear; then \ mkdir -p /etc/dropbear; \ else \