|
Warning: this is an htmlized version!
The original is across this link, and the conversion rules are here. |
#######
#
# E-scripts on eev itself: demos, hints, packing, works in progress, etc.
#
# Note 1: use the eev command (defined in eev.el) and the
# ee alias (in my .zshrc) to execute parts of this file.
# Executing this file as a whole makes no sense.
#
# Note 2: be VERY careful and make sure you understand what
# you're doing.
#
# Note 3: If you use a shell other than zsh things like |&
# and the for loops may not work.
#
# Note 4: I always run as root.
#
# Note 5: some parts are too old and don't work anymore. Some
# never worked.
#
# Note 6: the definitions for the find-xxxfile commands are on my
# .emacs.
#
# Note 7: if you see a strange command check my .zshrc -- it may
# be defined there as a function or an alias.
#
# Note 8: the sections without dates are always older than the
# sections with dates.
#
# This file is at <http://angg.twu.net/e/eev.e>
# or at <http://angg.twu.net/e/eev.e.html>.
# See also <http://angg.twu.net/emacs.html>,
# <http://angg.twu.net/.emacs[.html]>,
# <http://angg.twu.net/.zshrc[.html]>,
# <http://angg.twu.net/escripts.html>,
# and <http://angg.twu.net/>.
#
#######
# «.byte-compilation-bug» (to "byte-compilation-bug")
# «.debian-package» (to "debian-package")
# «.cdbs» (to "cdbs")
# «.dh-make» (to "dh-make")
# «.dh-make-2» (to "dh-make-2")
# «.eev-repository.tar» (to "eev-repository.tar")
# «.sources.list» (to "sources.list")
# «.what-the-deb» (to "what-the-deb")
# «.backtick-eev-mode» (to "backtick-eev-mode")
# (find-angg "TEXINFO/eev-article.texi")
# (find-eevex "")
# (find-eevex "lua.e" "quick-presentation")
#####
#
# Michael Heerdegen's bug
# 2008sep04
#
#####
# «byte-compilation-bug» (to ".byte-compilation-bug")
Hi Michael!
Thanks a lot for your report - I've been able to reproduce the bug at
my machine... here's the e-script that I used, by the way:
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd /tmp/
rm -v /tmp/test.elc
cat > /tmp/test.el <<'%%%'
(setq y (+ 1 2))
%%%
cat > /tmp/loadeev.el <<'%%%'
(progn
(add-to-list 'load-path "~/eev-current/")
(require 'eev-all)
(eev-mode 1))
(eev-mode 0)
(byte-compile-file "/tmp/test.el")
%%%
~/bigsrc/emacs/src/emacs -Q loadeev.el
The "loadeev.el" file gives me an easy way to choose which sexps to
execute.
I know very little about byte-compilation too (really!), but I have
some ideas for what to do to track down this bug... I'll try them over
the next days. Anyway: strangely, if I run the sexp
(byte-compile-file "/tmp/test.el")
with M-5 M-e - this is a way to eval a sexp with debug-on-error
temporarily turned on - the byte-compiler does not stop when the "End
of file during parsing" error occurs...
Cheers, & thanks again,
Eduardo Ochs
eduardoochs@gmail.com
http://angg.twu.net/
P.S.: did you notice that byte-compiling test.el always gives a
warning?
Compiling file /tmp/test.el at Thu Sep 4 22:48:58 2008
test.el:1:7:Warning: assignment to free variable `y'
test.el:1:3:Error: End of file during parsing
Assignment to non-defvar'ed variables is frowned upon...
#####
#
# New ideas for a Debian package for eev
# 2009jul26
#
#####
# «debian-package» (to ".debian-package")
# «cdbs» (to ".cdbs")
# (find-angg ".emacs" "debian-devel-docs")
# (find-efile "progmodes/ps-mode.el" ":prefix \"ps-run-\"")
# (find-fline "/usr/share/doc/emacsen-common/debian-emacs-policy.gz")
# (find-fline "/usr/share/emacs/")
# (find-fline "/etc/emacs/site-start.d/")
# (find-sitelispfile "maxima/")
# (find-status "cdbs")
# (find-vldifile "cdbs.list")
# (find-udfile "cdbs/")
# (find-udw3m "cdbs/cdbs-doc.html")
# (find-udw3m "cdbs/cdbs-doc.html" "\nSwitching the Package to CDBS\n\n")
# (find-udw3m "cdbs/cdbs-doc.html" "DEB_DESTDIR")
# (find-udw3m "cdbs/cdbs-doc.html" "build/myprog::")
# (find-fline "/usr/share/cdbs/1/")
# (find-sh "grep -niH -e cdbs ~/usrc/*/*/debian/*")
# (find-fline "~/usrc/camlp5/camlp5-5.10/debian/rules")
#*
# (eev-bounded)
rm -Rv ~/usrc/eev/
mkdir ~/usrc/eev/
mkdir ~/usrc/eev/eev-0.1/
mkdir ~/usrc/eev/eev-0.1/debian/
cat > ~/usrc/eev/eev-0.1/debian/rules <<'%%%'
#!/usr/bin/make -f
include /usr/share/cdbs/1/class/makefile.mk
include /usr/share/cdbs/1/rules/debhelper.mk
DEB_PACKAGES = eev
PKGNAME = eev
configure/$(PKGNAME):: debian/configure-stamp
debian/configure-stamp:
./configure $(CONFIGURE_FLAGS)
touch debian/configure-stamp
clean::
rm -f debian/configure-stamp
build/$(PKGNAME)::
$(MAKE) -C doc/
echo foo > doc/foo
%%%
# (find-anggfile "mktclapp-3.9/debian/changelog")
# (find-fline "~/usrc/eev/eev-0.1/debian/changelog")
# (find-maintgtext "dh_make -e your.maintainer@address")
# (find-man "8 dh_make")
# (find-status "dh-make")
# (find-vldifile "dh-make.list")
# (find-udfile "dh-make/")
cat > ~/usrc/eev/eev-0.1/debian/changelog <<'%%%'
%%%
# (find-
cat > ~/usrc/eev/eev-0.1/debian/control <<'%%%'
Source: eev
Section: editors
Priority: optional
Maintainer: Eduardo Ochs <eduardoochs@gmail.com>
Uploaders: Eduardo Ochs <eduardoochs@gmail.com>
Standards-Version: 3.7.3
Build-Depends:
Package: eev
Architecture: any
Depends: emacsen-common
Recommends: maxima
Suggests: bash
Description: Eev.
Long description.
%%%
cd ~/usrc/eev/eev-0.1/
dpkg-buildpackage -us -uc -b -rfakeroot |& tee odb
#*
# (find-fline "~/usrc/eev/eev-0.1/")
# (find-fline "~/usrc/eev/eev-0.1/debian/")
#####
#
# dh-make (first attempt, obsolete)
# 2009aug03
#
#####
# «dh-make» (to ".dh-make")
# (find-eev "debian/control.sh")
# (find-eev "debian/90eev.el")
# (find-maintgtext "dh_make -e your.maintainer@address")
# (find-man "8 dh_make")
# (find-fline "/var/cache/apt/archives/")
# (find-fline "/var/cache/apt/archives/debian-el_29.3-2_all.deb")
#*
rm -Rv ~/usrc/eev/
mkdir ~/usrc/eev/
mkdir ~/usrc/eev/eev-0.1/
cd ~/usrc/eev/eev-0.1/
mkdir -p etc/emacs/site-start.d/
mkdir -p usr/share/emacs/site-lisp/eev/
cat > etc/emacs/site-start.d/90eev.el <<'%%%'
;; (find-angg ".emacs" "eev-block")
;; (add-to-list 'load-path "/usr/share/emacs/site-lisp/eev")
;; (require 'eev-all) ; (find-eev "eev-all.el")
;; (eev-mode 1)
(message "The debianized eev package would be loaded.")
%%%
cat > usr/share/emacs/site-lisp/eev/foo.el <<'%%%'
(message "Foo!")
%%%
cat > Makefile <<'%%%'
clean:
%%%
# (find-udw3m "cdbs/cdbs-doc.html" "DEB_DESTDIR")
# (find-udw3m "cdbs/cdbs-doc.html" "build/myprog::")
# (find-udw3m "cdbs/cdbs-doc.html" "install/foo::")
# (find-maintgtext "")
# (find-maintgtext "4.4. `rules' file")
# (find-man "8 dh_make")
echo | \
DEBFULLNAME="Eduardo Ochs" \
dh_make --email eduardoochs@gmail.com \
--copyright=gpl \
--cdbs \
--native
rm -v debian/README.Debian debian/*.EX debian/*.ex
cat >> debian/rules <<'%%%'
build/eev::
install/eev::
echo "In install: $(DEB_DESTDIR)"
cp -Rv etc/ usr/ debian/eev/
%%%
mv -iv debian/control debian/control.orig
cat > debian/control <<'%%%'
Source: eev
Section: editors
Priority: extra
Maintainer: Eduardo Ochs <eduardoochs@gmail.com>
Build-Depends: cdbs, debhelper (>= 7)
Standards-Version: 3.7.3
Homepage: http://angg.twu.net/
Package: eev
Architecture: all
Depends: emacs
Description: <insert up to 60 chars description>
<insert long description, indented with spaces>
%%%
dpkg-buildpackage -us -uc -b -rfakeroot |& tee odb
#*
# (find-fline "~/usrc/eev/eev-0.1/")
# (find-fline "~/usrc/eev/eev-0.1/odb")
# (find-fline "~/usrc/eev/eev-0.1/debian/")
# (find-fline "~/usrc/eev/eev-0.1/debian/control")
# (find-sh "cd ~/usrc/eev/eev-0.1/debian/eev/ && find")
# (find-fline "~/usrc/eev/eev-0.1/debian/dirs")
# (find-fline "~/usrc/eev/eev_0.1_i386.deb")
# (find-sh "ar t ~/usrc/eev/eev_0.1_i386.deb")
# (find-sh "ar p ~/usrc/eev/eev_0.1_i386.deb control.tar.gz | tar -tvzf -")
# (find-sh "ar p ~/usrc/eev/eev_0.1_i386.deb data.tar.gz | tar -tvzf -")
# (find-sh "ar p ~/usrc/eev/eev_0.1_i386.deb debian-binary")
# (find-fline "~/usrc/eev/eev_0.1_all.deb")
# (find-sh "ar t ~/usrc/eev/eev_0.1_all.deb")
# (find-sh "ar p ~/usrc/eev/eev_0.1_all.deb control.tar.gz | tar -tvzf -")
# (find-sh "ar p ~/usrc/eev/eev_0.1_all.deb data.tar.gz | tar -tvzf -")
# (find-sh "ar p ~/usrc/eev/eev_0.1_all.deb debian-binary")
# (find-man "1 ar")
# (find-maintgtext "5.4. dirs")
# cat > debian/dirs <<'%%%'
# /usr/share/emacs/site-lisp/eev
# etc/emacs/site-start.d
# %%%
#####
#
# Building a Debian package for eev with dh-make (attempt 2)
# 2009aug16 / 2009nov25
#
#####
# «dh-make-2» (to ".dh-make-2")
# (find-eev "debian/README.Debian" nil "How the .deb is built")
# (find-eevsh "ls *.el")
# (find-eev "debian/")
# (find-eev "debian/emacs-eev")
# (find-eev "debian/90eev.el")
# (find-eev "debian/Makefile")
# (find-eev "debian/rules")
# (find-eev "debian/control.sh")
# (find-eev "debian/README.Debian")
# (find-maintgtext "5.1. README.Debian")
# (find-es "lenny" "apt-ftparchive")
# (find-angg ".emacs" "date")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
#*
rm -Rv ~/usrc/eev/
mkdir ~/usrc/eev/
mkdir ~/usrc/eev/eev-0.1.20091125/
ln -s eev-0.1.20091125 ~/usrc/eev/eev-0.1
cd ~/usrc/eev/eev-0.1.20091125/
mkdir -p etc/emacs/site-start.d/
mkdir -p usr/share/emacs/site-lisp/eev/
mkdir -p usr/bin/
mkdir -p usr/share/eev/
cp -v ~/eev-current/debian/Makefile .
cp -v ~/eev-current/debian/emacs-eev usr/bin/
cp -v ~/eev-current/eev-rctool usr/bin/
cp -v ~/eev-current/debian/90eev.el etc/emacs/site-start.d/
cp -av ~/eev-current/eev*.el usr/share/emacs/site-lisp/eev/
cp -v ~/eev-current/debian/eev_16.xpm usr/share/eev/
cp -v ~/eev-current/debian/eev_32.xpm usr/share/eev/
# (find-udw3m "cdbs/cdbs-doc.html" "DEB_DESTDIR")
# (find-udw3m "cdbs/cdbs-doc.html" "build/myprog::")
# (find-udw3m "cdbs/cdbs-doc.html" "install/foo::")
# (find-maintgtext "")
# (find-maintgtext "4.4. `rules' file")
# (find-man "8 dh_make")
echo | \
DEBFULLNAME="Eduardo Ochs" \
dh_make --email eduardoochs@gmail.com \
--copyright=gpl \
--cdbs \
--native
rm -v debian/README.Debian debian/*.EX debian/*.ex
mv -iv debian/control debian/control.orig
~/eev-current/debian/control.sh > debian/control
cp -v ~/eev-current/debian/README.Debian debian/README.Debian
cat ~/eev-current/debian/rules >> debian/rules
cp -v ~/eev-current/debian/eev.menu debian/eev.menu
# (find-fline "~/usrc/eev/")
# (find-fline "~/usrc/eev/eev-0.1/usr/")
# (find-man "1 dpkg-buildpackage")
# dpkg-buildpackage -us -uc -rfakeroot |& tee odb
dpkg-buildpackage -us -uc -b -rfakeroot |& tee odb
# (find-fline "~/usrc/eev/eev-0.1/usr/")
# (find-fline "~/usrc/eev/eev-0.1/debian/eev/usr/bin/")
# (find-sh "cd ~/usrc/eev/eev-0.1/debian/eev/ && find")
# (find-sh "cd ~/usrc/eev/eev-0.1/debian/eev/ && find | sort")
#*
# «apt-ftparchive» (to ".apt-ftparchive")
# (find-es "lenny" "apt-ftparchive")
# (find-man "1 apt-ftparchive")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd ~/usrc/eev/
mkdir -p dists/./main/binary-i386/
laf
apt-ftparchive packages .
apt-ftparchive packages . \
| tee dists/./main/binary-i386/Packages \
| gzip -c9 > dists/./main/binary-i386/Packages.gz
# «eev-repository.tar» (to ".eev-repository.tar")
# (find-sh "cd ~/usrc/eev/; find eev_* dists")
# (find-sh "cd ~/usrc/eev/; find eev_* dists -type f")
# eev_0.1_all.deb
# eev_0.1_i386.changes
# dists/main/binary-i386/Packages.gz
# dists/main/binary-i386/Packages
#
# Make a tarball of the repository:
cd ~/usrc/eev/
tar -cvf eev-repository.tar eev_* dists
# Copy it to twu and unpack it there:
# (find-fline "~/usrc/eev/")
# (find-fline "~/usrc/eev/eev-repository.tar")
# (find-twusfile "debian/")
# (find-twusfile "debian/eev-repository.tar")
# (ee-cp "~/usrc/eev/eev-repository.tar" (ee-twusfile "debian/eev-repository.tar") 'over)
# (find-es "page" "makepagefromtar-at-twu")
* (fvwm-sloppy-focus)
* (eebgTWU)
* (fvwm-click-to-focus)
zsh
cd ~/slow_html/debian/
tar -xvf eev-repository.tar
#
cd; tar -xvf edrx.tar; rezshrc
{makepagefromtar; makepageindexhtmls} |& tee ~/ompft
# «sources.list» (to ".sources.list")
# Patch the /etc/apt/sources.list file (by hand):
# (find-fline "/etc/apt/sources.list")
# (find-man "5 sources.list")
# (find-es "eev" "sources.list")
# deb file:/home/edrx/usrc/eev . main
# deb http://angg.twu.net/debian . main
#
#
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# Install the eev deb in the clean way:
sudo apt-get update
sudo dselect update
aptrm eev
y
apti eev
y
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# The dirty way:
cd ~/usrc/eev/
sudo dpkg -i *.deb
# (find-sh "sudo dselect update")
# (find-available "eev")
# (find-status "eev")
# (find-vldifile "eev.list")
# (find-udfile "eev/")
# Test: log as aleph, run emacs-eev, type M-h M-e.
# (find-man "1 ssh" "-X" "Enables X11 forwarding.")
# (eev "ssh -X aleph@localhost xterm")
# To do: fix math glyphs,
# http://angg.twu.net/debian/
# http://angg.twu.net/debian/README
# .dsc package.
#####
#
# What the debian package should do
# 2009aug03
#
#####
# «what-the-deb» (to ".what-the-deb")
# (find-man "1 readlink")
# (find-node "(coreutils)")
# (find-node "(coreutils)readlink invocation")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
w emacs
laf /usr/bin/emacs
laf /etc/alternatives/emacs
laf /usr/bin/emacs22-x
laf /usr/bin/emacs22
# (find-angg ".zshrc" "ae")
cat > usr/bin/emacs-eev <<'%%%'
#!/bin/sh
exec emacs -fg bisque -bg black $*
%%%
# (find-enode "Action Arguments" "`--funcall=FUNCTION'")
# Mode: add "eev"
# (find-eevfile "eev.el" "define-minor-mode eev-mode")
# (find-elnode "Index" "* define-minor-mode:")
# (find-elnode "Defining Minor Modes" "`:lighter LIGHTER'")
Two packages: emacs-eev and emacs-eev-puro
emacs-eev should be minimal (sort of)
emacs-eev-puro should depend on maxima and such stuff
Icon pointing to /usr/bin/emacs-eev:
# (find-angg "elisp/myxpm.el")
# (find-eevfile "eev-icon.png")
#####
#
# Backticking the definition of eev-mode
# 2009aug18
#
#####
# «backtick-eev-mode» (to ".backtick-eev-mode")
# To be done. Big mess at the moment.
# (find-elnode "Defining Minor Modes")
# (find-elnode "Defining Minor Modes" "hungry-mode")
# (find-evardescr 'minor-mode-list)
# (find-eapropos "hung")
# (find-eapropos "hung")
# (find-eapropos "mode-line")
# (find-eapropos "mode-line-modes")
# (find-evardescr 'mode-line-modes)
# (find-evardescr 'minor-mode-alist)
# (find-evardescr 'minor-mode-alist "hungry-mode")
# (find-efunction 'hungry-mode)
# (find-efunctionpp 'hungry-mode)
(setq hungry-mode-lighter " Hungry")
(setq hungry-mode-lighter " Hung")
(setq hungry-mode-lighter nil)
(define-minor-mode hungry-mode
:init-value 0
:lighter hungry-mode-lighter
:group 'hunger)
(hungry-mode 1)
(hungry-mode 0)
# (find-eevfile "eev.el" "define-minor-mode eev-mode")
# (find-eevfile "debian/90eev.el")
# http://www.emacswiki.org/emacs/EmacsForDebian
# Local Variables:
# coding: raw-text-unix
# ee-delimiter-hash: "\n#*\n"
# ee-delimiter-percent: "\n%*\n"
# ee-anchor-format: "«%s»"
# End: