Собирать RPM/DEB оказалось достаточно просто. Делюсь как делал.

Устанавливаем себе Ruby-фреймворк fpm (из-под root)
1) apt install ruby-full
2) gem install fpm

После этого создаём каталог, допустим mytetra_1_44_31
В нём создаём структуру папок, по стандартам линуксов:
usr/local/bin  - сюда ложим стартовый бинарник, или его обвязочный скрипт, я положил mytetra.run, содержание изменил на следующее

#!/bin/sh
PROGDIR=/usr/local/lib/mytetra
LD_LIBRARY_PATH=$PROGDIR/lib:${LD_LIBRARY_PATH}
export QT_QPA_PLATFORM_PLUGIN_PATH=$PROGDIR/platforms
export LD_LIBRARY_PATH
$PROGDIR/mytetra

далее
usr/local/lib/mytetra  - сюда ложим всё остальное
usr/share/applications - тут создаём файл-ярлык запуска mytetra.desktop с примерно таким текстом

[Desktop Entry]
Encoding=UTF-8
Version=1.44.31
Name=MyTetra
Name[ru]=MyTetra
Type=Application
Exec=/usr/local/bin/mytetra.run %F
Terminal=false
Icon=/usr/share/mytetra/icons/mytetra_128x128.png
Categories=Office;Utility;
GenericName=Mytetra
Comment=Smart manager for information collecting.
Comment[ru]=Программа накопления осмысленной информации.

далее
usr/share/mytetra/icons  - сюда помещаем иконку  mytetra_128x128.png

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

для DEB
fpm -s dir -t deb -n mytetra -v 1.44.31 ./

для RPM
fpm -s dir -t rpm -n mytetra -v 1.44.31 ./

и внутри папки появляется наш пакет. Всё!
В результате приложение становится в систему как "родное" ))

Хотя Ruby-фреймворк fpm не такой крутой инструмент как dpkg-build, но для простых пакетов без других зависимостей его хватает с головой.

Добавил RPM сборки, успешно протестировано на Fedora 34 / Centos 7.

Доброго здравия автору и всей команде.

Есть идея доработки функционала, которая поднимет MyTetra на голову выше.
Если кратко, то это гибрид много-базовости и возможности коллективной работы.

Изложу своё видение реализации.

На данный момент БД программы хранится в папке data. Её конечно можно расшарить между
несколькими ПК с помощью сторонних утилит синхронизации, наподобие syncthing,
и если делать всё аккуратно, такой подход для нескольких человек даже заработает.
Но! Главная проблема - нет защиты от удаления. Один случайно изменил/удалил - это произошло у всех.
Доработка на авторизацию, систему прав и отдельные пароли на каждую ветку - это сложно и долго.
Предлагаю вот что.

БД разделить на 2 части: локальную (обычную) и shared.
В интерфейсе это будет выглядеть как две корневые папки (их имена можно обсудить)

- [другие]
- [моя локальная БД]

Далее.
Локальная БД будет как обычно находиться в папе data, а для [Другие] создадим рядом папку shared.
В интерфейсе необходимо добавить возможность копировать часть информации в категорию [Другие],
путём стандартного механизма экспорта веток. Каждая экспортированная ветка в категорию [Другие]
должна отображаться в интерфейсе как ветка, но по сути это будет как отдельная БД в папке shared.
И наоборот. Нужно добавить возможность из shared переносить информацию в локальную БД.

В чём идея?
У каждого запущена программа и есть локальная база. Локальную БД не трогаем и не синхронизируем,
а вместо этого синхронизируем между всеми папку shared, и когда кто-то шарит ветку/БД, её видят все.
Шареную ветку/БД можно скажем назвать именами сотрудников, или тематически, значения не имеет,
главное чтобы несколько человек не могли одновременно создать с одинаковым именем, тогда поломается
синхронизация. Возможно стоит добавить некий хеш, как у git, это уже тонкости реализации.
Далее, по желанию, если информация из шареной БД оказалась полезной, импортируем себе (drag-n-drop).
Потом допустим, заметку/ветку можно отредактировать и расшарить обратно (drag-n-drop).

Таким образом мы достигаем нескольких целей.
* локальная БД защищена от удаления/изменения.
* появляется возможность коллективной работы с помощью простых инструментов.
* сохраняется обратная совместимость (старые версии просто не будут видеть shared и всё)

Ну и для копирования информации предлагаю использовать тот же движок импорта/экспорта,
и для совместимости, и для простоты реализации.

По сути дела, движок сильно не меняется, просто теперь он смотрит в 2 папки: data + shared.
В папке shared будут подпапки с импортированными ветками, которые должны отображаться в интерфейсе,
и нужен некий механизм обновления, чтобы когда появляется что-то новое в папке, чтобы оно появлялось в программе.
Расположение папки shared можно задать в настройках, как и data.

Вот полный вид.

SHARED
 *Xintrea
    - ветка1
    - ветка2
 *Olga
    - ветка1
    - ветка2
 *Sasha
    - ветка1
    - ветка2
LOCAL
 *корень моей бд
    - ветка1
    - ветка2

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

Что скажете?

Это не новые версии,
а упакованые для линуксов  Debian/Ubuntu/Mint   старые, просто в специальном для них формате.

Доступ точно есть, я из инкогнито качал нормально.

Всем привет, добрался до утилиты FPM, которая может упаковывать бинарники в rpm- и deb-пакеты (для Linux).

В результате удалось смастерить и бегло протестить такие версии mytetra:

1.44.31 (https://drive.google.com/file/d/14kB7k2 … sp=sharing)
1.44.160 (https://drive.google.com/file/d/1ci61WR … sp=sharing)

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


Структура пакета на рисунке ниже.
https://i115.fastpic.org/thumb/2021/1004/a5/b9b1b549726ad2bce37dda8eb42a46a5.jpeg


Версия 1.44.31 собрана автором (xintrea) ещё на старых линуксах,
поэтому должна заработать на бОльшем кол-ве ПК,
что касается версии 1.44.160, то тут не ниже Ubuntu-18.04 / Mint-19.x , про Debian не в курсе.

ПЛЮСЫ:
* в "пуске" появляется ярлык для запуска, с комментариями на русском и английском, с возможностью разместить ярлык на рабочем столе и даже закрепить на панели.

МИНУСЫ:
* по-умолчанию, папка для хранения настроек БД будет только в домашнем каталоге пользователя, инициализация portable варианта отсутствует по понятным причинам - каталог с бинарниками требует прав root-а. Хотя после установки программы, в настройках можно указать и другой путь (предусмотрительно), но об этом как-то догадываешься не сразу.


xintrea
Прошу вас протестить 1.44.31, если всё ок, выложите на главную страницу, думаю, линуксоиды оценят.

Вот это номер))
То есть вашим скриптом вставляется и отображается нормально,  а через стандарный метод нет.

Возможно где-то в программе ошибка, или я как-то не так её собрал.

А может некоторые сайты как-то по хитрому прячут ссылки своих картинок

Ок, спасибо, проверю на линукс версии, есть ли там подобное.

Upd.
В линукс-версии всё ок с этим. Я уж как изголялся, поделил текст на 4 части, и каждую часть по 10 раз менял разными шрифтами. Потом закрывал программу, снова открывал и по новой. Всё ок.

Ещё одно пожелание - сделать READ-ONLY для всех веток, и желательно защитить это паролем (или как-то ещё).

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



* ещё одно
Хочется выгрузку всех данных в формат: структура каталогов и файлов, с именами как в интерфейсе.
Да, как заметил автор, иногда ограничения файловых систем этому мешают, но можно сразу паковать
в zip-архив, например, внутри этих ограничений вроде нет.

Если ещё и импорт прикрутить по такому же принципу, было бы вообще круто.

Присоединяюсь к пожеланию сортировки веток.
Сейчас ветки опираются скорее всего на ID при создании,
иногда хочется отсортировать их по алфавиту, иногда по кол-ву записей,
иногда по наличию вложений и тд.


Ещё хотелось бы "Избранное".
А то когда веток становится НУ ОЧЕНЬ МНОГО, то даже с поиском что-то найти - долго ((
Допустим, чтобы можно было пометить запись или целую ветку как избранную, а потом,
чтобы автоматом появился раздел "Избранное", где как бы ссылки туда.

Да, в 134 тоже так.
Не знаю, начиная с какой версии поломалось и почему.

Мерси ))  smile
Освобожусь, скомпилирую 1.44.160, нет проблем.
Сам пока пользуюсь 1.44.134 потому что новые правки для меня не так критичны и основное что хотел работает ))


UPD.
Готово )) smile Выложил в начало темы. Будут баги, пишите.

GG.UseR пишет:

решил отказатся от mytetra и смотреть всё в обычном текстовом редакторе

А почему? Что не устроило? (для себя интересно)
Лично я mytetra ценю прежде всего за поиск, структурирование, шифрование, и малое потребление ОЗУ.
Разве навал текстовых документов удобнее?

xintrea пишет:

То есть, в Linux работает, а в Windows нет?

Это сильно похоже на проблемы с библиотекой SSL (openssl). Потому что судя по скриншоту скачивание идет по протоколу HTTPS. Эту библиотеку Qt подключает динамически, и если она не той версии или ее просто нет, программа не падает, а просто не работает функционал, завязанный на нее.

Я под Windows не собирал, но возможно поможет следующая информация:

https://wiki.qt.io/Qt_5.13.2_Known_Issues

https://forum.qt.io/topic/107364/static … windows-10

Кажется я понял в чём дело. В мою сборку вообще не попали библиотеки openssl.

На форумах пишут, что
"Since version 1.1.0 OpenSSL have changed their library names from:
libeay32.dll -> libcrypto.dll
ssleay32.dll -> libssl.dll"

https://slproweb.com/products/Win32OpenSSL.html

добавил их, и загрузка картинок пошла нормально. Архивы перевыложил, ссылки обновил.

Спасибо за отзыв.
Может я забыл какую-то библиотеку подложить в папку с программой,
попробую воспроизвести у себя. В Linux последняя версия вроде работает как надо.


UPD.
Проблему подтверждаю.
https://i.ibb.co/bXqR68G/2020-11-28-15-44-16.png

Висит. Если закрыть, пишет:

reply->errorString()
reply->errorString()
Cancel download by user.


UPD2
но мне кажется дело не в библиотеках, потому что из-под qt-creator.exe тоже не работает.
Ну или как-то не так собрал (wine + Qt 5.13.2). hmm

В версии 1.44.31 происходит "инициализация службы загрузки изображений"
а в новых такого нет.


Тут только Автор поможет.

Так, чисто поржать ))
Попробовал собрать виндовс версию mytetra из Ubuntu через wine и qt-creator.exe

ПОЛУЧИЛОСЬ! Теперь даже виртуалка не нужна ))