Home | History | Annotate | Download | only in emacs
      1 NAME:             emacs
      2 VERSION:          23.1
      3 DESCRIPTION:      GNU Emacs editor
      4 LICENSE:          GPLv3
      5 PACKAGE:          SUNWgnu-emacs SUNWgnu-emacs-el SUNWgnu-emacs-gtk SUNWgnu-emacs-nox SUNWgnu-emacs-x
      6 PROJECT_URL:      http://www.gnu.org/software/emacs/
      7 SOURCE_DOWNLOAD:  http://ftp.gnu.org/pub/gnu/emacs/emacs-23.1.tar.gz
      8 SUPPORT:          Community
      9 BUGTRAQ:          solaris/utility/emacs
     10 OSR:              13016
     11 COMMENTS:         
     12 	- This code is built with gcc. The primary reason for this
     13 	  is that the configure script has problems using a non-GNU
     14 	  cpp. I am not aware of any reason Sun Studio could not be
     15 	  made to work, but simply made a cost/benefit decision not to
     16 	  pursue it at this time.
     17 
     18 	- I have made the following changes to the emacs sources:
     19 
     20 	    buffer_menu.patch
     21 		Fixes an issue with GTK and the Buffers menu where the
     22 		menu contents is not updated to show the current buffers
     23 		and instead shows a stale list. I based these patches
     24 		on the official ones applied to the emacs development branch:
     25 
     26 		http://lists.gnu.org/archive/html/emacs-diffs/2009-09/msg00039.html
     27 
     28 	    src/s/sol2-5.h
     29 		Use the system malloc instead of the built in one
     30 
     31 	    src/s/sol2-6.h
     32 		Use the native Solaris dldump() function (emacs/src/unexsol.c)
     33 		to produce the dumped emacs, rather than the generic ELF
     34 		code (emacs-22.1/src/unexelf.c).
     35 
     36 	- Typically, emacs is built as either 32-bit or 64-bit,
     37 	  depending on the target machine. The benefit of a 64-bit
     38 	  emacs is that the size of the files it can handle is not
     39 	  limited to 128MB, as it is with the 32-bit version.
     40 
     41 	  For Solaris, we build both versions, using /usr/lib/isaexec
     42 	  to run the 64-bit version if possible, and the 32-bit version
     43 	  otherwise. Note that this is only done for the emacs binary
     44 	  itself, as there is no technical need for 64-bit versions of
     45 	  the ancillary programs that come with emacs (etags,
     46 	  emacsclient, etc).
     47 
     48 	  Fortunately, the vast majority of the files in an
     49 	  emacs tree are identical, regardless of the platform
     50 	  and/or word size, which makes this particularly easy to
     51 	  do.
     52 
     53 	  We create usr/lib/isaexec in our local proto, as well as the
     54 	  files in usr/bin that link to it. This is done to allow testing
     55 	  from the local proto. These files are not delivered to the real
     56 	  proto. They are created on the users machine by the packaging system.
     57 
     58 	- There are three different toolkit options: None, Athena widgets
     59 	  (aka Xaw, or lucid), and gtk.
     60 
     61 	- We deliver the following packages, in package cluster SUNWCgnu-emacs:
     62 
     63 		SUNWgnu-emacs - This contains the core emacs distribution,
     64 			minus the emacs binaries.
     65 		SUNWgnu-emacs-gtk - Binaries for the X11 version using the
     66 			GTK widget toolkit.
     67 		SUNWgnu-emacs-nox - Pure tty emacs binaries, built without
     68 			any X11 linkage.
     69 		SUNWgnu-emacs-x - Binaries for the X11 version using the
     70 			Athena widget (Xaw) toolkit.
     71 		SUNWgnu-emacs-el - The compressed LISP files for which compiled
     72 			versions are delivered by SUNWgnu-emacs.
     73 
     74 	  SUNWgnu-emacs is required by the other packages.
     75 
     76 	  Note that earlier versions (22.1) of SUNWgnu-emacs-gtk did not
     77 	  deliver sparcv9 binaries, as there were unresolved GTK issues.
     78 	  This appears to be solved in emacs 23, and we now deliver the
     79 	  sparcv9 binaries.
     80 
     81 	- The emacs Makefile install rule does more than copy files around.
     82 	  It runs emacs in batch mode to generate compiled lisp files,
     83 	  compresses uncompiled lisp files, and performs other arbitrary
     84 	  actions we'd rather not have to duplicate.
     85 
     86 	  The problem is that the install rule is intended to install the files
     87 	  in their final location, whereas we want to deliver them into the proto
     88 	  area, package them, and then have the packages eventually install them.
     89 	  If we configure the makefile to point at the proto, the results will
     90 	  be wrong at runtime (emacs is aware of its installation location).
     91 
     92 	  My solution to this is as follows:
     93 
     94 		- Makefile.sfw configures emacs for its final installation
     95 		  location, causing the binaries and lisp code to contain
     96 		  the proper final paths.
     97 
     98 		- Makefile.sfw runs the emacs makefile install rule to populate
     99 		  a local proto directory by overriding the Make variables
    100 		  used to place the files.
    101 
    102 		- install-sfw copies the files from the local proto directory
    103 		  into the workspace proto.
    104 
    105 		- Packing then proceeds as usual
    106 
    107 	  When upgrading the version of emacs, you should be careful to test
    108 	  and ensure that this trick still works. Also, different versions of
    109 	  emacs are likely to have a slightly different list of files that are
    110 	  delivered and packaged. The best way to determine this is to change
    111 	  PREFIX in install-sfw to an empty scratch directory, run it, and then
    112 	  examine the files that are installed there.
    113 
    114 	- To produce the Solaris emacs packages, we need to build the
    115 	  emacs tree multiple times, using slightly different options
    116 	  each time. The build_emacs script is used to encapsulate this
    117 	  process.
    118 
    119 	- We do not install the files under /var/games/emacs. The reason for
    120 	  this is that we do not install update-game-score as setuid, and
    121 	  therefore the game files are not usable. This the same decision made
    122 	  by Debian, among others.
    123