-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Изменения необходимые для сборки пакета в дистрибутивы Linux #2
Conversation
Добрый день, Антон! Тут есть определенная проблема, связанная со спецификой софта степенью его зрелости:
Так делать нельзя: сборка программ для ПЛК зависит от заголовков RTE как минимум в части ABI. Я считаю, что пока рано "опакечивать" (по многим причинам) YAPLC "правильным способом", максимум - сложить в /opt с той структурой дирректорий, которая есть сейчас. С уважением, |
Так я же путь к RTE пропатчил. Для сборки программ должно быть всё равно где находится RTE, в $HOME/YAPLC/RTE или ../RTE
Да ничего страшного, что временный вариант. Устареет, удалю из репозитория (уже в репозитории) и соберу другую библиотеку ей на замену.
В Альте, пока я не собрал на днях, не поддерживалось. pkgs.org говорит, что stm32flash есть в ALT, Debian, openSUSE, Slackware, Ubuntu. Маловато будет... Но у тех дистров, где таких пакетов нет, можно также рядышком собрать и пользоваться себе на здоровье как и прежде. Т.е. если в системе уже есть stm32flash, то зачем его собирать?
Если появятся заинтересованные пользователи других дистрибутивов, то его будут собирать и в другие дистрибутивы.
В ALT могу Beremiz хоть сегодня собрать. В принципе у меня всё готово, чтоб заработало. Сборке Beremiz и YAPLC в репозиторий больше всего мешает то, что они не оформлены в виде python пакетов c инсталятором. Я конечно понимаю, что предлагаю весьма костыльный вариант с определением местонахождения системных библиотек и исполняемых файлов. Лучшим вариантом было бы сделать конфигурационный файл, в котором можно было бы менять пути до них. И графическое окошко для настройки этих путей внутри YAPLC. Тогда майнтейнер пакета мог бы спокойно поменять пути в этом конфиге и всё, все были бы довольны, никаких костылей. Но это достаточно масштабная работа.
В таком виде я в репозиторий собрать не могу. Политика дистрибутива не позволяет собирать пакеты в /opt. По моей задумке сборка в репозиторий могла бы привлечь внимание больший круг тестировщиков, хотя бы из числа участников forum.altlinux.org. |
Вижу. Но с Home есть проблема :( Думаю, что нужны доп. условия для определения ОС... Ещё, непонятно, что будет с конструкциями типа os.path.isfile("/usr/bin/stm32flash")
То есть, даже если и заработает, то ни кто не даст гарантии, что не "отвалится" когда-то потом... В таком виде пул-реквест принять не могу :(
А вот это было бы очень здорово! Вы реально помогли бы сообществу разработчиков Beremiz (на самом деле помощь и разработчики нужны именно там). |
Добавил вовсе условия: |
Антон, подскажите, а в случае пакета, где будет лежать каталог beremiz? |
beremiz и yaplc будут лежать в одной и той же директории. Это директория хранения архитектурно-независимых python пакетов. В случае Альта и rpm-based дистрибутивов этой директорией является /usr/lib/python2.7/site-packages/ |
Патч Андрея Скворцова показал мне пример грамотного решения: |
Здравствуйте, Антон! У меня пока будет работа по экспериментальной ветке RTE, С уважением, |
638737b
to
da1ba3d
Compare
da1ba3d
to
a5b2e9d
Compare
Здравствуйте! |
Принято. |
Здравствуйте!
Для того, чтобы собрать пакет для дистрибутива Linux (я собираю пакет для ALT Linux), нужно внести следующие изменения в код:
Использовать системный matiec, т.е. находящийся в /usr/bin/iec2c и библиотеки в /usr/lib/matiec/ Если они установлены, естественно.
Создал issue в репозитории skvorl/beremiz: https://bitbucket.org/skvorl/beremiz/issues/29/used-system-matiec
Пакет matiec для ALT Linux собрал.
Использовать системную библиотеку yapyserial, находящуюся либо в /usr/lib/libYaPySerial.so для 32 битной системы, либо /usr/lib64/libYaPySerial.so для 64 битной системы.
Использовать системный /usr/bin/stm32flash
RTE и необходимые для сборки прошивок исходники в Linux, думаю, хранить в $HOME/YAPLC
В связи с этим нужно, чтобы путь до директории $HOME/YAPLC/RTE пользовался приоритетом.