[BUG] silc-client does not respect DESTDIR

[email protected] Tue, 11 Aug 2009 08:09:13 -0600
Newsgroups gmane.network.silc.devel
Message-ID <[email protected]>
--DocE+STaALJfprDB
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Note: the web interface for posting bugs doesn't seem to work; I've
posted this bug twice there and they never made it to silc-devel.

The generated file lib/Makefile attempts to create directories outside
of DESTDIR during 'make install' in both silc-client-1.1.7 and
silc-client-1.1.8.  Example:

# make DESTDIR=/tmp/silc-client-1.1.8 install
<snip>
make[4]: Entering directory
`/tmp/work/silc-client-1.1.8/lib'
mkdir -p /usr/lib64/silc-client
mkdir: cannot create directory `/usr/lib64/silc-client': Permission denied
make[4]: [install-exec-hook] Error 1 (ignored)
/bin/sh ../libtool --mode=install /usr/bin/install -c libsilc.la /tmp/silc-client-1.1.8/usr/lib64/silc-client/
libtool: install: /usr/bin/install -c .libs/libsilc-1.1.so.2.1.0 /tmp/silc-client-1.1.8/usr/lib64/libsilc-1.1.so.2.1.0
/usr/bin/install: cannot create regular file `/tmp/silc-client-1.1.8/usr/lib64/libsilc-1.1.so.2.1.0': No such file or directory
make[4]: [install-exec-hook] Error 1 (ignored)
/bin/sh ../libtool --mode=install /usr/bin/install -c libsilcclient.la /tmp/silc-client-1.1.8/usr/lib64/silc-client/
libtool: install: /usr/bin/install -c .libs/libsilcclient-1.1.so.3.0.0 /tmp/silc-client-1.1.8/usr/lib64/libsilcclient-1.1.so.3.0.0
/usr/bin/install: cannot create regular file `/tmp/silc-client-1.1.8/usr/lib64/libsilcclient-1.1.so.3.0.0': No such file or directory
make[4]: [install-exec-hook] Error 1 (ignored)
<snip>

Even though make ignores the error, the shared libraries failed to
install, leaving the installation relatively worthless.  It also causes
issues with build systems like Gentoo's sandbox, which catches attempts
at access outside of DESTDIR and prevents installation.

Attached is a patch for lib/Makefile.ad to fix future releases; I've
made a similar temporary local patch for lib/Makefile.in since
autoreconf depends on the whole tree, not just the silc-client release.

--DocE+STaALJfprDB
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="silc-make-install-destdir.patch"

diff --git a/lib/Makefile.ad b/lib/Makefile.ad
index 9312320..c08be61 100644
--- a/lib/Makefile.ad
+++ b/lib/Makefile.ad
@@ -95,7 +95,7 @@ install-exec-hook:
 #ifdef SILC_DIST_SERVERLIB
 install-exec-hook:
 if SILC_ENABLE_SHARED
-	-mkdir -p $(libdir)
+	-mkdir -p $(DESTDIR)$(libdir)
 	-$(LIBTOOL) $(INSTALL) libsilc.la $(DESTDIR)$(libdir)/
 	-$(LIBTOOL) $(INSTALL) libsilcserver.la $(DESTDIR)$(libdir)/
 	-rm -rf $(DESTDIR)$(libdir)/libsilc.a
@@ -106,7 +106,7 @@ endif
 #ifdef SILC_DIST_CLIENTLIB
 install-exec-hook:
 if SILC_ENABLE_SHARED
-	-mkdir -p $(libdir)
+	-mkdir -p $(DESTDIR)$(libdir)
 	-$(LIBTOOL) $(INSTALL) libsilc.la $(DESTDIR)$(libdir)/
 	-$(LIBTOOL) $(INSTALL) libsilcclient.la $(DESTDIR)$(libdir)/
 	-rm -rf $(DESTDIR)$(libdir)/libsilc.a

--DocE+STaALJfprDB
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________________________________
Info:    https://lists.silcnet.org/mailman/listinfo/silc-announce
Archive: https://lists.silcnet.org/pipermail/silc-announce
FAQ:     http://silcnet.org/support/faq/
--DocE+STaALJfprDB--