Портируем ваше ПО под Astra Linux, ALT и РЕД ОС

Разбираем зависимости, дорабатываем код, собираем и подписываем пакеты, прогоняем на каждой заявленной ОС. Готовим техническую часть для реестра — заявку подаёте вы как правообладатель. Работаем на ваших стендах, исходники никуда не уезжают.

Проверка совместимости — от 150 000 ₽Сборочный конвейер остаётся у васРаботаем по NDA

Граница услуги

На чём держится эта работа

Первое условие читайте внимательно: из-за него часть проектов заканчивается на разборе, и это лучше, чем закончиться после оплаты.

Реестр — это не только техника

Портирование закрывает техническое условие. Остальные — про правообладание, выплаты за рубеж и поддержку на территории России. Если они не выполнены, портирование в реестр не приведёт, и мы скажем это на первом созвоне, а не после договора.

Заключение о совместимости выдаём не мы

Его даёт вендор операционной системы по своей программе: Astra Linux Ready, «Совместимо с Альт», программа РЕД СОФТ. Мы доводим сборку до состояния, когда его выдают, готовим материалы и отрабатываем замечания.

Сборочный конвейер остаётся у вас

Не только пакеты: рецепты сборки, скрипты, описание окружения. Следующую версию ваша команда должна собрать без нас — иначе портирование превращается в подписку на подрядчика.

Срок называем после разбора зависимостей

Пока не видно, на чём написано приложение и от чего оно зависит, любой срок — выдумка. Разбор занимает от недели и стоит денег; он же показывает, стоит ли вообще браться.

Зачем это нужно

С чем обычно приходят

Заказчик требует ОС из реестра

В конкурсной документации появилась строка про Astra Linux, и продукт, который жил на Windows десять лет, внезапно перестал подходить.

Собирается только на одной машине

Сборка держится на окружении конкретного разработчика. Портировать нечего, пока непонятно, как оно вообще собирается.

Не запускается под замкнутой средой

Astra Linux Special Edition в режиме ЗПС не запустит неподписанный исполняемый файл. Приложение работает на обычной сборке и молча не стартует на целевой.

Ломается на мандатных метках

Мандатное разграничение доступа отбирает права, на которые приложение рассчитывало. Ошибки выглядят как что угодно, только не как проблема с правами.

Зависимостей нет в репозиториях

Библиотека, которая ставилась одной командой, в репозитории целевой ОС отсутствует или лежит в другой версии. Её придётся собирать самим.

Интерфейс написан под Windows

WPF, WinForms и Win32 под Linux не переносятся, а переписываются. Это самая недооценённая часть работы.

Реестр

Восемь условий, и портирование закрывает три

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

Техника · мы
Совместимость с ОС из реестраСборка ставится, запускается и проходит сценарии на целевой ОС в заявленной редакции. Вендор подтверждает совместимость по своей программе.
Техника · мы
Установка, обновление и удаление штатными средствамиПакет с корректными зависимостями, обновление без потери данных, чистая деинсталляция. Проверяется вручную, на каждой заявленной ОС.
Техника · мы
Документация: описание, установка, эксплуатацияСамая частая техническая причина возврата заявки — не код, а неполный комплект документов.
Юридическое · вы
Исключительное право у российского правообладателяТребования к составу владельцев и доле иностранного участия — вопрос к вашему юристу, не к нам.
Юридическое · вы
Выплаты иностранным лицам ниже установленного порогаСчитается от выручки по этому продукту за год. Это бухгалтерия, техническая работа на неё никак не влияет.
Юридическое · вы
Поддержка оказывается на территории РоссииНужны свои каналы обращений и регламент. Наше сопровождение сборок их не заменяет.
Стоп · сначала это
В составе есть компоненты, недоступные для использования в РоссииЗаменять их надо до портирования. Иначе техническая работа будет сделана, а заявка всё равно не пройдёт.
Стоп · сначала это
Продукт не отвязывается от зарубежной проприетарной платформыОболочку портировать можно, но если ядро продукта — чужая платформа с непередаваемой лицензией, портирование проблему не решает.

Точные формулировки — в постановлении Правительства РФ № 1236 и приказах Минцифры; редакция меняется, и по состоянию на момент вашей подачи её надо смотреть заново. Мы не юридическая фирма и юридическую часть не консультируем — но говорим прямо, когда видим, что техническая работа одна вопрос не закроет.

Оценка

Что сломается в вашем стеке

Сроки и цена портирования определяются одной вещью — тем, на чём написано приложение. Последняя колонка — про ожидания, которые чаще всего приходится разбивать на первом созвоне.

На чём написано
Что обычно ломается
Насколько это работа
Чего ждать не стоит
На чём написано.NET FrameworkWinForms, WPF, COM
Что обычно ломаетсяWindows-only API, реестр Windows, WPF под Linux не работает вовсе
Насколько это работаТяжело: интерфейс переписывается, а не переносится
Чего ждать не стоитЧто «просто пересоберём под Mono». Mono закрывает не всё, а WPF — не закрывает совсем
На чём написано.NET 6 и новееASP.NET Core, консольные службы
Что обычно ломаетсяПути и регистр в именах файлов, службы Windows, шрифты, кодировки
Насколько это работаСредне: код в основном едет, переделывается окружение и упаковка
Чего ждать не стоитЧто интеграции с Windows-инфраструктурой поедут как есть
На чём написаноC и C++Win32 API, MSVC
Что обычно ломаетсяСистемные вызовы, сборка, зависимости от студийного окружения
Насколько это работаТяжело, если Win32 размазан по коду; средне, если он изолирован в слое
Чего ждать не стоитБыстрого результата без слоя совместимости или его переписывания
На чём написаноJavaSpring, Swing, JavaFX
Что обычно ломаетсяОбычно едет. Спотыкается на путях, шрифтах, отрисовке и нативных библиотеках
Насколько это работаЛегко или средне: чаще работа в упаковке, а не в коде
Чего ждать не стоитЧто упаковка достанется бесплатно — пакет и зависимости это тоже работа
На чём написаноPythonсервисы и утилиты
Что обычно ломаетсяПакетов из PyPI нет в репозиториях целевой ОС, интерпретатор старше нужного
Насколько это работаСредне: пересборка зависимостей или поставка их в комплекте
Чего ждать не стоитЧто pip install сработает в закрытом контуре без интернета
На чём написаноElectron и веб-клиентдесктоп на вебе
Что обычно ломаетсяСама Electron, кодеки, песочница, подпись под замкнутой средой
Насколько это работаСредне: спотыкается на упаковке и запуске чаще, чем на коде
Чего ждать не стоитЧто расход памяти и размер после портирования уменьшатся
Что делаем

Восемь направлений работ

Шестое направление выглядит скучно и стоит дороже всего в перспективе: без него вы вернётесь к нам за каждой следующей версией.

Разбор зависимостей и совместимости

Дерево зависимостей, что есть в репозиториях целевых ОС, а что придётся собирать самим. Здесь же становится видно, во что превратится работа.

1–2 недели

Доработка кода

Пути и регистр, системные вызовы, работа со шрифтами и локалью, интерфейс. Правки идут в ваш репозиторий, а не в нашу копию.

от 3 недель

Сборка пакетов

deb и rpm с корректными зависимостями: установка, обновление без потери данных, чистое удаление.

1–2 недели

Подпись и запуск под замкнутой средой

Astra Linux Special Edition в режиме ЗПС не запускает неподписанное. Настраиваем подпись, ключи и регламент выпуска версий.

3–7 дней

Мандатный доступ и права

Проверяем, что приложение работает с мандатными метками и не требует прав, которых ему не дадут.

1 неделя

Сборочный конвейер

Скрипты и описание окружения — в вашем репозитории. Смысл этапа в том, чтобы следующую версию вы собрали без нас.

1 неделя

Прогон на целевых ОС

Каждая заявленная ОС и редакция отдельно, по согласованному набору сценариев, с протоколом результатов.

1–2 недели

Материалы для вендора и реестра

Документация, описание, инструкции по установке и эксплуатации. Сопровождаем подачу на совместимость и отрабатываем замечания.

1–2 недели
Процесс

Как идёт работа

Все работы ведутся на ваших стендах и в вашем репозитории. Код не копируется к нам и не покидает вашу инфраструктуру.

Дни 1–7 — Разбор

Смотрим исходники, зависимости и целевые ОС. Здесь же говорим прямо, если по юридическим условиям реестр не светит: тогда портирование имеет смысл только ради самого рынка Linux.

Дни 5–10 — Стенды

Разворачиваем целевые ОС в нужных редакциях. Редакция важна: Astra Special Edition и Common Edition ведут себя по-разному, и «работает на CE» ещё ничего не значит.

От 3 недель — Доработка и сборка

Правки в код, пересборка недостающих зависимостей, первые пакеты. Работаем в вашем репозитории, коммитами, которые видно.

1–2 недели — Прогон

Каждая заявленная ОС отдельно, по согласованному списку сценариев. Что не прошло — чиним и прогоняем заново.

1–2 недели — Совместимость у вендора

Готовим материалы, подаём, отрабатываем замечания. Срок ответа на стороне вендора мы не контролируем и не обещаем.

Передача

Пакеты, ключи, рецепты сборки, окружение, протоколы и документация. Последний шаг — ваша команда собирает новую версию сама, при нас.

Разделение зон

Кто за что отвечает

Схема повторяет то же самое, что таблица выше, но в одном взгляде: две дорожки идут параллельно и сходятся только в момент подачи.

ДВЕ ДОРОЖКИ, ОДНА ЗАЯВКАНАША СТОРОНАРазборзависимости, целевые ОСДоработкакод и упаковкаПрогонкаждая ОС отдельноСовместимостьзаключение вендораВАША СТОРОНАПравообладаниесостав владельцевВыплаты за рубежпорог по выручкеПоддержка в РФканалы и регламентЭлектронная подписьподаёт правообладательМы отвечаем за верхнюю дорожку целиком. Нижнюю проверяет ваш юрист —и если она не сходится, верхняя в реестр не приведёт.
Верхняя дорожка обозримая: работа видна, результат проверяется прогонами. Нижняя тянется дольше и решается не разработкой, поэтому запускать её стоит одновременно с разбором, а не после портирования.
Контроль

Что остаётся у вас и чего мы не делаем

Остаётся у вас

  • Исходники — они и не уезжали: работаем на ваших стендах и в вашем репозитории.
  • Пакеты под каждую заявленную ОС и редакцию, вместе с ключами подписи.
  • Рецепты сборки и описание окружения: новую версию собираете без нас.
  • Протоколы прогонов по каждой ОС — это то, что показывают вендору и заказчику.
  • Документация в том виде, в каком её ждут при подаче.

Мы этого не делаем

  • Не подаём заявку в реестр за вас: её подаёт правообладатель со своей электронной подписью.
  • Не выдаём заключений о совместимости — их выдаёт вендор операционной системы по своей программе.
  • Не проводим сертификацию ФСТЭК и работы, связанные с государственной тайной: лицензии у нас нет.
  • Не консультируем по юридическим условиям реестра. Про доли, выручку и договоры — к юристу.
  • Не беремся за драйверы и работу с железом не глядя: сначала смотрим на код, потом отвечаем.
Портфолио

Работы по импортозамещению

Заказчиков не называем — договоры это запрещают. По каждой работе написано, что изменилось после сдачи и чем это проверяется.

Разбора именно про портирование мы пока не выкладывали. Ближайший по смыслу — перенос базы с MS SQL на PostgreSQL к сроку: там та же история про жёсткую дату и вещи, которые вылезают в последний момент.

Всё портфолио — 312 работ с фильтром по отрасли и технологии
Инструменты

С чем работаем

Целевые ОС
  • Astra Linux Special Edition
  • Astra Linux Common Edition
  • ALT Workstation и Server
  • РЕД ОС
  • РОСА
  • Debian и Ubuntu как база
Языки и среды
  • C и C++
  • Java
  • Python
  • .NET 6 и новее
  • Qt
  • Electron
Сборка и упаковка
  • debuild и pbuilder
  • rpmbuild
  • CMake и Make
  • Gradle и Maven
  • Docker для изоляции
  • Подпись пакетов
Проверка
  • ldd и дерево зависимостей
  • Прогон сценариев на стендах
  • pytest
  • Проверка установки и обновления
  • Работа под мандатными метками
Кому подходит

Кто обычно приходит

Разработчики ПО, идущие в госзакупки

Продукт есть и продаётся, но заказчик требует работу на ОС из реестра. Техническая часть — наша, юридическая проверяется параллельно.

Интеграторы и подрядчики госсектора

Своё решение нужно поставить на ОС заказчика, а не наоборот. Здесь важнее прогон на конкретной редакции, чем реестр.

Корпоративные заказчики

Внутренняя система, написанная под Windows, должна работать на парке, который уже перевели на Linux.

Те, кто пока только оценивает

Разбор зависимостей отвечает на главный вопрос — во что это выльется — до того, как вы потратите бюджет разработки.

Заявка

Посмотрим, во что выльется портирование

Сорок минут созвона: на чём написано, от чего зависит, какие ОС и редакции нужны и зачем — для реестра или для конкретного заказчика. По итогам скажем, что делаем, за какой срок и почему столько.

Спасибо, заявка отправлена. Ответим в течение рабочего дня.

Не удалось отправить. Напишите в телеграм или позвоните.

Вопросы

Частые вопросы

Какие ОС вы поддерживаете?

Astra Linux в редакциях Special и Common Edition, ALT Workstation и Server, РЕД ОС, РОСА. Редакцию и версию фиксируем в договоре: «работает на Astra» без указания редакции — это не формулировка, а надежда.

Сколько времени занимает портирование?

Зависит от того, на чём написано. Java и Python чаще упираются в упаковку — это недели. .NET Framework с WinForms или WPF — это переписывание интерфейса, и разговор идёт о месяцах. Точный срок называем после разбора зависимостей.

Что нужно от нас?

Исходный код с историей, описание того, как проект собирается сегодня, список внешних зависимостей и перечень целевых ОС с редакциями. Если сборка воспроизводится только на одной машине — начнём с того, чтобы это исправить.

Как вы обеспечиваете конфиденциальность кода?

Работаем на ваших стендах и в вашем репозитории, по NDA, подписанному до получения доступов. Код никуда не копируется и не используется ни в каких наших материалах.

Помогаете ли вы с включением в реестр?

С технической частью — да: документация, совместимость, прогоны, сопровождение подачи на совместимость у вендора. Саму заявку в реестр подаёт правообладатель со своей электронной подписью, и юридические условия проверяет ваш юрист.

Что если ПО использует специфические библиотеки?

Смотрим по каждой: есть ли в репозиториях целевой ОС, собирается ли из исходников, есть ли замена. Если библиотека проприетарная и под Linux не существует — говорим об этом сразу, а не через два месяца.

Сколько это стоит?

Проверка совместимости — от 150 000 ₽, и она зачитывается в стоимость работ, если продолжаем. Портирование — от 450 000 ₽, точная цифра считается после разбора: до него любая сумма будет взята с потолка.