components/emacs/README
branchs11-update
changeset 2856 47b35501403f
parent 2523 f99c0e9ebba7
child 3626 48d8d7ae6e0a
equal deleted inserted replaced
2855:576d5a7857b7 2856:47b35501403f
    20 #
    20 #
    21 # Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
    21 # Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
    22 #
    22 #
    23 
    23 
    24 NAME:             emacs
    24 NAME:             emacs
    25 VERSION:          23.4
    25 VERSION:          24.3
    26 DESCRIPTION:      GNU Emacs editor
    26 DESCRIPTION:      GNU Emacs editor
    27 LICENSE:          GPLv3
    27 LICENSE:          GPLv3
    28 BUGTRAQ:          solaris/utility/emacs
    28 BUGTRAQ:          solaris/utility/emacs
    29 COMMENTS:         
    29 COMMENTS:         
    30 
    30 
    34 information needed to understand how this component is put together.
    34 information needed to understand how this component is put together.
    35 
    35 
    36 
    36 
    37 - We patch the following changes to the emacs sources:
    37 - We patch the following changes to the emacs sources:
    38 
    38 
    39 	sysmalloc.patch
    39 	face_for_font.patch
    40 	    Use the system malloc instead of the built in one.
    40 	    xdisp.c has a call to face_for_font(), a function that is
    41 
    41 	    only present when window system support is included, which is
    42 	dldump.patch
    42 	    not the case for emacs-nox. This patch ifdefs the offending
    43 	    Use the native Solaris dldump() function (emacs/src/unexsol.c)
    43 	    call away.
    44 	    to produce the dumped emacs, rather than the generic ELF
       
    45 	    code (emacs-xxx/src/unexelf.c).
       
    46 
       
    47 	xft.patch
       
    48 	    Patch configure script to provide necessary missing
       
    49 	    libraries for the GTK version of emacs.
       
    50 
       
    51 	eval_file_local_var.patch
       
    52 	    When the Emacs user option `enable-local-variables' is set to
       
    53 	    `:safe' (the default value is t), Emacs should automatically refuse
       
    54 	    to evaluate `eval' forms in file-local variable sections. See:
       
    55 
       
    56 		http://www.openwall.com/lists/oss-security/2012/08/13/1
       
    57 		http://www.openwall.com/lists/oss-security/2012/08/13/2
       
    58 
    44 
    59 	find.patch
    45 	find.patch
    60 	    The rgrep function uses the GNU-specific -path option to the
    46 	    The rgrep function uses the GNU-specific -path option to the
    61 	    find command. Change the default value for the find-program
    47 	    find command. Change the default value for the find-program
    62 	    variable in grep.el to use GNU find.
    48 	    variable in grep.el to use GNU find.
    63 
    49 
    64 	tty_startup_hang.patch
    50 	gtkutil.patch
    65 	    Emacs 23.x has a latent bug that causes it to run the X11 input
    51 	    This fixes a bug in emacs 24.3 in which a message like the
    66 	    select code even when running without a window system via the
    52 	    following is emitted to stderr on startup if emacs was started
    67 	    -nw option. This worked because a variable in libglib.so used
    53 	    with a specified geometry:
    68 	    to be zero, but in newer versions of libglib.so it is not. The
       
    69 	    result is that 'emacs -nw' hangs on startup and has to be killed
       
    70 	    from another shell. This is fixed in eamcs 24.2. See:
       
    71 
    54 
    72 		http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9754
    55 	    (emacs:4090): Gtk-WARNING **: gtk_window_parse_geometry() called
       
    56 	    on a window with no visible children; the window should be set up
       
    57 	    before gtk_window_parse_geometry() is called.
       
    58 
       
    59 	    This was fixed upstream: 
       
    60 
       
    61 	        https://bugzilla.redhat.com/show_bug.cgi?id=929353
       
    62 		http://bzr.savannah.gnu.org/lh/emacs/trunk/revision/111078
       
    63 
       
    64 - The emacs distribution used to have a subdirectory, src/s, which
       
    65   contained per-platform header files. We would apply the following
       
    66   patches:
       
    67 
       
    68     sol2-6.h: Enable the use of the native Solaris dldump()
       
    69 
       
    70         --- sol2-6.h.~1~        2011-10-17 19:20:46.000000000 -0600
       
    71         +++ sol2-6.h    2013-09-23 13:34:26.683033182 -0600
       
    72         @@ -2,10 +2,17 @@
       
    73          
       
    74          #include "sol2-5.h"
       
    75          
       
    76         -#if 0 /* dldump does not handle all the extensions used by GNU ld.  */
       
    77         +/*
       
    78         + * Use the Solaris dldump() function to dump emacs, instead of
       
    79         + * the generic unexelf code.
       
    80         + *
       
    81         + * If you encounter a problem using dldump(), please consider sending
       
    82         + * a message to the OpenSolaris tools-linking mailing list:
       
    83         + *      http://mail.opensolaris.org/mailman/listinfo/tools-linking
       
    84         + */
       
    85         +
       
    86          #undef UNEXEC
       
    87          #define UNEXEC unexsol.o
       
    88         -#endif
       
    89          
       
    90          /* arch-tag: 71ea3857-89dc-4395-9623-77964e6ed3ca
       
    91             (do not change this comment) */
       
    92 
       
    93     sol2-5.h: Use the system malloc instead of the GNU malloc:
       
    94 
       
    95         --- sol2-5.h.~1~        2011-10-17 19:20:46.000000000 -0600
       
    96         +++ sol2-5.h    2013-09-23 13:34:26.732656398 -0600
       
    97         @@ -17,6 +17,7 @@
       
    98          /* This is not always necessary.  Turned off at present for testers to
       
    99             identify any problems with gmalloc more accurately.  */
       
   100          /* #define SYSTEM_MALLOC */
       
   101         +#define SYSTEM_MALLOC
       
   102          
       
   103          /* There have problems reported with mmap at least on Solaris 2.6
       
   104             and 2.7.  For simplicity, let's not use mmap for anything >= 2.5.
       
   105 
       
   106   These are both handled by default by the configure process, and in fact,
       
   107   comments from the header file appear to have been carried over. With every
       
   108   update, we must verify that these settings stick and remain enabled.
       
   109 
       
   110     System Malloc:
       
   111     The information output at the end of the configure step verifies this:
       
   112 
       
   113         Configured for `x86_64-pc-solaris2.12'.
       
   114 	...
       
   115           Should Emacs use the GNU version of malloc?             no
       
   116             (The GNU allocators don't work with this system configuration.)
       
   117 
       
   118     dldump:
       
   119     One could examine the configure script looking for the setting
       
   120     "UNEXEC_OBJ=unexsol.o", but it seems easier/better to simply examine
       
   121     the final executable:
       
   122 
       
   123         % pvs -nos emacs | grep dldump
       
   124         emacs - libc.so.1 (SUNW_1.22): dldump;
    73 
   125 
    74 - Emacs can be built as either 32-bit or 64-bit, depending on the target
   126 - Emacs can be built as either 32-bit or 64-bit, depending on the target
    75   machine. The benefit of a 64-bit emacs is that the size of the files it
   127   machine. The benefit of a 64-bit emacs is that the size of the files it
    76   can handle is not limited to 128MB, as it is with the 32-bit version.
   128   can handle is not limited to 128MB, as it is with the 32-bit version.
    77 
   129 
    96   but for purposes of minimization and user preference, we supply binaries
   148   but for purposes of minimization and user preference, we supply binaries
    97   for all three. We follow the Linux model in this regard. The Xaw and no-X
   149   for all three. We follow the Linux model in this regard. The Xaw and no-X
    98   versions are quite stable from release to release, so this isn't a large
   150   versions are quite stable from release to release, so this isn't a large
    99   burden.
   151   burden.
   100 
   152 
       
   153 - In the past, we built emacs with gcc. The Makefile contained:
       
   154 
       
   155     # This code is built with gcc. The primary reason for this is that the
       
   156     # configure script has problems using a non-GNU cpp. I am not aware of
       
   157     # any reason Sun Studio could not be made to work, but simply made a
       
   158     # cost/benefit decision not to pursue it at this time
       
   159     COMPILER =      gcc
       
   160 
       
   161   With emacs 24.3, I removed this, and find that studio now builds
       
   162   emacs without issue. This is something that should be reverified
       
   163   with each update.
       
   164 
       
   165 - Remember to update resolve.deps when updating to a new version,
       
   166   as dependencies can change. Instructions are on the Userland website.
       
   167 
   101 - We deliver the following packages:
   168 - We deliver the following packages:
   102 
   169 
   103 	gnu-emacs - Everything you need to run emacs, except the
   170 	gnu-emacs - Everything you need to run emacs, except the
   104 	    emacs binaries.
   171 	    emacs binaries.
   105 
   172 
   106 	gnu-emacs-gtk - Binaries for the X11 version using the GTK toolkit.
   173 	gnu-emacs-gtk - Binary for the X11 version using the GTK toolkit.
   107 
   174 
   108 	gnu-emacs-no-x11 - Pure tty emacs binaries, built without
   175 	gnu-emacs-no-x11 - Pure tty emacs binary, built without
   109 	    any X11 linkage. Ideal for headless server systems.
   176 	    any X11 linkage or other extra support (i.e. D-bus). This
       
   177 	    is the most basic emacs possible, ideal for headless server
       
   178 	    systems.
   110 
   179 
   111 	gnu-emacs-x11 - Binaries for the X11 version using the Athena
   180 	gnu-emacs-x11 - Binary for the X11 version using the Athena
   112 	    widget (Xaw) toolkit.
   181 	    widget (Xaw) toolkit.
   113 
   182 
   114 	gnu-emacs-lisp - The compressed LISP files for which compiled
   183 	gnu-emacs-lisp - The compressed LISP files for which compiled
   115 	    versions are delivered by gnu-emacs. These are only needed
   184 	    versions are delivered by gnu-emacs. These are only needed
   116 	    for emacs developers and those who like to read source code.
   185 	    for emacs developers and those who like to read source code.