А потом понадобится под новый дистрибутив, а потом специфические баги. Так, глядишь, и интерес ее поддерживать пропадет, и останутся проприетарщики с бесполезным экзешником, который ни работать под современными системами не захочет, ни баги исправить невозможно. Впрочем, в случае очередной оболочки вокруг avrdude это не страшно: их вокруг куча.
Да пожалуйста - пожалуйста, верьте, что вам будет вечно не лень свою мега-софтину поддерживать. Мое дело предупредить, что таскать в рот всякую каку может быть опасно, и почему. Кто умный прислушается, остальные могут и дальше по торрентам и файлопомойкам шариться.
Зарегистрирован: Вс мар 06, 2016 17:45:49 Сообщений: 24
Рейтинг сообщения:0
COKPOWEHEU, Уймись уже. Для того чтобы код работал на большинстве дистров, соблюдай правила: 1. Не используй непровереных чужих компонентов - пиши свой код (что для тебя смерти подобно). 2. И используй в своей программе те элементы, которые доступны в любой LinuxOS. Lazarus, установленный по умолчанию позволяет это сделать.
Для того чтобы код работал на большинстве дистров...
...достаточно пользоваться распространенными (лучше даже кроссплатформенными) библиотеками, а не завязываться на всякую экзотику. Ну и, естественно, открыть исходный код, чтобы если проблемы все-таки возникнут (а рано или поздно они возникнут), их было возможно решить. Есть, конечно, костыльные варианты вроде snap. И, кстати, вашей прориетарщине оно может и лучше подойдет. По крайней мере, можно будет вкорячить туда все библиотеки, которых в системе может не быть.
Цитата:
Lazarus, установленный по умолчанию позволяет это сделать.
То есть то, что по умолчанию он не устанавливается, вас не смущает? То, что в разных дистрибутивах бывают разные соглашения по хранению файлов и тому подобному тоже. В принципе, я уже говорил, что вам бы не помешало сначала ознакомиться с сообществом и его особенностями. Но, видимо, желание похвастаться своим хелло-ворлдом сильнее.
Зарегистрирован: Вс мар 06, 2016 17:45:49 Сообщений: 24
Рейтинг сообщения:0
Правду говорил Martian развели срач, вместо нормального обсуждения - рассуждаем о тонкостях OpenSource - которые как шли так и ехали. Надоел твой флуд, а мне в почте информации от адекватных людей хватает. Lazarus нужен только программистам - зачем-же его подсовывать всем?
Lazarus делает достаточно "мобильные" бинарники! (т.е. обычно ни чего более не требуется для работы, если статически собрать приложение, то и sqlite-пакет не нужен будет)
_________________ Енот - это кот, только инкогнито! p.s. держитесь обоими руками, а то прорвет...
Здесь можно обсудить все недостатки или задать вопрос о программе lavrprog
Не хотите выкладывать исходники - не выкладывайте, это исключительно по желанию. Но пожалуйста хотя бы слинкуйте бинарник статически, а не динамически как сейчас. В данный момент у него вот такая борода зависимостей:
Зарегистрирован: Вс мар 06, 2016 17:45:49 Сообщений: 24
Рейтинг сообщения:0
Создание статической сборки неимоверно увеличивает размер бинарника (но в принципе возможно). В результате проб выяснилось что в популярных дистрах Debian, Devuan, Mint, Ubuntu, Runtu - установки libsqlite3-dev достаточно. Так-же устранена ошибка "type(Null) into type(String)" После первого неудачного запуска в файле конфигурации ~/.config/lavrprog.conf сохранялись пустые поля, которые и приводили к ошибке. Если такое произошло, то после установки libsqlite3-dev следует удалить lavrprog.conf запустить lavrprog и заново произвести настройку. За новым бинарником на email (волжения мне недоступны).
Создание статической сборки неимоверно увеличивает размер бинарника
Да, это так, размер будет внушительный. Собственно, вариантов целых четыре: 1. Статическая линковка; 2. Прикладывать к бинарнику абсолютно все необходимые ему библы (рекурсивно по зависимостям, включая glibc) - что по размеру аналогично варианту 1, но менее удобно; 3. Опубликовать исходники чтобы каждый желающий мог их собрать под нужную ему платформу и версии библ; 4. Вообще ничего никуда не выкладывать - ни исходников, ни бинарников;
0beron писал(а):
в популярных дистрах Debian, Devuan, Mint, Ubuntu, Runtu - установки libsqlite3-dev достаточно
К сожалению это так не работает. Библы и их версии в разных дистрах разные. У меня например такой бородатой древности как GTK 2 вообще нет. Потому что весь актуальный софт давным-давно переехал на GTK 3 или Qt 5.
Зарегистрирован: Вс мар 06, 2016 17:45:49 Сообщений: 24
Рейтинг сообщения:0
"4. Вообще ничего никуда не выкладывать - ни исходников, ни бинарников;" Почему нет? Нашлись-же люди, которым это пригодилось. Только Большая просьба - давайте больше не будем об OpenSource и исходниках, ведь было-же написано "не хочешь - не используй"
И таких людей может стать намного больше если приложить ещё немного усилий, закончив оформление проекта в более портабельный вид - статической линковкой или с библами в комплекте.
Совсем не понимаю для чего это нужно... Кто-то "шьёт" в день по 100 (сто) разных контроллеров? Ну набрал один раз (для текущего проекта) нужные ключи в командной строке, прошил. Надо ещё прошить, нажал в терминале стрелочку вверх несколько раз. И вот снова avrdude с нужными ключами запустился. Если совсем красиво, то можно makefile сделать, чтобы и компилить и прошивать.
данные о чипах и программаторах находятся в файлах БД фотмат SQLite3
вопрос 1: какие именно данные? вопрос 2: команды/формат с парамерами (для avrdude) - прошит жестко в коде или есть какой-то интерфейс для "формирования" извне? (или, все зашито в базу данных?) вопрос 3: возможно настроить "сохранение архива" (с сайта gitflic.ru) - что-бы исходники были в своем подкаталоге? (иначе - не айс, для ментейнеров)
по ходу запуска: первый запуск - можно сказать, вполне правильное сообщение (хотя, сообразительные пользователи вполне разберуться и без этого :о):
Код:
It looks like this is your firsttimerunningor 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.Selector 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.
Вложения:
Комментарий к файлу: Таблица "atmel" в формате XML atmel.xml.zip [3.29 KiB]
Скачиваний: 58
Программа написана на Lazarus и не требует установки. Главное чтобы в вашем дистрибутиве была avrdude
- должен быть установлен gui-toolkit (под который написана программа): qt4/qt5/qt6/gtk2 - соответственно, если использовался qt-интерфейс, то должна быть установлена библиотека-прослойка qt4pas/qt5pas/qt6pas, причем (*), в некоторых случаях "родная библиотека" из комплекта дистрибьютива линукса может не подойти (как было у меня), т.к. собирается в однопоточном режиме (по умолчанию) и нужно самостоятельно пересобирать в "мультипоток", либо добавить данную библиотеку в архив, далее варианты (либо пишем запускающий скрипт-обертку с добавлением LD_LIBRARY_PATH, либо копируем библиотеку в "системный lib-каталог")
(*) - если в системе установлен lazarus (в дефолтный PREFFIX=/usr), то, установленная библиотека собрана как "мультипоточная" (обычно)
_________________ Енот - это кот, только инкогнито! p.s. держитесь обоими руками, а то прорвет...
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения