Торвальдс устроил разнос из-за мусора в сборке Linux.
Hdrtest проверяет C-файлы, но ломает настроение Торвальдса.
Все обновления драйверов графики из ветки DRM-Next успешно вошли в ядро Linux 6.15, однако сам Линус Торвальдс остался недоволен одним из компонентов. Речь идёт о тестовом коде с названием «hdrtest», который включён в основную сборку ядра и, по мнению Торвальдса, оставляет за собой «мусор» в дереве исходников. В своей классической резкой манере он выразился, что этот код «должен быть уничтожен», по крайней мере, если смотреть на ситуацию со стороны разработчиков, не связанных с DRM-драйверами.
В письме в рассылке,
опубликованном в пятницу вечером, Торвальдс пишет, что слияние прошло, конфликты были незначительными, но его возмутило появление «омерзительного hdrtest-мусора», который:
а) замедляет сборку, потому что запускается при полной allmodconfig-сборке, а не как отдельный тест по запросу; б) оставляет случайные файлы в каталогах include, засоряя дерево исходников.
Он отметил, что жалобы на это уже поступали ранее и что код не должен был попадать в основную ветку в таком виде. «Почему вообще эти тесты выполняются как часть обычной сборки? — возмутился Торвальдс. — Мы не добавляем случайные файлы-зависимости, которые портят дерево исходников».
Он также добавил, что именно благодаря «git status», который жаловался на мусорные файлы, он и заметил проблему. Но куда хуже то, что эти файлы мешают автодополнению имён при работе в консоли. И добавление их в .gitignore, по его мнению, лишь замаскировало бы проблему, а не решило её.
В итоге он временно отключил hdrtest, пометив его как BROKEN (сломанный). «Если вы хотите запускать этот hdrtest, делайте это в рамках своих собственных проверок. Не заставляйте остальных видеть это омерзительное нечто у себя в дереве. Лучше сделать его отдельной целью сборки вроде make drm-hdrtest, а не частью стандартной сборки», — заключил он.
На первый взгляд могло показаться, что речь идёт о тестировании поддержки HDR (High Dynamic Range), тем более что в последнее время в Linux активно ведётся работа над управлением цветом и расширенным динамическим диапазоном. Однако при детальном разборе выяснилось, что «hdr» в данном случае означает header — то есть C-заголовочные файлы. Код hdrtest предназначен для нового драйвера Intel Xe и используется для проверки того, что заголовки DRM написаны корректно, самодостаточны и проходят проверку kernel-doc. То есть это банальная проверка качества служебных файлов, просто внедрённая неудачным способом.
Таким образом, вся ветка DRM-Next уже попала в Linux 6.15, но теперь разработчикам предстоит убрать за собой следы — иначе Торвальдс лично проследит, чтобы hdrtest исчез из основного ядра.