Warning: this is a htmlized version!
The original is across this link.
#######
#
# E-scripts on making ".deb"s.
#
# 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/a/e/debiandev.e>
#           or at <http://angg.twu.net/e/debiandev.e.html>.
#        See also <http://angg.twu.net/emacs.html>,
#                 <http://angg.twu.net/a/.emacs[.html]>,
#                 <http://angg.twu.net/a/.zshrc[.html]>,
#                 <http://angg.twu.net/escripts.html>,
#             and <http://angg.twu.net/>.
#
#######




#####
#
# Some places with important docs
#
#####

lynx /usr/doc/debian/FAQ/debian-faq.html
lynx /usr/doc/debian/FAQ/debian-faq-15.html#ss15.1

# (find-fline "$S/ftp/ftp.debian.org/debian/doc/package-developer/")
# (find-fline "$S/ftp/ftp.debian.org/debian/doc/package-developer/developers-reference.text.gz")

cd $S/http/www.debian.org/~elphick/ddp/




# (find-vldifile "debhelper.list")
# (find-fline "/usr/doc/debhelper/")
# (find-fline "/usr/doc/debhelper/README")
# (find-fline "/usr/doc/debhelper/examples/")

zcat /var/catman/cat1/debhelper.1.gz | colcrt > ~/o


# (find-fline "/var/catman/cat1/debhelper.1.gz")

PAGER=cat man debhelper

# (find-vldifile "debmake.list")
# (find-fline "/usr/doc/debmake/")




#####
#
# hello
#
#####

rm -Rv

pdsc /big/slinks1/dists/slink/main/source/devel/hello-debhelper_1.3-14.3.dsc
pdsc /big/slinks1/dists/slink/main/source/devel/debhelper_1.1.24.dsc
pdsc /big/slinks1/dists/slink/main/source/devel/dh-make_0.7.dsc


apti packaging-manual
apti debhelper dh-make

# Debhelper is a replacement for debstd, and at this time
# (slink/potato) is the standard tool for building packages.
# (find-fline "/usr/doc/debhelper/from-debstd")

# (find-fline "/usr/doc/debhelper/")
# (find-fline "/usr/doc/dh-make/")
# (find-fline "/usr/doc/packaging-manual/")
# (find-fline "/usr/doc/packaging-manual/packaging.text.gz")
# (find-vldifile "debhelper.list")
# (find-vldifile "dh-make.list")
# (find-vldifile "packaging-manual.list")

# (eeman "dh_make")

# (find-es "tcl" "mktclapp")

apti devscripts
# (find-vldifile "devscripts.list")
# (find-fline "/usr/doc/devscripts/")




#####
#
# mktclapp: raw make
# 99aug??
#
#####

#  «mktclapp_raw»

rm -Rv /usr/src/mktclapp*
mkdir  /usr/src/mktclapp-3.7/
cd     /usr/src/mktclapp-3.7/
tar -xvzf $S/http/www.hwaci.com/sw/mktclapp/mktclapp.tar.gz

cd     /usr/src/mktclapp-3.7/
cat > hello.c <<'---'
/* A C module */
#include <stdio.h>
#include "mta.h"
int ET_COMMAND_print_hello(ET_TCLARGS){
  printf("Hello, out there!\n");
  return TCL_OK;
}
---
cat > hello.tcl <<'---'
button .b -text Go -command print_hello
button .e -text Quit -command exit
pack .b .e -side left
---
cat > Makefile <<'---'
mktclapp: mktclapp.c
mta.h: mktclapp
	./mktclapp -header > mta.h
glue.c: mktclapp hello.c hello.tcl
	./mktclapp -dont-strip-tcl -read-stdin \
	  hello.c  -main-script hello.tcl  > glue.c
glue.o: glue.c mta.h
hello.o: hello.c mta.h
hello: glue.o hello.o
	gcc -ltk8.0 -ltcl8.0 -L/usr/X11R6/lib -lX11 -lm -ldl \
	  -o hello glue.o hello.o
clean:
	rm -fv mta.h glue.c glue.o hello.o hello
---

make clean
make hello	|& tee om

# The program below has a window AND a stdin interpreter.
./hello





#####
#
# dh_make on mktclapp
# 99aug??
#
#####

#  «mktclapp_dh_make»

rm -Rv /usr/src/mktclapp*
mkdir  /usr/src/mktclapp-3.7/
cd     /usr/src/mktclapp-3.7/
tar -xvzf $S/http/www.hwaci.com/sw/mktclapp/mktclapp.tar.gz

export EMAIL=edrx@inx.com.br
echo s | dh_make

cd /usr/src/mktclapp-3.7/debian/
rm -v crontab.ex diversions.ex inetd.conf.ex info.ex init.d.ex menu.ex watch.ex

# (find-fline "~/Makefile.mta")

cd /usr/src/mktclapp-3.7/
cp ~/Makefile.mta Makefile

debian/rules binary	|& tee odrb

# (find-fline "/usr/src/mktclapp-3.7/debian/")
# (deb-view "/usr/src/mktclapp_3.7-1_i386.deb")

dpkg -i /usr/src/mktclapp_3.7-1_i386.deb
# (find-vldifile "mktclapp.list")
# (find-fline "/usr/doc/mktclapp/")

dpkg --purge mktclapp






	install *.html *.gif balloon.tcl $(DESTDIR)/usr/doc/

# (find-fline "/usr/src/mktclapp-3.7/debian/")
# (find-fline "/usr/src/pforth-21/debian/")
# (find-fline "/usr/doc/packaging-manual/packaging.text.gz")





######
#
# Packaging mktclapp in a more serious way
# 99aug26
#
######

#  «mktclapp»

rm -Rv /usr/src/mktclapp-3.7/
mkdir /usr/src/mktclapp-3.7/
cd /usr/src/mktclapp-3.7/
tar -xvzf $S/http/www.hwaci.com/sw/mktclapp/mktclapp.tar.gz

cd ~/debian/mktclapp/
cp -dipvR * /usr/src/mktclapp-3.7/

cd /usr/src/mktclapp-3.7/
debian/rules binary	|& tee odrb

cd /usr/src/mktclapp-3.7/debian/tmp/
find

cd /usr/src/
mv -v mktclapp*.deb .debs/
# apt-update
# apti mktclapp
dpkg -i /usr/src/.debs/mktclapp_3.7-1_i386.deb


# (find-fline "~/debian/mktclapp/")
# (find-fline "~/debian/mktclapp/Makefile")
# (find-fline "~/debian/mktclapp/examples/")
# (find-fline "~/debian/mktclapp/debian/")
# (find-fline "/usr/src/mktclapp-3.7/odrb")
# (find-fline "/usr/src/mktclapp-3.7/debian/")

# (find-vldifile "mktclapp.list")
# (find-fline "/usr/doc/mktclapp/")
# (find-fline "/usr/doc/mktclapp/examples/")
# (find-fline "/usr/doc/mktclapp/examples/README")

# (find-fline "/usr/doc/packaging-manual/packaging.text.gz")
# (find-vldifile "et.list")
# (find-fline "/usr/doc/et/")
# (find-fline "/usr/doc/et/html/.dhelp")
pdsc /big/slinks1/dists/slink/main/source/devel/et_80b2-8.dsc

# (eeman "dhelp_parse")




#####
#
# extracting the examples from mktclapp.html
# 99aug??
#
#####

# (find-node "(gawk)Pattern Overview")
# (find-node "(gawk)Using Constant Regexps")
# (find-node "(gawk)Print")

cd /usr/doc/mktclapp/
awk '/<pre>/ { p=1 }; { if(p) {print $0} }; /<\/pre>/ { p=0 }' \
  < mktclapp.html > ~/o
awk '{ if ($0 ~ /pre>/) print ""; else print $0 }' < ~/o > ~/o2

# (find-fline "~/o2")
# (fooi "&lt;" "<" "&gt;" ">" "<b>" "" "</b>" "")

a2ps -o /tmp/o.ps -X ibmpc \
  --columns=2 --rows=1 --major=columns --portrait --medium=A4dj \
  ~/o2
gv /tmp/o.ps

cd /tmp
make -f ~/LATEX/Makefile o.p01

pdsc /big/slinks1/dists/slink/main/source/devel/et_80b2-8.dsc




#####
#
# Making a manpage
# 99sep??
#
#####

#  «manpage_via_groff»
# (find-es "debiandev" "writing_pods")

# (find-fline "~/.zshrc" "man2t")
# (find-vldifile "groff.list")
# (find-fline "/usr/doc/groff/")
# (eeman "groff_man")
# (eeman "colcrt")
# (eeman "col")

man --help

cd /tmp/
man -Tascii groff_man > groff_man
# col -b < groff_man > groff_man.txt
colcrt groff_man > groff_man.txt
man -Tascii troff | colcrt > /tmp/troff.txt
man -Tascii 7 man | colcrt > /tmp/7man.txt

# (find-fline "/tmp/groff_man.txt")
# (find-fline "/tmp/troff.txt")
# (find-fline "/tmp/7man.txt")

groff -Tps -man < /usr/lib/deb-make/debian/manpage.1.ex > /tmp/manpage.ps
gv /tmp/manpage.ps &

man -Tps 7 man > /tmp/7man.ps
gv /tmp/7man.ps &

# (find-fline "/usr/lib/deb-make/debian/manpage.1.ex")
# (find-fline "/tmp/manpage.ps")

# (find-fline "/usr/share/groff/tmac/tmac.an")
# (find-fline "/usr/share/groff/tmac/tmac.andoc")

apti manpages-dev
# (find-vldifile "manpages-dev.list")
# (find-fline "/usr/doc/manpages-dev/")

# (find-fline "/usr/doc/mktclapp/")
# (find-fline "/usr/doc/mktclapp/quickref.html")
# (find-fline "~/debian/mktclapp/m.1")
# (find-fline "/usr/man/man7/undocumented.7.gz")
# (find-fline "/usr/man/man1/gcc.1.gz")
# (find-fline "/usr/man/man7/man.7.gz")

lynx $LH/cgi-bin/man2html





#####
#
# groff
# 99oct??
#
#####

pdsc /big/slinks2/dists/slink/main/source/text/groff_1.11a-7.dsc
cd /usr/src/groff-1.11a/
etags troff/{*.cc,*.h}

# (code-c-d "grof" "/usr/src/groff-1.11a/")
# (find-groffile "")
# (find-groffile "tmac/")
# (find-groffile "tmac/tmac.an")
# (find-groffile "tmac/tmac.e")
# (find-groffile "tmac/tmac.s")
# (find-groffile "tmac/tmac.safer")
# (find-groffile "tmac/tmac.trace")
# (find-groffile "tmac/tmac.tty")
# (find-groffile "tmac/tmac.tty-char")


#
# To understand tmac.an:
#

# (defun find-tcom (n &rest lixo) (eeman "troff" n))
# (defun find-tcom (n &rest lixo) (find-fline "/tmp/troff.txt" n))
# (defun find-trofs (f s) (find-groffile (format "troff/%s" f) (format "\"%s\"" s)))

man -Tascii troff | col -b > /tmp/troff.txt

cd /usr/src/groff-1.11a/troff/
# for i in *.cc *.h; do getstrings < $i; done | sort > ogss
for i in *.cc *.h; do echo "\n\n  __ $i\n"; getstrings < $i; done > ogs
awk '/__/ { file = $2 }
     NF==1 && /^\.?[A-Za-z]+$/ {
       # printf "(find-groffile \"troff/%s\" \"\\\"%s\\\"\")\n", file, $1
       printf "(find-trofs \"%s\" \"%s\")\n", file, $1
     } ' \
  < ogs > ogsa

# (find-groffile "troff/ogs")
# (find-groffile "troff/ogsa")
# (find-fline "/tmp/troff.txt")

# (find-groffile "tmac/tmac.an")

lynx $S/http/www.kohala.com/~rstevens/troff/troff.html

$S/http/plan9.bell-labs.com/7thEdMan/vol2/troff.bun
$S/http/plan9.bell-labs.com/7thEdMan/vol2/trofftut.bun

cd /tmp
rm -Rv troff
mkdir troff
cd /tmp/troff/
sh $S/http/plan9.bell-labs.com/7thEdMan/vol2/troff.bun
# (find-fline "/tmp/troff/")
# (find-fline "/tmp/troff/tprint")
groff -Tascii -me add
groff -Tascii -mm m0
groff -Tascii -me add
groff -Tascii -me add
groff -Tascii -me add
groff -Tascii -me add
groff -Tascii -me add






# (find-fline "~/.zshrc" "heredoc")
# (find-zshfile "")
# (find-zshfile "Src/builtin.c" "to start a new option parse")


strace-to ~/s man -Tascii troff

rm -v /tmp/grotty /tmp/o
cd /tmp/
heredoc grotty -m 0777 <<'---'
#!/bin/sh
tee /tmp/o | /usr/bin/grotty
---
laf


PATH=/tmp:$PATH man -Tascii 2 undocumented > u






strace -f -etrace=open,fork,execve,wait4 -o ~/s man -Tascii 2 undocumented
strace -f -etrace=fork,execve,wait4 -o ~/s man -Tascii 2 undocumented

# (find-fline "~/s")

grep -v '\-1 E' s | egrep -v 'wait4|resume|exited|fork'




#####
#
# debhelper
# 99oct??
#
#####

# (find-vldifile "debhelper.list")
# (find-fline "/usr/doc/debhelper/")

# (find-vldifile "debmake.list")
# (find-fline "/usr/bin/deb-make")
# (find-fline "/usr/lib/deb-make/debians/")
# (find-fline "/usr/doc/debmake/")

# (find-fline "/usr/bin/dh_installdirs")

# (find-fline "/usr/bin/dh_testversion")
#		(eeman "dh_testversion")
# (find-fline "/usr/bin/dh_testdir")
#		(eeman "dh_testdir")
# (find-fline "/usr/bin/dh_testroot")
#		(eeman "dh_testroot")
# (find-fline "/usr/bin/dh_installdocs")
#		(eeman "dh_installdocs")
# (find-fline "/usr/bin/dh_installexamples")
#		(eeman "dh_installexamples")
# (find-fline "/usr/bin/dh_installmenu")
#		(eeman "dh_installmenu")
# (find-fline "/usr/bin/dh_installemacsen")
#		(eeman "dh_installemacsen")
# (find-fline "/usr/bin/dh_installinit")
#		(eeman "dh_installinit")
# (find-fline "/usr/bin/dh_installcron")
#		(eeman "dh_installcron")
# (find-fline "/usr/bin/dh_installmanpages")
#		(eeman "dh_installmanpages")
# (find-fline "/usr/bin/dh_undocumented")
#		(eeman "dh_undocumented")
# (find-fline "/usr/bin/dh_installchangelogs")
#		(eeman "dh_installchangelogs")
# (find-fline "/usr/bin/dh_strip")
#		(eeman "dh_strip")
# (find-fline "/usr/bin/dh_compress")
#		(eeman "dh_compress")
# (find-fline "/usr/bin/dh_fixperms")
#		(eeman "dh_fixperms")
# (find-fline "/usr/bin/dh_suidregister")
#		(eeman "dh_suidregister")
# (find-fline "/usr/bin/dh_installdeb")
#		(eeman "dh_installdeb")
# (find-fline "/usr/bin/dh_shlibdeps")
#		(eeman "dh_shlibdeps")
# (find-fline "/usr/bin/dh_gencontrol")
#		(eeman "dh_gencontrol")
# (find-fline "/usr/bin/dh_makeshlibs")
#		(eeman "dh_makeshlibs")
# (find-fline "/usr/bin/dh_md5sums")
#		(eeman "dh_md5sums")
# (find-fline "/usr/bin/dh_builddeb")
#		(eeman "dh_builddeb")




#####
#
# pgp5i-5.0 (needed for signing packages)
# 99oct??
#
#####

pdsc $SNUDEBIAN/dists/slink/non-US/source/pgp5i_5.0-3.dsc
cd /usr/src/pgp5i-5.0/
debian/rules binary	|& tee odrb

mv -v /usr/src/pgp*deb /usr/src/.debs/
apt-update

apti pgp5i
# (find-vldifile "pgp5i.list")
# (find-fline "/usr/doc/pgp5i/")

man 1 pgpk
man 1 pgps
man 1 pgpv
man 1 pgp5
man 1 pgpe
man 5 pgp.cfg
man 7 pgp-intro
man 7 pgp-integration

pgpk -g

# pass Weisman




######
#
# pgp2.6
# 99oct??
#
######

#  «pgp2.6»

# (find-fline "$SNUDEBIAN/")
# (find-fline "$SNUDEBIAN/ls-lR.i")
# (find-fline "$SNUDEBIAN/indices-non-US/Packages-Master-i386")

# (find-vldifile "pgp-i.list")
# (find-fline "/usr/doc/pgp-i/")

pdsc $SNUDEBIAN/dists/slink/non-US/source/pgp_2.6.3a-4.dsc
cd /usr/src/pgp-2.6.3a/
debian/rules binary	|& tee odrb
# Not ok, so I decided to (oh, no) fetch the binary package.

dpkg -i $SNUDEBIAN/dists/slink/non-US/binary-i386/pgp-i_2.6.3a-4.deb

pgp -kg




#####
#
# mktclapp: making a source debian package
# 99oct??
#
#####

#  «mktclapp_dbp»

rm -Rv /usr/src/mktclapp-3.7.orig/
mkdir /usr/src/mktclapp-3.7.orig/
cd /usr/src/mktclapp-3.7.orig/
tar -xvzf $S/http/www.hwaci.com/sw/mktclapp/mktclapp.tar.gz

rm -Rv /usr/src/mktclapp-3.7/
mkdir /usr/src/mktclapp-3.7/
cd /usr/src/mktclapp-3.7/
tar -xvzf $S/http/www.hwaci.com/sw/mktclapp/mktclapp.tar.gz

cd ~/debian/mktclapp/
cp -dipvR * /usr/src/mktclapp-3.7/
cd /usr/src/mktclapp-3.7/
dpkg-buildpackage

# (find-fline "~/debian/mktclapp/debian/")

# (find-fline "/usr/bin/dpkg-buildpackage")
# (find-fline "/usr/bin/dpkg-buildpackage" 124)




######
#
# lintian
# 99oct??
#
######

#  «lintian»

apti lintian diffstat
# (find-fline "/usr/doc/diffstat/")
# (find-fline "/usr/doc/lintian/")
# (find-vldifile "diffstat.list")
# (find-vldifile "lintian.list")
# (find-fline "/usr/doc/lintian/README" "lintian <something>")

# Must be run as a non-root user.

cd /usr/src/
lintian mktclapp_3.7-1_i386.deb
lintian mktclapp_3.7-1.dsc
lintian mktclapp_3.7-1_i386.changes





######
#
# ?
#
######

# (eeman "dpkg-buildpackage")
# (eeman "dpkg-buildpackage" 208)




#####
#
# Making a manpage via pod
# 99nov03
#
#####

#  «writing_pods»
# (find-es "debiandev" "manpage_via_groff")

# (find-pl5file "pod/")
# (find-pl5file "pod/perlpod.pod")
# (find-fline "~/debian/mktclapp/")
# (find-fline "~/debian/mktclapp/m.1")
# (find-fline "~/debian/mktclapp/m.pod")

# (eeman "perlpod")
# (eeman "pod2man")
# (eeman "1 man" "A manual page consists")
# (find-fline "/usr/man/man3/")
# (eeman "Tcl_Read")

cd ~/debian/mktclapp/
pod2man --section=1 --center="mktclapp" --release="mktclapp 3.7" m.pod \
  > /tmp/m.1 \
  && man2t /tmp/m.1 | l






######
#
# mktclapp-3.8: testing and making the .deb
# 00jan13
#
######

#  «mktclapp-3.8»

rm -Rv /usr/src/mktclapp-3.8/
cd /usr/src/
tar -xvzf $S/http/www.hwaci.com/sw/mktclapp/mktclapp.tar.gz
mv mktclapp mktclapp-3.8
cd /usr/src/mktclapp-3.8/

cd ~/mktclapp-3.8/
cp -dipvR * /usr/src/mktclapp-3.8/

cd /usr/src/mktclapp-3.8/
debian/rules binary	|& tee odrb

mv -v /usr/src/mktclapp_3.8*.deb /usr/src/.debs/
# apti mktclapp
dpkg -i /usr/src/.debs/mktclapp_3.8-1_i386.deb

cd /usr/doc/mktclapp/examples/
sh README




# -ltk -L/usr/X11R6/lib -lX11 -ltcl -lm -ldl


# (find-mtafile "examples/")
# (find-mtafile "examples/README")
# (find-mtafile "examples/Makefile" "factor_.c")
# (find-mtafile "examples/appinit.mta")


# (find-mtafile "")
# (find-fline "~/mktclapp-3.8/")
# (find-fline "~/mktclapp-3.8/mktclapp.pod")
# (find-fline "~/mktclapp-3.8/Makefile" "%.1")
# (find-fline "~/mktclapp-3.8/debian/")
# (find-fline "~/mktclapp-3.8/examples/")
# (find-fline "~/mktclapp-3.8/examples/Makefile" "8.0")
# (find-vldifile "mktclapp.list")
# (find-fline "/usr/doc/mktclapp/")


cd /usr/src/mktclapp-3.8/examples/
make mktclapp.h
mktclapp -notk -extension Factor \
		factor.c  > factor_e.c
make factor_e.o factor.o
gcc -shared -o factor.so factor_e.o factor.o
expect -c '
  load ./factor.so
  factor 12 puts
'




# (find-fline "/usr/doc/packaging-manual/packaging.text.gz")

# (find-vldifile "et.list")
# (find-fline "/usr/doc/et/")
# (find-fline "/usr/doc/et/html/.dhelp")
pdsc /big/slinks1/dists/slink/main/source/devel/et_80b2-8.dsc

# (eeman "dhelp_parse")