Вы, возможно, заметили, что репозиторий портов заморожен уже почти 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@].
+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): рекомендуется запустить приведённый ниже скрипт воспроизведения, особенно если у вас есть локальные изменения в вашем дереве.
+Скрипт удалит все криптографические подписи существующих коммитов после коммита с бинарным файлом для достижения воспроизводимости.
+Обратите внимание, что в скрипт встроены два хеша коммитов, которые необходимо изменить, если ваша ветка содержит локальные изменения, которые могут сделать их недействительными. Инструкции по замене включены в комментарии.
+
+
+=== ПРОЗРАЧНОСТЬ
+
+Скрипт, использованный для переписывания истории коммитов, доступен для независимой проверки и воспроизведения результирующего состояния:
+Этот скрипт следует запускать внутри рабочей копии дерева портов. Обратите внимание, что он не пытается полностью удалить предыдущую версию вашей ветки.
+Восстановление возможно путём получения предыдущего хеша коммита из `git reflog`, если локальная версия вашей ветки не имеет удалённого репозитория для восстановления.
+Сборка мусора Git со временем очистит старую ветку в вашем репозитории.
+
+=== ДАЛЬНЕЙШИЕ ШАГИ
+
+Примечания к коммитам будут добавлены как к переписанным коммитам в ветке `main`, так и к коммитам в этом диапазоне, которые были перенесены (backported) в 2026Q3, с указанием старых и новых хешей коммитов наименее инвазивным способом.
+Мы считаем, что планка для переписывания ветки с обновлениями безопасности значительно выше, и мы решили принять тот факт, что пять коммитов будут иметь некорректные сообщения, ссылающиеся на недействительные хеши коммитов при cherry-pick.
+
+Серверные хуки внедряются во всех трёх репозиториях для предотвращения будущих инцидентов подобного рода.
+Точная конфигурация ещё не полностью доработана, но предполагается, что будет установлен жёсткий верхний предел размера файлов, а также некоторые более низкие «мягкие» ограничения, для превышения которых потребуется `--push-option` или одобрение portmgr/srcmgr/doceng.
+Будут рассмотрены отдельные хуки для проверки лицензирования бинарных артефактов, вносимых в репозиторий.
+
+=== ЗАКЛЮЧЕНИЕ
+
+Огромная благодарность всем участникам реагирования на инцидент за время, потраченное на то, чтобы обеспечить выполнение этой операции способом,
+поддающимся аудиту, воспроизводимым и с учётом огромного влияния как заморозки репозитория, так и предстоящего переписывания.
+Переписывание истории коммитов не было решением, принятым легкомысленно, но было признано, что затраченное время на правильное выполнение было наименее плохим вариантом как для проекта, так и для внешних деревьев портов, которые могут иметь свои собственные изменения, следующие за проблемными коммитами.
+
+Особая благодарность clusteradm@ за согласие с планом переписывания истории, глядя на длинный список инфраструктуры кластера, которую необходимо будет исправить в результате.
+
+Дерево портов будет разморожено для обычных операций в ближайшие часы, но восстановление инфраструктуры будет проводиться в течение следующей недели.
+Кластерные сборки пакетов не будут перезапущены немедленно, но возобновятся не позднее 26 июля 2026 года.
+
+С уважением,
+
+Рене Ладан (от имени portmgr@)
+Кайл Эванс (от имени core@)
+
+Копия этого сообщения доступна отдельно для проверки по адресу:
+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>."