Backporting

Last updated

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.

Contents

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:

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 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 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). [2]

Procedures

The process of backporting can be roughly divided into these steps: [1]

  1. identification of the problem in the older version of the software that needs to be fixed by a backport
  2. finding out which (usually recent) modification of the code fixed the problem
  3. adapting the modification to the old code situation (the proper backporting)
  4. 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   the backports will usually be incorporated in binary upgrades along the old version line of the software. With open-source software, backports are sometimes created by software distributors and later sent upstream (that is, submitted to the core developers of the afflicted software). [2]

Examples

See also

Related Research Articles

<span class="mw-page-title-main">Debian</span> Linux distribution based on free and open-source software

Debian, also known as Debian GNU/Linux, is a free and open source Linux distribution, developed by the Debian Project, which was established by Ian Murdock in August 1993. Debian is the basis for many other distributions, such as Ubuntu, Linux Mint, Tails, Proxmox, Kali Linux, Pardus, TrueNAS SCALE, and Astra Linux.

<span class="mw-page-title-main">Linux distribution</span> Operating system based on the Linux kernel

A Linux distribution is an operating system that includes the Linux kernel for its kernel functionality. Although the name does not imply product distribution per se, a distro, if distributed on its own, is often obtained via a website intended specifically for the purpose. Distros have been designed for a wide variety of systems ranging from personal computers to servers and from embedded devices to supercomputers.

<span class="mw-page-title-main">Windows XP</span> Microsoft PC operating system released in 2001

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 and Windows Me for home users.

<span class="mw-page-title-main">Kanotix</span> Linux distribution

Kanotix, also referred to as KANOTIX, is an operating system based on Debian, with advanced hardware detection. It can run from an optical disc drive or other media i.e. USB-stick without using a hard disk drive.

<span class="mw-page-title-main">Service pack</span> Single installable package of software updates

In computing, a service pack comprises a collection of updates, fixes, or enhancements to a software program delivered in the form of a single installable package. Companies often release a service pack when the number of individual patches to a given program reaches a certain (arbitrary) limit, or the software release has shown to be stabilized with a limited number of remaining issues based on users' feedback and bug reports. In large software applications such as office suites, operating systems, database software, or network management, it is not uncommon to have a service pack issued within the first year or two of a product's release. Installing a service pack is easier and less error-prone than installing many individual patches, even more so when updating multiple computers over a network, where service packs are common.

A patch is data that is intended to be used to modify an existing software resource such as a program or a file, often to fix bugs and security vulnerabilities. A patch may be created to improve functionality, usability, or performance. A patch is typically provided by a vendor for updating the software that they provide. A patch may be created manually, but commonly it is created via a tool that compares two versions of the resource and generates data that can be used to transform one to the other.

Installation of a computer program, is the act of making the program ready for execution. Installation refers to the particular configuration of software or hardware with a view to making it usable with the computer. A soft or digital copy of the piece of software (program) is needed to install it. There are different processes of installing a piece of software (program). Because the process varies for each program and each computer, programs often come with an installer, a specialised program responsible for doing whatever is needed for the installation. Installation may be part of a larger software deployment process.

Remote Desktop Protocol (RDP) is a proprietary protocol developed by Microsoft Corporation which provides a user with a graphical interface to connect to another computer over a network connection. The user employs RDP client software for this purpose, while the other computer must run RDP server software.

Software versioning is the process of assigning either unique version names or unique version numbers to unique states of computer software. Within a given version number category, these numbers are generally assigned in increasing order and correspond to new developments in the software. At a fine-grained level, revision control is used for keeping track of incrementally-different versions of information, whether or not this information is computer software, in order to be able to roll any changes back.

<span class="mw-page-title-main">Ubuntu</span> Linux distribution developed by Canonical

Ubuntu is a Linux distribution derived from Debian and composed mostly of free and open-source software. Ubuntu is officially released in multiple editions: Desktop, Server, and Core for Internet of things devices and robots. The operating system is developed by the British company Canonical and a community of other developers, under a meritocratic governance model. As of October 2024, the latest interim release is 24.10, with most-recent long-term support release is 24.04.

CPython is the reference implementation of the Python programming language. Written in C and Python, CPython is the default and most widely used implementation of the Python language.

The NSLU2 is a network-attached storage (NAS) device made by Linksys introduced in 2004 and discontinued in 2008. It makes USB flash memory and hard disks accessible over a network using the SMB protocol. It was superseded mainly by the NAS200 and in another sense by the WRT600N and WRT300N/350N which both combine a Wi-Fi router with a storage link.

<span class="mw-page-title-main">SyncToy</span>

SyncToy was a freeware tool in Microsoft's PowerToys series that provided an easy-to-use graphical user interface for synchronizing files and folders in Windows versions XP, Vista, 7 and 10. It was written using Microsoft's .NET Framework and used the Microsoft Sync Framework.

The Dell Inspiron Mini Series is a line of subnotebook/netbook computers designed by Dell. The series was introduced in September 2008 amidst the growing popularity of low-cost netbook computers introduced by competitors.

An unofficial patch, sometimes alternatively called community patch, is a patch for a piece of software, created by a third party such as a user community without the involvement of the original developer. Similar to an ordinary patch, it alleviates bugs or shortcomings. Unofficial patches do not usually change the intended usage of the software, in contrast to other third-party software adaptions such as mods or cracks.

<span class="mw-page-title-main">KVIrc</span> IRC Client

KVIrc is a graphical IRC client for Linux, Unix, Mac OS and Windows. The name is an acronym of K Visual IRC in which the K stands for a dependency to KDE, which became optional from version 2.0.0. The software is based on the Qt framework and its code is released under a modified GNU General Public License.

<span class="mw-page-title-main">.NET Framework version history</span>

Microsoft started development on the .NET Framework in the late 1990s originally under the name of Next Generation Windows Services (NGWS). By late 2001 the first beta versions of .NET Framework 1.0 were released. The first version of .NET Framework was released on 13 February 2002, bringing managed code to Windows NT 4.0, 98, 2000, ME and XP.

<span class="mw-page-title-main">Bodhi Linux</span> Linux distribution

Bodhi Linux is a light-weight Linux distribution based on Ubuntu that uses an Enlightenment DR17-based fork called Moksha as its desktop environment. The philosophy for the distribution is to provide a minimal base system so that users can install the software they want. In turn, the distribution only includes software that is essential to most users, such as a file manager (Thunar), a terminal emulator (Terminology), and a web browser. To install additional software, Bodhi Linux developers maintain a browser-based app store that uses apturl to install programs.

Long-term support (LTS) is a product lifecycle management policy in which a stable release of computer software is maintained for a longer period of time than the standard edition. The term is typically reserved for open-source software, where it describes a software edition that is supported for months or years longer than the software's standard edition.

<span class="mw-page-title-main">Q4OS</span> Lightweight Linux distribution, based on Debian

Q4OS is a light-weight Linux distribution, based on Debian, targeted as a replacement for operating systems that are no longer supported on outdated hardware. The distribution is known for an addon called XPQ4, which adds themes intended to replicate the look and feel of Windows 2000 and Windows XP.

References

  1. 1 2 "Backporting Security Fixes". Red Hat. Archived from the original on 2020-05-12. Retrieved 2020-05-11.
  2. 1 2 Rahul Sundaram (2016-01-14). "Staying close to upstream projects". Fedora Project. Archived from the original on 2011-08-05. Retrieved 2020-05-11.
  3. Donald Melanson (2007-10-09). "Microsoft backports Vista features for new Windows XP SP3 beta". Engadget. Archived from the original on 2016-03-04. Retrieved 2020-05-11.
  4. "Backports service becoming official". Debian Project. 2010-09-05. Archived from the original on 2011-09-03. Retrieved 2020-05-11.
  5. "UbuntuBackports". Ubuntu Project. 2015-11-29. Archived from the original on 2019-05-03. Retrieved 2020-05-11.
  6. Harper, Christopher (2024-04-14). "Thousands of apps ported back to Windows 95 twenty-eight years later — .NET Framework port enables backward compatibility for modern software". Tom's Hardware . Archived from the original on 2024-05-31. Retrieved 2024-07-01.
  7. Posch, Maya (2024-04-14). "Porting Modern Windows Applications To Windows 95". Hackaday . Archived from the original on 2024-07-01. Retrieved 2024-07-01.