Serg-Norseman / GEDKeeper

GEDKeeper - program for work with personal genealogical database
https://gedkeeper.net/
GNU General Public License v3.0
153 stars 45 forks source link

Implement the package for Linux Fedora (rpm) #159

Closed slava8686 closed 2 years ago

slava8686 commented 6 years ago

how to get the package linux?

Serg-Norseman commented 6 years ago

https://gedkeeper.github.io/ and table at the bottom of page :)

slava8686 commented 6 years ago

build install os fedora!?

Serg-Norseman commented 6 years ago

The package was tested only for Ubuntu. I do not know much about the various Linux package managers and I do not know how to build a package for others.

Serg-Norseman commented 6 years ago

If there is an opportunity to develop scripts to create an rpm-package - I will be happy with this help!

slava8686 commented 6 years ago

here my spec.files sketch %define rname GEDKeeper %define summary GEDKeeper - program for work with personal genealogical database

Summary: %{summary} Name: gedkeeper
Version: 2.12.0 Release: 1 License: GPLv3 Group: foo Url: https://github.com/serg-norseman/gedkeeper Source0: %{url}/archive/v%{version}.tar.gz

%description %{summary}.

%files -f %{name}.lang

------------------------------------------------------------------

%prep %setup -qn %{rname}-%{version}

%build pushd projects xbuild GEDKeeper2.linux.sln

%install

%find_lang %{name}

slava8686 commented 6 years ago

what further I don't understand

slava8686 commented 6 years ago

how on ubuntu there is an assembly of the program?

Serg-Norseman commented 6 years ago

In a couple of days I'll try to install Fedora and build the project and package.

how on ubuntu there is an assembly of the program?

I do not understand the question: how to assemble the project or how to build a deb-package?

slava8686 commented 6 years ago

how to collect the project,there is no instruction for assembly

Serg-Norseman commented 6 years ago

First read this: FAQ and wiki. If the description is too short and there will be questions - write to me. Wiki is very short, information is not enough. Therefore, if there are questions, they will help the development of documentation.

slava8686 commented 6 years ago

thanks.

slava8686 commented 6 years ago

do you speak Russian?

slava8686 commented 6 years ago

я уже посмотрел))) я хотел спросить как программу собрать в rpm пакет?пишу xbuild ./projects/GEDKeeper2.linux.sln /p:Configuration=Debug /p:Platform="x86" /p:MonoCS=true nunit-console ./projects/GKTests/bin/Debug/GKTests.dll собирает почему то для винды.как получить бинарные файлы чтоб запоковать их в rpm?

Serg-Norseman commented 6 years ago

При компиляции .NET проектов под линуксом, получаются внешне точно такие-же файлы .exe и .dll, как и для винды. Отличия только внутри файлов. У меня есть некоторые отличия в коде между сборкой под винду и под линукс, они управляются ключом "/p:MonoCS=true".

Конечно неудобно, что в линуксе мы видим не бинарники без расширения и .so файлы, а типы файлов как в винде, но тут уж ничего не поделаешь, так решили создатели Mono. Или у них не было выбора (т.к. сборки .net собранные под виндой как правило работают и в линуксе - скорее всего это был вопрос кросс-платформенной бинарной совместимости и они решили ничего не менять).

Для запуска программы под линуксом не из IDE можно использовать gk2_run.sh. Или настроить ярлык со строкой запуска, как в этом файле.

Serg-Norseman commented 6 years ago

Если у вас получится разработать работающие скрипты для сборки rpm-пакетов, прошу - присоединитесь к проекту (fork), добавьте файлы в папку ./deploy/rpm/ и сделайте pull request. А я, со своей стороны, добавлю вас в список соразработчиков (https://github.com/Serg-Norseman/GEDKeeper/blob/master/locales/help_rus/gkhAuthors.html), либо под псевдонимом, либо с реальным именем если сообщите его.

Я вчера установил Fedora в виртуалку, но до воскресенья каких-либо особых работ не будет. У меня там какие-то непонятки с Mono и MonoDevelop.

slava8686 commented 6 years ago

я сделал spec для rpm,только под rosa linux.Надо сделать чтоб он был общим. %define rname GEDKeeper %define summary GEDKeeper - program for work with personal genealogical database

Summary: %{summary} Name: gedkeeper
Version: 2.12.0 Release: 1 License: GPLv3 Group: Office Url: https://github.com/serg-norseman/gedkeeper Source0: %{url}/archive/v%{version}.tar.gz BuildArch: noarch

BuildRequires: pkgconfig(mono)

%description %{summary}.

%files %doc .md LICENSE %{_bindir}/gk2_run.sh %{_libdir}/%{name} %{_datadir}/mime/.xml %{_datadir}/applications/%{name}.desktop %{_datadir}/pixmaps/%{name}.png

------------------------------------------------------------------

%prep %setup -qn %{rname}-%{version}

%build xbuild ./projects/GEDKeeper2.linux.sln /p:Configuration=Debug /p:Platform="x86" /p:MonoCS=true

%install install -Dm 0755 gk2_run.sh %{buildroot}%{_bindir}/gk2_run.sh install -d 0755 %{buildroot}%{_libdir}/%{name} install -Dm 0644 deploy/application-x-%{name}.xml %{buildroot}%{_datadir}/mime/application-x-%{name}.xml install -Dm 0644 deploy/%{name}.desktop %{buildroot}%{_datadir}/applications/%{name}.desktop install -Dm 0644 deploy/%{name}.png %{buildroot}%{_datadir}/pixmaps/%{name}.png cp -r *.dll %{rname}2.exe \ locales \ plugins \ samples \ scripts %{buildroot}%{_libdir}/%{name}

E: zero-length

rm -rf %{buildroot}%{_libdir}/%{name}/scripts/readme.txt

%changelog

slava8686 commented 6 years ago

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

Serg-Norseman commented 6 years ago

Это работает не так, через сайт такие операции не выполняются. Тебе нужно почитать про то, как работает Git. В общих чертах: ты делаешь форк себе в свой профиль на гитхабе и на свой компьютер ставишь один из вариантов ПО Git - в чистом виде, с работой из командной строки, или с GUI (например GitHub Desktop). После этого, в выбранном инструменте, на своём компьютере, в выбранную папку делаешь git clone (https://help.github.com/articles/which-remote-url-should-i-use/). Так ты получаешь свою локальную копию проекта, в которой можешь заниматься разработкой (т.е. в норме положено делать git clone репозитория, а не Download Zip). Когда ты разработал что-то, модифицировал - тогда делаешь commit в свой репозиторий github. А уже из него, можно через сайт выполнить pull request в основную ветку проекта, которую ты форкнул на первом этапе.

Вот навскидку ссылка с относительно полезной статьей: https://habrahabr.ru/post/125799/. Сама статья больше для виндузятников и может быть тебе не очень полезной. Но в конце есть ссылки еще и на другие полезные статьи. Или посмотри вот эту статью: https://habrahabr.ru/post/125999/. На хабре таких статей много, можно поискать еще.

slava8686 commented 6 years ago

ok.

slava8686 commented 6 years ago

Отпишитесь пришел пулл!

Serg-Norseman commented 6 years ago

Да, пришел, всё хорошо :)

slava8686 commented 6 years ago

ну хорошо,а для чего lua скрипты?

Serg-Norseman commented 6 years ago

У тебя пакет собирается? Какую команду ты используешь из терминала? Я уже несколько попыток предпринял, не получается.

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

slava8686 commented 6 years ago

ну вообще,rpmbuild -ba на звание спека,только он же не дополнен,так как править каждый будет под свой дистр.Пакет собран и работает

slava8686 commented 6 years ago

надо в личку переходить чтоб объяснить,vk есть?

Serg-Norseman commented 6 years ago

Лучше, если в проекте будет как шаблонный spec. Так и полный, хотя бы для одной какой-то системы с rpm-пакетами. Я сейчас пытаюсь разобраться, как сделать полный для базовой Fedora. Чтобы можно было в список дистров включать. Разработчик разберется как модифицировать для себя и инструкцию приложить можно. А обычный пользователь линуксов, какие сейчас уже есть (в Европе например, уже сталкивался) - и пытаться не будет разобраться.

https://vk.com/norseman

Serg-Norseman commented 5 years ago

While postponed, because does not come to understand.

Serg-Norseman commented 2 years ago

Implemented.