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.
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]
The process of backporting can be roughly divided into these steps: [1]
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]
Debian, also known as Debian GNU/Linux, is a Linux distribution composed of free and open-source software and optionally non-free firmware or software developed by the community-supported Debian Project, which was established by Ian Murdock on August 16, 1993. The first version of Debian (0.01) was released on September 15, 1993, and its first stable version (1.1) was released on June 17, 1996. The Debian Stable branch is the most popular edition for personal computers and servers. Debian is also the basis for many other distributions that have different purposes, like Proxmox for servers, Ubuntu or Linux Mint for desktops, Kali for penetration testing, and Pardus and Astra for government use.
A Linux distribution is an operating system made from a software collection that includes the Linux kernel and often a package management system. They are often obtained from the website of each distribution, which are available for a wide variety of systems ranging from embedded devices and personal computers to servers and powerful supercomputers.
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 business users and Windows Me for home users, and is available for any devices running Windows NT 4.0, Windows 98, Windows 2000, or Windows Me that meet the new Windows XP system requirements.
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.
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.
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.
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 April 2024, the 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.
OpenJDK is a free and open-source implementation of the Java Platform, Standard Edition. It is the result of an effort Sun Microsystems began in 2006. The implementation is licensed under the GPL-2.0-only with a linking exception. Were it not for the GPL linking exception, components that linked to the Java Class Library would be subject to the terms of the GPL license. OpenJDK is the official reference implementation of Java SE since version 7.
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.
DisplayLink is a semiconductor and software technology company owned by Synaptics. The company specializes in developing DisplayLink USB graphics technology, which facilitates connections between computers and displays via USB, Ethernet, and WiFi. Additionally, it supports the connection of multiple displays to a single computer.
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.
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.
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.
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.