the Fink project is an effort to port
popular Unix programs to Mac OS X
Info2: <<
Package: emacs23%type_pkg[uitype]
Version: 23.3a
Revision: 3
Type: uitype (. -nox)
Description: Flexible real-time text editor
License: GPL
Maintainer: None
Provides: emacsen
Depends: <<
dbus,
dbus1.3-shlibs,
dpkg-base-files,
emacsen-common,
libncurses5-shlibs (>= 5.4-20041023-1006),
ncurses (>= 5.4-20041023-1006),
passwd-games,
(%type_raw[uitype] = .) atk1-shlibs (>= 1.28.0-1),
(%type_raw[uitype] = .) cairo-shlibs (>= 1.8.8-3),
(%type_raw[uitype] = .) fontconfig2-shlibs (>= 2.8.0-4),
(%type_raw[uitype] = .) freetype219-shlibs (>= 2.3.12-1),
(%type_raw[uitype] = .) giflib-shlibs,
(%type_raw[uitype] = .) gconf2 (>= 2.28.0-1),
(%type_raw[uitype] = .) gconf2-shlibs (>= 2.28.0-1),
(%type_raw[uitype] = .) glib2-shlibs (>= 2.22.0-1),
(%type_raw[uitype] = .) gtk+2-shlibs (>= 2.18.0-1),
(%type_raw[uitype] = .) libjpeg8-shlibs,
(%type_raw[uitype] = .) libotf-shlibs,
(%type_raw[uitype] = .) libpng15-shlibs,
(%type_raw[uitype] = .) librsvg2-shlibs (>= 2.26.0-3),
(%type_raw[uitype] = .) libtiff-shlibs,
(%type_raw[uitype] = .) pango1-xft2-ft219 (>= 1.24.5-4),
(%type_raw[uitype] = .) x11,
(%type_raw[uitype] = .) xft2-shlibs (>= 2.1.14-1)
<<
BuildDepends: <<
dbus1.3-dev,
fink (>= 0.24.12-1),
fink-package-precedence,
libncurses5 (>= 5.4-20041023-1006),
pkgconfig (>= 0.23-1),
(%type_raw[uitype] = .) atk1 (>= 1.28.0-1),
(%type_raw[uitype] = .) cairo (>= 1.8.8-3),
(%type_raw[uitype] = .) fontconfig2-dev (>= 2.8.0-4),
(%type_raw[uitype] = .) freetype219 (>= 2.3.12-1),
(%type_raw[uitype] = .) gconf2-dev (>= 2.28.0-1),
(%type_raw[uitype] = .) giflib,
(%type_raw[uitype] = .) glib2-dev (>= 2.22.0-1),
(%type_raw[uitype] = .) glitz,
(%type_raw[uitype] = .) gtk+2-dev (>= 2.18.0-1),
(%type_raw[uitype] = .) libjpeg8,
(%type_raw[uitype] = .) libotf,
(%type_raw[uitype] = .) libpng15,
(%type_raw[uitype] = .) librsvg2 (>= 2.26.0-3),
(%type_raw[uitype] = .) libtiff,
(%type_raw[uitype] = .) pango1-xft2-ft219-dev (>= 1.24.5-4),
(%type_raw[uitype] = .) pixman (>= 0.16.0-1),
(%type_raw[uitype] = .) x11-dev,
(%type_raw[uitype] = .) xft2-dev (>= 2.1.14-1)
<<
Conflicts: emacs23, emacs23-nox
Replaces: emacs23, emacs23-nox
Source: mirror:gnu:emacs/emacs-%v.tar.gz
Source-MD5: 20aef9ea5b5bf8050d39f8b1e96a1c04
SourceDirectory: emacs-23.3
PatchFile: emacs23.patch
PatchFile-MD5: eba63fe9378d9010a33e0451777ff455
PatchScript: <<
%{default_script}
# see DescPackaging
perl -pi -e 's/(xft >= 0.13.0)/\1 xrender/g' configure
<<
# makefiles pass CPPFLAGS early: don't want to override local -I with global
NoSetCPPFLAGS: true
SetCPPFLAGS: -MD
SetLDFLAGS: -fno-pie -L%p/lib/fontconfig2/lib -L%p/lib/xft2/lib
SetCFLAGS: -Os -pipe -fno-pie
ConfigureParams: <<
(%type_raw[uitype] = nox) --without-x \
(%type_raw[uitype] = nox) --without-gconf \
(%type_raw[uitype] = nox) --without-librsvg \
(%type_raw[uitype] != nox) --with-x \
(%type_raw[uitype] != nox) --x-includes=/usr/X11R6/include \
(%type_raw[uitype] != nox) --x-libraries=/usr/X11R6/lib \
(%type_raw[uitype] != nox) --with-gconf \
(%type_raw[uitype] != nox) --with-x-toolkit=gtk \
--infodir='${prefix}/share/info' \
--mandir='${prefix}/share/man' \
--libexecdir='${prefix}/lib' \
PKG_CONFIG_PATH="%p/lib/glib-2.0/pkgconfig-strict:%p/lib/fontconfig2/lib/pkgconfig:%p/lib/xft2/lib/pkgconfig:$PKG_CONFIG_PATH" \
INSTALL_INFO=/usr/bin/true \
ac_cv_header_libpng_png_h=no
<<
CompileScript: <<
#!/bin/bash -ev
# fix for 10.5 && Xquartz 2.6+
./configure %c
# Sync .elc's with patched .el's
(cd src && make bootstrap-emacs) || exit
(cd lisp && make recompile EMACS=../src/bootstrap-emacs) || exit
# Compile emacs with new *.elc
make
fink-package-precedence --depfile-ext='\.d' .
<<
InstallScript: <<
make install prefix=%i
rm %i/bin/emacs
mv %i/share/man/man1/emacs.1 %i/share/man/man1/emacs.1.emacs23
mv %i/bin/ctags %i/bin/ctags.emacs23
mv %i/share/man/man1/ctags.1 %i/share/man/man1/ctags.1.emacs23
mv %i/bin/emacsclient %i/bin/emacsclient.emacs23
mv %i/share/man/man1/emacsclient.1 %i/share/man/man1/emacsclient.1.emacs23
mv %i/bin/etags %i/bin/etags.emacs23
mv %i/share/man/man1/etags.1 %i/share/man/man1/etags.1.emacs23
mv %i/bin/b2m %i/bin/b2m.emacs23
mv %i/bin/rcs-checkin %i/bin/rcs-checkin.emacs23
mv %i/bin/ebrowse %i/bin/ebrowse.emacs23
mv %i/bin/grep-changelog %i/bin/grep-changelog.emacs23
mkdir -p %i/share/doc/%n
install -m 644 README %i/share/doc/%n/
install -m 644 src/COPYING %i/share/doc/%n/COPYING
mkdir -p %i/etc/emacs
mkdir -p %i/etc/emacs23/site-start.d
mkdir -p %i/share/emacs23
mv %i/share/emacs/23.3/site-lisp %i/share/emacs23/
(cd %i/share/emacs/23.3; ln -s ../../emacs23/site-lisp site-lisp)
(cd %i/bin; chmod 755 emacs-23.3; ln -s emacs-23.3 emacs23)
mv %i/share/info %i/share/emacs-23.info
mkdir -p %i/share/info
mv %i/share/emacs-23.info %i/share/info/emacs-23
chmod 755 mangle-info
chmod 755 fix-info
./fix-info %i/share/info/emacs-23
chmod 755 %i/share/emacs/23.3/leim/ja-dic
chmod 755 %i/share/emacs/23.3/leim/quail
rm %i/share/emacs/site-lisp/subdirs.el
<<
#
PostInstScript: <<
mkdir -p %p/etc/lisp/emacs/23.3/site-lisp
mkdir -p %p/etc/lisp/emacs/site-lisp
update-alternatives --install %p/bin/emacs emacs %p/bin/emacs23 50 --slave %p/share/man/man1/emacs.1 emacs.1 %p/share/man/man1/emacs.1.emacs23
update-alternatives --install %p/bin/ctags ctags %p/bin/ctags.emacs23 50 --slave %p/share/man/man1/ctags.1 ctags.1 %p/share/man/man1/ctags.1.emacs23
update-alternatives --install %p/bin/etags etags %p/bin/etags.emacs23 70 --slave %p/share/man/man1/etags.1 etags.1 %p/share/man/man1/etags.1.emacs23
update-alternatives --install %p/bin/emacsclient emacsclient %p/bin/emacsclient.emacs23 50
update-alternatives --install %p/bin/b2m b2m %p/bin/b2m.emacs23 50
update-alternatives --install %p/bin/rcs-checkin rcs-checkin %p/bin/rcs-checkin.emacs23 50
update-alternatives --install %p/bin/ebrowse ebrowse %p/bin/ebrowse.emacs23 50
update-alternatives --install %p/bin/grep-changelog grep-changelog %p/bin/grep-changelog.emacs23 50
# redundant but apparently necessary since doing it in the build script
# isn't actually making the change when the .deb is unpacked (why?)
#chmod 755 %p/share/emacs/23.3/leim/ja-dic
#chmod 755 %p/share/emacs/23.3/leim/quail
# Register ourselves with emacsen-common
%p/lib/emacsen-common/emacs-install emacs23
# Since we're placing our info files in a subdirectory of %p/share/info
# we need to manually add each doc to the info dir-file
for file in ada-mode auth autotype calc ccmode cl dbus dired-x \
ebrowse ediff efaq eintr elisp emacs emacs-mime epa erc \
eshell eudc flymake forms gnus idlwave info mairix-el \
message mh-e newsticker nxml-mode org pcl-cvs pgg rcirc \
reftex remember sasl sc ses sieve smtpmail speedbar tramp \
url vip viper widget woman
do
install-info --infodir=%p/share/info --section Emacs Emacs %p/share/info/emacs-23/${file}
done
# this was removed from lib-src/Makefile so that package passes
# --build-as-nobody
chown games %p/lib/emacs/23.3/*/update-game-score
chmod u+s %p/lib/emacs/23.3/*/update-game-score
chown games %p/var/games/emacs23
chmod u=rwx,g=rwx,o=rx %p/var/games/emacs23
<<
PreRmScript: <<
# Manually remove all of our info docs from the dir-file
for file in ada-mode auth autotype calc ccmode cl dbus dired-x \
ebrowse ediff efaq eintr elisp emacs emacs-mime epa erc \
eshell eudc flymake forms gnus idlwave info mairix-el \
message mh-e newsticker nxml-mode org pcl-cvs pgg rcirc \
reftex remember sasl sc ses sieve smtpmail speedbar tramp \
url vip viper widget woman
do
install-info --infodir=%p/share/info --remove-exactly emacs-23/${file}
done
if [ $1 != "upgrade" ]; then
update-alternatives --remove emacs %p/bin/emacs23
update-alternatives --remove emacsclient %p/bin/emacsclient.emacs23
update-alternatives --remove ctags %p/bin/ctags.emacs23
update-alternatives --remove etags %p/bin/etags.emacs23
update-alternatives --remove b2m %p/bin/b2m.emacs23
update-alternatives --remove rcs-checkin %p/bin/rcs-checkin.emacs23
update-alternatives --remove ebrowse %p/bin/ebrowse.emacs23
update-alternatives --remove grep-changelog %p/bin/grep-changelog.emacs23
%p/lib/emacsen-common/emacs-remove emacs23
fi
<<
#
DescDetail: <<
GNU Emacs is an extensible, customizable, self-documenting real-time
display editor. Through its extensibility, it is actually much more
than an editor. You can use it as a file manager, mail reader, web
browser, and for many other tasks. Some people even use it to control
their coffee machine.
<<
DescPackaging: <<
update-alternatives is used for emacs, emacsclient, ctags, etags, b2m
rcs-checkin, ebrowse, and grep-changelog to allow parallel installation
of emacs23 & xemacs.
Its info files are installed into the emacs23 subdirectory of
%p/share/info for the same reason.
Original packages by Christoph Pfister and Christian Swinehart
dmacks cleaned up to pass --build-as-nobody and for GNOME2.28
standards. Uses xrender directly but was relying on xft2.pc to
propagate it, which fink's doesn't, so include it explicitly as part
of xft2 flag detection. --enable-dependency-tracking doesn't seem to
have an effect, so do -MD explicitly. Make sure to get proper
fink-supplied masking of x11-supplied stuff, including buried things.
<<
ConfFiles: %p/var/games/emacs23/tetris-scores %p/var/games/emacs23/snake-scores
DescPort: <<
The patchfile modifies startup.el, and brings in the scripts fix-info
and mangle-info, in order to implement our emacs packaging system.
Implements patch from
http://emacsbugs.donarmstrong.com/cgi-bin/bugreport.cgi?bug=4122
to fix the Buffers menu. Thanks to Ingo Theis for reporting this and finding the bug report thread.
src/unexmacosx.c fixes:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8223
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8395 (-fno-pie)
<<
Homepage: http://www.gnu.org/software/emacs/
<<
diff -Nurd -x'*~' emacs-23.3.orig/configure emacs-23.3/configure
--- emacs-23.3.orig/configure 2011-03-07 00:29:43.000000000 -0500
+++ emacs-23.3/configure 2011-10-10 12:25:38.000000000 -0400
@@ -2466,7 +2466,7 @@
etcdir='${datadir}/emacs/${version}/etc'
archlibdir='${libexecdir}/emacs/${version}/${configuration}'
docdir='${datadir}/emacs/${version}/etc'
-gamedir='${localstatedir}/games/emacs'
+gamedir='${localstatedir}/games/emacs23'
gameuser=games
@@ -3165,12 +3165,6 @@
opsys=darwin
# Define CPP as follows to make autoconf work correctly.
CPP="${CC-cc} -E -no-cpp-precomp"
- # Use fink packages if available.
- if test -d /sw/include && test -d /sw/lib; then
- GCC_TEST_OPTIONS="-I/sw/include -L/sw/lib"
- CPP="${CPP} ${GCC_TEST_OPTIONS}"
- NON_GCC_TEST_OPTIONS=${GCC_TEST_OPTIONS}
- fi
;;
## HP 9000 series 700 and 800, running HP/UX
@@ -8074,7 +8068,7 @@
HAVE_GTK=no
if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "maybe"; then
GLIB_REQUIRED=2.6
- GTK_REQUIRED=2.6
+ GTK_REQUIRED=2.17.9
GTK_MODULES="gtk+-2.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED"
@@ -10097,9 +10091,9 @@
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ungif_EGifPutExtensionLast" >&5
$as_echo "$ac_cv_lib_ungif_EGifPutExtensionLast" >&6; }
-if test "x$ac_cv_lib_ungif_EGifPutExtensionLast" = x""yes; then :
+#if test "x$ac_cv_lib_ungif_EGifPutExtensionLast" = x""yes; then :
HAVE_GIF=yes
-fi
+#fi
if test "$HAVE_GIF" = yes; then
diff -Nurd -x'*~' emacs-23.3.orig/fix-info emacs-23.3/fix-info
--- emacs-23.3.orig/fix-info 1969-12-31 19:00:00.000000000 -0500
+++ emacs-23.3/fix-info 2011-10-10 12:25:38.000000000 -0400
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+THE_INFO_PREFIX=$1
+
+for file in ada-mode auth autotype calc ccmode cl dbus dired-x \
+ ebrowse ediff efaq eintr elisp emacs emacs-mime epa erc \
+ eshell eudc flymake forms gnus idlwave info mairix-el \
+ message mh-e newsticker nxml-mode org pcl-cvs pgg rcirc \
+ reftex remember sasl sc ses sieve smtpmail speedbar tramp \
+ url vip viper widget woman
+do
+ ./mangle-info ${THE_INFO_PREFIX}/${file}
+done
\ No newline at end of file
diff -Nurd -x'*~' emacs-23.3.orig/lib-src/Makefile.in emacs-23.3/lib-src/Makefile.in
--- emacs-23.3.orig/lib-src/Makefile.in 2011-01-08 12:45:14.000000000 -0500
+++ emacs-23.3/lib-src/Makefile.in 2011-10-10 12:25:38.000000000 -0400
@@ -307,13 +307,6 @@
umask 022; $(top_srcdir)/mkinstalldirs $(DESTDIR)${gamedir}; \
touch $(DESTDIR)${gamedir}/snake-scores; \
touch $(DESTDIR)${gamedir}/tetris-scores
-/* If the following commands fail, that is not a big deal.
- update-game-score will detect at runtime that it is not setuid,
- and handle things accordingly. */
- -if chown ${gameuser} $(DESTDIR)${archlibdir}/update-game-score && chmod u+s $(DESTDIR)${archlibdir}/update-game-score; then \
- chown ${gameuser} $(DESTDIR)${gamedir}; \
- chmod u=rwx,g=rwx,o=rx $(DESTDIR)${gamedir}; \
- fi
if [ `(cd $(DESTDIR)${archlibdir} && /bin/pwd)` \
!= `(cd ${srcdir} && /bin/pwd)` ]; then \
for file in ${SCRIPTS}; do \
diff -Nurd -x'*~' emacs-23.3.orig/lisp/startup.el emacs-23.3/lisp/startup.el
--- emacs-23.3.orig/lisp/startup.el 2011-01-08 12:45:14.000000000 -0500
+++ emacs-23.3/lisp/startup.el 2011-10-10 12:25:38.000000000 -0400
@@ -375,6 +375,10 @@
(defvar normal-top-level-add-subdirs-inode-list nil)
+(defconst fink-emacs-flavor 'emacs23
+ "A symbol representing the particular fink flavor of emacs running.
+Something like 'emacs20, 'xemacs20, etc.")
+
(defvar no-blinking-cursor nil)
(defvar default-frame-background-mode)
@@ -955,9 +959,19 @@
;; be loaded from site-run-file and wants to test if -q was given
;; should check init-file-user instead, since that is already set.
;; See cus-edit.el for an example.
- (if site-run-file
- (load site-run-file t t))
-
+ ;; (if site-run-file
+ ;; (load site-run-file t t))
+
+ ;; Fink version of site-start.
+ (if site-run-file
+ (progn
+ ;; Load all the fink package snippets.
+ ;; It's in here because we want -q to kill it too.
+ (if (load "fink-startup" t t nil)
+ (fink-startup fink-emacs-flavor))
+ ;; Now the normal site file...
+ (load site-run-file t t nil)))
+
;; Sites should not disable this. Only individuals should disable
;; the startup screen.
(setq inhibit-startup-screen nil)
diff -Nurd -x'*~' emacs-23.3.orig/mangle-info emacs-23.3/mangle-info
--- emacs-23.3.orig/mangle-info 1969-12-31 19:00:00.000000000 -0500
+++ emacs-23.3/mangle-info 2011-10-10 12:25:38.000000000 -0400
@@ -0,0 +1,18 @@
+#!/usr/bin/perl -w -i
+
+use English;
+use strict;
+
+$RS = undef;
+
+my $prefix = "emacs-23";
+
+my $x = <>;
+if(!($x =~ m/^(\s*START-INFO-DIR-ENTRY\s+\*\s*[^:]+:\s*)\(([^\)]+)\)/mo)) {
+ die "Couldn't find START-INFO-DIR-ENTRY.";
+}
+
+print ${PREMATCH};
+print "$1($prefix/$2)";
+print ${POSTMATCH};
+
diff -Nurd -x'*~' emacs-23.3.orig/src/Makefile.in emacs-23.3/src/Makefile.in
--- emacs-23.3.orig/src/Makefile.in 2011-02-19 12:30:55.000000000 -0500
+++ emacs-23.3/src/Makefile.in 2011-10-10 12:25:38.000000000 -0400
@@ -269,7 +269,7 @@
/* C_SWITCH_X_SITE must come before C_SWITCH_X_MACHINE and C_SWITCH_X_SYSTEM
since it may have -I options that should override those two. */
-ALL_CFLAGS=-Demacs -DHAVE_CONFIG_H $(MYCPPFLAGS) -I. -I${srcdir} C_SWITCH_MACHINE C_SWITCH_SYSTEM C_SWITCH_X_SITE C_SWITCH_X_MACHINE C_SWITCH_X_SYSTEM C_SWITCH_SYSTEM_TEMACS ${CFLAGS_SOUND} ${RSVG_CFLAGS} ${DBUS_CFLAGS} ${GCONF_CFLAGS} ${CFLAGS} @FREETYPE_CFLAGS@ @FONTCONFIG_CFLAGS@ @LIBOTF_CFLAGS@ @M17N_FLT_CFLAGS@ ${DEPFLAGS}
+ALL_CFLAGS=-Demacs -DHAVE_CONFIG_H $(MYCPPFLAGS) -I. -I${srcdir} C_SWITCH_MACHINE C_SWITCH_SYSTEM C_SWITCH_SYSTEM_TEMACS @XFT_CFLAGS@ @FREETYPE_CFLAGS@ @FONTCONFIG_CFLAGS@ ${CFLAGS_SOUND} ${RSVG_CFLAGS} ${DBUS_CFLAGS} ${GCONF_CFLAGS} ${CFLAGS} @LIBOTF_CFLAGS@ @M17N_FLT_CFLAGS@ C_SWITCH_X_SITE C_SWITCH_X_MACHINE C_SWITCH_X_SYSTEM ${DEPFLAGS}
ALL_OBJC_CFLAGS=$(ALL_CFLAGS) @GNU_OBJC_CFLAGS@
.SUFFIXES: .m
diff -Nurd -x'*~' emacs-23.3.orig/src/unexmacosx.c emacs-23.3/src/unexmacosx.c
--- emacs-23.3.orig/src/unexmacosx.c 2011-01-08 12:45:14.000000000 -0500
+++ emacs-23.3/src/unexmacosx.c 2011-10-10 12:25:38.000000000 -0400
@@ -822,6 +822,7 @@
}
else if (strncmp (sectp->sectname, "__la_symbol_ptr", 16) == 0
|| strncmp (sectp->sectname, "__nl_symbol_ptr", 16) == 0
+ || strncmp (sectp->sectname, "__got", 16) == 0
|| strncmp (sectp->sectname, "__la_sym_ptr2", 16) == 0
|| strncmp (sectp->sectname, "__dyld", 16) == 0
|| strncmp (sectp->sectname, "__const", 16) == 0