Что: cd33090403f066bb2394507dccdd4a898fee8e64
Когда: 2022-09-05 17:30:36+03:00
Темы: go nncp
NNCP не собирался на Go 1.19 http://www.nncpgo.org/Release-8_005f8_005f0.html https://github.com/inetaf/netstack/issues/4 https://news.ycombinator.com/item?id=32699261 Я сижу на самых последних версиях Go. И почти сразу же обновляю GOST-овый fork (http://www.gostls13.cypherpunks.ru/). Но далеко не весь софт пересобираю им. Вот и NNCP, который у меня постоянно везде и всегда трудится -- не обновлялся. Оказывается он вообще отказывается собираться под Go 1.19. Всё дело в зависимостях связанных с реализацией TCP/IP стэка, опционально используемой при работе с Yggdrasil. Когда-то там использовалась gVisor библиотека (6ed95a2d84010e41e16c5ee891649d470f765241), потом перешёл на inet.af/netstack -- fork gVisor только с netstack частью, без тьмищи зависимостей. Кроме того, были какие-то проблемы на 32-х битных системах у gVisor, а в inet.af было исправлено это. Но внутри этого inet.af/netstack в ряде файлов явно стоит "!go1.19". Судя по коммитам, это авторы добавили просто на всякий случай -- мол они не проверяли всю эту unsafe работу с новыми версиями и явно указывают на это. Руками удалил эти build тэги -- вроде бы всё работает, хотя и нет уверенности. Более того, как оказалось, этот inet.af вообще стал заброшенным проектом, так как Фитцпатрик больше не имеет проблем с кучей зависимостей gVisor-а после Go 1.17, который умеет делать lazy подгрузку модулей. Если сделать "go mod tidy -compat=1.17", то он круто подчищает зависимости от всяких излишеств. И действительно, проблем с gVisor-ом больше нет. Снова переехал на него, уже на значительно более новую версию, где и куча обратно несовместимых изменений API было. Но это же Go: я буквально не более десяти минут потратил чтобы понять что и как надо подправить.
Сгенерирован: SGBlog 0.34.0