HOME

TheInfoList



OR:

Backporting is the action of taking parts from a newer version of a
software system A software system is a system of intercommunicating components based on software forming part of a computer system (a combination of hardware and software). It "consists of a number of separate programs, configuration files, which are used to s ...
or
software component Component-based software engineering (CBSE), also called component-based development (CBD), is a branch of software engineering that emphasizes the separation of concerns with respect to the wide-ranging functionality available throughout a give ...
and
porting In software engineering, porting is the process of adapting software for the purpose of achieving some form of execution in a computing environment that is different from the one that a given program (meant for such execution) was originally des ...
them to an older version of the same software. It forms part of the maintenance step in a
software development process In software engineering, a software development process is a process of dividing software development work into smaller, parallel, or sequential steps or sub-processes to improve design, product management. It is also known as a software deve ...
, 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 Vulnerabilities are flaws in a computer system that weaken the overall security of the device/system. Vulnerabilities can be weaknesses in either the hardware itself, or the software that runs on the hardware. Vulnerabilities can be exploited by ...
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 In software development, a codebase (or code base) is a collection of source code used to build a particular software system, application, or software component. Typically, a codebase includes only human-written source code files; thus, a codeba ...
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 have changed) up to heavy and massive (many modifications spread across multiple
files File or filing may refer to: Mechanical tools and processes * File (tool), a tool used to ''remove'' fine amounts of material from a workpiece **Filing (metalworking), a material removal process in manufacturing ** Nail file, a tool used to gent ...
of the code). In the latter case, backporting may become tedious and inefficient and should only be undergone if the older version of the software is really needed in favour of the newer (if, for example, the newer version still suffers
stability Stability may refer to: Mathematics * Stability theory, the study of the stability of solutions to differential equations and dynamical systems ** Asymptotic stability ** Linear stability ** Lyapunov stability ** Orbital stability ** Structural st ...
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 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 Patch or Patches may refer to: Arts, entertainment and media * Patch Johnson, a fictional character from ''Days of Our Lives'' * Patch (''My Little Pony''), a toy * "Patches" (Dickey Lee song), 1962 * "Patches" (Chairmen of the Board song ...
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 Proprietary software is software that is deemed within the free and open-source software to be non-free because its creator, publisher, or other rightsholder or rightsholder partner exercises a legal monopoly afforded by modern copyright and int ...
the backports will usually be incorporated in binary
upgrade Upgrading is the process of replacing a product with a newer version of the same product. In computing and consumer electronics an upgrade is generally a replacement of hardware, software or firmware with a newer or better version, in order to ...
s along the old version line of the software. With
open-source software Open-source software (OSS) is computer software that is released under a license in which the copyright holder grants users the rights to use, study, change, and distribute the software and its source code to anyone and for any purpose. Ope ...
, backports are sometimes created by software distributors and later sent
upstream Upstream may refer to: * Upstream (bioprocess) * ''Upstream'' (film), a 1927 film by John Ford * Upstream (networking) * ''Upstream'' (newspaper), a newspaper covering the oil and gas industry * Upstream (petroleum industry) * Upstream (software ...
(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, which was released five years before, at the time being the longest time span between successive releases of ...
were backported to
Windows XP Windows XP is a major release of Microsoft's Windows NT operating system. It was release to manufacturing, released to manufacturing on August 24, 2001, and later to retail on October 25, 2001. It is a direct upgrade to its predecessors, Wind ...
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. Debian Project since September 2010 provides an official backporting service for some Debian Linux software packages, and
Ubuntu Ubuntu ( ) is a Linux distribution based on Debian and composed mostly of free and open-source software. Ubuntu is officially released in three editions: '' Desktop'', '' Server'', and ''Core'' for Internet of things devices and robots. All th ...
Linux also supports backports, however Ubuntu Backports receives no support at all from Canonical, and is entirely community-maintained.


See also

*
Backward compatibility Backward compatibility (sometimes known as backwards compatibility) is a property of an operating system, product, or technology that allows for interoperability with an older legacy system, or with input designed for such a system, especially ...
*
Retrofitting Retrofitting is the addition of new technology or features to older systems. Retrofits can happen for a number of reasons, for example with big capital expenditures like naval vessels, military equipment or manufacturing plants, businesses or go ...
* Java backporting tools


References

{{Reflist Software maintenance Software quality Patch utilities