tags 539750 +patch tags 545497 +patch tags 534002 +patch thanks
Hi! I've prepared an NMU for emacs22 (versioned as 22.3+1-1.2) and uploaded it to DELAYED/7. Please feel free to tell me if I should delay it longer. I also applied the patch referenced in #53400; and tested in extensively (about 114 builds; all succesfull). Regards.
diff -u emacs22-22.3+1/debian/control emacs22-22.3+1/debian/control
--- emacs22-22.3+1/debian/control
+++ emacs22-22.3+1/debian/control
@@ -6,17 +6,6 @@
Build-Depends: mailx, libncurses5-dev, texinfo, liblockfile-dev, libgif-dev | libungif4-dev, libtiff4-dev | libtiff-dev, xaw3dg-dev, libpng12-dev, libjpeg62-dev, autotools-dev, dpkg-dev (>> 1.10.0), quilt (>= 0.42-1), debhelper (>= 4), libxaw7-dev, sharutils, imagemagick, libgtk2.0-dev, libasound2-dev [!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64]
Standards-Version: 3.7.2
-Package: emacs
-Section: editors
-Priority: optional
-Architecture: all
-Depends: emacs22 | emacs22-gtk | emacs22-nox
-Provides: emacsen, editor, mail-reader, news-reader
-Description: The GNU Emacs editor (metapackage)
- GNU Emacs is the extensible self-documenting text editor.
- This is a metapackage which will always depend on the latest Emacs
- release.
-
Package: emacs22
Section: editors
Priority: optional
diff -u emacs22-22.3+1/debian/rules emacs22-22.3+1/debian/rules
--- emacs22-22.3+1/debian/rules
+++ emacs22-22.3+1/debian/rules
@@ -668,8 +668,8 @@
cp -a $(install_dir_x)/* $(pkgdir_common)
- rm -r $(pkgdir_common)/usr/bin
- rm -r $(pkgdir_common)/usr/lib
+ rm -rf $(pkgdir_common)/usr/bin
+ rm -rf $(pkgdir_common)/usr/lib
cd $(pkgdir_common)/usr/share/emacs/$(runtime_ver)/etc \
&& test -f DOC-$(runtime_ver).*
@@ -689,7 +689,7 @@
usr/share/emacs/$(runtime_ver)/site-lisp
# This is a duplicate of the file in FLAVOR/site-lisp
- rm $(pkgdir_common)/usr/share/emacs/site-lisp/subdirs.el
+ rm -f $(pkgdir_common)/usr/share/emacs/site-lisp/subdirs.el
cd $(pkgdir_common)/usr/share/emacs/$(runtime_ver)/etc/images/icons \
&& convert emacs_16.png emacs_16.xpm
@@ -710,8 +710,8 @@
$(pkgdir_common)/usr/share/man/man1/ctags.1$(flavor)
# At least etc/COPYING is needed by M-x describe-copying.
- rm $(pkgdir_common)/usr/share/emacs/$(runtime_ver)/etc/COPYING
- rm $(pkgdir_common)/usr/share/emacs/$(runtime_ver)/lisp/COPYING
+ rm -f $(pkgdir_common)/usr/share/emacs/$(runtime_ver)/etc/COPYING
+ rm -f $(pkgdir_common)/usr/share/emacs/$(runtime_ver)/lisp/COPYING
dh_link -p$(flavor)-common /usr/share/common-licenses/GPL-3 \
usr/share/emacs/$(runtime_ver)/etc/COPYING
dh_link -p$(flavor)-common /usr/share/common-licenses/GPL-3 \
@@ -735,20 +735,20 @@
find -name "*.elc" | perl -pe 's/\.elc$$/\.el\.gz/o' | xargs rm -f
# Remove extraneous info dir file.
- rm $(pkgdir_common)/usr/share/info/emacs-$(major_ver)/dir
- rm $(pkgdir_common)/usr/share/info/emacs-$(major_ver)/dir.old
+ rm -f $(pkgdir_common)/usr/share/info/emacs-$(major_ver)/dir
+ rm -f $(pkgdir_common)/usr/share/info/emacs-$(major_ver)/dir.old
# Remove the shared game score directory to as a simple way to avoid
# a conflict with other flavors of Emacs. Since Debian's
# update-game-score binary isn't setuid, that directory is never used.
- rm $(pkgdir_common)/var/games/emacs/tetris-scores
- rm $(pkgdir_common)/var/games/emacs/snake-scores
+ rm -f $(pkgdir_common)/var/games/emacs/tetris-scores
+ rm -f $(pkgdir_common)/var/games/emacs/snake-scores
rmdir $(pkgdir_common)/var/games/emacs/
rmdir $(pkgdir_common)/var/games/
rmdir $(pkgdir_common)/var/
# Make sure /usr/local dir doesn't exist.
- rm -r $(pkgdir_common)/usr/local
+ rm -rf $(pkgdir_common)/usr/local
##################################################
# emacsXY-bin-common
diff -u emacs22-22.3+1/debian/changelog emacs22-22.3+1/debian/changelog
--- emacs22-22.3+1/debian/changelog
+++ emacs22-22.3+1/debian/changelog
@@ -1,3 +1,13 @@
+emacs22 (22.3+1-1.2) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * Drop emacs metapackage (Closes: #539750)
+ * Force removals of various stuff in debian/rules (Closes: #545497)
+ * Apply patch by Ulrich Mueller to solve potential FTBFS by "intermittent
+ unexec failure" problem (Closes: #534002)
+
+ -- Alexander Reichle-Schmehl <[email protected]> Mon, 25 Jan 2010 15:05:36 +0100
+
emacs22 (22.3+1-1.1) unstable; urgency=low
* Non-maintainer upload.
diff -u emacs22-22.3+1/debian/patches/series emacs22-22.3+1/debian/patches/series
--- emacs22-22.3+1/debian/patches/series
+++ emacs22-22.3+1/debian/patches/series
@@ -13,0 +14 @@
+intermittent_unexec_failure.diff
only in patch2:
unchanged:
--- emacs22-22.3+1.orig/debian/patches/intermittent_unexec_failure.diff
+++ emacs22-22.3+1/debian/patches/intermittent_unexec_failure.diff
@@ -0,0 +1,79 @@
+Index: emacs22-22.3+1/src/emacs.c
+===================================================================
+--- emacs22-22.3+1.orig/src/emacs.c 2010-01-25 15:04:28.000000000 +0100
++++ emacs22-22.3+1/src/emacs.c 2010-01-25 15:04:33.000000000 +0100
+@@ -73,6 +73,9 @@
+
+ #ifdef HAVE_PERSONALITY_LINUX32
+ #include <sys/personality.h>
++#ifndef ADDR_NO_RANDOMIZE
++#define ADDR_NO_RANDOMIZE 0x0040000
++#endif
+ #endif
+
+ #ifndef O_RDWR
+@@ -789,6 +792,26 @@
+ return count >= 3 ? REPORT_EMACS_BUG_PRETEST_ADDRESS : REPORT_EMACS_BUG_ADDRESS;
+ }
+
++#ifdef HAVE_PERSONALITY_LINUX32
++/* Get the `randomize_va_space' parameter. A value of 2 (introduced
++ in Linux 2.6.25) indicates that brk() randomization is switched on,
++ which will break unexec. See <http://lkml.org/lkml/2007/10/23/435>. */
++static int
++linux_randomize_va_space ()
++{
++ FILE *fp;
++ int rand, count;
++
++ fp = fopen ("/proc/sys/kernel/randomize_va_space", "r");
++ if (!fp)
++ return -1;
++ count = fscanf (fp, "%d", &rand);
++ (void) fclose (fp);
++ if (count != 1)
++ return -1;
++ return rand;
++}
++#endif /* HAVE_PERSONALITY_LINUX32 */
+
+ /* ARGSUSED */
+ int
+@@ -883,24 +906,20 @@
+ if (!initialized
+ && (strcmp (argv[argc-1], "dump") == 0
+ || strcmp (argv[argc-1], "bootstrap") == 0)
+- && heap_bss_diff > MAX_HEAP_BSS_DIFF)
++ && !getenv ("EMACS_HEAP_EXEC")
++ && (heap_bss_diff > MAX_HEAP_BSS_DIFF
++ || linux_randomize_va_space() >= 2))
+ {
+- if (! getenv ("EMACS_HEAP_EXEC"))
+- {
+- /* Set this so we only do this once. */
+- putenv("EMACS_HEAP_EXEC=true");
+-
+- /* A flag to turn off address randomization which is introduced
+- in linux kernel shipped with fedora core 4 */
+-#define ADD_NO_RANDOMIZE 0x0040000
+- personality (PER_LINUX32 | ADD_NO_RANDOMIZE);
+-#undef ADD_NO_RANDOMIZE
+-
+- execvp (argv[0], argv);
+-
+- /* If the exec fails, try to dump anyway. */
+- perror ("execvp");
+- }
++ /* Set this so we only do this once. */
++ putenv("EMACS_HEAP_EXEC=true");
++
++ /* Set personality and disable randomization of VA space. */
++ personality (PER_LINUX32 | ADDR_NO_RANDOMIZE);
++
++ execvp (argv[0], argv);
++
++ /* If the exec fails, try to dump anyway. */
++ perror ("execvp");
+ }
+ #endif /* HAVE_PERSONALITY_LINUX32 */
+
signature.asc
Description: Digital signature

