Skip to content

FreeBSD: проверить сборку, заявить, добавить в CI; так же — другие платформы без больших усилий #166

Open

Description

@unxed

Суть

Пользователи пишут, что DN собирается под FreeBSD, хотя в документации это не заявлено: в README сейчас «runs on Windows, Linux and DOS», в tools/build.sh нет FreeBSD-цели, в CI FreeBSD тоже нет. При этом таблица путей в README уже упоминает «Linux, BSD». Нужно проверить, и если сборка подтверждается — заявить поддержку и закрепить её в CI. Так же поступить с другими платформами, которые добавляются без больших усилий.

Атомарный план

Один шаг — один PR, обязательные проверки по паспорту (dn.yml, dn-linux.yml, dn-windows.yml и т. д.). Локально ничего не собирать — только CI. После каждого шага — комментарий сюда.

  1. Проверка FreeBSD в CI. Workflow dn-freebsd.yml (например, vmactions/freebsd-vm, FPC 3.2.2 из pkg), запуск через workflow_dispatch и на PR, который его трогает. Цель freebsd64 в tools/build.sh (x86_64 FreeBSD, по образцу linux64). Сборка DN, ресурсов и справки. Готово: job собирает dn, прогон записан здесь. Если сборка падает — список ошибок в комментарии, и решение «чинится малой правкой / отдельный тикет».
  2. Тесты на FreeBSD. В том же job — юнит-тесты dn/tests и pty-сценарий tools/dn-linux-ops.py (или его переносимая часть). Готово: зелёный прогон; что не переносится, записано с причиной.
  3. Заявить. README (строка Alpha, раздел сборки), dn/README.md: FreeBSD x86_64 — статус по факту шага 2. Готово: документация не обещает больше, чем проверено в CI.
  4. В обязательные проверки и релиз. dn-freebsd.yml — на push в main и на PR; архив dn-<tag>-freebsd64.tar.gz в release.yml и nightly.yml (гейт tools/nightly-gate.sh). Готово: nightly содержит FreeBSD-архив; паспорт projects/dn/PROJECT.md в учётном репозитории обновлён.
  5. Другие платформы «без больших усилий». Для каждого кандидата — одна пробная сборка в CI и решение в комментарии: добавляем (если хватает правки build.sh и CI) или отдельный тикет с оценкой. Кандидаты, где FPC 3.2.2 есть готовым: FreeBSD aarch64, macOS x86_64 и arm64 (раннеры GitHub), Linux armhf, NetBSD и OpenBSD x86_64 (в VM). Готово: таблица «платформа → результат пробы → решение» в этом тикете; каждая принятая платформа проходит шаги 1–4 отдельными PR.

— Claude (по поручению владельца)

Activity

  1. added 4 commits that reference this issue on Oct 20, 2026
  2. unxed commented on Oct 20, 2026

    @unxed
    OwnerAuthor

    Шаг 1: сборка под FreeBSD x86_64 проходит — PR #167, прогон dn-freebsd https://github.com/unxed/dn/actions/runs/39502502236 зелёный на 76daf60.

    • VM FreeBSD 14.3-RELEASE (vmactions/freebsd-vm@v1), из пакетов: fpc (в пакетах FreeBSD сейчас 3.2.3, не 3.2.2), python3, git.
    • tools/build.sh freebsd64 — новая цель с теми же опциями и модулями, что linux64 (-dDPMI32 -dLINUX, dn/compat/linux): dn, rcp и tvhc собрались без ошибок; out/dn/dn — ELF 64-bit LSB executable, x86-64, (FreeBSD), statically linked; ресурсы (*.lng, *.dlg) и справка трёх языков (238/235/226 тем) — те же размеры, что у сборки linux64.
    • Единственное предупреждение — компоновщика FreeBSD про исполняемый стек у prt0.o из RTL самого FPC.
    • Правок исходников DN не понадобилось; в build.sh дата сборки теперь берётся и через BSD date -r.

    Решение по шагу 1: малых правок не нужно. Дальше шаг 2 — юнит-тесты dn/tests и pty-сценарий в том же job (после вливания #167). Отдельно: FPC 3.2.3 в пакетах FreeBSD против 3.2.2 в остальных сборках — учесть в шаге 3 (что заявлять).

    Лунобот-1 (node 801452e4fd3b9a26f8e6f02c; LNX; модель не раскрыта)


    Generated by Claude Code

  3. added 5 commits that reference this issue on Oct 20, 2026
  4. added 4 commits that reference this issue on Oct 20, 2026
  5. 78 remaining items

  6. added 2 commits that reference this issue on Oct 23, 2026
  7. unxed commented on Oct 24, 2026

    @unxed
    OwnerAuthor

    I verified the current release state after PR #184:

    The tagged-release archive criterion cannot be verified until the next naturally scheduled versioned release. I did not create a tag or trigger a release. Next step: when a natural versioned release appears, verify that its assets include the FreeBSD x86_64 archive and then update this issue and the account-215 queue record; keep this task open meanwhile.

    Lunobot-2 (node 19d368003c6c048e43dbec70; LNX; GPT-6 Luna; subagent)

  8. unxed commented on Oct 24, 2026

    @unxed
    OwnerAuthor

    One-time release snapshot — 24 October 2026 12:03 UTC: no new versioned release has appeared since the previous snapshot. The versioned tags/releases remain v2.20-alpha.2 (561bb733cbbcfbc72a9271377089fb08d25a4c57, published 21 October) and v2.20-alpha.1; the newer nightly release (23 October) is floating and does not count as a versioned release.

    Therefore the next natural versioned release has not yet provided an artifact to inspect. The FreeBSD archive criterion for a tagged release remains unverified; no tag or release was triggered. Next condition: once a natural versioned release appears, check whether it includes the FreeBSD x86_64 archive and report that fact.

    Lunobot-2 (node 19d368003c6c048e43dbec70; LNX; GPT-6 Luna; subagent)

  9. added 2 commits that reference this issue on Oct 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions