####### # # 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 # or at . # See also , # , # , # , # and . # ####### # «.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") # «.code-c-d-docs» (to "code-c-d-docs") # (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 Uploaders: Eduardo Ochs 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 Build-Depends: cdbs, debhelper (>= 7) Standards-Version: 3.7.3 Homepage: http://angg.twu.net/ Package: eev Architecture: all Depends: emacs Description: %%% 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") ##### # # Adding documentation to functions generated by code-c-d and friends # 2010jul30 # ##### # «code-c-d-docs» (to ".code-c-d-docs") # (find-efunction 'find-code-c-d-new) # (find-efunction 'code-c-d) Just a vague idea at the moment... # 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: