А потом понадобится под новый дистрибутив, а потом специфические баги. Так, глядишь, и интерес ее поддерживать пропадет, и останутся проприетарщики с бесполезным экзешником, который ни работать под современными системами не захочет, ни баги исправить невозможно.
Впрочем, в случае очередной оболочки вокруг avrdude это не страшно: их вокруг куча.
Да пожалуйста - пожалуйста, верьте, что вам будет вечно не лень свою мега-софтину поддерживать.
Мое дело предупредить, что таскать в рот всякую каку может быть опасно, и почему. Кто умный прислушается, остальные могут и дальше по торрентам и файлопомойкам шариться.
COKPOWEHEU, Уймись уже. Для того чтобы код работал на
большинстве дистров, соблюдай правила:
1. Не используй непровереных чужих компонентов - пиши свой код
(что для тебя смерти подобно).
2. И используй в своей программе те элементы,
которые доступны в любой LinuxOS.
Lazarus, установленный по умолчанию позволяет это сделать.
Для того чтобы код работал на большинстве дистров...
...достаточно пользоваться распространенными (лучше даже кроссплатформенными) библиотеками, а не завязываться на всякую экзотику.
Ну и, естественно, открыть исходный код, чтобы если проблемы все-таки возникнут (а рано или поздно они возникнут), их было возможно решить.
Есть, конечно, костыльные варианты вроде snap. И, кстати, вашей прориетарщине оно может и лучше подойдет. По крайней мере, можно будет вкорячить туда все библиотеки, которых в системе может не быть.
Lazarus, установленный по умолчанию позволяет это сделать.
То есть то, что по умолчанию он не устанавливается, вас не смущает? То, что в разных дистрибутивах бывают разные соглашения по хранению файлов и тому подобному тоже.
В принципе, я уже говорил, что вам бы не помешало сначала ознакомиться с сообществом и его особенностями. Но, видимо, желание похвастаться своим хелло-ворлдом сильнее.
Правду говорил Martian развели срач,
вместо нормального обсуждения - рассуждаем
о тонкостях OpenSource - которые как шли так и ехали.
Надоел твой флуд, а мне в почте информации от адекватных людей хватает.
Lazarus нужен только программистам - зачем-же его подсовывать всем?
Lazarus делает достаточно "мобильные" бинарники! (т.е. обычно ни чего более не требуется для работы, если статически собрать приложение, то и sqlite-пакет не нужен будет)
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...
[uquote="0beron",url="/forum/viewtopic.php?p=4167542#p4167542"]Здесь можно обсудить все недостатки или задать вопрос о программе lavrprog[/uquote]
Не хотите выкладывать исходники - не выкладывайте, это исключительно по желанию. Но пожалуйста хотя бы слинкуйте бинарник статически, а не динамически как сейчас. В данный момент у него вот такая борода зависимостей:
Создание статической сборки неимоверно увеличивает
размер бинарника (но в принципе возможно).
В результате проб выяснилось что в популярных
дистрах Debian, Devuan, Mint, Ubuntu, Runtu -
установки libsqlite3-dev достаточно.
Так-же устранена ошибка "type(Null) into type(String)"
После первого неудачного запуска в файле конфигурации
~/.config/lavrprog.conf сохранялись пустые поля,
которые и приводили к ошибке. Если такое произошло,
то после установки libsqlite3-dev следует удалить
lavrprog.conf запустить lavrprog и заново произвести настройку.
За новым бинарником на email (волжения мне недоступны).
[uquote="0beron",url="/forum/viewtopic.php?p=4174306#p4174306"]Создание статической сборки неимоверно увеличивает размер бинарника[/uquote]
Да, это так, размер будет внушительный. Собственно, вариантов целых четыре:
1. Статическая линковка;
2. Прикладывать к бинарнику абсолютно все необходимые ему библы (рекурсивно по зависимостям, включая glibc) - что по размеру аналогично варианту 1, но менее удобно;
3. Опубликовать исходники чтобы каждый желающий мог их собрать под нужную ему платформу и версии библ;
4. Вообще ничего никуда не выкладывать - ни исходников, ни бинарников;
0beron писал(а):в популярных дистрах Debian, Devuan, Mint, Ubuntu, Runtu - установки libsqlite3-dev достаточно
К сожалению это так не работает. Библы и их версии в разных дистрах разные. У меня например такой бородатой древности как GTK 2 вообще нет. Потому что весь актуальный софт давным-давно переехал на GTK 3 или Qt 5.
"4. Вообще ничего никуда не выкладывать - ни исходников, ни бинарников;"
Почему нет? Нашлись-же люди, которым это пригодилось.
Только Большая просьба - давайте больше не будем об OpenSource и исходниках,
ведь было-же написано "не хочешь - не используй"
[uquote="0beron",url="/forum/viewtopic.php?p=4174358#p4174358"]Нашлись-же люди, которым это пригодилось[/uquote]
И таких людей может стать намного больше если приложить ещё немного усилий, закончив оформление проекта в более портабельный вид - статической линковкой или с библами в комплекте.
Совсем не понимаю для чего это нужно...
Кто-то "шьёт" в день по 100 (сто) разных контроллеров?
Ну набрал один раз (для текущего проекта) нужные ключи в командной строке, прошил.
Надо ещё прошить, нажал в терминале стрелочку вверх несколько раз. И вот снова avrdude с нужными ключами запустился.
Если совсем красиво, то можно makefile сделать, чтобы и компилить и прошивать.
данные о чипах и программаторах находятся в файлах БД фотмат SQLite3
вопрос 1: какие именно данные?
вопрос 2: команды/формат с парамерами (для avrdude) - прошит жестко в коде или есть какой-то интерфейс для "формирования" извне? (или, все зашито в базу данных?)
вопрос 3: возможно настроить "сохранение архива" (с сайта gitflic.ru) - что-бы исходники были в своем подкаталоге? (иначе - не айс, для ментейнеров)
по ходу запуска:
первый запуск - можно сказать, вполне правильное сообщение (хотя, сообразительные пользователи вполне разберуться и без этого :о):
It looks like this is your first time running or
configuring the program. Before using
it, perform the following configuration:
1. Specify (check) the path to "avrdude";
2. Specify (check) the path to "avrdude.conf";
3. Select the programmer;
4. Select or specify a port.
в меню about - находится "инфа конфигурации", но без самомого "абоут-а"
The configuration file "avrdude.conf" was not found.
Installation Options:
/etc/avrdude/avrdude.conf
/etc/avrdude.conf
интефейс - вполне даже нормальный, не вырвиглаз а то что надо, неброский, аскетический gui (думаю, работать можно)
дальше не тестировал, т.к. ни чего под рукой не было.
удачи
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...
0beron, спасибо за публикацию.
Хотя мне сама по себе программка и не нужна (у меня и программатор другой, и шить приходится не только AVR), но программа тоже консольная. 35 разных опций, да ещё и многие с разными параметрами. Почитал Вашу тему и подумал: "А фигли я то мучаюсь, всякий раз man приходится открывать. Надо себе тоже подобный GUI смастерить". И теперь вот, благодаря Вашему пинку в правильном направлении, жизнь наладилась . Спойлер
В статье обратил внимание на фразу: "в планах переписать программу с использованием ini файла вместо SQLite3.".
Мысль хорошая. Редактировать базу можно будет в любом текстовом редакторе и никаких заморочек с SQLite. Вот только для древовидной структуры, мне кажется, формат XML больше подходит.
По крайней мере, программка, которой пользуюсь я со своим программатором, хранит всю информацию о чипах именно в XML-файле. Там в базе более 16 000 чипов. Размер XML-файла 17,6 Мб. Никаких ощутимых тормозов не наблюдается. В вашей базе всего 600 записей о 75 контроллерах. Я сконвертировал таблицу "atmel" из вашей базы в XML-файл (во вложенном файле). Естественно, структуру придумал по своему разумению и стараясь максимально сохранить вашу. Не факт, что придумал оптимальную. Размер получился всего 113кБ. Будет вообще летать . А в Lazarus'е есть компоненты что для работы с INI-файлами, что с XML.
[uquote="0beron",url="/forum/viewtopic.php?p=4167542#p4167542"]Здесь можно обсудить все недостатки или задать вопрос о программе lavrprog http://radiokot.ru/artfiles/6670[/uquote]
уточнение по поводу
Программа написана на Lazarus и не требует установки. Главное чтобы в вашем дистрибутиве была avrdude
- должен быть установлен gui-toolkit (под который написана программа): qt4/qt5/qt6/gtk2
- соответственно, если использовался qt-интерфейс, то должна быть установлена библиотека-прослойка qt4pas/qt5pas/qt6pas, причем (*), в некоторых случаях "родная библиотека" из комплекта дистрибьютива линукса может не подойти (как было у меня), т.к. собирается в однопоточном режиме (по умолчанию) и нужно самостоятельно пересобирать в "мультипоток", либо добавить данную библиотеку в архив, далее варианты (либо пишем запускающий скрипт-обертку с добавлением LD_LIBRARY_PATH, либо копируем библиотеку в "системный lib-каталог")
(*) - если в системе установлен lazarus (в дефолтный PREFFIX=/usr), то, установленная библиотека собрана как "мультипоточная" (обычно)
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...