Backporting is the action of taking parts from a newer
version of a
software system or
software component and
porting them to an older version of the same software. It forms part of the
maintenance step in a
software development process, and it is commonly used for fixing
security issues in older versions of the software and also for providing new features to older versions.
Overview
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:
* Software v2.0 had a
security vulnerability that is fixed by changing the text 'is_unsecured' to 'is_secured'.
* The same security hole exists in Software v1.0, from which the
codebase for the newer version is derived, but there the text may read 'is_notsecure'.
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.
In real-life situations, the modifications that a single aspect of the software has undergone may be simple (only a few lines of
code
In communications and information processing, code is a system of rules to convert information—such as a letter, word, sound, image, or gesture—into another form, sometimes shortened or secret, for communication through a communicati ...
have changed) up to heavy and massive (many modifications spread across multiple
files 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 suffers
stability problems that prevent its use in mission-critical situations).
Procedures
The process of backporting can be roughly divided into these steps:
# identification of the problem in the older version of the software that needs to be fixed by a backport
# finding out which (usually recent) modification of the code fixed the problem
# adapting the modification to the old code situation (the proper backporting)
# one or several levels of
quality control
Quality control (QC) is a process by which entities review the quality of all factors involved in production. ISO 9000 defines quality control as "a part of quality management focused on fulfilling quality requirements".
This approach plac ...
testing whether the backported version maintains previous functionality as well as if it properly implements the new functionality.
Usually, multiple such modifications are bundled in a
patch set.
Backports can be provided by the core
developer 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 for
closed source software the backports will usually be incorporated in
binary upgrades along the old version line of the software. With
open-source software
Open-source software (OSS) is Software, computer software that is released under a Open-source license, license in which the copyright holder grants users the rights to use, study, change, and Software distribution, distribute the software an ...
, backports are sometimes created by
software distributors and later sent
upstream (that is, submitted to the core developers of the afflicted software).
Examples
* Many features of
Windows Vista
Windows Vista is a major release of the Windows NT operating system developed by Microsoft. It was the direct successor to Windows XP, released five years earlier, which was then the longest time span between successive releases of Microsoft W ...
were backported to
Windows XP
Windows XP is a major release of Microsoft's Windows NT operating system. It was released to manufacturing on August 24, 2001, and later to retail on October 25, 2001. It is a direct successor to Windows 2000 for high-end and business users a ...
when Service Pack 3 was released for Windows XP, thereby facilitating compatibility of applications (mostly games) originally with Vista as a minimum requirement to run on XP SP3 as a minimum requirement instead.
* The
Debian Project since September 2010 has provided an official backporting service for some
Debian Linux software packages, and
Ubuntu Linux also supports backports.
* In 2024, a
YouTuber named MattKC backported
.NET Framework versions 2.0 and 3.5 to
Windows 95, which did not officially support the framework.
See also
*
Backward compatibility
In telecommunications and computing, backward compatibility (or backwards compatibility) is a property of an operating system, software, real-world product, or technology that allows for interoperability with an older legacy system, or with Input ...
*
Retrofitting
References
{{Reflist
Software maintenance
Software quality
Patch utilities