Although there isn't a whole lot of exciting stuff from upstream since
22.0.50, is it possible to get an upgrade to the current CVS
(22.0.90+)?
I built a package using the debian snapshot (on an MBP). It seems to
work. I've attached the finkinfo files; they're based on the ones
from emacs22-carbon, but I changed the package and file names to avoid
conflicts with the official packages.
Package: emacs-snapshot-carbon
Version: 22.0.91.cvs20061201
Revision: 1
BuildDepends: libncurses5 (>= 5.4-20041023-1006), fink (>= 0.24.2)
Depends: emacsen-common, ncurses (>= 5.4-20041023-1006), libncurses5-shlibs (>= 5.4-20041023-1006), passwd, macosx, system-perl
Provides: emacsen
CustomMirror: <<
asi-JP: http://qgpop.dl.sourceforge.jp/macemacsjp
asi-JP: http://osdn.dl.sourceforge.jp/macemacsjp
asi-JP: http://keihanna.dl.sourceforge.jp/macemacsjp
<<
Source: mirror:debian:/pool/main/e/emacs-snapshot/emacs-snapshot_20061201.orig.tar.gz
Source-MD5: f9cce0eec30451898ba2b240414a6779
SourceDirectory: emacs-22.0.91
Source2: mirror:custom:/22701/inline_patch-20061111.tar.gz
Source2-MD5: 62ee9ed79f18ba1d5e4d46d6b50a99b1
Source3: mirror:custom:/16865/transparency-2.1.1.tar.gz
Source3-MD5: fcc6c8803c31c1081c5b26bcb90d4c46
Source4: mirror:custom:/16789/fixed-width-fontset-0.9.0.tar.gz
Source4-MD5: dabad41eb11f64d5351ff628ca8a11e7
Source5: mirror:custom:/21256/utf-8m.el
Source5Rename: utf-8m-20060805.el
Source5-MD5: d207064da54ba60bf64afcfbb302770d
Source6: mirror:custom:/20045/CarbonEmacsIcon-1.0.tar.gz
Source6-MD5: 16171e0fed916d7d21dc085d5d3cd7da
Description: Flexible real-time text editor, Aqua native
DocFiles: <<
AUTHORS COPYING README mac/README:README.mac
../transparency2/readme:README.transparency2
../fixed-width-fontset/readme:README.fixed-width-fontset
<<
ConfFiles: %p/var/games/%n/tetris-scores %p/var/games/%n/snake-scores
AppBundles: finktmp/mac/Emacs.app
PatchScript: <<
#!/bin/sh -ev
# Remove CVS date from version number (%v) and append '-carbon' suffix
v=`expr "%v" : '\(.*\)\.cvs'`-carbon
sed -e 's|@PREFIX@|%p|g' \
-e 's|@EMACS-FLAVOR@|%n|g' \
-e "s|@EMACS-VERSION@|$v|g" \
%a/%n.patch | patch -p1
/usr/bin/patch -p0 -i ../inline_patch-*/emacs-inline.patch
/usr/bin/patch -p0 -i ../transparency2/transparency2.patch
cp ../CarbonEmacsIcon-*/Emacs.icns mac/Emacs.app/Contents/Resources/
mkdir finktmp
cp ../fixed-width-fontset/carbon-font.el ../fixed-width-fontset/fixed-width-fontset.el finktmp
cp ../utf-8m-*.el finktmp/utf-8m.el
<<
SetMAKEFLAGS: -j1
SetCPPFLAGS: -DUSE_ATSUI
SetCFLAGS: -fconstant-cfstrings
ConfigureParams: --build=%m-apple-darwin`uname -r|sed 's/\\..*//'` --infodir='${prefix}/share/info' --mandir='${prefix}/share/man' --libexecdir='${prefix}/lib' --with-carbon --enable-carbon-appdir= --without-x --without-gif --without-toolkit-scroll-bars
CompileScript: <<
#!/bin/sh -ev
# Remove CVS date from version number (%v) and append '-carbon' suffix
v=`expr "%v" : '\(.*\)\.cvs'`-carbon
case `uname -r` in
7.*)
if fgrep -q '7.0.4' /System/Library/Frameworks/QuickTime.framework/Resources/version.plist; then
echo 'QuickTime 7.0.4 breaks the build on 10.3.' >&2
echo 'Get 7.0.1 reinstaller and downgrade QuickTime.' >&2
echo 'http://www.apple.com/support/downloads/quicktime701reinstallerforquicktime704.html' >&2
exit 1
fi;;
esac
./configure %c
# Sync .elc's with patched .el's
(cd lisp && make bootstrap-prepare) || exit
(cd src && make bootstrap) || exit
EMACS="../src/bootstrap-emacs"
(cd lisp && \
make bootstrap EMACS=$EMACS && \
make autoloads EMACS=$EMACS && \
make recompile EMACS=$EMACS) || exit
# Compile emacs with new *.elc
make
/usr/bin/find mac/Emacs.app ! -path "*/CVS/*" ! -name CVS ! -name .cvsignore > app.list
/usr/bin/cpio -pdL finktmp < app.list
EMACSLOADPATH=$PWD/finktmp:$PWD/lisp src/emacs -batch --no-init-file --no-site-file --multibyte -f batch-byte-compile 01carbon-emacs.el finktmp/*.el
<<
InstallScript: <<
#!/bin/sh -ev
# Remove CVS date from version number (%v) and append '-carbon' suffix
v=`expr "%v" : '\(.*\)\.cvs'`-carbon
# Install Everything (except Emacs.app)
make prefix=%i install
# Move some files to avoid conflicts with other emacsen
for f in %i/share/man/man1/{emacs.1,ctags.1,emacsclient.1,etags.1} \
%i/bin/{ctags,emacsclient,etags} \
%i/bin/{b2m,rcs-checkin,ebrowse,grep-changelog}; do
mv "$f" "$f.%n"
done
# Wrapper script for the command-line invokation
rm %i/bin/emacs %i/bin/emacs-$v
install -m 755 emacs.bash %i/bin/emacs-$v
ln -s emacs-$v %i/bin/%n
ln -s emacs-$v "%i/bin/Emacs.app"
mkdir -p %i/etc/%n/site-start.d
mkdir -p %i/share/%n
mv %i/share/emacs/$v/site-lisp %i/share/%n/
(cd %i/share/emacs/$v; ln -s ../../%n/site-lisp site-lisp) || exit
mv %i/share/info %i/share/info-%n
mkdir -p %i/share/info
mv %i/share/info-%n %i/share/info/%n
rm %i/share/info/%n/dir %i/share/info/%n/dir.old
chmod 755 fix-info mangle-info
./fix-info %i/share/info/%n
rm %i/share/emacs/site-lisp/subdirs.el
install -m 644 finktmp/*.el finktmp/*.elc %i/share/%n/site-lisp
install -m 644 01carbon-emacs.el 01carbon-emacs.elc %i/etc/%n/site-start.d
# Patch Emacs.app to load %p/bin/init.sh
ebd="finktmp/mac/Emacs.app/Contents/MacOS/"
mv "$ebd/Emacs" "$ebd/Emacs.bin"
install -m 755 Emacs.finkwrap "$ebd/Emacs"
<<
PostInstScript: <<
# Remove CVS date from version number (%v) and append '-carbon' suffix
v=`expr "%v" : '\(.*\)\.cvs'`-carbon
libdir=%p/lib/emacs/$v/%m-apple-darwin`uname -r|sed 's/\\..*//'`
chown games:admin $libdir/update-game-score
chmod 4755 $libdir/update-game-score
chown -R games:admin %p/var/games/%n
mkdir -p %p/etc/lisp/emacs/$v/site-lisp
mkdir -p %p/etc/lisp/emacs/site-lisp
# Priorities are set to low not to disturb non-carbon emacsen...
update-alternatives --install %p/bin/emacs emacs %p/bin/%n 35 \
--slave %p/share/man/man1/emacs.1 emacs.1 %p/share/man/man1/emacs.1.%n
update-alternatives --install %p/bin/ctags ctags %p/bin/ctags.%n 35 \
--slave %p/share/man/man1/ctags.1 ctags.1 %p/share/man/man1/ctags.1.%n
update-alternatives --install %p/bin/etags etags %p/bin/etags.%n 55 \
--slave %p/share/man/man1/etags.1 etags.1 %p/share/man/man1/etags.1.%n
update-alternatives \
--install %p/bin/emacsclient emacsclient %p/bin/emacsclient.%n 35 \
--slave %p/share/man/man1/emacsclient.1 emacsclient.1 \
%p/share/man/man1/emacsclient.1.%n
update-alternatives --install %p/bin/b2m b2m %p/bin/b2m.%n 35
update-alternatives \
--install %p/bin/rcs-checkin rcs-checkin %p/bin/rcs-checkin.%n 35
update-alternatives --install %p/bin/ebrowse ebrowse %p/bin/ebrowse.%n 35
update-alternatives --install %p/bin/grep-changelog grep-changelog \
%p/bin/grep-changelog.%n 35
# Regiser ourselves with emacsen-common
%p/lib/emacsen-common/emacs-install %n
# 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
# NOTE: list of info docs also present in prerm script and "fixinfo"
# included in the emacs-snapshot.patch
for file in ada-mode autotype ccmode cl dired-x ebrowse ediff efaq eintr \
elisp emacs emacs-mime eshell eudc forms gnus idlwave \
info message mh-e newsticker org pcl-cvs pgg reftex sc ses sieve \
smtpmail speedbar tramp url vip viper widget woman
do
install-info --infodir=%p/share/info \
--section "Carbon Emacs" "Carbon Emacs" %p/share/info/%n/${file}
done
<<
PreRmScript: <<
# Remove CVS date from version number (%v) and append '-carbon' suffix
v=`expr "%v" : '\(.*\)\.cvs'`-carbon
# Manually remove all of our info docs from the dir-file
for file in ada-mode autotype ccmode cl dired-x ebrowse ediff efaq eintr \
elisp emacs emacs-mime eshell eudc forms gnus idlwave \
info message mh-e newsticker org pcl-cvs pgg reftex sc ses sieve \
smtpmail speedbar tramp url vip viper widget woman
do
install-info --infodir=%p/share/info --remove-exactly %n/${file}
done
if [ $1 != "upgrade" ]; then
update-alternatives --remove emacs %p/bin/%n
update-alternatives --remove emacsclient %p/bin/emacsclient.%n
update-alternatives --remove ctags %p/bin/ctags.%n
update-alternatives --remove etags %p/bin/etags.%n
update-alternatives --remove b2m %p/bin/b2m.%n
update-alternatives --remove rcs-checkin %p/bin/rcs-checkin.%n
update-alternatives --remove ebrowse %p/bin/ebrowse.%n
%p/lib/emacsen-common/emacs-remove %n
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.
This package installs Carbon port of GNU Emacs, which can natively run
on Mac OS X window system. Also supports input methods for
international languages.
Use -nw option to use this emacs on terminal.
<<
DescPackaging: <<
This .info file is essentially based on the emacs21 package by:
Christian Swinehart <[EMAIL PROTECTED]>
The first author of this package is:
NAKAHASHI Ichiro <[EMAIL PROTECTED]>
update-alternatives is used for emacs, emacsclient, ctags, etags, b2m
rcs-checkin, ebrowse, and grep-changelog to allow parallel installation
of emacs22 & xemacs & emacs22-carbon & emacs-snapshot.
Its info files are installed into the emacs-snapshot-carbon subdirectory of
<fink-root>/share/info for the same reason.
<<
DescPort: <<
You can launch emacs-snapshot from Finder, as well as terminal using usual
command line syntax. For this purpose, Emacs.app is placed on
%p/Applications and will be symlinked from /Applications/Fink. To gain a
better integration with the fink environments, it automatically loads
%p/bin/init.sh at startup.
I don't know why nichiro set $0 to Emacs instead of Emacs.bin.
The patchfile modifies startup.el, and brings in the scripts fix-info and
mangle-info, in order to implement our emacs packaging system.
Since this package comes from the CVS repository none of the elisp files
are byte-compiled by default. So before making the source tarball used by
fink the CVS version must first be `make bootstrap'ed then the .elc's
produced are injected into a fresh copy of the source tree and tarred
up again. If .el's are patched, .elc's are updated by `make recompile'.
How to make tarball containing .elc's:
$ cvs -d :pserver:[EMAIL PROTECTED]:/sources/emacs login
<password is empty>
$ cvs -d :pserver:[EMAIL PROTECTED]:/sources/emacs co \
-d emacs-%v -D "dd mm yyyy UTC" emacs
$ cd emacs-%v
$ ./configure --without-carbon --without-x
$ make bootstrap MAKEINFO="LC_ALL=C %p/bin/makeinfo --force"
$ make distclean
<<
DescUsage: <<
You can launch emacs-snapshot-carbon, not just by double-clicking, but
also by typing
$ emacs-snapshot-carbon
or
$ Emacs.app
in the terminal. In this way, you can pass runtime options to emacs, e.g.
$ emacs-snapshot-carbon --no-site-file
If you want to input characters via MacIM in inline style, add your .emacs.el:
(if (eq window-system 'mac)
(mac-setup-inline-input-method))
<<
License: GPL
Maintainer: Dean Scarff <[EMAIL PROTECTED]>
Homepage: http://macemacsjp.sourceforge.jp/
diff -Naur --exclude=*.orig emacs-22.0.50.cvs20060316.orig/01carbon-emacs.el emacs-22.0.50.cvs20060316/01carbon-emacs.el
--- emacs-22.0.50.cvs20060316.orig/01carbon-emacs.el Thu Jan 1 00:00:00 1970
+++ emacs-22.0.50.cvs20060316/01carbon-emacs.el Mon Mar 6 15:42:52 2006
@@ -0,0 +1,13 @@
+(if (eq window-system 'mac)
+ (progn
+ ;; append "PREFIX/sbin" "PREFIX/bin" to exec-path
+ (if (not (member "@PREFIX@/sbin" exec-path))
+ (setq exec-path (append '("@PREFIX@/sbin") exec-path))
+ )
+ (if (not (member "@PREFIX@/bin" exec-path))
+ (setq exec-path (append '("@PREFIX@/bin") exec-path))
+ )
+
+ ;; inline image support
+ (auto-image-file-mode)
+ ))
diff -Naur --exclude=*.orig emacs-22.0.50.cvs20060316.orig/Emacs.finkwrap emacs-22.0.50.cvs20060316/Emacs.finkwrap
--- emacs-22.0.50.cvs20060316.orig/Emacs.finkwrap Thu Jan 1 00:00:00 1970
+++ emacs-22.0.50.cvs20060316/Emacs.finkwrap Mon Mar 6 15:42:52 2006
@@ -0,0 +1,3 @@
+#!/bin/bash
+. @PREFIX@/bin/init.sh
+exec -a "$0" "$0.bin" "$@"
diff -Naur --exclude=*.orig emacs-22.0.50.cvs20060316.orig/Makefile.in emacs-22.0.50.cvs20060316/Makefile.in
--- emacs-22.0.50.cvs20060316.orig/Makefile.in Fri Mar 3 12:00:55 2006
+++ emacs-22.0.50.cvs20060316/Makefile.in Sun Mar 19 12:43:18 2006
@@ -422,8 +422,7 @@
&& (echo "Copying $${dir} to $${dest}..." ; \
(cd $${dir}; tar -chf - . ) \
| (cd $${dest}; umask 022; \
- tar -xvf - && cat > /dev/null) || exit 1; \
- find $${dest} -exec chown $${LOGNAME:-$$USERNAME} {} ';' ;\
+ gtar -xvf - --no-same-owner --no-same-permissions && cat > /dev/null) || exit 1; \
for subdir in `find $${dest} -type d ! -name RCS ! -name CVS -print` ; do \
chmod a+rx $${subdir} ; \
rm -rf $${subdir}/RCS ; \
@@ -462,8 +461,8 @@
then \
echo "Copying etc/DOC-* to $(DESTDIR)${docdir} ..." ; \
(cd ./etc; tar -chf - DOC*) \
- |(cd $(DESTDIR)${docdir}; umask 022; tar -xvf - && cat > /dev/null) || exit 1; \
- (cd $(DESTDIR)$(docdir); chown $${LOGNAME:-$$USERNAME} DOC*; chmod a+r DOC*; \
+ |(cd $(DESTDIR)${docdir}; umask 022; gtar -xvf - --no-same-owner --no-same-permissions && cat > /dev/null) || exit 1; \
+ (cd $(DESTDIR)$(docdir); chmod a+r DOC*; \
if test "`echo DOC-*`" != "DOC-*"; then rm DOC; fi); \
else true; fi
-unset CDPATH; \
@@ -474,8 +473,7 @@
then \
echo "Copying lisp/*.el and lisp/*.elc to $(DESTDIR)${lispdir} ..." ; \
(cd lisp; tar -chf - *.el *.elc) \
- |(cd $(DESTDIR)${lispdir}; umask 022; tar -xvf - && cat > /dev/null) || exit 1; \
- (cd $(DESTDIR)${lispdir}; find . -exec chown $${LOGNAME:-$$USERNAME} {} ';') ; \
+ |(cd $(DESTDIR)${lispdir}; umask 022; gtar -xvf - --no-same-owner --no-same-permissions && cat > /dev/null) || exit 1; \
else true; fi
-unset CDPATH; \
if [ -n "${GZIP_PROG}" ]; \
diff -Naur --exclude=*.orig emacs-22.0.50.cvs20060316.orig/configure emacs-22.0.50.cvs20060316/configure
--- emacs-22.0.50.cvs20060316.orig/configure Fri Mar 3 11:32:03 2006
+++ emacs-22.0.50.cvs20060316/configure Sun Mar 19 12:36:55 2006
@@ -1359,7 +1359,7 @@
etcdir='${datadir}/emacs/${version}/etc'
archlibdir='${libexecdir}/emacs/${version}/${configuration}'
docdir='${datadir}/emacs/${version}/etc'
-gamedir='${localstatedir}/games/emacs'
+gamedir='${localstatedir}/games/@EMACS-FLAVOR@'
gameuser=games
@@ -22782,6 +22782,7 @@
echo "$as_me: error: can't find current emacs version in \`${srcdir}/lisp/version.el'." >&2;}
{ (exit 1); exit 1; }; }
fi
+version="@EMACS-VERSION@"
### Specify what sort of things we'll be editing into Makefile and config.h.
### Use configuration here uncanonicalized to avoid exceeding size limits.
diff -Naur --exclude=*.orig emacs-22.0.50.cvs20060316.orig/emacs.bash emacs-22.0.50.cvs20060316/emacs.bash
--- emacs-22.0.50.cvs20060316.orig/emacs.bash Thu Jan 1 00:00:00 1970
+++ emacs-22.0.50.cvs20060316/emacs.bash Mon Mar 6 15:42:52 2006
@@ -0,0 +1,3 @@
+#!/bin/bash
+exec -a "@PREFIX@/Applications/Emacs.app/Contents/MacOS/Emacs" \
+ "@PREFIX@/Applications/Emacs.app/Contents/MacOS/Emacs.bin" "$@"
diff -Naur --exclude=*.orig emacs-22.0.50.cvs20060316.orig/fix-info emacs-22.0.50.cvs20060316/fix-info
--- emacs-22.0.50.cvs20060316.orig/fix-info Thu Jan 1 00:00:00 1970
+++ emacs-22.0.50.cvs20060316/fix-info Mon Mar 6 15:42:52 2006
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+THE_INFO_PREFIX=$1
+
+for file in ada-mode autotype ccmode cl dired-x ebrowse ediff efaq \
+ emacs emacs-mime eshell eudc forms gnus idlwave info \
+ message mh-e pcl-cvs reftex sc speedbar vip viper widget woman
+do
+ ./mangle-info ${THE_INFO_PREFIX}/${file}
+done
diff -Naur --exclude=*.orig emacs-22.0.50.cvs20060316.orig/lisp/startup.el emacs-22.0.50.cvs20060316/lisp/startup.el
--- emacs-22.0.50.cvs20060316.orig/lisp/startup.el Mon Feb 27 01:56:19 2006
+++ emacs-22.0.50.cvs20060316/lisp/startup.el Sun Mar 19 12:36:55 2006
@@ -289,6 +289,10 @@
(defvar default-frame-background-mode)
+(defconst fink-emacs-flavor '@EMACS-FLAVOR@
+ "A symbol representing the particular fink flavor of emacs running.
+Something like 'emacs20, 'xemacs20, etc.")
+
(defvar pure-space-overflow nil
"Non-nil if building Emacs overflowed pure space.")
@@ -806,8 +810,20 @@
;; Run the site-start library if it exists. The point of this file is
;; that it is run before .emacs. There is no point in doing this after
;; .emacs; that is useless.
+
+ ;; (if site-run-file
+ ;; (load site-run-file t t))
+
+ ;; Fink version of site-start.
(if site-run-file
- (load site-run-file t t))
+ (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 message.
diff -Naur --exclude=*.orig emacs-22.0.50.cvs20060316.orig/mangle-info emacs-22.0.50.cvs20060316/mangle-info
--- emacs-22.0.50.cvs20060316.orig/mangle-info Thu Jan 1 00:00:00 1970
+++ emacs-22.0.50.cvs20060316/mangle-info Mon Mar 6 15:42:52 2006
@@ -0,0 +1,17 @@
+#!/usr/bin/perl -w -i
+
+use English;
+use strict;
+
+$RS = undef;
+
+my $prefix = "@EMACS-FLAVOR@";
+
+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};
--
Dean
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Fink-devel mailing list
Fink-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fink-devel