0
|
1 |
NAME: emacs
|
2
|
2 |
VERSION: 23.1
|
0
|
3 |
DESCRIPTION: GNU Emacs editor
|
2
|
4 |
LICENSE: GPLv3
|
0
|
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/
|
2
|
7 |
SOURCE_DOWNLOAD: http://ftp.gnu.org/pub/gnu/emacs/emacs-23.1.tar.gz
|
5
|
8 |
SUPPORT: C
|
0
|
9 |
BUGTRAQ: solaris/utility/emacs
|
2
|
10 |
OSR: 13016
|
0
|
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 |
|
2
|
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:
|
0
|
25 |
|
2
|
26 |
http://lists.gnu.org/archive/html/emacs-diffs/2009-09/msg00039.html
|
0
|
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 |
|
2
|
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.
|
0
|
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 |
|
2
|
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.
|
0
|
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.
|