From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Giorgos Keramidas Newsgroups: gmane.emacs.devel Subject: [PATCH] Unbreak `make install' in leim/ when leim's ${INSTALLDIR} doesn't exist Date: Thu, 12 Oct 2006 02:22:54 +0300 Message-ID: <549c434ebfb50d1a4ca2.1160608974@gothmog.pc> NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Trace: sea.gmane.org 1160609423 8552 80.91.229.2 (11 Oct 2006 23:30:23 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Wed, 11 Oct 2006 23:30:23 +0000 (UTC) Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Oct 12 01:30:20 2006 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by ciao.gmane.org with esmtp (Exim 4.43) id 1GXnWk-00020T-2X for ged-emacs-devel@m.gmane.org; Thu, 12 Oct 2006 01:30:18 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1GXnWj-0001cP-7H for ged-emacs-devel@m.gmane.org; Wed, 11 Oct 2006 19:30:17 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1GXnWM-0001aF-Dv for emacs-devel@gnu.org; Wed, 11 Oct 2006 19:29:54 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1GXnWK-0001XK-NT for emacs-devel@gnu.org; Wed, 11 Oct 2006 19:29:53 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1GXnWK-0001Wz-Fj for emacs-devel@gnu.org; Wed, 11 Oct 2006 19:29:52 -0400 Original-Received: from [62.1.205.36] (helo=igloo.linux.gr) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA:32) (Exim 4.52) id 1GXneQ-00022W-73 for emacs-devel@gnu.org; Wed, 11 Oct 2006 19:38:14 -0400 Original-Received: from gothmog.pc (host5.bedc.ondsl.gr [62.103.39.229]) (authenticated bits=128) by igloo.linux.gr (8.13.8/8.13.8/Debian-2) with ESMTP id k9BNTFem007498 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Thu, 12 Oct 2006 02:29:19 +0300 Original-Received: from gothmog.pc (gothmog [127.0.0.1]) by gothmog.pc (8.13.8/8.13.8) with ESMTP id k9BNTqXU084395; Thu, 12 Oct 2006 02:29:53 +0300 (EEST) (envelope-from giorgos@gothmog.pc) Original-Received: (from giorgos@localhost) by gothmog.pc (8.13.8/8.13.8/Submit) id k9BNTqGb084394; Thu, 12 Oct 2006 02:29:52 +0300 (EEST) (envelope-from giorgos) X-Mercurial-Node: 549c434ebfb50d1a4ca241c8498522c4660c9428 Original-To: emacs-devel@gnu.org Original-Lines: 150 X-Hellug-MailScanner: Found to be clean X-Hellug-MailScanner-SpamCheck: not spam, SpamAssassin (score=-1.093, required 5, AWL -1.70, BAYES_00 -2.60, NO_DNS_FOR_FROM 3.20, UNPARSEABLE_RELAY 0.00) X-Hellug-MailScanner-From: keramida@ceid.upatras.gr X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:60622 Archived-At: The current `make install' target of the leim/ subdirectory has a subtle problem when ${prefix}/share/emacs/22.0.50/leim does not exist at all. After `make bootstrap' completes, running `make install' in leim/ fails with the following error on a FreeBSD and a Solaris system here: ,---------------------------------------------------------------- | # make install | if [ -d /opt/local/share/emacs/22.0.50/leim ] && [ x`(cd /opt/local/share/emacs/22.0.50/leim && /bin/pwd)` != x`(/bin/pwd)` ] ; then \ | if [ -d /opt/local/share/emacs/22.0.50/leim ] ; then \ | rm -rf /opt/local/share/emacs/22.0.50/leim/leim-list.el; \ | rm -rf /opt/local/share/emacs/22.0.50/leim/quail /opt/local/share/emacs/22.0.50/leim/ja-dic ; \ | else \ | /home/keramida/tmp/emacs/leim/../mkinstalldirs /opt/local/share/emacs/22.0.50/leim; \ | fi; \ | echo "Copying leim files to /opt/local/share/emacs/22.0.50/leim ..." ; \ | if [ x`(cd /home/keramida/tmp/emacs/leim && /bin/pwd)` = x`(/bin/pwd)` ] ; then \ | tar -chf - leim-list.el quail ja-dic \ | | (cd /opt/local/share/emacs/22.0.50/leim; umask 0; tar -xvf - && cat > /dev/null) ;\ | else \ | tar -chf - leim-list.el quail \ | | (cd /opt/local/share/emacs/22.0.50/leim; umask 0; tar -xvf - && cat > /dev/null) ;\ | cd /home/keramida/tmp/emacs/leim; \ | tar -chf - quail/* ja-dic \ | | (cd /opt/local/share/emacs/22.0.50/leim; umask 0; tar -xvf - && cat > /dev/null) ;\ | fi; \ | rm -rf /opt/local/share/emacs/22.0.50/leim/CVS /opt/local/share/emacs/22.0.50/leim/*/CVS; \ | rm -f /opt/local/share/emacs/22.0.50/leim/.cvsignore /opt/local/share/emacs/22.0.50/leim/*/.cvsignore; \ | rm -f /opt/local/share/emacs/22.0.50/leim/.arch-inventory /opt/local/share/emacs/22.0.50/leim/*/.arch-inventory; \ | rm -f /opt/local/share/emacs/22.0.50/leim/\#* /opt/local/share/emacs/22.0.50/leim/*/\#* ; \ | rm -f /opt/local/share/emacs/22.0.50/leim/.\#* /opt/local/share/emacs/22.0.50/leim/*/.\#* ; \ | rm -f /opt/local/share/emacs/22.0.50/leim/*~ /opt/local/share/emacs/22.0.50/leim/*/*~ ; \ | rm -f /opt/local/share/emacs/22.0.50/leim/*.orig /opt/local/share/emacs/22.0.50/leim/*/*.orig ; \ | else true; fi | unset CDPATH; \ | if [ -n "/usr/bin/gzip" ]; \ | then \ | echo "Compressing *.el ..." ; \ | (cd /opt/local/share/emacs/22.0.50/leim; for f in `find . -name "*.elc" -print`; do \ | /usr/bin/gzip -9n `echo $f|sed 's/.elc$/.el/'` ; \ | done) \ | else true; fi | Compressing *.el ... | sh: /opt/local/share/emacs/22.0.50/leim: does not exist | *** Error code 1 (ignored) | chmod -R a+r /opt/local/share/emacs/22.0.50/leim | chmod: WARNING: can't access /opt/local/share/emacs/22.0.50/leim | *** Error code 1 (ignored) | # `---------------------------------------------------------------- The following patch fixes this. The patch also contains the commit log from the local tree I used for testing the fix. Feel free to reuse it, if it looks like a useful commit log. --- patch start ------------------------------------------------- # HG changeset patch # User George Keramidas # Date 1160608725 -10800 # Node ID 549c434ebfb50d1a4ca241c8498522c4660c9428 # Parent 34e5fff7519a59470fb437d5eb0a5421e9639e40 Unbreak `make install' in leim/ when leim's ${INSTALLDIR} doesn't exist. What was happening with the old shell script called by the `install' target was kind of tricky. The command: if [ x`(cd ${INSTALLDIR} && /bin/pwd)` != x`(/bin/pwd)` ] ; then if [ -d ${INSTALLDIR} ] ; then \ contains a backquoted `cd' command into a directory which may not exist. This causes the /bin/sh shell on Solaris (possibly other systems too), to abort the entire if-then compound statement, because the `cd' command fails before the if-then statement has a chance to run at all (i.e. at backquote-expansion time). Switching the order of the two if-then checks ensures that `cd' will only run if ${INSTALLDIR} *really* exists, and `make install' in leim/ works again. diff -r 34e5fff7519a -r 549c434ebfb5 leim/Makefile.in *** a/leim/Makefile.in Wed Oct 11 18:10:15 2006 +0300 --- b/leim/Makefile.in Thu Oct 12 02:18:45 2006 +0300 *************** *** 216,247 **** sed -n '/^[^;]/ p' < ${srcdir}/leim-ext.el >> $@ install: all ! if [ x`(cd ${INSTALLDIR} && /bin/pwd)` != x`(/bin/pwd)` ] ; then \ ! if [ -d ${INSTALLDIR} ] ; then \ rm -rf ${INSTALLDIR}/leim-list.el; \ rm -rf ${INSTALLDIR}/quail ${INSTALLDIR}/ja-dic ; \ ! else \ ! ${srcdir}/${dot}${dot}/mkinstalldirs ${INSTALLDIR}; \ ! fi; \ ! echo "Copying leim files to ${INSTALLDIR} ..." ; \ ! if [ x`(cd ${srcdir} && /bin/pwd)` = x`(/bin/pwd)` ] ; then \ ! tar -chf - leim-list.el quail ja-dic \ ! | (cd ${INSTALLDIR}; umask 0; tar -xvf - && cat > /dev/null) ;\ ! else \ ! tar -chf - leim-list.el quail \ ! | (cd ${INSTALLDIR}; umask 0; tar -xvf - && cat > /dev/null) ;\ ! cd ${srcdir}; \ ! tar -chf - quail/* ja-dic \ ! | (cd ${INSTALLDIR}; umask 0; tar -xvf - && cat > /dev/null) ;\ ! fi; \ ! rm -rf ${INSTALLDIR}/CVS ${INSTALLDIR}/*/CVS; \ ! rm -f ${INSTALLDIR}/.cvsignore ${INSTALLDIR}/*/.cvsignore; \ ! rm -f ${INSTALLDIR}/.arch-inventory ${INSTALLDIR}/*/.arch-inventory; \ ! rm -f ${INSTALLDIR}/\#* ${INSTALLDIR}/*/\#* ; \ ! rm -f ${INSTALLDIR}/.\#* ${INSTALLDIR}/*/.\#* ; \ ! rm -f ${INSTALLDIR}/*~ ${INSTALLDIR}/*/*~ ; \ ! rm -f ${INSTALLDIR}/*.orig ${INSTALLDIR}/*/*.orig ; \ ! else true; fi -unset CDPATH; \ if [ -n "${GZIP_PROG}" ]; \ then \ --- 216,247 ---- sed -n '/^[^;]/ p' < ${srcdir}/leim-ext.el >> $@ install: all ! if [ -d ${INSTALLDIR} ] ; then \ ! if [ x`(cd ${INSTALLDIR} && /bin/pwd)` != x`(/bin/pwd)` ] ; then \ rm -rf ${INSTALLDIR}/leim-list.el; \ rm -rf ${INSTALLDIR}/quail ${INSTALLDIR}/ja-dic ; \ ! fi ; \ ! else \ ! ${srcdir}/${dot}${dot}/mkinstalldirs ${INSTALLDIR}; \ ! fi; \ ! echo "Copying leim files to ${INSTALLDIR} ..." ; \ ! if [ x`(cd ${srcdir} && /bin/pwd)` = x`(/bin/pwd)` ] ; then \ ! tar -chf - leim-list.el quail ja-dic \ ! | (cd ${INSTALLDIR}; umask 0; tar -xvf - && cat > /dev/null) ;\ ! else \ ! tar -chf - leim-list.el quail \ ! | (cd ${INSTALLDIR}; umask 0; tar -xvf - && cat > /dev/null) ;\ ! cd ${srcdir}; \ ! tar -chf - quail/* ja-dic \ ! | (cd ${INSTALLDIR}; umask 0; tar -xvf - && cat > /dev/null) ;\ ! fi; \ ! rm -rf ${INSTALLDIR}/CVS ${INSTALLDIR}/*/CVS; \ ! rm -f ${INSTALLDIR}/.cvsignore ${INSTALLDIR}/*/.cvsignore; \ ! rm -f ${INSTALLDIR}/.arch-inventory ${INSTALLDIR}/*/.arch-inventory; \ ! rm -f ${INSTALLDIR}/\#* ${INSTALLDIR}/*/\#* ; \ ! rm -f ${INSTALLDIR}/.\#* ${INSTALLDIR}/*/.\#* ; \ ! rm -f ${INSTALLDIR}/*~ ${INSTALLDIR}/*/*~ ; \ ! rm -f ${INSTALLDIR}/*.orig ${INSTALLDIR}/*/*.orig -unset CDPATH; \ if [ -n "${GZIP_PROG}" ]; \ then \ --- patch end ---------------------------------------------------