I package Emacs into a .deb archive using the "checkinstall" tool.

"checkinstall" runs "make install" and watches which files get modified as a
result, then packages those files up into a .deb file.

Recently, when the Emacs version number went up from 22.0.90 to 22.0.91 I
noticed that the size of the .deb package which checkinstall was producing
approximately doubled in size.

I looked into this, to see why it was so much bigger, and found that the
package included 2 complete copies of the 'etc' and 'lisp' files - one copy
installed to /usr/local/share/emacs/22.0.90/ and one copy installed to
/usr/local/share/emacs/22.0.91/

It turns out that the Emacs Makefile is running a "chmod -R a+r" on the
whole $(DESTDIR)${datadir}/emacs directory, rather than restricting the
chmod to just $(DESTDIR)${datadir}/emacs/${version}.  This causes
checkinstall to think that both the old 22.0.90 and the new 22.0.91 files
are part of the new install.

Changing the 'chmod' command like this fixes it for me:

--- Backup/Makefile.in.~4~    2006-11-06 10:22:04.000000000 +0100
+++ Makefile.in    2006-11-23 16:04:33.000000000 +0100
@@ -518,7 +518,7 @@
         ${INSTALL_INFO} --info-dir=$(DESTDIR)${infodir}
$(DESTDIR)${infodir}/$$elt); \
      done; \
    else true; fi
-    -chmod -R a+r $(DESTDIR)${datadir}/emacs ${COPYDESTS}
$(DESTDIR)${infodir}
+    -chmod -R a+r $(DESTDIR)${datadir}/emacs/${version}
$(DESTDIR)${datadir}/emacs/site-lisp ${COPYDESTS} $(DESTDIR)${infodir}
    thisdir=`/bin/pwd`; \
    cd ${srcdir}/etc; \
    for page in emacs emacsclient etags ctags ; do \

I'm guessing that the .../emacs/site-lisp/ should be included in the list of
places to chmod, but files belonging to different versions of Emacs
shouldn't be.

Chris.
_______________________________________________
emacs-pretest-bug mailing list
emacs-pretest-bug@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-pretest-bug

Reply via email to