diff --git a/debbugs16737.patch b/debbugs16737.patch deleted file mode 100644 index 73c6bdd..0000000 --- a/debbugs16737.patch +++ /dev/null @@ -1,59 +0,0 @@ -| -| Compare with -| https://lists.gnu.org/archive/html/bug-gnu-emacs/2015-07/msg00287.html -| -| Based on git commit 4d7e6e51dd4acecff466a28d958c50f34fc130b8 - -From: Mike Crowe -Subject: [PATCH] Re-enable SIGIO when waiting for events -Date: Sat, 11 Jul 2015 12:58:00 +0100 - -Pasting a large string into an Emacs tty frame causes -keyboard.c:kbd_buffer_store_buffered_event to call ignore_sigio() -which sets SIGIO to SIG_IGN. - -Unfortunately no-one seems to ever re-enable the SIGIO handler. - -This leads to timeouts when attempting to paste into an Emacs X11 -frame as reported at -http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16737 . - -It appears that keyboard.c:kbd_buffer_get_event used to re-enable the -signal handler but that was removed as part of a large signal-handling -clean up in 4d7e6e51dd4acecff466a28d958c50f34fc130b8. - -Reinstating the re-enabling of SIGIO in kbd_buffer_get_event solves -the problems reported in bug 16737 for me. - -* src/keyboard.c (kbd_buffer_get_event): Re-enable SIGIO when waiting - for event. ---- - src/keyboard.c | 10 ++++++++++ - 1 file changed, 10 insertions(+) - ---- src/keyboard.c -+++ src/keyboard.c 2016-03-10 07:39:35.770752804 +0000 -@@ -364,6 +364,8 @@ static ptrdiff_t echo_length (void); - - static Lisp_Object Qpolling_period; - -+static void deliver_input_available_signal (int sig); -+ - /* Incremented whenever a timer is run. */ - unsigned timers_run; - -@@ -3829,6 +3831,14 @@ kbd_buffer_get_event (KBOARD **kbp, - /* Start reading input again because we have processed enough to - be able to accept new events again. */ - unhold_keyboard_input (); -+#ifdef USABLE_SIGIO -+ if (!noninteractive) -+ { -+ struct sigaction action; -+ emacs_sigaction_init (&action, deliver_input_available_signal); -+ sigaction (SIGIO, &action, 0); -+ } -+#endif - start_polling (); - } - #endif /* subprocesses */ diff --git a/emacs-24-0010-ELF-unexec-Correct-section-header-index.patch b/emacs-24-0010-ELF-unexec-Correct-section-header-index.patch deleted file mode 100644 index a4d2ade..0000000 --- a/emacs-24-0010-ELF-unexec-Correct-section-header-index.patch +++ /dev/null @@ -1,69 +0,0 @@ -From 0a97fb1992c8cc3612a2358f576f774ea1f36777 Mon Sep 17 00:00:00 2001 -From: Alan Modra -Date: Sun, 8 Nov 2015 09:28:59 -0800 -Subject: ELF unexec: Correct section header index - -Emacs should build on ppc64el. A problem with the bss has been fixed. - -This upstream patch has been added [1/10]: - - ELF unexec: Correct section header index - - First a small fix. The code incorrectly uses "NEW_SECTION_H (n)" when - it should have been using "NEW_SECTION_H (nn)" to find the name of the - section currently being processed. Of course, before the bss - sections, n and nn have the same value, so this doesn't matter except - in the case of .sbss. For .sbss this probably meant .bss (most likely - the next section) was copied from memory. A later patch removes the - bogus .sbss handling anyway. - - * unexelf.c (unexec): Use correct index to look up names. - -Origin: upstream, commit: 0bcd08ef052bca9b8d08696068c2a0c387d0dd56 -Bug: http://debbugs.gnu.org/20614 -Bug-Debian: http://bugs.debian.org/808347 -Added-by: Rob Browning ---- - src/unexelf.c | 16 ++++++++-------- - 1 file changed, 8 insertions(+), 8 deletions(-) - -diff --git a/src/unexelf.c b/src/unexelf.c -index 59e2725..d4a36f8 100644 ---- a/src/unexelf.c -+++ b/src/unexelf.c -@@ -1016,12 +1016,12 @@ temacs: - /* Write out the sections. .data and .data1 (and data2, called - ".data" in the strings table) get copied from the current process - instead of the old file. */ -- if (!strcmp (old_section_names + NEW_SECTION_H (n).sh_name, ".data") -- || !strcmp ((old_section_names + NEW_SECTION_H (n).sh_name), -+ if (!strcmp (old_section_names + NEW_SECTION_H (nn).sh_name, ".data") -+ || !strcmp ((old_section_names + NEW_SECTION_H (nn).sh_name), - ".sdata") -- || !strcmp ((old_section_names + NEW_SECTION_H (n).sh_name), -+ || !strcmp ((old_section_names + NEW_SECTION_H (nn).sh_name), - ".lit4") -- || !strcmp ((old_section_names + NEW_SECTION_H (n).sh_name), -+ || !strcmp ((old_section_names + NEW_SECTION_H (nn).sh_name), - ".lit8") - /* The conditional bit below was in Oliva's original code - (1999-08-25) and seems to have been dropped by mistake -@@ -1044,14 +1044,14 @@ temacs: - loader, but I never got anywhere with an SGI support call - seeking clues. -- fx 2002-11-29. */ - #ifdef IRIX6_5 -- || !strcmp ((old_section_names + NEW_SECTION_H (n).sh_name), -+ || !strcmp ((old_section_names + NEW_SECTION_H (nn).sh_name), - ".got") - #endif -- || !strcmp ((old_section_names + NEW_SECTION_H (n).sh_name), -+ || !strcmp ((old_section_names + NEW_SECTION_H (nn).sh_name), - ".sdata1") -- || !strcmp ((old_section_names + NEW_SECTION_H (n).sh_name), -+ || !strcmp ((old_section_names + NEW_SECTION_H (nn).sh_name), - ".data1") -- || !strcmp ((old_section_names + NEW_SECTION_H (n).sh_name), -+ || !strcmp ((old_section_names + NEW_SECTION_H (nn).sh_name), - ".sbss")) - src = (caddr_t) OLD_SECTION_H (n).sh_addr; - else diff --git a/emacs-24-0011-ELF-unexec-Tidy-code.patch b/emacs-24-0011-ELF-unexec-Tidy-code.patch deleted file mode 100644 index 642d140..0000000 --- a/emacs-24-0011-ELF-unexec-Tidy-code.patch +++ /dev/null @@ -1,422 +0,0 @@ -From 9fa97f0c2c1afae39b6662a836910deb1e0130ad Mon Sep 17 00:00:00 2001 -From: Alan Modra -Date: Sun, 8 Nov 2015 09:28:59 -0800 -Subject: ELF unexec: Tidy code - -Emacs should build on ppc64el. A problem with the bss has been fixed. - -This upstream patch has been added [2/10]: - - ELF unexec: Tidy code - - Separate out some of the more mechanical changes so following patches - are smaller. - - * unexelf.c (unexec): Rearrange initialisation of program - header vars. Use pointer vars in loops rather than indexing - section header array via macros. Simplify _OBJC_ sym code - and reloc handling code. - -Origin: upstream, commit: 856f4eaba8a76953e0bbcfc7ebb0ca4f2e3cf351 -Bug: http://debbugs.gnu.org/20614 -Bug-Debian: http://bugs.debian.org/808347 -Added-by: Rob Browning ---- - src/unexelf.c | 210 +++++++++++++++++++++++++++------------------------------- - 1 file changed, 96 insertions(+), 114 deletions(-) - -diff --git a/src/unexelf.c b/src/unexelf.c -index d4a36f8..f7465cb 100644 ---- a/src/unexelf.c -+++ b/src/unexelf.c -@@ -813,20 +813,11 @@ unexec (const char *new_name, const char *old_name) - if (new_base == MAP_FAILED) - fatal ("Can't allocate buffer for %s: %s", old_name, strerror (errno)); - -- new_file_h = (ElfW (Ehdr) *) new_base; -- new_program_h = (ElfW (Phdr) *) ((byte *) new_base + old_file_h->e_phoff); -- new_section_h = (ElfW (Shdr) *) -- ((byte *) new_base + old_file_h->e_shoff + new_data2_incr); -- - /* Make our new file, program and section headers as copies of the - originals. */ - -+ new_file_h = (ElfW (Ehdr) *) new_base; - memcpy (new_file_h, old_file_h, old_file_h->e_ehsize); -- memcpy (new_program_h, old_program_h, -- old_file_h->e_phnum * old_file_h->e_phentsize); -- -- /* Modify the e_shstrndx if necessary. */ -- PATCH_INDEX (new_file_h->e_shstrndx); - - /* Fix up file header. We'll add one section. Section header is - further away now. */ -@@ -834,6 +825,16 @@ unexec (const char *new_name, const char *old_name) - new_file_h->e_shoff += new_data2_incr; - new_file_h->e_shnum += 1; - -+ /* Modify the e_shstrndx if necessary. */ -+ PATCH_INDEX (new_file_h->e_shstrndx); -+ -+ new_program_h = (ElfW (Phdr) *) ((byte *) new_base + old_file_h->e_phoff); -+ new_section_h = (ElfW (Shdr) *) -+ ((byte *) new_base + old_file_h->e_shoff + new_data2_incr); -+ -+ memcpy (new_program_h, old_program_h, -+ old_file_h->e_phnum * old_file_h->e_phentsize); -+ - #ifdef UNEXELF_DEBUG - DEBUG_LOG (old_file_h->e_shoff); - fprintf (stderr, "Old section count %td\n", (ptrdiff_t) old_file_h->e_shnum); -@@ -906,32 +907,35 @@ unexec (const char *new_name, const char *old_name) - for (n = 1, nn = 1; n < old_file_h->e_shnum; n++, nn++) - { - caddr_t src; -+ ElfW (Shdr) *old_shdr = &OLD_SECTION_H (n); -+ ElfW (Shdr) *new_shdr = &NEW_SECTION_H (nn); -+ - /* If it is (s)bss section, insert the new data2 section before it. */ - /* new_data2_index is the index of either old_sbss or old_bss, that was - chosen as a section for new_data2. */ - if (n == new_data2_index) - { - /* Steal the data section header for this data2 section. */ -- memcpy (&NEW_SECTION_H (nn), &OLD_SECTION_H (old_data_index), -+ memcpy (new_shdr, &OLD_SECTION_H (old_data_index), - new_file_h->e_shentsize); - -- NEW_SECTION_H (nn).sh_addr = new_data2_addr; -- NEW_SECTION_H (nn).sh_offset = new_data2_offset; -- NEW_SECTION_H (nn).sh_size = new_data2_size; -+ new_shdr->sh_addr = new_data2_addr; -+ new_shdr->sh_offset = new_data2_offset; -+ new_shdr->sh_size = new_data2_size; - /* Use the bss section's alignment. This will assure that the - new data2 section always be placed in the same spot as the old - bss section by any other application. */ -- NEW_SECTION_H (nn).sh_addralign = OLD_SECTION_H (n).sh_addralign; -+ new_shdr->sh_addralign = old_shdr->sh_addralign; - - /* Now copy over what we have in the memory now. */ -- memcpy (NEW_SECTION_H (nn).sh_offset + new_base, -- (caddr_t) OLD_SECTION_H (n).sh_addr, -+ memcpy (new_shdr->sh_offset + new_base, -+ (caddr_t) old_shdr->sh_addr, - new_data2_size); - nn++; -+ new_shdr++; - } - -- memcpy (&NEW_SECTION_H (nn), &OLD_SECTION_H (n), -- old_file_h->e_shentsize); -+ memcpy (new_shdr, old_shdr, old_file_h->e_shentsize); - - if (n == old_bss_index - /* The new bss and sbss section's size is zero, and its file offset -@@ -940,13 +944,13 @@ unexec (const char *new_name, const char *old_name) - ) - { - /* NN should be `old_s?bss_index + 1' at this point. */ -- NEW_SECTION_H (nn).sh_offset = new_data2_offset + new_data2_size; -- NEW_SECTION_H (nn).sh_addr = new_data2_addr + new_data2_size; -+ new_shdr->sh_offset = new_data2_offset + new_data2_size; -+ new_shdr->sh_addr = new_data2_addr + new_data2_size; - /* Let the new bss section address alignment be the same as the - section address alignment followed the old bss section, so - this section will be placed in exactly the same place. */ -- NEW_SECTION_H (nn).sh_addralign = OLD_SECTION_H (nn).sh_addralign; -- NEW_SECTION_H (nn).sh_size = 0; -+ new_shdr->sh_addralign = OLD_SECTION_H (nn).sh_addralign; -+ new_shdr->sh_size = 0; - } - else - { -@@ -976,53 +980,50 @@ temacs: - 25 1709 0x4 0x10 - */ - -- if (NEW_SECTION_H (nn).sh_offset >= old_bss_offset -- || (NEW_SECTION_H (nn).sh_offset + NEW_SECTION_H (nn).sh_size -+ if (new_shdr->sh_offset >= old_bss_offset -+ || (new_shdr->sh_offset + new_shdr->sh_size - > new_data2_offset)) -- NEW_SECTION_H (nn).sh_offset += new_data2_incr; -+ new_shdr->sh_offset += new_data2_incr; - - /* Any section that was originally placed after the section - header table should now be off by the size of one section - header table entry. */ -- if (NEW_SECTION_H (nn).sh_offset > new_file_h->e_shoff) -- NEW_SECTION_H (nn).sh_offset += new_file_h->e_shentsize; -+ if (new_shdr->sh_offset > new_file_h->e_shoff) -+ new_shdr->sh_offset += new_file_h->e_shentsize; - } - - /* If any section hdr refers to the section after the new .data - section, make it refer to next one because we have inserted - a new section in between. */ - -- PATCH_INDEX (NEW_SECTION_H (nn).sh_link); -+ PATCH_INDEX (new_shdr->sh_link); - /* For symbol tables, info is a symbol table index, - so don't change it. */ -- if (NEW_SECTION_H (nn).sh_type != SHT_SYMTAB -- && NEW_SECTION_H (nn).sh_type != SHT_DYNSYM) -- PATCH_INDEX (NEW_SECTION_H (nn).sh_info); -+ if (new_shdr->sh_type != SHT_SYMTAB -+ && new_shdr->sh_type != SHT_DYNSYM) -+ PATCH_INDEX (new_shdr->sh_info); - - if (old_sbss_index != -1) -- if (!strcmp (old_section_names + NEW_SECTION_H (nn).sh_name, ".sbss")) -+ if (!strcmp (old_section_names + new_shdr->sh_name, ".sbss")) - { -- NEW_SECTION_H (nn).sh_offset = -- round_up (NEW_SECTION_H (nn).sh_offset, -- NEW_SECTION_H (nn).sh_addralign); -- NEW_SECTION_H (nn).sh_type = SHT_PROGBITS; -+ new_shdr->sh_offset = -+ round_up (new_shdr->sh_offset, -+ new_shdr->sh_addralign); -+ new_shdr->sh_type = SHT_PROGBITS; - } - - /* Now, start to copy the content of sections. */ -- if (NEW_SECTION_H (nn).sh_type == SHT_NULL -- || NEW_SECTION_H (nn).sh_type == SHT_NOBITS) -+ if (new_shdr->sh_type == SHT_NULL -+ || new_shdr->sh_type == SHT_NOBITS) - continue; - - /* Write out the sections. .data and .data1 (and data2, called - ".data" in the strings table) get copied from the current process - instead of the old file. */ -- if (!strcmp (old_section_names + NEW_SECTION_H (nn).sh_name, ".data") -- || !strcmp ((old_section_names + NEW_SECTION_H (nn).sh_name), -- ".sdata") -- || !strcmp ((old_section_names + NEW_SECTION_H (nn).sh_name), -- ".lit4") -- || !strcmp ((old_section_names + NEW_SECTION_H (nn).sh_name), -- ".lit8") -+ if (!strcmp (old_section_names + new_shdr->sh_name, ".data") -+ || !strcmp (old_section_names + new_shdr->sh_name, ".sdata") -+ || !strcmp (old_section_names + new_shdr->sh_name, ".lit4") -+ || !strcmp (old_section_names + new_shdr->sh_name, ".lit8") - /* The conditional bit below was in Oliva's original code - (1999-08-25) and seems to have been dropped by mistake - subsequently. It prevents a crash at startup under X in -@@ -1044,28 +1045,22 @@ temacs: - loader, but I never got anywhere with an SGI support call - seeking clues. -- fx 2002-11-29. */ - #ifdef IRIX6_5 -- || !strcmp ((old_section_names + NEW_SECTION_H (nn).sh_name), -- ".got") -+ || !strcmp (old_section_names + new_shdr->sh_name, ".got") - #endif -- || !strcmp ((old_section_names + NEW_SECTION_H (nn).sh_name), -- ".sdata1") -- || !strcmp ((old_section_names + NEW_SECTION_H (nn).sh_name), -- ".data1") -- || !strcmp ((old_section_names + NEW_SECTION_H (nn).sh_name), -- ".sbss")) -- src = (caddr_t) OLD_SECTION_H (n).sh_addr; -+ || !strcmp (old_section_names + new_shdr->sh_name, ".sdata1") -+ || !strcmp (old_section_names + new_shdr->sh_name, ".data1") -+ || !strcmp (old_section_names + new_shdr->sh_name, ".sbss")) -+ src = (caddr_t) old_shdr->sh_addr; - else -- src = old_base + OLD_SECTION_H (n).sh_offset; -+ src = old_base + old_shdr->sh_offset; - -- memcpy (NEW_SECTION_H (nn).sh_offset + new_base, src, -- NEW_SECTION_H (nn).sh_size); -+ memcpy (new_shdr->sh_offset + new_base, src, new_shdr->sh_size); - - #if defined __alpha__ && !defined __OpenBSD__ - /* Update Alpha COFF symbol table: */ -- if (strcmp (old_section_names + OLD_SECTION_H (n).sh_name, ".mdebug") -- == 0) -+ if (strcmp (old_section_names + old_shdr->sh_name, ".mdebug") == 0) - { -- pHDRR symhdr = (pHDRR) (NEW_SECTION_H (nn).sh_offset + new_base); -+ pHDRR symhdr = (pHDRR) (new_shdr->sh_offset + new_base); - - symhdr->cbLineOffset += new_data2_size; - symhdr->cbDnOffset += new_data2_size; -@@ -1082,13 +1077,13 @@ temacs: - #endif /* __alpha__ && !__OpenBSD__ */ - - #if defined (_SYSTYPE_SYSV) -- if (NEW_SECTION_H (nn).sh_type == SHT_MIPS_DEBUG -+ if (new_shdr->sh_type == SHT_MIPS_DEBUG - && old_mdebug_index != -1) - { -- ptrdiff_t new_offset = NEW_SECTION_H (nn).sh_offset; -+ ptrdiff_t new_offset = new_shdr->sh_offset; - ptrdiff_t old_offset = OLD_SECTION_H (old_mdebug_index).sh_offset; - ptrdiff_t diff = new_offset - old_offset; -- HDRR *phdr = (HDRR *)(NEW_SECTION_H (nn).sh_offset + new_base); -+ HDRR *phdr = (HDRR *) (new_shdr->sh_offset + new_base); - - if (diff) - { -@@ -1124,8 +1119,8 @@ temacs: - n_phdrr->__fileaddr += movement; \ - } - -- HDRR * o_phdrr = (HDRR *)((byte *)old_base + OLD_SECTION_H (n).sh_offset); -- HDRR * n_phdrr = (HDRR *)((byte *)new_base + NEW_SECTION_H (nn).sh_offset); -+ HDRR *o_phdrr = (HDRR *) ((byte *) old_base + old_shdr->sh_offset); -+ HDRR *n_phdrr = (HDRR *) ((byte *) new_base + new_shdr->sh_offset); - unsigned movement = new_data2_size; - - MDEBUGADJUST (idnMax, cbDnOffset); -@@ -1142,8 +1137,8 @@ temacs: - requires special handling. */ - if (n_phdrr->cbLine > 0) - { -- if (o_phdrr->cbLineOffset > (OLD_SECTION_H (n).sh_offset -- + OLD_SECTION_H (n).sh_size)) -+ if (o_phdrr->cbLineOffset > (old_shdr->sh_offset -+ + old_shdr->sh_size)) - { - /* line data is in a hole in elf. do special copy and adjust - for this ld mistake. -@@ -1163,13 +1158,11 @@ temacs: - #endif /* __sgi */ - - /* If it is the symbol table, its st_shndx field needs to be patched. */ -- if (NEW_SECTION_H (nn).sh_type == SHT_SYMTAB -- || NEW_SECTION_H (nn).sh_type == SHT_DYNSYM) -+ if (new_shdr->sh_type == SHT_SYMTAB -+ || new_shdr->sh_type == SHT_DYNSYM) - { -- ElfW (Shdr) *spt = &NEW_SECTION_H (nn); -- ptrdiff_t num = spt->sh_size / spt->sh_entsize; -- ElfW (Sym) * sym = (ElfW (Sym) *) (NEW_SECTION_H (nn).sh_offset + -- new_base); -+ ptrdiff_t num = new_shdr->sh_size / new_shdr->sh_entsize; -+ ElfW (Sym) *sym = (ElfW (Sym) *) (new_shdr->sh_offset + new_base); - for (; num--; sym++) - { - if ((sym->st_shndx == SHN_UNDEF) -@@ -1187,15 +1180,16 @@ temacs: - { - byte *symnames; - ElfW (Sym) *symp, *symendp; -+ ElfW (Shdr) *sym_shdr = &NEW_SECTION_H (n); - -- if (NEW_SECTION_H (n).sh_type != SHT_DYNSYM -- && NEW_SECTION_H (n).sh_type != SHT_SYMTAB) -+ if (sym_shdr->sh_type != SHT_DYNSYM -+ && sym_shdr->sh_type != SHT_SYMTAB) - continue; - - symnames = ((byte *) new_base -- + NEW_SECTION_H (NEW_SECTION_H (n).sh_link).sh_offset); -- symp = (ElfW (Sym) *) (NEW_SECTION_H (n).sh_offset + new_base); -- symendp = (ElfW (Sym) *) ((byte *)symp + NEW_SECTION_H (n).sh_size); -+ + NEW_SECTION_H (sym_shdr->sh_link).sh_offset); -+ symp = (ElfW (Sym) *) (sym_shdr->sh_offset + new_base); -+ symendp = (ElfW (Sym) *) ((byte *) symp + sym_shdr->sh_size); - - for (; symp < symendp; symp ++) - { -@@ -1219,22 +1213,21 @@ temacs: - if (strncmp ((char *) (symnames + symp->st_name), - "_OBJC_", sizeof ("_OBJC_") - 1) == 0) - { -- caddr_t old, new; -+ ElfW (Shdr) *new_shdr = &NEW_SECTION_H (symp->st_shndx); -+ ptrdiff_t reladdr = symp->st_value - new_shdr->sh_addr; -+ ptrdiff_t newoff = reladdr + new_shdr->sh_offset; - -- new = ((symp->st_value - NEW_SECTION_H (symp->st_shndx).sh_addr) -- + NEW_SECTION_H (symp->st_shndx).sh_offset + new_base); - /* "Unpatch" index. */ - nn = symp->st_shndx; - if (nn > old_bss_index) - nn--; - if (nn == old_bss_index) -- memset (new, 0, symp->st_size); -+ memset (new_base + newoff, 0, symp->st_size); - else - { -- old = ((symp->st_value -- - NEW_SECTION_H (symp->st_shndx).sh_addr) -- + OLD_SECTION_H (nn).sh_offset + old_base); -- memcpy (new, old, symp->st_size); -+ ElfW (Shdr) *old_shdr = &OLD_SECTION_H (nn); -+ ptrdiff_t oldoff = reladdr + old_shdr->sh_offset; -+ memcpy (new_base + newoff, old_base + oldoff, symp->st_size); - } - } - #endif -@@ -1245,13 +1238,10 @@ temacs: - that it can undo relocations performed by the runtime linker. */ - for (n = new_file_h->e_shnum; 0 < --n; ) - { -- ElfW (Shdr) section = NEW_SECTION_H (n); -- -- /* Cause a compilation error if anyone uses n instead of nn below. */ -- #define n ((void) 0); -- n /* Prevent 'macro "n" is not used' warnings. */ -+ ElfW (Shdr) *rel_shdr = &NEW_SECTION_H (n); -+ ElfW (Shdr) *shdr; - -- switch (section.sh_type) -+ switch (rel_shdr->sh_type) - { - default: - break; -@@ -1260,28 +1250,22 @@ temacs: - /* This code handles two different size structs, but there should - be no harm in that provided that r_offset is always the first - member. */ -- nn = section.sh_info; -- if (!strcmp (old_section_names + NEW_SECTION_H (nn).sh_name, ".data") -- || !strcmp ((old_section_names + NEW_SECTION_H (nn).sh_name), -- ".sdata") -- || !strcmp ((old_section_names + NEW_SECTION_H (nn).sh_name), -- ".lit4") -- || !strcmp ((old_section_names + NEW_SECTION_H (nn).sh_name), -- ".lit8") -+ shdr = &NEW_SECTION_H (rel_shdr->sh_info); -+ if (!strcmp (old_section_names + shdr->sh_name, ".data") -+ || !strcmp (old_section_names + shdr->sh_name, ".sdata") -+ || !strcmp (old_section_names + shdr->sh_name, ".lit4") -+ || !strcmp (old_section_names + shdr->sh_name, ".lit8") - #ifdef IRIX6_5 /* see above */ -- || !strcmp ((old_section_names + NEW_SECTION_H (nn).sh_name), -- ".got") -+ || !strcmp (old_section_names + shdr->sh_name, ".got") - #endif -- || !strcmp ((old_section_names + NEW_SECTION_H (nn).sh_name), -- ".sdata1") -- || !strcmp ((old_section_names + NEW_SECTION_H (nn).sh_name), -- ".data1")) -+ || !strcmp (old_section_names + shdr->sh_name, ".sdata1") -+ || !strcmp (old_section_names + shdr->sh_name, ".data1")) - { -- ElfW (Addr) offset = (NEW_SECTION_H (nn).sh_addr -- - NEW_SECTION_H (nn).sh_offset); -- caddr_t reloc = old_base + section.sh_offset, end; -- for (end = reloc + section.sh_size; reloc < end; -- reloc += section.sh_entsize) -+ ElfW (Addr) offset = shdr->sh_addr - shdr->sh_offset; -+ caddr_t reloc = old_base + rel_shdr->sh_offset, end; -+ for (end = reloc + rel_shdr->sh_size; -+ reloc < end; -+ reloc += rel_shdr->sh_entsize) - { - ElfW (Addr) addr = ((ElfW (Rel) *) reloc)->r_offset - offset; - #ifdef __alpha__ -@@ -1296,8 +1280,6 @@ temacs: - } - break; - } -- -- #undef n - } - - /* Write out new_file, and free the buffers. */ diff --git a/emacs-24-0012-ELF-unexec-Merge-Alpha-and-MIPS-COFF-debug-handling.patch b/emacs-24-0012-ELF-unexec-Merge-Alpha-and-MIPS-COFF-debug-handling.patch deleted file mode 100644 index 10ddcc8..0000000 --- a/emacs-24-0012-ELF-unexec-Merge-Alpha-and-MIPS-COFF-debug-handling.patch +++ /dev/null @@ -1,174 +0,0 @@ -From 2cb9075979e413e4cc31c85d3bd830f791cc574b Mon Sep 17 00:00:00 2001 -From: Alan Modra -Date: Sun, 8 Nov 2015 09:28:59 -0800 -Subject: ELF unexec: Merge Alpha and MIPS COFF debug handling - -Emacs should build on ppc64el. A problem with the bss has been fixed. - -This upstream patch has been added [3/10]: - - ELF unexec: Merge Alpha and MIPS COFF debug handling - - * unexelf.c (unexec): Merge Alpha and MIPS COFF debug handling. - Don't find .mdebug section index, find the section in the loop. - Allow for unlikely possibility that .mdebug is located at sh_offset - before bss segment, by calculating move from difference in - sh_offset rather than just assuming new_data2_size. Simplify - cbLineOffset handling. - -Origin: upstream, commit: 47c6e3035b8182c6436de4673473de7824ad59f1 -Bug: http://debbugs.gnu.org/20614 -Bug-Debian: http://bugs.debian.org/808347 -Added-by: Rob Browning ---- - src/unexelf.c | 96 ++++++++++++++++++----------------------------------------- - 1 file changed, 29 insertions(+), 67 deletions(-) - -diff --git a/src/unexelf.c b/src/unexelf.c -index f7465cb..07c2ebe 100644 ---- a/src/unexelf.c -+++ b/src/unexelf.c -@@ -660,9 +660,6 @@ unexec (const char *new_name, const char *old_name) - ptrdiff_t n, nn; - ptrdiff_t old_bss_index, old_sbss_index, old_plt_index; - ptrdiff_t old_data_index, new_data2_index; --#if defined _SYSTYPE_SYSV || defined __sgi -- ptrdiff_t old_mdebug_index; --#endif - struct stat stat_buf; - off_t old_file_size; - int mask; -@@ -707,13 +704,6 @@ unexec (const char *new_name, const char *old_name) - old_section_names = (char *) old_base - + OLD_SECTION_H (old_file_h->e_shstrndx).sh_offset; - -- /* Find the mdebug section, if any. */ -- --#if defined _SYSTYPE_SYSV || defined __sgi -- old_mdebug_index = find_section (".mdebug", old_section_names, -- old_name, old_file_h, old_section_h, 1); --#endif -- - /* Find the old .bss section. Figure out parameters of the new - data2 and bss sections. */ - -@@ -1056,51 +1046,31 @@ temacs: - - memcpy (new_shdr->sh_offset + new_base, src, new_shdr->sh_size); - --#if defined __alpha__ && !defined __OpenBSD__ -- /* Update Alpha COFF symbol table: */ -- if (strcmp (old_section_names + old_shdr->sh_name, ".mdebug") == 0) -- { -- pHDRR symhdr = (pHDRR) (new_shdr->sh_offset + new_base); -- -- symhdr->cbLineOffset += new_data2_size; -- symhdr->cbDnOffset += new_data2_size; -- symhdr->cbPdOffset += new_data2_size; -- symhdr->cbSymOffset += new_data2_size; -- symhdr->cbOptOffset += new_data2_size; -- symhdr->cbAuxOffset += new_data2_size; -- symhdr->cbSsOffset += new_data2_size; -- symhdr->cbSsExtOffset += new_data2_size; -- symhdr->cbFdOffset += new_data2_size; -- symhdr->cbRfdOffset += new_data2_size; -- symhdr->cbExtOffset += new_data2_size; -- } --#endif /* __alpha__ && !__OpenBSD__ */ -- --#if defined (_SYSTYPE_SYSV) -- if (new_shdr->sh_type == SHT_MIPS_DEBUG -- && old_mdebug_index != -1) -+#if (defined __alpha__ && !defined __OpenBSD__) || defined _SYSTYPE_SYSV -+ /* Update Alpha and MIPS COFF debug symbol table. */ -+ if (strcmp (old_section_names + new_shdr->sh_name, ".mdebug") == 0 -+ && new_shdr->sh_offset - old_shdr->sh_offset != 0 -+#if defined _SYSTYPE_SYSV -+ && new_shdr->sh_type == SHT_MIPS_DEBUG -+#endif -+ ) - { -- ptrdiff_t new_offset = new_shdr->sh_offset; -- ptrdiff_t old_offset = OLD_SECTION_H (old_mdebug_index).sh_offset; -- ptrdiff_t diff = new_offset - old_offset; -+ ptrdiff_t diff = new_shdr->sh_offset - old_shdr->sh_offset; - HDRR *phdr = (HDRR *) (new_shdr->sh_offset + new_base); - -- if (diff) -- { -- phdr->cbLineOffset += diff; -- phdr->cbDnOffset += diff; -- phdr->cbPdOffset += diff; -- phdr->cbSymOffset += diff; -- phdr->cbOptOffset += diff; -- phdr->cbAuxOffset += diff; -- phdr->cbSsOffset += diff; -- phdr->cbSsExtOffset += diff; -- phdr->cbFdOffset += diff; -- phdr->cbRfdOffset += diff; -- phdr->cbExtOffset += diff; -- } -+ phdr->cbLineOffset += diff; -+ phdr->cbDnOffset += diff; -+ phdr->cbPdOffset += diff; -+ phdr->cbSymOffset += diff; -+ phdr->cbOptOffset += diff; -+ phdr->cbAuxOffset += diff; -+ phdr->cbSsOffset += diff; -+ phdr->cbSsExtOffset += diff; -+ phdr->cbFdOffset += diff; -+ phdr->cbRfdOffset += diff; -+ phdr->cbExtOffset += diff; - } --#endif /* _SYSTYPE_SYSV */ -+#endif /* __alpha__ || _SYSTYPE_SYSV */ - - #if __sgi - /* Adjust the HDRR offsets in .mdebug and copy the -@@ -1111,7 +1081,8 @@ temacs: - the ld bug that gets the line table in a hole in the - elf file rather than in the .mdebug section proper. - David Anderson. davea@sgi.com Jan 16,1994. */ -- if (n == old_mdebug_index) -+ if (strcmp (old_section_names + new_shdr->sh_name, ".mdebug") == 0 -+ && new_shdr->sh_offset - old_shdr->sh_offset != 0) - { - #define MDEBUGADJUST(__ct,__fileaddr) \ - if (n_phdrr->__ct > 0) \ -@@ -1121,7 +1092,7 @@ temacs: - - HDRR *o_phdrr = (HDRR *) ((byte *) old_base + old_shdr->sh_offset); - HDRR *n_phdrr = (HDRR *) ((byte *) new_base + new_shdr->sh_offset); -- unsigned movement = new_data2_size; -+ ptrdiff_t movement = new_shdr->sh_offset - old_shdr->sh_offset; - - MDEBUGADJUST (idnMax, cbDnOffset); - MDEBUGADJUST (ipdMax, cbPdOffset); -@@ -1137,22 +1108,13 @@ temacs: - requires special handling. */ - if (n_phdrr->cbLine > 0) - { -+ n_phdrr->cbLineOffset += movement; -+ - if (o_phdrr->cbLineOffset > (old_shdr->sh_offset - + old_shdr->sh_size)) -- { -- /* line data is in a hole in elf. do special copy and adjust -- for this ld mistake. -- */ -- n_phdrr->cbLineOffset += movement; -- -- memcpy (n_phdrr->cbLineOffset + new_base, -- o_phdrr->cbLineOffset + old_base, n_phdrr->cbLine); -- } -- else -- { -- /* somehow line data is in .mdebug as it is supposed to be. */ -- MDEBUGADJUST (cbLine, cbLineOffset); -- } -+ /* If not covered by section, it hasn't yet been copied. */ -+ memcpy (n_phdrr->cbLineOffset + new_base, -+ o_phdrr->cbLineOffset + old_base, n_phdrr->cbLine); - } - } - #endif /* __sgi */ diff --git a/emacs-24-0013-ELF-unexec-Symbol-table-patching.patch b/emacs-24-0013-ELF-unexec-Symbol-table-patching.patch deleted file mode 100644 index f8a9294..0000000 --- a/emacs-24-0013-ELF-unexec-Symbol-table-patching.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 2776e4ffe1f4cf965a6b99201097ca7d4ee2f95c Mon Sep 17 00:00:00 2001 -From: Alan Modra -Date: Sun, 8 Nov 2015 09:29:00 -0800 -Subject: ELF unexec: Symbol table patching - -Emacs should build on ppc64el. A problem with the bss has been fixed. - -This upstream patch has been added [4/10]: - - ELF unexec: Symbol table patching - - No st_shndx value larger than SHN_LORESERVE should be changed. - * unexelf.c (unexec): Don't adjust any st_shndx larger than - SHN_LORESERVE. Error on SHN_XINDEX. - -Origin: upstream, commit: 190b968f189cb7d06223bb39045ec9055df67f68 -Bug: http://debbugs.gnu.org/20614 -Bug-Debian: http://bugs.debian.org/808347 -Added-by: Rob Browning ---- - src/unexelf.c | 9 +++++---- - 1 file changed, 5 insertions(+), 4 deletions(-) - -diff --git a/src/unexelf.c b/src/unexelf.c -index 07c2ebe..010ecd3 100644 ---- a/src/unexelf.c -+++ b/src/unexelf.c -@@ -1119,7 +1119,7 @@ temacs: - } - #endif /* __sgi */ - -- /* If it is the symbol table, its st_shndx field needs to be patched. */ -+ /* Patch st_shndx field of symbol table. */ - if (new_shdr->sh_type == SHT_SYMTAB - || new_shdr->sh_type == SHT_DYNSYM) - { -@@ -1127,9 +1127,10 @@ temacs: - ElfW (Sym) *sym = (ElfW (Sym) *) (new_shdr->sh_offset + new_base); - for (; num--; sym++) - { -- if ((sym->st_shndx == SHN_UNDEF) -- || (sym->st_shndx == SHN_ABS) -- || (sym->st_shndx == SHN_COMMON)) -+ if (sym->st_shndx == SHN_XINDEX) -+ fatal ("SHT_SYMTAB_SHNDX unsupported"); -+ if (sym->st_shndx == SHN_UNDEF -+ || sym->st_shndx >= SHN_LORESERVE) - continue; - - PATCH_INDEX (sym->st_shndx); diff --git a/emacs-24-0014-ELF-unexec-_OBJC_-symbols-in-bss-sections.patch b/emacs-24-0014-ELF-unexec-_OBJC_-symbols-in-bss-sections.patch deleted file mode 100644 index 5cb8eaa..0000000 --- a/emacs-24-0014-ELF-unexec-_OBJC_-symbols-in-bss-sections.patch +++ /dev/null @@ -1,70 +0,0 @@ -From af11708e83ab826202593ab1b9c22601c46a5056 Mon Sep 17 00:00:00 2001 -From: Alan Modra -Date: Sun, 8 Nov 2015 09:29:00 -0800 -Subject: ELF unexec: _OBJC_ symbols in bss sections - -Emacs should build on ppc64el. A problem with the bss has been fixed. - -This upstream patch has been added [5/10]: - - ELF unexec: _OBJC_ symbols in bss sections - - This code assumed that there was only one bss section. Rather than - checking for a particular index, check the section type. Also, handle - the possibility that the section was SHT_NOBITS originally and is - unchanged, in which case no clearing is needed (and sh_offset isn't - necessarily valid, which can lead to a wild memset). - - * unexelf.c (unexec): Properly handle _OBJC_ symbols in bss sections. - -Origin: upstream, commit: 3ff9fc0e8d738be5004c65c3be314af9aca68148 -Bug: http://debbugs.gnu.org/20614 -Bug-Debian: http://bugs.debian.org/808347 -Added-by: Rob Browning ---- - src/unexelf.c | 31 ++++++++++++++++++------------- - 1 file changed, 18 insertions(+), 13 deletions(-) - -diff --git a/src/unexelf.c b/src/unexelf.c -index 010ecd3..58f0ad0 100644 ---- a/src/unexelf.c -+++ b/src/unexelf.c -@@ -1177,20 +1177,25 @@ temacs: - "_OBJC_", sizeof ("_OBJC_") - 1) == 0) - { - ElfW (Shdr) *new_shdr = &NEW_SECTION_H (symp->st_shndx); -- ptrdiff_t reladdr = symp->st_value - new_shdr->sh_addr; -- ptrdiff_t newoff = reladdr + new_shdr->sh_offset; -- -- /* "Unpatch" index. */ -- nn = symp->st_shndx; -- if (nn > old_bss_index) -- nn--; -- if (nn == old_bss_index) -- memset (new_base + newoff, 0, symp->st_size); -- else -+ if (new_shdr->sh_type != SHT_NOBITS) - { -- ElfW (Shdr) *old_shdr = &OLD_SECTION_H (nn); -- ptrdiff_t oldoff = reladdr + old_shdr->sh_offset; -- memcpy (new_base + newoff, old_base + oldoff, symp->st_size); -+ ElfW (Shdr) *old_shdr; -+ ptrdiff_t reladdr = symp->st_value - new_shdr->sh_addr; -+ ptrdiff_t newoff = reladdr + new_shdr->sh_offset; -+ -+ /* "Unpatch" index. */ -+ nn = symp->st_shndx; -+ if (nn > old_bss_index) -+ nn--; -+ old_shdr = &OLD_SECTION_H (nn); -+ if (old_shdr->sh_type == SHT_NOBITS) -+ memset (new_base + newoff, 0, symp->st_size); -+ else -+ { -+ ptrdiff_t oldoff = reladdr + old_shdr->sh_offset; -+ memcpy (new_base + newoff, old_base + oldoff, -+ symp->st_size); -+ } - } - } - #endif diff --git a/emacs-24-0015-ELF-unexec-R_-_NONE-relocs.patch b/emacs-24-0015-ELF-unexec-R_-_NONE-relocs.patch deleted file mode 100644 index 6db8f6b..0000000 --- a/emacs-24-0015-ELF-unexec-R_-_NONE-relocs.patch +++ /dev/null @@ -1,58 +0,0 @@ -From f9d91515971443b754b9c9eaac45a293d0e620c1 Mon Sep 17 00:00:00 2001 -From: Alan Modra -Date: Sun, 8 Nov 2015 09:29:00 -0800 -Subject: ELF unexec: R_*_NONE relocs - -Emacs should build on ppc64el. A problem with the bss has been fixed. - -This upstream patch has been added [6/10]: - - ELF unexec: R_*_NONE relocs - - These should be ignored on all targets. - - * unexelf.c (unexec): Ignore R_*_NONE relocs for any target, - not just Alpha. Comment on reloc size assumption. - -Origin: upstream, commit: 8285c2ab8050de218c0c06182659ee0a7b23a0f6 -Bug: http://debbugs.gnu.org/20614 -Bug-Debian: http://bugs.debian.org/808347 -Added-by: Rob Browning ---- - src/unexelf.c | 14 +++++++------- - 1 file changed, 7 insertions(+), 7 deletions(-) - -diff --git a/src/unexelf.c b/src/unexelf.c -index 58f0ad0..1d9387e 100644 ---- a/src/unexelf.c -+++ b/src/unexelf.c -@@ -1203,7 +1203,7 @@ temacs: - } - - /* This loop seeks out relocation sections for the data section, so -- that it can undo relocations performed by the runtime linker. */ -+ that it can undo relocations performed by the runtime loader. */ - for (n = new_file_h->e_shnum; 0 < --n; ) - { - ElfW (Shdr) *rel_shdr = &NEW_SECTION_H (n); -@@ -1236,14 +1236,14 @@ temacs: - reloc += rel_shdr->sh_entsize) - { - ElfW (Addr) addr = ((ElfW (Rel) *) reloc)->r_offset - offset; --#ifdef __alpha__ -- /* The Alpha ELF binutils currently have a bug that -- sometimes results in relocs that contain all -- zeroes. Work around this for now... */ -+ /* Ignore R_*_NONE relocs. */ - if (((ElfW (Rel) *) reloc)->r_offset == 0) - continue; --#endif -- memcpy (new_base + addr, old_base + addr, sizeof (ElfW (Addr))); -+ /* Assume reloc applies to a word. -+ ??? This is not always true, eg. TLS module/index -+ pair in .got which occupies two words. */ -+ memcpy (new_base + addr, old_base + addr, -+ sizeof (ElfW (Addr))); - } - } - break; diff --git a/emacs-24-0016-ELF-unexec-Drive-from-PT_LOAD-header-rather-than-sec.patch b/emacs-24-0016-ELF-unexec-Drive-from-PT_LOAD-header-rather-than-sec.patch deleted file mode 100644 index 75dce76..0000000 --- a/emacs-24-0016-ELF-unexec-Drive-from-PT_LOAD-header-rather-than-sec.patch +++ /dev/null @@ -1,480 +0,0 @@ -From 75dc7e12d73ad8c1bf9583515e41913980883dbe Mon Sep 17 00:00:00 2001 -From: Alan Modra -Date: Sun, 8 Nov 2015 09:29:00 -0800 -Subject: ELF unexec: Drive from PT_LOAD header rather than sections - -Emacs should build on ppc64el. A problem with the bss has been fixed. - -This upstream patch has been added [7/10]: - - ELF unexec: Drive from PT_LOAD header rather than sections - - This rewrites bss handling in the ELF unexec code. Finding bss - sections by name results in complicated code that - - does not account for all names of possible bss sections, - - assumes specific ordering of bss sections, - - can wrongly choose a SHT_NOBITS section not in the bss segment, - - incorrectly calculates bss size (no accounting for alignment gaps), - - assumes .data and .bss are in the same segment. - - All of these problems and more are solved by finding the bss segment - in PT_LOAD headers, ie. the address range included in p_memsz but not - p_filesz of the last PT_LOAD header, then matching SHT_NOBITS sections - in that address range. - - * unexelf.c: Delete old ppc comment. - (OLD_PROGRAM_H): Define. - (round_up): Delete. - (unexec): Don't search for bss style sections by name. Instead, - use the last PT_LOAD header address range covered by p_memsz - but not p_filesz and match any SHT_NOBITS section in that - address range. Simplify initialisation of section header vars. - Don't assume that section headers are above bss segment. Move - copying of bss area out of section loop. Align .data2 section - to 1, since it now covers the entire bss area. For SHT_NOBITS - sections in the bss segment, leave sh_addr and sh_addralign - unchanged, but correct sh_offset. Clear memory corresponding - to SHT_NOBITS .plt section. Delete comment and hacks for - sections partly overlapping bss range now that the full range - is properly calculated. Delete now dead .sbss code. - (Bug#20614) - -Origin: upstream, commit: 0d6442265e5b709af5eebedf8f0d6b82974f4c31 -Bug: http://debbugs.gnu.org/20614 -Bug-Debian: http://bugs.debian.org/808347 -Added-by: Rob Browning ---- - src/unexelf.c | 290 ++++++++++++++++------------------------------------------ - 1 file changed, 77 insertions(+), 213 deletions(-) - -diff --git a/src/unexelf.c b/src/unexelf.c -index 1d9387e..c659f3e 100644 ---- a/src/unexelf.c -+++ b/src/unexelf.c -@@ -535,29 +535,6 @@ verify ((! TYPE_SIGNED (ElfW (Half)) - /* Get the address of a particular section or program header entry, - * accounting for the size of the entries. - */ --/* -- On PPC Reference Platform running Solaris 2.5.1 -- the plt section is also of type NOBI like the bss section. -- (not really stored) and therefore sections after the bss -- section start at the plt offset. The plt section is always -- the one just before the bss section. -- Thus, we modify the test from -- if (NEW_SECTION_H (nn).sh_offset >= new_data2_offset) -- to -- if (NEW_SECTION_H (nn).sh_offset >= -- OLD_SECTION_H (old_bss_index-1).sh_offset) -- This is just a hack. We should put the new data section -- before the .plt section. -- And we should not have this routine at all but use -- the libelf library to read the old file and create the new -- file. -- The changed code is minimal and depends on prep set in m/prep.h -- Erik Deumens -- Quantum Theory Project -- University of Florida -- deumens@qtp.ufl.edu -- Apr 23, 1996 -- */ - - static void * - entry_address (void *section_h, ptrdiff_t idx, ptrdiff_t entsize) -@@ -570,23 +547,14 @@ entry_address (void *section_h, ptrdiff_t idx, ptrdiff_t entsize) - (*(ElfW (Shdr) *) entry_address (old_section_h, n, old_file_h->e_shentsize)) - #define NEW_SECTION_H(n) \ - (*(ElfW (Shdr) *) entry_address (new_section_h, n, new_file_h->e_shentsize)) -+#define OLD_PROGRAM_H(n) \ -+ (*(ElfW (Phdr) *) entry_address (old_program_h, n, old_file_h->e_phentsize)) - #define NEW_PROGRAM_H(n) \ - (*(ElfW (Phdr) *) entry_address (new_program_h, n, new_file_h->e_phentsize)) - - #define PATCH_INDEX(n) ((n) += old_bss_index <= (n)) - typedef unsigned char byte; - --/* Round X up to a multiple of Y. */ -- --static ElfW (Addr) --round_up (ElfW (Addr) x, ElfW (Addr) y) --{ -- ElfW (Addr) rem = x % y; -- if (rem == 0) -- return x; -- return x - rem + y; --} -- - /* Return the index of the section named NAME. - SECTION_NAMES, FILE_NAME and FILE_H give information - about the file we are looking in. -@@ -650,16 +618,15 @@ unexec (const char *new_name, const char *old_name) - /* Point to the section name table in the old file. */ - char *old_section_names; - -+ ElfW (Phdr) *old_bss_seg, *new_bss_seg; - ElfW (Addr) old_bss_addr, new_bss_addr; - ElfW (Word) old_bss_size, new_data2_size; - ElfW (Off) new_data2_offset; - ElfW (Addr) new_data2_addr; - ElfW (Off) old_bss_offset; -- ElfW (Word) new_data2_incr; - - ptrdiff_t n, nn; -- ptrdiff_t old_bss_index, old_sbss_index, old_plt_index; -- ptrdiff_t old_data_index, new_data2_index; -+ ptrdiff_t old_bss_index, old_data_index; - struct stat stat_buf; - off_t old_file_size; - int mask; -@@ -704,54 +671,40 @@ unexec (const char *new_name, const char *old_name) - old_section_names = (char *) old_base - + OLD_SECTION_H (old_file_h->e_shstrndx).sh_offset; - -- /* Find the old .bss section. Figure out parameters of the new -- data2 and bss sections. */ -- -- old_bss_index = find_section (".bss", old_section_names, -- old_name, old_file_h, old_section_h, 0); -- -- old_sbss_index = find_section (".sbss", old_section_names, -- old_name, old_file_h, old_section_h, 1); -- if (old_sbss_index != -1) -- if (OLD_SECTION_H (old_sbss_index).sh_type != SHT_NOBITS) -- old_sbss_index = -1; -- -- /* PowerPC64 has .plt in the BSS section. */ -- old_plt_index = find_section (".plt", old_section_names, -- old_name, old_file_h, old_section_h, 1); -- if (old_plt_index != -1) -- if (OLD_SECTION_H (old_plt_index).sh_type != SHT_NOBITS) -- old_plt_index = -1; -- -- if (old_sbss_index == -1 && old_plt_index == -1) -- { -- old_bss_addr = OLD_SECTION_H (old_bss_index).sh_addr; -- old_bss_size = OLD_SECTION_H (old_bss_index).sh_size; -- old_bss_offset = OLD_SECTION_H (old_bss_index).sh_offset; -- new_data2_index = old_bss_index; -- } -- else if (old_plt_index != -1 -- && (old_sbss_index == -1 -- || (OLD_SECTION_H (old_sbss_index).sh_addr -- > OLD_SECTION_H (old_plt_index).sh_addr))) -+ /* Find the PT_LOAD header covering the highest address. This -+ segment will be where bss sections are located, past p_filesz. */ -+ old_bss_seg = 0; -+ for (n = old_file_h->e_phnum; --n >= 0; ) - { -- old_bss_addr = OLD_SECTION_H (old_plt_index).sh_addr; -- old_bss_size = OLD_SECTION_H (old_bss_index).sh_size -- + OLD_SECTION_H (old_plt_index).sh_size; -- if (old_sbss_index != -1) -- old_bss_size += OLD_SECTION_H (old_sbss_index).sh_size; -- old_bss_offset = OLD_SECTION_H (old_plt_index).sh_offset; -- new_data2_index = old_plt_index; -+ ElfW (Phdr) *seg = &OLD_PROGRAM_H (n); -+ if (seg->p_type == PT_LOAD -+ && (old_bss_seg == 0 -+ || seg->p_vaddr > old_bss_seg->p_vaddr)) -+ old_bss_seg = seg; - } -- else -+ -+ /* Note that old_bss_addr may be lower than the first bss section -+ address, since the section may need aligning. */ -+ old_bss_addr = old_bss_seg->p_vaddr + old_bss_seg->p_filesz; -+ old_bss_offset = old_bss_seg->p_offset + old_bss_seg->p_filesz; -+ old_bss_size = old_bss_seg->p_memsz - old_bss_seg->p_filesz; -+ -+ /* Find the first bss style section in the bss segment range. */ -+ old_bss_index = -1; -+ for (n = old_file_h->e_shnum; --n > 0; ) - { -- old_bss_addr = OLD_SECTION_H (old_sbss_index).sh_addr; -- old_bss_size = OLD_SECTION_H (old_bss_index).sh_size -- + OLD_SECTION_H (old_sbss_index).sh_size; -- old_bss_offset = OLD_SECTION_H (old_sbss_index).sh_offset; -- new_data2_index = old_sbss_index; -+ ElfW (Shdr) *shdr = &OLD_SECTION_H (n); -+ if (shdr->sh_type == SHT_NOBITS -+ && shdr->sh_addr >= old_bss_addr -+ && shdr->sh_addr + shdr->sh_size <= old_bss_addr + old_bss_size -+ && (old_bss_index == -1 -+ || OLD_SECTION_H (old_bss_index).sh_addr > shdr->sh_addr)) -+ old_bss_index = n; - } - -+ if (old_bss_index == -1) -+ fatal ("no bss section found"); -+ - /* Find the old .data section. Figure out parameters of - the new data2 and bss sections. */ - -@@ -762,13 +715,7 @@ unexec (const char *new_name, const char *old_name) - new_bss_addr = (ElfW (Addr)) new_break; - new_data2_addr = old_bss_addr; - new_data2_size = new_bss_addr - old_bss_addr; -- new_data2_offset = OLD_SECTION_H (old_data_index).sh_offset -- + (new_data2_addr - OLD_SECTION_H (old_data_index).sh_addr); -- /* This is the amount by which the sections following the bss sections -- must be shifted in the image. It can differ from new_data2_size if -- the end of the old .data section (and thus the offset of the .bss -- section) was unaligned. */ -- new_data2_incr = new_data2_size + (new_data2_offset - old_bss_offset); -+ new_data2_offset = old_bss_offset; - - #ifdef UNEXELF_DEBUG - fprintf (stderr, "old_bss_index %td\n", old_bss_index); -@@ -779,7 +726,6 @@ unexec (const char *new_name, const char *old_name) - DEBUG_LOG (new_data2_addr); - DEBUG_LOG (new_data2_size); - DEBUG_LOG (new_data2_offset); -- DEBUG_LOG (new_data2_incr); - #endif - - if (new_bss_addr < old_bss_addr + old_bss_size) -@@ -793,7 +739,7 @@ unexec (const char *new_name, const char *old_name) - if (new_file < 0) - fatal ("Can't creat (%s): %s", new_name, strerror (errno)); - -- new_file_size = old_file_size + old_file_h->e_shentsize + new_data2_incr; -+ new_file_size = old_file_size + old_file_h->e_shentsize + new_data2_size; - - if (ftruncate (new_file, new_file_size)) - fatal ("Can't ftruncate (%s): %s", new_name, strerror (errno)); -@@ -812,15 +758,15 @@ unexec (const char *new_name, const char *old_name) - /* Fix up file header. We'll add one section. Section header is - further away now. */ - -- new_file_h->e_shoff += new_data2_incr; -+ if (new_file_h->e_shoff >= old_bss_offset) -+ new_file_h->e_shoff += new_data2_size; - new_file_h->e_shnum += 1; - - /* Modify the e_shstrndx if necessary. */ - PATCH_INDEX (new_file_h->e_shstrndx); - -- new_program_h = (ElfW (Phdr) *) ((byte *) new_base + old_file_h->e_phoff); -- new_section_h = (ElfW (Shdr) *) -- ((byte *) new_base + old_file_h->e_shoff + new_data2_incr); -+ new_program_h = (ElfW (Phdr) *) ((byte *) new_base + new_file_h->e_phoff); -+ new_section_h = (ElfW (Shdr) *) ((byte *) new_base + new_file_h->e_shoff); - - memcpy (new_program_h, old_program_h, - old_file_h->e_phnum * old_file_h->e_phentsize); -@@ -832,65 +778,21 @@ unexec (const char *new_name, const char *old_name) - fprintf (stderr, "New section count %td\n", (ptrdiff_t) new_file_h->e_shnum); - #endif - -- /* Fix up a new program header. Extend the writable data segment so -- that the bss area is covered too. Find that segment by looking -- for a segment that ends just before the .bss area. Make sure -- that no segments are above the new .data2. Put a loop at the end -- to adjust the offset and address of any segment that is above -- data2, just in case we decide to allow this later. */ -+ /* Fix up program header. Extend the writable data segment so -+ that the bss area is covered too. */ - -- for (n = new_file_h->e_phnum; --n >= 0; ) -- { -- /* Compute maximum of all requirements for alignment of section. */ -- ElfW (Word) alignment = (NEW_PROGRAM_H (n)).p_align; -- if ((OLD_SECTION_H (old_bss_index)).sh_addralign > alignment) -- alignment = OLD_SECTION_H (old_bss_index).sh_addralign; -- --#ifdef __sgi -- /* According to r02kar@x4u2.desy.de (Karsten Kuenne) -- and oliva@gnu.org (Alexandre Oliva), on IRIX 5.2, we -- always get "Program segment above .bss" when dumping -- when the executable doesn't have an sbss section. */ -- if (old_sbss_index != -1) --#endif /* __sgi */ -- if (NEW_PROGRAM_H (n).p_vaddr + NEW_PROGRAM_H (n).p_filesz -- > (old_sbss_index == -1 -- ? old_bss_addr -- : round_up (old_bss_addr, alignment))) -- fatal ("Program segment above .bss in %s", old_name); -- -- if (NEW_PROGRAM_H (n).p_type == PT_LOAD -- && (round_up ((NEW_PROGRAM_H (n)).p_vaddr -- + (NEW_PROGRAM_H (n)).p_filesz, -- alignment) -- == round_up (old_bss_addr, alignment))) -- break; -- } -- if (n < 0) -- fatal ("Couldn't find segment next to .bss in %s", old_name); -- -- /* Make sure that the size includes any padding before the old .bss -- section. */ -- NEW_PROGRAM_H (n).p_filesz = new_bss_addr - NEW_PROGRAM_H (n).p_vaddr; -- NEW_PROGRAM_H (n).p_memsz = NEW_PROGRAM_H (n).p_filesz; -- --#if 0 /* Maybe allow section after data2 - does this ever happen? */ -- for (n = new_file_h->e_phnum; --n >= 0; ) -- { -- if (NEW_PROGRAM_H (n).p_vaddr -- && NEW_PROGRAM_H (n).p_vaddr >= new_data2_addr) -- NEW_PROGRAM_H (n).p_vaddr += new_data2_size - old_bss_size; -+ new_bss_seg = new_program_h + (old_bss_seg - old_program_h); -+ new_bss_seg->p_filesz = new_bss_addr - new_bss_seg->p_vaddr; -+ new_bss_seg->p_memsz = new_bss_seg->p_filesz; - -- if (NEW_PROGRAM_H (n).p_offset >= new_data2_offset) -- NEW_PROGRAM_H (n).p_offset += new_data2_incr; -- } --#endif -+ /* Copy over what we have in memory now for the bss area. */ -+ memcpy (new_base + new_data2_offset, (caddr_t) old_bss_addr, new_data2_size); - - /* Fix up section headers based on new .data2 section. Any section - whose offset or virtual address is after the new .data2 section -- gets its value adjusted. .bss size becomes zero and new address -- is set. data2 section header gets added by copying the existing -- .data header and modifying the offset, address and size. */ -+ gets its value adjusted. .bss size becomes zero. data2 section -+ header gets added by copying the existing .data header and -+ modifying the offset, address and size. */ - - /* Walk through all section headers, insert the new data2 section right - before the new bss section. */ -@@ -901,9 +803,7 @@ unexec (const char *new_name, const char *old_name) - ElfW (Shdr) *new_shdr = &NEW_SECTION_H (nn); - - /* If it is (s)bss section, insert the new data2 section before it. */ -- /* new_data2_index is the index of either old_sbss or old_bss, that was -- chosen as a section for new_data2. */ -- if (n == new_data2_index) -+ if (n == old_bss_index) - { - /* Steal the data section header for this data2 section. */ - memcpy (new_shdr, &OLD_SECTION_H (old_data_index), -@@ -912,68 +812,43 @@ unexec (const char *new_name, const char *old_name) - new_shdr->sh_addr = new_data2_addr; - new_shdr->sh_offset = new_data2_offset; - new_shdr->sh_size = new_data2_size; -- /* Use the bss section's alignment. This will assure that the -- new data2 section always be placed in the same spot as the old -- bss section by any other application. */ -- new_shdr->sh_addralign = old_shdr->sh_addralign; -- -- /* Now copy over what we have in the memory now. */ -- memcpy (new_shdr->sh_offset + new_base, -- (caddr_t) old_shdr->sh_addr, -- new_data2_size); -+ new_shdr->sh_addralign = 1; - nn++; - new_shdr++; - } - - memcpy (new_shdr, old_shdr, old_file_h->e_shentsize); - -- if (n == old_bss_index -- /* The new bss and sbss section's size is zero, and its file offset -- and virtual address should be off by NEW_DATA2_SIZE. */ -- || n == old_sbss_index || n == old_plt_index -- ) -+ if (new_shdr->sh_type == SHT_NOBITS -+ && new_shdr->sh_addr >= old_bss_addr -+ && (new_shdr->sh_addr + new_shdr->sh_size -+ <= old_bss_addr + old_bss_size)) - { -- /* NN should be `old_s?bss_index + 1' at this point. */ -- new_shdr->sh_offset = new_data2_offset + new_data2_size; -- new_shdr->sh_addr = new_data2_addr + new_data2_size; -- /* Let the new bss section address alignment be the same as the -- section address alignment followed the old bss section, so -- this section will be placed in exactly the same place. */ -- new_shdr->sh_addralign = OLD_SECTION_H (nn).sh_addralign; -+ /* SHT_NOBITS sections do not need a valid sh_offset, so it -+ might be incorrect. Write the correct value. */ -+ new_shdr->sh_offset = (new_shdr->sh_addr - new_bss_seg->p_vaddr -+ + new_bss_seg->p_offset); -+ -+ /* If this is was a SHT_NOBITS .plt section, then it is -+ probably a PowerPC PLT. If it is PowerPC64 ELFv1 then -+ glibc ld.so doesn't initialize the toc pointer word. A -+ non-zero toc pointer word can defeat Power7 thread safety -+ during lazy update of a PLT entry. This only matters if -+ emacs becomes multi-threaded. */ -+ if (strcmp (old_section_names + new_shdr->sh_name, ".plt") == 0) -+ memset (new_shdr->sh_offset + new_base, 0, new_shdr->sh_size); -+ -+ /* Set the new bss and sbss section's size to zero, because -+ we've already covered this address range by .data2. */ - new_shdr->sh_size = 0; - } - else - { - /* Any section that was originally placed after the .bss -- section should now be off by NEW_DATA2_INCR. If a -- section overlaps the .bss section, consider it to be -- placed after the .bss section. Overlap can occur if the -- section just before .bss has less-strict alignment; this -- was observed between .symtab and .bss on Solaris 2.5.1 -- (sparc) with GCC snapshot 960602. -+ section should now be off by NEW_DATA2_SIZE. */ - --> dump -h temacs -- --temacs: -- -- **** SECTION HEADER TABLE **** --[No] Type Flags Addr Offset Size Name -- Link Info Adralgn Entsize -- --[22] 1 3 0x335150 0x315150 0x4 .data.rel.local -- 0 0 0x4 0 -- --[23] 8 3 0x335158 0x315158 0x42720 .bss -- 0 0 0x8 0 -- --[24] 2 0 0 0x315154 0x1c9d0 .symtab -- 25 1709 0x4 0x10 -- */ -- -- if (new_shdr->sh_offset >= old_bss_offset -- || (new_shdr->sh_offset + new_shdr->sh_size -- > new_data2_offset)) -- new_shdr->sh_offset += new_data2_incr; -+ if (new_shdr->sh_offset >= old_bss_offset) -+ new_shdr->sh_offset += new_data2_size; - - /* Any section that was originally placed after the section - header table should now be off by the size of one section -@@ -993,23 +868,13 @@ temacs: - && new_shdr->sh_type != SHT_DYNSYM) - PATCH_INDEX (new_shdr->sh_info); - -- if (old_sbss_index != -1) -- if (!strcmp (old_section_names + new_shdr->sh_name, ".sbss")) -- { -- new_shdr->sh_offset = -- round_up (new_shdr->sh_offset, -- new_shdr->sh_addralign); -- new_shdr->sh_type = SHT_PROGBITS; -- } -- - /* Now, start to copy the content of sections. */ - if (new_shdr->sh_type == SHT_NULL - || new_shdr->sh_type == SHT_NOBITS) - continue; - -- /* Write out the sections. .data and .data1 (and data2, called -- ".data" in the strings table) get copied from the current process -- instead of the old file. */ -+ /* Some sections are copied from the current process instead of -+ the old file. */ - if (!strcmp (old_section_names + new_shdr->sh_name, ".data") - || !strcmp (old_section_names + new_shdr->sh_name, ".sdata") - || !strcmp (old_section_names + new_shdr->sh_name, ".lit4") -@@ -1038,8 +903,7 @@ temacs: - || !strcmp (old_section_names + new_shdr->sh_name, ".got") - #endif - || !strcmp (old_section_names + new_shdr->sh_name, ".sdata1") -- || !strcmp (old_section_names + new_shdr->sh_name, ".data1") -- || !strcmp (old_section_names + new_shdr->sh_name, ".sbss")) -+ || !strcmp (old_section_names + new_shdr->sh_name, ".data1")) - src = (caddr_t) old_shdr->sh_addr; - else - src = old_base + old_shdr->sh_offset; diff --git a/emacs-24-0017-ELF-unexec-Don-t-insert-a-new-section.patch b/emacs-24-0017-ELF-unexec-Don-t-insert-a-new-section.patch deleted file mode 100644 index 056252c..0000000 --- a/emacs-24-0017-ELF-unexec-Don-t-insert-a-new-section.patch +++ /dev/null @@ -1,705 +0,0 @@ -From ee3beb72e75cdffa08b99e2f9d4829665feccb18 Mon Sep 17 00:00:00 2001 -From: Alan Modra -Date: Sun, 8 Nov 2015 09:29:00 -0800 -Subject: ELF unexec: Don't insert a new section - -Emacs should build on ppc64el. A problem with the bss has been fixed. - -This upstream patch has been added [8/10]: - - ELF unexec: Don't insert a new section - - Reuse the .bss section instead, making it SHT_PROGBITS. This way we - don't need to mess with symbol st_shndx, or section sh_link and - sh_info. - - This does lead to eu-elflint complaints about symbols defined in .bss - with a needed version, because normally it is undefined symbols that - have needed versions; Defined symbols have version definitions. - The exception is symbols defined by the linker in .dynbss for - variables copied from a shared library in order to avoid text - relocations, with copy relocs to copy their initial values from the - shared library. These symbols are both defined and have needed - versions, and eu-elflink only expects to see them in SHT_NOBITS - sections. Of course there is no real problem with having such symbols - in SHT_PROGBITS sections. glibc ld.so handles them fine. - - * unexelf.c: Delete outdated comments. - (PATCH_INDEX): Delete. - (find_section): Delete. - (unexec): Don't add a new section. Instead reuse the last bss - section, extending it to cover dumped data. Make bss sections - SHT_PROGBITS. Remove all patching of sh_link, sh_info and - st_shndx. Rename bss sections. - -Origin: upstream, commit: 3008c521740c5ad46a4eaf343b438b02c25e4de5 -Bug: http://debbugs.gnu.org/20614 -Bug-Debian: http://bugs.debian.org/808347 -Added-by: Rob Browning ---- - src/unexelf.c | 524 ++++++---------------------------------------------------- - 1 file changed, 50 insertions(+), 474 deletions(-) - -diff --git a/src/unexelf.c b/src/unexelf.c -index c659f3e..9279c76 100644 ---- a/src/unexelf.c -+++ b/src/unexelf.c -@@ -40,347 +40,6 @@ what you give them. Help stamp out software-hoarding! */ - * On some machines, an existing old_name file is required. - * - */ -- --/* Even more heavily modified by james@bigtex.cactus.org of Dell Computer Co. -- * ELF support added. -- * -- * Basic theory: the data space of the running process needs to be -- * dumped to the output file. Normally we would just enlarge the size -- * of .data, scooting everything down. But we can't do that in ELF, -- * because there is often something between the .data space and the -- * .bss space. -- * -- * In the temacs dump below, notice that the Global Offset Table -- * (.got) and the Dynamic link data (.dynamic) come between .data1 and -- * .bss. It does not work to overlap .data with these fields. -- * -- * The solution is to create a new .data segment. This segment is -- * filled with data from the current process. Since the contents of -- * various sections refer to sections by index, the new .data segment -- * is made the last in the table to avoid changing any existing index. -- -- * This is an example of how the section headers are changed. "Addr" -- * is a process virtual address. "Offset" is a file offset. -- --raid:/nfs/raid/src/dist-18.56/src> dump -h temacs -- --temacs: -- -- **** SECTION HEADER TABLE **** -- [No] Type Flags Addr Offset Size Name -- Link Info Adralgn Entsize -- -- [1] 1 2 0x80480d4 0xd4 0x13 .interp -- 0 0 0x1 0 -- -- [2] 5 2 0x80480e8 0xe8 0x388 .hash -- 3 0 0x4 0x4 -- -- [3] 11 2 0x8048470 0x470 0x7f0 .dynsym -- 4 1 0x4 0x10 -- -- [4] 3 2 0x8048c60 0xc60 0x3ad .dynstr -- 0 0 0x1 0 -- -- [5] 9 2 0x8049010 0x1010 0x338 .rel.plt -- 3 7 0x4 0x8 -- -- [6] 1 6 0x8049348 0x1348 0x3 .init -- 0 0 0x4 0 -- -- [7] 1 6 0x804934c 0x134c 0x680 .plt -- 0 0 0x4 0x4 -- -- [8] 1 6 0x80499cc 0x19cc 0x3c56f .text -- 0 0 0x4 0 -- -- [9] 1 6 0x8085f3c 0x3df3c 0x3 .fini -- 0 0 0x4 0 -- -- [10] 1 2 0x8085f40 0x3df40 0x69c .rodata -- 0 0 0x4 0 -- -- [11] 1 2 0x80865dc 0x3e5dc 0xd51 .rodata1 -- 0 0 0x4 0 -- -- [12] 1 3 0x8088330 0x3f330 0x20afc .data -- 0 0 0x4 0 -- -- [13] 1 3 0x80a8e2c 0x5fe2c 0x89d .data1 -- 0 0 0x4 0 -- -- [14] 1 3 0x80a96cc 0x606cc 0x1a8 .got -- 0 0 0x4 0x4 -- -- [15] 6 3 0x80a9874 0x60874 0x80 .dynamic -- 4 0 0x4 0x8 -- -- [16] 8 3 0x80a98f4 0x608f4 0x449c .bss -- 0 0 0x4 0 -- -- [17] 2 0 0 0x608f4 0x9b90 .symtab -- 18 371 0x4 0x10 -- -- [18] 3 0 0 0x6a484 0x8526 .strtab -- 0 0 0x1 0 -- -- [19] 3 0 0 0x729aa 0x93 .shstrtab -- 0 0 0x1 0 -- -- [20] 1 0 0 0x72a3d 0x68b7 .comment -- 0 0 0x1 0 -- -- raid:/nfs/raid/src/dist-18.56/src> dump -h xemacs -- -- xemacs: -- -- **** SECTION HEADER TABLE **** -- [No] Type Flags Addr Offset Size Name -- Link Info Adralgn Entsize -- -- [1] 1 2 0x80480d4 0xd4 0x13 .interp -- 0 0 0x1 0 -- -- [2] 5 2 0x80480e8 0xe8 0x388 .hash -- 3 0 0x4 0x4 -- -- [3] 11 2 0x8048470 0x470 0x7f0 .dynsym -- 4 1 0x4 0x10 -- -- [4] 3 2 0x8048c60 0xc60 0x3ad .dynstr -- 0 0 0x1 0 -- -- [5] 9 2 0x8049010 0x1010 0x338 .rel.plt -- 3 7 0x4 0x8 -- -- [6] 1 6 0x8049348 0x1348 0x3 .init -- 0 0 0x4 0 -- -- [7] 1 6 0x804934c 0x134c 0x680 .plt -- 0 0 0x4 0x4 -- -- [8] 1 6 0x80499cc 0x19cc 0x3c56f .text -- 0 0 0x4 0 -- -- [9] 1 6 0x8085f3c 0x3df3c 0x3 .fini -- 0 0 0x4 0 -- -- [10] 1 2 0x8085f40 0x3df40 0x69c .rodata -- 0 0 0x4 0 -- -- [11] 1 2 0x80865dc 0x3e5dc 0xd51 .rodata1 -- 0 0 0x4 0 -- -- [12] 1 3 0x8088330 0x3f330 0x20afc .data -- 0 0 0x4 0 -- -- [13] 1 3 0x80a8e2c 0x5fe2c 0x89d .data1 -- 0 0 0x4 0 -- -- [14] 1 3 0x80a96cc 0x606cc 0x1a8 .got -- 0 0 0x4 0x4 -- -- [15] 6 3 0x80a9874 0x60874 0x80 .dynamic -- 4 0 0x4 0x8 -- -- [16] 8 3 0x80c6800 0x7d800 0 .bss -- 0 0 0x4 0 -- -- [17] 2 0 0 0x7d800 0x9b90 .symtab -- 18 371 0x4 0x10 -- -- [18] 3 0 0 0x87390 0x8526 .strtab -- 0 0 0x1 0 -- -- [19] 3 0 0 0x8f8b6 0x93 .shstrtab -- 0 0 0x1 0 -- -- [20] 1 0 0 0x8f949 0x68b7 .comment -- 0 0 0x1 0 -- -- [21] 1 3 0x80a98f4 0x608f4 0x1cf0c .data -- 0 0 0x4 0 -- -- * This is an example of how the file header is changed. "Shoff" is -- * the section header offset within the file. Since that table is -- * after the new .data section, it is moved. "Shnum" is the number of -- * sections, which we increment. -- * -- * "Phoff" is the file offset to the program header. "Phentsize" and -- * "Shentsz" are the program and section header entries sizes respectively. -- * These can be larger than the apparent struct sizes. -- -- raid:/nfs/raid/src/dist-18.56/src> dump -f temacs -- -- temacs: -- -- **** ELF HEADER **** -- Class Data Type Machine Version -- Entry Phoff Shoff Flags Ehsize -- Phentsize Phnum Shentsz Shnum Shstrndx -- -- 1 1 2 3 1 -- 0x80499cc 0x34 0x792f4 0 0x34 -- 0x20 5 0x28 21 19 -- -- raid:/nfs/raid/src/dist-18.56/src> dump -f xemacs -- -- xemacs: -- -- **** ELF HEADER **** -- Class Data Type Machine Version -- Entry Phoff Shoff Flags Ehsize -- Phentsize Phnum Shentsz Shnum Shstrndx -- -- 1 1 2 3 1 -- 0x80499cc 0x34 0x96200 0 0x34 -- 0x20 5 0x28 22 19 -- -- * These are the program headers. "Offset" is the file offset to the -- * segment. "Vaddr" is the memory load address. "Filesz" is the -- * segment size as it appears in the file, and "Memsz" is the size in -- * memory. Below, the third segment is the code and the fourth is the -- * data: the difference between Filesz and Memsz is .bss -- -- raid:/nfs/raid/src/dist-18.56/src> dump -o temacs -- -- temacs: -- ***** PROGRAM EXECUTION HEADER ***** -- Type Offset Vaddr Paddr -- Filesz Memsz Flags Align -- -- 6 0x34 0x8048034 0 -- 0xa0 0xa0 5 0 -- -- 3 0xd4 0 0 -- 0x13 0 4 0 -- -- 1 0x34 0x8048034 0 -- 0x3f2f9 0x3f2f9 5 0x1000 -- -- 1 0x3f330 0x8088330 0 -- 0x215c4 0x25a60 7 0x1000 -- -- 2 0x60874 0x80a9874 0 -- 0x80 0 7 0 -- -- raid:/nfs/raid/src/dist-18.56/src> dump -o xemacs -- -- xemacs: -- ***** PROGRAM EXECUTION HEADER ***** -- Type Offset Vaddr Paddr -- Filesz Memsz Flags Align -- -- 6 0x34 0x8048034 0 -- 0xa0 0xa0 5 0 -- -- 3 0xd4 0 0 -- 0x13 0 4 0 -- -- 1 0x34 0x8048034 0 -- 0x3f2f9 0x3f2f9 5 0x1000 -- -- 1 0x3f330 0x8088330 0 -- 0x3e4d0 0x3e4d0 7 0x1000 -- -- 2 0x60874 0x80a9874 0 -- 0x80 0 7 0 -- -- -- */ -- --/* Modified by wtien@urbana.mcd.mot.com of Motorola Inc. -- * -- * The above mechanism does not work if the unexeced ELF file is being -- * re-layout by other applications (such as `strip'). All the applications -- * that re-layout the internal of ELF will layout all sections in ascending -- * order of their file offsets. After the re-layout, the data2 section will -- * still be the LAST section in the section header vector, but its file offset -- * is now being pushed far away down, and causes part of it not to be mapped -- * in (ie. not covered by the load segment entry in PHDR vector), therefore -- * causes the new binary to fail. -- * -- * The solution is to modify the unexec algorithm to insert the new data2 -- * section header right before the new bss section header, so their file -- * offsets will be in the ascending order. Since some of the section's (all -- * sections AFTER the bss section) indexes are now changed, we also need to -- * modify some fields to make them point to the right sections. This is done -- * by macro PATCH_INDEX. All the fields that need to be patched are: -- * -- * 1. ELF header e_shstrndx field. -- * 2. section header sh_link and sh_info field. -- * 3. symbol table entry st_shndx field. -- * -- * The above example now should look like: -- -- **** SECTION HEADER TABLE **** -- [No] Type Flags Addr Offset Size Name -- Link Info Adralgn Entsize -- -- [1] 1 2 0x80480d4 0xd4 0x13 .interp -- 0 0 0x1 0 -- -- [2] 5 2 0x80480e8 0xe8 0x388 .hash -- 3 0 0x4 0x4 -- -- [3] 11 2 0x8048470 0x470 0x7f0 .dynsym -- 4 1 0x4 0x10 -- -- [4] 3 2 0x8048c60 0xc60 0x3ad .dynstr -- 0 0 0x1 0 -- -- [5] 9 2 0x8049010 0x1010 0x338 .rel.plt -- 3 7 0x4 0x8 -- -- [6] 1 6 0x8049348 0x1348 0x3 .init -- 0 0 0x4 0 -- -- [7] 1 6 0x804934c 0x134c 0x680 .plt -- 0 0 0x4 0x4 -- -- [8] 1 6 0x80499cc 0x19cc 0x3c56f .text -- 0 0 0x4 0 -- -- [9] 1 6 0x8085f3c 0x3df3c 0x3 .fini -- 0 0 0x4 0 -- -- [10] 1 2 0x8085f40 0x3df40 0x69c .rodata -- 0 0 0x4 0 -- -- [11] 1 2 0x80865dc 0x3e5dc 0xd51 .rodata1 -- 0 0 0x4 0 -- -- [12] 1 3 0x8088330 0x3f330 0x20afc .data -- 0 0 0x4 0 -- -- [13] 1 3 0x80a8e2c 0x5fe2c 0x89d .data1 -- 0 0 0x4 0 -- -- [14] 1 3 0x80a96cc 0x606cc 0x1a8 .got -- 0 0 0x4 0x4 -- -- [15] 6 3 0x80a9874 0x60874 0x80 .dynamic -- 4 0 0x4 0x8 -- -- [16] 1 3 0x80a98f4 0x608f4 0x1cf0c .data -- 0 0 0x4 0 -- -- [17] 8 3 0x80c6800 0x7d800 0 .bss -- 0 0 0x4 0 -- -- [18] 2 0 0 0x7d800 0x9b90 .symtab -- 19 371 0x4 0x10 -- -- [19] 3 0 0 0x87390 0x8526 .strtab -- 0 0 0x1 0 -- -- [20] 3 0 0 0x8f8b6 0x93 .shstrtab -- 0 0 0x1 0 -- -- [21] 1 0 0 0x8f949 0x68b7 .comment -- 0 0 0x1 0 -- -- */ - - /* We do not use mmap because that fails with NFS. - Instead we read the whole file, modify it, and write it out. */ -@@ -552,45 +211,15 @@ entry_address (void *section_h, ptrdiff_t idx, ptrdiff_t entsize) - #define NEW_PROGRAM_H(n) \ - (*(ElfW (Phdr) *) entry_address (new_program_h, n, new_file_h->e_phentsize)) - --#define PATCH_INDEX(n) ((n) += old_bss_index <= (n)) - typedef unsigned char byte; - --/* Return the index of the section named NAME. -- SECTION_NAMES, FILE_NAME and FILE_H give information -- about the file we are looking in. -- -- If we don't find the section NAME, that is a fatal error -- if NOERROR is false; return -1 if NOERROR is true. */ -- --static ptrdiff_t --find_section (const char *name, const char *section_names, const char *file_name, -- ElfW (Ehdr) *old_file_h, ElfW (Shdr) *old_section_h, -- bool noerror) --{ -- ptrdiff_t idx; -- -- for (idx = 1; idx < old_file_h->e_shnum; idx++) -- { -- char const *found_name = section_names + OLD_SECTION_H (idx).sh_name; --#ifdef UNEXELF_DEBUG -- fprintf (stderr, "Looking for %s - found %s\n", name, found_name); --#endif -- if (strcmp (name, found_name) == 0) -- return idx; -- } -- -- if (! noerror) -- fatal ("Can't find %s in %s", name, file_name); -- return -1; --} -- - /* **************************************************************** - * unexec - * - * driving logic. - * -- * In ELF, this works by replacing the old .bss section with a new -- * .data section, and inserting an empty .bss immediately afterwards. -+ * In ELF, this works by replacing the old bss SHT_NOBITS section with -+ * a new, larger, SHT_PROGBITS section. - * - */ - void -@@ -615,18 +244,16 @@ unexec (const char *new_name, const char *old_name) - ElfW (Phdr) *old_program_h, *new_program_h; - ElfW (Shdr) *old_section_h, *new_section_h; - -- /* Point to the section name table in the old file. */ -- char *old_section_names; -+ /* Point to the section name table. */ -+ char *old_section_names, *new_section_names; - - ElfW (Phdr) *old_bss_seg, *new_bss_seg; - ElfW (Addr) old_bss_addr, new_bss_addr; - ElfW (Word) old_bss_size, new_data2_size; -- ElfW (Off) new_data2_offset; -- ElfW (Addr) new_data2_addr; -- ElfW (Off) old_bss_offset; -+ ElfW (Off) old_bss_offset, new_data2_offset; - -- ptrdiff_t n, nn; -- ptrdiff_t old_bss_index, old_data_index; -+ ptrdiff_t n; -+ ptrdiff_t old_bss_index; - struct stat stat_buf; - off_t old_file_size; - int mask; -@@ -689,7 +316,7 @@ unexec (const char *new_name, const char *old_name) - old_bss_offset = old_bss_seg->p_offset + old_bss_seg->p_filesz; - old_bss_size = old_bss_seg->p_memsz - old_bss_seg->p_filesz; - -- /* Find the first bss style section in the bss segment range. */ -+ /* Find the last bss style section in the bss segment range. */ - old_bss_index = -1; - for (n = old_file_h->e_shnum; --n > 0; ) - { -@@ -698,22 +325,15 @@ unexec (const char *new_name, const char *old_name) - && shdr->sh_addr >= old_bss_addr - && shdr->sh_addr + shdr->sh_size <= old_bss_addr + old_bss_size - && (old_bss_index == -1 -- || OLD_SECTION_H (old_bss_index).sh_addr > shdr->sh_addr)) -+ || OLD_SECTION_H (old_bss_index).sh_addr < shdr->sh_addr)) - old_bss_index = n; - } - - if (old_bss_index == -1) - fatal ("no bss section found"); - -- /* Find the old .data section. Figure out parameters of -- the new data2 and bss sections. */ -- -- old_data_index = find_section (".data", old_section_names, -- old_name, old_file_h, old_section_h, 0); -- - new_break = sbrk (0); - new_bss_addr = (ElfW (Addr)) new_break; -- new_data2_addr = old_bss_addr; - new_data2_size = new_bss_addr - old_bss_addr; - new_data2_offset = old_bss_offset; - -@@ -723,7 +343,6 @@ unexec (const char *new_name, const char *old_name) - DEBUG_LOG (old_bss_size); - DEBUG_LOG (old_bss_offset); - DEBUG_LOG (new_bss_addr); -- DEBUG_LOG (new_data2_addr); - DEBUG_LOG (new_data2_size); - DEBUG_LOG (new_data2_offset); - #endif -@@ -739,7 +358,7 @@ unexec (const char *new_name, const char *old_name) - if (new_file < 0) - fatal ("Can't creat (%s): %s", new_name, strerror (errno)); - -- new_file_size = old_file_size + old_file_h->e_shentsize + new_data2_size; -+ new_file_size = old_file_size + new_data2_size; - - if (ftruncate (new_file, new_file_size)) - fatal ("Can't ftruncate (%s): %s", new_name, strerror (errno)); -@@ -755,21 +374,18 @@ unexec (const char *new_name, const char *old_name) - new_file_h = (ElfW (Ehdr) *) new_base; - memcpy (new_file_h, old_file_h, old_file_h->e_ehsize); - -- /* Fix up file header. We'll add one section. Section header is -- further away now. */ -+ /* Fix up file header. Section header is further away now. */ - - if (new_file_h->e_shoff >= old_bss_offset) - new_file_h->e_shoff += new_data2_size; -- new_file_h->e_shnum += 1; -- -- /* Modify the e_shstrndx if necessary. */ -- PATCH_INDEX (new_file_h->e_shstrndx); - - new_program_h = (ElfW (Phdr) *) ((byte *) new_base + new_file_h->e_phoff); - new_section_h = (ElfW (Shdr) *) ((byte *) new_base + new_file_h->e_shoff); - - memcpy (new_program_h, old_program_h, - old_file_h->e_phnum * old_file_h->e_phentsize); -+ memcpy (new_section_h, old_section_h, -+ old_file_h->e_shnum * old_file_h->e_shentsize); - - #ifdef UNEXELF_DEBUG - DEBUG_LOG (old_file_h->e_shoff); -@@ -788,42 +404,21 @@ unexec (const char *new_name, const char *old_name) - /* Copy over what we have in memory now for the bss area. */ - memcpy (new_base + new_data2_offset, (caddr_t) old_bss_addr, new_data2_size); - -- /* Fix up section headers based on new .data2 section. Any section -- whose offset or virtual address is after the new .data2 section -- gets its value adjusted. .bss size becomes zero. data2 section -- header gets added by copying the existing .data header and -- modifying the offset, address and size. */ -- -- /* Walk through all section headers, insert the new data2 section right -- before the new bss section. */ -- for (n = 1, nn = 1; n < old_file_h->e_shnum; n++, nn++) -+ /* Walk through all section headers, copying data and updating. */ -+ for (n = 1; n < old_file_h->e_shnum; n++) - { - caddr_t src; - ElfW (Shdr) *old_shdr = &OLD_SECTION_H (n); -- ElfW (Shdr) *new_shdr = &NEW_SECTION_H (nn); -- -- /* If it is (s)bss section, insert the new data2 section before it. */ -- if (n == old_bss_index) -- { -- /* Steal the data section header for this data2 section. */ -- memcpy (new_shdr, &OLD_SECTION_H (old_data_index), -- new_file_h->e_shentsize); -- -- new_shdr->sh_addr = new_data2_addr; -- new_shdr->sh_offset = new_data2_offset; -- new_shdr->sh_size = new_data2_size; -- new_shdr->sh_addralign = 1; -- nn++; -- new_shdr++; -- } -- -- memcpy (new_shdr, old_shdr, old_file_h->e_shentsize); -+ ElfW (Shdr) *new_shdr = &NEW_SECTION_H (n); - - if (new_shdr->sh_type == SHT_NOBITS - && new_shdr->sh_addr >= old_bss_addr - && (new_shdr->sh_addr + new_shdr->sh_size - <= old_bss_addr + old_bss_size)) - { -+ /* This section now has file backing. */ -+ new_shdr->sh_type = SHT_PROGBITS; -+ - /* SHT_NOBITS sections do not need a valid sh_offset, so it - might be incorrect. Write the correct value. */ - new_shdr->sh_offset = (new_shdr->sh_addr - new_bss_seg->p_vaddr -@@ -838,35 +433,20 @@ unexec (const char *new_name, const char *old_name) - if (strcmp (old_section_names + new_shdr->sh_name, ".plt") == 0) - memset (new_shdr->sh_offset + new_base, 0, new_shdr->sh_size); - -- /* Set the new bss and sbss section's size to zero, because -- we've already covered this address range by .data2. */ -- new_shdr->sh_size = 0; -- } -- else -- { -- /* Any section that was originally placed after the .bss -- section should now be off by NEW_DATA2_SIZE. */ -+ /* Extend the size of the last bss section to cover dumped -+ data. */ -+ if (n == old_bss_index) -+ new_shdr->sh_size = new_bss_addr - new_shdr->sh_addr; - -- if (new_shdr->sh_offset >= old_bss_offset) -- new_shdr->sh_offset += new_data2_size; -- -- /* Any section that was originally placed after the section -- header table should now be off by the size of one section -- header table entry. */ -- if (new_shdr->sh_offset > new_file_h->e_shoff) -- new_shdr->sh_offset += new_file_h->e_shentsize; -+ /* We have already copied this section from the current -+ process. */ -+ continue; - } - -- /* If any section hdr refers to the section after the new .data -- section, make it refer to next one because we have inserted -- a new section in between. */ -- -- PATCH_INDEX (new_shdr->sh_link); -- /* For symbol tables, info is a symbol table index, -- so don't change it. */ -- if (new_shdr->sh_type != SHT_SYMTAB -- && new_shdr->sh_type != SHT_DYNSYM) -- PATCH_INDEX (new_shdr->sh_info); -+ /* Any section that was originally placed after the .bss -+ section should now be offset by NEW_DATA2_SIZE. */ -+ if (new_shdr->sh_offset >= old_bss_offset) -+ new_shdr->sh_offset += new_data2_size; - - /* Now, start to copy the content of sections. */ - if (new_shdr->sh_type == SHT_NULL -@@ -982,24 +562,6 @@ unexec (const char *new_name, const char *old_name) - } - } - #endif /* __sgi */ -- -- /* Patch st_shndx field of symbol table. */ -- if (new_shdr->sh_type == SHT_SYMTAB -- || new_shdr->sh_type == SHT_DYNSYM) -- { -- ptrdiff_t num = new_shdr->sh_size / new_shdr->sh_entsize; -- ElfW (Sym) *sym = (ElfW (Sym) *) (new_shdr->sh_offset + new_base); -- for (; num--; sym++) -- { -- if (sym->st_shndx == SHN_XINDEX) -- fatal ("SHT_SYMTAB_SHNDX unsupported"); -- if (sym->st_shndx == SHN_UNDEF -- || sym->st_shndx >= SHN_LORESERVE) -- continue; -- -- PATCH_INDEX (sym->st_shndx); -- } -- } - } - - /* Update the symbol values of _edata and _end. */ -@@ -1043,15 +605,10 @@ unexec (const char *new_name, const char *old_name) - ElfW (Shdr) *new_shdr = &NEW_SECTION_H (symp->st_shndx); - if (new_shdr->sh_type != SHT_NOBITS) - { -- ElfW (Shdr) *old_shdr; -+ ElfW (Shdr) *old_shdr = &OLD_SECTION_H (symp->st_shndx); - ptrdiff_t reladdr = symp->st_value - new_shdr->sh_addr; - ptrdiff_t newoff = reladdr + new_shdr->sh_offset; - -- /* "Unpatch" index. */ -- nn = symp->st_shndx; -- if (nn > old_bss_index) -- nn--; -- old_shdr = &OLD_SECTION_H (nn); - if (old_shdr->sh_type == SHT_NOBITS) - memset (new_base + newoff, 0, symp->st_size); - else -@@ -1066,6 +623,25 @@ unexec (const char *new_name, const char *old_name) - } - } - -+ /* Modify the names of sections we changed from SHT_NOBITS to -+ SHT_PROGBITS. This is really just cosmetic, but some tools that -+ (wrongly) operate on section names rather than types might be -+ confused by a SHT_PROGBITS .bss section. */ -+ new_section_names = ((char *) new_base -+ + NEW_SECTION_H (new_file_h->e_shstrndx).sh_offset); -+ for (n = new_file_h->e_shnum; 0 < --n; ) -+ { -+ ElfW (Shdr) *old_shdr = &OLD_SECTION_H (n); -+ ElfW (Shdr) *new_shdr = &NEW_SECTION_H (n); -+ -+ /* Replace the leading '.' with ','. When .shstrtab is string -+ merged this will rename both .bss and .rela.bss to ,bss and -+ .rela,bss. */ -+ if (old_shdr->sh_type == SHT_NOBITS -+ && new_shdr->sh_type == SHT_PROGBITS) -+ *(new_section_names + new_shdr->sh_name) = ','; -+ } -+ - /* This loop seeks out relocation sections for the data section, so - that it can undo relocations performed by the runtime loader. */ - for (n = new_file_h->e_shnum; 0 < --n; ) diff --git a/emacs-24-0018-src-unexelf.c-NEW_PROGRAM_H-Remove-unused-macro-Bug-.patch b/emacs-24-0018-src-unexelf.c-NEW_PROGRAM_H-Remove-unused-macro-Bug-.patch deleted file mode 100644 index 1afab78..0000000 --- a/emacs-24-0018-src-unexelf.c-NEW_PROGRAM_H-Remove-unused-macro-Bug-.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 9b52726df50cc9b4fdfce2ed1dc114311dc60a93 Mon Sep 17 00:00:00 2001 -From: Paul Eggert -Date: Sun, 8 Nov 2015 09:36:14 -0800 -Subject: * src/unexelf.c (NEW_PROGRAM_H): Remove unused macro (Bug#20614). - -Emacs should build on ppc64el. A problem with the bss has been fixed. - -This upstream patch has been added [9/10]: - - * src/unexelf.c (NEW_PROGRAM_H): Remove unused macro (Bug#20614). - -Origin: upstream, commit: 2ce0c0674eba9179ba57c537e387bc3f7b0e5b63 -Bug: http://debbugs.gnu.org/20614 -Bug-Debian: http://bugs.debian.org/808347 -Added-by: Rob Browning ---- - src/unexelf.c | 4 +--- - 1 file changed, 1 insertion(+), 3 deletions(-) - -diff --git a/src/unexelf.c b/src/unexelf.c -index 9279c76..f2462d1 100644 ---- a/src/unexelf.c -+++ b/src/unexelf.c -@@ -208,8 +208,6 @@ entry_address (void *section_h, ptrdiff_t idx, ptrdiff_t entsize) - (*(ElfW (Shdr) *) entry_address (new_section_h, n, new_file_h->e_shentsize)) - #define OLD_PROGRAM_H(n) \ - (*(ElfW (Phdr) *) entry_address (old_program_h, n, old_file_h->e_phentsize)) --#define NEW_PROGRAM_H(n) \ -- (*(ElfW (Phdr) *) entry_address (new_program_h, n, new_file_h->e_phentsize)) - - typedef unsigned char byte; - -@@ -250,7 +248,7 @@ unexec (const char *new_name, const char *old_name) - ElfW (Phdr) *old_bss_seg, *new_bss_seg; - ElfW (Addr) old_bss_addr, new_bss_addr; - ElfW (Word) old_bss_size, new_data2_size; -- ElfW (Off) old_bss_offset, new_data2_offset; -+ ElfW (Off) old_bss_offset, new_data2_offset; - - ptrdiff_t n; - ptrdiff_t old_bss_index; diff --git a/emacs-24-0019-ELF-unexec-align-section-header.patch b/emacs-24-0019-ELF-unexec-align-section-header.patch deleted file mode 100644 index 5ef8bc1..0000000 --- a/emacs-24-0019-ELF-unexec-align-section-header.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 0de7316751e94c29aeb4b75731ac6e8c9eba77e6 Mon Sep 17 00:00:00 2001 -From: Paul Eggert -Date: Mon, 16 Nov 2015 17:48:08 -0800 -Subject: ELF unexec: align section header -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Emacs should build on ppc64el. A problem with the bss has been fixed. - -This upstream patch has been added [10/10]: - - ELF unexec: align section header - - This ports the recent unexelf.c changes to Fedora x86-64 - when configured with GCC’s -fsanitize=undefined option. - * src/unexelf.c (unexec): Align new_data2_size to a multiple - of ElfW (Shdr)’s alignment, so that NEW_SECTION_H returns a - pointer aligned appropriately for its type. - -Origin: upstream, commit: c9fd597a4cffcae873b25381ee8cc755f0debe95 -Bug: http://debbugs.gnu.org/20614 -Bug-Debian: http://bugs.debian.org/808347 -Added-by: Rob Browning ---- - src/unexelf.c | 11 ++++++++--- - 1 file changed, 8 insertions(+), 3 deletions(-) - -diff --git a/src/unexelf.c b/src/unexelf.c -index f2462d1..c69be0d 100644 ---- a/src/unexelf.c -+++ b/src/unexelf.c -@@ -247,7 +247,7 @@ unexec (const char *new_name, const char *old_name) - - ElfW (Phdr) *old_bss_seg, *new_bss_seg; - ElfW (Addr) old_bss_addr, new_bss_addr; -- ElfW (Word) old_bss_size, new_data2_size; -+ ElfW (Word) old_bss_size, bss_size_growth, new_data2_size; - ElfW (Off) old_bss_offset, new_data2_offset; - - ptrdiff_t n; -@@ -332,7 +332,11 @@ unexec (const char *new_name, const char *old_name) - - new_break = sbrk (0); - new_bss_addr = (ElfW (Addr)) new_break; -- new_data2_size = new_bss_addr - old_bss_addr; -+ bss_size_growth = new_bss_addr - old_bss_addr; -+ new_data2_size = bss_size_growth; -+ new_data2_size += alignof (ElfW (Shdr)) - 1; -+ new_data2_size -= new_data2_size % alignof (ElfW (Shdr)); -+ - new_data2_offset = old_bss_offset; - - #ifdef UNEXELF_DEBUG -@@ -400,7 +404,8 @@ unexec (const char *new_name, const char *old_name) - new_bss_seg->p_memsz = new_bss_seg->p_filesz; - - /* Copy over what we have in memory now for the bss area. */ -- memcpy (new_base + new_data2_offset, (caddr_t) old_bss_addr, new_data2_size); -+ memcpy (new_base + new_data2_offset, (caddr_t) old_bss_addr, -+ bss_size_growth); - - /* Walk through all section headers, copying data and updating. */ - for (n = 1; n < old_file_h->e_shnum; n++) diff --git a/emacs-24-fix-missing-gtk-icons.patch b/emacs-24-fix-missing-gtk-icons.patch deleted file mode 100644 index c114afa..0000000 --- a/emacs-24-fix-missing-gtk-icons.patch +++ /dev/null @@ -1,843 +0,0 @@ -From 8ca576def5fd21eac6f7262e21545b0e2b685b92 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Jan=20Dj=C3=A4rv?= -Date: Sat, 18 Oct 2014 18:19:53 +0200 -Subject: [PATCH] Fix #48862 - ---- - lisp/term/x-win.el | 63 ++++---- - src/frame.h | 6 + - src/gtkutil.c | 423 +++++++++++------------------------------------------ - src/gtkutil.h | 2 - - src/xmenu.c | 6 - - src/xterm.h | 4 - - 6 files changed, 125 insertions(+), 379 deletions(-) - -diff --git a/lisp/term/x-win.el b/lisp/term/x-win.el -index ca0ae3b..7a41d32 100644 ---- a/lisp/term/x-win.el -+++ b/lisp/term/x-win.el -@@ -1475,47 +1475,47 @@ This returns an error if any Emacs frames are X frames, or always under W32." - (mapcar (lambda (arg) - (cons (purecopy (car arg)) (purecopy (cdr arg)))) - '( -- ("etc/images/new" . "gtk-new") -- ("etc/images/open" . "gtk-open") -+ ("etc/images/new" . ("document-new" "gtk-new")) -+ ("etc/images/open" . ("document-open" "gtk-open")) - ("etc/images/diropen" . "n:system-file-manager") -- ("etc/images/close" . "gtk-close") -- ("etc/images/save" . "gtk-save") -- ("etc/images/saveas" . "gtk-save-as") -- ("etc/images/undo" . "gtk-undo") -- ("etc/images/cut" . "gtk-cut") -- ("etc/images/copy" . "gtk-copy") -- ("etc/images/paste" . "gtk-paste") -- ("etc/images/search" . "gtk-find") -- ("etc/images/print" . "gtk-print") -- ("etc/images/preferences" . "gtk-preferences") -- ("etc/images/help" . "gtk-help") -- ("etc/images/left-arrow" . "gtk-go-back") -- ("etc/images/right-arrow" . "gtk-go-forward") -- ("etc/images/home" . "gtk-home") -- ("etc/images/jump-to" . "gtk-jump-to") -+ ("etc/images/close" . ("window-close" "gtk-close")) -+ ("etc/images/save" . ("document-save" "gtk-save")) -+ ("etc/images/saveas" . ("document-save-as" "gtk-save-as")) -+ ("etc/images/undo" . ("edit-undo" "gtk-undo")) -+ ("etc/images/cut" . ("edit-cut" "gtk-cut")) -+ ("etc/images/copy" . ("edit-copy" "gtk-copy")) -+ ("etc/images/paste" . ("edit-paste" "gtk-paste")) -+ ("etc/images/search" . ("edit-find" "gtk-find")) -+ ("etc/images/print" . ("document-print" "gtk-print")) -+ ("etc/images/preferences" . ("preferences-system" "gtk-preferences")) -+ ("etc/images/help" . ("help-browser" "gtk-help")) -+ ("etc/images/left-arrow" . ("go-previous" "gtk-go-back")) -+ ("etc/images/right-arrow" . ("go-next" "gtk-go-forward")) -+ ("etc/images/home" . ("go-home" "gtk-home")) -+ ("etc/images/jump-to" . ("go-jump" "gtk-jump-to")) - ("etc/images/index" . "gtk-index") -- ("etc/images/search" . "gtk-find") -- ("etc/images/exit" . "gtk-quit") -+ ("etc/images/exit" . ("application-exit" "gtk-quit")) - ("etc/images/cancel" . "gtk-cancel") -- ("etc/images/info" . "gtk-info") -+ ("etc/images/info" . ("dialog-information" "gtk-info")) - ("etc/images/bookmark_add" . "n:bookmark_add") - ;; Used in Gnus and/or MH-E: - ("etc/images/attach" . "gtk-attach") - ("etc/images/connect" . "gtk-connect") - ("etc/images/contact" . "gtk-contact") -- ("etc/images/delete" . "gtk-delete") -- ("etc/images/describe" . "gtk-properties") -+ ("etc/images/delete" . ("edit-delete" "gtk-delete")) -+ ("etc/images/describe" . ("ocument-properties" "gtk-properties")) - ("etc/images/disconnect" . "gtk-disconnect") - ;; ("etc/images/exit" . "gtk-exit") - ("etc/images/lock-broken" . "gtk-lock_broken") - ("etc/images/lock-ok" . "gtk-lock_ok") - ("etc/images/lock" . "gtk-lock") - ("etc/images/next-page" . "gtk-next-page") -- ("etc/images/refresh" . "gtk-refresh") -- ("etc/images/sort-ascending" . "gtk-sort-ascending") -+ ("etc/images/refresh" . ("view-refresh" "gtk-refresh")) -+ ("etc/images/sort-ascending" . ("view-sort-ascending" "gtk-sort-ascending")) - ("etc/images/sort-column-ascending" . "gtk-sort-column-ascending") - ("etc/images/sort-criteria" . "gtk-sort-criteria") -- ("etc/images/sort-descending" . "gtk-sort-descending") -+ ("etc/images/sort-descending" . ("view-sort-descending" -+ "gtk-sort-descending")) - ("etc/images/sort-row-ascending" . "gtk-sort-row-ascending") - ("images/gnus/toggle-subscription" . "gtk-task-recurring") - ("images/mail/compose" . "gtk-mail-compose") -@@ -1532,8 +1532,8 @@ This returns an error if any Emacs frames are X frames, or always under W32." - ("images/mail/spam" . "gtk-spam") - ;; Used for GDB Graphical Interface - ("images/gud/break" . "gtk-no") -- ("images/gud/recstart" . "gtk-media-record") -- ("images/gud/recstop" . "gtk-media-stop") -+ ("images/gud/recstart" . ("media-record" "gtk-media-record")) -+ ("images/gud/recstop" . ("media-playback-stop" "gtk-media-stop")) - ;; No themed versions available: - ;; mail/preview (combining stock_mail and stock_zoom) - ;; mail/save (combining stock_mail, stock_save and stock_convert) -@@ -1542,9 +1542,12 @@ This returns an error if any Emacs frames are X frames, or always under W32." - Emacs must be compiled with the Gtk+ toolkit for this to have any effect. - A value that begins with n: denotes a named icon instead of a stock icon." - :version "22.2" -- :type '(choice (repeat (choice symbol -- (cons (string :tag "Emacs icon") -- (string :tag "Stock/named"))))) -+ :type '(choice (repeat -+ (choice symbol -+ (cons (string :tag "Emacs icon") -+ (choice (group (string :tag "Named") -+ (string :tag "Stock")) -+ (string :tag "Stock/named")))))) - :group 'x) - - (defcustom icon-map-list '(x-gtk-stock-map) -diff --git a/src/frame.h b/src/frame.h -index bc49cfa..414de62 100644 ---- a/src/frame.h -+++ b/src/frame.h -@@ -725,6 +725,12 @@ default_pixels_per_inch_y (void) - /* Pixel height of frame F's tool-bar. */ - #define FRAME_TOOL_BAR_HEIGHT(f) (f)->tool_bar_height - -+#ifdef USE_GTK -+#define FRAME_TOOL_BAR_POSITION(f) (f)->tool_bar_position -+#else -+#define FRAME_TOOL_BAR_POSITION(f) ((void) f, Qtop) -+#endif -+ - /* Lines above the top-most window in frame F. */ - #define FRAME_TOP_MARGIN(F) \ - (FRAME_MENU_BAR_LINES (F) + FRAME_TOOL_BAR_LINES (F)) -diff --git a/src/gtkutil.c b/src/gtkutil.c -index eddd2b5..33e3cd1 100644 ---- a/src/gtkutil.c -+++ b/src/gtkutil.c -@@ -92,6 +92,16 @@ along with GNU Emacs. If not, see . */ - #endif - #endif /* HAVE_FREETYPE */ - -+#if GTK_CHECK_VERSION (3, 10, 0) -+#define XG_TEXT_CANCEL "Cancel" -+#define XG_TEXT_OK "OK" -+#define XG_TEXT_OPEN "Open" -+#else -+#define XG_TEXT_CANCEL GTK_STOCK_CANCEL -+#define XG_TEXT_OK GTK_STOCK_OK -+#define XG_TEXT_OPEN GTK_STOCK_OPEN -+#endif -+ - #ifndef HAVE_GTK3 - #ifdef USE_GTK_TOOLTIP - #define gdk_window_get_screen(w) gdk_drawable_get_screen (w) -@@ -1826,9 +1836,9 @@ xg_get_file_with_chooser (struct frame *f, - action = GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER; - - filewin = gtk_file_chooser_dialog_new (prompt, gwin, action, -- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, -+ XG_TEXT_CANCEL, GTK_RESPONSE_CANCEL, - (mustmatch_p || only_dir_p ? -- GTK_STOCK_OPEN : GTK_STOCK_OK), -+ XG_TEXT_OPEN : XG_TEXT_OK), - GTK_RESPONSE_OK, - NULL); - gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (filewin), TRUE); -@@ -2408,57 +2418,6 @@ make_menu_item (const char *utf8_label, - return w; - } - --#ifdef HAVE_GTK_TEAROFF_MENU_ITEM_NEW -- --static int xg_detached_menus; -- --/* Return true if there are detached menus. */ -- --bool --xg_have_tear_offs (struct frame *f) --{ -- /* If the frame's menubar height is zero, the menu bar is probably -- being redirected outside the window to some kind of global menu; -- this situation is the moral equivalent of a tear-off. */ -- return FRAME_MENUBAR_HEIGHT (f) == 0 || xg_detached_menus > 0; --} -- --/* Callback invoked when a detached menu window is removed. Here we -- decrease the xg_detached_menus count. -- WIDGET is the top level window that is removed (the parent of the menu). -- CLIENT_DATA is not used. */ -- --static void --tearoff_remove (GtkWidget *widget, gpointer client_data) --{ -- if (xg_detached_menus > 0) --xg_detached_menus; --} -- --/* Callback invoked when a menu is detached. It increases the -- xg_detached_menus count. -- WIDGET is the GtkTearoffMenuItem. -- CLIENT_DATA is not used. */ -- --static void --tearoff_activate (GtkWidget *widget, gpointer client_data) --{ -- GtkWidget *menu = gtk_widget_get_parent (widget); -- if (gtk_menu_get_tearoff_state (GTK_MENU (menu))) -- { -- ++xg_detached_menus; -- g_signal_connect (G_OBJECT (gtk_widget_get_toplevel (widget)), -- "destroy", -- G_CALLBACK (tearoff_remove), 0); -- } --} --#else /* ! HAVE_GTK_TEAROFF_MENU_ITEM_NEW */ --bool --xg_have_tear_offs (struct frame *f) --{ -- return FRAME_MENUBAR_HEIGHT (f) == 0; --} --#endif /* ! HAVE_GTK_TEAROFF_MENU_ITEM_NEW */ -- - /* Create a menu item widget, and connect the callbacks. - ITEM describes the menu item. - F is the frame the created menu belongs to. -@@ -2529,8 +2488,6 @@ xg_create_one_menuitem (widget_value *item, - HIGHLIGHT_CB is the callback to call when entering/leaving menu items. - If POP_UP_P, create a popup menu. - If MENU_BAR_P, create a menu bar. -- If ADD_TEAROFF_P, add a tearoff menu item. Ignored if MENU_BAR_P or -- the Gtk+ version used does not have tearoffs. - TOPMENU is the topmost GtkWidget that others shall be placed under. - It may be NULL, in that case we create the appropriate widget - (menu bar or menu item depending on POP_UP_P and MENU_BAR_P) -@@ -2552,7 +2509,6 @@ create_menus (widget_value *data, - GCallback highlight_cb, - bool pop_up_p, - bool menu_bar_p, -- bool add_tearoff_p, - GtkWidget *topmenu, - xg_menu_cb_data *cl_data, - const char *name) -@@ -2603,17 +2559,6 @@ create_menus (widget_value *data, - "selection-done", deactivate_cb, 0); - } - --#ifdef HAVE_GTK_TEAROFF_MENU_ITEM_NEW -- if (! menu_bar_p && add_tearoff_p) -- { -- GtkWidget *tearoff = gtk_tearoff_menu_item_new (); -- gtk_menu_shell_append (GTK_MENU_SHELL (wmenu), tearoff); -- -- g_signal_connect (G_OBJECT (tearoff), "activate", -- G_CALLBACK (tearoff_activate), 0); -- } --#endif -- - for (item = data; item; item = item->next) - { - GtkWidget *w; -@@ -2627,7 +2572,6 @@ create_menus (widget_value *data, - group = NULL; - utf8_label = get_utf8_string (item->name); - -- gtk_menu_set_title (GTK_MENU (wmenu), utf8_label); - w = gtk_menu_item_new_with_label (utf8_label); - gtk_widget_set_sensitive (w, FALSE); - if (utf8_label) g_free (utf8_label); -@@ -2658,7 +2602,6 @@ create_menus (widget_value *data, - highlight_cb, - 0, - 0, -- add_tearoff_p, - 0, - cl_data, - 0); -@@ -2716,7 +2659,6 @@ xg_create_widget (const char *type, const char *name, struct frame *f, - highlight_cb, - pop_up_p, - menu_bar_p, -- menu_bar_p, - 0, - 0, - name); -@@ -2826,7 +2768,7 @@ xg_update_menubar (GtkWidget *menubar, - { - /* Item(s) added. Add all new items in one call. */ - create_menus (val, f, select_cb, deactivate_cb, highlight_cb, -- 0, 1, 0, menubar, cl_data, 0); -+ 0, 1, menubar, cl_data, 0); - - /* All updated. */ - val = 0; -@@ -2909,14 +2851,6 @@ xg_update_menubar (GtkWidget *menubar, - gtk_label_set_text (wlabel, utf8_label); - g_object_notify (G_OBJECT (witem), "label"); - --#ifdef HAVE_GTK_TEAROFF_MENU_ITEM_NEW -- /* If this item has a submenu that has been detached, change -- the title in the WM decorations also. */ -- if (submenu && gtk_menu_get_tearoff_state (GTK_MENU (submenu))) -- /* Set the title of the detached window. */ -- gtk_menu_set_title (GTK_MENU (submenu), utf8_label); --#endif -- - if (utf8_label) g_free (utf8_label); - iter = g_list_next (iter); - val = val->next; -@@ -2943,7 +2877,7 @@ xg_update_menubar (GtkWidget *menubar, - GtkWidget *submenu = create_menus (NULL, f, - select_cb, deactivate_cb, - highlight_cb, -- 0, 0, 0, 0, cl_data, 0); -+ 0, 0, 0, cl_data, 0); - - gtk_widget_set_name (w, MENU_ITEM_NAME); - gtk_menu_shell_insert (GTK_MENU_SHELL (menubar), w, pos); -@@ -3152,17 +3086,6 @@ xg_update_submenu (GtkWidget *submenu, - { - GtkWidget *w = GTK_WIDGET (iter->data); - --#ifdef HAVE_GTK_TEAROFF_MENU_ITEM_NEW -- /* Skip tearoff items, they have no counterpart in val. */ -- if (GTK_IS_TEAROFF_MENU_ITEM (w)) -- { -- has_tearoff_p = 1; -- iter = g_list_next (iter); -- if (iter) w = GTK_WIDGET (iter->data); -- else break; -- } --#endif -- - /* Remember first radio button in a group. If we get a mismatch in - a radio group we must rebuild the whole group so that the connections - in GTK becomes correct. */ -@@ -3250,7 +3173,6 @@ xg_update_submenu (GtkWidget *submenu, - highlight_cb, - 0, - 0, -- ! has_tearoff_p, - submenu, - cl_data, - 0); -@@ -4031,187 +3953,6 @@ xg_get_tool_bar_widgets (GtkWidget *vb, GtkWidget **wimage) - } - - --/* This callback is called when a tool item should create a proxy item, -- such as for the overflow menu. Also called when the tool bar is detached. -- If we don't create a proxy menu item, the detached tool bar will be -- blank. */ -- --static gboolean --xg_tool_bar_menu_proxy (GtkToolItem *toolitem, gpointer user_data) --{ -- GtkButton *wbutton = GTK_BUTTON (XG_BIN_CHILD (XG_BIN_CHILD (toolitem))); -- GtkWidget *vb = XG_BIN_CHILD (wbutton); -- GtkWidget *c1; -- GtkLabel *wlbl = GTK_LABEL (xg_get_tool_bar_widgets (vb, &c1)); -- GtkImage *wimage = GTK_IMAGE (c1); -- GtkWidget *wmenuitem = gtk_image_menu_item_new_with_label -- (wlbl ? gtk_label_get_text (wlbl) : ""); -- GtkWidget *wmenuimage; -- -- -- if (gtk_button_get_use_stock (wbutton)) -- wmenuimage = gtk_image_new_from_stock (gtk_button_get_label (wbutton), -- GTK_ICON_SIZE_MENU); -- else -- { -- GtkSettings *settings = gtk_widget_get_settings (GTK_WIDGET (wbutton)); -- GtkImageType store_type = gtk_image_get_storage_type (wimage); -- -- g_object_set (G_OBJECT (settings), "gtk-menu-images", TRUE, NULL); -- -- if (store_type == GTK_IMAGE_STOCK) -- { -- gchar *stock_id; -- gtk_image_get_stock (wimage, &stock_id, NULL); -- wmenuimage = gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_MENU); -- } -- else if (store_type == GTK_IMAGE_ICON_SET) -- { -- GtkIconSet *icon_set; -- gtk_image_get_icon_set (wimage, &icon_set, NULL); -- wmenuimage = gtk_image_new_from_icon_set (icon_set, -- GTK_ICON_SIZE_MENU); -- } -- else if (store_type == GTK_IMAGE_PIXBUF) -- { -- gint width, height; -- -- if (settings && -- gtk_icon_size_lookup_for_settings (settings, GTK_ICON_SIZE_MENU, -- &width, &height)) -- { -- GdkPixbuf *src_pixbuf, *dest_pixbuf; -- -- src_pixbuf = gtk_image_get_pixbuf (wimage); -- dest_pixbuf = gdk_pixbuf_scale_simple (src_pixbuf, width, height, -- GDK_INTERP_BILINEAR); -- -- wmenuimage = gtk_image_new_from_pixbuf (dest_pixbuf); -- } -- else -- { -- fprintf (stderr, "internal error: GTK_IMAGE_PIXBUF failed\n"); -- emacs_abort (); -- } -- } -- else if (store_type == GTK_IMAGE_ICON_NAME) -- { -- const gchar *icon_name; -- GtkIconSize icon_size; -- -- gtk_image_get_icon_name (wimage, &icon_name, &icon_size); -- wmenuimage = gtk_image_new_from_icon_name (icon_name, -- GTK_ICON_SIZE_MENU); -- } -- else -- { -- fprintf (stderr, "internal error: store_type is %d\n", store_type); -- emacs_abort (); -- } -- } -- if (wmenuimage) -- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (wmenuitem), wmenuimage); -- -- g_signal_connect (G_OBJECT (wmenuitem), -- "activate", -- G_CALLBACK (xg_tool_bar_proxy_callback), -- user_data); -- -- -- g_object_set_data (G_OBJECT (wmenuitem), XG_TOOL_BAR_PROXY_BUTTON, -- (gpointer) wbutton); -- gtk_tool_item_set_proxy_menu_item (toolitem, "Emacs toolbar item", wmenuitem); -- gtk_widget_set_sensitive (wmenuitem, -- gtk_widget_get_sensitive (GTK_WIDGET (wbutton))); -- -- /* Use enter/leave notify to show help. We use the events -- rather than the GtkButton specific signals "enter" and -- "leave", so we can have only one callback. The event -- will tell us what kind of event it is. */ -- g_signal_connect (G_OBJECT (wmenuitem), -- "enter-notify-event", -- G_CALLBACK (xg_tool_bar_proxy_help_callback), -- user_data); -- g_signal_connect (G_OBJECT (wmenuitem), -- "leave-notify-event", -- G_CALLBACK (xg_tool_bar_proxy_help_callback), -- user_data); -- -- return TRUE; --} -- --/* This callback is called when a tool bar is detached. We must set -- the height of the tool bar to zero when this happens so frame sizes -- are correctly calculated. -- WBOX is the handle box widget that enables detach/attach of the tool bar. -- W is the tool bar widget. -- CLIENT_DATA is a pointer to the frame the tool bar belongs to. */ -- --static void --xg_tool_bar_detach_callback (GtkHandleBox *wbox, -- GtkWidget *w, -- gpointer client_data) --{ -- struct frame *f = client_data; -- -- g_object_set (G_OBJECT (w), "show-arrow", !x_gtk_whole_detached_tool_bar, -- NULL); -- -- if (f) -- { -- GtkRequisition req, req2; -- -- gtk_widget_get_preferred_size (GTK_WIDGET (wbox), NULL, &req); -- gtk_widget_get_preferred_size (w, NULL, &req2); -- req.width -= req2.width; -- req.height -= req2.height; -- if (FRAME_TOOLBAR_TOP_HEIGHT (f) != 0) -- FRAME_TOOLBAR_TOP_HEIGHT (f) = req.height; -- else if (FRAME_TOOLBAR_BOTTOM_HEIGHT (f) != 0) -- FRAME_TOOLBAR_BOTTOM_HEIGHT (f) = req.height; -- else if (FRAME_TOOLBAR_RIGHT_WIDTH (f) != 0) -- FRAME_TOOLBAR_RIGHT_WIDTH (f) = req.width; -- else if (FRAME_TOOLBAR_LEFT_WIDTH (f) != 0) -- FRAME_TOOLBAR_LEFT_WIDTH (f) = req.width; -- xg_height_or_width_changed (f); -- } --} -- --/* This callback is called when a tool bar is reattached. We must set -- the height of the tool bar when this happens so frame sizes -- are correctly calculated. -- WBOX is the handle box widget that enables detach/attach of the tool bar. -- W is the tool bar widget. -- CLIENT_DATA is a pointer to the frame the tool bar belongs to. */ -- --static void --xg_tool_bar_attach_callback (GtkHandleBox *wbox, -- GtkWidget *w, -- gpointer client_data) --{ -- struct frame *f = client_data; -- g_object_set (G_OBJECT (w), "show-arrow", TRUE, NULL); -- -- if (f) -- { -- GtkRequisition req, req2; -- -- gtk_widget_get_preferred_size (GTK_WIDGET (wbox), NULL, &req); -- gtk_widget_get_preferred_size (w, NULL, &req2); -- req.width += req2.width; -- req.height += req2.height; -- if (FRAME_TOOLBAR_TOP_HEIGHT (f) != 0) -- FRAME_TOOLBAR_TOP_HEIGHT (f) = req.height; -- else if (FRAME_TOOLBAR_BOTTOM_HEIGHT (f) != 0) -- FRAME_TOOLBAR_BOTTOM_HEIGHT (f) = req.height; -- else if (FRAME_TOOLBAR_RIGHT_WIDTH (f) != 0) -- FRAME_TOOLBAR_RIGHT_WIDTH (f) = req.width; -- else if (FRAME_TOOLBAR_LEFT_WIDTH (f) != 0) -- FRAME_TOOLBAR_LEFT_WIDTH (f) = req.width; -- xg_height_or_width_changed (f); -- } --} -- - /* This callback is called when the mouse enters or leaves a tool bar item. - It is used for displaying and hiding the help text. - W is the tool bar item, a button. -@@ -4291,11 +4032,7 @@ xg_tool_bar_item_expose_callback (GtkWidget *w, - gtk_toolbar_set_orientation (GTK_TOOLBAR (w), o) - #endif - --#ifdef HAVE_GTK_HANDLE_BOX_NEW --#define TOOLBAR_TOP_WIDGET(x) ((x)->handlebox_widget) --#else - #define TOOLBAR_TOP_WIDGET(x) ((x)->toolbar_widget) --#endif - - /* Attach a tool bar to frame F. */ - -@@ -4304,31 +4041,15 @@ xg_pack_tool_bar (struct frame *f, Lisp_Object pos) - { - struct x_output *x = f->output_data.x; - bool into_hbox = EQ (pos, Qleft) || EQ (pos, Qright); -- GtkWidget *top_widget = TOOLBAR_TOP_WIDGET (x); -+ GtkWidget *top_widget = x->toolbar_widget; - - toolbar_set_orientation (x->toolbar_widget, - into_hbox - ? GTK_ORIENTATION_VERTICAL - : GTK_ORIENTATION_HORIZONTAL); --#ifdef HAVE_GTK_HANDLE_BOX_NEW -- if (!x->handlebox_widget) -- { -- top_widget = x->handlebox_widget = gtk_handle_box_new (); -- g_signal_connect (G_OBJECT (x->handlebox_widget), "child-detached", -- G_CALLBACK (xg_tool_bar_detach_callback), f); -- g_signal_connect (G_OBJECT (x->handlebox_widget), "child-attached", -- G_CALLBACK (xg_tool_bar_attach_callback), f); -- gtk_container_add (GTK_CONTAINER (x->handlebox_widget), -- x->toolbar_widget); -- } --#endif - - if (into_hbox) - { --#ifdef HAVE_GTK_HANDLE_BOX_NEW -- gtk_handle_box_set_handle_position (GTK_HANDLE_BOX (x->handlebox_widget), -- GTK_POS_TOP); --#endif - gtk_box_pack_start (GTK_BOX (x->hbox_widget), top_widget, - FALSE, FALSE, 0); - -@@ -4341,10 +4062,6 @@ xg_pack_tool_bar (struct frame *f, Lisp_Object pos) - else - { - bool vbox_pos = x->menubar_widget != 0; --#ifdef HAVE_GTK_HANDLE_BOX_NEW -- gtk_handle_box_set_handle_position (GTK_HANDLE_BOX (x->handlebox_widget), -- GTK_POS_LEFT); --#endif - gtk_box_pack_start (GTK_BOX (x->vbox_widget), top_widget, - FALSE, FALSE, 0); - -@@ -4497,10 +4214,6 @@ xg_make_tool_item (struct frame *f, - intptr_t ii = i; - gpointer gi = (gpointer) ii; - -- g_signal_connect (G_OBJECT (ti), "create-menu-proxy", -- G_CALLBACK (xg_tool_bar_menu_proxy), -- gi); -- - g_signal_connect (G_OBJECT (wb), "clicked", - G_CALLBACK (xg_tool_bar_callback), - gi); -@@ -4614,7 +4327,7 @@ xg_update_tool_bar_sizes (struct frame *f) - struct x_output *x = f->output_data.x; - GtkRequisition req; - int nl = 0, nr = 0, nt = 0, nb = 0; -- GtkWidget *top_widget = TOOLBAR_TOP_WIDGET (x); -+ GtkWidget *top_widget = x->toolbar_widget; - - gtk_widget_get_preferred_size (GTK_WIDGET (top_widget), NULL, &req); - if (x->toolbar_in_hbox) -@@ -4653,6 +4366,42 @@ xg_update_tool_bar_sizes (struct frame *f) - return 0; - } - -+static char * -+find_icon_from_name (char *name, -+ GtkIconTheme *icon_theme, -+ char **icon_name) -+{ -+#if ! GTK_CHECK_VERSION (3, 10, 0) -+ GtkStockItem stock_item; -+#endif -+ -+ if (name[0] == 'n' && name[1] == ':') -+ { -+ *icon_name = name + 2; -+ name = NULL; -+ -+ if (! gtk_icon_theme_has_icon (icon_theme, *icon_name)) -+ *icon_name = NULL; -+ } -+ -+#if ! GTK_CHECK_VERSION (3, 10, 0) -+ else if (gtk_stock_lookup (name, &stock_item)) -+ *icon_name = NULL; -+#endif -+ else if (gtk_icon_theme_has_icon (icon_theme, name)) -+ { -+ *icon_name = name; -+ name = NULL; -+ } -+ else -+ { -+ name = NULL; -+ *icon_name = NULL; -+ } -+ -+ return name; -+} -+ - - /* Update the tool bar for frame F. Add new buttons and remove old. */ - -@@ -4668,6 +4417,9 @@ update_frame_tool_bar (struct frame *f) - Lisp_Object style; - bool text_image, horiz; - struct xg_frame_tb_info *tbinfo; -+ GdkScreen *screen; -+ GtkIconTheme *icon_theme; -+ - - if (! FRAME_GTK_WIDGET (f)) - return; -@@ -4702,6 +4454,8 @@ update_frame_tool_bar (struct frame *f) - dir = gtk_widget_get_direction (GTK_WIDGET (wtoolbar)); - - style = Ftool_bar_get_system_style (); -+ screen = gtk_widget_get_screen (GTK_WIDGET (wtoolbar)); -+ icon_theme = gtk_icon_theme_get_for_screen (screen); - - /* Are we up to date? */ - tbinfo = g_object_get_data (G_OBJECT (FRAME_GTK_OUTER_WIDGET (f)), -@@ -4738,7 +4492,6 @@ update_frame_tool_bar (struct frame *f) - struct image *img = NULL; - Lisp_Object image; - Lisp_Object stock = Qnil; -- GtkStockItem stock_item; - char *stock_name = NULL; - char *icon_name = NULL; - Lisp_Object rtl; -@@ -4792,32 +4545,28 @@ update_frame_tool_bar (struct frame *f) - if (!NILP (specified_file) && !NILP (Ffboundp (Qx_gtk_map_stock))) - stock = call1 (Qx_gtk_map_stock, specified_file); - -- if (STRINGP (stock)) -+ if (CONSP (stock)) - { -- stock_name = SSDATA (stock); -- if (stock_name[0] == 'n' && stock_name[1] == ':') -- { -- GdkScreen *screen = gtk_widget_get_screen (GTK_WIDGET (wtoolbar)); -- GtkIconTheme *icon_theme = gtk_icon_theme_get_for_screen (screen); -- -- icon_name = stock_name + 2; -- stock_name = NULL; -- stock = Qnil; -- -- if (! gtk_icon_theme_has_icon (icon_theme, icon_name)) -- icon_name = NULL; -- else -- icon_size = gtk_toolbar_get_icon_size (wtoolbar); -- } -- else if (gtk_stock_lookup (SSDATA (stock), &stock_item)) -- icon_size = gtk_toolbar_get_icon_size (wtoolbar); -- else -- { -- stock = Qnil; -- stock_name = NULL; -- } -+ Lisp_Object tem; -+ for (tem = stock; CONSP (tem); tem = XCDR (tem)) -+ if (! NILP (tem) && STRINGP (XCAR (tem))) -+ { -+ stock_name = find_icon_from_name (SSDATA (XCAR (tem)), -+ icon_theme, -+ &icon_name); -+ if (stock_name || icon_name) break; -+ } -+ } -+ else if (STRINGP (stock)) -+ { -+ stock_name = find_icon_from_name (SSDATA (stock), -+ icon_theme, -+ &icon_name); - } - -+ if (stock_name || icon_name) -+ icon_size = gtk_toolbar_get_icon_size (wtoolbar); -+ - if (stock_name == NULL && icon_name == NULL) - { - /* No stock image, or stock item not known. Try regular -@@ -4878,7 +4627,12 @@ update_frame_tool_bar (struct frame *f) - w = NULL; - else if (stock_name) - { -+ -+#if GTK_CHECK_VERSION (3, 10, 0) -+ w = gtk_image_new_from_icon_name (stock_name, icon_size); -+#else - w = gtk_image_new_from_stock (stock_name, icon_size); -+#endif - g_object_set_data_full (G_OBJECT (w), XG_TOOL_BAR_STOCK_NAME, - (gpointer) xstrdup (stock_name), - (GDestroyNotify) xfree); -@@ -4919,8 +4673,8 @@ update_frame_tool_bar (struct frame *f) - if (f->n_tool_bar_items != 0) - { - if (! x->toolbar_is_packed) -- xg_pack_tool_bar (f, f->tool_bar_position); -- gtk_widget_show_all (TOOLBAR_TOP_WIDGET (x)); -+ xg_pack_tool_bar (f, FRAME_TOOL_BAR_POSITION (f)); -+ gtk_widget_show_all (x->toolbar_widget); - if (xg_update_tool_bar_sizes (f)) - xg_height_or_width_changed (f); - } -@@ -4939,11 +4693,9 @@ free_frame_tool_bar (struct frame *f) - if (x->toolbar_widget) - { - struct xg_frame_tb_info *tbinfo; -- GtkWidget *top_widget = TOOLBAR_TOP_WIDGET (x); -+ GtkWidget *top_widget = x->toolbar_widget; - - block_input (); -- /* We may have created the toolbar_widget in xg_create_tool_bar, but -- not the x->handlebox_widget which is created in xg_pack_tool_bar. */ - if (x->toolbar_is_packed) - { - if (x->toolbar_in_hbox) -@@ -4957,7 +4709,7 @@ free_frame_tool_bar (struct frame *f) - gtk_widget_destroy (x->toolbar_widget); - - x->toolbar_widget = 0; -- TOOLBAR_TOP_WIDGET (x) = 0; -+ x->toolbar_widget = 0; - x->toolbar_is_packed = false; - FRAME_TOOLBAR_TOP_HEIGHT (f) = FRAME_TOOLBAR_BOTTOM_HEIGHT (f) = 0; - FRAME_TOOLBAR_LEFT_WIDTH (f) = FRAME_TOOLBAR_RIGHT_WIDTH (f) = 0; -@@ -4982,7 +4734,7 @@ void - xg_change_toolbar_position (struct frame *f, Lisp_Object pos) - { - struct x_output *x = f->output_data.x; -- GtkWidget *top_widget = TOOLBAR_TOP_WIDGET (x); -+ GtkWidget *top_widget = x->toolbar_widget; - - if (! x->toolbar_widget || ! top_widget) - return; -@@ -5026,9 +4778,6 @@ xg_initialize (void) - - gdpy_def = NULL; - xg_ignore_gtk_scrollbar = 0; --#ifdef HAVE_GTK_TEAROFF_MENU_ITEM_NEW -- xg_detached_menus = 0; --#endif - xg_menu_cb_list.prev = xg_menu_cb_list.next = - xg_menu_item_cb_list.prev = xg_menu_item_cb_list.next = 0; - -diff --git a/src/gtkutil.h b/src/gtkutil.h -index 5176be6..37d2900 100644 ---- a/src/gtkutil.h -+++ b/src/gtkutil.h -@@ -107,8 +107,6 @@ extern void xg_update_frame_menubar (struct frame *f); - - extern bool xg_event_is_for_menubar (struct frame *, const XEvent *); - --extern bool xg_have_tear_offs (struct frame *f); -- - extern ptrdiff_t xg_get_scroll_id_for_window (Display *dpy, Window wid); - - extern void xg_create_scroll_bar (struct frame *f, -diff --git a/src/xmenu.c b/src/xmenu.c -index 53683c7..77fc4ef 100644 ---- a/src/xmenu.c -+++ b/src/xmenu.c -@@ -793,12 +793,6 @@ set_frame_menubar (struct frame *f, bool first_time, bool deep_p) - f->output_data.x->saved_menu_event->type = 0; - } - --#ifdef USE_GTK -- /* If we have detached menus, we must update deep so detached menus -- also gets updated. */ -- deep_p = deep_p || xg_have_tear_offs (f); --#endif -- - if (deep_p) - { - /* Make a widget-value tree representing the entire menu trees. */ -diff --git a/src/xterm.h b/src/xterm.h -index 4683a4c..1fb3f0a 100644 ---- a/src/xterm.h -+++ b/src/xterm.h -@@ -491,10 +491,6 @@ struct x_output - GtkWidget *menubar_widget; - /* The tool bar in this frame */ - GtkWidget *toolbar_widget; --#ifdef HAVE_GTK_HANDLE_BOX_NEW --/* The handle box that makes the tool bar detachable. */ -- GtkWidget *handlebox_widget; --#endif - /* True if tool bar is packed into the hbox widget (i.e. vertical). */ - bool_bf toolbar_in_hbox : 1; - bool_bf toolbar_is_packed : 1; --- -2.8.0 - diff --git a/emacs-24.1-ps-mule.patch b/emacs-24.1-ps-mule.patch index 3941f19..cdb6189 100644 --- a/emacs-24.1-ps-mule.patch +++ b/emacs-24.1-ps-mule.patch @@ -1,5 +1,10 @@ +--- + lisp/ps-mule.el | 2 ++ + lisp/textmodes/ispell.el | 14 +++++++++++--- + 2 files changed, 13 insertions(+), 3 deletions(-) + --- lisp/ps-mule.el -+++ lisp/ps-mule.el 2009-08-11 12:41:44.000000000 +0000 ++++ lisp/ps-mule.el 2016-09-19 09:01:56.930605125 +0000 @@ -182,6 +182,8 @@ See also the variable `ps-font-info-data (defconst ps-mule-font-info-database-latin @@ -10,8 +15,8 @@ "Sample setting of `ps-mule-font-info-database' to use latin fonts.") --- lisp/textmodes/ispell.el -+++ lisp/textmodes/ispell.el 2012-06-26 16:37:56.424010429 +0000 -@@ -1339,10 +1339,18 @@ Protects against bogus binding of `enabl ++++ lisp/textmodes/ispell.el 2016-09-19 09:01:56.930605125 +0000 +@@ -1709,10 +1709,18 @@ Protects against bogus binding of `enabl nil ;; in pipe mode. Disable extended-char-mode (nth 6 (or (assoc ispell-current-dictionary ispell-local-dictionary-alist) (assoc ispell-current-dictionary ispell-dictionary-alist))))) diff --git a/emacs-24.3-asian-print.patch b/emacs-24.3-asian-print.patch index bc089ec..16b7755 100644 --- a/emacs-24.3-asian-print.patch +++ b/emacs-24.3-asian-print.patch @@ -1,6 +1,10 @@ +--- + lisp/ps-mule.el | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + --- lisp/ps-mule.el -+++ lisp/ps-mule.el 2009-08-10 16:18:24.585901695 +0000 -@@ -239,7 +239,7 @@ Currently, data for Japanese and Korean ++++ lisp/ps-mule.el 2016-09-19 08:57:28.807664990 +0000 +@@ -264,7 +264,7 @@ Currently, data for Japanese and Korean (japanese-jisx0208 (normal bdf "jiskan24.bdf")) (korean-ksc5601 diff --git a/emacs-24.3-iconic.patch b/emacs-24.3-iconic.patch index 1a68386..f359090 100644 --- a/emacs-24.3-iconic.patch +++ b/emacs-24.3-iconic.patch @@ -1,12 +1,16 @@ +--- + lisp/startup.el | 3 +++ + 1 file changed, 3 insertions(+) + --- lisp/startup.el -+++ lisp/startup.el 2008-03-31 10:23:04.503065574 +0000 -@@ -2171,6 +2171,9 @@ A fancy display is used on graphic displ - ((equal argi "-no-splash") - (setq inhibit-startup-screen t)) ++++ lisp/startup.el 2016-09-19 09:15:26.871345783 +0000 +@@ -2349,6 +2349,9 @@ nil default-directory" name) + ((equal argi "-no-splash") + (setq inhibit-startup-screen t)) -+ ((equal argi "-iconic") -+ (setq inhibit-startup-message t)) ++ ((equal argi "-iconic") ++ (setq inhibit-startup-message t)) + - ((member argi '("-f" ; what the manual claims - "-funcall" - "-e")) ; what the source used to say + ((member argi '("-f" ; what the manual claims + "-funcall" + "-e")) ; what the source used to say diff --git a/emacs-24.3-x11r7.patch b/emacs-24.3-x11r7.patch index 5a330f2..7633410 100644 --- a/emacs-24.3-x11r7.patch +++ b/emacs-24.3-x11r7.patch @@ -1,5 +1,9 @@ +--- + src/xrdb.c | 16 ++++++++++++++++ + 1 file changed, 16 insertions(+) + --- src/xrdb.c -+++ src/xrdb.c 2007-05-15 16:01:41.439517668 +0000 ++++ src/xrdb.c 2016-09-19 09:10:35.504833294 +0000 @@ -39,6 +39,9 @@ along with GNU Emacs. If not, see #include @@ -10,7 +14,7 @@ #ifdef HAVE_PWD_H #include #endif -@@ -539,6 +542,15 @@ x_load_resources (Display *display, cons +@@ -496,6 +499,15 @@ x_load_resources (Display *display, cons XrmPutLineResource (&rdb, line); #endif /* not USE_MOTIF */ @@ -26,7 +30,7 @@ user_database = get_user_db (display); -@@ -580,6 +592,10 @@ x_load_resources (Display *display, cons +@@ -537,6 +549,10 @@ x_load_resources (Display *display, cons XrmMergeDatabases (db, &rdb); } diff --git a/emacs-24.4-bzr118021.patch b/emacs-24.4-bzr118021.patch deleted file mode 100644 index d481fa3..0000000 --- a/emacs-24.4-bzr118021.patch +++ /dev/null @@ -1,228 +0,0 @@ ---- - src/ChangeLog | 11 +++++++++++ - src/xselect.c | 42 ++++++++++++++++++++++++------------------ - src/xterm.c | 20 ++++++++++---------- - src/xterm.h | 16 ++++++++++++++++ - 4 files changed, 61 insertions(+), 28 deletions(-) - ---- src/ChangeLog -+++ src/ChangeLog 2014-10-03 02:20:52.000000000 +0000 -@@ -30,6 +30,17 @@ - (font_matching_entity): Likewise. If matching entity is found, insert - 1-item vector with this entity instead of an entity itself (Bug#17125). - -+2014-10-03 Paul Eggert -+ -+ Fix x-focus-frame bug with "Not an in-range integer" (Bug#18586). -+ * xselect.c (X_SHRT_MAX, X_SHRT_MIN, X_LONG_MAX, X_LONG_MIN) -+ (X_ULONG_MAX): Move these macros to xterm.h. -+ (x_fill_property_data): Be more generous about allowing either -+ signed or unsigned data of the appropriate width. -+ * xterm.h (x_display_set_last_user_time): New function. -+ All setters of last_user_time changd to use this function. -+ If ENABLE_CHECKING, check that the times are in range. -+ - 2014-10-02 Eli Zaretskii - - * xdisp.c (move_it_by_lines): Call reseat_1 after moving the ---- src/xselect.c -+++ src/xselect.c 2014-10-29 11:09:29.000000000 +0000 -@@ -97,13 +97,6 @@ static Lisp_Object Qx_lost_selection_fun - is not necessarily sizeof (long). */ - #define X_LONG_SIZE 4 - --/* Extreme 'short' and 'long' values suitable for libX11. */ --#define X_SHRT_MAX 0x7fff --#define X_SHRT_MIN (-1 - X_SHRT_MAX) --#define X_LONG_MAX 0x7fffffff --#define X_LONG_MIN (-1 - X_LONG_MAX) --#define X_ULONG_MAX 0xffffffffUL -- - /* If this is a smaller number than the max-request-size of the display, - emacs will use INCR selection transfer when the selection is larger - than this. The max-request-size is usually around 64k, so if you want -@@ -2307,10 +2300,10 @@ x_check_property_data (Lisp_Object data) - void - x_fill_property_data (Display *dpy, Lisp_Object data, void *ret, int format) - { -- long val; -- long *d32 = (long *) ret; -- short *d16 = (short *) ret; -- char *d08 = (char *) ret; -+ unsigned long val; -+ unsigned long *d32 = (unsigned long *) ret; -+ unsigned short *d16 = (unsigned short *) ret; -+ unsigned char *d08 = (unsigned char *) ret; - Lisp_Object iter; - - for (iter = data; CONSP (iter); iter = XCDR (iter)) -@@ -2318,7 +2311,22 @@ x_fill_property_data (Display *dpy, Lisp - Lisp_Object o = XCAR (iter); - - if (INTEGERP (o) || FLOATP (o) || CONSP (o)) -- val = cons_to_signed (o, LONG_MIN, LONG_MAX); -+ { -+ if (CONSP (o) -+ && RANGED_INTEGERP (X_LONG_MIN >> 16, XCAR (o), X_LONG_MAX >> 16) -+ && RANGED_INTEGERP (- (1 << 15), XCDR (o), -1)) -+ { -+ /* cons_to_x_long does not handle negative values for v2. -+ For XDnd, v2 might be y of a window, and can be negative. -+ The XDnd spec. is not explicit about negative values, -+ but let's assume negative v2 is sent modulo 2**16. */ -+ unsigned long v1 = XINT (XCAR (o)) & 0xffff; -+ unsigned long v2 = XINT (XCDR (o)) & 0xffff; -+ val = (v1 << 16) | v2; -+ } -+ else -+ val = cons_to_x_long (o); -+ } - else if (STRINGP (o)) - { - block_input (); -@@ -2330,17 +2338,15 @@ x_fill_property_data (Display *dpy, Lisp - - if (format == 8) - { -- if (CHAR_MIN <= val && val <= CHAR_MAX) -- *d08++ = val; -- else -+ if ((1 << 8) < val && val <= X_ULONG_MAX - (1 << 7)) - error ("Out of 'char' range"); -+ *d08++ = val; - } - else if (format == 16) - { -- if (SHRT_MIN <= val && val <= SHRT_MAX) -- *d16++ = val; -- else -+ if ((1 << 16) < val && val <= X_ULONG_MAX - (1 << 15)) - error ("Out of 'short' range"); -+ *d16++ = val; - } - else - *d32++ = val; ---- src/xterm.c -+++ src/xterm.c 2014-10-03 02:20:52.000000000 +0000 -@@ -5961,7 +5961,7 @@ handle_one_xevent (struct x_display_info - break; - - case SelectionNotify: -- dpyinfo->last_user_time = event->xselection.time; -+ x_display_set_last_user_time (dpyinfo, event->xselection.time); - #ifdef USE_X_TOOLKIT - if (! x_window_to_frame (dpyinfo, event->xselection.requestor)) - goto OTHER; -@@ -5970,7 +5970,7 @@ handle_one_xevent (struct x_display_info - break; - - case SelectionClear: /* Someone has grabbed ownership. */ -- dpyinfo->last_user_time = event->xselectionclear.time; -+ x_display_set_last_user_time (dpyinfo, event->xselectionclear.time); - #ifdef USE_X_TOOLKIT - if (! x_window_to_frame (dpyinfo, event->xselectionclear.window)) - goto OTHER; -@@ -5986,7 +5986,7 @@ handle_one_xevent (struct x_display_info - break; - - case SelectionRequest: /* Someone wants our selection. */ -- dpyinfo->last_user_time = event->xselectionrequest.time; -+ x_display_set_last_user_time (dpyinfo, event->xselectionrequest.time); - #ifdef USE_X_TOOLKIT - if (!x_window_to_frame (dpyinfo, event->xselectionrequest.owner)) - goto OTHER; -@@ -6005,7 +6005,7 @@ handle_one_xevent (struct x_display_info - break; - - case PropertyNotify: -- dpyinfo->last_user_time = event->xproperty.time; -+ x_display_set_last_user_time (dpyinfo, event->xproperty.time); - f = x_top_window_to_frame (dpyinfo, event->xproperty.window); - if (f && event->xproperty.atom == dpyinfo->Xatom_net_wm_state) - if (x_handle_net_wm_state (f, &event->xproperty) -@@ -6193,7 +6193,7 @@ handle_one_xevent (struct x_display_info - - case KeyPress: - -- dpyinfo->last_user_time = event->xkey.time; -+ x_display_set_last_user_time (dpyinfo, event->xkey.time); - ignore_next_mouse_click_timeout = 0; - - #if defined (USE_X_TOOLKIT) || defined (USE_GTK) -@@ -6527,7 +6527,7 @@ handle_one_xevent (struct x_display_info - #endif - - case KeyRelease: -- dpyinfo->last_user_time = event->xkey.time; -+ x_display_set_last_user_time (dpyinfo, event->xkey.time); - #ifdef HAVE_X_I18N - /* Don't dispatch this event since XtDispatchEvent calls - XFilterEvent, and two calls in a row may freeze the -@@ -6538,7 +6538,7 @@ handle_one_xevent (struct x_display_info - #endif - - case EnterNotify: -- dpyinfo->last_user_time = event->xcrossing.time; -+ x_display_set_last_user_time (dpyinfo, event->xcrossing.time); - x_detect_focus_change (dpyinfo, any, event, &inev.ie); - - f = any; -@@ -6563,7 +6563,7 @@ handle_one_xevent (struct x_display_info - goto OTHER; - - case LeaveNotify: -- dpyinfo->last_user_time = event->xcrossing.time; -+ x_display_set_last_user_time (dpyinfo, event->xcrossing.time); - x_detect_focus_change (dpyinfo, any, event, &inev.ie); - - f = x_top_window_to_frame (dpyinfo, event->xcrossing.window); -@@ -6597,7 +6597,7 @@ handle_one_xevent (struct x_display_info - - case MotionNotify: - { -- dpyinfo->last_user_time = event->xmotion.time; -+ x_display_set_last_user_time (dpyinfo, event->xmotion.time); - previous_help_echo_string = help_echo_string; - help_echo_string = Qnil; - -@@ -6738,7 +6738,7 @@ handle_one_xevent (struct x_display_info - - memset (&compose_status, 0, sizeof (compose_status)); - dpyinfo->last_mouse_glyph_frame = NULL; -- dpyinfo->last_user_time = event->xbutton.time; -+ x_display_set_last_user_time (dpyinfo, event->xbutton.time); - - f = (x_mouse_grabbed (dpyinfo) ? dpyinfo->last_mouse_frame - : x_window_to_frame (dpyinfo, event->xbutton.window)); ---- src/xterm.h -+++ src/xterm.h 2014-10-03 02:20:52.000000000 +0000 -@@ -644,6 +644,13 @@ struct x_output - int move_offset_left; - }; - -+/* Extreme 'short' and 'long' values suitable for libX11. */ -+#define X_SHRT_MAX 0x7fff -+#define X_SHRT_MIN (-1 - X_SHRT_MAX) -+#define X_LONG_MAX 0x7fffffff -+#define X_LONG_MIN (-1 - X_LONG_MAX) -+#define X_ULONG_MAX 0xffffffffUL -+ - #define No_Cursor (None) - - enum -@@ -959,6 +966,15 @@ extern int x_x_to_emacs_modifiers (struc - extern int x_display_pixel_height (struct x_display_info *); - extern int x_display_pixel_width (struct x_display_info *); - -+INLINE void -+x_display_set_last_user_time (struct x_display_info *dpyinfo, Time t) -+{ -+#ifdef ENABLE_CHECKING -+ eassert (t <= X_ULONG_MAX); -+#endif -+ dpyinfo->last_user_time = t; -+} -+ - extern void x_set_sticky (struct frame *, Lisp_Object, Lisp_Object); - extern void x_wait_for_event (struct frame *, int); - diff --git a/emacs-24.4-flyspell.patch b/emacs-24.4-flyspell.patch index cdf6493..35e4778 100644 --- a/emacs-24.4-flyspell.patch +++ b/emacs-24.4-flyspell.patch @@ -3,8 +3,8 @@ 1 file changed, 8 insertions(+), 3 deletions(-) --- lisp/textmodes/flyspell.el -+++ lisp/textmodes/flyspell.el 2014-10-21 14:14:59.191838679 +0000 -@@ -286,6 +286,12 @@ If this variable is nil, all regions are ++++ lisp/textmodes/flyspell.el 2016-09-19 09:22:48.535025631 +0000 +@@ -287,6 +287,12 @@ If this variable is nil, all regions are :type 'key-sequence :group 'flyspell) @@ -17,25 +17,25 @@ ;;*---------------------------------------------------------------------*/ ;;* Mode specific options */ ;;* ------------------------------------------------------------- */ -@@ -309,7 +315,6 @@ property of the major mode name.") +@@ -310,7 +316,6 @@ property of the major mode name.") ;;*--- mail mode -------------------------------------------------------*/ (put 'mail-mode 'flyspell-mode-predicate 'mail-mode-flyspell-verify) (put 'message-mode 'flyspell-mode-predicate 'mail-mode-flyspell-verify) -(defvar message-signature-separator) (defun mail-mode-flyspell-verify () "Function used for `flyspell-generic-check-word-predicate' in Mail mode." - (let ((header-end (save-excursion -@@ -321,11 +326,11 @@ property of the major mode name.") - nil t) - (point))) - (signature-begin -- (if (not (boundp 'message-signature-separator)) -+ (if (not (boundp 'flyspell-signature-separator)) - (point-max) - (save-excursion - (goto-char (point-max)) -- (re-search-backward message-signature-separator nil t) -+ (re-search-backward flyspell-signature-separator nil t) - (point))))) + (let* ((header-end (save-excursion +@@ -322,11 +327,11 @@ property of the major mode name.") + nil t) + (point))) + (signature-begin +- (if (not (boundp 'message-signature-separator)) ++ (if (not (boundp 'flyspell-signature-separator)) + (point-max) + (save-excursion + (goto-char (point-max)) +- (re-search-backward message-signature-separator ++ (re-search-backward flyspell-signature-separator + (max header-end (- (point) 4000)) t) + (point))))) (cond ((< (point) header-end) - (and (save-excursion (beginning-of-line) diff --git a/emacs-24.4-glibc.patch b/emacs-24.4-glibc.patch index 5901e88..734680e 100644 --- a/emacs-24.4-glibc.patch +++ b/emacs-24.4-glibc.patch @@ -1,30 +1,25 @@ --- - configure | 2 ++ - configure.ac | 2 ++ - lib-src/Makefile.in | 6 ++++-- - 3 files changed, 8 insertions(+), 2 deletions(-) + configure | 1 + + configure.ac | 1 + + 2 files changed, 2 insertions(+) -Index: configure -=================================================================== ---- configure.orig -+++ configure -@@ -10951,6 +10951,7 @@ fi +--- configure.ac ++++ configure.ac 2016-09-19 08:54:17.383277267 +0000 +@@ -2203,6 +2203,7 @@ fi use_mmap_for_buffers=no case "$opsys" in - cygwin|freebsd|irix6-5) use_mmap_for_buffers=yes ;; -+ gnu-linux) use_mmap_for_buffers=yes ;; - esac - - -Index: configure.ac -=================================================================== ---- configure.ac.orig -+++ configure.ac -@@ -2048,6 +2048,7 @@ fi - use_mmap_for_buffers=no - case "$opsys" in - cygwin|freebsd|irix6-5) use_mmap_for_buffers=yes ;; + cygwin|mingw32|freebsd|irix6-5) use_mmap_for_buffers=yes ;; + gnu-linux) use_mmap_for_buffers=yes ;; esac AC_FUNC_MMAP +--- configure ++++ configure 2016-09-19 08:54:30.971020865 +0000 +@@ -11572,6 +11572,7 @@ fi + use_mmap_for_buffers=no + case "$opsys" in + cygwin|mingw32|freebsd|irix6-5) use_mmap_for_buffers=yes ;; ++ gnu-linux) use_mmap_for_buffers=yes ;; + esac + + diff --git a/emacs-24.4-nonvoid.patch b/emacs-24.4-nonvoid.patch index 675eb4e..f569fcb 100644 --- a/emacs-24.4-nonvoid.patch +++ b/emacs-24.4-nonvoid.patch @@ -3,8 +3,8 @@ 1 file changed, 2 insertions(+), 2 deletions(-) --- src/xmenu.c -+++ src/xmenu.c 2014-10-21 14:06:22.923837970 +0000 -@@ -2031,8 +2031,8 @@ Lisp_Object ++++ src/xmenu.c 2016-09-19 09:01:56.930605125 +0000 +@@ -1922,8 +1922,8 @@ Lisp_Object xw_popup_dialog (struct frame *f, Lisp_Object header, Lisp_Object contents) { Lisp_Object title; diff --git a/emacs-24.4-ps-bdf.patch b/emacs-24.4-ps-bdf.patch index 475b908..b654551 100644 --- a/emacs-24.4-ps-bdf.patch +++ b/emacs-24.4-ps-bdf.patch @@ -4,21 +4,21 @@ 2 files changed, 4 insertions(+), 4 deletions(-) --- lisp/ldefs-boot.el -+++ lisp/ldefs-boot.el 2015-04-30 13:03:34.058018924 +0000 -@@ -21554,9 +21554,9 @@ With prefix argument ARG, restart the Pr - ;;;### (autoloads nil "ps-bdf" "ps-bdf.el" (21710 25077 708662 334000)) ++++ lisp/ldefs-boot.el 2016-09-19 09:01:36.090998408 +0000 +@@ -22107,9 +22107,9 @@ With prefix argument ARG, restart the Pr + ;;;### (autoloads nil "ps-bdf" "ps-bdf.el" (22388 5707 728611 808000)) ;;; Generated autoloads from ps-bdf.el -(defvar bdf-directory-list (if (memq system-type '(ms-dos windows-nt)) (list (expand-file-name "fonts/bdf" installation-directory)) '("/usr/local/share/emacs/fonts/bdf")) "\ +(defvar bdf-directory-list (if (memq system-type '(ms-dos windows-nt)) (list (expand-file-name "fonts/bdf" installation-directory)) '("/usr/share/fonts/bdf")) "\ List of directories to search for `BDF' font files. --The default value is '(\"/usr/local/share/emacs/fonts/bdf\").") -+The default value is '(\"/usr/share/fonts/bdf\").") +-The default value is (\"/usr/local/share/emacs/fonts/bdf\").") ++The default value is (\"/usr/share/fonts/bdf\").") (custom-autoload 'bdf-directory-list "ps-bdf" t) --- lisp/ps-bdf.el -+++ lisp/ps-bdf.el 2009-08-10 16:21:47.000000000 +0000 ++++ lisp/ps-bdf.el 2016-09-19 09:00:21.828399872 +0000 @@ -42,9 +42,9 @@ (defcustom bdf-directory-list (if (memq system-type '(ms-dos windows-nt)) @@ -26,8 +26,8 @@ - '("/usr/local/share/emacs/fonts/bdf")) + '("/usr/share/fonts/bdf")) "List of directories to search for `BDF' font files. --The default value is '(\"/usr/local/share/emacs/fonts/bdf\")." -+The default value is '(\"/usr/share/fonts/bdf\")." +-The default value is (\"/usr/local/share/emacs/fonts/bdf\")." ++The default value is (\"/usr/share/fonts/bdf\")." :type '(repeat :tag "BDF font directory list" (directory :tag "BDF font directory")) :group 'ps-print-miscellany) diff --git a/emacs-24.4-xim.patch b/emacs-24.4-xim.patch index 189e64a..96d1a35 100644 --- a/emacs-24.4-xim.patch +++ b/emacs-24.4-xim.patch @@ -3,8 +3,8 @@ 1 file changed, 1 insertion(+), 1 deletion(-) --- src/xfns.c -+++ src/xfns.c 2014-10-21 14:09:49.520338231 +0000 -@@ -1648,8 +1648,8 @@ static XIMStyle best_xim_style (XIMStyle ++++ src/xfns.c 2016-09-19 09:10:35.504833294 +0000 +@@ -1957,8 +1957,8 @@ static XIMStyle best_xim_style (XIMStyle static const XIMStyle supported_xim_styles[] = { diff --git a/emacs-24.5.tar.xz b/emacs-24.5.tar.xz deleted file mode 100644 index 5a264c2..0000000 --- a/emacs-24.5.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:dd47d71dd2a526cf6b47cb49af793ec2e26af69a0951cc40e43ae290eacfc34e -size 39759804 diff --git a/emacs-24.4.dif b/emacs-25.1.dif similarity index 84% rename from emacs-24.4.dif rename to emacs-25.1.dif index fd8da92..4c86732 100644 --- a/emacs-24.4.dif +++ b/emacs-25.1.dif @@ -1,9 +1,9 @@ --- - Makefile.in | 11 +--- - configure | 4 - - configure.ac | 4 - + Makefile.in | 7 +- + configure | 6 -- + configure.ac | 6 -- doc/man/etags.1 | 20 ++++---- - lib-src/Makefile.in | 6 +- + lib-src/Makefile.in | 4 - lib-src/pop.c | 1 lisp/cmuscheme.el | 3 - lisp/international/mule-cmds.el | 1 @@ -16,35 +16,30 @@ site-lisp/term/kvt.el | 97 ++++++++++++++++++++++++++++++++++++++++ site-lisp/term/linux.el | 79 ++++++++++++++++++++++++++++++++ site-lisp/term/locale.el | 13 +++++ - src/lisp.mk | 2 - 18 files changed, 448 insertions(+), 33 deletions(-) + 17 files changed, 445 insertions(+), 32 deletions(-) --- Makefile.in -+++ Makefile.in 2014-10-21 14:24:43.751837432 +0000 -@@ -490,12 +490,8 @@ install-arch-dep: src install-arch-indep - libexecdir="${libexecdir}" archlibdir="${archlibdir}" \ - INSTALL_STRIP=${INSTALL_STRIP} - if test "${ns_self_contained}" = "no"; then \ -- ${INSTALL_PROGRAM} $(INSTALL_STRIP) src/emacs${EXEEXT} "$(DESTDIR)${bindir}/$(EMACSFULL)" || exit 1 ; \ -- chmod 1755 "$(DESTDIR)${bindir}/$(EMACSFULL)" || true; \ -- if test "x${NO_BIN_LINK}" = x; then \ -- rm -f "$(DESTDIR)${bindir}/$(EMACS)" ; \ -- cd "$(DESTDIR)${bindir}" && $(LN_S_FILEONLY) $(EMACSFULL) $(EMACS); \ -- fi; \ -+ ${INSTALL_PROGRAM} $(INSTALL_STRIP) src/emacs${EXEEXT} $(DESTDIR)${bindir}/$(EMACS) || exit 1 ; \ -+ chmod 1755 $(DESTDIR)${bindir}/$(EMACS) || true; \ - else \ - subdir=${ns_appresdir}/site-lisp; \ - ${write_subdir} || exit 1; \ -@@ -684,6 +680,7 @@ install-man: ++++ Makefile.in 2016-09-19 09:49:37.296950020 +0000 +@@ -493,8 +493,8 @@ install-arch-dep: src install-arch-indep + umask 022; ${MKDIR_P} "$(DESTDIR)${bindir}" + $(MAKE) -C lib-src install + ifeq (${ns_self_contained},no) +- ${INSTALL_PROGRAM} $(INSTALL_STRIP) src/emacs${EXEEXT} "$(DESTDIR)${bindir}/$(EMACSFULL)" +- -chmod 755 "$(DESTDIR)${bindir}/$(EMACSFULL)" ++ ${INSTALL_PROGRAM} $(INSTALL_STRIP) src/emacs${EXEEXT} "$(DESTDIR)${bindir}/$(EMACS)" ++ -chmod 755 "$(DESTDIR)${bindir}/$(EMACS)" + ifndef NO_BIN_LINK + rm -f "$(DESTDIR)${bindir}/$(EMACS)" + cd "$(DESTDIR)${bindir}" && $(LN_S_FILEONLY) $(EMACSFULL) $(EMACS) +@@ -683,6 +683,7 @@ install-man: umask 022; ${MKDIR_P} "$(DESTDIR)${man1dir}" thisdir=`/bin/pwd`; \ cd ${mansrcdir}; \ + cp ctags.1 gnuctags.1; \ for page in *.1; do \ + test "$$page" = ChangeLog.1 && continue; \ dest=`echo "$${page}" | sed -e 's/\.1$$//' -e '$(TRANSFORM)'`.1; \ - (cd "$${thisdir}"; \ -@@ -770,7 +767,7 @@ uninstall: uninstall-$(NTDIR) uninstall- +@@ -771,7 +772,7 @@ uninstall: uninstall-$(NTDIR) uninstall- for page in *.1; do \ rm -f "$(DESTDIR)${man1dir}"/`echo "$${page}" | sed -e 's/\.1$$//' -e '$(TRANSFORM)'`.1$$ext; done; \ fi) @@ -53,34 +48,38 @@ (if cd "$(DESTDIR)${icondir}"; then \ rm -f hicolor/*x*/apps/${EMACS_NAME}.png \ hicolor/scalable/apps/${EMACS_NAME}.svg \ ---- configure.ac -+++ configure.ac 2013-05-21 16:02:45.000000000 +0000 -@@ -1595,8 +1595,8 @@ fi +--- configure ++++ configure 2016-09-19 09:53:00.097191627 +0000 +@@ -10749,10 +10749,8 @@ fi LD_SWITCH_X_SITE_RPATH= if test "${x_libraries}" != NONE; then if test -n "${x_libraries}"; then -- LD_SWITCH_X_SITE=-L`echo ${x_libraries} | sed -e "s/:/ -L/g"` -- LD_SWITCH_X_SITE_RPATH=-Wl,-rpath,`echo ${x_libraries} | sed -e "s/:/ -Wl,-rpath,/g"` +- LD_SWITCH_X_SITE=-L`$as_echo "$x_libraries" | sed -e 's/:/ -L/g'` +- LD_SWITCH_X_SITE_RPATH=-Wl,-rpath,` +- $as_echo "$x_libraries" | sed -e 's/:/ -Wl,-rpath,/g' +- ` + LD_SWITCH_X_SITE="-L ${x_libraries%%:*}" + LD_SWITCH_X_SITE_RPATH="-Wl,-rpath-link,${x_libraries%%:*}" fi x_default_search_path="" x_search_path=${x_libraries} ---- configure -+++ configure 2013-05-21 16:02:54.000000000 +0000 -@@ -10123,8 +10123,8 @@ fi +--- configure.ac ++++ configure.ac 2016-09-19 09:52:02.546258535 +0000 +@@ -1727,10 +1727,8 @@ fi LD_SWITCH_X_SITE_RPATH= if test "${x_libraries}" != NONE; then if test -n "${x_libraries}"; then -- LD_SWITCH_X_SITE=-L`echo ${x_libraries} | sed -e "s/:/ -L/g"` -- LD_SWITCH_X_SITE_RPATH=-Wl,-rpath,`echo ${x_libraries} | sed -e "s/:/ -Wl,-rpath,/g"` +- LD_SWITCH_X_SITE=-L`AS_ECHO(["$x_libraries"]) | sed -e 's/:/ -L/g'` +- LD_SWITCH_X_SITE_RPATH=-Wl,-rpath,` +- AS_ECHO(["$x_libraries"]) | sed -e 's/:/ -Wl,-rpath,/g' +- ` + LD_SWITCH_X_SITE="-L ${x_libraries%%:*}" + LD_SWITCH_X_SITE_RPATH="-Wl,-rpath-link,${x_libraries%%:*}" fi x_default_search_path="" x_search_path=${x_libraries} --- doc/man/etags.1 -+++ doc/man/etags.1 2009-08-11 12:59:38.000000000 +0000 ++++ doc/man/etags.1 2016-09-19 09:54:09.419906131 +0000 @@ -7,7 +7,7 @@ .. @@ -90,16 +89,16 @@ .SH SYNOPSIS .hy 0 .na -@@ -24,7 +24,7 @@ etags, ctags \- generate tag file for Em +@@ -25,7 +25,7 @@ etags, ctags \- generate tag file for Em [\|\-\-help\|] [\|\-\-version\|] \fIfile\fP .\|.\|. --\fBctags\fP [\|\-aCdgIRVh\|] [\|\-BtTuvwx\|] [\|\-l \fIlanguage\fP\|] -+\fBgnuctags\fP [\|\-aCdgIRVh\|] [\|\-BtTuvwx\|] [\|\-l \fIlanguage\fP\|] +-\fBctags\fP [\|\-aCdgIQRVh\|] [\|\-BtTuvwx\|] [\|\-l \fIlanguage\fP\|] ++\fBgnuctag\fP [\|\-aCdgIQRVh\|] [\|\-BtTuvwx\|] [\|\-l \fIlanguage\fP\|] .if n .br [\|\-o \fItagfile\fP\|] [\|\-r \fIregexp\fP\|] [\|\-\-parse\-stdin=\fIfile\fP\|] -@@ -43,7 +43,7 @@ etags, ctags \- generate tag file for Em +@@ -45,7 +45,7 @@ etags, ctags \- generate tag file for Em The \|\fBetags\fP\| program is used to create a tag table file, in a format understood by .BR emacs ( 1 )\c @@ -108,7 +107,7 @@ format understood by .BR vi ( 1 )\c \&. Both forms of the program understand -@@ -53,7 +53,7 @@ PHP, PostScript, Python, Prolog, Scheme +@@ -55,7 +55,7 @@ Ruby, PHP, PostScript, Python, Prolog, S most assembler\-like syntaxes. Both forms read the files specified on the command line, and write a tag table (defaults: \fBTAGS\fP for \fBetags\fP, \fBtags\fP for @@ -117,7 +116,7 @@ Files specified with relative file names will be recorded in the tag table with file names relative to the directory where the tag table resides. If the tag table is in /dev or is the standard output, -@@ -69,7 +69,7 @@ parsing of the file names following the +@@ -71,7 +71,7 @@ parsing of the file names following the language, overriding guesses based on filename extensions. .SH OPTIONS Some options make sense only for the \fBvi\fP style tag files produced @@ -126,16 +125,16 @@ \fBetags\fP does not recognize them. The programs accept unambiguous abbreviations for long option names. .TP -@@ -83,7 +83,7 @@ expression search instructions; the \fB\ - the delimiter `\|\fB?\fP\|', to search \fIbackwards\fP through files. - The default is to use the delimiter `\|\fB/\fP\|', to search \fIforwards\fP +@@ -85,7 +85,7 @@ expression search instructions; the \fB\ + the delimiter "\|\fB?\fP\|", to search \fIbackwards\fP through files. + The default is to use the delimiter "\|\fB/\fP\|", to search \fIforwards\fP through files. -Only \fBctags\fP accepts this option. -+Only \fBgnuctags\fP accepts this option. ++Only \fBgnuctag\fP accepts this option. .TP .B \-\-declarations In C and derived languages, create tags for function declarations, -@@ -158,7 +158,7 @@ the previous ones. The regexps are of o +@@ -174,7 +174,7 @@ the previous ones. The regexps are of o where \fItagregexp\fP is used to match the tag. It should not match useless characters. If the match is such that more characters than needed are unavoidably matched by \fItagregexp\fP, it may be useful to @@ -144,7 +143,7 @@ ignores regexps without a \fInameregexp\fP. The syntax of regexps is the same as in emacs. The following character escape sequences are supported: \\a, \\b, \\d, \\e, \\f, \\n, \\r, \\t, \\v, which -@@ -237,15 +237,15 @@ tag entries for other files in place. C +@@ -253,15 +253,15 @@ tag entries for other files in place. C by deleting the existing entries for the given files and then rewriting the new entries at the end of the tags file. It is often faster to simply rebuild the entire tag file than to use this. @@ -164,8 +163,8 @@ .B \-h, \-H, \-\-help Print usage information. Followed by one or more \-\-language=LANG --- lib-src/Makefile.in -+++ lib-src/Makefile.in 2014-10-21 14:25:38.807837913 +0000 -@@ -118,7 +118,7 @@ MKDIR_P = @MKDIR_P@ ++++ lib-src/Makefile.in 2016-09-19 09:56:30.249261196 +0000 +@@ -150,7 +150,7 @@ MKDIR_P = @MKDIR_P@ CLIENTW = @CLIENTW@ # Things that a user might actually run, which should be installed in bindir. @@ -173,22 +172,18 @@ +INSTALLABLES = etags${EXEEXT} gnuctags${EXEEXT} emacsclient${EXEEXT} $(CLIENTW) \ ebrowse${EXEEXT} - INSTALLABLE_SCRIPTS = grep-changelog -@@ -331,10 +331,10 @@ ebrowse${EXEEXT}: ${srcdir}/ebrowse.c ${ - - ## We depend on etags to assure that parallel makes do not write two + # Things that Emacs runs internally, or during the build process, +@@ -367,7 +367,7 @@ etags${EXEEXT}: ${etags_deps} ## etags.o files on top of each other. --ctags${EXEEXT}: etags${EXEEXT} -+gnuctags${EXEEXT}: etags${EXEEXT} - $(CC) ${ALL_CFLAGS} -DCTAGS -DEMACS_NAME="\"GNU Emacs\"" \ - -DVERSION="\"${version}\"" ${srcdir}/etags.c \ -- regex.o $(LOADLIBES) $(NTLIB) -o ctags${EXEEXT} -+ regex.o $(LOADLIBES) $(NTLIB) -o gnuctags${EXEEXT} + ## FIXME? + ## Can't we use a wrapper that calls 'etags --ctags'? +-ctags${EXEEXT}: ${srcdir}/ctags.c ${etags_deps} ++gnuctags${EXEEXT}: ${srcdir}/ctags.c ${etags_deps} + $(AM_V_CCLD)$(CC) ${ALL_CFLAGS} $(etags_cflags) $< $(etags_libs) - profile${EXEEXT}: ${srcdir}/profile.c $(NTLIB) $(config_h) - $(CC) ${ALL_CFLAGS} ${srcdir}/profile.c \ + ebrowse${EXEEXT}: ${srcdir}/ebrowse.c ${srcdir}/../lib/min-max.h $(NTLIB) \ --- lib-src/pop.c -+++ lib-src/pop.c 2011-11-28 08:38:56.000000000 +0000 ++++ lib-src/pop.c 2016-09-19 09:25:18.256204648 +0000 @@ -26,6 +26,7 @@ along with GNU Emacs. If not, see --- lisp/cmuscheme.el -+++ lisp/cmuscheme.el 2009-08-12 13:29:47.000000000 +0000 ++++ lisp/cmuscheme.el 2016-09-19 09:25:18.256204648 +0000 @@ -241,7 +241,8 @@ is run). (read-string "Run Scheme: " scheme-program-name) scheme-program-name))) @@ -210,8 +205,8 @@ (scheme-start-file (car cmdlist)) (cdr cmdlist))) (inferior-scheme-mode))) --- lisp/international/mule-cmds.el -+++ lisp/international/mule-cmds.el 2010-10-18 14:06:48.000000000 +0000 -@@ -41,6 +41,7 @@ ++++ lisp/international/mule-cmds.el 2016-09-19 09:25:18.256204648 +0000 +@@ -39,6 +39,7 @@ (defvar mule-keymap (let ((map (make-sparse-keymap))) @@ -220,8 +215,8 @@ (define-key map "r" 'revert-buffer-with-coding-system) (define-key map "F" 'set-file-name-coding-system) --- lisp/net/ange-ftp.el -+++ lisp/net/ange-ftp.el 2009-08-12 13:35:06.000000000 +0000 -@@ -4977,7 +4977,7 @@ NEWNAME should be the name to give the n ++++ lisp/net/ange-ftp.el 2016-09-19 09:25:18.256204648 +0000 +@@ -4985,7 +4985,7 @@ NEWNAME should be the name to give the n ; "If a host matches this regexp then it is assumed to be running VOS.") ; ;(defun ange-ftp-vos-host (host) @@ -230,7 +225,7 @@ ; (save-match-data ; (string-match ange-ftp-vos-host-regexp host)))) ; -@@ -5092,7 +5092,7 @@ NEWNAME should be the name to give the n +@@ -5100,7 +5100,7 @@ NEWNAME should be the name to give the n ;; Return non-nil if HOST is running VMS. (defun ange-ftp-vms-host (host) @@ -239,7 +234,7 @@ (string-match-p ange-ftp-vms-host-regexp host))) ;; Because some VMS ftp servers convert filenames to lower case -@@ -5600,7 +5600,7 @@ Other orders of $ and _ seem to all work +@@ -5608,7 +5608,7 @@ Other orders of $ and _ seem to all work ;; Return non-nil if HOST is running MTS. (defun ange-ftp-mts-host (host) @@ -248,7 +243,7 @@ (string-match-p ange-ftp-mts-host-regexp host))) ;; Parse the current buffer which is assumed to be in mts ftp dir format. -@@ -5798,7 +5798,7 @@ Other orders of $ and _ seem to all work +@@ -5806,7 +5806,7 @@ Other orders of $ and _ seem to all work ;; Return non-nil if HOST is running CMS. (defun ange-ftp-cms-host (host) @@ -258,7 +253,7 @@ (defun ange-ftp-add-cms-host (host) --- lisp/site-load.el -+++ lisp/site-load.el 2013-05-21 15:51:52.000000000 +0000 ++++ lisp/site-load.el 2016-09-19 09:25:18.256204648 +0000 @@ -0,0 +1,41 @@ +;;;; +;;; emacs20.xx/lisp/site-load.el @@ -302,8 +297,8 @@ + +;;; site-load.el ends here --- lisp/speedbar.el -+++ lisp/speedbar.el 2012-06-27 11:04:53.000000000 +0000 -@@ -806,6 +806,7 @@ If you want to change this while speedba ++++ lisp/speedbar.el 2016-09-19 09:25:18.260204572 +0000 +@@ -794,6 +794,7 @@ If you want to change this while speedba ;; Navigation. (define-key map "n" 'speedbar-next) @@ -312,7 +307,7 @@ (define-key map "\M-n" 'speedbar-restricted-next) (define-key map "\M-p" 'speedbar-restricted-prev) --- lisp/textmodes/ispell.el -+++ lisp/textmodes/ispell.el 2014-10-21 14:26:54.515839767 +0000 ++++ lisp/textmodes/ispell.el 2016-09-19 09:25:18.260204572 +0000 @@ -351,10 +351,12 @@ Must be greater than 1." :group 'ispell) @@ -330,7 +325,7 @@ "Program invoked by \\[ispell-word] and \\[ispell-region] commands." :type 'string :set (lambda (symbol value) -@@ -1473,6 +1475,56 @@ The variable `ispell-library-directory' +@@ -1525,6 +1527,56 @@ The variable `ispell-library-directory' (if ispell-menu-map-needed (progn (setq ispell-menu-map (make-sparse-keymap "Spell")) @@ -388,7 +383,7 @@ `(menu-item ,(purecopy "Change Dictionary...") ispell-change-dictionary :help ,(purecopy "Supply explicit dictionary file name"))) --- site-lisp/term/func-keys.el -+++ site-lisp/term/func-keys.el 2013-05-21 15:51:52.000000000 +0000 ++++ site-lisp/term/func-keys.el 2016-09-19 09:25:18.260204572 +0000 @@ -0,0 +1,33 @@ +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; term/func-keys.el for site-lisp path @@ -424,7 +419,7 @@ +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Ende von func-keys.el --- site-lisp/term/gnome.el -+++ site-lisp/term/gnome.el 2013-05-21 15:51:52.000000000 +0000 ++++ site-lisp/term/gnome.el 2016-09-19 09:25:18.260204572 +0000 @@ -0,0 +1,97 @@ +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; term/gnomw.el for site-lisp path @@ -524,7 +519,7 @@ +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Ende von gnomw.el --- site-lisp/term/kvt.el -+++ site-lisp/term/kvt.el 2013-05-21 15:51:52.000000000 +0000 ++++ site-lisp/term/kvt.el 2016-09-19 09:25:18.260204572 +0000 @@ -0,0 +1,97 @@ +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; term/kvt.el for site-lisp path @@ -624,7 +619,7 @@ +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Ende von kvt.el --- site-lisp/term/linux.el -+++ site-lisp/term/linux.el 2013-05-21 15:51:52.000000000 +0000 ++++ site-lisp/term/linux.el 2016-09-19 09:25:18.260204572 +0000 @@ -0,0 +1,79 @@ +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; term/linux.el for site-lisp path @@ -706,7 +701,7 @@ +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Ende von linux.el --- site-lisp/term/locale.el -+++ site-lisp/term/locale.el 2013-05-21 15:51:52.000000000 +0000 ++++ site-lisp/term/locale.el 2016-09-19 09:25:18.260204572 +0000 @@ -0,0 +1,13 @@ +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; term/locale.el for site-lisp path @@ -721,14 +716,3 @@ +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Ende von locale.el ---- src/lisp.mk -+++ src/lisp.mk 2014-10-21 14:27:53.832337794 +0000 -@@ -151,6 +151,8 @@ lisp = \ - $(lispsource)/w32-vars.elc \ - $(lispsource)/term/w32-win.elc \ - $(lispsource)/ls-lisp.elc \ -+ $(lispsource)/lpr.elc \ -+ $(lispsource)/delsel.elc \ - $(lispsource)/disp-table.elc \ - $(lispsource)/w32-common-fns.elc \ - $(lispsource)/dos-w32.elc \ diff --git a/emacs-25.1.tar.xz b/emacs-25.1.tar.xz new file mode 100644 index 0000000..e846db6 --- /dev/null +++ b/emacs-25.1.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:19f2798ee3bc26c95dca3303e7ab141e7ad65d6ea2b6945eeba4dbea7df48f33 +size 42498944 diff --git a/emacs.changes b/emacs.changes index c1b2c97..0ce2d57 100644 --- a/emacs.changes +++ b/emacs.changes @@ -1,3 +1,67 @@ +------------------------------------------------------------------- +Mon Sep 19 15:01:07 UTC 2016 - werner@suse.de + +- Update to emacs version 25.1 + * Next major release + * Xwidgets: a new feature for embedding native widgets inside Emacs buffers. + * Emacs can now load shared/dynamic libraries (modules). + * Network security (TLS/SSL certificate validity and the like) + * 'C-h l' now also lists the commands that were run. + * New option 'switch-to-buffer-in-dedicated-window' + * The option 'even-window-heights' has been renamed to 'even-window-sizes' + * 'terpri' gets an optional arg ENSURE to conditionally output a newline. + * 'insert-register' now leaves point after the inserted text + * The new variable 'term-file-aliases' replaces some files from lisp/term. + * New variable 'system-configuration-features', listing some of the main + features that Emacs was compiled with. + * A password is now hidden also when typed in batch mode. + * The Emacs pseudo-random number generator can be securely seeded. + * New input methods: 'tamil-dvorak', 'programmer-dvorak' and 'probhat'. + * 'M-x' suggests shorthands and ignores obsolete commands for completion. + * Changes in undo + * New command 'comment-line' bound to 'C-x C-;'. + * New and improved facilities for inserting Unicode characters + * New minor mode 'global-eldoc-mode' is enabled by default. + * Emacs now uses "bracketed paste mode" on text terminals that support it. + * Emacs now supports the latest version of the UBA. + * You can access 'mouse-buffer-menu' ('C-down-mouse-1') using 'C-f10'. + * New buffer-local 'electric-pair-local-mode'. + * New variable 'fast-but-imprecise-scrolling' inhibits fontification + during full screen scrolling operations. + * New documentation command 'describe-symbol'. + * New function 'custom-prompt-customize-unsaved-options' checks for + unsaved customizations and prompts user to customize (if found). + * The old 'C-x w' bindings in 'hi-lock-mode' are officially deprecated + * New function 'bookmark-set-no-overwrite' bound to 'C-x r M'. + * Many other details, see /usr/share/emacs/25.1/etc/NEWS +- Patch emacs-24.4.dif renamed to emacs-25.1.dif +- Patches removed as now upstream or fixed otherwise + debbugs16737.patch + emacs-24-0010-ELF-unexec-Correct-section-header-index.patch + emacs-24-0011-ELF-unexec-Tidy-code.patch + emacs-24-0012-ELF-unexec-Merge-Alpha-and-MIPS-COFF-debug-handling.patch + emacs-24-0013-ELF-unexec-Symbol-table-patching.patch + emacs-24-0014-ELF-unexec-_OBJC_-symbols-in-bss-sections.patch + emacs-24-0015-ELF-unexec-R_-_NONE-relocs.patch + emacs-24-0016-ELF-unexec-Drive-from-PT_LOAD-header-rather-than-sec.patch + emacs-24-0017-ELF-unexec-Don-t-insert-a-new-section.patch + emacs-24-0018-src-unexelf.c-NEW_PROGRAM_H-Remove-unused-macro-Bug-.patch + emacs-24-0019-ELF-unexec-align-section-header.patch + emacs-24-fix-missing-gtk-icons.patch + emacs-24.4-bzr118021.patch + emacs24-primarysel2.patch + gmalloc.patch +- Patches forwarded to 25.1 + emacs-24.1-ps-mule.patch + emacs-24.3-asian-print.patch + emacs-24.3-iconic.patch + emacs-24.3-x11r7.patch + emacs-24.4-flyspell.patch + emacs-24.4-glibc.patch + emacs-24.4-nonvoid.patch + emacs-24.4-ps-bdf.patch + emacs-24.4-xim.patch + ------------------------------------------------------------------- Fri Sep 9 13:21:33 UTC 2016 - zaitor@opensuse.org diff --git a/emacs.spec b/emacs.spec index 88af063..e16290b 100644 --- a/emacs.spec +++ b/emacs.spec @@ -75,7 +75,7 @@ BuildRequires: xorg-x11-devel BuildRequires: xz BuildRequires: zlib-devel Url: http://www.gnu.org/software/emacs/ -Version: 24.5 +Version: 25.1 Release: 0 %if 0%{suse_version} >= 1300 Requires: etags @@ -92,13 +92,13 @@ Obsoletes: nxml-mode < 20041004 Provides: epg = 1.0.0 Obsoletes: epg < 1.0.0 Requires(pre): fileutils -Source: ftp://ftp.gnu.org/gnu/emacs/emacs-24.5.tar.xz +Source: ftp://ftp.gnu.org/gnu/emacs/emacs-%{version}.tar.xz Source1: app-defaults.Emacs Source2: site-lisp.tar.bz2 Source3: dot.gnu-emacs Source4: emacs-rpmlintrc Source5: emacs.sh -Patch: emacs-24.4.dif +Patch: emacs-25.1.dif # PATCH-FIX-UPSTREAM Adjust to GnuPG 2.1 key listing change Patch2: emacs-24.4-glibc.patch Patch3: emacs-24.4-decl.dif @@ -106,29 +106,12 @@ Patch4: emacs-24.3-asian-print.patch Patch5: emacs-24.4-ps-bdf.patch Patch7: emacs-24.1-ps-mule.patch Patch8: emacs-24.4-nonvoid.patch -Patch9: emacs-24.4-bzr118021.patch -# PATCH-FIX-UPSTREAM bsc#912872 -- CVE-2014-9483 -Patch10: emacs24-primarysel2.patch Patch11: emacs-24.4-xim.patch Patch12: emacs-24.3-x11r7.patch Patch15: emacs-24.3-iconic.patch Patch16: emacs-24.4-flyspell.patch -Patch17: debbugs16737.patch Patch22: emacs-24.1-bnc628268.patch -Patch30: emacs-24-0010-ELF-unexec-Correct-section-header-index.patch -Patch31: emacs-24-0011-ELF-unexec-Tidy-code.patch -Patch32: emacs-24-0012-ELF-unexec-Merge-Alpha-and-MIPS-COFF-debug-handling.patch -Patch33: emacs-24-0013-ELF-unexec-Symbol-table-patching.patch -Patch34: emacs-24-0014-ELF-unexec-_OBJC_-symbols-in-bss-sections.patch -Patch35: emacs-24-0015-ELF-unexec-R_-_NONE-relocs.patch -Patch36: emacs-24-0016-ELF-unexec-Drive-from-PT_LOAD-header-rather-than-sec.patch -Patch37: emacs-24-0017-ELF-unexec-Don-t-insert-a-new-section.patch -Patch38: emacs-24-0018-src-unexelf.c-NEW_PROGRAM_H-Remove-unused-macro-Bug-.patch -Patch39: emacs-24-0019-ELF-unexec-align-section-header.patch -Patch40: gmalloc.patch -Patch41: emacs-24-fix-missing-gtk-icons.patch - BuildRoot: %{_tmppath}/%{name}-%{version}-build %{expand: %%global include_info %(test -s /usr/share/info/info.info* && echo 0 || echo 1)} %{expand: %%global _exec_prefix %(type -p pkg-config &>/dev/null && pkg-config --variable prefix x11 || echo /usr/X11R6)} @@ -147,7 +130,7 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build %define appDefaultsDir %{_x11data}/app-defaults %define appDefaultsFile %{appDefaultsDir}/Emacs %endif -%define info_files emacs eintr elisp ada-mode auth autotype bovine calc ccmode cl dbus dired-x ebrowse ede ediff edt efaq eieio emacs-gnutls emacs-mime epa erc ert eshell eudc eww flymake forms gnus htmlfontify idlwave ido mairix-el message mh-e newsticker nxml-mode octave-mode org pcl-cvs pgg rcirc reftex remember sasl sc semantic ses sieve smtpmail speedbar srecode todo-mode tramp url vip viper widget wisent woman +%define info_files emacs eintr elisp ada-mode auth autotype bovine calc ccmode cl dbus dired-x ebrowse ede ediff edt eieio emacs-mime epa erc ert eshell eudc efaq eww flymake forms gnus emacs-gnutls htmlfontify idlwave ido info.info mairix-el message mh-e newsticker nxml-mode octave-mode org pcl-cvs pgg rcirc remember reftex sasl sc semantic ses sieve smtpmail speedbar srecode todo-mode tramp url vhdl-mode vip viper widget wisent woman %description Basic package for the GNU Emacs editor. Requires emacs-x11 or @@ -235,27 +218,12 @@ and most assembler-like syntaxes. %patch5 -p0 -b .psbdf %patch7 -p0 -b .psmu %patch8 -p0 -b .nvoid -%patch9 -p0 -b .inrange -%patch10 -p1 -b .prime %patch11 -p0 -b .xim %patch12 -p0 -b .x11r7 %patch15 -p0 -b .iconic %patch16 -p0 -b .flyspell -%patch17 -p0 -b .sigio %patch22 -p0 -b .obsolate %patch -p0 -b .0 -%patch30 -p1 -%patch31 -p1 -%patch32 -p1 -%patch33 -p1 -%patch34 -p1 -%patch35 -p1 -%patch36 -p1 -%patch37 -p1 -%patch38 -p1 -%patch39 -p1 -%patch40 -p1 -%patch41 -p1 %if %{without autoconf} # We don't want to run autoconf @@ -321,7 +289,7 @@ exit 1 } # remove reference to win32 info page - info_found="$(sed -rn '\@^\$[({](build)?infodir[})]/@{ s@\$\([A-Z_]*\)@@;s@.*/([^:]*):.*@\1@p; }' doc/*/Makefile.in|grep -v ^info|xargs|sed -e 's,efaq-w32 ,,')" + info_found="$((sed -rn '\@^info:@{ s@.*/@@;s/\.info//p; }' doc/emacs/Makefile.in doc/lispintro/Makefile.in doc/lispref/Makefile.in ; sed -rn '\@^INFO_COMMON@,\@^$@{ s@.*=@@; s@[[:blank:]]+@ @g; :join; /\\$/{N; s/\s*\\\n//; b join;}; p}' ./doc/misc/Makefile.in)|xargs|sed -e 's,efaq-w32 ,,')" if test "$info_found" != "%info_files" then echo Please update info_files >&2 @@ -666,7 +634,6 @@ fi %{_bindir}/ebrowse %{_bindir}/emacs %{_bindir}/emacsclient -%{_bindir}/grep-changelog %dir %{_prefix}/lib/emacs/ %dir %{_prefix}/lib/emacs/%{version}/ %dir %{_prefix}/lib/emacs/%{version}/*-suse-linux*/ @@ -683,7 +650,6 @@ fi %doc %{_datadir}/emacs/%{version}/etc/AUTHORS %doc %{_datadir}/emacs/%{version}/etc/CALC-NEWS %doc %{_datadir}/emacs/%{version}/etc/CENSORSHIP -%doc %{_datadir}/emacs/%{version}/etc/CONTRIBUTE %doc %{_datadir}/emacs/%{version}/etc/COPYING %doc %{_datadir}/emacs/%{version}/etc/DEBUG %doc %{_datadir}/emacs/%{version}/etc/DEVEL.HUMOR @@ -698,6 +664,7 @@ fi %doc %{_datadir}/emacs/%{version}/etc/GNU %doc %{_datadir}/emacs/%{version}/etc/GNUS-NEWS %doc %{_datadir}/emacs/%{version}/etc/HELLO +%doc %{_datadir}/emacs/%{version}/etc/HISTORY %doc %{_datadir}/emacs/%{version}/etc/JOKES %doc %{_datadir}/emacs/%{version}/etc/LINUX-GNU %doc %{_datadir}/emacs/%{version}/etc/MACHINES @@ -711,6 +678,7 @@ fi %doc %{_datadir}/emacs/%{version}/etc/NEWS.21 %doc %{_datadir}/emacs/%{version}/etc/NEWS.22 %doc %{_datadir}/emacs/%{version}/etc/NEWS.23 +%doc %{_datadir}/emacs/%{version}/etc/NEWS.24 %doc %{_datadir}/emacs/%{version}/etc/NEXTSTEP %doc %{_datadir}/emacs/%{version}/etc/NXML-NEWS %doc %{_datadir}/emacs/%{version}/etc/ORDERS @@ -888,6 +856,7 @@ fi %{_datadir}/emacs/%{version}/etc/images/checked.xpm %{_datadir}/emacs/%{version}/etc/images/close.pbm %{_datadir}/emacs/%{version}/etc/images/close.xpm +%{_datadir}/emacs/%{version}/etc/images/connect.pbm %{_datadir}/emacs/%{version}/etc/images/connect.xpm %{_datadir}/emacs/%{version}/etc/images/contact.pbm %{_datadir}/emacs/%{version}/etc/images/contact.xpm @@ -895,9 +864,13 @@ fi %{_datadir}/emacs/%{version}/etc/images/copy.xpm %dir %{_datadir}/emacs/%{version}/etc/images/custom/ %doc %{_datadir}/emacs/%{version}/etc/images/custom/README +%{_datadir}/emacs/%{version}/etc/images/custom/down-pushed.pbm %{_datadir}/emacs/%{version}/etc/images/custom/down-pushed.xpm +%{_datadir}/emacs/%{version}/etc/images/custom/down.pbm %{_datadir}/emacs/%{version}/etc/images/custom/down.xpm +%{_datadir}/emacs/%{version}/etc/images/custom/right-pushed.pbm %{_datadir}/emacs/%{version}/etc/images/custom/right-pushed.xpm +%{_datadir}/emacs/%{version}/etc/images/custom/right.pbm %{_datadir}/emacs/%{version}/etc/images/custom/right.xpm %{_datadir}/emacs/%{version}/etc/images/cut.pbm %{_datadir}/emacs/%{version}/etc/images/cut.xpm @@ -905,40 +878,69 @@ fi %{_datadir}/emacs/%{version}/etc/images/data-save.xpm %{_datadir}/emacs/%{version}/etc/images/delete.pbm %{_datadir}/emacs/%{version}/etc/images/delete.xpm +%{_datadir}/emacs/%{version}/etc/images/describe.pbm %{_datadir}/emacs/%{version}/etc/images/describe.xpm %{_datadir}/emacs/%{version}/etc/images/diropen.pbm %{_datadir}/emacs/%{version}/etc/images/diropen.xpm +%{_datadir}/emacs/%{version}/etc/images/disconnect.pbm %{_datadir}/emacs/%{version}/etc/images/disconnect.xpm %{_datadir}/emacs/%{version}/etc/images/exit.pbm %{_datadir}/emacs/%{version}/etc/images/exit.xpm %dir %{_datadir}/emacs/%{version}/etc/images/ezimage/ %doc %{_datadir}/emacs/%{version}/etc/images/ezimage/README +%{_datadir}/emacs/%{version}/etc/images/ezimage/bits.pbm %{_datadir}/emacs/%{version}/etc/images/ezimage/bits.xpm +%{_datadir}/emacs/%{version}/etc/images/ezimage/bitsbang.pbm %{_datadir}/emacs/%{version}/etc/images/ezimage/bitsbang.xpm +%{_datadir}/emacs/%{version}/etc/images/ezimage/box-minus.pbm %{_datadir}/emacs/%{version}/etc/images/ezimage/box-minus.xpm +%{_datadir}/emacs/%{version}/etc/images/ezimage/box-plus.pbm %{_datadir}/emacs/%{version}/etc/images/ezimage/box-plus.xpm +%{_datadir}/emacs/%{version}/etc/images/ezimage/box.pbm %{_datadir}/emacs/%{version}/etc/images/ezimage/box.xpm +%{_datadir}/emacs/%{version}/etc/images/ezimage/checkmark.pbm %{_datadir}/emacs/%{version}/etc/images/ezimage/checkmark.xpm +%{_datadir}/emacs/%{version}/etc/images/ezimage/dir-minus.pbm %{_datadir}/emacs/%{version}/etc/images/ezimage/dir-minus.xpm +%{_datadir}/emacs/%{version}/etc/images/ezimage/dir-plus.pbm %{_datadir}/emacs/%{version}/etc/images/ezimage/dir-plus.xpm +%{_datadir}/emacs/%{version}/etc/images/ezimage/dir.pbm %{_datadir}/emacs/%{version}/etc/images/ezimage/dir.xpm +%{_datadir}/emacs/%{version}/etc/images/ezimage/doc-minus.pbm %{_datadir}/emacs/%{version}/etc/images/ezimage/doc-minus.xpm +%{_datadir}/emacs/%{version}/etc/images/ezimage/doc-plus.pbm %{_datadir}/emacs/%{version}/etc/images/ezimage/doc-plus.xpm +%{_datadir}/emacs/%{version}/etc/images/ezimage/doc.pbm %{_datadir}/emacs/%{version}/etc/images/ezimage/doc.xpm +%{_datadir}/emacs/%{version}/etc/images/ezimage/info.pbm %{_datadir}/emacs/%{version}/etc/images/ezimage/info.xpm +%{_datadir}/emacs/%{version}/etc/images/ezimage/key.pbm %{_datadir}/emacs/%{version}/etc/images/ezimage/key.xpm +%{_datadir}/emacs/%{version}/etc/images/ezimage/label.pbm %{_datadir}/emacs/%{version}/etc/images/ezimage/label.xpm +%{_datadir}/emacs/%{version}/etc/images/ezimage/lock.pbm %{_datadir}/emacs/%{version}/etc/images/ezimage/lock.xpm +%{_datadir}/emacs/%{version}/etc/images/ezimage/mail.pbm %{_datadir}/emacs/%{version}/etc/images/ezimage/mail.xpm +%{_datadir}/emacs/%{version}/etc/images/ezimage/page-minus.pbm %{_datadir}/emacs/%{version}/etc/images/ezimage/page-minus.xpm +%{_datadir}/emacs/%{version}/etc/images/ezimage/page-plus.pbm %{_datadir}/emacs/%{version}/etc/images/ezimage/page-plus.xpm +%{_datadir}/emacs/%{version}/etc/images/ezimage/page.pbm %{_datadir}/emacs/%{version}/etc/images/ezimage/page.xpm +%{_datadir}/emacs/%{version}/etc/images/ezimage/tag-gt.pbm %{_datadir}/emacs/%{version}/etc/images/ezimage/tag-gt.xpm +%{_datadir}/emacs/%{version}/etc/images/ezimage/tag-minus.pbm %{_datadir}/emacs/%{version}/etc/images/ezimage/tag-minus.xpm +%{_datadir}/emacs/%{version}/etc/images/ezimage/tag-plus.pbm %{_datadir}/emacs/%{version}/etc/images/ezimage/tag-plus.xpm +%{_datadir}/emacs/%{version}/etc/images/ezimage/tag-type.pbm %{_datadir}/emacs/%{version}/etc/images/ezimage/tag-type.xpm +%{_datadir}/emacs/%{version}/etc/images/ezimage/tag-v.pbm %{_datadir}/emacs/%{version}/etc/images/ezimage/tag-v.xpm +%{_datadir}/emacs/%{version}/etc/images/ezimage/tag.pbm %{_datadir}/emacs/%{version}/etc/images/ezimage/tag.xpm +%{_datadir}/emacs/%{version}/etc/images/ezimage/unlock.pbm %{_datadir}/emacs/%{version}/etc/images/ezimage/unlock.xpm %{_datadir}/emacs/%{version}/etc/images/fwd-arrow.pbm %{_datadir}/emacs/%{version}/etc/images/fwd-arrow.xpm @@ -969,11 +971,13 @@ fi %{_datadir}/emacs/%{version}/etc/images/gnus/gnus.svg %{_datadir}/emacs/%{version}/etc/images/gnus/gnus.xbm %{_datadir}/emacs/%{version}/etc/images/gnus/gnus.xpm +%{_datadir}/emacs/%{version}/etc/images/gnus/important.pbm %{_datadir}/emacs/%{version}/etc/images/gnus/important.xpm %{_datadir}/emacs/%{version}/etc/images/gnus/kill-group.pbm %{_datadir}/emacs/%{version}/etc/images/gnus/kill-group.xpm %{_datadir}/emacs/%{version}/etc/images/gnus/mail-reply.pbm %{_datadir}/emacs/%{version}/etc/images/gnus/mail-reply.xpm +%{_datadir}/emacs/%{version}/etc/images/gnus/mail-send.pbm %{_datadir}/emacs/%{version}/etc/images/gnus/mail-send.xpm %{_datadir}/emacs/%{version}/etc/images/gnus/next-ur.pbm %{_datadir}/emacs/%{version}/etc/images/gnus/next-ur.xpm @@ -983,6 +987,7 @@ fi %{_datadir}/emacs/%{version}/etc/images/gnus/prev-ur.xpm %{_datadir}/emacs/%{version}/etc/images/gnus/preview.xbm %{_datadir}/emacs/%{version}/etc/images/gnus/preview.xpm +%{_datadir}/emacs/%{version}/etc/images/gnus/receipt.pbm %{_datadir}/emacs/%{version}/etc/images/gnus/receipt.xpm %{_datadir}/emacs/%{version}/etc/images/gnus/reply-wo.pbm %{_datadir}/emacs/%{version}/etc/images/gnus/reply-wo.xpm @@ -996,7 +1001,9 @@ fi %{_datadir}/emacs/%{version}/etc/images/gnus/save-art.xpm %{_datadir}/emacs/%{version}/etc/images/gnus/subscribe.pbm %{_datadir}/emacs/%{version}/etc/images/gnus/subscribe.xpm +%{_datadir}/emacs/%{version}/etc/images/gnus/toggle-subscription.pbm %{_datadir}/emacs/%{version}/etc/images/gnus/toggle-subscription.xpm +%{_datadir}/emacs/%{version}/etc/images/gnus/unimportant.pbm %{_datadir}/emacs/%{version}/etc/images/gnus/unimportant.xpm %{_datadir}/emacs/%{version}/etc/images/gnus/unsubscribe.pbm %{_datadir}/emacs/%{version}/etc/images/gnus/unsubscribe.xpm @@ -1006,6 +1013,7 @@ fi %{_datadir}/emacs/%{version}/etc/images/gnus/uu-post.xpm %dir %{_datadir}/emacs/%{version}/etc/images/gud/ %doc %{_datadir}/emacs/%{version}/etc/images/gud/README +%{_datadir}/emacs/%{version}/etc/images/gud/all.pbm %{_datadir}/emacs/%{version}/etc/images/gud/all.xpm %{_datadir}/emacs/%{version}/etc/images/gud/break.pbm %{_datadir}/emacs/%{version}/etc/images/gud/break.xpm @@ -1027,15 +1035,23 @@ fi %{_datadir}/emacs/%{version}/etc/images/gud/print.xpm %{_datadir}/emacs/%{version}/etc/images/gud/pstar.pbm %{_datadir}/emacs/%{version}/etc/images/gud/pstar.xpm +%{_datadir}/emacs/%{version}/etc/images/gud/rcont.pbm %{_datadir}/emacs/%{version}/etc/images/gud/rcont.xpm +%{_datadir}/emacs/%{version}/etc/images/gud/recstart.pbm %{_datadir}/emacs/%{version}/etc/images/gud/recstart.xpm +%{_datadir}/emacs/%{version}/etc/images/gud/recstop.pbm %{_datadir}/emacs/%{version}/etc/images/gud/recstop.xpm %{_datadir}/emacs/%{version}/etc/images/gud/remove.pbm %{_datadir}/emacs/%{version}/etc/images/gud/remove.xpm +%{_datadir}/emacs/%{version}/etc/images/gud/rfinish.pbm %{_datadir}/emacs/%{version}/etc/images/gud/rfinish.xpm +%{_datadir}/emacs/%{version}/etc/images/gud/rnext.pbm %{_datadir}/emacs/%{version}/etc/images/gud/rnext.xpm +%{_datadir}/emacs/%{version}/etc/images/gud/rnexti.pbm %{_datadir}/emacs/%{version}/etc/images/gud/rnexti.xpm +%{_datadir}/emacs/%{version}/etc/images/gud/rstep.pbm %{_datadir}/emacs/%{version}/etc/images/gud/rstep.xpm +%{_datadir}/emacs/%{version}/etc/images/gud/rstepi.pbm %{_datadir}/emacs/%{version}/etc/images/gud/rstepi.xpm %{_datadir}/emacs/%{version}/etc/images/gud/run.pbm %{_datadir}/emacs/%{version}/etc/images/gud/run.xpm @@ -1045,6 +1061,7 @@ fi %{_datadir}/emacs/%{version}/etc/images/gud/stepi.xpm %{_datadir}/emacs/%{version}/etc/images/gud/stop.pbm %{_datadir}/emacs/%{version}/etc/images/gud/stop.xpm +%{_datadir}/emacs/%{version}/etc/images/gud/thread.pbm %{_datadir}/emacs/%{version}/etc/images/gud/thread.xpm %{_datadir}/emacs/%{version}/etc/images/gud/until.pbm %{_datadir}/emacs/%{version}/etc/images/gud/until.xpm @@ -1109,27 +1126,34 @@ fi %dir %{_datadir}/emacs/%{version}/etc/images/icons/hicolor/128x128/ %dir %{_datadir}/emacs/%{version}/etc/images/icons/hicolor/128x128/apps/ %{_datadir}/emacs/%{version}/etc/images/icons/hicolor/128x128/apps/emacs.png +%{_datadir}/emacs/%{version}/etc/images/icons/hicolor/128x128/apps/emacs23.png %dir %{_datadir}/emacs/%{version}/etc/images/icons/hicolor/16x16/ %dir %{_datadir}/emacs/%{version}/etc/images/icons/hicolor/16x16/apps/ %{_datadir}/emacs/%{version}/etc/images/icons/hicolor/16x16/apps/emacs.png %{_datadir}/emacs/%{version}/etc/images/icons/hicolor/16x16/apps/emacs22.png +%{_datadir}/emacs/%{version}/etc/images/icons/hicolor/16x16/apps/emacs23.png %dir %{_datadir}/emacs/%{version}/etc/images/icons/hicolor/24x24/ %dir %{_datadir}/emacs/%{version}/etc/images/icons/hicolor/24x24/apps/ %{_datadir}/emacs/%{version}/etc/images/icons/hicolor/24x24/apps/emacs.png %{_datadir}/emacs/%{version}/etc/images/icons/hicolor/24x24/apps/emacs22.png +%{_datadir}/emacs/%{version}/etc/images/icons/hicolor/24x24/apps/emacs23.png %dir %{_datadir}/emacs/%{version}/etc/images/icons/hicolor/32x32/ %dir %{_datadir}/emacs/%{version}/etc/images/icons/hicolor/32x32/apps/ %{_datadir}/emacs/%{version}/etc/images/icons/hicolor/32x32/apps/emacs.png %{_datadir}/emacs/%{version}/etc/images/icons/hicolor/32x32/apps/emacs22.png +%{_datadir}/emacs/%{version}/etc/images/icons/hicolor/32x32/apps/emacs23.png %dir %{_datadir}/emacs/%{version}/etc/images/icons/hicolor/48x48/ %dir %{_datadir}/emacs/%{version}/etc/images/icons/hicolor/48x48/apps/ %{_datadir}/emacs/%{version}/etc/images/icons/hicolor/48x48/apps/emacs.png %{_datadir}/emacs/%{version}/etc/images/icons/hicolor/48x48/apps/emacs22.png +%{_datadir}/emacs/%{version}/etc/images/icons/hicolor/48x48/apps/emacs23.png %dir %{_datadir}/emacs/%{version}/etc/images/icons/hicolor/scalable/ %dir %{_datadir}/emacs/%{version}/etc/images/icons/hicolor/scalable/apps/ %{_datadir}/emacs/%{version}/etc/images/icons/hicolor/scalable/apps/emacs.svg +%{_datadir}/emacs/%{version}/etc/images/icons/hicolor/scalable/apps/emacs23.svg %dir %{_datadir}/emacs/%{version}/etc/images/icons/hicolor/scalable/mimetypes/ %{_datadir}/emacs/%{version}/etc/images/icons/hicolor/scalable/mimetypes/emacs-document.svg +%{_datadir}/emacs/%{version}/etc/images/icons/hicolor/scalable/mimetypes/emacs-document23.svg %{_datadir}/emacs/%{version}/etc/images/index.pbm %{_datadir}/emacs/%{version}/etc/images/index.xpm %{_datadir}/emacs/%{version}/etc/images/info.pbm @@ -1140,8 +1164,11 @@ fi %{_datadir}/emacs/%{version}/etc/images/left-arrow.xpm %{_datadir}/emacs/%{version}/etc/images/letter.pbm %{_datadir}/emacs/%{version}/etc/images/letter.xpm +%{_datadir}/emacs/%{version}/etc/images/lock-broken.pbm %{_datadir}/emacs/%{version}/etc/images/lock-broken.xpm +%{_datadir}/emacs/%{version}/etc/images/lock-ok.pbm %{_datadir}/emacs/%{version}/etc/images/lock-ok.xpm +%{_datadir}/emacs/%{version}/etc/images/lock.pbm %{_datadir}/emacs/%{version}/etc/images/lock.xpm %dir %{_datadir}/emacs/%{version}/etc/images/low-color/ %doc %{_datadir}/emacs/%{version}/etc/images/low-color/README @@ -1173,16 +1200,21 @@ fi %doc %{_datadir}/emacs/%{version}/etc/images/mail/README %{_datadir}/emacs/%{version}/etc/images/mail/compose.pbm %{_datadir}/emacs/%{version}/etc/images/mail/compose.xpm +%{_datadir}/emacs/%{version}/etc/images/mail/copy.pbm %{_datadir}/emacs/%{version}/etc/images/mail/copy.xpm %{_datadir}/emacs/%{version}/etc/images/mail/flag-for-followup.pbm %{_datadir}/emacs/%{version}/etc/images/mail/flag-for-followup.xpm +%{_datadir}/emacs/%{version}/etc/images/mail/forward.pbm %{_datadir}/emacs/%{version}/etc/images/mail/forward.xpm %{_datadir}/emacs/%{version}/etc/images/mail/inbox.pbm %{_datadir}/emacs/%{version}/etc/images/mail/inbox.xpm %{_datadir}/emacs/%{version}/etc/images/mail/move.pbm %{_datadir}/emacs/%{version}/etc/images/mail/move.xpm +%{_datadir}/emacs/%{version}/etc/images/mail/not-spam.pbm %{_datadir}/emacs/%{version}/etc/images/mail/not-spam.xpm +%{_datadir}/emacs/%{version}/etc/images/mail/outbox.pbm %{_datadir}/emacs/%{version}/etc/images/mail/outbox.xpm +%{_datadir}/emacs/%{version}/etc/images/mail/preview.pbm %{_datadir}/emacs/%{version}/etc/images/mail/preview.xpm %{_datadir}/emacs/%{version}/etc/images/mail/repack.pbm %{_datadir}/emacs/%{version}/etc/images/mail/repack.xpm @@ -1194,21 +1226,31 @@ fi %{_datadir}/emacs/%{version}/etc/images/mail/reply-to.xpm %{_datadir}/emacs/%{version}/etc/images/mail/reply.pbm %{_datadir}/emacs/%{version}/etc/images/mail/reply.xpm +%{_datadir}/emacs/%{version}/etc/images/mail/save-draft.pbm %{_datadir}/emacs/%{version}/etc/images/mail/save-draft.xpm %{_datadir}/emacs/%{version}/etc/images/mail/save.xpm %{_datadir}/emacs/%{version}/etc/images/mail/send.pbm %{_datadir}/emacs/%{version}/etc/images/mail/send.xpm %{_datadir}/emacs/%{version}/etc/images/mail/spam.xpm +%{_datadir}/emacs/%{version}/etc/images/mh-logo.pbm %{_datadir}/emacs/%{version}/etc/images/mh-logo.xpm %dir %{_datadir}/emacs/%{version}/etc/images/mpc/ %doc %{_datadir}/emacs/%{version}/etc/images/mpc/README +%{_datadir}/emacs/%{version}/etc/images/mpc/add.pbm %{_datadir}/emacs/%{version}/etc/images/mpc/add.xpm +%{_datadir}/emacs/%{version}/etc/images/mpc/ffwd.pbm %{_datadir}/emacs/%{version}/etc/images/mpc/ffwd.xpm +%{_datadir}/emacs/%{version}/etc/images/mpc/next.pbm %{_datadir}/emacs/%{version}/etc/images/mpc/next.xpm +%{_datadir}/emacs/%{version}/etc/images/mpc/pause.pbm %{_datadir}/emacs/%{version}/etc/images/mpc/pause.xpm +%{_datadir}/emacs/%{version}/etc/images/mpc/play.pbm %{_datadir}/emacs/%{version}/etc/images/mpc/play.xpm +%{_datadir}/emacs/%{version}/etc/images/mpc/prev.pbm %{_datadir}/emacs/%{version}/etc/images/mpc/prev.xpm +%{_datadir}/emacs/%{version}/etc/images/mpc/rewind.pbm %{_datadir}/emacs/%{version}/etc/images/mpc/rewind.xpm +%{_datadir}/emacs/%{version}/etc/images/mpc/stop.pbm %{_datadir}/emacs/%{version}/etc/images/mpc/stop.xpm %{_datadir}/emacs/%{version}/etc/images/new.pbm %{_datadir}/emacs/%{version}/etc/images/new.xpm @@ -1223,6 +1265,8 @@ fi %{_datadir}/emacs/%{version}/etc/images/newsticker/next-item.xpm %{_datadir}/emacs/%{version}/etc/images/newsticker/prev-feed.xpm %{_datadir}/emacs/%{version}/etc/images/newsticker/prev-item.xpm +%{_datadir}/emacs/%{version}/etc/images/newsticker/rss-feed.png +%{_datadir}/emacs/%{version}/etc/images/newsticker/rss-feed.svg %{_datadir}/emacs/%{version}/etc/images/newsticker/update.xpm %{_datadir}/emacs/%{version}/etc/images/next-node.pbm %{_datadir}/emacs/%{version}/etc/images/next-node.xpm @@ -1238,6 +1282,7 @@ fi %{_datadir}/emacs/%{version}/etc/images/prev-node.xpm %{_datadir}/emacs/%{version}/etc/images/print.pbm %{_datadir}/emacs/%{version}/etc/images/print.xpm +%{_datadir}/emacs/%{version}/etc/images/redo.pbm %{_datadir}/emacs/%{version}/etc/images/redo.xpm %{_datadir}/emacs/%{version}/etc/images/refresh.pbm %{_datadir}/emacs/%{version}/etc/images/refresh.xpm @@ -1251,6 +1296,7 @@ fi %{_datadir}/emacs/%{version}/etc/images/search-replace.xpm %{_datadir}/emacs/%{version}/etc/images/search.pbm %{_datadir}/emacs/%{version}/etc/images/search.xpm +%{_datadir}/emacs/%{version}/etc/images/separator.pbm %{_datadir}/emacs/%{version}/etc/images/separator.xpm %{_datadir}/emacs/%{version}/etc/images/show.pbm %{_datadir}/emacs/%{version}/etc/images/show.xpm @@ -1258,10 +1304,15 @@ fi %doc %{_datadir}/emacs/%{version}/etc/images/smilies/README %{_datadir}/emacs/%{version}/etc/images/smilies/blink.pbm %{_datadir}/emacs/%{version}/etc/images/smilies/blink.xpm +%{_datadir}/emacs/%{version}/etc/images/smilies/braindamaged.pbm %{_datadir}/emacs/%{version}/etc/images/smilies/braindamaged.xpm +%{_datadir}/emacs/%{version}/etc/images/smilies/cry.pbm %{_datadir}/emacs/%{version}/etc/images/smilies/cry.xpm +%{_datadir}/emacs/%{version}/etc/images/smilies/dead.pbm %{_datadir}/emacs/%{version}/etc/images/smilies/dead.xpm +%{_datadir}/emacs/%{version}/etc/images/smilies/evil.pbm %{_datadir}/emacs/%{version}/etc/images/smilies/evil.xpm +%{_datadir}/emacs/%{version}/etc/images/smilies/forced.pbm %{_datadir}/emacs/%{version}/etc/images/smilies/forced.xpm %{_datadir}/emacs/%{version}/etc/images/smilies/frown.pbm %{_datadir}/emacs/%{version}/etc/images/smilies/frown.xpm @@ -1280,7 +1331,9 @@ fi %{_datadir}/emacs/%{version}/etc/images/smilies/grayscale/sad.xpm %{_datadir}/emacs/%{version}/etc/images/smilies/grayscale/smile.xpm %{_datadir}/emacs/%{version}/etc/images/smilies/grayscale/wry.xpm +%{_datadir}/emacs/%{version}/etc/images/smilies/grin.pbm %{_datadir}/emacs/%{version}/etc/images/smilies/grin.xpm +%{_datadir}/emacs/%{version}/etc/images/smilies/indifferent.pbm %{_datadir}/emacs/%{version}/etc/images/smilies/indifferent.xpm %dir %{_datadir}/emacs/%{version}/etc/images/smilies/medium/ %doc %{_datadir}/emacs/%{version}/etc/images/smilies/medium/README @@ -1303,10 +1356,15 @@ fi %{_datadir}/emacs/%{version}/etc/images/smilies/smile.xpm %{_datadir}/emacs/%{version}/etc/images/smilies/wry.pbm %{_datadir}/emacs/%{version}/etc/images/smilies/wry.xpm +%{_datadir}/emacs/%{version}/etc/images/sort-ascending.pbm %{_datadir}/emacs/%{version}/etc/images/sort-ascending.xpm +%{_datadir}/emacs/%{version}/etc/images/sort-column-ascending.pbm %{_datadir}/emacs/%{version}/etc/images/sort-column-ascending.xpm +%{_datadir}/emacs/%{version}/etc/images/sort-criteria.pbm %{_datadir}/emacs/%{version}/etc/images/sort-criteria.xpm +%{_datadir}/emacs/%{version}/etc/images/sort-descending.pbm %{_datadir}/emacs/%{version}/etc/images/sort-descending.xpm +%{_datadir}/emacs/%{version}/etc/images/sort-row-ascending.pbm %{_datadir}/emacs/%{version}/etc/images/sort-row-ascending.xpm %{_datadir}/emacs/%{version}/etc/images/spell.pbm %{_datadir}/emacs/%{version}/etc/images/spell.xpm @@ -1355,6 +1413,7 @@ fi %{_datadir}/emacs/%{version}/etc/images/tree-widget/folder/no-handle.xpm %{_datadir}/emacs/%{version}/etc/images/tree-widget/folder/open.png %{_datadir}/emacs/%{version}/etc/images/tree-widget/folder/open.xpm +%{_datadir}/emacs/%{version}/etc/images/unchecked.pbm %{_datadir}/emacs/%{version}/etc/images/unchecked.xpm %{_datadir}/emacs/%{version}/etc/images/undo.pbm %{_datadir}/emacs/%{version}/etc/images/undo.xpm @@ -1362,6 +1421,7 @@ fi %{_datadir}/emacs/%{version}/etc/images/up-arrow.xpm %{_datadir}/emacs/%{version}/etc/images/up-node.pbm %{_datadir}/emacs/%{version}/etc/images/up-node.xpm +%{_datadir}/emacs/%{version}/etc/images/zoom-in.pbm %{_datadir}/emacs/%{version}/etc/images/zoom-in.xpm %{_datadir}/emacs/%{version}/etc/images/zoom-out.pbm %{_datadir}/emacs/%{version}/etc/images/zoom-out.xpm @@ -1475,7 +1535,7 @@ fi %{_datadir}/emacs/%{version}/etc/package-keyring.gpg %{_datadir}/emacs/%{version}/etc/ps-prin0.ps %{_datadir}/emacs/%{version}/etc/ps-prin1.ps -%{_datadir}/emacs/%{version}/etc/publicsuffix.txt +%{_datadir}/emacs/%{version}/etc/publicsuffix.txt.gz %dir %{_datadir}/emacs/%{version}/etc/refcards/ %{_datadir}/emacs/%{version}/etc/refcards/Makefile %doc %{_datadir}/emacs/%{version}/etc/refcards/README @@ -1492,6 +1552,7 @@ fi %doc %{_datadir}/emacs/%{version}/etc/refcards/dired-ref.pdf %doc %{_datadir}/emacs/%{version}/etc/refcards/dired-ref.tex %doc %{_datadir}/emacs/%{version}/etc/refcards/emacsver.tex +%doc %{_datadir}/emacs/%{version}/etc/refcards/emacsver.tex.in %doc %{_datadir}/emacs/%{version}/etc/refcards/fr-dired-ref.pdf %doc %{_datadir}/emacs/%{version}/etc/refcards/fr-dired-ref.tex %doc %{_datadir}/emacs/%{version}/etc/refcards/fr-refcard.pdf @@ -1506,19 +1567,13 @@ fi %doc %{_datadir}/emacs/%{version}/etc/refcards/orgcard.pdf %doc %{_datadir}/emacs/%{version}/etc/refcards/orgcard.tex %doc %{_datadir}/emacs/%{version}/etc/refcards/pdflayout.sty -%doc %{_datadir}/emacs/%{version}/etc/refcards/pl-refcard.pdf %doc %{_datadir}/emacs/%{version}/etc/refcards/pl-refcard.tex -%doc %{_datadir}/emacs/%{version}/etc/refcards/pt-br-refcard.pdf %doc %{_datadir}/emacs/%{version}/etc/refcards/pt-br-refcard.tex %doc %{_datadir}/emacs/%{version}/etc/refcards/refcard.pdf %doc %{_datadir}/emacs/%{version}/etc/refcards/refcard.tex -%doc %{_datadir}/emacs/%{version}/etc/refcards/ru-refcard.pdf %doc %{_datadir}/emacs/%{version}/etc/refcards/ru-refcard.tex -%doc %{_datadir}/emacs/%{version}/etc/refcards/sk-dired-ref.pdf %doc %{_datadir}/emacs/%{version}/etc/refcards/sk-dired-ref.tex -%doc %{_datadir}/emacs/%{version}/etc/refcards/sk-refcard.pdf %doc %{_datadir}/emacs/%{version}/etc/refcards/sk-refcard.tex -%doc %{_datadir}/emacs/%{version}/etc/refcards/sk-survival.pdf %doc %{_datadir}/emacs/%{version}/etc/refcards/sk-survival.tex %doc %{_datadir}/emacs/%{version}/etc/refcards/survival.pdf %doc %{_datadir}/emacs/%{version}/etc/refcards/survival.tex @@ -1741,11 +1796,14 @@ fi %{_datadir}/emacs/%{version}/lisp/cedet/cedet.elc %{_datadir}/emacs/%{version}/lisp/cedet/data-debug.elc %{_datadir}/emacs/%{version}/lisp/cedet/ede.elc +%dir %{_datadir}/emacs/%{version}/lisp/cedet/ede/ %{_datadir}/emacs/%{version}/lisp/cedet/ede/auto.elc %{_datadir}/emacs/%{version}/lisp/cedet/ede/autoconf-edit.elc %{_datadir}/emacs/%{version}/lisp/cedet/ede/base.elc +%{_datadir}/emacs/%{version}/lisp/cedet/ede/config.elc %{_datadir}/emacs/%{version}/lisp/cedet/ede/cpp-root.elc %{_datadir}/emacs/%{version}/lisp/cedet/ede/custom.elc +%{_datadir}/emacs/%{version}/lisp/cedet/ede/detect.elc %{_datadir}/emacs/%{version}/lisp/cedet/ede/dired.elc %{_datadir}/emacs/%{version}/lisp/cedet/ede/emacs.elc %{_datadir}/emacs/%{version}/lisp/cedet/ede/files.elc @@ -1780,6 +1838,7 @@ fi %{_datadir}/emacs/%{version}/lisp/cedet/mode-local.elc %{_datadir}/emacs/%{version}/lisp/cedet/pulse.elc %{_datadir}/emacs/%{version}/lisp/cedet/semantic.elc +%dir %{_datadir}/emacs/%{version}/lisp/cedet/semantic/ %{_datadir}/emacs/%{version}/lisp/cedet/semantic/analyze.elc %dir %{_datadir}/emacs/%{version}/lisp/cedet/semantic/analyze/ %{_datadir}/emacs/%{version}/lisp/cedet/semantic/analyze/complete.elc @@ -1867,6 +1926,7 @@ fi %{_datadir}/emacs/%{version}/lisp/cedet/semantic/wisent/python.elc %{_datadir}/emacs/%{version}/lisp/cedet/semantic/wisent/wisent.elc %{_datadir}/emacs/%{version}/lisp/cedet/srecode.elc +%dir %{_datadir}/emacs/%{version}/lisp/cedet/srecode/ %{_datadir}/emacs/%{version}/lisp/cedet/srecode/args.elc %{_datadir}/emacs/%{version}/lisp/cedet/srecode/compile.elc %{_datadir}/emacs/%{version}/lisp/cedet/srecode/cpp.elc @@ -1892,6 +1952,7 @@ fi %{_datadir}/emacs/%{version}/lisp/cedet/srecode/table.elc %{_datadir}/emacs/%{version}/lisp/cedet/srecode/template.elc %{_datadir}/emacs/%{version}/lisp/cedet/srecode/texi.elc +%{_datadir}/emacs/%{version}/lisp/char-fold.elc %{_datadir}/emacs/%{version}/lisp/chistory.elc %{_datadir}/emacs/%{version}/lisp/cmuscheme.elc %{_datadir}/emacs/%{version}/lisp/color.elc @@ -1918,6 +1979,7 @@ fi %{_datadir}/emacs/%{version}/lisp/disp-table.elc %{_datadir}/emacs/%{version}/lisp/dnd.elc %{_datadir}/emacs/%{version}/lisp/doc-view.elc +%{_datadir}/emacs/%{version}/lisp/dom.elc %{_datadir}/emacs/%{version}/lisp/dos-fns.elc %{_datadir}/emacs/%{version}/lisp/dos-vars.elc %{_datadir}/emacs/%{version}/lisp/dos-w32.elc @@ -1932,7 +1994,6 @@ fi %{_datadir}/emacs/%{version}/lisp/elide-head.elc %dir %{_datadir}/emacs/%{version}/lisp/emacs-lisp/ %{_datadir}/emacs/%{version}/lisp/emacs-lisp/advice.elc -%{_datadir}/emacs/%{version}/lisp/emacs-lisp/authors.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/autoload.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/avl-tree.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/backquote.elc @@ -1946,14 +2007,17 @@ fi %{_datadir}/emacs/%{version}/lisp/emacs-lisp/check-declare.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/checkdoc.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/cl-extra.elc +%{_datadir}/emacs/%{version}/lisp/emacs-lisp/cl-generic.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/cl-indent.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/cl-lib.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/cl-loaddefs.el %{_datadir}/emacs/%{version}/lisp/emacs-lisp/cl-macs.elc +%{_datadir}/emacs/%{version}/lisp/emacs-lisp/cl-preloaded.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/cl-seq.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/cl.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/copyright.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/crm.elc +%{_datadir}/emacs/%{version}/lisp/emacs-lisp/cursor-sensor.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/debug.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/derived.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/disass.elc @@ -1961,6 +2025,7 @@ fi %{_datadir}/emacs/%{version}/lisp/emacs-lisp/easymenu.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/edebug.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/eieio-base.elc +%{_datadir}/emacs/%{version}/lisp/emacs-lisp/eieio-compat.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/eieio-core.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/eieio-custom.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/eieio-datadebug.elc @@ -1975,15 +2040,18 @@ fi %{_datadir}/emacs/%{version}/lisp/emacs-lisp/ewoc.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/find-func.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/float-sup.elc +%{_datadir}/emacs/%{version}/lisp/emacs-lisp/generator.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/generic.elc -%{_datadir}/emacs/%{version}/lisp/emacs-lisp/gulp.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/gv.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/helper.elc +%{_datadir}/emacs/%{version}/lisp/emacs-lisp/inline.elc +%{_datadir}/emacs/%{version}/lisp/emacs-lisp/let-alist.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/lisp-mnt.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/lisp-mode.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/lisp.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/macroexp.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/map-ynp.elc +%{_datadir}/emacs/%{version}/lisp/emacs-lisp/map.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/nadvice.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/package-x.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/package.elc @@ -1994,6 +2062,7 @@ fi %{_datadir}/emacs/%{version}/lisp/emacs-lisp/regi.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/ring.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/rx.elc +%{_datadir}/emacs/%{version}/lisp/emacs-lisp/seq.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/shadow.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/smie.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/subr-x.elc @@ -2002,6 +2071,7 @@ fi %{_datadir}/emacs/%{version}/lisp/emacs-lisp/tcover-ses.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/tcover-unsafep.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/testcover.elc +%{_datadir}/emacs/%{version}/lisp/emacs-lisp/thunk.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/timer.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/tq.elc %{_datadir}/emacs/%{version}/lisp/emacs-lisp/trace.elc @@ -2145,6 +2215,7 @@ fi %{_datadir}/emacs/%{version}/lisp/gnus/gnus-bookmark.elc %{_datadir}/emacs/%{version}/lisp/gnus/gnus-cache.elc %{_datadir}/emacs/%{version}/lisp/gnus/gnus-cite.elc +%{_datadir}/emacs/%{version}/lisp/gnus/gnus-cloud.elc %{_datadir}/emacs/%{version}/lisp/gnus/gnus-cus.elc %{_datadir}/emacs/%{version}/lisp/gnus/gnus-delay.elc %{_datadir}/emacs/%{version}/lisp/gnus/gnus-demon.elc @@ -2172,7 +2243,6 @@ fi %{_datadir}/emacs/%{version}/lisp/gnus/gnus-registry.elc %{_datadir}/emacs/%{version}/lisp/gnus/gnus-salt.elc %{_datadir}/emacs/%{version}/lisp/gnus/gnus-score.elc -%{_datadir}/emacs/%{version}/lisp/gnus/gnus-setup.elc %{_datadir}/emacs/%{version}/lisp/gnus/gnus-sieve.elc %{_datadir}/emacs/%{version}/lisp/gnus/gnus-spec.elc %{_datadir}/emacs/%{version}/lisp/gnus/gnus-srvr.elc @@ -2245,7 +2315,6 @@ fi %{_datadir}/emacs/%{version}/lisp/gnus/rfc1843.elc %{_datadir}/emacs/%{version}/lisp/gnus/rfc2045.elc %{_datadir}/emacs/%{version}/lisp/gnus/rfc2047.elc -%{_datadir}/emacs/%{version}/lisp/gnus/rfc2104.elc %{_datadir}/emacs/%{version}/lisp/gnus/rfc2231.elc %{_datadir}/emacs/%{version}/lisp/gnus/rtree.elc %{_datadir}/emacs/%{version}/lisp/gnus/score-mode.elc @@ -2297,8 +2366,9 @@ fi %{_datadir}/emacs/%{version}/lisp/international/ccl.elc %{_datadir}/emacs/%{version}/lisp/international/characters.elc %{_datadir}/emacs/%{version}/lisp/international/charprop.el -%{_datadir}/emacs/%{version}/lisp/international/cp51932.el -%{_datadir}/emacs/%{version}/lisp/international/eucjp-ms.el +%{_datadir}/emacs/%{version}/lisp/international/charscript.elc +%{_datadir}/emacs/%{version}/lisp/international/cp51932.elc +%{_datadir}/emacs/%{version}/lisp/international/eucjp-ms.elc %{_datadir}/emacs/%{version}/lisp/international/fontset.elc %{_datadir}/emacs/%{version}/lisp/international/isearch-x.elc %{_datadir}/emacs/%{version}/lisp/international/iso-ascii.elc @@ -2430,6 +2500,7 @@ fi %{_datadir}/emacs/%{version}/lisp/leim/quail/latin-pre.elc %{_datadir}/emacs/%{version}/lisp/leim/quail/lrt.elc %{_datadir}/emacs/%{version}/lisp/leim/quail/persian.elc +%{_datadir}/emacs/%{version}/lisp/leim/quail/programmer-dvorak.elc %{_datadir}/emacs/%{version}/lisp/leim/quail/py-punct.elc %{_datadir}/emacs/%{version}/lisp/leim/quail/pypunct-b5.elc %{_datadir}/emacs/%{version}/lisp/leim/quail/quick-b5.elc @@ -2439,6 +2510,7 @@ fi %{_datadir}/emacs/%{version}/lisp/leim/quail/sisheng.elc %{_datadir}/emacs/%{version}/lisp/leim/quail/slovak.elc %{_datadir}/emacs/%{version}/lisp/leim/quail/symbol-ksc.elc +%{_datadir}/emacs/%{version}/lisp/leim/quail/tamil-dvorak.elc %{_datadir}/emacs/%{version}/lisp/leim/quail/thai.elc %{_datadir}/emacs/%{version}/lisp/leim/quail/tibetan.elc %{_datadir}/emacs/%{version}/lisp/leim/quail/tsang-b5.elc @@ -2549,7 +2621,6 @@ fi %{_datadir}/emacs/%{version}/lisp/net/eudcb-bbdb.elc %{_datadir}/emacs/%{version}/lisp/net/eudcb-ldap.elc %{_datadir}/emacs/%{version}/lisp/net/eudcb-mab.elc -%{_datadir}/emacs/%{version}/lisp/net/eudcb-ph.elc %{_datadir}/emacs/%{version}/lisp/net/eww.elc %{_datadir}/emacs/%{version}/lisp/net/gnutls.elc %{_datadir}/emacs/%{version}/lisp/net/goto-addr.elc @@ -2567,13 +2638,17 @@ fi %{_datadir}/emacs/%{version}/lisp/net/newst-ticker.elc %{_datadir}/emacs/%{version}/lisp/net/newst-treeview.elc %{_datadir}/emacs/%{version}/lisp/net/newsticker.elc +%{_datadir}/emacs/%{version}/lisp/net/nsm.elc %{_datadir}/emacs/%{version}/lisp/net/ntlm.elc +%{_datadir}/emacs/%{version}/lisp/net/pinentry.elc %{_datadir}/emacs/%{version}/lisp/net/quickurl.elc %{_datadir}/emacs/%{version}/lisp/net/rcirc.elc +%{_datadir}/emacs/%{version}/lisp/net/rfc2104.elc %{_datadir}/emacs/%{version}/lisp/net/rlogin.elc %{_datadir}/emacs/%{version}/lisp/net/sasl-cram.elc %{_datadir}/emacs/%{version}/lisp/net/sasl-digest.elc %{_datadir}/emacs/%{version}/lisp/net/sasl-ntlm.elc +%{_datadir}/emacs/%{version}/lisp/net/sasl-scram-rfc.elc %{_datadir}/emacs/%{version}/lisp/net/sasl.elc %{_datadir}/emacs/%{version}/lisp/net/secrets.elc %{_datadir}/emacs/%{version}/lisp/net/shr-color.elc @@ -2627,23 +2702,27 @@ fi %{_datadir}/emacs/%{version}/lisp/nxml/rng-xsd.elc %{_datadir}/emacs/%{version}/lisp/nxml/xmltok.elc %{_datadir}/emacs/%{version}/lisp/nxml/xsd-regexp.elc +%{_datadir}/emacs/%{version}/lisp/obarray.elc %dir %{_datadir}/emacs/%{version}/lisp/obsolete/ %{_datadir}/emacs/%{version}/lisp/obsolete/abbrevlist.elc %{_datadir}/emacs/%{version}/lisp/obsolete/assoc.elc %{_datadir}/emacs/%{version}/lisp/obsolete/awk-mode.elc -%{_datadir}/emacs/%{version}/lisp/obsolete/bruce.el +%{_datadir}/emacs/%{version}/lisp/obsolete/bruce.elc %{_datadir}/emacs/%{version}/lisp/obsolete/cc-compat.elc %{_datadir}/emacs/%{version}/lisp/obsolete/cl-compat.elc %{_datadir}/emacs/%{version}/lisp/obsolete/complete.elc %{_datadir}/emacs/%{version}/lisp/obsolete/crisp.elc %{_datadir}/emacs/%{version}/lisp/obsolete/cust-print.elc %{_datadir}/emacs/%{version}/lisp/obsolete/erc-hecomplete.elc +%{_datadir}/emacs/%{version}/lisp/obsolete/eudcb-ph.elc %{_datadir}/emacs/%{version}/lisp/obsolete/fast-lock.elc +%{_datadir}/emacs/%{version}/lisp/obsolete/gulp.elc %{_datadir}/emacs/%{version}/lisp/obsolete/iso-acc.elc %{_datadir}/emacs/%{version}/lisp/obsolete/iso-insert.elc %{_datadir}/emacs/%{version}/lisp/obsolete/iso-swed.elc %{_datadir}/emacs/%{version}/lisp/obsolete/iswitchb.elc -%{_datadir}/emacs/%{version}/lisp/obsolete/keyswap.el +%{_datadir}/emacs/%{version}/lisp/obsolete/keyswap.elc +%{_datadir}/emacs/%{version}/lisp/obsolete/landmark.elc %{_datadir}/emacs/%{version}/lisp/obsolete/lazy-lock.elc %{_datadir}/emacs/%{version}/lisp/obsolete/ledit.elc %{_datadir}/emacs/%{version}/lisp/obsolete/levents.elc @@ -2657,7 +2736,7 @@ fi %{_datadir}/emacs/%{version}/lisp/obsolete/old-whitespace.elc %{_datadir}/emacs/%{version}/lisp/obsolete/options.elc %{_datadir}/emacs/%{version}/lisp/obsolete/otodo-mode.elc -%{_datadir}/emacs/%{version}/lisp/obsolete/patcomp.el +%{_datadir}/emacs/%{version}/lisp/obsolete/patcomp.elc %{_datadir}/emacs/%{version}/lisp/obsolete/pc-mode.elc %{_datadir}/emacs/%{version}/lisp/obsolete/pc-select.elc %{_datadir}/emacs/%{version}/lisp/obsolete/pgg-def.elc @@ -2679,7 +2758,7 @@ fi %{_datadir}/emacs/%{version}/lisp/obsolete/tpu-edt.elc %{_datadir}/emacs/%{version}/lisp/obsolete/tpu-extras.elc %{_datadir}/emacs/%{version}/lisp/obsolete/tpu-mapper.elc -%{_datadir}/emacs/%{version}/lisp/obsolete/vc-mcvs.elc +%{_datadir}/emacs/%{version}/lisp/obsolete/vc-arch.elc %{_datadir}/emacs/%{version}/lisp/obsolete/vi.elc %{_datadir}/emacs/%{version}/lisp/obsolete/vip.elc %{_datadir}/emacs/%{version}/lisp/obsolete/ws-mode.elc @@ -2818,7 +2897,6 @@ fi %{_datadir}/emacs/%{version}/lisp/play/gomoku.elc %{_datadir}/emacs/%{version}/lisp/play/handwrite.elc %{_datadir}/emacs/%{version}/lisp/play/hanoi.elc -%{_datadir}/emacs/%{version}/lisp/play/landmark.elc %{_datadir}/emacs/%{version}/lisp/play/life.elc %{_datadir}/emacs/%{version}/lisp/play/morse.elc %{_datadir}/emacs/%{version}/lisp/play/mpuz.elc @@ -2842,7 +2920,6 @@ fi %{_datadir}/emacs/%{version}/lisp/progmodes/autoconf.elc %{_datadir}/emacs/%{version}/lisp/progmodes/bat-mode.elc %{_datadir}/emacs/%{version}/lisp/progmodes/bug-reference.elc -%{_datadir}/emacs/%{version}/lisp/progmodes/cap-words.elc %{_datadir}/emacs/%{version}/lisp/progmodes/cc-align.elc %{_datadir}/emacs/%{version}/lisp/progmodes/cc-awk.elc %{_datadir}/emacs/%{version}/lisp/progmodes/cc-bytecomp.elc @@ -2872,6 +2949,7 @@ fi %{_datadir}/emacs/%{version}/lisp/progmodes/ebnf-yac.elc %{_datadir}/emacs/%{version}/lisp/progmodes/ebnf2ps.elc %{_datadir}/emacs/%{version}/lisp/progmodes/ebrowse.elc +%{_datadir}/emacs/%{version}/lisp/progmodes/elisp-mode.elc %{_datadir}/emacs/%{version}/lisp/progmodes/etags.elc %{_datadir}/emacs/%{version}/lisp/progmodes/executable.elc %{_datadir}/emacs/%{version}/lisp/progmodes/f90.elc @@ -2903,6 +2981,7 @@ fi %{_datadir}/emacs/%{version}/lisp/progmodes/pascal.elc %{_datadir}/emacs/%{version}/lisp/progmodes/perl-mode.elc %{_datadir}/emacs/%{version}/lisp/progmodes/prog-mode.elc +%{_datadir}/emacs/%{version}/lisp/progmodes/project.elc %{_datadir}/emacs/%{version}/lisp/progmodes/prolog.elc %{_datadir}/emacs/%{version}/lisp/progmodes/ps-mode.elc %{_datadir}/emacs/%{version}/lisp/progmodes/python.elc @@ -2917,6 +2996,7 @@ fi %{_datadir}/emacs/%{version}/lisp/progmodes/verilog-mode.elc %{_datadir}/emacs/%{version}/lisp/progmodes/vhdl-mode.elc %{_datadir}/emacs/%{version}/lisp/progmodes/which-func.elc +%{_datadir}/emacs/%{version}/lisp/progmodes/xref.elc %{_datadir}/emacs/%{version}/lisp/progmodes/xscheme.elc %{_datadir}/emacs/%{version}/lisp/ps-bdf.elc %{_datadir}/emacs/%{version}/lisp/ps-def.elc @@ -2963,7 +3043,6 @@ fi %dir %{_datadir}/emacs/%{version}/lisp/term/ %{_datadir}/emacs/%{version}/lisp/term/AT386.elc %doc %{_datadir}/emacs/%{version}/lisp/term/README -%{_datadir}/emacs/%{version}/lisp/term/apollo.elc %{_datadir}/emacs/%{version}/lisp/term/bobcat.elc %{_datadir}/emacs/%{version}/lisp/term/common-win.elc %{_datadir}/emacs/%{version}/lisp/term/cygwin.elc @@ -2980,16 +3059,7 @@ fi %{_datadir}/emacs/%{version}/lisp/term/tty-colors.elc %{_datadir}/emacs/%{version}/lisp/term/tvi970.elc %{_datadir}/emacs/%{version}/lisp/term/vt100.elc -%{_datadir}/emacs/%{version}/lisp/term/vt102.elc -%{_datadir}/emacs/%{version}/lisp/term/vt125.elc %{_datadir}/emacs/%{version}/lisp/term/vt200.elc -%{_datadir}/emacs/%{version}/lisp/term/vt201.elc -%{_datadir}/emacs/%{version}/lisp/term/vt220.elc -%{_datadir}/emacs/%{version}/lisp/term/vt240.elc -%{_datadir}/emacs/%{version}/lisp/term/vt300.elc -%{_datadir}/emacs/%{version}/lisp/term/vt320.elc -%{_datadir}/emacs/%{version}/lisp/term/vt400.elc -%{_datadir}/emacs/%{version}/lisp/term/vt420.elc %{_datadir}/emacs/%{version}/lisp/term/w32-win.elc %{_datadir}/emacs/%{version}/lisp/term/w32console.elc %{_datadir}/emacs/%{version}/lisp/term/wyse50.elc @@ -3082,6 +3152,7 @@ fi %{_datadir}/emacs/%{version}/lisp/url/url-privacy.elc %{_datadir}/emacs/%{version}/lisp/url/url-proxy.elc %{_datadir}/emacs/%{version}/lisp/url/url-queue.elc +%{_datadir}/emacs/%{version}/lisp/url/url-tramp.elc %{_datadir}/emacs/%{version}/lisp/url/url-util.elc %{_datadir}/emacs/%{version}/lisp/url/url-vars.elc %{_datadir}/emacs/%{version}/lisp/url/url.elc @@ -3113,18 +3184,19 @@ fi %{_datadir}/emacs/%{version}/lisp/vc/pcvs.elc %{_datadir}/emacs/%{version}/lisp/vc/smerge-mode.elc %{_datadir}/emacs/%{version}/lisp/vc/vc-annotate.elc -%{_datadir}/emacs/%{version}/lisp/vc/vc-arch.elc %{_datadir}/emacs/%{version}/lisp/vc/vc-bzr.elc %{_datadir}/emacs/%{version}/lisp/vc/vc-cvs.elc %{_datadir}/emacs/%{version}/lisp/vc/vc-dav.elc %{_datadir}/emacs/%{version}/lisp/vc/vc-dir.elc %{_datadir}/emacs/%{version}/lisp/vc/vc-dispatcher.elc +%{_datadir}/emacs/%{version}/lisp/vc/vc-filewise.elc %{_datadir}/emacs/%{version}/lisp/vc/vc-git.elc %{_datadir}/emacs/%{version}/lisp/vc/vc-hg.elc %{_datadir}/emacs/%{version}/lisp/vc/vc-hooks.elc %{_datadir}/emacs/%{version}/lisp/vc/vc-mtn.elc %{_datadir}/emacs/%{version}/lisp/vc/vc-rcs.elc %{_datadir}/emacs/%{version}/lisp/vc/vc-sccs.elc +%{_datadir}/emacs/%{version}/lisp/vc/vc-src.elc %{_datadir}/emacs/%{version}/lisp/vc/vc-svn.elc %{_datadir}/emacs/%{version}/lisp/vc/vc.elc %{_datadir}/emacs/%{version}/lisp/vcursor.elc @@ -3132,7 +3204,6 @@ fi %{_datadir}/emacs/%{version}/lisp/view.elc %{_datadir}/emacs/%{version}/lisp/vt-control.elc %{_datadir}/emacs/%{version}/lisp/vt100-led.elc -%{_datadir}/emacs/%{version}/lisp/w32-common-fns.elc %{_datadir}/emacs/%{version}/lisp/w32-fns.elc %{_datadir}/emacs/%{version}/lisp/w32-vars.elc %{_datadir}/emacs/%{version}/lisp/wdired.elc @@ -3147,6 +3218,7 @@ fi %{_datadir}/emacs/%{version}/lisp/x-dnd.elc %{_datadir}/emacs/%{version}/lisp/xml.elc %{_datadir}/emacs/%{version}/lisp/xt-mouse.elc +%{_datadir}/emacs/%{version}/lisp/xwidget.elc %dir %{_datadir}/emacs/%{version}/site-lisp/ %{_datadir}/emacs/%{version}/site-lisp/subdirs.el %dir %{_datadir}/emacs/%{version}/site-lisp/term/ @@ -3155,17 +3227,6 @@ fi %{_datadir}/emacs/%{version}/site-lisp/term/kvt.el %{_datadir}/emacs/%{version}/site-lisp/term/linux.el %{_datadir}/emacs/%{version}/site-lisp/term/locale.el -%dir %{_datadir}/emacs/site-lisp/ -%{_datadir}/emacs/site-lisp/ger-keys.elc -%{_datadir}/emacs/site-lisp/maple.elc -%{_datadir}/emacs/site-lisp/php-mode.elc -%{_datadir}/emacs/site-lisp/rmailgen.elc -%{_datadir}/emacs/site-lisp/rmime.elc -%dir %{_datadir}/emacs/site-lisp/site-start.d/ -%{_datadir}/emacs/site-lisp/site-start.el -%{_datadir}/emacs/site-lisp/subdirs.el -%{_datadir}/emacs/site-lisp/vt200-esc-fix.elc -%{_datadir}/emacs/site-lisp/xfonts.elc %{_mandir}/man1/*.1%{ext_man} %exclude %{_mandir}/man1/*tags.1%{ext_man} %dir %{_localstatedir}/games/emacs/ @@ -3182,6 +3243,7 @@ fi %{_bindir}/emacs-gtk %dir %{appDefaultsDir} %{appDefaultsFile} +%{_datadir}/appdata/emacs.appdata.xml %{_datadir}/applications/emacs.desktop %{_datadir}/icons/hicolor/128x128/apps/emacs.png %{_datadir}/icons/hicolor/16x16/apps/emacs.png @@ -3190,6 +3252,7 @@ fi %{_datadir}/icons/hicolor/48x48/apps/emacs.png %{_datadir}/icons/hicolor/scalable/apps/emacs.svg %{_datadir}/icons/hicolor/scalable/mimetypes/emacs-document.svg +%{_datadir}/icons/hicolor/scalable/mimetypes/emacs-document23.svg %{_datadir}/pixmaps/emacs.png %files -n emacs-info @@ -3298,12 +3361,13 @@ fi %{_datadir}/emacs/%{version}/lisp/cedet/cedet.el.gz %{_datadir}/emacs/%{version}/lisp/cedet/data-debug.el.gz %{_datadir}/emacs/%{version}/lisp/cedet/ede.el.gz -%dir %{_datadir}/emacs/%{version}/lisp/cedet/ede/ %{_datadir}/emacs/%{version}/lisp/cedet/ede/auto.el.gz %{_datadir}/emacs/%{version}/lisp/cedet/ede/autoconf-edit.el.gz %{_datadir}/emacs/%{version}/lisp/cedet/ede/base.el.gz +%{_datadir}/emacs/%{version}/lisp/cedet/ede/config.el.gz %{_datadir}/emacs/%{version}/lisp/cedet/ede/cpp-root.el.gz %{_datadir}/emacs/%{version}/lisp/cedet/ede/custom.el.gz +%{_datadir}/emacs/%{version}/lisp/cedet/ede/detect.el.gz %{_datadir}/emacs/%{version}/lisp/cedet/ede/dired.el.gz %{_datadir}/emacs/%{version}/lisp/cedet/ede/emacs.el.gz %{_datadir}/emacs/%{version}/lisp/cedet/ede/files.el.gz @@ -3337,7 +3401,6 @@ fi %{_datadir}/emacs/%{version}/lisp/cedet/mode-local.el.gz %{_datadir}/emacs/%{version}/lisp/cedet/pulse.el.gz %{_datadir}/emacs/%{version}/lisp/cedet/semantic.el.gz -%dir %{_datadir}/emacs/%{version}/lisp/cedet/semantic/ %{_datadir}/emacs/%{version}/lisp/cedet/semantic/analyze.el.gz %{_datadir}/emacs/%{version}/lisp/cedet/semantic/analyze/complete.el.gz %{_datadir}/emacs/%{version}/lisp/cedet/semantic/analyze/debug.el.gz @@ -3419,7 +3482,6 @@ fi %{_datadir}/emacs/%{version}/lisp/cedet/semantic/wisent/python.el.gz %{_datadir}/emacs/%{version}/lisp/cedet/semantic/wisent/wisent.el.gz %{_datadir}/emacs/%{version}/lisp/cedet/srecode.el.gz -%dir %{_datadir}/emacs/%{version}/lisp/cedet/srecode/ %{_datadir}/emacs/%{version}/lisp/cedet/srecode/args.el.gz %{_datadir}/emacs/%{version}/lisp/cedet/srecode/compile.el.gz %{_datadir}/emacs/%{version}/lisp/cedet/srecode/cpp.el.gz @@ -3444,6 +3506,7 @@ fi %{_datadir}/emacs/%{version}/lisp/cedet/srecode/table.el.gz %{_datadir}/emacs/%{version}/lisp/cedet/srecode/template.el.gz %{_datadir}/emacs/%{version}/lisp/cedet/srecode/texi.el.gz +%{_datadir}/emacs/%{version}/lisp/char-fold.el.gz %{_datadir}/emacs/%{version}/lisp/chistory.el.gz %{_datadir}/emacs/%{version}/lisp/cmuscheme.el.gz %{_datadir}/emacs/%{version}/lisp/color.el.gz @@ -3468,6 +3531,7 @@ fi %{_datadir}/emacs/%{version}/lisp/disp-table.el.gz %{_datadir}/emacs/%{version}/lisp/dnd.el.gz %{_datadir}/emacs/%{version}/lisp/doc-view.el.gz +%{_datadir}/emacs/%{version}/lisp/dom.el.gz %{_datadir}/emacs/%{version}/lisp/dos-fns.el.gz %{_datadir}/emacs/%{version}/lisp/dos-vars.el.gz %{_datadir}/emacs/%{version}/lisp/dos-w32.el.gz @@ -3481,7 +3545,6 @@ fi %{_datadir}/emacs/%{version}/lisp/electric.el.gz %{_datadir}/emacs/%{version}/lisp/elide-head.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/advice.el.gz -%{_datadir}/emacs/%{version}/lisp/emacs-lisp/authors.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/autoload.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/avl-tree.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/backquote.el.gz @@ -3495,13 +3558,16 @@ fi %{_datadir}/emacs/%{version}/lisp/emacs-lisp/check-declare.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/checkdoc.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/cl-extra.el.gz +%{_datadir}/emacs/%{version}/lisp/emacs-lisp/cl-generic.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/cl-indent.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/cl-lib.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/cl-macs.el.gz +%{_datadir}/emacs/%{version}/lisp/emacs-lisp/cl-preloaded.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/cl-seq.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/cl.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/copyright.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/crm.el.gz +%{_datadir}/emacs/%{version}/lisp/emacs-lisp/cursor-sensor.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/debug.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/derived.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/disass.el.gz @@ -3509,6 +3575,7 @@ fi %{_datadir}/emacs/%{version}/lisp/emacs-lisp/easymenu.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/edebug.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/eieio-base.el.gz +%{_datadir}/emacs/%{version}/lisp/emacs-lisp/eieio-compat.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/eieio-core.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/eieio-custom.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/eieio-datadebug.el.gz @@ -3523,15 +3590,18 @@ fi %{_datadir}/emacs/%{version}/lisp/emacs-lisp/ewoc.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/find-func.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/float-sup.el.gz +%{_datadir}/emacs/%{version}/lisp/emacs-lisp/generator.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/generic.el.gz -%{_datadir}/emacs/%{version}/lisp/emacs-lisp/gulp.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/gv.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/helper.el.gz +%{_datadir}/emacs/%{version}/lisp/emacs-lisp/inline.el.gz +%{_datadir}/emacs/%{version}/lisp/emacs-lisp/let-alist.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/lisp-mnt.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/lisp-mode.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/lisp.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/macroexp.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/map-ynp.el.gz +%{_datadir}/emacs/%{version}/lisp/emacs-lisp/map.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/nadvice.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/package-x.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/package.el.gz @@ -3542,6 +3612,7 @@ fi %{_datadir}/emacs/%{version}/lisp/emacs-lisp/regi.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/ring.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/rx.el.gz +%{_datadir}/emacs/%{version}/lisp/emacs-lisp/seq.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/shadow.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/smie.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/subr-x.el.gz @@ -3550,6 +3621,7 @@ fi %{_datadir}/emacs/%{version}/lisp/emacs-lisp/tcover-ses.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/tcover-unsafep.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/testcover.el.gz +%{_datadir}/emacs/%{version}/lisp/emacs-lisp/thunk.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/timer.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/tq.el.gz %{_datadir}/emacs/%{version}/lisp/emacs-lisp/trace.el.gz @@ -3685,6 +3757,7 @@ fi %{_datadir}/emacs/%{version}/lisp/gnus/gnus-bookmark.el.gz %{_datadir}/emacs/%{version}/lisp/gnus/gnus-cache.el.gz %{_datadir}/emacs/%{version}/lisp/gnus/gnus-cite.el.gz +%{_datadir}/emacs/%{version}/lisp/gnus/gnus-cloud.el.gz %{_datadir}/emacs/%{version}/lisp/gnus/gnus-cus.el.gz %{_datadir}/emacs/%{version}/lisp/gnus/gnus-delay.el.gz %{_datadir}/emacs/%{version}/lisp/gnus/gnus-demon.el.gz @@ -3712,7 +3785,6 @@ fi %{_datadir}/emacs/%{version}/lisp/gnus/gnus-registry.el.gz %{_datadir}/emacs/%{version}/lisp/gnus/gnus-salt.el.gz %{_datadir}/emacs/%{version}/lisp/gnus/gnus-score.el.gz -%{_datadir}/emacs/%{version}/lisp/gnus/gnus-setup.el.gz %{_datadir}/emacs/%{version}/lisp/gnus/gnus-sieve.el.gz %{_datadir}/emacs/%{version}/lisp/gnus/gnus-spec.el.gz %{_datadir}/emacs/%{version}/lisp/gnus/gnus-srvr.el.gz @@ -3785,7 +3857,6 @@ fi %{_datadir}/emacs/%{version}/lisp/gnus/rfc1843.el.gz %{_datadir}/emacs/%{version}/lisp/gnus/rfc2045.el.gz %{_datadir}/emacs/%{version}/lisp/gnus/rfc2047.el.gz -%{_datadir}/emacs/%{version}/lisp/gnus/rfc2104.el.gz %{_datadir}/emacs/%{version}/lisp/gnus/rfc2231.el.gz %{_datadir}/emacs/%{version}/lisp/gnus/rtree.el.gz %{_datadir}/emacs/%{version}/lisp/gnus/score-mode.el.gz @@ -3834,6 +3905,9 @@ fi %{_datadir}/emacs/%{version}/lisp/informat.el.gz %{_datadir}/emacs/%{version}/lisp/international/ccl.el.gz %{_datadir}/emacs/%{version}/lisp/international/characters.el.gz +%{_datadir}/emacs/%{version}/lisp/international/charscript.el.gz +%{_datadir}/emacs/%{version}/lisp/international/cp51932.el.gz +%{_datadir}/emacs/%{version}/lisp/international/eucjp-ms.el.gz %{_datadir}/emacs/%{version}/lisp/international/fontset.el.gz %{_datadir}/emacs/%{version}/lisp/international/isearch-x.el.gz %{_datadir}/emacs/%{version}/lisp/international/iso-ascii.el.gz @@ -3944,6 +4018,7 @@ fi %{_datadir}/emacs/%{version}/lisp/leim/quail/latin-pre.el.gz %{_datadir}/emacs/%{version}/lisp/leim/quail/lrt.el.gz %{_datadir}/emacs/%{version}/lisp/leim/quail/persian.el.gz +%{_datadir}/emacs/%{version}/lisp/leim/quail/programmer-dvorak.el.gz %{_datadir}/emacs/%{version}/lisp/leim/quail/py-punct.el.gz %{_datadir}/emacs/%{version}/lisp/leim/quail/pypunct-b5.el.gz %{_datadir}/emacs/%{version}/lisp/leim/quail/quick-b5.el.gz @@ -3953,6 +4028,7 @@ fi %{_datadir}/emacs/%{version}/lisp/leim/quail/sisheng.el.gz %{_datadir}/emacs/%{version}/lisp/leim/quail/slovak.el.gz %{_datadir}/emacs/%{version}/lisp/leim/quail/symbol-ksc.el.gz +%{_datadir}/emacs/%{version}/lisp/leim/quail/tamil-dvorak.el.gz %{_datadir}/emacs/%{version}/lisp/leim/quail/thai.el.gz %{_datadir}/emacs/%{version}/lisp/leim/quail/tibetan.el.gz %{_datadir}/emacs/%{version}/lisp/leim/quail/tsang-b5.el.gz @@ -4053,7 +4129,6 @@ fi %{_datadir}/emacs/%{version}/lisp/net/eudcb-bbdb.el.gz %{_datadir}/emacs/%{version}/lisp/net/eudcb-ldap.el.gz %{_datadir}/emacs/%{version}/lisp/net/eudcb-mab.el.gz -%{_datadir}/emacs/%{version}/lisp/net/eudcb-ph.el.gz %{_datadir}/emacs/%{version}/lisp/net/eww.el.gz %{_datadir}/emacs/%{version}/lisp/net/gnutls.el.gz %{_datadir}/emacs/%{version}/lisp/net/goto-addr.el.gz @@ -4071,13 +4146,17 @@ fi %{_datadir}/emacs/%{version}/lisp/net/newst-ticker.el.gz %{_datadir}/emacs/%{version}/lisp/net/newst-treeview.el.gz %{_datadir}/emacs/%{version}/lisp/net/newsticker.el.gz +%{_datadir}/emacs/%{version}/lisp/net/nsm.el.gz %{_datadir}/emacs/%{version}/lisp/net/ntlm.el.gz +%{_datadir}/emacs/%{version}/lisp/net/pinentry.el.gz %{_datadir}/emacs/%{version}/lisp/net/quickurl.el.gz %{_datadir}/emacs/%{version}/lisp/net/rcirc.el.gz +%{_datadir}/emacs/%{version}/lisp/net/rfc2104.el.gz %{_datadir}/emacs/%{version}/lisp/net/rlogin.el.gz %{_datadir}/emacs/%{version}/lisp/net/sasl-cram.el.gz %{_datadir}/emacs/%{version}/lisp/net/sasl-digest.el.gz %{_datadir}/emacs/%{version}/lisp/net/sasl-ntlm.el.gz +%{_datadir}/emacs/%{version}/lisp/net/sasl-scram-rfc.el.gz %{_datadir}/emacs/%{version}/lisp/net/sasl.el.gz %{_datadir}/emacs/%{version}/lisp/net/secrets.el.gz %{_datadir}/emacs/%{version}/lisp/net/shr-color.el.gz @@ -4129,20 +4208,26 @@ fi %{_datadir}/emacs/%{version}/lisp/nxml/rng-xsd.el.gz %{_datadir}/emacs/%{version}/lisp/nxml/xmltok.el.gz %{_datadir}/emacs/%{version}/lisp/nxml/xsd-regexp.el.gz +%{_datadir}/emacs/%{version}/lisp/obarray.el.gz %{_datadir}/emacs/%{version}/lisp/obsolete/abbrevlist.el.gz %{_datadir}/emacs/%{version}/lisp/obsolete/assoc.el.gz %{_datadir}/emacs/%{version}/lisp/obsolete/awk-mode.el.gz +%{_datadir}/emacs/%{version}/lisp/obsolete/bruce.el.gz %{_datadir}/emacs/%{version}/lisp/obsolete/cc-compat.el.gz %{_datadir}/emacs/%{version}/lisp/obsolete/cl-compat.el.gz %{_datadir}/emacs/%{version}/lisp/obsolete/complete.el.gz %{_datadir}/emacs/%{version}/lisp/obsolete/crisp.el.gz %{_datadir}/emacs/%{version}/lisp/obsolete/cust-print.el.gz %{_datadir}/emacs/%{version}/lisp/obsolete/erc-hecomplete.el.gz +%{_datadir}/emacs/%{version}/lisp/obsolete/eudcb-ph.el.gz %{_datadir}/emacs/%{version}/lisp/obsolete/fast-lock.el.gz +%{_datadir}/emacs/%{version}/lisp/obsolete/gulp.el.gz %{_datadir}/emacs/%{version}/lisp/obsolete/iso-acc.el.gz %{_datadir}/emacs/%{version}/lisp/obsolete/iso-insert.el.gz %{_datadir}/emacs/%{version}/lisp/obsolete/iso-swed.el.gz %{_datadir}/emacs/%{version}/lisp/obsolete/iswitchb.el.gz +%{_datadir}/emacs/%{version}/lisp/obsolete/keyswap.el.gz +%{_datadir}/emacs/%{version}/lisp/obsolete/landmark.el.gz %{_datadir}/emacs/%{version}/lisp/obsolete/lazy-lock.el.gz %{_datadir}/emacs/%{version}/lisp/obsolete/ledit.el.gz %{_datadir}/emacs/%{version}/lisp/obsolete/levents.el.gz @@ -4156,6 +4241,7 @@ fi %{_datadir}/emacs/%{version}/lisp/obsolete/old-whitespace.el.gz %{_datadir}/emacs/%{version}/lisp/obsolete/options.el.gz %{_datadir}/emacs/%{version}/lisp/obsolete/otodo-mode.el.gz +%{_datadir}/emacs/%{version}/lisp/obsolete/patcomp.el.gz %{_datadir}/emacs/%{version}/lisp/obsolete/pc-mode.el.gz %{_datadir}/emacs/%{version}/lisp/obsolete/pc-select.el.gz %{_datadir}/emacs/%{version}/lisp/obsolete/pgg-def.el.gz @@ -4177,7 +4263,7 @@ fi %{_datadir}/emacs/%{version}/lisp/obsolete/tpu-edt.el.gz %{_datadir}/emacs/%{version}/lisp/obsolete/tpu-extras.el.gz %{_datadir}/emacs/%{version}/lisp/obsolete/tpu-mapper.el.gz -%{_datadir}/emacs/%{version}/lisp/obsolete/vc-mcvs.el.gz +%{_datadir}/emacs/%{version}/lisp/obsolete/vc-arch.el.gz %{_datadir}/emacs/%{version}/lisp/obsolete/vi.el.gz %{_datadir}/emacs/%{version}/lisp/obsolete/vip.el.gz %{_datadir}/emacs/%{version}/lisp/obsolete/ws-mode.el.gz @@ -4311,7 +4397,6 @@ fi %{_datadir}/emacs/%{version}/lisp/play/gomoku.el.gz %{_datadir}/emacs/%{version}/lisp/play/handwrite.el.gz %{_datadir}/emacs/%{version}/lisp/play/hanoi.el.gz -%{_datadir}/emacs/%{version}/lisp/play/landmark.el.gz %{_datadir}/emacs/%{version}/lisp/play/life.el.gz %{_datadir}/emacs/%{version}/lisp/play/morse.el.gz %{_datadir}/emacs/%{version}/lisp/play/mpuz.el.gz @@ -4334,7 +4419,6 @@ fi %{_datadir}/emacs/%{version}/lisp/progmodes/autoconf.el.gz %{_datadir}/emacs/%{version}/lisp/progmodes/bat-mode.el.gz %{_datadir}/emacs/%{version}/lisp/progmodes/bug-reference.el.gz -%{_datadir}/emacs/%{version}/lisp/progmodes/cap-words.el.gz %{_datadir}/emacs/%{version}/lisp/progmodes/cc-align.el.gz %{_datadir}/emacs/%{version}/lisp/progmodes/cc-awk.el.gz %{_datadir}/emacs/%{version}/lisp/progmodes/cc-bytecomp.el.gz @@ -4364,6 +4448,7 @@ fi %{_datadir}/emacs/%{version}/lisp/progmodes/ebnf-yac.el.gz %{_datadir}/emacs/%{version}/lisp/progmodes/ebnf2ps.el.gz %{_datadir}/emacs/%{version}/lisp/progmodes/ebrowse.el.gz +%{_datadir}/emacs/%{version}/lisp/progmodes/elisp-mode.el.gz %{_datadir}/emacs/%{version}/lisp/progmodes/etags.el.gz %{_datadir}/emacs/%{version}/lisp/progmodes/executable.el.gz %{_datadir}/emacs/%{version}/lisp/progmodes/f90.el.gz @@ -4395,6 +4480,7 @@ fi %{_datadir}/emacs/%{version}/lisp/progmodes/pascal.el.gz %{_datadir}/emacs/%{version}/lisp/progmodes/perl-mode.el.gz %{_datadir}/emacs/%{version}/lisp/progmodes/prog-mode.el.gz +%{_datadir}/emacs/%{version}/lisp/progmodes/project.el.gz %{_datadir}/emacs/%{version}/lisp/progmodes/prolog.el.gz %{_datadir}/emacs/%{version}/lisp/progmodes/ps-mode.el.gz %{_datadir}/emacs/%{version}/lisp/progmodes/python.el.gz @@ -4409,6 +4495,7 @@ fi %{_datadir}/emacs/%{version}/lisp/progmodes/verilog-mode.el.gz %{_datadir}/emacs/%{version}/lisp/progmodes/vhdl-mode.el.gz %{_datadir}/emacs/%{version}/lisp/progmodes/which-func.el.gz +%{_datadir}/emacs/%{version}/lisp/progmodes/xref.el.gz %{_datadir}/emacs/%{version}/lisp/progmodes/xscheme.el.gz %{_datadir}/emacs/%{version}/lisp/ps-bdf.el.gz %{_datadir}/emacs/%{version}/lisp/ps-def.el.gz @@ -4450,7 +4537,6 @@ fi %{_datadir}/emacs/%{version}/lisp/tempo.el.gz %{_datadir}/emacs/%{version}/lisp/term.el.gz %{_datadir}/emacs/%{version}/lisp/term/AT386.el.gz -%{_datadir}/emacs/%{version}/lisp/term/apollo.el.gz %{_datadir}/emacs/%{version}/lisp/term/bobcat.el.gz %{_datadir}/emacs/%{version}/lisp/term/common-win.el.gz %{_datadir}/emacs/%{version}/lisp/term/cygwin.el.gz @@ -4467,16 +4553,7 @@ fi %{_datadir}/emacs/%{version}/lisp/term/tty-colors.el.gz %{_datadir}/emacs/%{version}/lisp/term/tvi970.el.gz %{_datadir}/emacs/%{version}/lisp/term/vt100.el.gz -%{_datadir}/emacs/%{version}/lisp/term/vt102.el.gz -%{_datadir}/emacs/%{version}/lisp/term/vt125.el.gz %{_datadir}/emacs/%{version}/lisp/term/vt200.el.gz -%{_datadir}/emacs/%{version}/lisp/term/vt201.el.gz -%{_datadir}/emacs/%{version}/lisp/term/vt220.el.gz -%{_datadir}/emacs/%{version}/lisp/term/vt240.el.gz -%{_datadir}/emacs/%{version}/lisp/term/vt300.el.gz -%{_datadir}/emacs/%{version}/lisp/term/vt320.el.gz -%{_datadir}/emacs/%{version}/lisp/term/vt400.el.gz -%{_datadir}/emacs/%{version}/lisp/term/vt420.el.gz %{_datadir}/emacs/%{version}/lisp/term/w32-win.el.gz %{_datadir}/emacs/%{version}/lisp/term/w32console.el.gz %{_datadir}/emacs/%{version}/lisp/term/wyse50.el.gz @@ -4566,6 +4643,7 @@ fi %{_datadir}/emacs/%{version}/lisp/url/url-privacy.el.gz %{_datadir}/emacs/%{version}/lisp/url/url-proxy.el.gz %{_datadir}/emacs/%{version}/lisp/url/url-queue.el.gz +%{_datadir}/emacs/%{version}/lisp/url/url-tramp.el.gz %{_datadir}/emacs/%{version}/lisp/url/url-util.el.gz %{_datadir}/emacs/%{version}/lisp/url/url-vars.el.gz %{_datadir}/emacs/%{version}/lisp/url/url.el.gz @@ -4596,18 +4674,19 @@ fi %{_datadir}/emacs/%{version}/lisp/vc/pcvs.el.gz %{_datadir}/emacs/%{version}/lisp/vc/smerge-mode.el.gz %{_datadir}/emacs/%{version}/lisp/vc/vc-annotate.el.gz -%{_datadir}/emacs/%{version}/lisp/vc/vc-arch.el.gz %{_datadir}/emacs/%{version}/lisp/vc/vc-bzr.el.gz %{_datadir}/emacs/%{version}/lisp/vc/vc-cvs.el.gz %{_datadir}/emacs/%{version}/lisp/vc/vc-dav.el.gz %{_datadir}/emacs/%{version}/lisp/vc/vc-dir.el.gz %{_datadir}/emacs/%{version}/lisp/vc/vc-dispatcher.el.gz +%{_datadir}/emacs/%{version}/lisp/vc/vc-filewise.el.gz %{_datadir}/emacs/%{version}/lisp/vc/vc-git.el.gz %{_datadir}/emacs/%{version}/lisp/vc/vc-hg.el.gz %{_datadir}/emacs/%{version}/lisp/vc/vc-hooks.el.gz %{_datadir}/emacs/%{version}/lisp/vc/vc-mtn.el.gz %{_datadir}/emacs/%{version}/lisp/vc/vc-rcs.el.gz %{_datadir}/emacs/%{version}/lisp/vc/vc-sccs.el.gz +%{_datadir}/emacs/%{version}/lisp/vc/vc-src.el.gz %{_datadir}/emacs/%{version}/lisp/vc/vc-svn.el.gz %{_datadir}/emacs/%{version}/lisp/vc/vc.el.gz %{_datadir}/emacs/%{version}/lisp/vcursor.el.gz @@ -4615,7 +4694,6 @@ fi %{_datadir}/emacs/%{version}/lisp/view.el.gz %{_datadir}/emacs/%{version}/lisp/vt-control.el.gz %{_datadir}/emacs/%{version}/lisp/vt100-led.el.gz -%{_datadir}/emacs/%{version}/lisp/w32-common-fns.el.gz %{_datadir}/emacs/%{version}/lisp/w32-fns.el.gz %{_datadir}/emacs/%{version}/lisp/w32-vars.el.gz %{_datadir}/emacs/%{version}/lisp/wdired.el.gz @@ -4630,6 +4708,7 @@ fi %{_datadir}/emacs/%{version}/lisp/x-dnd.el.gz %{_datadir}/emacs/%{version}/lisp/xml.el.gz %{_datadir}/emacs/%{version}/lisp/xt-mouse.el.gz +%{_datadir}/emacs/%{version}/lisp/xwidget.el.gz %if 0%{suse_version} >= 1300 %files -n etags diff --git a/emacs24-primarysel2.patch b/emacs24-primarysel2.patch deleted file mode 100644 index dcda154..0000000 --- a/emacs24-primarysel2.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/lisp/mouse.el b/lisp/mouse.el -index e267418..2afe313 100644 ---- a/lisp/mouse.el -+++ b/lisp/mouse.el -@@ -856,7 +856,8 @@ DO-MOUSE-DRAG-REGION-POST-PROCESS should only be used by - (copy-region-as-kill (mark) (point))))) - - ;; Otherwise, run binding of terminating up-event. -- (deactivate-mark) -+ (let (select-active-regions) -+ (deactivate-mark)) - (if do-multi-click - (goto-char start-point) - (unless moved-off-start diff --git a/gmalloc.patch b/gmalloc.patch deleted file mode 100644 index 1335ba8..0000000 --- a/gmalloc.patch +++ /dev/null @@ -1,113 +0,0 @@ -Index: emacs-24.5/src/emacs.c -=================================================================== ---- emacs-24.5.orig/src/emacs.c -+++ emacs-24.5/src/emacs.c -@@ -723,6 +723,26 @@ main (int argc, char **argv) - stack_base = &dummy; - #endif - -+#if defined HAVE_PERSONALITY_LINUX32 && defined __PPC64__ -+ /* This code partly duplicates the HAVE_PERSONALITY_LINUX32 code -+ below. This duplication is planned to be fixed in a later -+ Emacs release. */ -+# define ADD_NO_RANDOMIZE 0x0040000 -+ int pers = personality (0xffffffff); -+ if (! (pers & ADD_NO_RANDOMIZE) -+ && 0 <= personality (pers | ADD_NO_RANDOMIZE)) -+ { -+ /* Address randomization was enabled, but is now disabled. -+ Re-execute Emacs to get a clean slate. */ -+ execvp (argv[0], argv); -+ -+ /* If the exec fails, warn the user and then try without a -+ clean slate. */ -+ perror (argv[0]); -+ } -+# undef ADD_NO_RANDOMIZE -+#endif -+ - #ifdef G_SLICE_ALWAYS_MALLOC - /* This is used by the Cygwin build. It's not needed starting with - cygwin-1.7.24, but it doesn't do any harm. */ -@@ -833,7 +853,7 @@ main (int argc, char **argv) - dumping = !initialized && (strcmp (argv[argc - 1], "dump") == 0 - || strcmp (argv[argc - 1], "bootstrap") == 0); - --#ifdef HAVE_PERSONALITY_LINUX32 -+#if defined HAVE_PERSONALITY_LINUX32 && !defined __PPC64__ - if (dumping && ! getenv ("EMACS_HEAP_EXEC")) - { - /* Set this so we only do this once. */ -@@ -850,7 +870,7 @@ main (int argc, char **argv) - /* If the exec fails, try to dump anyway. */ - emacs_perror (argv[0]); - } --#endif /* HAVE_PERSONALITY_LINUX32 */ -+#endif - - #if defined (HAVE_SETRLIMIT) && defined (RLIMIT_STACK) - /* Extend the stack space available. -Index: emacs-24.5/src/gmalloc.c -=================================================================== ---- emacs-24.5.orig/src/gmalloc.c -+++ emacs-24.5/src/gmalloc.c -@@ -42,6 +42,16 @@ License along with this library. If not - extern void emacs_abort (void); - #endif - -+#undef malloc -+#undef realloc -+#undef calloc -+#undef free -+#define malloc gmalloc -+#define realloc grealloc -+#define calloc gcalloc -+#define aligned_alloc galigned_alloc -+#define free gfree -+ - #ifdef __cplusplus - extern "C" - { -@@ -1747,6 +1757,42 @@ valloc (size_t size) - return aligned_alloc (pagesize, size); - } - -+#undef malloc -+#undef realloc -+#undef calloc -+#undef aligned_alloc -+#undef free -+ -+void * -+malloc (size_t size) -+{ -+ return gmalloc (size); -+} -+ -+void * -+calloc (size_t nmemb, size_t size) -+{ -+ return gcalloc (nmemb, size); -+} -+ -+void -+free (void *ptr) -+{ -+ gfree (ptr); -+} -+ -+void * -+aligned_alloc (size_t alignment, size_t size) -+{ -+ return galigned_alloc (alignment, size); -+} -+ -+void * -+realloc (void *ptr, size_t size) -+{ -+ return grealloc (ptr, size); -+} -+ - #ifdef GC_MCHECK - - /* Standard debugging hooks for `malloc'.