auto-import changelog data from emacs-21.2-33.src.rpm
Thu Feb 20 2003 Jens Petersen <petersen@redhat.com> - 21.2-33 - default browse-url to use htmlview (#84262) - remove info dir file rather than excluding it Sat Feb 08 2003 Jens Petersen <petersen@redhat.com> - 21.2-32 - set X copy'n'paste encoding to extended compound-text (#74100) by default in .emacs file [suggested by olonho@hotmail.com] - .emacs file cleanup (xemacs now has a separate init file) Fri Feb 07 2003 Jens Petersen <petersen@redhat.com> - 21.2-31 - block input in allocate_vectorlike to prevent malloc hangs (#83600) [thanks to Jim Blandy] - set startup wmclass notify in desktop file Wed Jan 22 2003 Tim Powers <timp@redhat.com> - rebuilt Wed Jan 15 2003 Jens Petersen <petersen@redhat.com> 21.2-29 - update to newer po-mode.el and po-compat.el from gettext-0.11.4 - patch po-mode's po-replace-revision-date for when po-auto-replace-revision-date is nil (#71264) - update po-mode-init.el - examine LC_ALL before LC_CTYPE in site-start.el for utf-8 (#79535) - don't install etc/DOC files explicitly by hand - make sure all lisp .elc files are up to date - pass _smp_mflags to make - remove games that we shouldn't ship Mon Jan 13 2003 Karsten Hopp <karsten@redhat.de> 21.2-28 - s390x lib64 fix Fri Jan 03 2003 Jens Petersen <petersen@redhat.com> 21.2-27 - look at LANG after LC_CTYPE when checking for UTF-8 locale encoding in site-start.el (#79535) - don't set desktop file config(noreplace) Fri Dec 20 2002 Jens Petersen <petersen@redhat.com> 21.2-26 - unset the sticky bit of emacs in bindir (#80049) Wed Dec 18 2002 Jens Petersen <petersen@redhat.com> 21.2-25 - no need to patch config.{sub,guess} Tue Dec 03 2002 Tim Waugh <twaugh@redhat.com> - Fix python-mode-init.el (bug #78910). Sun Dec 01 2002 Jens Petersen <petersen@redhat.com> 21.2-24 - rpm-spec-mode update fixes - patch in XEmacs compat functions rather than defining them with apel macros in init file (#78764) - autoload "rpm-spec-mode" not "rpm-spec-mode.el" in same file - let emacs base also own leim dir to avoid startup warning about missing dir when -el and -leim aren't installed (#78764) Thu Nov 28 2002 Jens Petersen <petersen@redhat.com> - use LC_CTYPE rather than LANG to determine default encoding (#78678) [reported by starback@stp.ling.uu.se] Wed Nov 27 2002 Jens Petersen <petersen@redhat.com> 21.2-23 - set transient-mark-mode in dotemacs for Emacs not XEmacs (#75440) - update rpm-spec-mode.el to 0.12 - define needed XEmacs compat functions in new rpm-spec-mode-init.el - tidy site-start.el - move python-mode setup to python-mode - don't build with sbin in path - use _libexecdir, _bindir and _sysconfdir - don't gzip info files explicitly - use tar's C and j options - generate lisp file-lists in single find sweeps over lisp and leim dirs - use -fprint and -fprintf - correct more dir ownerships Sun Nov 24 2002 Florian La Roche <Florian.LaRoche@redhat.de> 21.2-22 - add correct alloca defines for s390 Wed Nov 06 2002 Jens Petersen <petersen@redhat.com> 21.2-21 - uses patches for x86_64 and s390 support and config.{guess,sub} updating Tue Nov 05 2002 Jens Petersen <petersen@redhat.com> 21.2-20 - add support for x86_64 and merge in s390 support from cvs - add alloca defines to amdx86-64.h (from SuSE) Wed Oct 30 2002 Jens Petersen <petersen@redhat.com> 21.2-19 - own our libexec dir (#73984) - only set transient-mark-mode in dotemacs for Emacs (#75440) - update to latest config.{guess,sub} - use _datadir macro
This commit is contained in:
parent
43fd20cb91
commit
d31aa3654e
@ -31,5 +31,4 @@ Terminal=0
|
|||||||
MapNotify=false
|
MapNotify=false
|
||||||
Categories=TextEditor;Development;X-Red-Hat-Base;Application;
|
Categories=TextEditor;Development;X-Red-Hat-Base;Application;
|
||||||
Encoding=UTF-8
|
Encoding=UTF-8
|
||||||
|
StartupWMClass=Emacs
|
||||||
|
|
||||||
|
329
emacs.spec
329
emacs.spec
@ -1,8 +1,9 @@
|
|||||||
# [for (x)emacs] -*- coding: utf-8 -*-
|
# This file is encoded in UTF-8. -*- coding: utf-8 -*-
|
||||||
|
|
||||||
Summary: The libraries needed to run the GNU Emacs text editor.
|
Summary: The libraries needed to run the GNU Emacs text editor.
|
||||||
Name: emacs
|
Name: emacs
|
||||||
Version: 21.2
|
Version: 21.2
|
||||||
Release: 18
|
Release: 33
|
||||||
License: GPL
|
License: GPL
|
||||||
URL: http://www.gnu.org/software/emacs/
|
URL: http://www.gnu.org/software/emacs/
|
||||||
Group: Applications/Editors
|
Group: Applications/Editors
|
||||||
@ -20,17 +21,26 @@ Source10: ftp://ftp.gnu.org/gnu/emacs/elisp-manual-21-2.8.tar.bz2
|
|||||||
Source11: php-mode.el
|
Source11: php-mode.el
|
||||||
Source12: php-mode-init.el
|
Source12: php-mode-init.el
|
||||||
Source13: ssl.el
|
Source13: ssl.el
|
||||||
Source14: po-mode.el
|
Source16: python-mode-init.el
|
||||||
Source15: po-mode-init.el
|
Source17: rpm-spec-mode-init.el
|
||||||
|
Source18: rpm-spec-mode.el-0.14-xemacs-compat.patch
|
||||||
|
Source20: po-mode.el
|
||||||
|
Source21: po-compat.el
|
||||||
|
Source22: po-mode-init.el
|
||||||
|
Source23: po-mode-auto-replace-date-71264.patch
|
||||||
Patch1: emacs-21.2-pop.patch
|
Patch1: emacs-21.2-pop.patch
|
||||||
Patch50: emacs-21.2-s390.patch
|
Patch2: emacs-21.2-s390.patch
|
||||||
|
Patch3: emacs-21.2-x86_64.patch
|
||||||
|
Patch4: emacs-21.2-sticky-bit-80049.patch
|
||||||
|
Patch5: emacs-21.2-s390x.patch
|
||||||
|
Patch6: emacs-21.2-menubar-games.patch
|
||||||
|
Patch7: emacs-21.2-alloc-blockinput-83600.patch
|
||||||
|
Patch8: browse-url-htmlview-84262.patch
|
||||||
Buildroot: %{_tmppath}/%{name}-%{version}-root
|
Buildroot: %{_tmppath}/%{name}-%{version}-root
|
||||||
Prereq: /sbin/install-info
|
Prereq: /sbin/install-info, dev
|
||||||
BuildRequires: glibc-devel gcc XFree86-devel bzip2 ncurses-devel
|
BuildRequires: glibc-devel, gcc, XFree86-devel, bzip2, ncurses-devel, zlib-devel, libpng-devel, libjpeg-devel, libungif-devel, libtiff-devel
|
||||||
BuildRequires: zlib-devel libpng-devel libjpeg-devel libungif-devel libtiff-devel
|
Obsoletes: emacs-nox, emacs-X11
|
||||||
Obsoletes: emacs-nox emacs-X11
|
|
||||||
Conflicts: gettext < 0.10.40
|
Conflicts: gettext < 0.10.40
|
||||||
Prereq: dev
|
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Emacs is a powerful, customizable, self-documenting, modeless text
|
Emacs is a powerful, customizable, self-documenting, modeless text
|
||||||
@ -69,133 +79,102 @@ non-English character set. Input methods for many different character
|
|||||||
sets are included in this package.
|
sets are included in this package.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
|
|
||||||
%setup -q -b 1
|
%setup -q -b 1
|
||||||
|
%patch1 -p1 -b .pop
|
||||||
%patch1 -p1
|
%patch2 -p1 -b .s390
|
||||||
|
%patch3 -p1 -b .hammer
|
||||||
%ifarch s390 s390x
|
%patch4 -p1 -b .sticky
|
||||||
%patch50 -p1 -b .s390
|
%patch5 -p1 -b .s390x
|
||||||
%endif
|
# remove game we can't ship
|
||||||
|
%patch6 -p1
|
||||||
|
rm lisp/finder-inf.el lisp/play/tetris.el*
|
||||||
|
# block input in `allocate_vectorlike' (alloc.c)
|
||||||
|
%patch7 -p1 -b .block
|
||||||
|
# make browse-url default to htmlview not netscape
|
||||||
|
%patch8 -p1 -b .htmlview
|
||||||
|
# patches 2 and 3 touch configure.in
|
||||||
|
autoconf-2.13
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
|
||||||
export CFLAGS="-DMAIL_USE_LOCKF $RPM_OPT_FLAGS"
|
export CFLAGS="-DMAIL_USE_LOCKF $RPM_OPT_FLAGS"
|
||||||
#to find installinfo
|
|
||||||
export PATH="$PATH:/sbin:/usr/sbin"
|
|
||||||
|
|
||||||
%configure --with-gcc --with-pop --with-sound
|
%configure --with-gcc --with-pop --with-sound
|
||||||
make
|
make %{?_smp_mflags}
|
||||||
|
# remove versioned file so that we end up with .1 suffix and only one DOC file
|
||||||
|
rm src/emacs-%{version}.*
|
||||||
|
# make sure patched lisp files get byte-compiled
|
||||||
|
src/emacs -batch -f batch-byte-recompile-directory lisp
|
||||||
|
make %{?_smp_mflags} -C lisp updates
|
||||||
|
|
||||||
|
%define emacsbatch src/emacs -batch --no-init-file --no-site-file
|
||||||
%define recompile src/emacs -batch --no-init-file --no-site-file -f batch-byte-compile
|
|
||||||
|
|
||||||
# recompile patched .el files
|
|
||||||
%{recompile} lisp/mail/mh-utils.el lisp/progmodes/make-mode.el
|
|
||||||
|
|
||||||
# bytecompile python-mode, ssl, php-mode and rpm-spec-mode
|
# bytecompile python-mode, ssl, php-mode and rpm-spec-mode
|
||||||
cp %SOURCE7 %SOURCE8 %SOURCE11 %SOURCE13 %SOURCE14 .
|
cp %SOURCE7 %SOURCE8 %SOURCE11 %SOURCE13 %SOURCE20 %SOURCE21 .
|
||||||
%{recompile} python-mode.el rpm-spec-mode.el php-mode.el ssl.el po-mode.el
|
|
||||||
|
|
||||||
|
|
||||||
|
# xemacs compat patch
|
||||||
|
patch < %SOURCE18
|
||||||
|
# fix po-auto-replace-revision-date nil
|
||||||
|
patch < %SOURCE23
|
||||||
|
%{emacsbatch} -f batch-byte-compile *.el
|
||||||
|
|
||||||
%install
|
%install
|
||||||
rm -rf $RPM_BUILD_ROOT
|
rm -rf $RPM_BUILD_ROOT
|
||||||
mkdir -p $RPM_BUILD_ROOT/usr
|
|
||||||
mkdir -p $RPM_BUILD_ROOT/usr/share/emacs/site-lisp/site-start.d
|
|
||||||
|
|
||||||
mkdir -p $RPM_BUILD_ROOT/%{_infodir}
|
|
||||||
|
|
||||||
%makeinstall
|
%makeinstall
|
||||||
|
|
||||||
|
# make sure movemail isn't setgid
|
||||||
|
chmod 755 $RPM_BUILD_ROOT%{_libexecdir}/emacs/%{version}/*/movemail
|
||||||
|
|
||||||
# install lisp files for Japanese and other Asian languages
|
# install lisp files for Japanese and other Asian languages
|
||||||
pushd $RPM_BUILD_ROOT
|
tar jxC $RPM_BUILD_ROOT -f %{SOURCE9}
|
||||||
tar --use-compress-program=bzip2 -xf %{SOURCE9}
|
|
||||||
popd
|
|
||||||
|
|
||||||
rm -f $RPM_BUILD_ROOT/%{_infodir}/dir
|
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
|
||||||
gzip -9nf $RPM_BUILD_ROOT/%{_infodir}/*
|
|
||||||
|
|
||||||
install -m 644 %SOURCE6 $RPM_BUILD_ROOT/usr/share/emacs/site-lisp/site-start.el
|
mkdir -p $RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp
|
||||||
|
install -m 0644 %SOURCE6 $RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp/site-start.el
|
||||||
mkdir -p $RPM_BUILD_ROOT/usr/share/emacs/site-lisp
|
|
||||||
|
|
||||||
mv $RPM_BUILD_ROOT%{_mandir}/man1/ctags.1 $RPM_BUILD_ROOT%{_mandir}/man1/gctags.1
|
mv $RPM_BUILD_ROOT%{_mandir}/man1/ctags.1 $RPM_BUILD_ROOT%{_mandir}/man1/gctags.1
|
||||||
mv $RPM_BUILD_ROOT/usr/bin/ctags $RPM_BUILD_ROOT/usr/bin/gctags
|
mv $RPM_BUILD_ROOT%{_bindir}/ctags $RPM_BUILD_ROOT%{_bindir}/gctags
|
||||||
|
|
||||||
|
|
||||||
# GNOME / KDE files
|
# GNOME / KDE files
|
||||||
mkdir -p $RPM_BUILD_ROOT/usr/share/applications
|
mkdir -p $RPM_BUILD_ROOT%{_datadir}/applications
|
||||||
install -c -m 0644 %SOURCE3 $RPM_BUILD_ROOT/usr/share/applications/gnu-emacs.desktop
|
install -m 0644 %SOURCE3 $RPM_BUILD_ROOT%{_datadir}/applications/gnu-emacs.desktop
|
||||||
mkdir -p $RPM_BUILD_ROOT/usr/share/pixmaps
|
mkdir -p $RPM_BUILD_ROOT%{_datadir}/pixmaps
|
||||||
install -c -m 0644 %SOURCE4 $RPM_BUILD_ROOT/usr/share/pixmaps/
|
install -m 0644 %SOURCE4 $RPM_BUILD_ROOT%{_datadir}/pixmaps/
|
||||||
|
|
||||||
mkdir -p $RPM_BUILD_ROOT/usr/share/emacs/%{version}/etc
|
# install site-lisp files
|
||||||
install -c -m644 etc/DOC-* $RPM_BUILD_ROOT/usr/share/emacs/%{version}/etc
|
install -m 0644 *.el *.elc $RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp/
|
||||||
|
|
||||||
# Python mode, php mode and rpm-spec mode
|
mkdir -p $RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp/site-start.d
|
||||||
|
install -m 0644 $RPM_SOURCE_DIR/*-init.el $RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp/site-start.d
|
||||||
install -c -m0644 po-mode.el po-mode.elc php-mode.el php-mode.elc python-mode.el python-mode.elc rpm-spec-mode.el rpm-spec-mode.elc ssl.el ssl.elc $RPM_BUILD_ROOT/usr/share/emacs/site-lisp/
|
|
||||||
install -m0644 %SOURCE12 $RPM_BUILD_ROOT/usr/share/emacs/site-lisp/site-start.d/php-mode-init.el
|
|
||||||
install -m0644 %SOURCE15 $RPM_BUILD_ROOT/usr/share/emacs/site-lisp/site-start.d/po-mode-init.el
|
|
||||||
|
|
||||||
# default initialization file
|
# default initialization file
|
||||||
mkdir -p $RPM_BUILD_ROOT/etc/skel
|
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/skel
|
||||||
install -c -m0644 %SOURCE5 $RPM_BUILD_ROOT/etc/skel/.emacs
|
install -m 0644 %SOURCE5 $RPM_BUILD_ROOT%{_sysconfdir}/skel/.emacs
|
||||||
|
|
||||||
|
# elisp reference manual
|
||||||
|
tar jxf %{SOURCE10}
|
||||||
|
pushd elisp-manual-21-2.8
|
||||||
|
install -m 644 elisp elisp-? elisp-?? $RPM_BUILD_ROOT%{_infodir}
|
||||||
|
popd
|
||||||
|
|
||||||
#
|
#
|
||||||
# create file lists
|
# create file lists
|
||||||
#
|
#
|
||||||
|
SRC_TOP=$PWD
|
||||||
|
rm -f *-filelist {base,el,leim}-*-files
|
||||||
|
pushd $RPM_BUILD_ROOT
|
||||||
|
|
||||||
# Remove ctags
|
find .%{_datadir}/emacs/%{version}/lisp \( -type f -not -name '*.el' -fprint $SRC_TOP/base-lisp-none-elc-files \) -o \( -type d -fprintf $SRC_TOP/base-lisp-dir-files "%%%%dir %%p\n" \) -o \( -name '*.el' \( -exec test -e '{}'c \; -fprint $SRC_TOP/el-bytecomped-files -o -fprint $SRC_TOP/base-not-comped-files \) \)
|
||||||
|
|
||||||
rm -f $RPM_BUILD_ROOT/usr/bin/ctags
|
find .%{_datadir}/emacs/%{version}/leim \( -name '*.elc' -fprint $SRC_TOP/leim-elc-files \) -o \( -type d -fprintf $SRC_TOP/leim-dir-files "%%%%dir %%p\n" -fprintf $SRC_TOP/el-leim-dir-files "%%%%dir %%p\n" \) -o \( -name '*.el' \( -exec test -e '{}'c \; -fprint $SRC_TOP/el-leim-bytecomped-files -o -fprint $SRC_TOP/leim-not-comped-files \) \)
|
||||||
rm -f $RPM_BUILD_ROOT/%{_mandir}/man1/*ctags*
|
|
||||||
rm -f $RPM_BUILD_ROOT/usr/share/emacs/%{version}/etc/ctags*
|
|
||||||
|
|
||||||
# The elisp reference manual
|
|
||||||
bzcat %{SOURCE10} | tar xf -
|
|
||||||
pushd elisp-manual-21-2.8
|
|
||||||
install -m 644 elisp elisp-? elisp-?? $RPM_BUILD_ROOT/%{_infodir}
|
|
||||||
popd
|
popd
|
||||||
|
|
||||||
find $RPM_BUILD_ROOT/usr/share/emacs/%{version}/lisp -type f\
|
# put the lists together filtering ./usr to /usr
|
||||||
-not -name '*.el' -print | sed "s^$RPM_BUILD_ROOT^^" > core-filelist
|
cat base-*-files | sed "s|\.%{_prefix}|%{_prefix}|" > base-filelist
|
||||||
find $RPM_BUILD_ROOT/usr/share/emacs/%{version}/lisp \
|
cat el-*-files | sed "s|\.%{_prefix}|%{_prefix}|" > el-filelist
|
||||||
-type d -printf "%%%%dir %%p\n" | sed "s^$RPM_BUILD_ROOT^^" >> core-filelist
|
cat leim-*-files | sed "s|\.%{_prefix}|%{_prefix}|" > leim-filelist
|
||||||
|
|
||||||
# Include .el files which lack a corresponding byte compiled form
|
|
||||||
for I in `find $RPM_BUILD_ROOT/usr/share/emacs/%{version}/lisp \
|
|
||||||
-name '*.el'`; do
|
|
||||||
if [ ! -e `dirname $I`/`basename $I .el`.elc ]; then
|
|
||||||
echo $I | sed "s^$RPM_BUILD_ROOT^^"
|
|
||||||
fi
|
|
||||||
done >> core-filelist
|
|
||||||
|
|
||||||
# Include all non elisp files which emacs installs
|
|
||||||
#find $RPM_BUILD_ROOT/usr/share/emacs/%{version}/lisp -type f | \
|
|
||||||
# sed "s^$RPM_BUILD_ROOT^^" | grep -v "\.el\(c\)\?$" >> core-filelist
|
|
||||||
|
|
||||||
|
|
||||||
find $RPM_BUILD_ROOT/usr/share/emacs/%{version}/leim \
|
|
||||||
-name '*.elc' -print | sed "s^$RPM_BUILD_ROOT^^" > leim-filelist
|
|
||||||
find $RPM_BUILD_ROOT/usr/share/emacs/%{version}/leim \
|
|
||||||
-mindepth 1 -type d -printf "%%%%dir %%p\n" | \
|
|
||||||
sed "s^$RPM_BUILD_ROOT^^" >> leim-filelist
|
|
||||||
|
|
||||||
#
|
|
||||||
# be sure to exclude some files which are needed in the core package
|
|
||||||
#
|
|
||||||
for I in `find $RPM_BUILD_ROOT/usr/share/emacs/%{version}/lisp \
|
|
||||||
-name '*.el'`; do
|
|
||||||
if [ -e `dirname $I`/`basename $I .el`.elc ]; then
|
|
||||||
echo $I | sed "s^$RPM_BUILD_ROOT^^"
|
|
||||||
fi
|
|
||||||
done >> el-filelist
|
|
||||||
|
|
||||||
find $RPM_BUILD_ROOT/usr/share/emacs/%{version}/leim \
|
|
||||||
-name '*.el' -print | sed "s^$RPM_BUILD_ROOT^^" |\
|
|
||||||
grep -v "leim\/leim-list.el" >> el-filelist
|
|
||||||
|
|
||||||
%clean
|
%clean
|
||||||
rm -rf $RPM_BUILD_ROOT
|
rm -rf $RPM_BUILD_ROOT
|
||||||
@ -215,51 +194,133 @@ done
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
%files -f core-filelist
|
%files -f base-filelist
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
%config(noreplace) /etc/skel/.emacs
|
%config(noreplace) %{_sysconfdir}/skel/.emacs
|
||||||
%doc etc/NEWS BUGS README
|
%doc etc/NEWS BUGS README
|
||||||
/usr/bin/*
|
%{_bindir}/*
|
||||||
%{_mandir}/*/*
|
%{_mandir}/*/*
|
||||||
%{_infodir}/*
|
%{_infodir}/*
|
||||||
/usr/share/emacs/site-lisp/python-mode.elc
|
%dir %{_datadir}/emacs
|
||||||
/usr/share/emacs/site-lisp/php-mode.elc
|
%dir %{_datadir}/emacs/site-lisp
|
||||||
/usr/share/emacs/site-lisp/po-mode.elc
|
%{_datadir}/emacs/site-lisp/python-mode.elc
|
||||||
/usr/share/emacs/site-lisp/rpm-spec-mode.elc
|
%{_datadir}/emacs/site-lisp/php-mode.elc
|
||||||
/usr/share/emacs/site-lisp/ssl.elc
|
%{_datadir}/emacs/site-lisp/po-*.elc
|
||||||
/usr/share/emacs/site-lisp/subdirs.el
|
%{_datadir}/emacs/site-lisp/rpm-spec-mode.elc
|
||||||
/usr/share/emacs/site-lisp/site-start.d/lang.emacs.el
|
%{_datadir}/emacs/site-lisp/ssl.elc
|
||||||
/usr/share/emacs/site-lisp/site-start.d/php-mode-init.el
|
%{_datadir}/emacs/site-lisp/subdirs.el
|
||||||
/usr/share/emacs/site-lisp/site-start.d/po-mode-init.el
|
%{_datadir}/emacs/site-lisp/site-start.d/*.el
|
||||||
/usr/share/emacs/site-lisp/lang
|
%{_datadir}/emacs/site-lisp/lang
|
||||||
/usr/share/emacs/%{version}/site-lisp/subdirs.el
|
%dir %{_datadir}/emacs/%{version}
|
||||||
|
%{_datadir}/emacs/%{version}/etc
|
||||||
%dir /usr/share/emacs
|
# quieten startup when -leim and -el aren't installed
|
||||||
%dir /usr/share/emacs/site-lisp
|
%dir %{_datadir}/emacs/%{version}/leim
|
||||||
%dir /usr/share/emacs/%{version}
|
%{_datadir}/emacs/%{version}/site-lisp
|
||||||
%dir /usr/share/emacs/%{version}/*
|
%{_libexecdir}/emacs
|
||||||
/usr/share/emacs/%{version}/etc/*
|
%attr(0644,root,root) %config %{_datadir}/emacs/site-lisp/site-start.el
|
||||||
/usr/libexec/emacs/%{version}/*/*
|
%dir %{_datadir}/emacs/site-lisp/site-start.d
|
||||||
%attr(0755,root,root) /usr/libexec/emacs/%{version}/*/movemail
|
%{_datadir}/applications/gnu-emacs.desktop
|
||||||
%attr(0644,root,root) %config /usr/share/emacs/site-lisp/site-start.el
|
%{_datadir}/pixmaps/emacs.png
|
||||||
%dir /usr/share/emacs/site-lisp/site-start.d
|
|
||||||
%config(noreplace) /usr/share/applications/gnu-emacs.desktop
|
|
||||||
/usr/share/pixmaps/emacs.png
|
|
||||||
|
|
||||||
%files -f el-filelist el
|
%files -f el-filelist el
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
/usr/share/emacs/site-lisp/python-mode.el
|
%{_datadir}/emacs/site-lisp/python-mode.el
|
||||||
/usr/share/emacs/site-lisp/php-mode.el
|
%{_datadir}/emacs/site-lisp/php-mode.el
|
||||||
/usr/share/emacs/site-lisp/po-mode.el
|
%{_datadir}/emacs/site-lisp/po-*.el
|
||||||
/usr/share/emacs/site-lisp/ssl.el
|
%{_datadir}/emacs/site-lisp/ssl.el
|
||||||
/usr/share/emacs/site-lisp/rpm-spec-mode.el
|
%{_datadir}/emacs/site-lisp/rpm-spec-mode.el
|
||||||
|
|
||||||
%files -f leim-filelist leim
|
%files -f leim-filelist leim
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
/usr/share/emacs/%{version}/leim/leim-list.el
|
|
||||||
%dir /usr/share/emacs/%{version}/leim
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Feb 20 2003 Jens Petersen <petersen@redhat.com> - 21.2-33
|
||||||
|
- default browse-url to use htmlview (#84262)
|
||||||
|
- remove info dir file rather than excluding it
|
||||||
|
|
||||||
|
* Sat Feb 8 2003 Jens Petersen <petersen@redhat.com> - 21.2-32
|
||||||
|
- set X copy'n'paste encoding to extended compound-text (#74100)
|
||||||
|
by default in .emacs file [suggested by olonho@hotmail.com]
|
||||||
|
- .emacs file cleanup (xemacs now has a separate init file)
|
||||||
|
|
||||||
|
* Fri Feb 7 2003 Jens Petersen <petersen@redhat.com> - 21.2-31
|
||||||
|
- block input in allocate_vectorlike to prevent malloc hangs (#83600)
|
||||||
|
[thanks to Jim Blandy]
|
||||||
|
- set startup wmclass notify in desktop file
|
||||||
|
|
||||||
|
* Wed Jan 22 2003 Tim Powers <timp@redhat.com>
|
||||||
|
- rebuilt
|
||||||
|
|
||||||
|
* Wed Jan 15 2003 Jens Petersen <petersen@redhat.com> 21.2-29
|
||||||
|
- update to newer po-mode.el and po-compat.el from gettext-0.11.4
|
||||||
|
- patch po-mode's po-replace-revision-date for when
|
||||||
|
po-auto-replace-revision-date is nil (#71264)
|
||||||
|
- update po-mode-init.el
|
||||||
|
- examine LC_ALL before LC_CTYPE in site-start.el for utf-8 (#79535)
|
||||||
|
- don't install etc/DOC files explicitly by hand
|
||||||
|
- make sure all lisp .elc files are up to date
|
||||||
|
- pass _smp_mflags to make
|
||||||
|
- remove games that we shouldn't ship
|
||||||
|
|
||||||
|
* Mon Jan 13 2003 Karsten Hopp <karsten@redhat.de> 21.2-28
|
||||||
|
- s390x lib64 fix
|
||||||
|
|
||||||
|
* Fri Jan 3 2003 Jens Petersen <petersen@redhat.com> 21.2-27
|
||||||
|
- look at LANG after LC_CTYPE when checking for UTF-8 locale encoding
|
||||||
|
in site-start.el (#79535)
|
||||||
|
- don't set desktop file config(noreplace)
|
||||||
|
|
||||||
|
* Fri Dec 20 2002 Jens Petersen <petersen@redhat.com> 21.2-26
|
||||||
|
- unset the sticky bit of emacs in bindir (#80049)
|
||||||
|
|
||||||
|
* Wed Dec 18 2002 Jens Petersen <petersen@redhat.com> 21.2-25
|
||||||
|
- no need to patch config.{sub,guess}
|
||||||
|
|
||||||
|
* Tue Dec 3 2002 Tim Waugh <twaugh@redhat.com>
|
||||||
|
- Fix python-mode-init.el (bug #78910).
|
||||||
|
|
||||||
|
* Sun Dec 1 2002 Jens Petersen <petersen@redhat.com> 21.2-24
|
||||||
|
- rpm-spec-mode update fixes
|
||||||
|
- patch in XEmacs compat functions rather than defining them with apel
|
||||||
|
macros in init file (#78764)
|
||||||
|
- autoload "rpm-spec-mode" not "rpm-spec-mode.el" in same file
|
||||||
|
- let emacs base also own leim dir to avoid startup warning about missing dir
|
||||||
|
when -el and -leim aren't installed (#78764)
|
||||||
|
|
||||||
|
* Thu Nov 28 2002 Jens Petersen <petersen@redhat.com>
|
||||||
|
- use LC_CTYPE rather than LANG to determine default encoding (#78678)
|
||||||
|
[reported by starback@stp.ling.uu.se]
|
||||||
|
|
||||||
|
* Wed Nov 27 2002 Jens Petersen <petersen@redhat.com> 21.2-23
|
||||||
|
- set transient-mark-mode in dotemacs for Emacs not XEmacs (#75440)
|
||||||
|
- update rpm-spec-mode.el to 0.12
|
||||||
|
- define needed XEmacs compat functions in new rpm-spec-mode-init.el
|
||||||
|
- tidy site-start.el
|
||||||
|
- move python-mode setup to python-mode
|
||||||
|
- don't build with sbin in path
|
||||||
|
- use _libexecdir, _bindir and _sysconfdir
|
||||||
|
- don't gzip info files explicitly
|
||||||
|
- use tar's C and j options
|
||||||
|
- generate lisp file-lists in single find sweeps over lisp and leim dirs
|
||||||
|
- use -fprint and -fprintf
|
||||||
|
- correct more dir ownerships
|
||||||
|
|
||||||
|
* Sun Nov 24 2002 Florian La Roche <Florian.LaRoche@redhat.de> 21.2-22
|
||||||
|
- add correct alloca defines for s390
|
||||||
|
|
||||||
|
* Wed Nov 6 2002 Jens Petersen <petersen@redhat.com> 21.2-21
|
||||||
|
- uses patches for x86_64 and s390 support and config.{guess,sub} updating
|
||||||
|
|
||||||
|
* Tue Nov 5 2002 Jens Petersen <petersen@redhat.com> 21.2-20
|
||||||
|
- add support for x86_64 and merge in s390 support from cvs
|
||||||
|
- add alloca defines to amdx86-64.h (from SuSE)
|
||||||
|
|
||||||
|
* Wed Oct 30 2002 Jens Petersen <petersen@redhat.com> 21.2-19
|
||||||
|
- own our libexec dir (#73984)
|
||||||
|
- only set transient-mark-mode in dotemacs for Emacs (#75440)
|
||||||
|
- update to latest config.{guess,sub}
|
||||||
|
- use _datadir macro
|
||||||
|
|
||||||
* Wed Aug 28 2002 Trond Eivind Glomsrød <teg@redhat.com> 21.2-18
|
* Wed Aug 28 2002 Trond Eivind Glomsrød <teg@redhat.com> 21.2-18
|
||||||
- Desktop file fix - add Application to make it show up
|
- Desktop file fix - add Application to make it show up
|
||||||
- DNS lookup fix for pop (#64802)
|
- DNS lookup fix for pop (#64802)
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
;; Use php-mode for .php,.php3,.php4 and .phtml files
|
;; Use php-mode for .php,.php3,.php4 and .phtml files
|
||||||
|
|
||||||
(autoload 'php-mode "php-mode")
|
(autoload 'php-mode "php-mode")
|
||||||
(setq auto-mode-alist (cons '("\\.php[34]\\'\\|\\.php\\'\\|\\.phtml\\'" . php-mode)
|
(add-to-list 'auto-mode-alist
|
||||||
auto-mode-alist))
|
'("\\.php[34]\\'\\|\\.php\\'\\|\\.phtml\\'" . php-mode))
|
||||||
|
|
||||||
|
13
po-mode-auto-replace-date-71264.patch
Normal file
13
po-mode-auto-replace-date-71264.patch
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
diff -u po-mode.el~ po-mode.el
|
||||||
|
--- po-mode.el~ 2003-01-16 01:44:50.000000000 +0900
|
||||||
|
+++ po-mode.el 2003-01-16 01:44:50.000000000 +0900
|
||||||
|
@@ -1267,8 +1267,7 @@
|
||||||
|
(concat "\"PO-Revision-Date: "
|
||||||
|
(format-time-string "%Y-%m-%d %H:%M" time)
|
||||||
|
zone "\\n\"")
|
||||||
|
- t t))))
|
||||||
|
- (message ""))
|
||||||
|
+ t t)))))
|
||||||
|
(message (_"PO-Revision-Date should be adjusted..."))))
|
||||||
|
|
||||||
|
;;; Handling span of entry, entry type and entry attributes.
|
@ -1,12 +1,9 @@
|
|||||||
;; Use po-mode for translation files
|
;; Use po-mode for translation files
|
||||||
|
|
||||||
(autoload 'po-mode "po-mode")
|
(autoload 'po-mode "po-mode"
|
||||||
(setq auto-mode-alist (cons '("\\.po[tx]?\\'\\|\\.po\\." . po-mode)
|
"Major mode for translators to edit PO files" t)
|
||||||
auto-mode-alist))
|
(add-to-list 'auto-mode-alist '("\\.po\\'\\|\\.po\\." . po-mode))
|
||||||
|
|
||||||
;;; To automatically use proper fonts under Emacs 20, also add:
|
(autoload 'po-find-file-coding-system "po-compat")
|
||||||
|
(modify-coding-system-alist 'file "\\.po\\'\\|\\.po\\."
|
||||||
(autoload 'po-find-file-coding-system "po-mode")
|
|
||||||
(modify-coding-system-alist 'file "\\.po[tx]?\\'\\|\\.po\\."
|
|
||||||
'po-find-file-coding-system)
|
'po-find-file-coding-system)
|
||||||
|
|
||||||
|
399
po-mode.el
399
po-mode.el
@ -38,9 +38,10 @@
|
|||||||
;; (setq auto-mode-alist (cons '("\\.po\\'\\|\\.po\\." . po-mode)
|
;; (setq auto-mode-alist (cons '("\\.po\\'\\|\\.po\\." . po-mode)
|
||||||
;; auto-mode-alist))
|
;; auto-mode-alist))
|
||||||
;;
|
;;
|
||||||
;; To use the right coding system automatically under Emacs 20, also add:
|
;; To use the right coding system automatically under Emacs 20 or newer,
|
||||||
|
;; also add:
|
||||||
;;
|
;;
|
||||||
;; (autoload 'po-find-file-coding-system "po-mode")
|
;; (autoload 'po-find-file-coding-system "po-compat")
|
||||||
;; (modify-coding-system-alist 'file "\\.po\\'\\|\\.po\\."
|
;; (modify-coding-system-alist 'file "\\.po\\'\\|\\.po\\."
|
||||||
;; 'po-find-file-coding-system)
|
;; 'po-find-file-coding-system)
|
||||||
;;
|
;;
|
||||||
@ -49,6 +50,9 @@
|
|||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
|
(defconst po-mode-version-string "2.01" "\
|
||||||
|
Version number of this version of po-mode.el.")
|
||||||
|
|
||||||
;;; Emacs portability matters - part I.
|
;;; Emacs portability matters - part I.
|
||||||
;;; Here is the minimum for customization to work. See part II.
|
;;; Here is the minimum for customization to work. See part II.
|
||||||
|
|
||||||
@ -133,6 +137,23 @@ msgstr \"\"
|
|||||||
:type 'string
|
:type 'string
|
||||||
:group 'po)
|
:group 'po)
|
||||||
|
|
||||||
|
(defcustom po-translation-project-address
|
||||||
|
"translation@iro.umontreal.ca"
|
||||||
|
"*Electronic mail address of the Translation Project.
|
||||||
|
Typing \\[po-send-mail] (normally bound to `M') the user will send the PO file
|
||||||
|
to this email address."
|
||||||
|
:type 'string
|
||||||
|
:group 'po)
|
||||||
|
|
||||||
|
(defcustom po-translation-project-mail-label "TP-Robot"
|
||||||
|
"*Subject label when sending the PO file to `po-translation-project-address'.
|
||||||
|
Don't change it when you send PO files to \"translation@iro.umontreal.ca\", the
|
||||||
|
Translation Project Robot at http://www.iro.umontreal.ca/contrib/po/HTML/. If
|
||||||
|
the label is different, your submission will be consiedered as a regular mail
|
||||||
|
and not stored at the TP site and also not forwarded to the package maintainer."
|
||||||
|
:type 'string
|
||||||
|
:group 'po)
|
||||||
|
|
||||||
(defcustom po-highlighting (or po-EMACS20 po-XEMACS)
|
(defcustom po-highlighting (or po-EMACS20 po-XEMACS)
|
||||||
"*Highlight text whenever appropriate, when non-nil.
|
"*Highlight text whenever appropriate, when non-nil.
|
||||||
However, on older Emacses, a yet unexplained highlighting bug causes files
|
However, on older Emacses, a yet unexplained highlighting bug causes files
|
||||||
@ -160,6 +181,7 @@ slightly different."
|
|||||||
("Albanian" . "sq")
|
("Albanian" . "sq")
|
||||||
("Amharic" . "am")
|
("Amharic" . "am")
|
||||||
("Arabic" . "ar")
|
("Arabic" . "ar")
|
||||||
|
("Argentinian" . "es_AR")
|
||||||
("Armenian" . "hy")
|
("Armenian" . "hy")
|
||||||
("Assamese" . "as")
|
("Assamese" . "as")
|
||||||
("Avestan" . "ae")
|
("Avestan" . "ae")
|
||||||
@ -180,6 +202,8 @@ slightly different."
|
|||||||
("Chamorro" . "ch")
|
("Chamorro" . "ch")
|
||||||
("Chechen" . "ce")
|
("Chechen" . "ce")
|
||||||
("Chinese" . "zh")
|
("Chinese" . "zh")
|
||||||
|
("Chinese (simplified)" . "zh_CN")
|
||||||
|
("Chinese (traditional)" . "zh_TW")
|
||||||
("Church Slavic" . "cu")
|
("Church Slavic" . "cu")
|
||||||
("Chuvash" . "cv")
|
("Chuvash" . "cv")
|
||||||
("Cornish" . "kw")
|
("Cornish" . "kw")
|
||||||
@ -210,6 +234,7 @@ slightly different."
|
|||||||
("Hiri Motu" . "ho")
|
("Hiri Motu" . "ho")
|
||||||
("Hungarian" . "hu")
|
("Hungarian" . "hu")
|
||||||
("Icelandic" . "is")
|
("Icelandic" . "is")
|
||||||
|
("Ido" . "io")
|
||||||
("Indonesian" . "id")
|
("Indonesian" . "id")
|
||||||
("Interlingua" . "ia")
|
("Interlingua" . "ia")
|
||||||
("Interlingue" . "ie")
|
("Interlingue" . "ie")
|
||||||
@ -218,7 +243,7 @@ slightly different."
|
|||||||
("Irish" . "ga")
|
("Irish" . "ga")
|
||||||
("Italian" . "it")
|
("Italian" . "it")
|
||||||
("Japanese" . "ja")
|
("Japanese" . "ja")
|
||||||
("Javanese" . "jw")
|
("Javanese" . "jv")
|
||||||
("Kalaallisut" . "kl")
|
("Kalaallisut" . "kl")
|
||||||
("Kannada" . "kn")
|
("Kannada" . "kn")
|
||||||
("Kashmiri" . "ks")
|
("Kashmiri" . "ks")
|
||||||
@ -315,6 +340,7 @@ slightly different."
|
|||||||
("Uzbek" . "uz")
|
("Uzbek" . "uz")
|
||||||
("Vietnamese" . "vi")
|
("Vietnamese" . "vi")
|
||||||
("Volapuk" . "vo")
|
("Volapuk" . "vo")
|
||||||
|
("Walloon" . "wa")
|
||||||
("Welsh" . "cy")
|
("Welsh" . "cy")
|
||||||
("Wolof" . "wo")
|
("Wolof" . "wo")
|
||||||
("Xhosa" . "xh")
|
("Xhosa" . "xh")
|
||||||
@ -618,8 +644,7 @@ No doubt that highlighting, when Emacs does not allow it, is a kludge."
|
|||||||
(defun po-mode-version ()
|
(defun po-mode-version ()
|
||||||
"Show Emacs PO mode version."
|
"Show Emacs PO mode version."
|
||||||
(interactive)
|
(interactive)
|
||||||
(message (_"Emacs PO mode, version %s")
|
(message (_"Emacs PO mode, version %s") po-mode-version-string))
|
||||||
(substring "$Revision: 1.1.1.1 $" 11 -2)))
|
|
||||||
|
|
||||||
(defconst po-help-display-string
|
(defconst po-help-display-string
|
||||||
(_"\
|
(_"\
|
||||||
@ -650,55 +675,122 @@ M-S Ignore path M-A Ignore PO file *M-L Ignore lexicon
|
|||||||
"Help page for PO mode.")
|
"Help page for PO mode.")
|
||||||
|
|
||||||
(defconst po-mode-menu-layout
|
(defconst po-mode-menu-layout
|
||||||
'("PO"
|
`("PO"
|
||||||
("Moving around"
|
("Moving around"
|
||||||
["Auto select" po-auto-select-entry t]
|
["Auto select" po-auto-select-entry
|
||||||
|
,@(if (featurep 'xemacs) '(t)
|
||||||
|
'(:help "Jump to next interesting entry"))]
|
||||||
"---"
|
"---"
|
||||||
"Forward"
|
"Forward"
|
||||||
["Any next" po-next-entry t]
|
["Any next" po-next-entry
|
||||||
["Next translated" po-next-translated-entry t]
|
,@(if (featurep 'xemacs) '(t)
|
||||||
["Next fuzzy" po-next-fuzzy-entry t]
|
'(:help "Jump to next entry"))]
|
||||||
["Next obsolete" po-next-obsolete-entry t]
|
["Next translated" po-next-translated-entry
|
||||||
["Next untranslated" po-next-untranslated-entry t]
|
,@(if (featurep 'xemacs) '(t)
|
||||||
["Last file entry" po-last-entry t]
|
'(:help "Jump to next translated entry"))]
|
||||||
|
["Next fuzzy" po-next-fuzzy-entry
|
||||||
|
,@(if (featurep 'xemacs) '(t)
|
||||||
|
'(:help "Jump to next fuzzy entry"))]
|
||||||
|
["Next obsolete" po-next-obsolete-entry
|
||||||
|
,@(if (featurep 'xemacs) '(t)
|
||||||
|
'(:help "Jump to next obsolete entry"))]
|
||||||
|
["Next untranslated" po-next-untranslated-entry
|
||||||
|
,@(if (featurep 'xemacs) '(t)
|
||||||
|
'(:help "Jump to next untranslated entry"))]
|
||||||
|
["Last file entry" po-last-entry
|
||||||
|
,@(if (featurep 'xemacs) '(t)
|
||||||
|
'(:help "Jump to last entry"))]
|
||||||
"---"
|
"---"
|
||||||
"Backward"
|
"Backward"
|
||||||
["Any previous" po-previous-entry t]
|
["Any previous" po-previous-entry
|
||||||
["Previous translated" po-previous-translated-entry t]
|
,@(if (featurep 'xemacs) '(t)
|
||||||
["Previous fuzzy" po-previous-fuzzy-entry t]
|
'(:help "Jump to previous entry"))]
|
||||||
["Previous obsolete" po-previous-obsolete-entry t]
|
["Previous translated" po-previous-translated-entry
|
||||||
["Previous untranslated" po-previous-untranslated-entry t]
|
,@(if (featurep 'xemacs) '(t)
|
||||||
["First file entry" po-first-entry t]
|
'(:help "Jump to previous translated entry"))]
|
||||||
|
["Previous fuzzy" po-previous-fuzzy-entry
|
||||||
|
,@(if (featurep 'xemacs) '(t)
|
||||||
|
'(:help "Jump to previous fuzzy entry"))]
|
||||||
|
["Previous obsolete" po-previous-obsolete-entry
|
||||||
|
,@(if (featurep 'xemacs) '(t)
|
||||||
|
'(:help "Jump to previous obsolete entry"))]
|
||||||
|
["Previous untranslated" po-previous-untranslated-entry
|
||||||
|
,@(if (featurep 'xemacs) '(t)
|
||||||
|
'(:help "Jump to previous untranslated entry"))]
|
||||||
|
["First file entry" po-first-entry
|
||||||
|
,@(if (featurep 'xemacs) '(t)
|
||||||
|
'(:help "Jump to first entry"))]
|
||||||
"---"
|
"---"
|
||||||
"Position stack"
|
"Position stack"
|
||||||
["Mark and push current" po-push-location t]
|
["Mark and push current" po-push-location
|
||||||
["Pop and return" po-pop-location t]
|
,@(if (featurep 'xemacs) '(t)
|
||||||
["Exchange current/top" po-exchange-location t]
|
'(:help "Remember current location"))]
|
||||||
|
["Pop and return" po-pop-location
|
||||||
|
,@(if (featurep 'xemacs) '(t)
|
||||||
|
'(:help "Jump to last remembered location and forget about it"))]
|
||||||
|
["Exchange current/top" po-exchange-location
|
||||||
|
,@(if (featurep 'xemacs) '(t)
|
||||||
|
'(:help "Jump to last remembered location and remember current location"))]
|
||||||
"---"
|
"---"
|
||||||
["Redisplay" po-current-entry t]
|
["Redisplay" po-current-entry
|
||||||
["Current index" po-statistics t])
|
,@(if (featurep 'xemacs) '(t)
|
||||||
|
'(:help "Make current entry properly visible"))]
|
||||||
|
["Current index" po-statistics
|
||||||
|
,@(if (featurep 'xemacs) '(t)
|
||||||
|
'(:help "Statistical info on current translation file"))])
|
||||||
("Modifying entries"
|
("Modifying entries"
|
||||||
["Undo" po-undo t]
|
["Undo" po-undo
|
||||||
|
,@(if (featurep 'xemacs) '(t)
|
||||||
|
'(:help "Revoke last changed entry"))]
|
||||||
"---"
|
"---"
|
||||||
"Msgstr"
|
"Msgstr"
|
||||||
["Edit msgstr" po-edit-msgstr t]
|
["Edit msgstr" po-edit-msgstr
|
||||||
["Ediff and merge msgstr" po-edit-msgstr-and-ediff t]
|
,@(if (featurep 'xemacs) '(t)
|
||||||
["Kill msgstr" po-kill-msgstr t]
|
'(:help "Edit current translation"))]
|
||||||
["Save msgstr" po-kill-ring-save-msgstr t]
|
["Ediff and merge msgstr" po-edit-msgstr-and-ediff
|
||||||
["Yank msgstr" po-yank-msgstr t]
|
,@(if (featurep 'xemacs) '(t)
|
||||||
|
'(:help "Call `ediff' on current translation for merging"))]
|
||||||
|
["Cut msgstr" po-kill-msgstr
|
||||||
|
,@(if (featurep 'xemacs) '(t)
|
||||||
|
'(:help "Cut (kill) current translation"))]
|
||||||
|
["Copy msgstr" po-kill-ring-save-msgstr
|
||||||
|
,@(if (featurep 'xemacs) '(t)
|
||||||
|
'(:help "Copy current translation"))]
|
||||||
|
["Paste msgstr" po-yank-msgstr
|
||||||
|
,@(if (featurep 'xemacs) '(t)
|
||||||
|
'(:help "Paste (yank) text most recently cut/copied translation"))]
|
||||||
"---"
|
"---"
|
||||||
"Comments"
|
"Comments"
|
||||||
["Edit comment" po-edit-comment t]
|
["Edit comment" po-edit-comment
|
||||||
["Ediff and merge comment" po-edit-comment-and-ediff t]
|
,@(if (featurep 'xemacs) '(t)
|
||||||
["Kill comment" po-kill-comment t]
|
'(:help "Edit current comment"))]
|
||||||
["Save comment" po-kill-ring-save-comment t]
|
["Ediff and merge comment" po-edit-comment-and-ediff
|
||||||
["Yank comment" po-yank-comment t]
|
,@(if (featurep 'xemacs) '(t)
|
||||||
|
'(:help "Call `ediff' on current comment for merging"))]
|
||||||
|
["Cut comment" po-kill-comment
|
||||||
|
,@(if (featurep 'xemacs) '(t)
|
||||||
|
'(:help "Cut (kill) current comment"))]
|
||||||
|
["Copy comment" po-kill-ring-save-comment
|
||||||
|
,@(if (featurep 'xemacs) '(t)
|
||||||
|
'(:help "Copy current translation"))]
|
||||||
|
["Paste comment" po-yank-comment
|
||||||
|
,@(if (featurep 'xemacs) '(t)
|
||||||
|
'(:help "Paste (yank) text most recently cut/copied"))]
|
||||||
"---"
|
"---"
|
||||||
["Remove fuzzy mark" po-unfuzzy t]
|
["Remove fuzzy mark" po-unfuzzy
|
||||||
["Fuzzy or fade out" po-fade-out-entry t]
|
,@(if (featurep 'xemacs) '(t)
|
||||||
["Init with msgid" po-msgid-to-msgstr t])
|
'(:help "Remove \"#, fuzzy\""))]
|
||||||
|
["Fuzzy or fade out" po-fade-out-entry
|
||||||
|
,@(if (featurep 'xemacs) '(t)
|
||||||
|
'(:help "Set current entry fuzzy, or if already fuzzy delete it"))]
|
||||||
|
["Init with msgid" po-msgid-to-msgstr
|
||||||
|
,@(if (featurep 'xemacs) '(t)
|
||||||
|
'(:help "\
|
||||||
|
Initialize or replace current translation with the original message"))])
|
||||||
("Other files"
|
("Other files"
|
||||||
["Other window" po-other-window t]
|
["Other window" po-other-window
|
||||||
|
,@(if (featurep 'xemacs) '(t)
|
||||||
|
'(:help "Select other window; if necessay split current frame"))]
|
||||||
"---"
|
"---"
|
||||||
"Program sources"
|
"Program sources"
|
||||||
["Cycle reference" po-cycle-source-reference t]
|
["Cycle reference" po-cycle-source-reference t]
|
||||||
@ -729,120 +821,55 @@ M-S Ignore path M-A Ignore PO file *M-L Ignore lexicon
|
|||||||
["Mark preferred" po-mark-translatable t]
|
["Mark preferred" po-mark-translatable t]
|
||||||
["Mark with keyword" po-select-mark-and-mark t]
|
["Mark with keyword" po-select-mark-and-mark t]
|
||||||
"---"
|
"---"
|
||||||
["Version info" po-mode-version t]
|
["Version info" po-mode-version
|
||||||
["Help page" po-help t]
|
,@(if (featurep 'xemacs) '(t)
|
||||||
["Validate" po-validate t]
|
'(:help "Display version number of PO mode"))]
|
||||||
["Mail officially" po-send-mail t]
|
["Help page" po-help
|
||||||
["Edit out full" po-edit-out-full t]
|
,@(if (featurep 'xemacs) '(t)
|
||||||
|
'(:help "Show the PO mode help screen"))]
|
||||||
|
["Validate" po-validate
|
||||||
|
,@(if (featurep 'xemacs) '(t)
|
||||||
|
'(:help "Check validity of current translation file using `msgfmt'"))]
|
||||||
|
["Mail officially" po-send-mail
|
||||||
|
,@(if (featurep 'xemacs) '(t)
|
||||||
|
'(:help "Send current translation file to the Translation Robot by mail"))]
|
||||||
|
["Edit out full" po-edit-out-full
|
||||||
|
,@(if (featurep 'xemacs) '(t)
|
||||||
|
'(:help "Leave PO mode to edit translation file using fundamental mode"))]
|
||||||
"---"
|
"---"
|
||||||
["Forceful quit" po-quit t]
|
["Forceful quit" po-quit
|
||||||
["Soft quit" po-confirm-and-quit t])
|
,@(if (featurep 'xemacs) '(t)
|
||||||
|
'(:help "Close (kill) current translation file without saving"))]
|
||||||
|
["Soft quit" po-confirm-and-quit
|
||||||
|
,@(if (featurep 'xemacs) '(t)
|
||||||
|
'(:help "Save current translation file, than close (kill) it"))])
|
||||||
"Menu layout for PO mode.")
|
"Menu layout for PO mode.")
|
||||||
|
|
||||||
(defconst po-subedit-mode-menu-layout
|
(defconst po-subedit-mode-menu-layout
|
||||||
'("PO-Edit"
|
`("PO-Edit"
|
||||||
["Ediff and merge translation variants" po-subedit-ediff t]
|
["Ediff and merge translation variants" po-subedit-ediff
|
||||||
|
,@(if (featurep 'xemacs) '(t)
|
||||||
|
'(:help "Call `ediff' for merging variants"))]
|
||||||
["Cycle through auxiliary files" po-subedit-cycle-auxiliary t]
|
["Cycle through auxiliary files" po-subedit-cycle-auxiliary t]
|
||||||
"---"
|
"---"
|
||||||
["Abort edit" po-subedit-abort t]
|
["Abort edit" po-subedit-abort
|
||||||
["Exit edit" po-subedit-exit t])
|
,@(if (featurep 'xemacs) '(t)
|
||||||
|
'(:help "Don't change the translation"))]
|
||||||
|
["Exit edit" po-subedit-exit
|
||||||
|
,@(if (featurep 'xemacs) '(t)
|
||||||
|
'(:help "Use this text as the translation and close current edit buffer"))])
|
||||||
"Menu layout for PO subedit mode.")
|
"Menu layout for PO subedit mode.")
|
||||||
|
|
||||||
(defconst po-subedit-message
|
(defconst po-subedit-message
|
||||||
(_"Type 'C-c C-c' once done, or 'C-c C-k' to abort edit")
|
(_"Type 'C-c C-c' once done, or 'C-c C-k' to abort edit")
|
||||||
"Message to post in the minibuffer when an edit buffer is displayed.")
|
"Message to post in the minibuffer when an edit buffer is displayed.")
|
||||||
|
|
||||||
; Make the cpnnn codesets available.
|
|
||||||
(if po-EMACS20
|
|
||||||
(mapc #'codepage-setup (mapcar #'car (cp-supported-codepages))))
|
|
||||||
|
|
||||||
(defconst po-content-type-charset-alist
|
|
||||||
'(; Note: Emacs 21 doesn't support all encodings, thus the missing entries.
|
|
||||||
(ASCII . undecided)
|
|
||||||
(ANSI_X3.4-1968 . undecided)
|
|
||||||
(US-ASCII . undecided)
|
|
||||||
(ISO-8859-1 . iso-8859-1)
|
|
||||||
(ISO_8859-1 . iso-8859-1)
|
|
||||||
(ISO-8859-2 . iso-8859-2)
|
|
||||||
(ISO_8859-2 . iso-8859-2)
|
|
||||||
(ISO-8859-3 . iso-8859-3)
|
|
||||||
(ISO_8859-3 . iso-8859-3)
|
|
||||||
(ISO-8859-4 . iso-8859-4)
|
|
||||||
(ISO_8859-4 . iso-8859-4)
|
|
||||||
(ISO-8859-5 . iso-8859-5)
|
|
||||||
(ISO_8859-5 . iso-8859-5)
|
|
||||||
;(ISO-8859-6 . ??)
|
|
||||||
;(ISO_8859-6 . ??)
|
|
||||||
(ISO-8859-7 . iso-8859-7)
|
|
||||||
(ISO_8859-7 . iso-8859-7)
|
|
||||||
(ISO-8859-8 . iso-8859-8)
|
|
||||||
(ISO_8859-8 . iso-8859-8)
|
|
||||||
(ISO-8859-9 . iso-8859-9)
|
|
||||||
(ISO_8859-9 . iso-8859-9)
|
|
||||||
;(ISO-8859-13 . ??)
|
|
||||||
;(ISO_8859-13 . ??)
|
|
||||||
(ISO-8859-15 . iso-8859-15) ; requires Emacs 21
|
|
||||||
(ISO_8859-15 . iso-8859-15) ; requires Emacs 21
|
|
||||||
(KOI8-R . koi8-r)
|
|
||||||
;(KOI8-U . ??)
|
|
||||||
(CP437 . cp437) ; requires Emacs 20
|
|
||||||
(CP775 . cp775) ; requires Emacs 20
|
|
||||||
(CP850 . cp850) ; requires Emacs 20
|
|
||||||
(CP852 . cp852) ; requires Emacs 20
|
|
||||||
(CP855 . cp855) ; requires Emacs 20
|
|
||||||
;(CP856 . ??)
|
|
||||||
(CP857 . cp857) ; requires Emacs 20
|
|
||||||
(CP861 . cp861) ; requires Emacs 20
|
|
||||||
(CP862 . cp862) ; requires Emacs 20
|
|
||||||
(CP864 . cp864) ; requires Emacs 20
|
|
||||||
(CP865 . cp865) ; requires Emacs 20
|
|
||||||
(CP866 . cp866) ; requires Emacs 21
|
|
||||||
(CP869 . cp869) ; requires Emacs 20
|
|
||||||
;(CP874 . ??)
|
|
||||||
;(CP922 . ??)
|
|
||||||
;(CP932 . ??)
|
|
||||||
;(CP943 . ??)
|
|
||||||
;(CP949 . ??)
|
|
||||||
;(CP950 . ??)
|
|
||||||
;(CP1046 . ??)
|
|
||||||
;(CP1124 . ??)
|
|
||||||
;(CP1129 . ??)
|
|
||||||
(CP1250 . cp1250) ; requires Emacs 20
|
|
||||||
(CP1251 . cp1251) ; requires Emacs 20
|
|
||||||
(CP1252 . iso-8859-1) ; approximation
|
|
||||||
(CP1253 . cp1253) ; requires Emacs 20
|
|
||||||
(CP1254 . iso-8859-9) ; approximation
|
|
||||||
(CP1255 . iso-8859-8) ; approximation
|
|
||||||
;(CP1256 . ??)
|
|
||||||
(CP1257 . cp1257) ; requires Emacs 20
|
|
||||||
(GB2312 . cn-gb-2312) ; also named 'gb2312' in XEmacs 21 or Emacs 21
|
|
||||||
; also named 'euc-cn' in Emacs 20 or Emacs 21
|
|
||||||
(EUC-JP . euc-jp)
|
|
||||||
(EUC-KR . euc-kr)
|
|
||||||
;(EUC-TW . ??)
|
|
||||||
(BIG5 . big5)
|
|
||||||
;(BIG5-HKSCS . ??)
|
|
||||||
;(GBK . ??)
|
|
||||||
;(GB18030 . ??)
|
|
||||||
(SHIFT_JIS . shift_jis)
|
|
||||||
;(JOHAB . ??)
|
|
||||||
(TIS-620 . tis-620) ; requires Emacs 20 or Emacs 21
|
|
||||||
(VISCII . viscii) ; requires Emacs 20 or Emacs 21
|
|
||||||
(UTF-8 . utf-8) ; requires Mule-UCS in Emacs 20, or Emacs 21
|
|
||||||
)
|
|
||||||
"How to convert a GNU libc/libiconv canonical charset name as seen in
|
|
||||||
Content-Type into a Mule coding system.")
|
|
||||||
|
|
||||||
(defvar po-auxiliary-list nil
|
(defvar po-auxiliary-list nil
|
||||||
"List of auxiliary PO files, in completing read format.")
|
"List of auxiliary PO files, in completing read format.")
|
||||||
|
|
||||||
(defvar po-auxiliary-cursor nil
|
(defvar po-auxiliary-cursor nil
|
||||||
"Cursor into the 'po-auxiliary-list'.")
|
"Cursor into the 'po-auxiliary-list'.")
|
||||||
|
|
||||||
(defvar po-translation-project-address
|
|
||||||
"translation@iro.umontreal.ca"
|
|
||||||
"Electronic mail address of the Translation Project.")
|
|
||||||
|
|
||||||
(defvar po-compose-mail-function
|
(defvar po-compose-mail-function
|
||||||
(let ((functions '(compose-mail-other-window
|
(let ((functions '(compose-mail-other-window
|
||||||
message-mail-other-window
|
message-mail-other-window
|
||||||
@ -913,70 +940,10 @@ Content-Type into a Mule coding system.")
|
|||||||
|
|
||||||
;;; Mode activation.
|
;;; Mode activation.
|
||||||
|
|
||||||
(defun po-find-charset (filename)
|
;; Emacs 21.2 comes with po-find-file-coding-system. We give preference
|
||||||
"Return PO file charset value."
|
;; to the version shipped with Emacs.
|
||||||
(interactive)
|
(if (not (fboundp 'po-find-file-coding-system))
|
||||||
(let ((charset-regexp
|
(require 'po-compat))
|
||||||
"^\"Content-Type: text/plain;[ \t]*charset=\\(.*\\)\\\\n\"")
|
|
||||||
(short-read nil))
|
|
||||||
;; Try the first 4096 bytes. In case we cannot find the charset value
|
|
||||||
;; within the first 4096 bytes (the PO file might start with a long
|
|
||||||
;; comment) try the next 4096 bytes repeatedly until we'll know for sure
|
|
||||||
;; we've checked the empty header entry entirely.
|
|
||||||
(while (not (or short-read (re-search-forward "^msgid" nil t)))
|
|
||||||
(save-excursion
|
|
||||||
(goto-char (point-max))
|
|
||||||
(let ((pair (insert-file-contents-literally filename nil
|
|
||||||
(1- (point))
|
|
||||||
(1- (+ (point) 4096)))))
|
|
||||||
(setq short-read (< (nth 1 pair) 4096)))))
|
|
||||||
(cond (short-read nil)
|
|
||||||
((re-search-forward charset-regexp nil t) (match-string 1))
|
|
||||||
;; We've found the first msgid; maybe, only a part of the msgstr
|
|
||||||
;; value was loaded. Load the next 1024 bytes; if charset still
|
|
||||||
;; isn't available, give up.
|
|
||||||
(t (save-excursion
|
|
||||||
(goto-char (point-max))
|
|
||||||
(insert-file-contents-literally filename nil
|
|
||||||
(1- (point))
|
|
||||||
(1- (+ (point) 1024))))
|
|
||||||
(if (re-search-forward charset-regexp nil t)
|
|
||||||
(match-string 1))))))
|
|
||||||
|
|
||||||
(eval-and-compile
|
|
||||||
(if (or po-EMACS20 po-XEMACS)
|
|
||||||
(defun po-find-file-coding-system-guts (operation filename)
|
|
||||||
"\
|
|
||||||
Return a Mule (DECODING . ENCODING) pair, according to PO file charset.
|
|
||||||
Called through file-coding-system-alist, before the file is visited for real."
|
|
||||||
(and (eq operation 'insert-file-contents)
|
|
||||||
(po-with-temp-buffer
|
|
||||||
(let ((coding-system-for-read 'no-conversion))
|
|
||||||
(let* ((charset (or (po-find-charset filename)
|
|
||||||
"ascii"))
|
|
||||||
(charset-upper (intern (upcase charset)))
|
|
||||||
(charset-lower (intern (downcase charset))))
|
|
||||||
(list (or (cdr (assq charset-upper
|
|
||||||
po-content-type-charset-alist))
|
|
||||||
(if (memq charset-lower (coding-system-list))
|
|
||||||
charset-lower
|
|
||||||
'no-conversion)))))))))
|
|
||||||
|
|
||||||
(if po-EMACS20
|
|
||||||
(defun po-find-file-coding-system (arg-list)
|
|
||||||
"\
|
|
||||||
Return a Mule (DECODING . ENCODING) pair, according to PO file charset.
|
|
||||||
Called through file-coding-system-alist, before the file is visited for real."
|
|
||||||
(po-find-file-coding-system-guts (car arg-list) (car (cdr arg-list)))))
|
|
||||||
|
|
||||||
(if po-XEMACS
|
|
||||||
(defun po-find-file-coding-system (operation filename)
|
|
||||||
"\
|
|
||||||
Return a Mule (DECODING . ENCODING) pair, according to PO file charset.
|
|
||||||
Called through file-coding-system-alist, before the file is visited for real."
|
|
||||||
(po-find-file-coding-system-guts operation filename)))
|
|
||||||
|
|
||||||
)
|
|
||||||
|
|
||||||
(defvar po-mode-abbrev-table nil
|
(defvar po-mode-abbrev-table nil
|
||||||
"Abbrev table used while in PO mode.")
|
"Abbrev table used while in PO mode.")
|
||||||
@ -1127,8 +1094,12 @@ all reachable through 'M-x customize', in group 'Emacs.Editing.I18n.Po'."
|
|||||||
|
|
||||||
;; Insert MODE-LINE-ENTRY in mode line, but on first load only.
|
;; Insert MODE-LINE-ENTRY in mode line, but on first load only.
|
||||||
(or (member po-mode-line-entry mode-line-format)
|
(or (member po-mode-line-entry mode-line-format)
|
||||||
(let ((entry (member 'global-mode-string mode-line-format)))
|
;; mode-line-format usually contains global-mode-string, but some
|
||||||
(setcdr entry (cons po-mode-line-entry (cdr entry)))))
|
;; people customize this variable. As a last resort, append at the end.
|
||||||
|
(let ((prev-entry (or (member 'global-mode-string mode-line-format)
|
||||||
|
(member " " mode-line-format)
|
||||||
|
(last mode-line-format))))
|
||||||
|
(setcdr prev-entry (cons po-mode-line-entry (cdr prev-entry)))))
|
||||||
|
|
||||||
(defun po-update-mode-line-string ()
|
(defun po-update-mode-line-string ()
|
||||||
"Compute a new statistics string to display in mode line."
|
"Compute a new statistics string to display in mode line."
|
||||||
@ -1182,7 +1153,8 @@ Then, update the mode line counters."
|
|||||||
;; While counting, skip the header entry, for consistency with msgfmt.
|
;; While counting, skip the header entry, for consistency with msgfmt.
|
||||||
(po-find-span-of-entry)
|
(po-find-span-of-entry)
|
||||||
(if (string-equal (po-get-msgid nil) "")
|
(if (string-equal (po-get-msgid nil) "")
|
||||||
(if (po-next-entry)
|
(goto-char po-end-of-entry))
|
||||||
|
(if (re-search-forward "^msgid" (point-max) t)
|
||||||
(progn
|
(progn
|
||||||
;; Start counting
|
;; Start counting
|
||||||
(while (re-search-forward po-any-msgstr-regexp nil t)
|
(while (re-search-forward po-any-msgstr-regexp nil t)
|
||||||
@ -1208,7 +1180,7 @@ Then, update the mode line counters."
|
|||||||
(while (re-search-forward po-fuzzy-regexp nil t)
|
(while (re-search-forward po-fuzzy-regexp nil t)
|
||||||
(setq po-fuzzy-counter (1+ po-fuzzy-counter)))
|
(setq po-fuzzy-counter (1+ po-fuzzy-counter)))
|
||||||
(setq po-translated-counter (- po-translated-counter po-fuzzy-counter)))
|
(setq po-translated-counter (- po-translated-counter po-fuzzy-counter)))
|
||||||
'())))
|
'()))
|
||||||
|
|
||||||
;; Push the results out.
|
;; Push the results out.
|
||||||
(if flag
|
(if flag
|
||||||
@ -2078,8 +2050,10 @@ For more info cf. `po-subedit-ediff'."
|
|||||||
(defun po-subedit-ediff ()
|
(defun po-subedit-ediff ()
|
||||||
"Edit the subedit buffer using `ediff'.
|
"Edit the subedit buffer using `ediff'.
|
||||||
`po-subedit-ediff' calls `po-ediff-buffers-exit-recursive' to edit translation
|
`po-subedit-ediff' calls `po-ediff-buffers-exit-recursive' to edit translation
|
||||||
variants side by side. `msgcat' is able to produce those variants; every
|
variants side by side if they are actually different; if variants are equal just
|
||||||
variant is marked with:
|
delete the first one.
|
||||||
|
|
||||||
|
`msgcat' is able to produce those variants; every variant is marked with:
|
||||||
|
|
||||||
#-#-#-#-# file name reference #-#-#-#-#
|
#-#-#-#-# file name reference #-#-#-#-#
|
||||||
|
|
||||||
@ -2124,7 +2098,12 @@ When done with the `ediff' session press \\[exit-recursive-edit] exit to
|
|||||||
(erase-buffer)
|
(erase-buffer)
|
||||||
(insert-buffer-substring oldbuf start-2 end-2))
|
(insert-buffer-substring oldbuf start-2 end-2))
|
||||||
|
|
||||||
(po-ediff-buffers-exit-recursive buf1 buf2 oldbuf end-2)))))
|
(if (not (string-equal (buffer-substring-no-properties start-1 end-1)
|
||||||
|
(buffer-substring-no-properties start-2 end-2)))
|
||||||
|
(po-ediff-buffers-exit-recursive buf1 buf2 oldbuf end-2)
|
||||||
|
(message "Variants are equal; delete %s" buf1)
|
||||||
|
(forward-line -1)
|
||||||
|
(delete-region (point-min) (point)))))))
|
||||||
|
|
||||||
(defun po-subedit-abort ()
|
(defun po-subedit-abort ()
|
||||||
"Exit the subedit buffer, merely discarding its contents."
|
"Exit the subedit buffer, merely discarding its contents."
|
||||||
@ -3260,11 +3239,13 @@ Write to your team? ('n' if writing to the Translation Project robot) ")))
|
|||||||
po-obsolete-counter))))
|
po-obsolete-counter))))
|
||||||
(let ((buffer (current-buffer))
|
(let ((buffer (current-buffer))
|
||||||
(name (po-guess-archive-name))
|
(name (po-guess-archive-name))
|
||||||
(transient-mark-mode nil))
|
(transient-mark-mode nil)
|
||||||
|
(coding-system-for-read buffer-file-coding-system)
|
||||||
|
(coding-system-for-write buffer-file-coding-system))
|
||||||
(apply po-compose-mail-function address
|
(apply po-compose-mail-function address
|
||||||
(if team-flag
|
(if team-flag
|
||||||
(read-string (_"Subject? "))
|
(read-string (_"Subject? "))
|
||||||
(format "TP-Robot %s" name))
|
(format "%s %s" po-translation-project-mail-label name))
|
||||||
nil)
|
nil)
|
||||||
(goto-char (point-min))
|
(goto-char (point-min))
|
||||||
(re-search-forward
|
(re-search-forward
|
||||||
@ -3328,4 +3309,6 @@ strings remain."
|
|||||||
(save-buffer)
|
(save-buffer)
|
||||||
(kill-buffer (current-buffer)))))))
|
(kill-buffer (current-buffer)))))))
|
||||||
|
|
||||||
|
(provide 'po-mode)
|
||||||
|
|
||||||
;;; po-mode.el ends here
|
;;; po-mode.el ends here
|
||||||
|
6
python-mode-init.el
Normal file
6
python-mode-init.el
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
;; setup python support
|
||||||
|
|
||||||
|
(autoload 'python-mode "python-mode" "Python mode." t)
|
||||||
|
(autoload 'py-shell "python-mode" "Python shell mode." t)
|
||||||
|
(add-to-list 'auto-mode-alist '("\\.py$" . python-mode))
|
||||||
|
(add-to-list 'interpreter-mode-alist '("python" . python-mode))
|
4
rpm-spec-mode-init.el
Normal file
4
rpm-spec-mode-init.el
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
;; rpm-spec-mode for spec files
|
||||||
|
|
||||||
|
(autoload 'rpm-spec-mode "rpm-spec-mode" "RPM spec mode." t)
|
||||||
|
(add-to-list 'auto-mode-alist '("\\.spec$" . rpm-spec-mode))
|
431
rpm-spec-mode.el
431
rpm-spec-mode.el
@ -1,45 +1,48 @@
|
|||||||
;;; rpm-spec-mode.el --- RPM spec file editing commands for Emacs/XEmacs
|
;;; rpm-spec-mode.el --- RPM spec file editing commands for Emacs/XEmacs
|
||||||
|
|
||||||
;; Copyright (C) 1997,1998,1999,2000,2001 Stig Bjørlykke, <stigb@tihlde.org>
|
;; Copyright (C) 1997-2002 Stig Bjørlykke, <stigb@tihlde.org>
|
||||||
|
|
||||||
;; Author: Stig Bjørlykke, <stigb@tihlde.org>
|
;; Author: Stig Bjørlykke, <stigb@tihlde.org>
|
||||||
;; Keywords: unix, languages
|
;; Keywords: unix, languages
|
||||||
;; Version: 0.11h
|
;; Version: 0.12
|
||||||
|
|
||||||
;; This file is not yet part of FSF Emacs or XEmacs.
|
;; This file is part of XEmacs.
|
||||||
|
|
||||||
;; Emacs/XEmacs is free software; you can redistribute it and/or modify
|
;; XEmacs is free software; you can redistribute it and/or modify
|
||||||
;; it under the terms of the GNU General Public License as published by
|
;; it under the terms of the GNU General Public License as published by
|
||||||
;; the Free Software Foundation; either version 2, or (at your option)
|
;; the Free Software Foundation; either version 2, or (at your option)
|
||||||
;; any later version.
|
;; any later version.
|
||||||
|
|
||||||
;; Emacs/XEmacs is distributed in the hope that it will be useful,
|
;; XEmacs is distributed in the hope that it will be useful,
|
||||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
;; General Public License for more details.
|
;; General Public License for more details.
|
||||||
|
|
||||||
;; You should have received a copy of the GNU General Public License
|
;; You should have received a copy of the GNU General Public License
|
||||||
;; along with Emacs/XEmacs; see the file COPYING. If not, write to the
|
;; along with XEmacs; see the file COPYING. If not, write to the
|
||||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
|
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
|
||||||
;; MA 02111-1307, USA.
|
;; MA 02111-1307, USA.
|
||||||
|
|
||||||
;;; Synched up with: both in FSF Emacs and XEmacs.
|
;;; Synched up with: not in GNU Emacs.
|
||||||
|
|
||||||
;;; Thanx to:
|
;;; Thanx to:
|
||||||
|
|
||||||
;; Tore Olsen <toreo@tihlde.hist.no> for some general fixes.
|
;; Tore Olsen <toreo@tihlde.org> for some general fixes.
|
||||||
;; Steve Sanbeg <sanbeg@dset.com> for navigation functions and
|
;; Steve Sanbeg <sanbeg@dset.com> for navigation functions and
|
||||||
;; some Emacs fixes.
|
;; some Emacs fixes.
|
||||||
|
;; Tim Powers <timp@redhat.com> and Trond Eivind Glomsrød
|
||||||
|
;; <teg@redhat.com> for Red Hat adaptions and some fixes.
|
||||||
|
;; Chmouel Boudjnah <chmouel@mandrakesoft.com> for Mandrake fixes.
|
||||||
|
|
||||||
;;; ToDo:
|
;;; ToDo:
|
||||||
|
|
||||||
;; - rewrite function names and shortcuts.
|
;; - rewrite function names.
|
||||||
;; - autofill changelog entries.
|
;; - autofill changelog entries.
|
||||||
;; - customize rpm-tags-list and rpm-group-tags-list.
|
;; - customize rpm-tags-list and rpm-group-tags-list.
|
||||||
;; - get values from `rpm --showrc'.
|
;; - get values from `rpm --showrc'.
|
||||||
;; - ssh/rsh for compile.
|
;; - ssh/rsh for compile.
|
||||||
;; - finish integrating the new navigation functions in with existing stuff.
|
;; - finish integrating the new navigation functions in with existing stuff.
|
||||||
;; - use a single prefix conistently (internal)
|
;; - use a single prefix consistently (internal)
|
||||||
|
|
||||||
;;; Commentary:
|
;;; Commentary:
|
||||||
|
|
||||||
@ -56,20 +59,23 @@
|
|||||||
;; auto-mode-alist))
|
;; auto-mode-alist))
|
||||||
;;------------------------------------------------------------
|
;;------------------------------------------------------------
|
||||||
;;
|
;;
|
||||||
;; Adapted for Red Hat and some fixes made by Tim Powers <timp@redhat.com>
|
|
||||||
;; and Trond Eivind Glomsrød <teg@redhat.com>.
|
|
||||||
;;
|
|
||||||
;; Adapted by Chmouel Boudjnah <chmouel@mandrakesoft.com> for Mandrake
|
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
|
(defconst rpm-spec-mode-version "0.12" "Version of `rpm-spec-mode'.")
|
||||||
|
|
||||||
(defgroup rpm-spec nil
|
(defgroup rpm-spec nil
|
||||||
"RPM Spec mode with Emacs/XEmacs enhancements."
|
"RPM spec mode with Emacs/XEmacs enhancements."
|
||||||
:prefix "rpm-spec"
|
:prefix "rpm-spec-"
|
||||||
:group 'languages)
|
:group 'languages)
|
||||||
|
|
||||||
|
(defcustom rpm-spec-build-command "rpmbuild"
|
||||||
|
"Command for building a RPM package."
|
||||||
|
:type 'string
|
||||||
|
:group 'rpm-spec)
|
||||||
|
|
||||||
(defcustom rpm-spec-add-attr nil
|
(defcustom rpm-spec-add-attr nil
|
||||||
"Add %attr entry for filelistings or not."
|
"Add \"%attr\" entry for file listings or not."
|
||||||
:type 'boolean
|
:type 'boolean
|
||||||
:group 'rpm-spec)
|
:group 'rpm-spec)
|
||||||
|
|
||||||
@ -99,7 +105,10 @@ Set the macros _target, _target_arch and _target_os accordingly"
|
|||||||
:type 'string
|
:type 'string
|
||||||
:group 'rpm-spec)
|
:group 'rpm-spec)
|
||||||
|
|
||||||
(defcustom rpm-completion-ignore-case t
|
(define-obsolete-variable-alias
|
||||||
|
'rpm-completion-ignore-case 'rpm-spec-completion-ignore-case)
|
||||||
|
|
||||||
|
(defcustom rpm-spec-completion-ignore-case t
|
||||||
"*Non-nil means that case differences are ignored during completion.
|
"*Non-nil means that case differences are ignored during completion.
|
||||||
A value of nil means that case is significant.
|
A value of nil means that case is significant.
|
||||||
This is used during Tempo template completion."
|
This is used during Tempo template completion."
|
||||||
@ -116,7 +125,7 @@ This is used during Tempo template completion."
|
|||||||
:type 'boolean
|
:type 'boolean
|
||||||
:group 'rpm-spec)
|
:group 'rpm-spec)
|
||||||
|
|
||||||
(defcustom rpm-spec-test nil
|
(defcustom rpm-spec-nobuild nil
|
||||||
"Do not execute any build stages. Useful for testing out spec files."
|
"Do not execute any build stages. Useful for testing out spec files."
|
||||||
:type 'boolean
|
:type 'boolean
|
||||||
:group 'rpm-spec)
|
:group 'rpm-spec)
|
||||||
@ -128,18 +137,50 @@ the package."
|
|||||||
:type 'boolean
|
:type 'boolean
|
||||||
:group 'rpm-spec)
|
:group 'rpm-spec)
|
||||||
|
|
||||||
(defcustom rpm-initialize-sections t
|
(defcustom rpm-spec-nodeps nil
|
||||||
|
"Do not verify build dependencies."
|
||||||
|
:type 'boolean
|
||||||
|
:group 'rpm-spec)
|
||||||
|
|
||||||
|
(defcustom rpm-spec-old-rpm nil
|
||||||
|
"Set if using `rpm' as command for building packages."
|
||||||
|
:type 'boolean
|
||||||
|
:group 'rpm-spec)
|
||||||
|
|
||||||
|
(define-obsolete-variable-alias
|
||||||
|
'rpm-initialize-sections 'rpm-spec-initialize-sections)
|
||||||
|
|
||||||
|
(defcustom rpm-spec-initialize-sections t
|
||||||
"Automatically add empty section headings to new spec files."
|
"Automatically add empty section headings to new spec files."
|
||||||
:type 'boolean
|
:type 'boolean
|
||||||
:group 'rpm-spec)
|
:group 'rpm-spec)
|
||||||
|
|
||||||
(defcustom rpm-insert-version t
|
(define-obsolete-variable-alias
|
||||||
|
'rpm-insert-version 'rpm-spec-insert-changelog-version)
|
||||||
|
|
||||||
|
(defcustom rpm-spec-insert-changelog-version t
|
||||||
"Automatically add version in a new change log entry."
|
"Automatically add version in a new change log entry."
|
||||||
:type 'boolean
|
:type 'boolean
|
||||||
:group 'rpm-spec)
|
:group 'rpm-spec)
|
||||||
|
|
||||||
|
(defcustom rpm-spec-user-full-name nil
|
||||||
|
"*Full name of the user.
|
||||||
|
This is used in the change log and the Packager tag. It defaults to the
|
||||||
|
value returned by function `user-full-name'."
|
||||||
|
:type '(choice (const :tag "Use `user-full-name'" nil)
|
||||||
|
string)
|
||||||
|
:group 'rpm-spec)
|
||||||
|
|
||||||
|
(defcustom rpm-spec-user-mail-address nil
|
||||||
|
"*Email address of the user.
|
||||||
|
This is used in the change log and the Packager tag. It defaults to the
|
||||||
|
value returned by function `user-mail-address'."
|
||||||
|
:type '(choice (const :tag "Use `user-mail-address'" nil)
|
||||||
|
string)
|
||||||
|
:group 'rpm-spec)
|
||||||
|
|
||||||
(defgroup rpm-spec-faces nil
|
(defgroup rpm-spec-faces nil
|
||||||
"Font lock faces for RPM Spec mode."
|
"Font lock faces for `rpm-spec-mode'."
|
||||||
:group 'rpm-spec
|
:group 'rpm-spec
|
||||||
:group 'faces)
|
:group 'faces)
|
||||||
|
|
||||||
@ -155,11 +196,19 @@ the package."
|
|||||||
("clean") ("changelog") ("files"))
|
("clean") ("changelog") ("files"))
|
||||||
"Partial list of section names.")
|
"Partial list of section names.")
|
||||||
(defconst rpm-scripts
|
(defconst rpm-scripts
|
||||||
'("pre" "post" "preun" "postun" "trigger" "triggerun" "triggerpostun")
|
'("pre" "post" "preun" "postun"
|
||||||
"List of rpm scripts")
|
"trigger" "triggerin" "triggerun" "triggerpostun")
|
||||||
|
"List of rpm scripts.")
|
||||||
(defconst rpm-section-seperate "^%\\(\\w+\\)\\s-")
|
(defconst rpm-section-seperate "^%\\(\\w+\\)\\s-")
|
||||||
(defconst rpm-section-regexp
|
(defconst rpm-section-regexp
|
||||||
"^%\\(\\(description\\)\\|\\(prep\\)\\|\\(changelog\\)\\|\\(build\\)\\|\\(install\\)\\|\\(files\\)\\|\\(clean\\)\\|\\(package\\)\\|\\(pre\\|post\\(un\\)?\\)\\|\\(trigger\\(post\\)?\\([iu]n\\)?\\)\\)\\b"
|
(eval-when-compile
|
||||||
|
(concat "^%"
|
||||||
|
(regexp-opt
|
||||||
|
;; From RPM 4.1 sources, file build/parseSpec.c: partList[].
|
||||||
|
'("build" "changelog" "clean" "description" "files" "install"
|
||||||
|
"package" "post" "postun" "pre" "prep" "preun" "trigger"
|
||||||
|
"triggerin" "triggerpostun" "triggerun" "verifyscript") t)
|
||||||
|
"\\b"))
|
||||||
"Regular expression to match beginning of a section.")
|
"Regular expression to match beginning of a section.")
|
||||||
|
|
||||||
;;------------------------------------------------------------
|
;;------------------------------------------------------------
|
||||||
@ -176,6 +225,12 @@ the package."
|
|||||||
"*The face used for macros."
|
"*The face used for macros."
|
||||||
:group 'rpm-spec-faces)
|
:group 'rpm-spec-faces)
|
||||||
|
|
||||||
|
(defface rpm-spec-var-face
|
||||||
|
'(( ((class color) (background light)) (:foreground "maroon") )
|
||||||
|
( ((class color) (background dark)) (:foreground "maroon") ))
|
||||||
|
"*The face used for environment variables."
|
||||||
|
:group 'rpm-spec-faces)
|
||||||
|
|
||||||
(defface rpm-spec-doc-face
|
(defface rpm-spec-doc-face
|
||||||
'(( ((class color) (background light)) (:foreground "magenta") )
|
'(( ((class color) (background light)) (:foreground "magenta") )
|
||||||
( ((class color) (background dark)) (:foreground "magenta") ))
|
( ((class color) (background dark)) (:foreground "magenta") ))
|
||||||
@ -201,58 +256,83 @@ the package."
|
|||||||
:group 'rpm-spec-faces)
|
:group 'rpm-spec-faces)
|
||||||
|
|
||||||
;;; GNU emacs font-lock needs these...
|
;;; GNU emacs font-lock needs these...
|
||||||
(defvar rpm-spec-macro-face 'rpm-spec-macro-face "*Face for macros")
|
(defvar rpm-spec-macro-face
|
||||||
(defvar rpm-spec-tag-face 'rpm-spec-tag-face "*Face for tags")
|
'rpm-spec-macro-face "*Face for macros.")
|
||||||
(defvar rpm-spec-package-face 'rpm-spec-package-face "*Face for package tag")
|
(defvar rpm-spec-var-face
|
||||||
(defvar rpm-spec-dir-face 'rpm-spec-dir-face "*Face for directory entries")
|
'rpm-spec-var-face "*Face for environment variables.")
|
||||||
(defvar rpm-spec-doc-face 'rpm-spec-doc-face "*Face for documentation entries")
|
(defvar rpm-spec-tag-face
|
||||||
(defvar rpm-spec-ghost-face 'rpm-spec-ghost-face "*Face for %ghost files")
|
'rpm-spec-tag-face "*Face for tags.")
|
||||||
|
(defvar rpm-spec-package-face
|
||||||
|
'rpm-spec-package-face "*Face for package tag.")
|
||||||
|
(defvar rpm-spec-dir-face
|
||||||
|
'rpm-spec-dir-face "*Face for directory entries.")
|
||||||
|
(defvar rpm-spec-doc-face
|
||||||
|
'rpm-spec-doc-face "*Face for documentation entries.")
|
||||||
|
(defvar rpm-spec-ghost-face
|
||||||
|
'rpm-spec-ghost-face "*Face for \"%ghost\" files.")
|
||||||
|
|
||||||
(defvar rpm-default-umask "-"
|
(defvar rpm-default-umask "-"
|
||||||
"*Default umask for files, specified with %attr")
|
"*Default umask for files, specified with \"%attr\".")
|
||||||
(defvar rpm-default-owner "root"
|
(defvar rpm-default-owner "root"
|
||||||
"*Default owner for files, specified with %attr")
|
"*Default owner for files, specified with \"%attr\".")
|
||||||
(defvar rpm-default-group "root"
|
(defvar rpm-default-group "root"
|
||||||
"*Default group for files, specified with %attr")
|
"*Default group for files, specified with \"%attr\".")
|
||||||
|
|
||||||
;;------------------------------------------------------------
|
;;------------------------------------------------------------
|
||||||
|
|
||||||
(defvar rpm-no-gpg nil "Tell rpm not to sign package.")
|
(defvar rpm-no-gpg nil "Tell rpm not to sign package.")
|
||||||
|
|
||||||
(defvar rpm-tags-list
|
(defvar rpm-tags-list
|
||||||
'(("Autoreqprov")
|
;; From RPM 4.1 sources, file build/parsePreamble.c: preambleList[].")
|
||||||
("Buildroot")
|
'(("AutoProv")
|
||||||
|
("AutoReq")
|
||||||
|
("AutoReqProv")
|
||||||
|
("BuildArch")
|
||||||
|
("BuildArchitectures")
|
||||||
|
("BuildConflicts")
|
||||||
|
("BuildPreReq")
|
||||||
|
("BuildRequires")
|
||||||
|
("BuildRoot")
|
||||||
("Conflicts")
|
("Conflicts")
|
||||||
("Copyright")
|
("Copyright")
|
||||||
("%description")
|
("%description")
|
||||||
("Distribution")
|
("Distribution")
|
||||||
("Excludearch")
|
("DistURL")
|
||||||
("Excludeos")
|
("DocDir")
|
||||||
("Exclusivearch")
|
("Epoch")
|
||||||
("Exclusiveos")
|
("ExcludeArch")
|
||||||
|
("ExcludeOS")
|
||||||
|
("ExclusiveArch")
|
||||||
|
("ExclusiveOS")
|
||||||
("%files")
|
("%files")
|
||||||
("Group")
|
("Group")
|
||||||
("Icon")
|
("Icon")
|
||||||
("%ifarch")
|
("%ifarch")
|
||||||
|
("License")
|
||||||
("Name")
|
("Name")
|
||||||
("Nopatch")
|
("NoPatch")
|
||||||
("Nosource")
|
("NoSource")
|
||||||
|
("Obsoletes")
|
||||||
("%package")
|
("%package")
|
||||||
("Packager")
|
("Packager")
|
||||||
("Patch")
|
("Patch")
|
||||||
("Prefix")
|
("Prefix")
|
||||||
|
("Prefixes")
|
||||||
|
("PreReq")
|
||||||
("Provides")
|
("Provides")
|
||||||
("Release")
|
("Release")
|
||||||
("Requires")
|
("Requires")
|
||||||
|
("RHNPlatform")
|
||||||
("Serial")
|
("Serial")
|
||||||
("Source")
|
("Source")
|
||||||
("Summary")
|
("Summary")
|
||||||
("Url")
|
("URL")
|
||||||
("Vendor")
|
("Vendor")
|
||||||
("Version"))
|
("Version"))
|
||||||
"List which elements are valid tags.")
|
"List of elements that are valid tags.")
|
||||||
|
|
||||||
(defvar rpm-group-tags-list
|
(defvar rpm-group-tags-list
|
||||||
|
;; From RPM 4.1 sources, file GROUPS.
|
||||||
'(("Amusements/Games")
|
'(("Amusements/Games")
|
||||||
("Amusements/Graphics")
|
("Amusements/Graphics")
|
||||||
("Applications/Archiving")
|
("Applications/Archiving")
|
||||||
@ -283,10 +363,10 @@ the package."
|
|||||||
("User Interface/X")
|
("User Interface/X")
|
||||||
("User Interface/X Hardware Support")
|
("User Interface/X Hardware Support")
|
||||||
)
|
)
|
||||||
"List which elements is valid group tags.")
|
"List of elements that are valid group tags.")
|
||||||
|
|
||||||
(defvar rpm-spec-mode-syntax-table nil
|
(defvar rpm-spec-mode-syntax-table nil
|
||||||
"Syntax table in use in RPM-Spec-mode buffers.")
|
"Syntax table in use in `rpm-spec-mode' buffers.")
|
||||||
(unless rpm-spec-mode-syntax-table
|
(unless rpm-spec-mode-syntax-table
|
||||||
(setq rpm-spec-mode-syntax-table (make-syntax-table))
|
(setq rpm-spec-mode-syntax-table (make-syntax-table))
|
||||||
(modify-syntax-entry ?\\ "\\" rpm-spec-mode-syntax-table)
|
(modify-syntax-entry ?\\ "\\" rpm-spec-mode-syntax-table)
|
||||||
@ -306,59 +386,60 @@ the package."
|
|||||||
(modify-syntax-entry ?\' "." rpm-spec-mode-syntax-table))
|
(modify-syntax-entry ?\' "." rpm-spec-mode-syntax-table))
|
||||||
|
|
||||||
(defvar rpm-spec-mode-map nil
|
(defvar rpm-spec-mode-map nil
|
||||||
"Keymap used in RPM Spec mode.")
|
"Keymap used in `rpm-spec-mode'.")
|
||||||
(unless rpm-spec-mode-map
|
(unless rpm-spec-mode-map
|
||||||
(setq rpm-spec-mode-map (make-sparse-keymap))
|
(setq rpm-spec-mode-map (make-sparse-keymap))
|
||||||
(and (functionp 'set-keymap-name)
|
(and (functionp 'set-keymap-name)
|
||||||
(set-keymap-name rpm-spec-mode-map 'rpm-spec-mode-map))
|
(set-keymap-name rpm-spec-mode-map 'rpm-spec-mode-map))
|
||||||
(define-key rpm-spec-mode-map "\C-ca" 'rpm-build-ba)
|
(define-key rpm-spec-mode-map "\C-c\C-c" 'rpm-change-tag)
|
||||||
(define-key rpm-spec-mode-map "\C-cb" 'rpm-build-bb)
|
(define-key rpm-spec-mode-map "\C-c\C-e" 'rpm-add-change-log-entry)
|
||||||
(define-key rpm-spec-mode-map "\C-cc" 'rpm-build-bc)
|
|
||||||
(define-key rpm-spec-mode-map "\C-ce" 'rpm-add-change-log-entry)
|
|
||||||
(define-key rpm-spec-mode-map "\C-cg" 'rpm-goto-section)
|
|
||||||
(define-key rpm-spec-mode-map "\C-ci" 'rpm-build-bi)
|
|
||||||
(define-key rpm-spec-mode-map "\C-cl" 'rpm-build-bl)
|
|
||||||
(define-key rpm-spec-mode-map "\C-cp" 'rpm-build-bp)
|
|
||||||
(define-key rpm-spec-mode-map "\C-cr" 'rpm-increase-release-tag)
|
|
||||||
(define-key rpm-spec-mode-map "\C-cs" 'rpm-build-bs)
|
|
||||||
(define-key rpm-spec-mode-map "\C-cxa" 'rpm-toggle-add-attr)
|
|
||||||
(define-key rpm-spec-mode-map "\C-cxb" 'rpm-change-buildroot-option)
|
|
||||||
(define-key rpm-spec-mode-map "\C-cxc" 'rpm-toggle-clean)
|
|
||||||
(define-key rpm-spec-mode-map "\C-cxg" 'rpm-toggle-sign-gpg)
|
|
||||||
(define-key rpm-spec-mode-map "\C-cxi" 'rpm-change-timecheck-option)
|
|
||||||
(define-key rpm-spec-mode-map "\C-cxp" 'rpm-change-target-option)
|
|
||||||
(define-key rpm-spec-mode-map "\C-cxr" 'rpm-toggle-rmsource)
|
|
||||||
(define-key rpm-spec-mode-map "\C-cxs" 'rpm-toggle-short-circuit)
|
|
||||||
(define-key rpm-spec-mode-map "\C-cxt" 'rpm-toggle-test)
|
|
||||||
;;May be better to have movement commands on \C-ck, and build on \C-c\C-k
|
|
||||||
(define-key rpm-spec-mode-map "\C-c\C-i" 'rpm-insert-tag)
|
(define-key rpm-spec-mode-map "\C-c\C-i" 'rpm-insert-tag)
|
||||||
(define-key rpm-spec-mode-map "\C-c\C-n" 'rpm-forward-section)
|
(define-key rpm-spec-mode-map "\C-c\C-n" 'rpm-forward-section)
|
||||||
|
(define-key rpm-spec-mode-map "\C-c\C-o" 'rpm-goto-section)
|
||||||
(define-key rpm-spec-mode-map "\C-c\C-p" 'rpm-backward-section)
|
(define-key rpm-spec-mode-map "\C-c\C-p" 'rpm-backward-section)
|
||||||
(define-key rpm-spec-mode-map "\C-c\C-t" 'rpm-insert-true-prefix)
|
(define-key rpm-spec-mode-map "\C-c\C-r" 'rpm-increase-release-tag)
|
||||||
(define-key rpm-spec-mode-map "\C-c\C-cg" 'rpm-files-group)
|
(define-key rpm-spec-mode-map "\C-c\C-u" 'rpm-insert-true-prefix)
|
||||||
(define-key rpm-spec-mode-map "\C-c\C-co" 'rpm-files-owner)
|
(define-key rpm-spec-mode-map "\C-c\C-ba" 'rpm-build-all)
|
||||||
(define-key rpm-spec-mode-map "\C-c\C-cu" 'rpm-files-umask)
|
(define-key rpm-spec-mode-map "\C-c\C-bb" 'rpm-build-binary)
|
||||||
|
(define-key rpm-spec-mode-map "\C-c\C-bc" 'rpm-build-compile)
|
||||||
|
(define-key rpm-spec-mode-map "\C-c\C-bi" 'rpm-build-install)
|
||||||
|
(define-key rpm-spec-mode-map "\C-c\C-bl" 'rpm-list-check)
|
||||||
|
(define-key rpm-spec-mode-map "\C-c\C-bp" 'rpm-build-prepare)
|
||||||
|
(define-key rpm-spec-mode-map "\C-c\C-bs" 'rpm-build-source)
|
||||||
(define-key rpm-spec-mode-map "\C-c\C-dd" 'rpm-insert-dir)
|
(define-key rpm-spec-mode-map "\C-c\C-dd" 'rpm-insert-dir)
|
||||||
(define-key rpm-spec-mode-map "\C-c\C-do" 'rpm-insert-docdir)
|
(define-key rpm-spec-mode-map "\C-c\C-do" 'rpm-insert-docdir)
|
||||||
(define-key rpm-spec-mode-map "\C-c\C-fc" 'rpm-insert-config)
|
(define-key rpm-spec-mode-map "\C-c\C-fc" 'rpm-insert-config)
|
||||||
(define-key rpm-spec-mode-map "\C-c\C-fd" 'rpm-insert-doc)
|
(define-key rpm-spec-mode-map "\C-c\C-fd" 'rpm-insert-doc)
|
||||||
(define-key rpm-spec-mode-map "\C-c\C-ff" 'rpm-insert-file)
|
(define-key rpm-spec-mode-map "\C-c\C-ff" 'rpm-insert-file)
|
||||||
(define-key rpm-spec-mode-map "\C-c\C-fg" 'rpm-insert-ghost)
|
(define-key rpm-spec-mode-map "\C-c\C-fg" 'rpm-insert-ghost)
|
||||||
;(define-key rpm-spec-mode-map "\C-q" 'indent-spec-exp)
|
(define-key rpm-spec-mode-map "\C-c\C-xa" 'rpm-toggle-add-attr)
|
||||||
;(define-key rpm-spec-mode-map "\t" 'sh-indent-line)
|
(define-key rpm-spec-mode-map "\C-c\C-xb" 'rpm-change-buildroot-option)
|
||||||
|
(define-key rpm-spec-mode-map "\C-c\C-xc" 'rpm-toggle-clean)
|
||||||
|
(define-key rpm-spec-mode-map "\C-c\C-xd" 'rpm-toggle-nodeps)
|
||||||
|
(define-key rpm-spec-mode-map "\C-c\C-xf" 'rpm-files-group)
|
||||||
|
(define-key rpm-spec-mode-map "\C-c\C-xg" 'rpm-toggle-sign-gpg)
|
||||||
|
(define-key rpm-spec-mode-map "\C-c\C-xi" 'rpm-change-timecheck-option)
|
||||||
|
(define-key rpm-spec-mode-map "\C-c\C-xn" 'rpm-toggle-nobuild)
|
||||||
|
(define-key rpm-spec-mode-map "\C-c\C-xo" 'rpm-files-owner)
|
||||||
|
(define-key rpm-spec-mode-map "\C-c\C-xp" 'rpm-change-target-option)
|
||||||
|
(define-key rpm-spec-mode-map "\C-c\C-xr" 'rpm-toggle-rmsource)
|
||||||
|
(define-key rpm-spec-mode-map "\C-c\C-xs" 'rpm-toggle-short-circuit)
|
||||||
|
(define-key rpm-spec-mode-map "\C-c\C-xu" 'rpm-files-umask)
|
||||||
|
;;(define-key rpm-spec-mode-map "\C-q" 'indent-spec-exp)
|
||||||
|
;;(define-key rpm-spec-mode-map "\t" 'sh-indent-line)
|
||||||
)
|
)
|
||||||
|
|
||||||
(defconst rpm-spec-mode-menu
|
(defconst rpm-spec-mode-menu
|
||||||
(purecopy '("RPM-Spec"
|
(purecopy '("RPM spec"
|
||||||
["Insert Tag" rpm-insert-tag t]
|
["Insert Tag..." rpm-insert-tag t]
|
||||||
["Change Tag" rpm-change-tag t]
|
["Change Tag..." rpm-change-tag t]
|
||||||
"---"
|
"---"
|
||||||
["Go to section..." rpm-mouse-goto-section :keys "C-c g"]
|
["Go to section..." rpm-mouse-goto-section :keys "C-c C-o"]
|
||||||
["Forward section" rpm-forward-section t]
|
["Forward section" rpm-forward-section t]
|
||||||
["Backward section" rpm-backward-section t]
|
["Backward section" rpm-backward-section t]
|
||||||
"---"
|
"---"
|
||||||
["Add change log entry..." rpm-add-change-log-entry t]
|
["Add change log entry..." rpm-add-change-log-entry t]
|
||||||
["Increase release-tag" rpm-increase-release-tag t]
|
["Increase release tag" rpm-increase-release-tag t]
|
||||||
"---"
|
"---"
|
||||||
("Add file entry"
|
("Add file entry"
|
||||||
["Regular file..." rpm-insert-file t]
|
["Regular file..." rpm-insert-file t]
|
||||||
@ -377,29 +458,31 @@ the package."
|
|||||||
["Change default owner for files..." rpm-files-owner t]
|
["Change default owner for files..." rpm-files-owner t]
|
||||||
["Change default group for files..." rpm-files-group t])
|
["Change default group for files..." rpm-files-group t])
|
||||||
("Build Options"
|
("Build Options"
|
||||||
["Short Circuit" rpm-toggle-short-circuit
|
["Short circuit" rpm-toggle-short-circuit
|
||||||
:style toggle :selected rpm-spec-short-circuit]
|
:style toggle :selected rpm-spec-short-circuit]
|
||||||
["Remove source" rpm-toggle-rmsource
|
["Remove source" rpm-toggle-rmsource
|
||||||
:style toggle :selected rpm-spec-rmsource]
|
:style toggle :selected rpm-spec-rmsource]
|
||||||
["Clean" rpm-toggle-clean
|
["Clean" rpm-toggle-clean
|
||||||
:style toggle :selected rpm-spec-clean]
|
:style toggle :selected rpm-spec-clean]
|
||||||
["Testing only" rpm-toggle-test
|
["No build" rpm-toggle-nobuild
|
||||||
:style toggle :selected rpm-spec-test]
|
:style toggle :selected rpm-spec-nobuild]
|
||||||
["GPG Sign" rpm-toggle-sign-gpg
|
["GPG sign" rpm-toggle-sign-gpg
|
||||||
:style toggle :selected rpm-spec-sign-gpg]
|
:style toggle :selected rpm-spec-sign-gpg]
|
||||||
|
["Ignore dependencies" rpm-toggle-nodeps
|
||||||
|
:style toggle :selected rpm-spec-nodeps]
|
||||||
"---"
|
"---"
|
||||||
["Change timecheck value..." rpm-change-timecheck-option t]
|
["Change timecheck value..." rpm-change-timecheck-option t]
|
||||||
["Change buildroot value..." rpm-change-buildroot-option t]
|
["Change buildroot value..." rpm-change-buildroot-option t]
|
||||||
["Change target value..." rpm-change-target-option t])
|
["Change target value..." rpm-change-target-option t])
|
||||||
("RPM Build"
|
("RPM Build"
|
||||||
["Execute \"%prep\" stage" rpm-build-bp t]
|
["Execute \"%prep\" stage" rpm-build-prepare t]
|
||||||
["Do a \"list check\"" rpm-build-bl t]
|
["Do a \"list check\"" rpm-list-check t]
|
||||||
["Do the \"%build\" stage" rpm-build-bc t]
|
["Do the \"%build\" stage" rpm-build-compile t]
|
||||||
["Do the \"%install\" stage" rpm-build-bi t]
|
["Do the \"%install\" stage" rpm-build-install t]
|
||||||
"---"
|
"---"
|
||||||
["Build binary package" rpm-build-bb t]
|
["Build binary package" rpm-build-binary t]
|
||||||
["Build source package" rpm-build-bs t]
|
["Build source package" rpm-build-source t]
|
||||||
["Build binary and source" rpm-build-ba t])
|
["Build binary and source" rpm-build-all t])
|
||||||
"---"
|
"---"
|
||||||
["About rpm-spec-mode" rpm-about-rpm-spec-mode t]
|
["About rpm-spec-mode" rpm-about-rpm-spec-mode t]
|
||||||
)))
|
)))
|
||||||
@ -411,11 +494,13 @@ the package."
|
|||||||
(1 rpm-spec-tag-face)
|
(1 rpm-spec-tag-face)
|
||||||
(2 rpm-spec-ghost-face))
|
(2 rpm-spec-ghost-face))
|
||||||
("^\\([a-zA-Z0-9]+\\):" 1 rpm-spec-tag-face)
|
("^\\([a-zA-Z0-9]+\\):" 1 rpm-spec-tag-face)
|
||||||
("%\\(define\\|files\\|package\\|description\\)[ \t]+\\([^ \t\n-]+\\)"
|
("%\\(de\\(fine\\|scription\\)\\|files\\|package\\)[ \t]+\\([^-][^ \t\n]*\\)"
|
||||||
(2 rpm-spec-package-face))
|
(3 rpm-spec-package-face))
|
||||||
|
("%p\\(ost\\|re\\)\\(un\\)?[ \t]+\\([^-][^ \t\n]*\\)"
|
||||||
|
(3 rpm-spec-package-face))
|
||||||
("%configure " 0 rpm-spec-macro-face)
|
("%configure " 0 rpm-spec-macro-face)
|
||||||
("%dir[ \t]+\\([^ \t\n]+\\)[ \t]*" 1 rpm-spec-dir-face)
|
("%dir[ \t]+\\([^ \t\n]+\\)[ \t]*" 1 rpm-spec-dir-face)
|
||||||
("%doc\\(\\|dir\\)[ \t]+\\(.*\\)\n" 2 rpm-spec-doc-face)
|
("%doc\\(dir\\)?[ \t]+\\(.*\\)\n" 2 rpm-spec-doc-face)
|
||||||
("%\\(ghost\\|config\\)[ \t]+\\(.*\\)\n" 2 rpm-spec-ghost-face)
|
("%\\(ghost\\|config\\)[ \t]+\\(.*\\)\n" 2 rpm-spec-ghost-face)
|
||||||
("^%.+-[a-zA-Z][ \t]+\\([a-zA-Z0-9\.-]+\\)" 1 rpm-spec-doc-face)
|
("^%.+-[a-zA-Z][ \t]+\\([a-zA-Z0-9\.-]+\\)" 1 rpm-spec-doc-face)
|
||||||
("^\\(.+\\)(\\([a-zA-Z]\\{2,2\\}\\)):"
|
("^\\(.+\\)(\\([a-zA-Z]\\{2,2\\}\\)):"
|
||||||
@ -427,26 +512,28 @@ the package."
|
|||||||
(3 rpm-spec-tag-face)
|
(3 rpm-spec-tag-face)
|
||||||
(4 font-lock-warning-face))
|
(4 font-lock-warning-face))
|
||||||
("%{[^{}]*}" 0 rpm-spec-macro-face)
|
("%{[^{}]*}" 0 rpm-spec-macro-face)
|
||||||
|
("$[a-zA-Z0-9_]+" 0 rpm-spec-var-face)
|
||||||
|
("${[a-zA-Z0-9_]+}" 0 rpm-spec-var-face)
|
||||||
)
|
)
|
||||||
"Additional expressions to highlight in RPM Spec mode.")
|
"Additional expressions to highlight in `rpm-spec-mode'.")
|
||||||
|
|
||||||
;;Initialize font lock for xemacs
|
;;Initialize font lock for xemacs
|
||||||
(put 'rpm-spec-mode 'font-lock-defaults '(rpm-spec-font-lock-keywords))
|
(put 'rpm-spec-mode 'font-lock-defaults '(rpm-spec-font-lock-keywords))
|
||||||
|
|
||||||
(defvar rpm-spec-mode-abbrev-table nil
|
(defvar rpm-spec-mode-abbrev-table nil
|
||||||
"Abbrev table in use in RPM-Spec-mode buffers.")
|
"Abbrev table in use in `rpm-spec-mode' buffers.")
|
||||||
(define-abbrev-table 'rpm-spec-mode-abbrev-table ())
|
(define-abbrev-table 'rpm-spec-mode-abbrev-table ())
|
||||||
|
|
||||||
;;------------------------------------------------------------
|
;;------------------------------------------------------------
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun rpm-spec-mode ()
|
(defun rpm-spec-mode ()
|
||||||
"Major mode for editing spec files.
|
"Major mode for editing RPM spec files.
|
||||||
This is much like C mode except for the syntax of comments. It uses
|
This is much like C mode except for the syntax of comments. It uses
|
||||||
the same keymap as C mode and has the same variables for customizing
|
the same keymap as C mode and has the same variables for customizing
|
||||||
indentation. It has its own abbrev table and its own syntax table.
|
indentation. It has its own abbrev table and its own syntax table.
|
||||||
|
|
||||||
Turning on RPM Spec mode calls the value of the variable `rpm-spec-mode-hook'
|
Turning on RPM spec mode calls the value of the variable `rpm-spec-mode-hook'
|
||||||
with no args, if that value is non-nil."
|
with no args, if that value is non-nil."
|
||||||
(interactive)
|
(interactive)
|
||||||
(kill-all-local-variables)
|
(kill-all-local-variables)
|
||||||
@ -457,18 +544,23 @@ with no args, if that value is non-nil."
|
|||||||
(require 'cc-mode)
|
(require 'cc-mode)
|
||||||
(use-local-map rpm-spec-mode-map)
|
(use-local-map rpm-spec-mode-map)
|
||||||
(setq major-mode 'rpm-spec-mode)
|
(setq major-mode 'rpm-spec-mode)
|
||||||
(setq mode-name "RPM-SPEC")
|
(rpm-update-mode-name)
|
||||||
(setq local-abbrev-table rpm-spec-mode-abbrev-table)
|
(setq local-abbrev-table rpm-spec-mode-abbrev-table)
|
||||||
(set-syntax-table rpm-spec-mode-syntax-table)
|
(set-syntax-table rpm-spec-mode-syntax-table)
|
||||||
|
|
||||||
(require 'easymenu)
|
(require 'easymenu)
|
||||||
(easy-menu-define rpm-spec-call-menu rpm-spec-mode-map
|
(easy-menu-define rpm-spec-call-menu rpm-spec-mode-map
|
||||||
"Post menu for rpm-spec-mode" rpm-spec-mode-menu)
|
"Post menu for `rpm-spec-mode'." rpm-spec-mode-menu)
|
||||||
(easy-menu-add rpm-spec-mode-menu)
|
(easy-menu-add rpm-spec-mode-menu)
|
||||||
|
|
||||||
(if (= (buffer-size) 0)
|
(if (= (buffer-size) 0)
|
||||||
(rpm-spec-initialize))
|
(rpm-spec-initialize))
|
||||||
|
|
||||||
|
(if (executable-find "rpmbuild")
|
||||||
|
(setq rpm-spec-build-command "rpmbuild")
|
||||||
|
(setq rpm-spec-old-rpm t)
|
||||||
|
(setq rpm-spec-build-command "rpm"))
|
||||||
|
|
||||||
(make-local-variable 'paragraph-start)
|
(make-local-variable 'paragraph-start)
|
||||||
(setq paragraph-start (concat "$\\|" page-delimiter))
|
(setq paragraph-start (concat "$\\|" page-delimiter))
|
||||||
(make-local-variable 'paragraph-separate)
|
(make-local-variable 'paragraph-separate)
|
||||||
@ -510,9 +602,13 @@ with no args, if that value is non-nil."
|
|||||||
(interactive "sChange log entry: ")
|
(interactive "sChange log entry: ")
|
||||||
(save-excursion
|
(save-excursion
|
||||||
(rpm-goto-section "changelog")
|
(rpm-goto-section "changelog")
|
||||||
(let ((string (concat "* " (substring (current-time-string) 0 11)
|
(let* ((address (or rpm-spec-user-mail-address (user-mail-address)))
|
||||||
|
(fullname (or rpm-spec-user-full-name (user-full-name)))
|
||||||
|
(string (concat "* " (substring (current-time-string) 0 11)
|
||||||
(substring (current-time-string) -4) " "
|
(substring (current-time-string) -4) " "
|
||||||
(user-full-name) " <" user-mail-address ">")))
|
fullname " <" address ">"
|
||||||
|
(and rpm-spec-insert-changelog-version
|
||||||
|
(concat " " (rpm-find-spec-version t))))))
|
||||||
(if (not (search-forward string nil t))
|
(if (not (search-forward string nil t))
|
||||||
(insert "\n" string "\n")
|
(insert "\n" string "\n")
|
||||||
(forward-line 2))
|
(forward-line 2))
|
||||||
@ -521,7 +617,7 @@ with no args, if that value is non-nil."
|
|||||||
;;------------------------------------------------------------
|
;;------------------------------------------------------------
|
||||||
|
|
||||||
(defun rpm-insert-f (&optional filetype filename)
|
(defun rpm-insert-f (&optional filetype filename)
|
||||||
"Insert new %files entry."
|
"Insert new \"%files\" entry."
|
||||||
(save-excursion
|
(save-excursion
|
||||||
(and (rpm-goto-section "files") (rpm-end-of-section))
|
(and (rpm-goto-section "files") (rpm-end-of-section))
|
||||||
(if (or (eq filename 1) (not filename))
|
(if (or (eq filename 1) (not filename))
|
||||||
@ -568,9 +664,9 @@ with no args, if that value is non-nil."
|
|||||||
;;------------------------------------------------------------
|
;;------------------------------------------------------------
|
||||||
(defun rpm-completing-read (prompt table &optional pred require init hist)
|
(defun rpm-completing-read (prompt table &optional pred require init hist)
|
||||||
"Read from the minibuffer, with completion.
|
"Read from the minibuffer, with completion.
|
||||||
Like `completing-read', but the variable `rpm-completion-ignore-case'
|
Like `completing-read', but the variable `rpm-spec-completion-ignore-case'
|
||||||
controls whether case is significant."
|
controls whether case is significant."
|
||||||
(let ((completion-ignore-case rpm-completion-ignore-case))
|
(let ((completion-ignore-case rpm-spec-completion-ignore-case))
|
||||||
(completing-read prompt table pred require init hist)))
|
(completing-read prompt table pred require init hist)))
|
||||||
|
|
||||||
(defun rpm-insert (&optional what file-completion)
|
(defun rpm-insert (&optional what file-completion)
|
||||||
@ -686,7 +782,8 @@ controls whether case is significant."
|
|||||||
"Insert Packager tag."
|
"Insert Packager tag."
|
||||||
(interactive "p")
|
(interactive "p")
|
||||||
(beginning-of-line)
|
(beginning-of-line)
|
||||||
(insert "Packager: " (user-full-name) " <" user-mail-address ">\n"))
|
(insert "Packager: " (or rpm-spec-user-full-name (user-full-name))
|
||||||
|
" <" (or rpm-spec-user-mail-address (user-mail-address)) ">\n"))
|
||||||
|
|
||||||
(defun rpm-change-packager (&optional arg)
|
(defun rpm-change-packager (&optional arg)
|
||||||
"Update Packager tag."
|
"Update Packager tag."
|
||||||
@ -758,12 +855,14 @@ leave point at previous location."
|
|||||||
|
|
||||||
(defun rpm-mouse-goto-section (&optional section)
|
(defun rpm-mouse-goto-section (&optional section)
|
||||||
(interactive
|
(interactive
|
||||||
(x-popup-menu nil
|
(x-popup-menu
|
||||||
|
nil
|
||||||
(list "sections"
|
(list "sections"
|
||||||
(cons "Sections" (mapcar (lambda (e) (list e e)) rpm-sections))
|
(cons "Sections" (mapcar (lambda (e) (list e e)) rpm-sections))
|
||||||
(cons "Scripts" (mapcar (lambda (e) (list e e)) rpm-scripts))
|
(cons "Scripts" (mapcar (lambda (e) (list e e)) rpm-scripts))
|
||||||
)))
|
)))
|
||||||
(and section ;if user doesn't pick a section, exit quietly.
|
;; If user doesn't pick a section, exit quietly.
|
||||||
|
(and section
|
||||||
(if (member section rpm-sections)
|
(if (member section rpm-sections)
|
||||||
(rpm-goto-section section)
|
(rpm-goto-section section)
|
||||||
(goto-char (point-min))
|
(goto-char (point-min))
|
||||||
@ -775,13 +874,12 @@ leave point at previous location."
|
|||||||
(interactive)
|
(interactive)
|
||||||
(insert "%{prefix}"))
|
(insert "%{prefix}"))
|
||||||
|
|
||||||
|
|
||||||
;;------------------------------------------------------------
|
;;------------------------------------------------------------
|
||||||
|
|
||||||
(defun rpm-build (buildoptions)
|
(defun rpm-build (buildoptions)
|
||||||
"Build this rpm-package."
|
"Build this RPM package."
|
||||||
(setq rpm-buffer-name
|
(setq rpm-buffer-name
|
||||||
(concat "*rpmbuild " buildoptions " "
|
(concat "*" rpm-spec-build-command " " buildoptions " "
|
||||||
(file-name-nondirectory buffer-file-name) "*"))
|
(file-name-nondirectory buffer-file-name) "*"))
|
||||||
(rpm-process-check rpm-buffer-name)
|
(rpm-process-check rpm-buffer-name)
|
||||||
(if (get-buffer rpm-buffer-name)
|
(if (get-buffer rpm-buffer-name)
|
||||||
@ -789,7 +887,7 @@ leave point at previous location."
|
|||||||
(create-file-buffer rpm-buffer-name)
|
(create-file-buffer rpm-buffer-name)
|
||||||
(display-buffer rpm-buffer-name)
|
(display-buffer rpm-buffer-name)
|
||||||
(setq buildoptions (list buildoptions buffer-file-name))
|
(setq buildoptions (list buildoptions buffer-file-name))
|
||||||
(if (or rpm-spec-short-circuit rpm-spec-test)
|
(if (or rpm-spec-short-circuit rpm-spec-nobuild)
|
||||||
(setq rpm-no-gpg t))
|
(setq rpm-no-gpg t))
|
||||||
(if rpm-spec-rmsource
|
(if rpm-spec-rmsource
|
||||||
(setq buildoptions (cons "--rmsource" buildoptions)))
|
(setq buildoptions (cons "--rmsource" buildoptions)))
|
||||||
@ -807,70 +905,78 @@ leave point at previous location."
|
|||||||
(if (not (equal rpm-spec-target ""))
|
(if (not (equal rpm-spec-target ""))
|
||||||
(setq buildoptions (cons "--target" (cons rpm-spec-target
|
(setq buildoptions (cons "--target" (cons rpm-spec-target
|
||||||
buildoptions))))
|
buildoptions))))
|
||||||
(if rpm-spec-test
|
(if rpm-spec-nobuild
|
||||||
(setq buildoptions (cons "--test" buildoptions)))
|
(setq buildoptions (cons (if rpm-spec-old-rpm "--test" "--nobuild")
|
||||||
|
buildoptions)))
|
||||||
|
(if rpm-spec-nodeps
|
||||||
|
(setq buildoptions (cons "--nodeps" buildoptions)))
|
||||||
(if (and rpm-spec-sign-gpg (not rpm-no-gpg))
|
(if (and rpm-spec-sign-gpg (not rpm-no-gpg))
|
||||||
(setq buildoptions (cons "--sign" buildoptions)))
|
(setq buildoptions (cons "--sign" buildoptions)))
|
||||||
(save-excursion
|
(save-excursion
|
||||||
(set-buffer (get-buffer rpm-buffer-name))
|
(set-buffer (get-buffer rpm-buffer-name))
|
||||||
(goto-char (point-max)))
|
(goto-char (point-max)))
|
||||||
(let ((process
|
(let ((process
|
||||||
(apply 'start-process "rpmbuild" rpm-buffer-name "rpmbuild"
|
(apply 'start-process rpm-spec-build-command rpm-buffer-name
|
||||||
buildoptions)))
|
rpm-spec-build-command buildoptions)))
|
||||||
(if (and rpm-spec-sign-gpg (not rpm-no-gpg))
|
(if (and rpm-spec-sign-gpg (not rpm-no-gpg))
|
||||||
(let ((rpm-passwd-cache (read-passwd "GPG passphrase: ")))
|
(let ((rpm-passwd-cache (read-passwd "GPG passphrase: ")))
|
||||||
(process-send-string process (concat rpm-passwd-cache "\n"))))
|
(process-send-string process (concat rpm-passwd-cache "\n"))))
|
||||||
(set-process-filter process 'rpm-command-filter)))
|
(set-process-filter process 'rpm-command-filter)))
|
||||||
|
|
||||||
(defun rpm-build-bp (&optional arg)
|
(defun rpm-build-prepare (&optional arg)
|
||||||
"Run a `rpmbuild -bp'."
|
"Run a `rpmbuild -bp'."
|
||||||
(interactive "p")
|
(interactive "p")
|
||||||
(if rpm-spec-short-circuit
|
(if rpm-spec-short-circuit
|
||||||
(message "Cannot run `rpmbuild -bp' with --short-circuit")
|
(message (concat "Cannot run `" rpm-spec-build-command
|
||||||
|
" -bp' with --short-circuit"))
|
||||||
(setq rpm-no-gpg t)
|
(setq rpm-no-gpg t)
|
||||||
(rpm-build "-bp")))
|
(rpm-build "-bp")))
|
||||||
|
|
||||||
(defun rpm-build-bl (&optional arg)
|
(defun rpm-list-check (&optional arg)
|
||||||
"Run a `rpmbuild -bl'."
|
"Run a `rpmbuild -bl'."
|
||||||
(interactive "p")
|
(interactive "p")
|
||||||
(if rpm-spec-short-circuit
|
(if rpm-spec-short-circuit
|
||||||
(message "Cannot run `rpmbuild -bl' with --short-circuit")
|
(message (concat "Cannot run `" rpm-spec-build-command
|
||||||
|
" -bl' with --short-circuit"))
|
||||||
(setq rpm-no-gpg t)
|
(setq rpm-no-gpg t)
|
||||||
(rpm-build "-bl")))
|
(rpm-build "-bl")))
|
||||||
|
|
||||||
(defun rpm-build-bc (&optional arg)
|
(defun rpm-build-compile (&optional arg)
|
||||||
"Run a `rpmbuild -bc'."
|
"Run a `rpmbuild -bc'."
|
||||||
(interactive "p")
|
(interactive "p")
|
||||||
(setq rpm-no-gpg t)
|
(setq rpm-no-gpg t)
|
||||||
(rpm-build "-bc"))
|
(rpm-build "-bc"))
|
||||||
|
|
||||||
(defun rpm-build-bi (&optional arg)
|
(defun rpm-build-install (&optional arg)
|
||||||
"Run a `rpmbuild -bi'."
|
"Run a `rpmbuild -bi'."
|
||||||
(interactive "p")
|
(interactive "p")
|
||||||
(setq rpm-no-gpg t)
|
(setq rpm-no-gpg t)
|
||||||
(rpm-build "-bi"))
|
(rpm-build "-bi"))
|
||||||
|
|
||||||
(defun rpm-build-bb (&optional arg)
|
(defun rpm-build-binary (&optional arg)
|
||||||
"Run a `rpmbuild -bb'."
|
"Run a `rpmbuild -bb'."
|
||||||
(interactive "p")
|
(interactive "p")
|
||||||
(if rpm-spec-short-circuit
|
(if rpm-spec-short-circuit
|
||||||
(message "Cannot run `rpmbuild -bb' with --short-circuit")
|
(message (concat "Cannot run `" rpm-spec-build-command
|
||||||
|
" -bb' with --short-circuit"))
|
||||||
(setq rpm-no-gpg nil)
|
(setq rpm-no-gpg nil)
|
||||||
(rpm-build "-bb")))
|
(rpm-build "-bb")))
|
||||||
|
|
||||||
(defun rpm-build-bs (&optional arg)
|
(defun rpm-build-source (&optional arg)
|
||||||
"Run a `rpmbuild -bs'."
|
"Run a `rpmbuild -bs'."
|
||||||
(interactive "p")
|
(interactive "p")
|
||||||
(if rpm-spec-short-circuit
|
(if rpm-spec-short-circuit
|
||||||
(message "Cannot run `rpmbuild -bs' with --short-circuit")
|
(message (concat "Cannot run `" rpm-spec-build-command
|
||||||
|
" -bs' with --short-circuit"))
|
||||||
(setq rpm-no-gpg nil)
|
(setq rpm-no-gpg nil)
|
||||||
(rpm-build "-bs")))
|
(rpm-build "-bs")))
|
||||||
|
|
||||||
(defun rpm-build-ba (&optional arg)
|
(defun rpm-build-all (&optional arg)
|
||||||
"Run a `rpmbuild -ba'."
|
"Run a `rpmbuild -ba'."
|
||||||
(interactive "p")
|
(interactive "p")
|
||||||
(if rpm-spec-short-circuit
|
(if rpm-spec-short-circuit
|
||||||
(message "Cannot run `rpmbuild -ba' with --short-circuit")
|
(message (concat "Cannot run `" rpm-spec-build-command
|
||||||
|
" -ba' with --short-circuit"))
|
||||||
(setq rpm-no-gpg nil)
|
(setq rpm-no-gpg nil)
|
||||||
(rpm-build "-ba")))
|
(rpm-build "-ba")))
|
||||||
|
|
||||||
@ -888,7 +994,7 @@ command."
|
|||||||
;;------------------------------------------------------------
|
;;------------------------------------------------------------
|
||||||
|
|
||||||
(defun rpm-toggle-short-circuit (&optional arg)
|
(defun rpm-toggle-short-circuit (&optional arg)
|
||||||
"Toggle rpm-spec-short-circuit."
|
"Toggle `rpm-spec-short-circuit'."
|
||||||
(interactive "p")
|
(interactive "p")
|
||||||
(setq rpm-spec-short-circuit (not rpm-spec-short-circuit))
|
(setq rpm-spec-short-circuit (not rpm-spec-short-circuit))
|
||||||
(rpm-update-mode-name)
|
(rpm-update-mode-name)
|
||||||
@ -896,7 +1002,7 @@ command."
|
|||||||
(if rpm-spec-short-circuit "on" "off") ".")))
|
(if rpm-spec-short-circuit "on" "off") ".")))
|
||||||
|
|
||||||
(defun rpm-toggle-rmsource (&optional arg)
|
(defun rpm-toggle-rmsource (&optional arg)
|
||||||
"Toggle rpm-spec-rmsource."
|
"Toggle `rpm-spec-rmsource'."
|
||||||
(interactive "p")
|
(interactive "p")
|
||||||
(setq rpm-spec-rmsource (not rpm-spec-rmsource))
|
(setq rpm-spec-rmsource (not rpm-spec-rmsource))
|
||||||
(rpm-update-mode-name)
|
(rpm-update-mode-name)
|
||||||
@ -904,23 +1010,23 @@ command."
|
|||||||
(if rpm-spec-rmsource "on" "off") ".")))
|
(if rpm-spec-rmsource "on" "off") ".")))
|
||||||
|
|
||||||
(defun rpm-toggle-clean (&optional arg)
|
(defun rpm-toggle-clean (&optional arg)
|
||||||
"Toggle rpm-spec-clean."
|
"Toggle `rpm-spec-clean'."
|
||||||
(interactive "p")
|
(interactive "p")
|
||||||
(setq rpm-spec-clean (not rpm-spec-clean))
|
(setq rpm-spec-clean (not rpm-spec-clean))
|
||||||
(rpm-update-mode-name)
|
(rpm-update-mode-name)
|
||||||
(message (concat "Turned `--clean' "
|
(message (concat "Turned `--clean' "
|
||||||
(if rpm-spec-clean "on" "off") ".")))
|
(if rpm-spec-clean "on" "off") ".")))
|
||||||
|
|
||||||
(defun rpm-toggle-test (&optional arg)
|
(defun rpm-toggle-nobuild (&optional arg)
|
||||||
"Toggle rpm-spec-test."
|
"Toggle `rpm-spec-nobuild'."
|
||||||
(interactive "p")
|
(interactive "p")
|
||||||
(setq rpm-spec-test (not rpm-spec-test))
|
(setq rpm-spec-nobuild (not rpm-spec-nobuild))
|
||||||
(rpm-update-mode-name)
|
(rpm-update-mode-name)
|
||||||
(message (concat "Turned `--test' "
|
(message (concat "Turned `" (if rpm-spec-old-rpm "--test" "--nobuild") "' "
|
||||||
(if rpm-spec-test "on" "off") ".")))
|
(if rpm-spec-nobuild "on" "off") ".")))
|
||||||
|
|
||||||
(defun rpm-toggle-sign-gpg (&optional arg)
|
(defun rpm-toggle-sign-gpg (&optional arg)
|
||||||
"Toggle rpm-spec-sign-gpg."
|
"Toggle `rpm-spec-sign-gpg'."
|
||||||
(interactive "p")
|
(interactive "p")
|
||||||
(setq rpm-spec-sign-gpg (not rpm-spec-sign-gpg))
|
(setq rpm-spec-sign-gpg (not rpm-spec-sign-gpg))
|
||||||
(rpm-update-mode-name)
|
(rpm-update-mode-name)
|
||||||
@ -928,22 +1034,31 @@ command."
|
|||||||
(if rpm-spec-sign-gpg "on" "off") ".")))
|
(if rpm-spec-sign-gpg "on" "off") ".")))
|
||||||
|
|
||||||
(defun rpm-toggle-add-attr (&optional arg)
|
(defun rpm-toggle-add-attr (&optional arg)
|
||||||
"Toggle rpm-spec-add-attr."
|
"Toggle `rpm-spec-add-attr'."
|
||||||
(interactive "p")
|
(interactive "p")
|
||||||
(setq rpm-spec-add-attr (not rpm-spec-add-attr))
|
(setq rpm-spec-add-attr (not rpm-spec-add-attr))
|
||||||
(rpm-update-mode-name)
|
(rpm-update-mode-name)
|
||||||
(message (concat "Default add \"attr\" entry turned "
|
(message (concat "Default add \"attr\" entry turned "
|
||||||
(if rpm-spec-add-attr "on" "off") ".")))
|
(if rpm-spec-add-attr "on" "off") ".")))
|
||||||
|
|
||||||
|
(defun rpm-toggle-nodeps (&optional arg)
|
||||||
|
"Toggle `rpm-spec-nodeps'."
|
||||||
|
(interactive "p")
|
||||||
|
(setq rpm-spec-nodeps (not rpm-spec-nodeps))
|
||||||
|
(rpm-update-mode-name)
|
||||||
|
(message (concat "Turned `--nodeps' "
|
||||||
|
(if rpm-spec-nodeps "on" "off") ".")))
|
||||||
|
|
||||||
(defun rpm-update-mode-name ()
|
(defun rpm-update-mode-name ()
|
||||||
"Update mode-name according to values set."
|
"Update `mode-name' according to values set."
|
||||||
(setq mode-name "RPM-SPEC")
|
(setq mode-name "RPM-SPEC")
|
||||||
(setq modes (concat (if rpm-spec-add-attr "A")
|
(setq modes (concat (if rpm-spec-add-attr "A")
|
||||||
(if rpm-spec-clean "C")
|
(if rpm-spec-clean "C")
|
||||||
|
(if rpm-spec-nodeps "D")
|
||||||
(if rpm-spec-sign-gpg "G")
|
(if rpm-spec-sign-gpg "G")
|
||||||
|
(if rpm-spec-nobuild "N")
|
||||||
(if rpm-spec-rmsource "R")
|
(if rpm-spec-rmsource "R")
|
||||||
(if rpm-spec-short-circuit "S")
|
(if rpm-spec-short-circuit "S")
|
||||||
(if rpm-spec-test "T")
|
|
||||||
))
|
))
|
||||||
(if (not (equal modes ""))
|
(if (not (equal modes ""))
|
||||||
(setq mode-name (concat mode-name ":" modes))))
|
(setq mode-name (concat mode-name ":" modes))))
|
||||||
@ -1003,11 +1118,15 @@ command."
|
|||||||
;;------------------------------------------------------------
|
;;------------------------------------------------------------
|
||||||
|
|
||||||
(defun rpm-spec-field-value (field max)
|
(defun rpm-spec-field-value (field max)
|
||||||
|
"Get the value of FIELD, searching up to buffer position MAX.
|
||||||
|
See `search-forward-regexp'."
|
||||||
(save-excursion
|
(save-excursion
|
||||||
|
(ignore-errors
|
||||||
(let ((str
|
(let ((str
|
||||||
(progn
|
(progn
|
||||||
(goto-char (point-min))
|
(goto-char (point-min))
|
||||||
(search-forward-regexp (concat field ":[ \t]*\\(.+\\).*$") max)
|
(search-forward-regexp (concat
|
||||||
|
field ":[ \t]*\\(.*?\\)[ \t]*$") max)
|
||||||
(match-string 1))))
|
(match-string 1))))
|
||||||
(if (string-match "%{?\\([^}]*\\)}?$" str)
|
(if (string-match "%{?\\([^}]*\\)}?$" str)
|
||||||
(progn
|
(progn
|
||||||
@ -1017,15 +1136,23 @@ command."
|
|||||||
(match-end 1))
|
(match-end 1))
|
||||||
"[ \t]+\\(.*\\)"))
|
"[ \t]+\\(.*\\)"))
|
||||||
(match-string 1))
|
(match-string 1))
|
||||||
str))))
|
str)))))
|
||||||
|
|
||||||
(defun rpm-find-spec-version ()
|
(defun rpm-find-spec-version (&optional with-epoch)
|
||||||
|
"Get the version string.
|
||||||
|
If WITH-EPOCH is non-nil, the string contains the Epoch/Serial value,
|
||||||
|
if one is present in the file."
|
||||||
(save-excursion
|
(save-excursion
|
||||||
(goto-char (point-min))
|
(goto-char (point-min))
|
||||||
(let* ((max (search-forward-regexp rpm-section-regexp))
|
(let* ((max (search-forward-regexp rpm-section-regexp))
|
||||||
(version (rpm-spec-field-value "Version" max))
|
(version (rpm-spec-field-value "Version" max))
|
||||||
(release (rpm-spec-field-value "Release" max)) )
|
(release (rpm-spec-field-value "Release" max))
|
||||||
(concat version "-" release))))
|
(epoch (rpm-spec-field-value "Epoch" max)) )
|
||||||
|
(when (and version (< 0 (length version)))
|
||||||
|
(unless epoch (setq epoch (rpm-spec-field-value "Serial" max)))
|
||||||
|
(concat (and with-epoch epoch (concat epoch ":"))
|
||||||
|
version
|
||||||
|
(and release (concat "-" release)))))))
|
||||||
|
|
||||||
(defun rpm-increase-release-with-macros ()
|
(defun rpm-increase-release-with-macros ()
|
||||||
(save-excursion
|
(save-excursion
|
||||||
@ -1075,10 +1202,11 @@ command."
|
|||||||
"\nName: " (or name "")
|
"\nName: " (or name "")
|
||||||
"\nVersion: " (or version "")
|
"\nVersion: " (or version "")
|
||||||
"\nRelease: " (or release "")
|
"\nRelease: " (or release "")
|
||||||
|
"\nLicense: "
|
||||||
|
"\nGroup: "
|
||||||
"\nURL: "
|
"\nURL: "
|
||||||
"\nSource0: %{name}-%{version}.tar.gz"
|
"\nSource0: %{name}-%{version}.tar.gz"
|
||||||
"\nLicense: \nGroup: "
|
"\nBuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot"
|
||||||
"\nBuildRoot: %{_tmppath}/%{name}-root"
|
|
||||||
"\n\n%description\n"
|
"\n\n%description\n"
|
||||||
"\n%prep"
|
"\n%prep"
|
||||||
"\n%setup -q"
|
"\n%setup -q"
|
||||||
@ -1088,7 +1216,8 @@ command."
|
|||||||
"\n\n%clean"
|
"\n\n%clean"
|
||||||
"\nrm -rf $RPM_BUILD_ROOT"
|
"\nrm -rf $RPM_BUILD_ROOT"
|
||||||
"\n\n%files"
|
"\n\n%files"
|
||||||
"\n%defattr(-,root,root)\n"
|
"\n%defattr(-,root,root,-)"
|
||||||
|
"\n%doc\n"
|
||||||
"\n\n%changelog\n")
|
"\n\n%changelog\n")
|
||||||
|
|
||||||
(rpm-add-change-log-entry "Initial build.\n")))
|
(rpm-add-change-log-entry "Initial build.\n")))
|
||||||
@ -1096,9 +1225,15 @@ command."
|
|||||||
;;------------------------------------------------------------
|
;;------------------------------------------------------------
|
||||||
|
|
||||||
(defun rpm-about-rpm-spec-mode (&optional arg)
|
(defun rpm-about-rpm-spec-mode (&optional arg)
|
||||||
"About rpm-spec-mode."
|
"About `rpm-spec-mode'."
|
||||||
(interactive "p")
|
(interactive "p")
|
||||||
(message "Made by Stig Bjørlykke, <stigb@tihlde.org>"))
|
(message
|
||||||
|
(concat "rpm-spec-mode version "
|
||||||
|
rpm-spec-mode-version
|
||||||
|
" by Stig Bjørlykke, <stigb@tihlde.org>")))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(add-to-list 'auto-mode-alist '("\\.spec$" . rpm-spec-mode))
|
||||||
|
|
||||||
(provide 'rpm-spec-mode)
|
(provide 'rpm-spec-mode)
|
||||||
|
|
||||||
|
43
rpm-spec-mode.el-0.14-xemacs-compat.patch
Normal file
43
rpm-spec-mode.el-0.14-xemacs-compat.patch
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
diff -u rpm-spec-mode.el~ rpm-spec-mode.el
|
||||||
|
--- rpm-spec-mode.el~ 2002-12-02 12:00:38.000000000 +0900
|
||||||
|
+++ rpm-spec-mode.el 2002-12-02 12:00:38.000000000 +0900
|
||||||
|
@@ -105,6 +105,10 @@
|
||||||
|
:type 'string
|
||||||
|
:group 'rpm-spec)
|
||||||
|
|
||||||
|
+;; XEmacs compatibility function
|
||||||
|
+(unless (fboundp 'define-obsolete-variable-alias)
|
||||||
|
+ (defalias 'define-obsolete-variable-alias 'make-obsolete-variable))
|
||||||
|
+
|
||||||
|
(define-obsolete-variable-alias
|
||||||
|
'rpm-completion-ignore-case 'rpm-spec-completion-ignore-case)
|
||||||
|
|
||||||
|
@@ -597,6 +601,14 @@
|
||||||
|
|
||||||
|
;;------------------------------------------------------------
|
||||||
|
|
||||||
|
+;; XEmacs compatibility function
|
||||||
|
+(unless (fboundp 'user-mail-address)
|
||||||
|
+ (defun user-mail-address ()
|
||||||
|
+ "Return value of `user-mail-address'.
|
||||||
|
+
|
||||||
|
+XEmacs sendmail compatibility function."
|
||||||
|
+ user-mail-address))
|
||||||
|
+
|
||||||
|
(defun rpm-add-change-log-entry (&optional change-log-entry)
|
||||||
|
"Find change log and add an entry for today."
|
||||||
|
(interactive "sChange log entry: ")
|
||||||
|
@@ -1117,6 +1129,13 @@
|
||||||
|
|
||||||
|
;;------------------------------------------------------------
|
||||||
|
|
||||||
|
+;; XEmacs compatibility function
|
||||||
|
+(unless (fboundp 'ignore-errors)
|
||||||
|
+ (defmacro ignore-errors (&rest body)
|
||||||
|
+ "Execute FORMS; if an error occurs, return nil.
|
||||||
|
+Otherwise, return result of last FORM."
|
||||||
|
+ `(condition-case nil (progn ,@body) (error nil))))
|
||||||
|
+
|
||||||
|
(defun rpm-spec-field-value (field max)
|
||||||
|
"Get the value of FIELD, searching up to buffer position MAX.
|
||||||
|
See `search-forward-regexp'."
|
@ -1,33 +1,20 @@
|
|||||||
;; Aspell is a replacement for ispell
|
;; aspell is a replacement for ispell (this duplicates of aspell-init.el)
|
||||||
(setq-default ispell-program-name "aspell")
|
(setq-default ispell-program-name "aspell")
|
||||||
|
|
||||||
;; Add python support
|
;; load ".el" files in "/usr/share/emacs/site-lisp/site-start.d/" on startup
|
||||||
(require 'python-mode)
|
(mapc 'load
|
||||||
(setq auto-mode-alist
|
(directory-files "/usr/share/emacs/site-lisp/site-start.d" t "\\.el\\'"))
|
||||||
(cons '("\\.py$" . python-mode) auto-mode-alist))
|
|
||||||
(setq interpreter-mode-alist
|
|
||||||
(cons '("python" . python-mode) interpreter-mode-alist))
|
|
||||||
|
|
||||||
;; run functions from the /usr/share/emacs/site-lisp/site-start.d directory
|
;; Enable utf-8 in locales using utf-8. In RHL, all of these end in ".UTF-8".
|
||||||
;; Files in this directory ending with ".el" are run on startup
|
;; The utf-8 support in Emacs is limited, problems can be expected - especially
|
||||||
|
;; outside latin-1
|
||||||
(mapc 'load (directory-files "/usr/share/emacs/site-lisp/site-start.d" t "\\.el\\'"))
|
(cond ((equal (substring (concat " " (or (getenv "LC_ALL")
|
||||||
|
(getenv "LC_CTYPE")
|
||||||
;; Use the rpm-spec-mode for spec files
|
(getenv "LANG")))
|
||||||
(require 'rpm-spec-mode)
|
-5)
|
||||||
(setq auto-mode-alist
|
"UTF-8")
|
||||||
(cons '("\\.spec$" . rpm-spec-mode) auto-mode-alist))
|
|
||||||
|
|
||||||
;; Enable utf-8 in locales using utf-8. In RHL, all of these end in .UTF-8
|
|
||||||
;; The utf-8 support in emacs is limited, problems can be expected - especially
|
|
||||||
;; outside latin1
|
|
||||||
|
|
||||||
(cond ((equal (substring (concat " " (getenv "LANG")) -5) "UTF-8")
|
|
||||||
(setq locale-coding-system 'utf-8)
|
(setq locale-coding-system 'utf-8)
|
||||||
(set-terminal-coding-system 'utf-8)
|
(set-terminal-coding-system 'utf-8)
|
||||||
(set-keyboard-coding-system 'utf-8)
|
(set-keyboard-coding-system 'utf-8)
|
||||||
(set-selection-coding-system 'utf-8)
|
(set-selection-coding-system 'utf-8)
|
||||||
(prefer-coding-system 'utf-8)))
|
(prefer-coding-system 'utf-8)))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user