NurOS
60 subscribers
56 photos
3 videos
6 files
146 links
Shine brighter than the rest by thinking different. | nuros.org
Download Telegram
Всех школьников с концом учебного года!

Наконец-то учебный год закончился, и разработка NurOS снова будет эффективнее.. надеюсь.

@nuros_tg | GitHub | Packages
🔥1
Всех с первым днём лета, а детей, с днём защиты детей!

Пришло лето. Я пока не дома, но мой ноутбук со мной, и я буду пытаться работать над NurOS.

Возможно, я вернусь домой только к концу июня.

Всем хорошего настроения и удачного лета!

@nuros_tg | GitHub | Packages
Подписчики уходят и уходят...

Кстати, почему подписчики уходят? Я не совсем понимаю, почему.

Вроде бы посты есть, канал не заброшен, а подписчики уходят.

Может быть, вам интересна техническая часть? Могу публиковать чейнжлоги в этот канал.

@nuros_tg | GitHub | Packages
В libapg реализована цепочка доверия!

Теперь есть keyring — набор доверенных публичных ключей. Новый ключ можно добавить только если он подписан существующим доверенным ключом.

Поддерживаются два бэкенда: gpgme и libsodium.

@nuros_tg | GitHub | Packages
Стоит ли переводить neoinit на toml?
Final Results
80%
Стоит, toml удобнее
20%
Не думаю, yaml лучше
А вчера был реализован transaction API в той же libapg.

Теперь фронтенд может собрать набор операций, получить план до их исполнения и применить его.

Что умеет:
- Разрешение транзитивных зависимостей с помощью графа.
- Нахождение конфликтов уже установленных пакетов.
- Вывод плана до коммита.
- Откат записей базы данных при ошибке.

@nuros_tg | GitHub | Packages
1
⚡️⚡️ ArchLinux Install Scripts — В С Ё.

Cosmoblade и AnmiTaliDev жёстко про ArchLinux Install Scripts.

Мы начали работу по созданию утилит, способных заменить ArchLinux Install Scripts. Яркий тому пример — warproot, утилита, призванная заменить arch-chroot, написанная на Go.

@nuros_tg | GitHub | Packages
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Вот что прятал артист Shaman* в своей папке...

...за это мелкомягкие** хотели его устранить.

Это утилита carryon, чтобы можно было легко собрать конфигурации и пакеты в один файл, для того, чтобы дистрохоппить или переустанавливать систему.

* — признан иноагентом в Нуростане
** — признана экстремистской организацией в Нуростане

@nuros_tg | GitHub | Packages
👏1
NurOS
Стоит ли переводить neoinit на toml?
Neoinit теперь будет использовать TOML.

Вы выбрали формат TOML взамен YAML. В скором времени мы начнем переписывать код, который использовался в TOML.

@nuros_tg | GitHub | Packages
🔥1
В libapg реализованы версионные ограничения для зависимостей.

Теперь в метаданных пакета можно указывать не только имя пакета, но и условие версии.

@nuros_tg | GitHub | Packages
1
Теперь в libapg можно узнать, какой пакет владеет каким файлом.

При установке пакета библиотека сканирует файлы и сохраняет их список внутри LMDB.

@nuros_tg | GitHub | Packages
Теперь публичный API libapg задокументирован.

Мы задокументировали заголовочные файлы libapg с помощью Doxygen, Sphinx и Breathe с использованием темы Furo.

Документация собирается через GitHub Actions и доступна по этому адресу.

@nuros_tg | GitHub | Packages
Проект althost передан под крыло neoinit и переписан на Zig.

Теперь althost — утилита для управления hostname, альтернатива hostnamectl, ранее написанная на Rust, переписана на Zig в организации NeoInit.

А также, как раз таки, была создана организация neoinit.

URL организации neoinit. URL проекта althost.

@nuros_tg | GitHub | Packages
🔥1
А ну сегодня было реализовано.. пока ничего.

@nuros_tg | GitHub | Packages
Примерно так я работаю последние пару дней, пока я в деревне...

Фото взято из Telegram-канала /home.

@nuros_tg | GitHub | Packages
1
Вчера не было поста, я забыл (я гулял).

@nuros_tg | GitHub | Packages
Что было сделано вчера?

Во-первых, я хорошо погулял.
Во-вторых, я хорошо погулял.
В-третьих, я хорошо погулял.

А также в libapg был большой апдейт:
- Закрыли пункт roadmap install policy.
- Добавили .clang-format.
- Удалили репозиторий из конфигурации, это работа фронтенда, а не бэкенда.
- Добавили скрипты проверок.
- Отформатировали код.
- Добавили три теста для той же install policy.

@nuros_tg | GitHub | Packages
Мы все спали, пока Meigo писал Одиссею несколько раз...

Вышел Tulpar Server 2.0 (preview 1).

Вот список изменений (текст писал не я):

* Feat: native APG (tar.xz) reading and metadata parsing, libAPG-faithful;
* Feat: APG validator (apgcheck-style v1/v2 structure + checksum verification) with a libAPG meta.json/metadata.json compatibility warning;
* Feat: version comparison and dependency-constraint parsing ported from libAPG (>=, <=, ==, !=, >, <);
* Feat: tolerant checksum handling — sha256/crc32/md5, both hash path and path hash line orders, canonical output on write;
* Feat: repository index over pool/<channel>/<name>/<arch>/ with a generated canonical repodata.json;
* Feat: clean v2 REST API — list/filter/search, package detail, download .apg + .sig, /repodata.json;
* Feat: authenticated package publishing (POST /api/v2/packages, multipart, Bearer token) with validation;
* Feat: package delete / yank (DELETE /api/v2/packages/..., Bearer token);
* Feat: Bearer-token auth with constant-time comparison;
* Feat: check CLI subcommand to validate an .apg offline (exit 0/1);
* Feat: /metrics HTTP endpoint (JSON snapshot);
* Feat: /api/v2/health and /api/v2/version endpoints;
* Feat: package channels support (e.g. main/core/extra);
* Feat: signature-safe serving — package bytes are stored and served verbatim so detached .apg.sig stays valid;
* Feat (backported from 1.x): per-IP request rate limiting with automatic bans;
* Feat (backported from 1.x): manual IP ban / unban / banlist;
* Feat (backported from 1.x): per-IP concurrent-download cap and download-speed throttling;
* Feat (backported from 1.x): periodic metrics collector (CPU, heap/non-heap, banned IPs, counters);
* Feat (backported from 1.x): in-memory request log (now bounded);
* Feat (backported from 1.x): interactive admin console (help/packages/reindex/metrics/log/ban/unban/banlist/version/restart/stop);
* Feat (backported from 1.x): TLS/HTTPS support (now fully functional);
* Fix: Gradle 9 build failure — switched from io.github.goooler.shadow 8.1.8 (referenced the removed mainClassName) to com.gradleup.shadow 9.4.2;
* Fix: path-traversal in package serving and publishing — segment validation + canonical-path containment;
* Fix: rate-limited requests now return HTTP 429 (legacy returned HTTP 200);
* Fix: ban evasion — X-Forwarded-For is trusted only when explicitly behind a configured reverse proxy;
* Fix: download-limiter race conditions — atomic acquire/release, no slot leaks, cap can't be transiently exceeded;
* Fix: request log no longer grows unbounded;
* Fix: TLS now actually wired up (legacy setupssl never attached the connector);
* Fix: atomic publish writes (temp file + atomic move) with temp cleanup on failure;
* Build: add committed Gradle wrapper (gradlew, gradlew.bat, gradle-wrapper.jar) — referenced by README but previously missing;
* Build: stop tracking build/, .idea/, .gradle/ (141 stale files) and extend .gitignore;
* Build: add dependencies — kotlinx-serialization-json, commons-compress + xz, ktor auth / content-negotiation / http-redirect / test-host;
* Removed: Jython + apgunpacker.py Python dependency (replaced by native tar.xz reading);
* Removed: legacy /api/v2.0/* and VadimAPI endpoints (superseded by the v2 REST API);
* Removed: server self-update (UpdateManager) — out of scope for the repository server;
* Changed: reworked HOCON config schema (server / repo / limits / publish / metrics / tls / cli);
* Test: 88 unit + integration tests (APG domain, repository index, REST routes, security, publish, metrics); all passing;
* Docs: rewrite README for 2.0 (v2 API, configuration, publishing, package format);
* Docs: add Contributor Covenant 2.0 CODE_OF_CONDUCT.md (aligns with the NurOS organization);


@nuros_tg | GitHub | Packages
🔥1
А вы знали, что у libapg уже более сотни коммитов?

Я вот только сейчас увидел.

@nuros_tg | GitHub | Packages