Использование LCL в fpc

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Re: Использование LCL в fpc

Сообщение pupsik » 14.06.2017 12:23:33

darkpenguin по поводу пакетов в лине. Это не установочный файл. А простой архив (со своей структурой). Он не может самостоятельно установится (нечто вин инсталятора).

Я бы написал правильную команду один раз и записал её в скрипт..чтобы программа автоматически собиралась ночью....окажется проще, чем настроить кросс-компиляцию
всё правильно. Но: есть тест, а есть работа. Но это, как бы вам не важно?

а "зачем это вам? я этого не понимаю, а значит, вам это тоже не надо."
прикол в том что многие понимают. Они, так же, понимают последствия. Поэтому и пишется: ЗАЧЕМ... Это же вам то же всё равно?

Простому пользователю (или вам для сборки пакета на сервере) должно быть достаточно просто запустить make
угу. Было бы всё так просто. Ах нет: что то да вырисуется. И будете вы разбираться и строчить ответ. ОНО вам надо? Тем более: пользователи бывают весьма умны. Так в ступор вогнать могут... Но: это то же не важно?

п.с.
Почему пользователю нельзя отдать уже скомпилированый файл?
Лекс уже написал: резинка :lol:
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: Использование LCL в fpc

Сообщение darkpenguin » 14.06.2017 12:26:42

Да, обычно примерно так и делается: в ситуации, где много программистов пишут один проект - он по ночам компилируется и каждый день есть новый снапшот (хотя такое не считается готовым для выкладывания на продакшн-сервер), а в ситуации с сервером - если ему нужно что-то обновлять (к примеру, вашу программу), то он автоматически ночью её собирает и устанавливает новую версию. Но я написал - "при необходимости", если вдруг вы захотите тоже так сделать. (А в ситуации, когда код прямо от программиста сразу идёт в продакшн - действительно, лучше уж запустить скрипт вручную, и после этого сразу проверить, работает ли новая версия.)

В моём случае, нельзя "отдать пользователю скомпилированный файл", потому что это нарушает GPL, и потому что весь рабочий процесс добавления в репозиторий - адаптации под дистрибутив - тестирования - исправления (всем сообществом) - попадания в стабильную ветку дистрибутива (с компиляцией под все десять архитектур) работает исключительно на исходниках (которые собираются по скрипту, стандартно, через make).
darkpenguin
новенький
 
Сообщения: 26
Зарегистрирован: 09.06.2017 19:23:32

Re: Использование LCL в fpc

Сообщение Снег Север » 14.06.2017 12:29:37

darkpenguin писал(а):В моём случае, нельзя "отдать пользователю скомпилированный файл", потому что это нарушает GPL
Извините, но это снова полная дичь. Потому, что вам никто не мешает отдавать исполняемый файл вместе и исходниками а не вместо их.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2994
Зарегистрирован: 27.11.2007 16:14:47

Re: Использование LCL в fpc

Сообщение Лекс Айрин » 14.06.2017 12:36:07

darkpenguin писал(а): И, возможно, удобнее, чем запускать виртуалку с линуксом...


Как раз настроенную один раз виртуалку запускать проще. У меня с этим справился человек далекий от компьютеров всего по двум скриншотам, причем, до этого не видевший линукса и не знавший о существовании систем виртуализации. Самым сложным было поставить саму виртуальную (гостевую) систему. А уж заскриптовать запуск нужного варианта до кнопки "сделать хорошо" это вообще плевое дело.

darkpenguin писал(а):чтобы программа автоматически собиралась ночью, когда нагрузка на сервер минимальная.

У меня перекомпиляция лазаруса идет за время, пока я отвечаю на форуме... сама программа перекомпилируется, чаще всего, пока я перевожу взгляд на окно сообщений.

darkpenguin писал(а): а "зачем это вам? я этого не понимаю, а значит, вам это тоже не надо."


Скорее, уточнить, а вы действительно хотите отстрелить себе колено?

darkpenguin писал(а): Однако, откуда здесь взялась "ферма для компиляции"?..


А как иначе назвать сервер, который позволит выполнить множественную компиляцию под любой версией компилятора, под любую платформу и набор библиотек?

darkpenguin писал(а): Простому пользователю (или вам для сборки пакета на сервере) должно быть достаточно просто запустить make. В нашем случае - можно даже не make, а просто скрипт с командой.


Простой пользователь не заморачивается ночными версиями. Ему достаточно обычных обновлений. Ну а мне... лично я пользуюсь своей программой прямо из каталога разработки... как раз таки ночными версиями. Причем, зачастую, при открытом (и не сохраненном) проекте в компиляторе. Единственная внешняя автоматизация, я запускаю, иногда, скрипт удаления отладочной информации с пересборкой перед этим. И, если уж на то пошло используется, не просто make, а make all {make install}. Кстати, считаю это жутко неудобным и непонятным. Дело в том, что вся инфа по сборке есть в проекте -- накуа ее дублировать в левом файле?

Добавлено спустя 2 минуты 44 секунды:
vitaly_l писал(а):Хотя если проект командный и каждый пишет свой модуль, то итоговый результат - вполне можно собирать автоматом, по ночам (не задумываясь о несовместимости кода).


Lazarus обновляет транк минимум 2 раза в день. Я стараюсь обновлять его утром и в обед.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Использование LCL в fpc

Сообщение darkpenguin » 14.06.2017 12:41:29

Я не предоставляю пользователю файл лично. Я контрибучу изменения в Git ли ещё куда-то, откуда потом всё это автоматически собирается и разлетается. Нет смысла добавлять туда "скомпилированный файл".

Действительно, нарушает только если не предоставлять исходники вообще. Но какой смысл мне заниматься компиляцией этого файла самому под все архитектуры, если это за меня сделают билд-серверы? Однако, чтобы они это сделали - он должен собираться через make, а чтобы "сделать всё хорошо" - ещё и без лишних зависимостей. Мой вопрос был в этом, а не "почему бы не отдавать пользователю готовый файл".
darkpenguin
новенький
 
Сообщения: 26
Зарегистрирован: 09.06.2017 19:23:32

Re: Использование LCL в fpc

Сообщение Лекс Айрин » 14.06.2017 12:47:39

darkpenguin писал(а):В моём случае, нельзя "отдать пользователю скомпилированный файл", потому что это нарушает GPL,


Бред. Я только недавно просматривал этот вопрос... достаточно обеспечить доступность исходников, а пользователь сам выбирает надо оно ему или нет.

darkpenguin писал(а): а в ситуации с сервером - если ему нужно что-то обновлять (к примеру, вашу программу), то он автоматически ночью её собирает и устанавливает новую версию. Но я написал - "при необходимости", если вдруг вы захотите тоже так сделать. (А в ситуации, когда код прямо от программиста сразу идёт в продакшн - действительно, лучше уж запустить скрипт вручную, и после этого сразу проверить, работает ли новая версия.)

Код НИКОГДА не идет напрямую от программиста без тестирования. Единственное исключение, это когда у пользователей есть доступ в снапшотам исходного кода.. Да и тогда код тестируется программистом локально, а потом уже заливается в реп. Плюс, для сложного опенсорсного проекта, есть процедура валидации кода. Иногда многоярусная. Подозреваю, что это касается и коммерческих продуктов.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Использование LCL в fpc

Сообщение darkpenguin » 14.06.2017 12:52:04

Я имел в виду очень необычную для меня ситуацию у vitaly_l, где он сам заливает свой код на сервер. Действительно, "у нас" код никогда не идёт напрямую в продакшн. Именно для этого он и поставляется в виде исходников - чтобы его могли поправить все, а не только сам разработчик.

Если вы когда-нибудь займётесь разработкой "свободного" софта, с расчётом на возможное включение его в репозитории, то все ваши вопросы отпадут сами собой. Неблагодарное это дело - объяснять такие вещи.
darkpenguin
новенький
 
Сообщения: 26
Зарегистрирован: 09.06.2017 19:23:32

Re: Использование LCL в fpc

Сообщение vitaly_l » 14.06.2017 12:55:32

darkpenguin писал(а):Я контрибучу изменения в Git ли ещё куда-то, откуда потом всё это автоматически собирается и разлетается. Нет смысла добавлять туда "скомпилированный файл".

Вы можете выложить свои исходники на Git - не волнуйтесь, люди которые туда ходят, знают как их скомпилировать без предоставления им make и LCL.
darkpenguin писал(а):Но какой смысл мне заниматься компиляцией этого файла самому под все архитектуры, если это за меня сделают билд-серверы? Однако, чтобы они это сделали - он должен собираться через make, а чтобы "сделать всё хорошо" - ещё и без лишних зависимостей. Мой вопрос был в этом, а не "почему бы не отдавать пользователю готовый файл".

Make - не сделает бинарник сразу под все архитектуры. Это вообще, довольно сложная тема и требует серьёзных навыков и знаний. И если хотите писать сразу под все архитектуры, то попробуйте вначале сами скомпилировать "это" и убедитесь, будет ли ваш код работать сразу на всех архитектурах? После этого выложите код на Git - там люди разберутся, что с ним делать. Уж люди которые делают свободное ПО - знают как пользоваться make, LCL и fpc (хотя иногда я в этом сомневаюсь).
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Использование LCL в fpc

Сообщение darkpenguin » 14.06.2017 13:01:36

Вовсе нет. Туда ходят и обычные пользователи, которые хотят "просто собрать последнюю версию" (не устанавливая при этом лишнего). Более того, из Git исходники "проваливаются" дальше, где их несколько раз адаптируют (т.е. "знают как запустить Lazarus и хотят это сделать"), а потом - к пользователям, которые могут захотеть пересобрать пакет сами (просто через make, ибо они не программисты). Я могу свалить задачу по добавлению Makefile на других, но будет хорошим тоном, если возможность сделать это при необходимости будет с самого начала.
darkpenguin
новенький
 
Сообщения: 26
Зарегистрирован: 09.06.2017 19:23:32

Re: Использование LCL в fpc

Сообщение Лекс Айрин » 14.06.2017 13:03:02

darkpenguin писал(а):Я контрибучу изменения в Git ли ещё куда-то, откуда потом всё это автоматически собирается и разлетается. Нет смысла добавлять туда "скомпилированный файл".


Это у юристов называется "показания основанные на слухах" и "вывод свидетеля". Ты не знаешь реально ли собирается автоматом или кто-то делает это лично. Более того, ты не знаешь один ли человек это делает или куча разных сообществ.

darkpenguin писал(а): Однако, чтобы они это сделали - он должен собираться через make, а чтобы "сделать всё хорошо" - ещё и без лишних зависимостей.


Через make собираются сложные мета проекты состоящие не из одного исполнимого файла. Для программ класса "привет, Мир!" это стрельба по воробьям.

Виталик не зря обратил внимание, что он не будет дожидаться ночной перекомпиляции -- ему надо писать дальше, а для этого он должен получить(если он работает в группе) обновление от всех программистов. А коммитов за день может быть более десятка даже для утилитки.

Добавлено спустя 11 минут 2 секунды:
darkpenguin писал(а):Я имел в виду очень необычную для меня ситуацию у vitaly_l, где он сам заливает свой код на сервер.


Ну так, от сам себе разработчик и пользователь. Ему надо тестировать прогу в боевых условиях.

darkpenguin писал(а):Туда ходят и обычные пользователи, которые хотят "просто собрать последнюю версию" (не устанавливая при этом лишнего).


Еще раз... обычные пользователи не пользуются транками и ночными версиями. Если пользуются, то это уже продвинутые пользователи. Конкретно здесь собрались пользователи снапшотов, но... 1) на свой страх и риск; 2) практика показала, что снапшоты имеют меньше известных глюков. 3) никого не устраивает периодичность выхода свежих стабильных версий. И даже при этом зоопарк версий компилятора,IDE и целевой платформы зашкаливает.

darkpenguin писал(а): Я могу свалить задачу по добавлению Makefile на других, но будет хорошим тоном, если возможность сделать это при необходимости будет с самого начала.


Возможно для вас это будет странно и ново, но makefile можно добавить не имея целевой системы, если разработка ведется правильно. Но дело в том, что код для разных платформ может отличаться и должен отлаживаться (или хотя бы проверяться) под целевой платформой и различные платформозависимые части должны оформляться условной компиляцией.

Добавлено спустя 32 минуты 13 секунд:
Ах да, даже русскоязычное население Земли живет в стольких часовых поясах, что понятие ночь/день становятся условны. У меня лично (как у реального чела) есть знакомые от Москвы, до Сибири
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Использование LCL в fpc

Сообщение darkpenguin » 14.06.2017 14:04:14

Я пришёл сюда, чтобы найти ответ, как это сделать, а не обсуждать, зачем. И уж точно не чтобы спорить с ламерами о том, кто лучше знает о пакетах и репозиториях. Решение найдено. Вопрос исчерпан.
darkpenguin
новенький
 
Сообщения: 26
Зарегистрирован: 09.06.2017 19:23:32

Re: Использование LCL в fpc

Сообщение Лекс Айрин » 14.06.2017 14:20:51

darkpenguin, зачем стоит сразу лезть в бутылку? Да еще обзываться? Всем конкретно не понятно накуа нужно заниматься работой, которая никого не заинтересует. У всех разная квалификация, но, что характерно, всем непонятно зачем. Притом, здесь присутствуют и люди пишущие сам Лазарус, а возможно и FPC... а ты их с ходу в ламеры записал. Некоторые настолько знают его, что практически с ходу ответят по всем новым возможностям вплоть до версии транка в которой это работать не будет/будет.

Нам-то, на самом деле, глубоко фиолетово что и как... советую только проверить, что лазбилдер будет работать без установленного лазаруса... а то некоторые параметры показывают, что он все же нужен, хотя бы просто в установленном состоянии. Материть, если что, будут не нас, а лично тебя. И обзывать ламером и вредителем.

ЗЫ: Я только недавно извинялся за нежелание использовать стандартные способы. И не раз.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Использование LCL в fpc

Сообщение Сквозняк » 14.06.2017 15:24:59

Снег Север писал(а):У меня практически нет программ, которые бы не использовали дополнительных пакетов

Вот тебе пример линуксовой графической утилиты не требующей дополнительных пакетов - https://sourceforge.net/projects/vykljucalnik/

Добавлено спустя 6 минут 42 секунды:
vitaly_l писал(а):Честно говоря я сомневаюсь, т.к. жать локально на "зелёный треугольник" - явно проще, чем строчить сложные команды для FPC на сервер и тем более настраивать FPC на удалённом сервере.

В вайне лазарус не запускается, а fpc отлично компилирует в нём виндовые бинарники. Трудно настроить в первый раз, а потом - можно копипастить.
Сквозняк
энтузиаст
 
Сообщения: 1109
Зарегистрирован: 29.06.2006 22:08:32

Re: Использование LCL в fpc

Сообщение Лекс Айрин » 14.06.2017 15:40:45

Сквозняк писал(а):В вайне лазарус не запускается, а fpc отлично компилирует в нём виндовые бинарники.


Странно... у меня запускался... что я делал не так? Я ставил в вайне fpc, а потом им же компилировал исходники лазаря. В лине у меня работало до трех версий лазаря, причем, каждый со своим компилятором. (стандартный, транковый и виндовый) Правда, это было давно.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Использование LCL в fpc

Сообщение Сквозняк » 14.06.2017 16:03:24

В этом вайне привидения водятся... Сейчас попробовал, лазарус 1.0 заработал.
Сквозняк
энтузиаст
 
Сообщения: 1109
Зарегистрирован: 29.06.2006 22:08:32

Пред.След.

Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 24

Рейтинг@Mail.ru