restore-FreeBSD is created to generate a pseudo-port that will contain everything that is currently installed on the system. restore-FreeBSD was inspired by a HDD crash which then required me to painstakingly install every port I cared for by hand (well actually, I created a simple port to do this), but I missed several packages I required and would spend a week discovering the rest. So now we have restore-FreeBSD which reads in the currently installed packages (via pkg_info) and creates a port called restore-FreeBSD. Another reason: I wanted a way to essentially rebuild a FreeBSD system without hassle. You may say that I could use Ghost For Unix or create a custom install CDROM, this can accomplish the same goal but both have their problems: 1. g4u doesn't do to well on different size disks. 2. g4u uses dd which writes bit by bit to the hard disk, this leaves you with no ability to change partition sizes. 3. Custom CDROM's take time to create and effort. 4. Both g4u and custom CDROM's require a pre-built image exactly of what you wish to deploy. 5. Both require significant disk space to store the disk images. restore-FreeBSD makes it simple to do a basic restore of a system and you don't need a lot of space to store any images (disk or ISO). You need a few kilobytes of space to store the restore-FreeBSD port. The only main downside of restore-FreeBSD is having to download the distfiles (if you don't keep a centralised copy) and the CPU time required to build via source. An upside is being able to download the latest distfiles and rebuild the packages from source. This means that if you have to reinstall, or want to mirror the packages installed on 3.x or 4.x and need to install from scratch to 5.x (for whatever reason) you can then install this port with the latest /usr/ports and get an up to date system (provided origins don't change dramatically). Building from source can have some great side effects, especially if you're one to make modifications to your /etc/make.conf. The script genmk.pl generates the port restore-FreeBSD, it takes one argument, your e-mail address, if no e-mail address is given it uses no-mail@dev.null It then creates the directory restore-FreeBSD in the present working directory. All files are then created within this directory (Makefile, pkg-descr and pkg-plist). pkg-descr contains a list of all packages that will be installed. pkg-plist is there for good measure. Once all files are created you can change directory into restore-FreeBSD and type 'make install'. This will then build all packages as defined in the Makefile and install them.