symlink loop for /lib64/libhandle.so

Christoph Hellwig hch at infradead.org
Tue Jul 15 10:48:57 CDT 2014


Hi Jan,

there were still some small isues with the patch format, I've attached
a version of your patch that has the expected format.

Note that I also changed it to only check the canonical names instead of
testing the passed in one and the one readlink was called on.  This
should be enough I think, but please test that it still works for you.

Thanks for tracking this down!
-------------- next part --------------
From: Jan Tulak <jan at tulak.me>
Subject: [PATCH] libhandle: fix instalation for symlinked /usr

Canonicalize the pathnames for PKG_LIB_DIR and PKG_ROOT_LIB_DIR before
checking if they are the same.  This is required for Fedora which doesn't
have a separate /usr/lib directory anymore.

Reported-by: Jan Tulak <jan at tulak.me>
Signed-off-by: Jan Tulak <jan at tulak.me>

diff --git a/include/buildmacros b/include/buildmacros
index 7a01880..4e4e8fa 100644
--- a/include/buildmacros
+++ b/include/buildmacros
@@ -76,10 +76,11 @@ INSTALL_LTLIB_DEV = \
 	../$(INSTALL) -m 644 $(LIBNAME).lai $(PKG_LIB_DIR)/$(LIBNAME).la ; \
 	../$(INSTALL) -m 755 -d $(PKG_ROOT_LIB_DIR); \
 	../$(INSTALL) -T so_base $(LIBNAME).lai $(PKG_ROOT_LIB_DIR); \
-	if test "x$(PKG_LIB_DIR)" != "x$(PKG_ROOT_LIB_DIR)" ; then \
-	../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).a $(PKG_ROOT_LIB_DIR)/$(LIBNAME).a; \
-	../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).la $(PKG_ROOT_LIB_DIR)/$(LIBNAME).la; \
-	../$(INSTALL) -S $(PKG_ROOT_LIB_DIR)/$(LIBNAME).so $(PKG_LIB_DIR)/$(LIBNAME).so; \
+	if [ "x$(shell readlink -f $(PKG_LIB_DIR))" != \
+	     "x$(shell readlink -f $(PKG_ROOT_LIB_DIR))"; ]; then \
+		../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).a $(PKG_ROOT_LIB_DIR)/$(LIBNAME).a; \
+		../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).la $(PKG_ROOT_LIB_DIR)/$(LIBNAME).la; \
+		../$(INSTALL) -S $(PKG_ROOT_LIB_DIR)/$(LIBNAME).so $(PKG_LIB_DIR)/$(LIBNAME).so; \
 	fi
 else
 INSTALL_LTLIB_DEV = $(INSTALL_LTLIB_STATIC)


More information about the xfs mailing list