Developer: | Richard Atterer, Steve McIntyre |
Programming Language: | C++ |
Operating System: | Linux, Solaris, OS X, FreeBSD, Microsoft Windows |
Genre: | Download utility |
License: | GPL-2.0-only |
Jigdo (a portmanteau of "Jigsaw" and "download") is a utility typically used for downloading to piece together a large file, most commonly an optical disk image such as a CD, DVD or Blu-ray Disc (BD) image, from many smaller individual constituent files. The constituent files may be local and/or retrieved from one or more mirror sites. Jigdo's features are similar to BitTorrent, but unlike BitTorrent, Jigdo uses a client-server model, not peer-to-peer.
Jigdo itself is quite portable and is available for many UNIX and Unix-like operating systems,and is also available for Microsoft Windows.
Released under the terms of the GPL-2.0-only license, Jigdo is free software.
A quite common use would be to construct a Linux CD or DVD image for installation or distribution, where a slightly older version or release of same, or a cache or local partial mirror, already contains some or many of the needed constituent files. That would typically proceed as follows: Jigdo would be invoked using the jigdo-lite command, with a command line argument of the URL of a ".jigdo" file. Jigdo would then download that file, and after examining its contents, would also download a ".template" file. After inspecting the ".template" file, Jigdo would prompt for the location of files to scan. The user would then either enter or select from a list the location of files to scan. Jigdo would scan that location for any files that match any of the needed constituent files. Any matching files would be used in constructing the target image. Jigdo prompts again, and if the user gives a location, the process repeats - giving Jigdo the opportunity to scan multiple locations for the needed files. If the user enters no location, Jigdo proceeds to download any unmatched constituent files and to use them to assemble the target image file.
The jigdo-file utility is generally used to create the ".jigdo" and ".template" files needed to create target images using Jigdo.
Presently at leastDebian and Ubuntu[1] (and some older Fedora releases - see History) make files available for download via Jigdo.
Other projects and sites may also do so or may be doing so - nothing inherently prevents such use.
Jigdo was designed to solve several issues. By leveraging redundant available data, Jigdo works to ease loads on mirror systems - both by providing means for such mirror systems to assemble the needed large images while avoiding much redundant downloading, and also by encouraging those downloading from the mirrors to likewise use Jigdo and avoid downloading unneeded redundant data. Additionally, Jigdo can download from multiple mirrors, easing and typically speeding downloads and making them somewhat more resistant to various interruptions in downloading.
Jigdo was initially designed to aid in the distribution and downloading of large Debian image files for installation. Development of Jigdo appears to go back to at least January 1996.[2]
Debian has been available via Jigdo since at least 2002-01-09[3]
Ubuntu has been available via Jigdo since at least 2004-11-12[4]
By, or sometime after 2006-05 (release of Jigdo version 0.7.3), Jigdo is no longer undergoing active development, but is in "maintenance mode" - development has stopped.[5]
Fedora has been available via Jigdo since approximately 2008-02-05 with the 9 Alpha[6] [7] release.Fedora 8 discs[8] as well as many other variants.[9] were also made available via Jigdo. Fedora 15,[10] released 2011-05-24, thus far appears to be the last Fedora release to have been made available via Jigdo by The Fedora Project.
Jigdo is no longer undergoing active development, but is in "maintenance mode" - development has stopped. Though the command-line tools may be considered finished and "feature complete", the GUI client was not completed and does not support multi-image templates, meaning the command-line tools are required. See also Derivatives.
Fedora has been developing a Python-based GUI which used Jigdo, called pyJigdo.[11]
It may be difficult to know accurately how widely distributed and used Jigdo is, however some data are available.
As of 2018 October, 0.86% (1,730) of approximately 200,471 reporting Debian systems have Jigdo installed,[12] and 0.27% (7,572) of approximately 2,793,378 reporting Ubuntu systems have Jigdo installed.[13]