Backporting
Encyclopedia
Backporting is the action of taking a certain software modification (patch
Patch (computing)
A patch is a piece of software designed to fix problems with, or update a computer program or its supporting data. This includes fixing security vulnerabilities and other bugs, and improving the usability or performance...

) and applying it to an older version of the software than it was initially created for. It is part of the maintenance
Software maintenance
Software Maintenance in software engineering is the modification of a software product after delivery to correct faults, to improve performance or other attributes....

 step in a software development process
Software development process
A software development process, also known as a software development life cycle , is a structure imposed on the development of a software product. Similar terms include software life cycle and software process. It is often considered a subset of systems development life cycle...

.

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
    Codebase
    The term codebase, or code base, is used in software development to mean the whole collection of source code used to build a particular application or component. Typically, the codebase includes only human-written source code files, and not, e.g., source code files generated by other tools or...

     for the newer version is derived, but there the text is called '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
Source code
In computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source...

 have changed) up to heavy and massive (many modifications spread across multiple files
Computer file
A computer file is a block of arbitrary information, or resource for storing information, which is available to a computer program and is usually based on some kind of durable storage. A file is durable in the sense that it remains available for programs to use after the current program has finished...

 of the code). In the latter case, backporting is 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
Robustness (computer science)
In computer science, robustness is the ability of a computer system to cope with errors during execution or the ability of an algorithm to continue to operate despite abnormalities in input, calculations, etc. Formal techniques, such as fuzz testing, are essential to showing robustness since this...

 problems that prevent it from being used in mission-critical situations).

The process of backporting can roughly be 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
    Quality control, or QC for short, is a process by which entities review the quality of all factors involved in production. This approach places an emphasis on three aspects:...

    —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 (computing)
A patch is a piece of software designed to fix problems with, or update a computer program or its supporting data. This includes fixing security vulnerabilities and other bugs, and improving the usability or performance...

 set.

Backports can be provided by the core developer
Software developer
A software developer is a person concerned with facets of the software development process. Their work includes researching, designing, developing, and testing software. A software developer may take part in design, computer programming, or software project management...

 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
Closed source software
Closed source is a term for software released or distributed without the corresponding source code. Generally, it means only the binaries of a computer program are distributed and the license provides no access to the program's source code. The source code of such programs might be regarded as a...

—the backports will usually be incorporated in binary
Binary file
A binary file is a computer file which may contain any type of data, encoded in binary form for computer storage and processing purposes; for example, computer document files containing formatted text...

 upgrade
Upgrade
The term upgrade refers to the replacement of a product with a newer version of the same product. It is most often used in computing and consumer electronics, generally meaning a replacement of hardware, software or firmware with a newer or better version, in order to bring the system up to date...

s along the old version line of the software.
With open-source software
Open-source software
Open-source software is computer software that is available in source code form: the source code and certain other rights normally reserved for copyright holders are provided under a software license that permits users to study, change, improve and at times also to distribute the software.Open...

, backports are sometimes created by software distributors
Linux distribution
A Linux distribution is a member of the family of Unix-like operating systems built on top of the Linux kernel. Such distributions are operating systems including a large collection of software applications such as word processors, spreadsheets, media players, and database applications...

 and later sent upstream (that is, submitted to the core developers of the afflicted software).

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK