Как работать с билд-скриптами?
От: Shmj Ниоткуда  
Дата: 11.05.23 20:44
Оценка:
Вопрос такой.

Вот, промучался несколько дней, пока некая либа у меня таки собиралась под iOS. Тщательно записывал все шаги.

Потом повторил все с нуля, как вы знаете я для этого приобрел коробочку с SSD
Автор: Shmj
Дата: 23.04.23
, чтобы простым копированием приводить систему в нулевое состояние.

Так вот, поставил все с нуля по инструкции — и сборка прошла успешно. ОК.

Даю челу — а у него фига — нихрена не работает. После разбирательств выяснилось, что важно не только наличие нужных пакетов, но так же и чтобы не было установлено лишних пакетов

А конкретно, какой-то CMake-файл проверяет установлена ли либа и если установлена — то пропускает ее сборку и использует ее. А третья библиотека нуждается в этих h-файлах, которые должны были быть скопированы, но не скопировались т.к. был пропущен шаг.

И это же внешние CMake, которых десятки и в которых сотни строк кода — стараюсь туда не лазить без надобности.

Но как с этим можно жить? Как потом знать почему у кого-то не собирается?
Re: Как работать с билд-скриптами?
От: reversecode google
Дата: 11.05.23 20:51
Оценка:
...
>Как потом знать почему у кого-то не собирается?
...
>После разбирательств выяснилось
...


>Но как с этим можно жить?


а вас кто то заставляет ?
Re: Как работать с билд-скриптами?
От: sambl74 Россия  
Дата: 12.05.23 01:58
Оценка: +1
Здравствуйте, Shmj, Вы писали:

S>Но как с этим можно жить? Как потом знать почему у кого-то не собирается?


Для этого придумали докер — у всех всё будет собираться в одинаковом окружении...
Re[2]: Как работать с билд-скриптами?
От: sergey2b ЮАР  
Дата: 12.05.23 02:46
Оценка:
Здравствуйте, sambl74, Вы писали:

S>Для этого придумали докер — у всех всё будет собираться в одинаковом окружении...



а если мне надо посмотреть кусок сгенерированного видео как это в докере сделать ?
докер под вин и linux работает по разному
Re[2]: Как работать с билд-скриптами?
От: sergey2b ЮАР  
Дата: 12.05.23 02:48
Оценка:
Здравствуйте, sambl74, Вы писали:

S>Для этого придумали докер — у всех всё будет собираться в одинаковом окружении...


я на прошлой недели собрал с десяток контейнеров он intel они на разных CPU работают по рзному
Re[3]: Как работать с билд-скриптами?
От: DiPaolo Россия  
Дата: 12.05.23 03:53
Оценка: 3 (1)
S>а если мне надо посмотреть кусок сгенерированного видео как это в докере сделать ?
Маунт или маппинг вольюма на хост и смотреть с хоста. Вот тут подробнее https://docs.docker.com/storage/volumes/.
Патриот здравого смысла
Re[3]: Как работать с билд-скриптами?
От: sambl74 Россия  
Дата: 12.05.23 03:56
Оценка:
Здравствуйте, sergey2b, Вы писали:

S>а если мне надо посмотреть кусок сгенерированного видео как это в докере сделать ?

S>докер под вин и linux работает по разному

Ну тут же про сборку мы говорим...
Re[3]: Как работать с билд-скриптами?
От: sambl74 Россия  
Дата: 12.05.23 03:57
Оценка:
Здравствуйте, sergey2b, Вы писали:

S>я на прошлой недели собрал с десяток контейнеров он intel они на разных CPU работают по рзному


Ну докер по крайней мере именно для этой цели задумывался, ну проблемы видимо ещё есть.
Re: Как работать с билд-скриптами?
От: vsb Казахстан  
Дата: 12.05.23 04:06
Оценка:
Надо собирать всё в докер контейнерах. Чтобы было зафиксированное стабильное окружение.
Re[3]: Как работать с билд-скриптами?
От: vsb Казахстан  
Дата: 12.05.23 04:08
Оценка:
Здравствуйте, sergey2b, Вы писали:

S>>Для этого придумали докер — у всех всё будет собираться в одинаковом окружении...


S>а если мне надо посмотреть кусок сгенерированного видео как это в докере сделать ?

S>докер под вин и linux работает по разному

Надо сначала собрать библиотеку, потом скопировать её на хостовую систему и использовать уже без докера.

Если компилируется библиотека для windows, то использовать докер для windows.
Re[4]: Как работать с билд-скриптами?
От: sergey2b ЮАР  
Дата: 12.05.23 04:19
Оценка:
Я так и делаю или ставлю vnc
Надеялся есть варианты лучше
Re[2]: Как работать с билд-скриптами?
От: pagid_ Россия  
Дата: 12.05.23 04:32
Оценка: +1 :)
Здравствуйте, sambl74, Вы писали:

S>Для этого придумали докер — у всех всё будет собираться в одинаковом окружении...

То есть применение пакетных систем привело к необходимости использования докера. Фееричненько.
Re[2]: Как работать с билд-скриптами?
От: Shmj Ниоткуда  
Дата: 12.05.23 04:46
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Надо собирать всё в докер контейнерах. Чтобы было зафиксированное стабильное окружение.


А вот, кстати, какие-то докер-образы с MacOS вроде есть. Но как? Это же проприетарная ОС. Или эти образы можно запускать только на MacOS?

Получается можно скачать этот образ и даже на Windows работать с эти образом, не запуская MacOC?
Re[3]: Как работать с билд-скриптами?
От: sambl74 Россия  
Дата: 12.05.23 04:51
Оценка:
Здравствуйте, pagid_, Вы писали:

_>То есть применение пакетных систем привело к необходимости использования докера. Фееричненько.


Меня в пакетных системах всегда веселило, что для того чтобы собрать маленькую либо — выкачивалось пакетов на порядок больше размером. Зато при сборке были весёлые разноцветные буковки в логе...
Re[3]: Как работать с билд-скриптами?
От: vsb Казахстан  
Дата: 12.05.23 05:02
Оценка:
Здравствуйте, Shmj, Вы писали:

vsb>>Надо собирать всё в докер контейнерах. Чтобы было зафиксированное стабильное окружение.


S>А вот, кстати, какие-то докер-образы с MacOS вроде есть. Но как? Это же проприетарная ОС. Или эти образы можно запускать только на MacOS?


Думаю, это просто запуск эмулятора (qemu).

S>Получается можно скачать этот образ и даже на Windows работать с эти образом, не запуская MacOC?


Если и получится, то проще просто в virtualbox запускать макось.

Докер нативно поддерживает линукс и винду, макось нативно не поддерживает.
Re[4]: Как работать с билд-скриптами?
От: Shmj Ниоткуда  
Дата: 12.05.23 05:32
Оценка:
Здравствуйте, vsb, Вы писали:

S>>Получается можно скачать этот образ и даже на Windows работать с эти образом, не запуская MacOC?


vsb>Если и получится, то проще просто в virtualbox запускать макось.

vsb>Докер нативно поддерживает линукс и винду, макось нативно не поддерживает.

Так у меня вопрос как раз под МакОсь то. Есть GitHub Actions разве что, но это как бы нельзя повторить локально. А так особо больше ничего нет.
Re[5]: Как работать с билд-скриптами?
От: vsb Казахстан  
Дата: 12.05.23 05:49
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Так у меня вопрос как раз под МакОсь то. Есть GitHub Actions разве что, но это как бы нельзя повторить локально. А так особо больше ничего нет.


Макось, конечно, самая неудобная ОС для подобных задач.

Я тут вижу три подхода:

1. Использовать виртуальную машину. Программа должна собираться в только что установленной макоси определённой версии. Скриптом установить нужные пакеты (xcode, sdk) и всё, остальное уже в исходниках приложения. Ну и сказать людям, чтобы использовали виртуальную машину, а не свою хостовую систему. Если на хосте макось, запускать гостевую макось — варианты есть, как платные, так и бесплатные.

2. Настроить билд так, чтобы он использовал системные пакеты по минимуму. Ну xcode, sdk наверное из системы надо брать, а все остальные библиотеки чтобы даже не смотрел, что там в системе установлено. Я про cmake ничего не знаю, но вряд ли там это нельзя настроить. Но, конечно, надо в нём разобраться хорошо. Ну и в любом случае хотя бы xcode должен быть зафиксированной версии, а не какой попало.

3. Использовать кросс-компиляцию. Если речь не идёт о разработке каких-то GUI-приложений, а просто о какой-то библиотеке, это должно быть осуществимо. Ну а компилировать уже с линукса.
Отредактировано 12.05.2023 5:51 vsb . Предыдущая версия .
Re: Как работать с билд-скриптами?
От: Qulac Россия  
Дата: 12.05.23 05:57
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Вопрос такой.


S>Вот, промучался несколько дней, пока некая либа у меня таки собиралась под iOS. Тщательно записывал все шаги.


S>Потом повторил все с нуля, как вы знаете я для этого приобрел коробочку с SSD
Автор: Shmj
Дата: 23.04.23
, чтобы простым копированием приводить систему в нулевое состояние.


S>Так вот, поставил все с нуля по инструкции — и сборка прошла успешно. ОК.


S>Даю челу — а у него фига — нихрена не работает. После разбирательств выяснилось, что важно не только наличие нужных пакетов, но так же и чтобы не было установлено лишних пакетов


S>А конкретно, какой-то CMake-файл проверяет установлена ли либа и если установлена — то пропускает ее сборку и использует ее. А третья библиотека нуждается в этих h-файлах, которые должны были быть скопированы, но не скопировались т.к. был пропущен шаг.


S>И это же внешние CMake, которых десятки и в которых сотни строк кода — стараюсь туда не лазить без надобности.


S>Но как с этим можно жить? Как потом знать почему у кого-то не собирается?


Зачем вообще это кому-то давать? Достаточно что бы собиралось на нужном ранере который прописан в вашем ci/cd сервере, т.е. вся информация по проекту хранится в одном месте.
Программа – это мысли спрессованные в код
Re[4]: Как работать с билд-скриптами?
От: CreatorCray  
Дата: 12.05.23 10:06
Оценка:
Здравствуйте, sambl74, Вы писали:

S>Меня в пакетных системах всегда веселило, что для того чтобы собрать маленькую либо — выкачивалось пакетов на порядок больше размером. Зато при сборке были весёлые разноцветные буковки в логе...

Ага, красненькие сообщения об ошибках в туевой хуче этих самых зависимостей
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re: Как работать с билд-скриптами?
От: Dair Россия https://dair.spb.ru
Дата: 12.05.23 11:08
Оценка:
Здравствуйте, Shmj, Вы писали:

S>А конкретно, какой-то CMake-файл проверяет установлена ли либа и если установлена — то пропускает ее сборку и использует ее. А третья библиотека нуждается в этих h-файлах, которые должны были быть скопированы, но не скопировались т.к. был пропущен шаг.


А сборка завязана прям на операционку и всё в ней? Либы ищет в, условно, /usr/lib, заголовки в /usr/include?

Я бы вот это менял.
Или настройками окружения — все пути не системные, а локальные, или можно попробовать помудрить с chroot, например.
Re[4]: Как работать с билд-скриптами?
От: sergey2b ЮАР  
Дата: 12.05.23 13:16
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Если компилируется библиотека для windows, то использовать докер для windows.


хорошо
а где брать имидж докера с windows
компилятором от visual studio
как ставить дополнительны библиотеки на этот образ если половина инсталяторов с GUI и без командной строки
Re[6]: Как работать с билд-скриптами?
От: sergey2b ЮАР  
Дата: 12.05.23 13:23
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>1. Использовать виртуальную машину. Программа должна собираться в только что установленной макоси определённой версии. Скриптом установить нужные пакеты (xcode, sdk) и всё, остальное уже в исходниках приложения. Ну и сказать людям, чтобы использовали виртуальную машину, а не свою хостовую систему. Если на хосте макось, запускать гостевую макось — варианты есть, как платные, так и бесплатные.


1a поставить докер на macos собрать в нем программу и запускать эту программу из под докера
пример такого подхода https://github.com/ttyS0/docker-other-transcode
Re[5]: Как работать с билд-скриптами?
От: vsb Казахстан  
Дата: 12.05.23 13:31
Оценка: 3 (1)
Здравствуйте, sergey2b, Вы писали:

vsb>>Если компилируется библиотека для windows, то использовать докер для windows.


S>хорошо

S>а где брать имидж докера с windows

https://hub.docker.com/_/microsoft-windows

S>компилятором от visual studio


готовый — не знаю, а статья тут есть: https://learn.microsoft.com/en-us/visualstudio/install/build-tools-container?view=vs-2022

S>как ставить дополнительны библиотеки на этот образ если половина инсталяторов с GUI и без командной строки


Установить библиотеку в виртуалку, разобраться, какие папки/файлы она создала, собрать эти файлы в tar архив и устанавливать в докер-образ через ADD этот tar-архив по нужному пути, вместо инсталлятора. Использовать GUI в докере наверное не получится, ну по крайней мере я не знаю, как. Но вообще многие инсталляторы библиотек и инструментов для разработки таки поддерживают установку без GUI.

Ещё есть разные пакетные менеджеры для Windows — официальный windows package manager, chocolatey и тд. Можно на них посмотреть, они популярные библиотеки перепаковывают.
Re[6]: Как работать с билд-скриптами?
От: sergey2b ЮАР  
Дата: 12.05.23 13:35
Оценка:
Здравствуйте, vsb, Вы писали:


vsb>готовый — не знаю, а статья тут есть: https://learn.microsoft.com/en-us/visualstudio/install/build-tools-container?view=vs-2022


спасибо хорошая ссылка в предлагаемом dockerfile есть образ винды с visual studio

FROM mcr.microsoft.com/windows/servercore:ltsc2022
Re: Как работать с билд-скриптами?
От: Muxa  
Дата: 12.05.23 13:42
Оценка:
S>А третья библиотека нуждается в этих h-файлах, которые должны были быть скопированы, но не скопировались т.к. был пропущен шаг.
Ну, а find_package(собраная_или_установленная_либа REQUIRED) возвращает правильные пути к заголовкам? (Будь они в директории сборки проекта или где-то в системе)
Re: Как работать с билд-скриптами?
От: Doom100500 Израиль  
Дата: 14.05.23 06:34
Оценка: :)
Здравствуйте, Shmj, Вы писали:

S>А конкретно, какой-то CMake-файл проверяет установлена ли либа и если установлена — то пропускает ее сборку и использует ее. А третья библиотека нуждается в этих h-файлах, которые должны были быть скопированы, но не скопировались т.к. был пропущен шаг.


Ну это же баг. Просто не дотестировали.

Открой им ишью с описанием проблемы, ну или отправь PR вместо нытья на форумах. Поможешь себе и мир немного лучше сделаешь.
А то докеры — костылёкеры. CMake, по идее, был рождён для воспроизводимости сборки в том числе, но от багов никто не застрахован.
Спасибо за внимание
Отредактировано 14.05.2023 6:34 Doom100500 . Предыдущая версия .
Re[2]: Как работать с билд-скриптами?
От: Shmj Ниоткуда  
Дата: 14.05.23 08:48
Оценка:
Здравствуйте, Doom100500, Вы писали:

D>Здравствуйте, Shmj, Вы писали:


S>>А конкретно, какой-то CMake-файл проверяет установлена ли либа и если установлена — то пропускает ее сборку и использует ее. А третья библиотека нуждается в этих h-файлах, которые должны были быть скопированы, но не скопировались т.к. был пропущен шаг.


D>Ну это же баг. Просто не дотестировали.


Это сторонние скрипты и не просто баг а коряво написаны.

D>Открой им ишью с описанием проблемы, ну или отправь PR вместо нытья на форумах. Поможешь себе и мир немного лучше сделаешь.

D>А то докеры — костылёкеры. CMake, по идее, был рождён для воспроизводимости сборки в том числе, но от багов никто не застрахован.

Нет ресурсов чтобы это исправлять.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.