Patching instructions for VPDNS WARNING: VPDNS is currently only known to work on i386 machines. It does not work on AMD64 machines. UPDATE: These instructions should no longer be needed. You can now download the script ata: http://p2p.cs.mu.oz.au/software/vpdns/scripts/create-vpdns to download and patch everything for you. ==== Because VPDNS is built upon other software, we supply it as a patch to apply to this pre-existing software. You will need the following: - NS 2.27 http://www.isi.edu/nsnam/dist/ns-allinone-2.27.tar.gz - NS Compilation Fixes http://p2p.cs.mu.oz.au/software/vpdns/vpdns/ns-fixes.patch.gz - libsynk ftp://ftp.cc.gatech.edu/pub/people/kalyan/libsynk/libsynk-current.tar.Z - PDNS http://www.cc.gatech.edu/grads/x/Donghua.Xu/autopart/pdns_2.27_v1b.gz - Gnutellasim http://www.cc.gatech.edu/computing/compass/gnutella/gnusim-ns2.26-v1.1-pdns2.27.tgz - VPDNS. Latest version available at: http://p2p.cs.mu.oz.au/software/vpdns/vpdns/vpdns-latest.patch.gz Once you have downloaded the software above (it is assumed that you have downloaded everything into the working directory), follow the instructions below: 1. Install libsynk. The following instructions will assume libsynk is installed under your home directory. To do this, change to your home directory, untar the libsynk-current.tar.Z file, and then: cd libsynk make cd fdkcompat make Note that it is not necessary to actually invoke make install. 2. Untar ns-allinone-2.27.tar.gz into a directory of your choice. Then apply the NS compilation fixes: cd ns-allinone-2.27/ gunzip -c ../ns-fixes.patch.gz | patch -p0 Now check that it compiles correctly. To do this, change into the ns-allinone-2.27 directory, and run: ./install 3. Apply the PDNS patch. In the ns-allinone-2.27/ns-2.27 directory: gunzip -c ../../pdns_2.27_v1b.gz | patch -p3 The last 3 files of this patch should fail to apply. This is expected, and in fact necessary, since the previous patch included some of the changes provided by pdns. Do a make clean Then you should compile pdns. To do this, as above, change into the ns-allinone-2.27 directory, and run ./install Have a cup of tea. If all succeeds, continue to the next step. You may need to consult http://www.isi.edu/nsnam/ns/ns-problems.html if you have trouble compiling ns on your system. 4. Apply the gnusim patch. In the ns-allinone-2.27/ns-2.27 directory: tar zxf ../../gnusim-ns2.26-v1.1-pdns2.27.tgz Then: chmod a+x install.sh ./install.sh Note that you do not need to apply the patch yourself - the install.sh script does this automatically. The install.sh will also have run ./configure and make to rebuild the pdns binary. 5. Apply the VPDNS patch. In the ns-allinone-2.27 directory: gunzip -c ../vpdns-latest.patch.gz | patch -N -p2 Note that the -N option ignores previously applied patches. 6. Compile! In the ns-allinone-2.27/ns-2.27 directory: ./configure make clean make This will produce a pdns binary in ns-allinone-2.27/ns-2.27/