# Makefile.debian-local - to generate Debian .deb package list from packages # copyright ETH Zuerich Physics Departement, # use under either BSD or GPL license # author Neil Franklin, last modification 2004.01.09 # 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 # convert official Debian longer names #main: main contrib: cont non-free: nonf # ln = links i386->all, ov = indices/override.* for bin+src, rest Packages* # 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 # *** bug *** really I should add tests for stuff there in the code 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 # auxillary for debugging ln: ln.main ln.cont ln.nonf ov: ov.main ov.main.src ov.nonf ln.main: @/bin/echo making main.i386 links to main.all ... @#remove all old links, so no stale ones left @for PKF in `/bin/ls -1F \ dists/woody/local/main/binary-i386/*/*.deb | \ /bin/grep -- "@$$"` ; do \ /bin/rm -f `echo $${PKF} | /usr/bin/cut -f 1 -d "@"` ; \ done @# add all new ones to current packages @for PKF in `/bin/ls -1 \ dists/woody/local/main/binary-all/*/*.deb` ; do \ SE=`/bin/echo $${PKF} | /usr/bin/cut -f 6 -d "/"` ; \ PK=`/bin/echo $${PKF} | /usr/bin/cut -f 7 -d "/"` ; \ /bin/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 `/bin/ls -1F \ dists/woody/local/contrib/binary-i386/*/*.deb | \ /bin/grep -- "@$$"` ; do \ /bin/rm -f `echo $${PKF} | /usr/bin/cut -f 1 -d "@"` ; \ done @for PKF in `/bin/ls -1 \ dists/woody/local/contrib/binary-all/*/*.deb` ; do \ SE=`/bin/echo $${PKF} | /usr/bin/cut -f 6 -d "/"` ; \ PK=`/bin/echo $${PKF} | /usr/bin/cut -f 7 -d "/"` ; \ /bin/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 `/bin/ls -1F \ dists/woody/local/non-free/binary-i386/*/*.deb | \ /bin/grep -- "@$$"` ; do \ /bin/rm -f `echo $${PKF} | /usr/bin/cut -f 1 -d "@"` ; \ done @for PKF in `/bin/ls -1 \ dists/woody/local/non-free/binary-all/*/*.deb` ; do \ SE=`/bin/echo $${PKF} | /usr/bin/cut -f 6 -d "/"` ; \ PK=`/bin/echo $${PKF} | /usr/bin/cut -f 7 -d "/"` ; \ /bin/ln -s ../../binary-all/$${SE}/$${PK} \ dists/woody/local/non-free/binary-i386/$${SE} ; \ done ov.main: @/bin/echo making main override ... @# get rid of all existing records, as we will be using >> @/bin/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=`/bin/echo $${PKF} | /usr/bin/cut -f 7 -d "/" | \ /usr/bin/cut -f 1 -d "_"` ; \ PR=`/usr/bin/dpkg --info $${PKF} | /bin/grep "Priority:" | \ /usr/bin/cut -f 3 -d " "` ; \ SE=`/usr/bin/dpkg --info $${PKF} | /bin/grep "Section:" | \ /usr/bin/cut -f 3 -d " "` ; \ /bin/echo -e "$${PK}\t$${PR}\t$${SE}" >> \ indices/override.woody.main ; \ done @# ensure file is here, if there were no records added with >> @/bin/touch indices/override.woody.main @# eliminate duplicates (2 versions of same package), so no warning @/bin/mv indices/override.woody.main indices/.tmp @/usr/bin/uniq indices/.tmp > indices/override.woody.main @# we have multiple users adding packages, so they need group access @/bin/chmod 664 indices/override.woody.main ov.main.src: @/bin/echo making main.src override ... @/bin/rm indices/override.woody.main.src @for PKF in dists/woody/local/main/source/*/*.dsc ; do \ PK=`/bin/echo $${PKF} | /usr/bin/cut -f 7 -d "/" | \ /usr/bin/cut -f 1 -d "_"` ; \ SE=`/bin/echo $${PKF} | /usr/bin/cut -f 6 -d "/"` ; \ /bin/echo -e "$${PK}\toptional\t$${SE}" >> \ indices/override.woody.main.src ; \ done @/bin/touch indices/override.woody.main.src @/bin/mv indices/override.woody.main.src indices/.tmp @/usr/bin/uniq indices/.tmp > indices/override.woody.main.src @/bin/chmod 664 indices/override.woody.main.src ov.cont: @/bin/echo making contrib override ... @/bin/rm indices/override.woody.contrib @for PKF in dists/woody/local/contrib/binary-i386/*/*.deb ; do \ PK=`/bin/echo $${PKF} | /usr/bin/cut -f 7 -d "/" | \ /usr/bin/cut -f 1 -d "_"` ; \ PR=`/usr/bin/dpkg --info $${PKF} | /bin/grep "Priority:" | \ /usr/bin/cut -f 3 -d " "` ; \ SE=`/usr/bin/dpkg --info $${PKF} | /bin/grep "Section:" | \ /usr/bin/cut -f 3 -d " "` ; \ /bin/echo -e "$${PK}\t$${PR}\t$${SE}" >> \ indices/override.woody.contrib ; \ done @/bin/touch indices/override.woody.contrib @/bin/mv indices/override.woody.contrib indices/.tmp @/usr/bin/uniq indices/.tmp > indices/override.woody.contrib @/bin/chmod 664 indices/override.woody.contrib ov.cont.src: @/bin/echo making contrib.src override ... @/bin/rm indices/override.woody.contrib.src @for PKF in dists/woody/local/contrib/source/*/*.deb ; do \ PK=`/bin/echo $${PKF} | /usr/bin/cut -f 7 -d "/" | \ /usr/bin/cut -f 1 -d "_"` ; \ SE=`/bin/echo $${PKF} | /usr/bin/cut -f 6 -d "/"` ; \ /bin/echo -e "$${PK}\toptional\t$${SE}" >> \ indices/override.woody.contrib.src ; \ done @/bin/touch indices/override.woody.contrib.src @/bin/mv indices/override.woody.contrib.src indices/.tmp @/usr/bin/uniq indices/.tmp > indices/override.woody.contrib.src @/bin/chmod 664 indices/override.woody.contrib.src ov.nonf: @/bin/echo making non-free override ... @/bin/rm indices/override.woody.non-free @for PKF in dists/woody/local/non-free/binary-i386/*/*.deb ; do \ PK=`/bin/echo $${PKF} | /usr/bin/cut -f 7 -d "/" | \ /usr/bin/cut -f 1 -d "_"` ; \ PR=`/usr/bin/dpkg --info $${PKF} | /bin/grep "Priority:" | \ /usr/bin/cut -f 3 -d " "` ; \ SE=`/usr/bin/dpkg --info $${PKF} | /bin/grep "Section:" | \ /usr/bin/cut -f 3 -d " "` ; \ /bin/echo -e "$${PK}\t$${PR}\t$${SE}" >> \ indices/override.woody.non-free ; \ done @/bin/touch indices/override.woody.non-free @/bin/mv indices/override.woody.non-free indices/.tmp @/usr/bin/uniq indices/.tmp > indices/override.woody.non-free @/bin/chmod 664 indices/override.woody.non-free ov.nonf.src: @/bin/echo making non-free.src override ... @/bin/rm indices/override.woody.non-free.src @for PKF in dists/woody/local/non-free/source/*/*.deb ; do \ PK=`/bin/echo $${PKF} | /usr/bin/cut -f 7 -d "/" | \ /usr/bin/cut -f 1 -d "_"` ; \ SE=`/bin/echo $${PKF} | /usr/bin/cut -f 6 -d "/"` ; \ /bin/echo -e "$${PK}\toptional\t$${SE}" >> \ indices/override.woody.non-free.src ; \ done @/bin/touch indices/override.woody.non-free.src @/bin/mv indices/override.woody.non-free.src indices/.tmp @/usr/bin/uniq indices/.tmp > indices/override.woody.non-free.src @/bin/chmod 664 indices/override.woody.non-free.src main.all: @/bin/echo making main.all packages ... @/usr/bin/fakeroot /usr/bin/dpkg-scanpackages \ dists/woody/local/main/binary-all \ indices/override.woody.main \ > dists/woody/local/main/binary-all/Packages @/usr/bin/fakeroot /bin/gzip < \ dists/woody/local/main/binary-all/Packages \ > dists/woody/local/main/binary-all/Packages.gz main.i386: @/bin/echo making main.i386 packages ... @/usr/bin/fakeroot /usr/bin/dpkg-scanpackages \ dists/woody/local/main/binary-i386 \ indices/override.woody.main \ > dists/woody/local/main/binary-i386/Packages @/usr/bin/fakeroot /bin/gzip < \ dists/woody/local/main/binary-i386/Packages \ > dists/woody/local/main/binary-i386/Packages.gz main.src: @/bin/echo making main.src packages ... @/usr/bin/fakeroot /usr/bin/dpkg-scansources \ dists/woody/local/main/source \ indices/override.woody.main.src \ > dists/woody/local/main/source/Sources @/usr/bin/fakeroot /bin/gzip < \ dists/woody/local/main/source/Sources \ > dists/woody/local/main/source/Sources.gz cont.all: @/bin/echo making contrib.all packages ... @/usr/bin/fakeroot /usr/bin/dpkg-scanpackages \ dists/woody/local/contrib/binary-all \ indices/override.woody.contrib \ > dists/woody/local/contrib/binary-all/Packages @/usr/bin/fakeroot /bin/gzip < \ dists/woody/local/contrib/binary-all/Packages \ > dists/woody/local/contrib/binary-all/Packages.gz cont.i386: @/bin/echo making contrib.i386 packages ... @/usr/bin/fakeroot /usr/bin/dpkg-scanpackages \ dists/woody/local/contrib/binary-i386 \ indices/override.woody.contrib \ > dists/woody/local/contrib/binary-i386/Packages @/usr/bin/fakeroot /bin/gzip < \ dists/woody/local/contrib/binary-i386/Packages \ > dists/woody/local/contrib/binary-i386/Packages.gz cont.src: @/bin/echo making contrib.src packages ... @/usr/bin/fakeroot /usr/bin/dpkg-scansources \ dists/woody/local/contrib/source \ indices/override.woody.contrib.src \ > dists/woody/local/contrib/source/Sources @/usr/bin/fakeroot /bin/gzip < \ dists/woody/local/contrib/source/Sources \ > dists/woody/local/contrib/source/Sources.gz nonf.all: @/bin/echo making non-free.all packages ... @/usr/bin/fakeroot /usr/bin/dpkg-scanpackages \ dists/woody/local/non-free/binary-all \ indices/override.woody.non-free \ > dists/woody/local/non-free/binary-all/Packages @/usr/bin/fakeroot /bin/gzip < \ dists/woody/local/non-free/binary-all/Packages \ > dists/woody/local/non-free/binary-all/Packages.gz nonf.i386: @/bin/echo making non-free.i386 packages ... @/usr/bin/fakeroot /usr/bin/dpkg-scanpackages \ dists/woody/local/non-free/binary-i386 \ indices/override.woody.non-free \ > dists/woody/local/non-free/binary-i386/Packages @/usr/bin/fakeroot /bin/gzip < \ dists/woody/local/non-free/binary-i386/Packages \ > dists/woody/local/non-free/binary-i386/Packages.gz nonf.src: @/bin/echo making non-free.src packages ... @/usr/bin/fakeroot /usr/bin/dpkg-scansources \ dists/woody/local/non-free/source \ indices/override.woody.non-free.src \ > dists/woody/local/non-free/source/Sources @/usr/bin/fakeroot /bin/gzip < \ dists/woody/local/non-free/source/Sources \ > dists/woody/local/non-free/source/Sources.gz