HOME

TheInfoList



OR:

Backporting is the action of taking parts from a newer
version Version may refer to: Computing * Software version, a set of numbers that identify a unique evolution of a computer program * VERSION (CONFIG.SYS directive), a configuration directive in FreeDOS Music * Cover version * Dub version * Remix * ''Ve ...
of a software system 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 desi ...
them to an older version of the same software. It forms part of the
maintenance Maintenance may refer to: Biological science * Maintenance of an organism * Maintenance respiration Non-technical maintenance * Alimony, also called ''maintenance'' in British English * Champerty and maintenance, two related legal doct ...
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 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 codeb ...
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 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 sta ...
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 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 inte ...
the backports will usually be incorporated in
binary Binary may refer to: Science and technology Mathematics * Binary number, a representation of numbers using only two digits (0 and 1) * Binary function, a function that takes two arguments * Binary operation, a mathematical operation that ta ...
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. Op ...
, 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, 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 released to manufacturing on August 24, 2001, and later to retail on October 25, 2001. It is a direct upgrade to its predecessors, Windows 2000 for high-end and ...
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 Debian (), also known as Debian GNU/Linux, is a Linux distribution composed of free and open-source software, developed by the community-supported Debian Project, which was established by Ian Murdock on August 16, 1993. The first version of Deb ...
since September 2010 provides an official backporting service for some
Debian Linux Debian (), also known as Debian GNU/Linux, is a Linux distribution composed of free and open-source software, developed by the community-supported Debian Project, which was established by Ian Murdock on August 16, 1993. The first version of De ...
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 ...
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, especiall ...
*
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 Java backporting tools are programs (usually written in Java) that convert Java classes bytecodes from one version of the Java Platform Java is a set of computer software and specifications developed by James Gosling at Sun Microsystems, ...


References

{{Reflist Software maintenance Software quality Patch utilities