StopwatchTimer - Секундомер Таймер хочу опакетить

AZJIO, не боращайте внимания! Развивайтесь! Хорошее начинание!

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

Создание пакета
Создал файл PKGBUILD такого содержания:
# Maintainer: AZJIO
pkgname=stopwatchtimer
pkgver=1.2
pkgrel=1
pkgdesc="Reminders of events: the kettle is boiling, it's time to go to work."
arch=(x86_64)
license=(GPL3)
depend=(gtk3)
optdepends=('zenity: for command, message'
            'notify-send: for command, notify')

package() {
  cp -r "${pkgdir}/../../usr" "${pkgdir}"
}
Нужно установить пакет fakeroot
Рядом с файлом PKGBUILD сделал папку usr и разложил файлы в том порядке в каком они должны скопироваться в файловую систему.
Выполняю команду cd "путь_к_папке_пакету"
Выполняю команду makepkg PKGBUILD
Появилась папка "src" и "pkg" и файл имя_проги-версия-x86_64.pkg.tar.zst

Убрал параметр md5sums=(SKIP), так как выдавал ошибку
Функция build() от которой отказался скорее всего компилирует проект из-исходников, а так файлы готовые то функцию просто удалить. Эта функция выполняется первой, когда даже ещё не существует каталога пакета ${pkgdir}.
Функция package() выполняет сборку пакета перед тем как архивировать, в моём примере она копирует папку usr. Использовал ${pkgdir} с переходом на 2 уровня вверх, так как относительные пути поддерживаются. переменная ${pkgdir} это путь в папку проекта-пакета.
Кавычки для элементов массива используются если в элементе массива есть пробел.

Перезалил архив программы (в первом посте), добавив файл "stopwatchtimer-1.2-1-x86_64.pkg.tar.zst" собранный с помощью "makepkg PKGBUILD". Проверил, установка/удаление пакета работает.
мои программы
Зарегистрировался в AUR, начал изучать тему и пришёл к выводу, что выложить туда не удастся. Бинарники не принимаются, а сборка происходит на любых языках, но явно не на PureBasic.
мои программы
facepalm
такие дела.
AZJIO
Бинарники не принимаются
Это не совсем так, в aur много пакетов с бинарниками.
vs220
AZJIO
Бинарники не принимаются
Это не совсем так
Это совсем не так :)
A.T.W.A.
совсем
Не принимаются для закачки на гит аура( только сам пакбилд и патчи), но в самом пакбилде может быть прописана загрузка бинарника со стороннего ресурса. Примеры таких пакетов можно найти например по bin
yay -Ssa bin
vs220, это всё понятно. С недавних пор сам сопровождаю (усыновил) такой *-bin.
а чо мешает .bin на aur залить как какой нить .patch или .desktop, а потом переименовать ? :)
до переезда на git вообще можно было любые файлы класть, а точно незя .bin ?
AZJIO Из того что я прочёл и смог понять то вы пишите программу и хотите так сказать предоставить пакет как можно большему количеству дистрибутивов. И так я вижу вы уже создали несколько пакетов для Debian, Slakware и у вас получилось собрать пакет для Arch теперь его осталось опубликовать в AUR но для начала надо правильно подготовить PKGBUILD

Следует отметить что в AUR не хранятся готовые бинарные пакеты, а только PKGBUILD сборка пакета происходит непосредственно на машине пользователя. Бинарные пакеты находятся только в официальных репозиториях или в локальном репозитории пользователя

Начнём.
1) Вам необходимо разместить исходный код своего творения на github, а не хранить его локально или на яндек диске... Это позволит организовывать релизы и контролировать процесс разработки.
2) Я бы добавил в ваш проект cmake или makefail.
3) Правильно оформить PKGBUILD
4) Залить PKGBUILD в AUR

Теперь давайте оформим PKGBUILD вот Русскоязычная статья по этой теме
пример PKGBUILD в ArchLinux можно взять по адресу /usr/share/pacman/PKGBUILD.proto скопировав его с именем PKGBUILD
давайте его отредактируем


# Имя пакета/программы (Учтите существуют всякие префиксы такие как  -git -bin и прочие -bin в основном используется для упаковки уже собранных программ или для перепаковки из пакетов других дистрибутивов, -git используется для сборки версии программ находящийся в разработке тут следует использовать функцию pkgver() которая автоматически задаст переменную версии пакета pkgver)
pkgname=stopwatchtimer
# Версия программы
pkgver=1.2
# Версия пакета
pkgrel=1
# Краткое описание пакета
pkgdesc="Reminders of events: the kettle is boiling, it's time to go to work."
# Архитектура для которой создаётся пакет
arch=(x86_64)
# Домашняя страница программы
url="http://"
 # Лицензия под которой распространяется программа
license=(GPL3)
 # Пакеты которые необходимы для работы данного пакета (Обязательные зависимости)
depend=(gtk3)
 # Пакеты необходимые только для сборки пакета
makedepends=(purebasic)
# Пакеты которые не являются обязательными но при их наличии
optdepends=('zenity: for command, message'
            'notify-send: for command, notify')
 # Ссылки на исходный код, патчи и прочие файлы например картинка для иконки *.desktop
source=("https://github.com/../$pkgname-$pkgver.tar.gz"
        "StopwatchTimer.desktop"
        "$pkgname-$pkgver.patch")
 # Контрольные суммы файлов можно указать SKIP для всех файлов
md5sums=('SKIP'
                   'SKIP'
                   'SKIP')
 # prepare это не обязательная функция которую можно не использовать она выполняется первой перед сборкой программы в основном используется для подготовки исходников к сборке например накладываются патчи.
prepare() {
        cd "$pkgname-$pkgver"
        patch -p1 -i "$srcdir/$pkgname-$pkgver.patch"
}

#  build также является не обязательной функцией в ней как правило и происходит процесс конфигурирования и компиляции программы тоесть все те комманды которые выполняются для сборки.
build() {
        cd "$pkgname-$pkgver"
        ./configure --prefix=/usr
        make
}

#  package это обязательная функция которая обязана быть в любом PKGBUIL тут происходит работа во временном каталоге который будит упакован в окончательный пакет. Тут можно что-то удалить что то переместить одним словом подготовить структуру каталогов и файлов которые будут распакованы в корень системы
package() {
        cd "$pkgname-$pkgver"
        make DESTDIR="$pkgdir/" install
       mkdir -p "${pkgdir}/usr/share/applications/"
       cp "$srcdir/stopwatchtimer/StopwatchTimer.desktop" "${pkgdir}/usr/share/applications/StopwatchTimer.desktop"
}

Для того чтобы залить PKGBULD в AUR рекомендую посмотреть данное видио

P.S. Поскольку вы используете PureBasic которого нет ни в официальном репозитории ни в AUR то вам придётся и его тоже следует оформить в пакет и опубликовать в AUR
 
Зарегистрироваться или войдите чтобы оставить сообщение.