Page MenuHomeFreeBSD

D58446.diff
No OneTemporary

D58446.diff

diff --git a/website/content/ru/news/2026-ports-freeze/_index.adoc b/website/content/ru/news/2026-ports-freeze/_index.adoc
--- a/website/content/ru/news/2026-ports-freeze/_index.adoc
+++ b/website/content/ru/news/2026-ports-freeze/_index.adoc
@@ -4,12 +4,18 @@
loadNews: false
---
+:doctype: book
+:toc: macro
+:toclevels: 2
+
include::shared/ru/urls.adoc[]
+toc::[]
+
= Заморозка репозитория портов 21 июля 2026 года
-Репозиторий портов был заморожен начиная с вторника, 21 июля 2026 года. +
-Нет никаких оснований полагать, что дерево было скомпрометировано. +
+Репозиторий портов был заморожен начиная со вторника, 21 июля 2026 года. +
+Нет никаких оснований полагать, что дерево портов было скомпрометировано. +
Эта страница будет документировать данную заморозку. +
:toc:
@@ -21,9 +27,12 @@
https://lists.freebsd.org/archives/freebsd-announce/2026-July/000294.html
+_**From:**_ Kyle Evans <kevans_at_FreeBSD.org> +
+_**Date:**_ Wed, 22 Jul 2026 20:58:21 UTC
+
Вы, возможно, заметили, что репозиторий портов заморожен уже почти 24 часа на момент написания этого сообщения. Наше заявление о ситуации и дальнейших действиях приведено ниже.
-В дерево портов недавно был зафиксирован бинарный файл размером 150 МБ, и в результате этого core@ принял решение о временной заморозке дерева портов для проведения очистки. Указанный коммит нарушил зеркалирование нашего дерева портов на github.com из-за жёсткого ограничения на размер файлов в 100 МБ, а также внёс в историю репозитория объект с сомнительной лицензионной чистотой.
+В дерево портов недавно был сделан коммит бинарного файла размером 150 МБ, и в результате этого core@ принял решение о временной заморозке дерева портов для проведения очистки. Указанный коммит нарушил зеркалирование нашего дерева портов на github.com из-за жёсткого ограничения на размер файлов в 100 МБ, а также внёс в историю репозитория объект с сомнительной лицензионной чистотой.
Учитывая важность зеркалирования на github.com для нашего сообщества, мы активно предпринимаем шаги по удалению проблемных коммитов и восстановлению зеркалирования на внешние сервисы. Нет никаких оснований полагать, что дерево портов было скомпрометировано. Заморозка была полностью направлена на ограничение количества коммитов, которые потребуется переписать для приведения репозитория к корректному состоянию.
@@ -38,3 +47,89 @@
С уважением,
Кайл Эванс (от имени core@)
+
+[[announce-action]]
+== Объявление: 24 июля 2026 года
+
+Второе объявление было опубликовано в https://lists.freebsd.org/archives/freebsd-announce/[списке рассылки announce@].
+
+https://lists.freebsd.org/archives/freebsd-announce/2026-July/000295.html
+
+_**From:**_ Kyle Evans <kevans_at_FreeBSD.org> +
+_**Date:**_ Fri, 24 Jul 2026 17:48:16 UTC
+
+=== ПРЕДЫСТОРИЯ
+
+20 июля 2026 года в дерево портов был сделан коммит бинарного файла размером 150 МБ, что привело к сбою зеркалирования на GitHub и, возможно, на другие Git-форжи из-за жёсткого ограничения на размер файлов в 100 МБ.
+Кроме того, остаётся неясным, позволяет ли лицензия бинарного файла его распространение таким образом.
+
+21 июля 2026 года core@ узнал о нарушении зеркалирования и запросил приостановку отправки изменений (push) в репозиторий портов на время оценки ситуации.
+В ходе обсуждений в последующие часы между участниками групп gitadm@, clusteradm@, portmgr@ и core@ был выработан предварительный план по переписыванию истории репозитория для удаления проблемного файла.
+При этом было согласовано ограничение, согласно которому результирующее состояние должно быть воспроизводимо третьими сторонами и не должно создавать избыточной нагрузки на конечных потребителей дерева портов.
+
+Решение о том, что результирующее состояние должно быть воспроизводимо третьими сторонами, было принято исходя из общего мнения, что мы не должны требовать слепого доверия и что мы должны предоставить нашим пользователям и потребителям возможность следовать тем же принципам.
+Хотя `git rebase` может легко удалить проблемные коммиты, это налагает бо́льшую нагрузку на аудит со стороны сообщества, поскольку переписываются имена коммиттеров и временные метки.
+Это также затрагивает сообщества, имеющие форки дерева портов.
+Предоставление механизма для повторения этой операции имеет потенциальное влияние, выходящее далеко за пределы нашего собственного сообщества, и мы благодарим вас за понимание и терпение, пока мы работали над правильным решением.
+
+
+=== ТРЕБУЕМЫЕ ДЕЙСТВИЯ
+
+Хеши коммитов в ветке `main` для коммитов после a70c5c3fd44b были изменены, что может повлиять на использование вами дерева портов.
+Для всех потребителей дерева портов ожидается, что скрипт воспроизведения, ссылка на который приведена ниже, приведёт состояние вашего репозитория в соответствие с новым состоянием авторитетного репозитория, но это не единственный вариант.
+
+Для коммиттеров и контрибьюторов: ожидающие пул-реквесты и локальные ветки необходимо перебазировать поверх новой истории.
+Например:
+
+[source,shell]
+----
+git rebase --onto f9c90a4f96f0700 0a717e9c118aa6
+----
+
+Где "0a717e9c118aa6" следует заменить на _старый_ хеш коммита вышестоящего репозитория (upstream), на котором основана ваша ветка.
+
+Патч-файлы не должны быть затронуты, поскольку переписывание было ограничено портом misc/github-copilot-cli.
+
+Для потребителей (downstreams): рекомендуется запустить приведённый ниже скрипт воспроизведения, особенно если у вас есть локальные изменения в вашем дереве.
+Скрипт удалит все криптографические подписи существующих коммитов после коммита с бинарным файлом для достижения воспроизводимости.
+Обратите внимание, что в скрипт встроены два хеша коммитов, которые необходимо изменить, если ваша ветка содержит локальные изменения, которые могут сделать их недействительными. Инструкции по замене включены в комментарии.
+
+
+=== ПРОЗРАЧНОСТЬ
+
+Скрипт, использованный для переписывания истории коммитов, доступен для независимой проверки и воспроизведения результирующего состояния:
+
+https://www.freebsd.org/news/2026-ports-freeze/ports-reset.sh +
+SHA256 (ports-reset.sh) = 9f954e7e229a1f3f0c452a98c433d70a0dbd265fc528bca6d082068d154536e8
+
+Этот скрипт следует запускать внутри рабочей копии дерева портов. Обратите внимание, что он не пытается полностью удалить предыдущую версию вашей ветки.
+Восстановление возможно путём получения предыдущего хеша коммита из `git reflog`, если локальная версия вашей ветки не имеет удалённого репозитория для восстановления.
+Сборка мусора Git со временем очистит старую ветку в вашем репозитории.
+
+=== ДАЛЬНЕЙШИЕ ШАГИ
+
+Примечания к коммитам будут добавлены как к переписанным коммитам в ветке `main`, так и к коммитам в этом диапазоне, которые были перенесены (backported) в 2026Q3, с указанием старых и новых хешей коммитов наименее инвазивным способом.
+Мы считаем, что планка для переписывания ветки с обновлениями безопасности значительно выше, и мы решили принять тот факт, что пять коммитов будут иметь некорректные сообщения, ссылающиеся на недействительные хеши коммитов при cherry-pick.
+
+Серверные хуки внедряются во всех трёх репозиториях для предотвращения будущих инцидентов подобного рода.
+Точная конфигурация ещё не полностью доработана, но предполагается, что будет установлен жёсткий верхний предел размера файлов, а также некоторые более низкие «мягкие» ограничения, для превышения которых потребуется `--push-option` или одобрение portmgr/srcmgr/doceng.
+Будут рассмотрены отдельные хуки для проверки лицензирования бинарных артефактов, вносимых в репозиторий.
+
+=== ЗАКЛЮЧЕНИЕ
+
+Огромная благодарность всем участникам реагирования на инцидент за время, потраченное на то, чтобы обеспечить выполнение этой операции способом,
+поддающимся аудиту, воспроизводимым и с учётом огромного влияния как заморозки репозитория, так и предстоящего переписывания.
+Переписывание истории коммитов не было решением, принятым легкомысленно, но было признано, что затраченное время на правильное выполнение было наименее плохим вариантом как для проекта, так и для внешних деревьев портов, которые могут иметь свои собственные изменения, следующие за проблемными коммитами.
+
+Особая благодарность clusteradm@ за согласие с планом переписывания истории, глядя на длинный список инфраструктуры кластера, которую необходимо будет исправить в результате.
+
+Дерево портов будет разморожено для обычных операций в ближайшие часы, но восстановление инфраструктуры будет проводиться в течение следующей недели.
+Кластерные сборки пакетов не будут перезапущены немедленно, но возобновятся не позднее 26 июля 2026 года.
+
+С уважением,
+
+Рене Ладан (от имени portmgr@)
+Кайл Эванс (от имени core@)
+
+Копия этого сообщения доступна отдельно для проверки по адресу:
+https://people.freebsd.org/~kevans/core/ports-freeze-final.txt.asc
diff --git a/website/data/ru/news/news.toml b/website/data/ru/news/news.toml
--- a/website/data/ru/news/news.toml
+++ b/website/data/ru/news/news.toml
@@ -1,9 +1,14 @@
# Новости сортируются по году, месяцу и дню
+[[news]]
+date = "2026-07-24"
+title = "Требуемые действия с репозиторием Ports"
+description = "Опубликован подробный отчёт о заморозке репозитория портов, включающий инструкции по восстановлению рабочей копии и скрипт для воспроизведения изменений истории. Дополнительная информация о заморозке и дополнительных действиях доступна на странице <a href=\"https://www.FreeBSD.org/ru/news/2026-ports-freeze/#announce-action\">Заморозка портов 2026</a>."
+
[[news]]
date = "2026-07-23"
title = "Доступ в репозиторий Ports временно приостановлен"
-description = "Репозиторий портов заморожен для отката очень крупного коммита. Нет никаких оснований полагать, что дерево было скомпрометировано. Дополнительная информация о заморозке доступна на странице <a href=\"https://www.FreeBSD.org/ru/news/2026-ports-freeze/\">Заморозка портов 2026</a>."
+description = "Репозиторий портов заморожен для отката очень крупного коммита. Нет никаких оснований полагать, что дерево портов было скомпрометировано. Дополнительная информация о заморозке доступна на странице <a href=\"https://www.FreeBSD.org/ru/news/2026-ports-freeze/\">Заморозка портов 2026</a>."
[[news]]
date = "2026-06-30"

File Metadata

Mime Type
text/plain
Expires
Thu, Jul 30, 12:59 PM (13 h, 34 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
35698573
Default Alt Text
D58446.diff (16 KB)

Event Timeline