Backporting is the action of taking parts from a newerversion of asoftware system orsoftware component andporting them to an older version of the same software. It forms part of themaintenance step in asoftware development process, and it is commonly used for fixingsecurity issues in older versions of the software and also for providing new features to older versions.
The simplest and probably most common situation of backporting is a fixed security hole in a newer version of a piece of software. Consider this simplified example:
By taking the modification that fixes Software v2.0 and changing it so that it applies to Software v1.0, one has effectively backported the fix.[1]
In real-life situations, the modifications that a single aspect of the software has undergone may be simple (only a few lines ofcode have changed) up to heavy and massive (many modifications spread across multiplefiles of the code). In the latter case, backporting may become tedious and inefficient and should only be undertaken if the older version of the software is really needed in favour of the newer (if, for example, the newer version still suffersstability problems that prevent its use in mission-critical situations).[2]
The process of backporting can be roughly divided into these steps:[1]
Usually, multiple such modifications are bundled in apatch set.
Backports can be provided by the coredeveloper group of the software. Since backporting needs access to the source code of a piece of software, this is the only way that backporting is done forclosed source software – the backports will usually be incorporated inbinaryupgrades along the old version line of the software. Withopen-source software, backports are sometimes created bysoftware distributors and later sentupstream (that is, submitted to the core developers of the afflicted software).[2]