Hello,
Jigsaw Download 0.5.3 has been released. jigdo is my proposed
replacement for the pseudo image kit.
jigdo was mentioned in Debian Weekly News, and there's even a short
notice in today's Linux Weekly News. Thanks to whoever is responsible
for that! :)
What's new in 0.5.3?
~~~~~~~~~~~~~~~~~~~~
- *** jigdo-file is finished! ***
With the introduction of a cache for file checksums, it is finally
possible in practice to let it loose on a Debian archive mirror.
- Update and large extension of the documentation. If you haven't
already done so, I encourage you to have a look now at the .deb's
manpage or at <http://atterer.net/jigdo/jigdo-file.html>.
- Now compiles with GCC 3.
- Now compiles under Windows! You do not even need Cygwin; plain mingw
is sufficient.
- Numerous small fixes and changes. Source code now exceeds 10000
lines of code.
Things to do
~~~~~~~~~~~~
- Set up a first jigdo beta site, preferably on a machine which
already creates CD images. The site that Manty has set up looks
perfect for this - would it be possible to get an account?
- Write a "poor man's jigdo" - a shell script that uses jigdo-file and
provides a primitive way of downloading and reassembling images.
- Start work on the GUI download client.
Source and binaries are available from <http://atterer.net/debian/>.
I've also uploaded the Windows version (jigdo-file.exe). For aptable
i386 debs use:
deb http://home.in.tum.de/atterer/debian unstable jigdo
In the hope of getting people interested in jigdo, here's an excerpt
from some of the new documentation - the EXAMPLES section. Note that
some of this mentions features of the download app "jigdo", which, as
mentioned before, has not been written yet.
Preparing your CD image for distribution
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You have created a CD image `image.iso' from some of the files stored
in the directory `/home/ftp' on your harddisc, which is also
available online as `ftp://mysite.org'. As you don't want to waste
space by effectively hosting the same data twice (once as files on
the FTP server, once inside the image), and you are fed up with
users' downloads aborting after 200MB and their restarting the
download dozens of times, you decide to use jigdo. How do you prepare
the image for download?
In fact, only one command is necessary:
jigdo-file make-template --image=image.iso --jigdo=/home/ftp/
image.jigdo --template=/home/ftp/image.template /home/ftp//
--label Mysite=/home/ftp --uri Mysite=ftp://mysite.org/
After editing the file `/home/ftp/image.jigdo' to contain the correct
URI for the template, `ftp://mysite.org/image.template', people can
point jigdo at `ftp://mysite.org/image.jigdo' to download your image.
Note that nothing prevents you from doing the same for an FTP server
that isn't administrated by you - in that case, you only need to host
the `.jigdo' and `.template' files on your own server/homepage.
Preparing an arbitrary large file for distribution
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
We assume that you have a large file that is not a filesystem, e.g.
`movie.mpeg'. Because of space problems, you want to distribute the
data on two servers.
In this case, the parts of the image need to be generated
artificially with the split command. For example, to create chunks of
4MB each, use `split -b 4m movie.mpeg part'. Copy the resulting files
`partXX' into two directories `1' and `2' that you create, according
to how you want the files distributed between the servers. Next,
create the jigdo and template files with `jigdo-file make-template
--image=movie.mpeg 1// 2//'. You will need to edit the `.jigdo' file
and provide the right URIs for the two servers that you are going to
upload the `partXX' files to, as well as the `.template' file.
Customized versions of images
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Because it is possible to assign a different URI for each part of an
image if necessary, jigdo is very flexible. Only one example is the
possibility of customized versions of images: Suppose that someone is
distributing a CD image, and that you want to make a few small
changes to it and redistribute your own version. You download the
`official.iso' CD image with jigdo, write it to CD-R, make your
changes (say, adding files from the `myfiles' directory on your
harddisc) and produce your own version, `myversion.iso'. Next, you
instruct jigdo-file to create the jigdo and template files for your
modified image, using the command
jigdo-file make-template --image=myversion.iso /mnt/cdrom/
myfiles// --label My=myfiles/ --uri My=http://my.homepage.net/
while `official.iso' is mounted under `/mnt/cdrom'. Now you need to
create a `.jigdo' file that references the same files as the original
image, but provides additional links for any files jigdo-file picked
up from the `myfiles' directory. This is most easily done by copying
over the relevant sections from the jigdo file for `official.iso' to
your own version's jigdo file.
Finally, after also adding a correct link for the template file, you
can upload the `.jigdo' file, the `.template' file and also the files
in `myfiles' to `http://my.homepage.net/'. Thus, for people to
download your modified image, you do not need to upload the complete
image contents to your web space, but only the changes you made!
(In case you only made very few changes, you could also omit the
`myfiles' parameter in the command above, then all your changes end
up in the new template file.)
Combining many jigdo-managed images into one
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
It is also no problem to combine data from several sources that use
jigdo. For example, if of five different and unrelated servers each
one distributes a different CD image via jigdo, you can create a
customized DVD image that contains the data from all these CDs. When
people use jigdo to download your image, the individual files on the
DVD are fetched from the same sources as the original CDs.
Consequently, even though you will be distributing a 3.2GB file via
your web space, the actual amount of data that is stored on your
server will only be in the order of several MBs.
All the best,
Richard
--
__ _
|_) /| Richard Atterer | CS student at the Technische | GnuPG key:
| \/¯| http://atterer.net | Universität München, Germany | 0x888354F7
¯ ´` ¯
Attachment:
pgpMx6WRwufOA.pgp
Description: PGP signature