Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
####### # # E-scripts on dpkg, .debs, .dscs... # # 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. # An introduction to eev can be found here: # # (find-eev-quick-intro) # http://angg.twu.net/eev-intros/find-eev-quick-intro.html # # 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/dpkg.e> # or at <http://angg.twu.net/e/dpkg.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/>. # ####### # «.var_lib_dpkg_info» (to "var_lib_dpkg_info") # «.grep-debian-docs» (to "grep-debian-docs") # «.dpkg.source» (to "dpkg.source") # «.cmpversions.c» (to "cmpversions.c") # «.grep-dctrl» (to "grep-dctrl") # «.sizeofinstalleddebs» (to "sizeofinstalleddebs") # «.installeddebs» (to "installeddebs") # «.pfilenames» (to "pfilenames") # «.build-depends_via_chroot» (to "build-depends_via_chroot") # «.testing-.debs» (to "testing-.debs") # «.all-installed-.debs» (to "all-installed-.debs") # «.potatocd-2000jun06» (to "potatocd-2000jun06") # «.dpkg» (to "dpkg") # «.install-info» (to "install-info") # «.dpkg:alternatives» (to "dpkg:alternatives") # «.dpkg:diversions» (to "dpkg:diversions") # «.dpkg:debversions» (to "dpkg:debversions") # «.dpkg:configscripts» (to "dpkg:configscripts") # «.dpkg-dev» (to "dpkg-dev") # «.dpkg-multicd» (to "dpkg-multicd") # «..disk/info» (to ".disk/info") # «.Packages.cd» (to "Packages.cd") # «.Contents-i386» (to "Contents-i386") # «.mkcontents» (to "mkcontents") # «.local_apt_repository» (to "local_apt_repository") # «.empty_packages» (to "empty_packages") # «.dpkg-checkbuilddeps» (to "dpkg-checkbuilddeps") # «.dpkg-query» (to "dpkg-query") ##### # # pdsc # 2001jan17 # ##### # (find-angg ".zshrc" "pdsc") # (find-es "bash" "pdsc") # (eeman "1 dpkg-source") # (find-fline "/usr/bin/dpkg-source/") ##### # # /var/lib/dpkg/info/ # 2001jan17 # ##### # «var_lib_dpkg_info» (to ".var_lib_dpkg_info") #* # The files there have very few extensions: cd /var/lib/dpkg/info/ 'ls' | awk -F . '{print $NF}' | sort | uniq | tee ~/o # conffiles config list md5sums postinst postrm preinst prerm shlibs # templates # (find-fline "/usr/doc/debconf/specification.txt.gz") # (find-efile "") #* l *.conffiles l *.config l *.copyright l *.shlibs l *.templates l *.list l *.md5sums l *.postinst l *.postrm l *.preinst l *.prerm #* ##### # # greeping the main debian docs # 2001jan17 # ##### # «grep-debian-docs» (to ".grep-debian-docs") # (find-status "task-debian-devel") # (find-status "emacsen-common") # (find-vldifile "emacsen-common.list") # (find-fline "/usr/doc/emacsen-common/") # (find-status "doc-debian") # (find-vldifile "doc-debian.list") # (find-fline "/usr/doc/debian/") #* rm -Rv /tmp/debdocs/ mkdir /tmp/debdocs/ cp -iv \ /usr/doc/debian-policy/fhs/fhs.txt.gz \ /usr/doc/debian-policy/fsstnd/fsstnd-1.2.txt.gz \ /usr/doc/debian-policy/menu-policy.text.gz \ /usr/doc/debian-policy/mime-policy.text.gz \ /usr/doc/debian-policy/policy.text.gz \ /usr/doc/debian-policy/proposal.text.gz \ /usr/doc/debian-policy/upgrading-checklist.text.gz \ /usr/doc/debian-policy/virtual-package-names-list.text.gz \ /usr/doc/debian/FAQ/debian-faq.txt.gz \ /usr/doc/developers-reference/developers-reference.txt.gz \ /usr/doc/emacsen-common/debian-emacs-policy.gz \ /usr/doc/maint-guide/maint-guide.txt.gz \ /usr/doc/packaging-manual/packaging.text.gz \ /tmp/debdocs/ cd /tmp/debdocs/ gzip -dv *.gz # (find-fline "/tmp/debdocs/") # Now we can grep all that. #* ##### # # dpkg source # 2000nov26 # ##### # «dpkg.source» (to ".dpkg.source") #* pdsc $SDEBIAN/dists/potato/main/source/base/dpkg_1.6.14.dsc cd /usr/src/dpkg-1.6.14/ find * -name '*.[ch]' > .files.ch etags $(<.files.ch) # (find-dpkgfile "configure.in" "CFLAGS=\"-D_REENTRANT -D_GNU_SOURCE -O2\"") patch -b -p0 configure.in <<'%%%' 115c115,116 < CFLAGS="-D_REENTRANT -D_GNU_SOURCE -O2" --- > #CFLAGS="-D_REENTRANT -D_GNU_SOURCE -O2" > CFLAGS="-D_REENTRANT -D_GNU_SOURCE -g -pg" %%% autoconf #debian/rules binary |& tee odrb LDFLAGS=-pg debian/rules binary-dpkg |& tee odrb # I get an dpkg-deb error about the permissions of a dir, but that is # irrelevant for my purposes now (that are just to recompile with -g) #find * -perm +0111 #* # (find-es "crim" "gprof") # (find-node "(gprof)Call Graph") # (find-dpkgfile "INSTALL" "LDFLAGS") # (find-dpkgfile "Makefile.conf.in") # (find-dpkgfile "configure") cd /usr/src/dpkg-1.6.14/build/main/ ./dpkg --compare-versions foo-3.21.deb le foo-3.2.deb #laf gmon.out gprof dpkg > o gprof -b dpkg > o-b # (find-node "(binutils)nm") nm -As *.o > o.nm grep -i ' T ' o.nm > o.nm- # (find-dpkgfile "build/main/") #* # (gdbk-gdb t ee-dpkgdir "build/main/dpkg") set args --compare-versions foo-3.21.deb le foo-3.2.deb br main br cmpversions run #* # (find-dpkgfile "") # (find-dpkgfile "debian/") # (find-dpkgfile "debian/rules") # (find-dpkgfile "odrb") dpkg --compare-versions foo-3.21.deb le foo-3.2.deb ##### # # cmpversions.c (with functions stolen from dpkg) # 2001mar03 # ##### # «cmpversions.c» (to ".cmpversions.c") #* # (find-fline "~/LUA/cmpversions.c") cd ~/LUA gcc -I/usr/src/dpkg-1.6.14/{include,build{,/include}} \ -g -o cmpversions cmpversions.c false echo $? ./cmpversions foo-3.21.deb le foo-3.2.deb echo $? true echo $? ./cmpversions foo-3.21.deb ge foo-3.2.deb echo $? #./cmpversions foo-3.21.deb mmm!! foo-3.2.deb #* cd ~/LUA/ etags cmpversions.c # (code-c-d "cmpv" "~/LUA/") # (find-cmpvtag "main") #* cd ~/LUA/ cflow -I/usr/src/dpkg-1.6.14/{include,build{,/include}} cmpversions.c \ |& tee ~/o # (find-fline "~/o") #* ##### # # grep-dctrl # 2000jun05 # ##### # «grep-dctrl» (to ".grep-dctrl") # (find-status "grep-dctrl") # (find-vldifile "grep-dctrl.list") # (find-fline "/usr/doc/grep-dctrl/") # (find-man "1 grep-dctrl") # (find-man "1 grep-status") # (find-man "1 grep-available") # (find-fline "/etc/grep-dctrl.rc") # (find-fline "/var/lib/dpkg/status") # (find-packhw3 "ch-versions.html" "epoch") grep-dctrl scheme \ /big/potato/dists/potato/{main,contrib,non-free}/binary-i386/Packages \ $SNUDEBIAN/dists/potato/non-US/main/binary-i386/Packages grep-status -F Status ' installed' grep-available -F Package -X 'a2ps' grep-available -F Package -r 'a2ps\|acroread\|adduser' grep-available -F Package -e 'a2ps|acroread|adduser' grep-available -F Package -e '^a2ps$' grep-available -F Package -e '^(a2ps|acroread|adduser)$' # «sizeofinstalleddebs» (to ".sizeofinstalleddebs") # (written in 2002dec01) # # ~/o - a list with the names of all installed packages: (find-fline "~/o") # ~/o2 - a big regexp # ~/o3 - an abridged version of /var/lib/dpkg/available that lists only the # installed packages: (find-fline "~/o3") # ~/o4 - a list of the packages in ~/o3, for comparison # ~/o5 - a list with the "Size:"s of the installed packages # grep-status -s Package -n -F Status ' installed' | sort | tee ~/o cat ~/o \ | expect -c ' regsub -all {([.+])} [join [read stdin] "|"] {\\\1} re puts $re ' \ | tee ~/o2 grep-available -F Package -e '^('$(cat ~/o2)')$' | tee ~/o3 cat ~/o3 | grep-dctrl -s Package -n '' | sort | tee ~/o4 diff ~/o ~/o4 cat ~/o3 | grep-dctrl -s Size -n '' | tee ~/o5 cat ~/o5 | awk '{total+=$1} END {print total}' cat ~/o5 | gawk ' BEGIN { mask = 4095 } { total += and($1, mask) ? or($1,mask)+1 : $1 } END { print total } ' #* # «installeddebs» (to ".installeddebs") # (find-angg ".zshrc" "installeddebs") grep-status -F Status ' installed' -s Package,Version cat /var/lib/dpkg/status | installeddebs_ | sort installeddebs | sort #* # (find-node "(gawk)Other Arguments") # (find-fline "/var/state/apt/lists/") # (find-angg ".zshrc" "installeddebs") cd /var/state/apt/lists cat 127.0.0.1_debian_dists_potato_contrib_binary-i386_Packages \ | grep-dctrl . -s Filename \ | awk '{print PREFIX $2}' PREFIX=main/ #* # «pfilenames» (to ".pfilenames") function pfilenames () { grep-dctrl . -s Filename | awk '{print PREFIX $2}' PREFIX=$1 } cd /var/state/apt/lists cat 127.0.0.1*potato_contrib*Packages | pfilenames contrib/ #* cd $SSECDEBIAN/ cat dists/potato/updates/main/binary-i386/Packages \ | pfilenames #* ##### # # Checking build depends using chroot # 2000dec02 # ##### # «build-depends_via_chroot» (to ".build-depends_via_chroot") # (find-deblistsw3 "debian-devel-9912/msg00160.html") # (find-fline "/etc/apt/") #* rm -Rv /tmp/debian/ mkdir /tmp/debian/ cd /tmp/debian/ tar -xvzf /hdd6/potatobin1/dists/potato/main/disks-i386/2.2.16-2000-07-14/base2_2.tgz # (find-es "apache" "apt-http-local") cat > etc/apt/sources.list <<'---' deb http://127.0.0.1/debian potato main contrib --- touch etc/resolv.conf # (find-angg "EXPECT/eeg") cat > $EEG <<'---' apt-get update dpkg --purge lilo yes '' | apt-get -y install dpkg-dev yes '' | apt-get -y install build-essential --- eeg chroot `pwd` bin/sh # Done. #* ##### # # Testing .debs # 2000jun20 # ##### # «testing-.debs» (to ".testing-.debs") # (eeman "5 deb") # This is not absolutely perfect, but should work in most cases. cd $SPOTATO/ for i in $(find * -name '*.deb'); do echo $i; ar -p $i data.tar.gz | gzip -t done ##### # # Find the files corresponding to the installed .debs # 2000jun06 # ##### # «all-installed-.debs» (to ".all-installed-.debs") # Show the names of the .debs # of all installed packages: #* grep-status --show-field=Package,Version --field=Status ' installed' \ | perl -nle ' m/Package: (.*)/ and $s = $1; m/Version: ([0-9]+:)?(.*)/ and print "$s", "_$2.deb"; ' \ | sort \ | tee ~/oinstalleddebs #* # Prepare the corresponding fgrep # patterns. We don't care about versions now. # No quoting or backslashing is needed: # (eeman "fgrep" "-F, --fixed-strings") cat ~/oinstalleddebs \ | perl -nle ' m:([^ /_]+)_.*deb: && print "/$1_" ' \ | sort \ | tee ~/oinstdebs-fstems # Find all .deb files that have the # same stems as installed packages: find /big/potato $SDEBIAN /usr/src/.debs/ -type f \ | grep '\.deb$' \ | fgrep -f ~/oinstdebs-fstems \ | tee ~/oinstdebs-fnames # Which stems correspond to more than one file? # Take the stems of all the files with the same # stems as installed packages... cat ~/oinstdebs-fnames \ | perl -nle ' m:([^ /_]+)_.*deb: && print "/$1_" ' \ | sort \ | tee ~/oinstdebs-fnames-stems # and list those with repetitions... uniq -d ~/oinstdebs-fnames-stems \ | uniq # and those which are unique. uniq -u ~/oinstdebs-fnames-stems # Another way to go: check which of the installed packages come from # my (out of date) potato mirror and which do now. Now we do check the # versions. ##### # # Prepare the files for a potato CD # 2000jun06 # ##### # «potatocd-2000jun06» (to ".potatocd-2000jun06") # (find-fline "~/opotato") # (find-fline "~/ononpotato") # /potatocd is a symlink to I-don't-remember-where. # Don't delete it! rm -Rv /potatocd/* cd /potatocd/ mkdir -p dists/potato/ ln -s potato dists/stable ln -s potato dists/frozen ln -s potato dists/unstable ln -s potato dists/slink cd /potatocd/dists/potato/ mkdir -p contrib/binary-i386/ mkdir -p main/binary-i386/ mkdir -p non-free/binary-i386/ ln -s binary-i386 contrib/binary-all ln -s binary-i386 main/binary-all ln -s binary-i386 non-free/binary-all cd /potatocd/ mkdir big ln -s .. big/potato mkdir -p snarf/ftp/ftp.debian.org/debian/ ln -s ../../../../dists snarf/ftp/ftp.debian.org/debian/dists cd /potatocd/ for i in $(cut -b2- < ~/opotato); do echo $i mkdir -p $(dirname $i) done for i in $(cut -b2- < ~/opotato); do cp -ipv /$i /potatocd/$i done # Note that the debs I compile are generated by default with an ending # like _i386.deb or _all.deb. We remove that before copying... # rm -Rv /potatocd/dists/potato/local/binary-i386/ mkdir -p /potatocd/dists/potato/local/binary-i386/devel/ cd /usr/src/.debs/ for i in \ glimpse_4.1-2.deb \ ircii_4.4M-1.deb \ libssl09-dev_0.9.4-5.deb \ libssl09_0.9.4-5.deb \ mktclapp_3.9-1.deb \ openssl_0.9.4-5.deb \ ssh-askpass_0.99-1.deb \ ssh_1.2.2-1.4.deb \ ssleay_0.9.4-5.deb \ wget_1.5.3-3edrx.deb \ ; do cp -iv $(basename $i .deb)*.deb \ /potatocd/dists/potato/local/binary-i386/devel/$i done # (find-fline "$SDEBIAN/ls-lR.i") cd /potatocd/ for i in contrib main non-free local; do echo $i dpkg-scanpackages dists/potato/$i/binary-i386 /dev/null \ > dists/potato/$i/binary-i386/Packages gzip -c9 < dists/potato/$i/binary-i386/Packages \ > dists/potato/$i/binary-i386/Packages.gz done cd /potato/dists/potato/main/ cp -diPpvR disks-i386/ /potatocd/dists/potato/main/ cd /potato/dists/potato/ find | grep Release cp -diPpvR $(find | grep Release) /potatocd/dists/potato/ cp -ipv $SDEBIAN/dists/potato/Contents-i386.gz /potatocd/dists/potato/ cp -ipv $S/http/panic.et.tudelft.nl/~costar/potato/.cd_readme_temp/README.txt \ /potatocd/ # My page (i.e., all my public stuff) rm /tmp/page.tgz; cd; make -f ~/TH/Makefile /tmp/page.tgz cp -iv /tmp/page.tgz /potatocd/ # (find-fline "/potatocd/") # (find-fline "/potatocd/dists/potato/main/disks-i386/current/") cd /potatocd/ mkdir boot/ mkisofs -r -J -V "Potato bin 1 (Edrx 00jul14)" \ -b dists/potato/main/disks-i386/2.2.13-2000-05-04/images-2.88/udma66/rescue.bin \ -c boot/boot.catalog \ -o /tmp/potato.iso . \ |& tee ~/o # Things to correct: the TRANS.TBLs are visible; I forgot the "tools" # directory, the dos622 images, 4dos, pkzip, qedit and list. Also: no # sources, no locz cgis or database dumps. # Make the image. Dangerous! $$$ -> /dev/null! # (find-es "hw-cdrw" "cdrecord") /etc/init.d/cron stop cdrecord -scanbus cdrecord -dummy dev=0,0,0 -v /tmp/potato.iso cdrecord dev=0,0,0 -v /tmp/potato.iso /etc/init.d/cron start # This is just to check (visually) what can be missing. # # (find-es "potatocds" "potato-i386-...-list") # (find-fline "~/POTATO/rsync/129.13.126.5/debian-cd/potato-i386-1.raw.list") grep -v '\.deb$' ~/POTATO/rsync/129.13.126.5/debian-cd/potato-i386-1.raw.list \ | tee ~/o # (find-fline "~/o") # (find-fline "~/tmp/") ##### # # dpkg # 2000jun14 # ##### # «dpkg» (to ".dpkg") # (find-status "dpkg") # (find-vldifile "dpkg.list") # (find-fline "/usr/doc/dpkg/") # (find-fline "/usr/share/doc/dpkg") # (find-fline "/usr/share/doc/dpkg/THANKS.gz") # (find-fline "/usr/share/doc/dpkg/TODO.gz") # (find-fline "/usr/share/doc/dpkg/changelog.gz") # (find-fline "/usr/share/doc/dpkg/changelog.Debian.gz") # (find-fline "/usr/share/doc/dpkg/copyright") # (eeman "1 md5sum") # (eeman "1 dpkg-deb") # (eeman "8 dpkg-split") # (eeman "8 dpkg") # (eeman "8 dselect") # (find-fline "/usr/lib/dpkg/") # (find-fline "/usr/lib/dpkg/mksplit") # (find-fline "/usr/lib/dpkg/methods/") # (find-fline "/usr/lib/dpkg/methods/disk/") # (find-fline "/usr/lib/dpkg/methods/disk/setup") # (find-fline "/usr/lib/dpkg/methods/disk/update") # (find-fline "/usr/lib/dpkg/methods/disk/install") # (find-fline "/usr/lib/dpkg/methods/disk/names") # (find-fline "/usr/lib/dpkg/methods/disk/desc.cdrom") # (find-fline "/usr/lib/dpkg/methods/disk/desc.nfs") # (find-fline "/usr/lib/dpkg/methods/disk/desc.harddisk") # (find-fline "/usr/lib/dpkg/methods/disk/desc.mounted") # (find-fline "/usr/lib/dpkg/methods/floppy/") # (find-fline "/usr/lib/dpkg/methods/floppy/setup") # (find-fline "/usr/lib/dpkg/methods/floppy/update") # (find-fline "/usr/lib/dpkg/methods/floppy/install") # (find-fline "/usr/lib/dpkg/methods/floppy/names") # (find-fline "/usr/lib/dpkg/methods/floppy/desc.floppy") # (eeman "8 update-rc.d") # (find-fline "/usr/sbin/update-rc.d") # (eeman "8 start-stop-daemon") # (find-fline "/sbin/start-stop-daemon") # (find-status "dpkg-doc") # (find-vldifile "dpkg-doc.list") # (find-fline "/usr/doc/dpkg-doc/") ##### # # install-info / ginstall-info # 2000jun14 / 2012apr20 / 2019aug11 # ##### # «install-info» (to ".install-info") # (find-sh "apt-file search install-info") # 2012apr20: # (find-status "install-info") # (find-vldifile "install-info.list") # (find-udfile "install-info/") # (find-fline "/usr/bin/install-info") # (find-fline "/usr/bin/ginstall-info") # (find-fline "/usr/sbin/update-info-dir") # (find-udfile "install-info/AUTHORS") # (find-udfile "install-info/INTRODUCTION") # (find-udfile "install-info/NEWS.gz") # (find-udfile "install-info/README.gz") # (find-udfile "install-info/README.source") # (find-udfile "install-info/TODO.gz") # (find-udfile "install-info/changelog.Debian.gz") # (find-udfile "install-info/changelog.gz") # (find-udfile "install-info/copyright") # (find-man "8 update-info-dir") # (find-man "1 ginstall-info") # (find-man "1 install-info") # (find-es "bash" "bash-3.1-info") # (find-vldifile "zsh-doc.postinst" "install-info --section Shells Shells") # (find-vldigrep "grep -nH -e install-info *inst") # (find-node "(dir)Top" "ZSH") # (find-fline "/usr/share/info/zsh.info.gz") # (find-fline "/usr/share/info/zsh.info.gz" "START-INFO-DIR-ENTRY") # (find-man "8 install-info") # (find-man "8 install-info" "--section regexp title") # (find-fline "/usr/sbin/install-info") # (find-fline "/usr/sbin/install-info" "$infodir='/usr/info';") # (find-fline "/usr/info/" "dir") # (find-fline "/usr/info/dir") # (find-fline "/usr/share/info/" "dir") # (find-fline "/usr/share/info/dir.gz") # (find-vldifile "dpkg.list") # (find-dpolfile "fhs/fhs.txt.gz" "GNU Info system's primary directory") #* cd /var/lib/dpkg/info/ agrep -l install-info *inst* | tee ~/o mycat $(<~/o) > ~/o2 cat ~/o2 \ | perl -e 'undef $/; $_ = <>; s/\\\n//g; print' \ | grep install-info \ | tee ~/o3 # (find-es "make" "makefile_toposort") cat ~/o \ | perl -nle 'print "# (find-vldifile \"$_\" \"install-info\")"' \ | tee ~/o4 # (find-fline "~/o2") # (find-fline "~/o3") # (find-fline "~/o4") # (find-vldifile "emacs20.postinst" "install-info") # (find-vldifile "emacsen-common.postinst" "install-info") # install-info --quiet --section Emacs Emacs /usr/share/info/${file}.gz || true # install-info --remove emacs > /dev/null 2>&1 #* # (eeman "8 cleanup-info") # (find-fline "/usr/sbin/cleanup-info") # (find-vldifile "dpkg.postinst" "maintain the /usr/info/dir file") ##### # # dpkg and alternatives # 2000jun14 # ##### # «dpkg:alternatives» (to ".dpkg:alternatives") * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) update-alternatives --help update-alternatives --list vncserver # (find-man "8 update-alternatives") # (find-fline "/etc/alternatives/") # (find-fline "/etc/alternatives/README") # (find-fline "/usr/sbin/update-alternatives") # (find-fline "/usr/sbin/update-alternatives" "yourself") # (find-fline "/usr/sbin/update-alternatives" "return to automatic") # (find-fline "/var/lib/dpkg/alternatives/") cd /var/lib/dpkg/info/ agrep update-alternatives * agrep -l update-alternatives * \ | perl -nle 'print "# (find-vldifile \"$_\" \"update-alternatives\")"' \ > ~/o # (find-fline "~/o") # (find-debfaqhw3 "debian-faq-12.html#ss12.10") # (find-debfaqhw3 "debian-faq-7.html#ss7.8") # (find-dpolfile "virtual-package-names-list.text.gz") # (find-packfile "packaging.text.gz" '* 2 "`update-alternatives'") # Old notes: update-alternatives --display wish update-alternatives --display '*' # (perldb "perl /usr/sbin/update-alternatives --display wish") # (find-fline "/etc/alternatives/") # (find-fline "/var/lib/dpkg/alternatives/") cd /etc/alternatives/ for i in *; do echo; update-alternatives --display $i; done # (find-vldifile "tkstep8.0.postinst") # (find-vldifile "tkstep8.0.postrm") # (eeman "update-alternatives") update-alternatives --remove wish /usr/bin/wishstep8.0 laf /usr/bin/wish* /etc/alternatives/wish* ###### # # dpkg: diversions # 2000jun14 # ###### # «dpkg:diversions» (to ".dpkg:diversions") # (find-packfile "packaging.text.gz" "11. Diversions") # (find-packhw3 "ch-diversions.html") # (eeman "8 dpkg-divert") # (find-fline "/usr/sbin/dpkg-divert") # (find-status "debmake") # (find-vldifile "debmake.list") # (find-fline "/usr/share/debmake/debian/diversions.ex") # (find-fline "/var/lib/dpkg/diversions") # (find-fline "/var/lib/dpkg/diversions-old") cd /var/lib/dpkg/info/ agrep diversions * agrep -l diversions * \ | perl -nle 'print "# (find-vldifile \"$_\" \"diversions\")"' \ > ~/o # (find-fline "~/o") # (find-es "hurd" "dpkg-cross") ##### # # version numbers of .debs # 2000apr01 # ##### # «dpkg:debversions» (to ".dpkg:debversions") # (find-angg "LUA/apt-move.lua" "debversions") (defun find-pmt (pos-spec) (find-fline "/usr/doc/packaging-manual/packaging.text.gz" pos-spec)) # (find-pmt "5. Version numbering") # (find-pmt "<debian-revision>\n") # (find-pmt "compared lexically") # (find-pmt "--compare-versions") # (find-man "1 dpkg" "--compare-versions") dpkg --help |& tee ~/o # (find-fline "~/o" "Comparison operators") dpkg --compare-versions foo-3.21.deb le foo-3.2.deb dpkg --compare-versions foo-3.21.deb ge foo-3.2.deb function dcv () { if dpkg --compare-versions $1 lt $2; then echo " $1 < $2" elif dpkg --compare-versions $1 eq $2; then echo " $1 = $2" else echo " $1 > $2" fi } dcv foo.deb foo-3.1.deb dcv foo-3.1.deb foo.deb dcv foo-3.1.deb foo-3.2.deb dcv foo-3.21.deb foo-3.2.deb dcv foo_3.2.deb foo_3.2-1.deb dcv foo_3.2-1.deb foo_3.2.deb dcv foo_3.2-1.deb foo_3.2-2.deb dcv foo_3.2-1.deb foo_3.2-1edrx.deb dcv foo_3.2-1edrx.deb foo_3.2-1.deb # Epochs (?): Pgrepp 'm/age: libgtk/' |& l ##### # # Lua functions to compare versions of debs # 2001may09 # ##### # (find-es "lua" "debversions_lua") (defun find-pmt (pos-spec) (find-fline "/usr/doc/packaging-manual/packaging.text.gz" pos-spec)) # (find-pmt "5. Version numbering") # (find-pmt "<debian-revision>\n") # (find-pmt "compared lexically") # (find-pmt "--compare-versions") # (eeman "dpkg" "--compare-versions") (find-packfile "packaging.text.gz" "5. Version numbering") ##### # # how dpkg configures packages (exim) # ##### # «dpkg:configscripts» (to ".dpkg:configscripts") # (find-es "debian" "smail_config") # (eeman "dpkg" "dpkg --configure package") # (find-vldifile "" "exim") # (find-vldifile "exim.list") # (find-fline "/usr/doc/exim/") # (find-vldifile "exim.conffiles") # (find-vldifile "exim.preinst") # (find-vldifile "exim.postinst") # (find-vldifile "exim.prerm") # (find-vldifile "exim.postrm") # (find-fline "/usr/doc/exim/example.conf.gz") # (find-fline "/etc/exim.conf") # (find-fline "/etc/exim.conf" "local_domains =") # (find-fline "/etc/exim.conf" "never_users =") # (find-fline "/etc/exim.conf" "host_lookup =") # (eeman "exim" "Domains required") # (find-fline "/etc/init.d/exim") # (find-fline "/usr/doc/exim/spec.txt.gz" " 3. HOW EXIM DELIVERS MAIL") /etc/init.d/exim restart mail -s `date +%T` edrx <<'---' baaaar --- mail -s `date +%T` edrx@localhost <<'---' baaaarl --- sleep 1 find /var/spool/ # (find-fline "/o/etc/smail/") # (find-fline "/etc/smail/") # (find-fline "/etc/smail/config") # (find-vldifile "deliver.list") # (find-fline "/usr/doc/deliver/") # (find-vldifile "" "deliver") mail -s `date +%T` [email protected] <<'---' blaaa --- date +%T | mail -s `date +%T` [email protected] ##### # # dpkg-dev # 2000jun05 # ##### # «dpkg-dev» (to ".dpkg-dev") # (find-status "dpkg-dev") # (find-vldifile "dpkg-dev.list") # (find-fline "/usr/doc/dpkg-dev/") # (eeman "1 822-date") # (eeman "1 dpkg-architecture") # (eeman "1 dpkg-buildpackage") # (eeman "1 dpkg-distaddfile") # (eeman "1 dpkg-genchanges") # (eeman "1 dpkg-gencontrol") # (eeman "1 dpkg-shlibdeps") # (eeman "1 dpkg-name") # (eeman "1 dpkg-source") # (eeman "1 dpkg-parsechangelog") # (eeman "5 deb-old") # (eeman "5 deb") # (eeman "5 deb-control") # (eeman "8 dpkg-scanpackages") # (eeman "8 dpkg-scansources") # (find-fline "/usr/bin/dpkg-name") # (find-fline "/usr/bin/dpkg-source") # (find-fline "/usr/bin/dpkg-genchanges") # (find-fline "/usr/bin/dpkg-gencontrol") # (find-fline "/usr/bin/dpkg-shlibdeps") # (find-fline "/usr/bin/dpkg-buildpackage") # (find-fline "/usr/bin/dpkg-distaddfile") # (find-fline "/usr/bin/822-date") # (find-fline "/usr/bin/dpkg-scanpackages") # (find-fline "/usr/bin/dpkg-scansources") # (find-fline "/usr/bin/dpkg-architecture") # (find-fline "/usr/bin/dpkg-parsechangelog") ##### # # dpkg-multicd # 2000jun05 # ##### # «dpkg-multicd» (to ".dpkg-multicd") # «.disk/info» (to "..disk/info") # «Packages.cd» (to ".Packages.cd") # (find-status "dpkg-multicd") # (find-vldifile "dpkg-multicd.list") # (find-fline "/usr/doc/dpkg-multicd/") # (find-fline "/usr/doc/dpkg-multicd/readme.txt.gz") # (find-fline "/usr/lib/dpkg/methods/multicd/") # (find-fline "/usr/bin/dpkg-scanpackages") # (find-udfile "dpkg-multicd/readme.txt.gz" "dpkg-scanpackages -m") # (find-udfile "dpkg-multicd/readme.txt.gz" "cannot use regular `Packages'") # (find-udfile "dpkg-multicd/readme.txt.gz" "`.disk/info'") ##### # # Generating the "Contents" file with mkcontents # 2000sep09 # ##### # «Contents-i386» (to ".Contents-i386") # «mkcontents» (to ".mkcontents") # (find-fline "$SPOTATO/Contents-i386") # (find-fline "~/SLINK/Contents-i386") # The mkcontents script seems to be only available by cvs... here's # how to get it, following a hint given by Michael Beattie # ([email protected]) in debian-mentors, on 2000sep09: #* # rm -Rv ~/CVS/ftpmaint/ mkdir ~/CVS/ftpmaint/ cd ~/CVS/ftpmaint/ export CVSROOT=:pserver:[email protected]:/cvs/ftpmaint cvs login cvs co masterfiles cd masterfiles #* # (find-fline "~/CVS/ftpmaint/masterfiles/") # (find-fline "~/CVS/ftpmaint/masterfiles/mkcontents") ##### # # dbuild # ##### # (find-vldifile "dbuild.list") # (find-fline "/usr/doc/dbuild/") # (eeman "dbuild") # (eeman "run-dbuild") # (find-fline "/usr/bin/dbuild") # (find-fline "/usr/bin/run-dbuild") ##### # # An apt repository for locally-compiled packages # 2001jan17 # ##### # «local_apt_repository» (to ".local_apt_repository") # (eeman "5 sources.list") # (find-fline "/etc/apt/sources.list") # (find-angg ".zshrc" "apt") #deb file:/usr/src/.debs potato local #deb-src file:/usr/src/.debs potato local #* # Get help: dpkg-scanpackages |& tee ~/o # (find-fline "~/o") # (find-fline "/usr/bin/dpkg-scanpackages" "Usage:") # Usage: dpkg-scanpackages [-m medium] binarypath overridefile pathprefix # e.g. dpkg-scanpackages -m 'Debian GNU/Linux binary-i386' \ # binary-i386 /pub/debian/indices/override.hamm.gz \ # dists/stable/ > binary-i386/Packages #* # This was cleaned up (?) and put in a shell function: # (find-angg ".zshrc" "apt") cd /usr/src/.debs/ rm -Rv dists/ ( D=dists/potato/local DB=$D/binary-i386 mkdir -p $DB cp -liv *.deb $DB dpkg-scanpackages $DB /dev/null '' \ | tee $DB/Packages \ | gzip -c6 > $DB/Packages.gz DS=$D/source mkdir -p $DS cp -liv /usr/src/.dscs/*.dsc $DB cp -liv /usr/src/.dscs/*.gz $DB cp -liv /usr/src/.dscs/*.changes $DB dpkg-scansources $D \ | tee $DS/Sources \ | gzip -c9 > $DS/Sources.gz ) #* # Here's the typical way to use that: aptu-local-i386 apt-get update #* # Test the source repository: # (eeman "8 apt-get" "--build") # (eeman "8 dpkg-scansources") # (find-fline "/usr/bin/dpkg-scansources") # (find-fline "/usr/bin/dpkg-source") # (find-angg ".zshrc" "apt") rm -Rv /tmp/mkt/ mkdir /tmp/mkt/ cd /tmp/mkt/ # apt-get source mktclapp apt-get source --build mktclapp |& tee oagsb laf #* <apt> markybob wants you to know: If you have problems adding unofficial sites to sources.list, try "deb URL ./" or 'man 5 sources.list' or potato: 'deb http://http.us.debian.org/debian potato main contrib non-free' or potato non-us: 'deb http://non-US.debian.org/debian-non-US potato/non-US main contrib non-free', but a pretty neat sources.list is http://www.debian.org/~edlang/sources.list, or use apt-setup in package base-config to configure your sources.list # (find-shttpw3 "www.debian.org/~edlang/sources.list") ##### # # creating empty packages # 2001jun17 # ##### # «empty_packages» (to ".empty_packages") # (find-status "pciutils") #* rm -Rv /tmp/luadeb/ mkdir /tmp/luadeb/ cd /tmp/luadeb/ # ar x /usr/src/lua_4.0-0_i386.deb ar x /tmp/lua_4.0-0_i386.deb mkdir control tar -xzf control.tar.gz -C control/ mkdir data tar -xzf data.tar.gz -C data/ # (find-luafile "debian/tmp-lua/DEBIAN/") # (find-luafile "debian/tmp-lua/DEBIAN/control") # (find-status "lua") #* rm -Rv /tmp/luaemptydeb/ mkdir /tmp/luaemptydeb/ cd /tmp/luaemptydeb/ mkdir -p debian/tmp-lua/DEBIAN/ cp -v /usr/src/lua-4.0/debian/tmp-lua/DEBIAN/control debian/tmp-lua/DEBIAN/ # strace-to ~/s dpkg-gencontrol -isp -plua -Pdebian/tmp-lua dpkg-deb --build debian/tmp-lua .. #* rm -Rv /tmp/emptys/ mkdir -p /tmp/emptys/tmp/DEBIAN/ cd /tmp/emptys/ cat > tmp/DEBIAN/control <<'---' Package: jvim-doc Priority: extra Section: doc Installed-Size: 323 Maintainer: Teruyuki Morimura <[email protected]> Architecture: all Source: jvim Version: 3.0-2.0-2 Recommends: jvim-canna Filename: dists/frozen/main/binary-i386/doc/jvim-doc_3.0-2.0-2.deb Size: 242002 MD5sum: 5f5b56736560057bd7f58f2a193a690c Description: Documentation for Japanized VIM JVIM 3.0 is Japanized VIM (VI cron editor) by K.Tsuchida <[email protected]> on Jan 1, 2000 (patch version 2.0). --- dpkg-deb --build tmp . find laf #* # (find-fline "/tmp/pciutils/") # (find-luafile "odbp" "dpkg-gencontrol") # (eeman "dpkg-gencontrol") # (eeman "5 deb") # (find-fline "/usr/doc/packaging-manual/packaging.text.gz") # (find-packfile "packaging.text.gz") # (find-packfile "packaging.text.gz" "2.2. Package control information files") # (find-packfile "packaging.text.gz" "2.3. The main control") perl -nle 'm/^([A-Z][^:]*:)/ && print $1' < /var/lib/dpkg/status | sort | uniq The fields in binary package control files are: * `Package' (mandatory) * `Version' (mandatory) * `Architecture' (mandatory) [1] [1] This field should appear in all packages, though `dpkg' doesn't require it yet so that old packages can still be installed. * `Depends', `Provides' et al. * `Essential' * `Maintainer' * `Section', `Priority' * `Source' * `Description' * `Installed-Size' # (find-status "lua") # (find-vldifile "lua.list") # (find-fline "/usr/doc/lua/") # (find-fline "/var/lib/dpkg/status") # (find-fline "/var/lib/dpkg/available") Package: Version: Architecture: i386 (must add by hand cause vldistatus doesn't have it) Conflicts: Depends: Pre-Depends: Provides: Recommends: Replaces: Suggests: Essential: Maintainer: Section: Priority: Source: Description: Installed-Size: meta-package: strre_field = "([A-Zm][A-Za-z]+):([^\n]*)\n( [^\n]*\n)*" strre_package = "([A-Zm ][^\n]*\n)+\n" strre_field = "^([A-Zm][A-Za-z]+):([^\n]*)$" re_package = regex(strre_package) re_field = regex(strre_field) # (find-node "(lua)read") Conffiles: Config-Version: Maintainer: Status: ##### # # dpkg-checkbuilddeps # 2007jun25 # ##### # «dpkg-checkbuilddeps» (to ".dpkg-checkbuilddeps") # When doing: # cd ~/usrc/scite/scite-1.71/ # dpkg-buildpackage -us -uc -b -rfakeroot |& tee odb # I got this: # dpkg-checkbuilddeps: Unmet build dependencies: libgtk2.0-dev libglib2.0-dev dpatch # (find-fline "/usr/bin/dpkg-buildpackage") # (find-fline "/usr/bin/dpkg-buildpackage" "dpkg-checkbuilddeps") # (find-fline "/usr/bin/dpkg-checkbuilddeps") # There must be an "install builddeps with apt-get" script somewhere... ##### # # dpkg-query # 2019aug17 # ##### # «dpkg-query» (to ".dpkg-query") # (find-es "apt" "apt-cache") # (find-man "1 dpkg-query") # (find-man "1 dpkg-query" "-S, --search") * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) dpkg-query -S light-locker # Local Variables: # coding: utf-8-unix # End: