Бэкпорт

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Бэкпо́рт (от англ. back-porting) — применение (с возможной доработкой) патчей, предназначенных для основной, развивающейся в данный момент версии программы, к более старым версиям. Бэкпортирование осуществляется для поддержания «стабильных» версий (обычно производится разработчиком программы), или из актуальной — в устаревшие, не поддерживаемые (обычно производится сторонними энтузиастами)[1]. Самая распространённая причина бэкпортирования — решение проблем безопасности.

Поясняющий пример[править | править вики-текст]

  • В «Программе» 2.0 обнаружена проблема, которая решается через изменение определённой строчки с «здесьКроетсяОпасность» на «теперьБезопасно».
  • Аналогичная проблема найдена в «Программе» 1.0, но в ней присутствует уже другой текст: «тутКроетсяОпасность».

Переработка патча для версии 2.0 («здесьКроетсяОпасность» → «теперьБезопасно») в патч для версии 1.0 («тутКроетсяОпасность» → «теперьБезопасно») и есть бэкпорт.[2]

В реальной жизни бэкпорт может состоять как в изменении нескольких строк кода, так и в переработке многих файлов во многих местах.

Производство бэкпортов[править | править вики-текст]

Если исходный код программы закрыт, то единственным возможным источником бэкпортов (которые в этом случае, естественно, также распространяются в бинарном виде) является разработчик программы. Для программ же с открытым исходным кодом бэкпорты нередко осуществляются распространителями программы (последние обычно заинтересованы в поддержке старых версий, поскольку в оной заинтересованы их клиенты), или, реже, пользователями программы; затем уже подготовленные наборы патчей отсылаются разработчику.

Реальный пример[править | править вики-текст]

В качестве примера можно привести бэкпорт патча v0.29[3], предназначенного для ядра Linux версии 2.6.19, к версии 2.6.18.8:

неправильно назвали патч, вместо 0.28 указали 0.26. Кроме того, уже есть версия 0.29. Поэтому они предоставили бэкпорт планировщика версии 0.29 на ядро 2.6.18.8.

См. также[править | править вики-текст]

Ссылки[править | править вики-текст]

  1. Обновление проприетарных драйверов с помощью бэкпортов
  2. HOWTO: Бэкпорт MSVC-проекта из Visual Studio 2008 в Visual Studio 2003
  3. Бэкпорт RSDL v0.29 на 2.6.18.8