# Makefile.debian-local - to generate Debian .deb package list from packages # copyright ETH Zuerich Physics Deparement, use under either BSD or GPL license # author Neil Franklin, last modification 2003.07.31 # this Makefile is intended to be run as normal user with access to the server # install it as Makefile (no .debian-local) in the # DocumentRoot of the HTTP VirtualServer for the packages # make your local packages, possibly with makepackage # place your local packages in # dists/woody/local/[main|contrib|non-free]/[source|binary-*]//*.deb # make an indices directory the override files # run this script with make # binary-all packages are auto-linked in binary-i386 # override files are generated from the packages # Packages, Packages.gz, Sources, Sources.gz are generated, takes a while :-) # add your local server to your clients /etc/apt/sources.list # and run apt-get update, then apt-get install as you wish # --- code for acting out the various make targets # make site is the default action all: site site: main cont nonf # scanning all types produces errors, for types where there are no packages #main: ln.main ov.main ov.main.src main.all main.i386 main.src #cont: ln.cont ov.cont ov.cont.src cont.all cont.i386 cont.src #nonf: ln.nonf ov.nonf ov.nonf.src nonf.all nonf.i386 nonf.src # so only scan those types where we presently have packages, else "for" error # ln.* only where -all packages # ov.* only where binary packages # ov.*.src only where source packages main: ln.main ov.main ov.main.src main.all main.i386 main.src cont: cont.all cont.i386 cont.src nonf: ln.nonf ov.nonf ov.nonf.src nonf.all nonf.i386 nonf.src # auxillary for debugging ln: ln.main ln.cont ln.nonf ov: ov.main ov.main.src ov.nonf ln.main: @echo making main.i386 links to main.all ... @#remove all old links, so no stale ones left @for PKF in `ls -1F dists/woody/local/main/binary-i386/*/*.deb | grep -- "@$$"` ; do \ rm -f `echo $${PKF} | cut -f 1 -d "@"` ; \ done @# add all new ones to current packages @for PKF in `ls -1 dists/woody/local/main/binary-all/*/*.deb` ; do \ SE=`echo $${PKF} | cut -f 6 -d "/"` ; \ PK=`echo $${PKF} | cut -f 7 -d "/"` ; \ ln -s ../../binary-all/$${SE}/$${PK} dists/woody/local/main/binary-i386/$${SE} ; \ done ln.cont: @echo making contrib.i386 links to contrib.all ... @for PKF in `ls -1F dists/woody/local/contrib/binary-i386/*/*.deb | grep -- "@$$"` ; do \ rm -f `echo $${PKF} | cut -f 1 -d "@"` ; \ done @for PKF in `ls -1 dists/woody/local/contrib/binary-all/*/*.deb` ; do \ SE=`echo $${PKF} | cut -f 6 -d "/"` ; \ PK=`echo $${PKF} | cut -f 7 -d "/"` ; \ ln -s ../../binary-all/$${SE}/$${PK} dists/woody/local/contrib/binary-i386/$${SE} ; \ done ln.nonf: @echo making non-free.i386 links to non-free.all ... @for PKF in `ls -1F dists/woody/local/non-free/binary-i386/*/*.deb | grep -- "@$$"` ; do \ rm -f `echo $${PKF} | cut -f 1 -d "@"` ; \ done @for PKF in `ls -1 dists/woody/local/non-free/binary-all/*/*.deb` ; do \ SE=`echo $${PKF} | cut -f 6 -d "/"` ; \ PK=`echo $${PKF} | cut -f 7 -d "/"` ; \ ln -s ../../binary-all/$${SE}/$${PK} dists/woody/local/non-free/binary-i386/$${SE} ; \ done ov.main: @echo making main override ... @# get rid of all existing records, as we will be using >> @rm indices/override.woody.main @# only search i386, as all .all packages have links there @for PKF in dists/woody/local/main/binary-i386/*/*.deb ; do \ PK=`echo $${PKF} | cut -f 7 -d "/" | cut -f 1 -d "_"` ; \ PR=`dpkg --info $${PKF} | grep "Priority:" | cut -f 3 -d " "` ; \ SE=`dpkg --info $${PKF} | grep "Section:" | cut -f 3 -d " "` ; \ echo -e "$${PK}\t$${PR}\t$${SE}" >> indices/override.woody.main ; \ done @# ensure file is here, if there were no records added with >> @touch indices/override.woody.main @# eliminate duplicates (2 versions of same package), so no warning @mv indices/override.woody.main indices/.tmp @uniq indices/.tmp > indices/override.woody.main @# we have multiple users adding packages, so they need group access @chmod 664 indices/override.woody.main ov.main.src: @echo making main.src override ... @rm indices/override.woody.main.src @for PKF in dists/woody/local/main/source/*/*.dsc ; do \ PK=`echo $${PKF} | cut -f 7 -d "/" | cut -f 1 -d "_"` ; \ SE=`echo $${PKF} | cut -f 6 -d "/"` ; \ echo -e "$${PK}\toptional\t$${SE}" >> indices/override.woody.main.src ; \ done @touch indices/override.woody.main.src @mv indices/override.woody.main.src indices/.tmp @uniq indices/.tmp > indices/override.woody.main.src @chmod 664 indices/override.woody.main.src ov.cont: @echo making contrib override ... @rm indices/override.woody.contrib @for PKF in dists/woody/local/contrib/binary-i386/*/*.deb ; do \ PK=`echo $${PKF} | cut -f 7 -d "/" | cut -f 1 -d "_"` ; \ PR=`dpkg --info $${PKF} | grep "Priority:" | cut -f 3 -d " "` ; \ SE=`dpkg --info $${PKF} | grep "Section:" | cut -f 3 -d " "` ; \ echo -e "$${PK}\t$${PR}\t$${SE}" >> indices/override.woody.contrib ; \ done @touch indices/override.woody.contrib @mv indices/override.woody.contrib indices/.tmp @uniq indices/.tmp > indices/override.woody.contrib @chmod 664 indices/override.woody.contrib ov.cont.src: @echo making contrib.src override ... @rm indices/override.woody.contrib.src @for PKF in dists/woody/local/contrib/source/*/*.deb ; do \ PK=`echo $${PKF} | cut -f 7 -d "/" | cut -f 1 -d "_"` ; \ SE=`echo $${PKF} | cut -f 6 -d "/"` ; \ echo -e "$${PK}\toptional\t$${SE}" >> indices/override.woody.contrib.src ; \ done @touch indices/override.woody.contrib.src @mv indices/override.woody.contrib.src indices/.tmp @uniq indices/.tmp > indices/override.woody.contrib.src @chmod 664 indices/override.woody.contrib.src ov.nonf: @echo making non-free override ... @rm indices/override.woody.non-free @for PKF in dists/woody/local/non-free/binary-i386/*/*.deb ; do \ PK=`echo $${PKF} | cut -f 7 -d "/" | cut -f 1 -d "_"` ; \ PR=`dpkg --info $${PKF} | grep "Priority:" | cut -f 3 -d " "` ; \ SE=`dpkg --info $${PKF} | grep "Section:" | cut -f 3 -d " "` ; \ echo -e "$${PK}\t$${PR}\t$${SE}" >> indices/override.woody.non-free ; \ done @touch indices/override.woody.non-free @mv indices/override.woody.non-free indices/.tmp @uniq indices/.tmp > indices/override.woody.non-free @chmod 664 indices/override.woody.non-free ov.nonf.src: @echo making non-free.src override ... @rm indices/override.woody.non-free.src @for PKF in dists/woody/local/non-free/source/*/*.deb ; do \ PK=`echo $${PKF} | cut -f 7 -d "/" | cut -f 1 -d "_"` ; \ SE=`echo $${PKF} | cut -f 6 -d "/"` ; \ echo -e "$${PK}\toptional\t$${SE}" >> indices/override.woody.non-free.src ; \ done @touch indices/override.woody.non-free.src @mv indices/override.woody.non-free.src indices/.tmp @uniq indices/.tmp > indices/override.woody.non-free.src @chmod 664 indices/override.woody.non-free.src main.all: @echo making main.all packages ... @fakeroot dpkg-scanpackages dists/woody/local/main/binary-all \ indices/override.woody.main \ > dists/woody/local/main/binary-all/Packages @fakeroot gzip < dists/woody/local/main/binary-all/Packages \ > dists/woody/local/main/binary-all/Packages.gz main.i386: @echo making main.i386 packages ... @fakeroot dpkg-scanpackages dists/woody/local/main/binary-i386 \ indices/override.woody.main \ > dists/woody/local/main/binary-i386/Packages @fakeroot gzip < dists/woody/local/main/binary-i386/Packages \ > dists/woody/local/main/binary-i386/Packages.gz main.src: @echo making main.src packages ... @fakeroot dpkg-scansources dists/woody/local/main/source \ indices/override.woody.main.src \ > dists/woody/local/main/source/Sources @fakeroot gzip < dists/woody/local/main/source/Sources \ > dists/woody/local/main/source/Sources.gz cont.all: @echo making contrib.all packages ... @fakeroot dpkg-scanpackages dists/woody/local/contrib/binary-all \ indices/override.woody.contrib \ > dists/woody/local/contrib/binary-all/Packages @fakeroot gzip < dists/woody/local/contrib/binary-all/Packages \ > dists/woody/local/contrib/binary-all/Packages.gz cont.i386: @echo making contrib.i386 packages ... @fakeroot dpkg-scanpackages dists/woody/local/contrib/binary-i386 \ indices/override.woody.contrib \ > dists/woody/local/contrib/binary-i386/Packages @fakeroot gzip < dists/woody/local/contrib/binary-i386/Packages \ > dists/woody/local/contrib/binary-i386/Packages.gz cont.src: @echo making contrib.src packages ... @fakeroot dpkg-scansources dists/woody/local/contrib/source \ indices/override.woody.contrib.src \ > dists/woody/local/contrib/source/Sources @fakeroot gzip < dists/woody/local/contrib/source/Sources \ > dists/woody/local/contrib/source/Sources.gz nonf.all: @echo making non-free.all packages ... @fakeroot dpkg-scanpackages dists/woody/local/non-free/binary-all \ indices/override.woody.non-free \ > dists/woody/local/non-free/binary-all/Packages @fakeroot gzip < dists/woody/local/non-free/binary-all/Packages \ > dists/woody/local/non-free/binary-all/Packages.gz nonf.i386: @echo making non-free.i386 packages ... @fakeroot dpkg-scanpackages dists/woody/local/non-free/binary-i386 \ indices/override.woody.non-free \ > dists/woody/local/non-free/binary-i386/Packages @fakeroot gzip < dists/woody/local/non-free/binary-i386/Packages \ > dists/woody/local/non-free/binary-i386/Packages.gz nonf.src: @echo making non-free.src packages ... @fakeroot dpkg-scansources dists/woody/local/non-free/source \ indices/override.woody.non-free.src \ > dists/woody/local/non-free/source/Sources @fakeroot gzip < dists/woody/local/non-free/source/Sources \ > dists/woody/local/non-free/source/Sources.gz