.timer — юнит systemd, который при истечении заданного времени вызывает скрипт .py, выводящий уведомление о дате и времени. После срабатывания таймер снова начинает отсчет времени до запуска скрипта;
.service — содержит описание, расположение скрипта .py и интерпретатора, который будет обрабатывать скрипт.
git clone:
$ git clone https://github.com/danila-Skachedubov/DBusTimer_example.git
remote: Enumerating objects: 9, done.
remote: Counting objects: 100% (9/9), done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 9 (delta 1), reused 8 (delta 1), pack-reused 0
Receiving objects: 100% (9/9), done.
Resolving deltas: 100% (1/1), done
DBusTimer_Example.
DBusTimer_Example и создать в нем каталог .gear:
$cd DBusTimer_example$mkdir .gear
.gear создать два файла: файл правила для gear — rules и spec-файл — dbustimer.spec:
$ touch .gear/rules .gear/dbustimer.spec
$ ls -a1
.
..
.gear
.git
script_dbus.py
script_dbus.service
script_dbus.timer
.gear/rules следующим содержимым:
tar: . spec: .gear/dbustimer.specПервая строка указывает, что проект будет упакован в .tar архив. Вторая строка указывает путь к расположению spec-файла.
Name: dbustimer Version: 0.4 Release: alt1 Summary: Display system time License: GPLv3+ Group: Other BuildArch: noarch BuildRequires: rpm-build-python3
%description This program displays notifications about the system time with a frequency of one hour. %prep %setup -q
/usr/lib/python3/site-packages. По этому пути будет создан каталог с именем пакета, в который будет помещен файл script_dbus.py с правами доступа 755. Аналогичная операция будет проведена с файлами script_dbus.timer и script_dbus.service. Они должны быть скопированы в каталог /etc/xdg/systemd/user. Так как макроса, раскрывающегося в данный каталог нет, можно использовать макрос %_sysconfdir, который раскрывается в путь /etc. Пример заполнения секции %install:
%install
mkdir -p \
%buildroot%python3_sitelibdir_noarch/%name/
install -Dm0755 script_dbus.py \
%buildroot%python3_sitelibdir_noarch/%name/
mkdir -p \
%buildroot%_sysconfdir/xdg/systemd/user/
cp script_dbus.timer script_dbus.service \
%buildroot%_sysconfdir/xdg/systemd/user/
mkdir -p \ %buildroot%python3_sitelibdir_noarch/%name/ создает каталог dbustimer в окружении buildroot по пути /usr/lib/python3/site-packages.
script_dbus.py с правами 755 в каталог /usr/lib/python3/site-packages/dbustimer/ в окружении buildroot.
%buildroot%_sysconfdir/xdg/systemd/user/, в который копируются файлы .service и .timer.
%files %python3_sitelibdir_noarch/%name/script_dbus.py /etc/xdg/systemd/user/script_dbus.service /etc/xdg/systemd/user/script_dbus.timer
%changelog * Thu Apr 13 2023 Danila Skachedubov <dan@altlinux.org> 0.4-alt1 - Update system - Changed access rights
Name: dbustimer
Version: 0.4
Release: alt1
Summary: Display system time
License: GPLv3+
Group: Other
BuildArch: noarch
BuildRequires: rpm-build-python3
Source0: %name-%version.tar
%description
This program displays notifications about the system time with a frequency of one hour.
%prep
%setup
%install
mkdir -p \
%buildroot%python3_sitelibdir_noarch/%name/
install -Dm0755 script_dbus.py \
%buildroot%python3_sitelibdir_noarch/%name/
mkdir -p \
%buildroot%_sysconfdir/xdg/systemd/user/
cp script_dbus.timer script_dbus.service \
%buildroot%_sysconfdir/xdg/systemd/user/
%files
%python3_sitelibdir_noarch/%name/script_dbus.py
/etc/xdg/systemd/user/script_dbus.service
/etc/xdg/systemd/user/script_dbus.timer
%changelog
* Thu Apr 13 2023 Danila Skachedubov <dan@altlinux.org> 0.4-alt1
- Update system
- Changed access rights
$ git add .gear/rules .gear/dbustimer.spec
$ gear-hsh ~/.hasher --no-sisyphus-check --commit –v
Примечание
~/.hasher/repo/x86_64/RPMS.hasher/.