Skip to content

Instantly share code, notes, and snippets.

@w495
Last active January 25, 2019 14:15
Show Gist options
  • Star 6 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save w495/9661178 to your computer and use it in GitHub Desktop.
Save w495/9661178 to your computer and use it in GitHub Desktop.
Простой пример spec файла для сборки rpm-пакета.
Name: xadv-sql
##
## Номер версии (значительные изменения)
## Версия должна начинаться с единицы.
##
Version: 1.0
##
## Номер сборки (незначительные изменения)
##
Release: 0.1
##
## Краткое описание
##
Summary: Аdvertisement test database for advertisement test server.
Summary(ru): Тестовая рекламная база данных для рекламного сервера сервер.
##
## Лицензия
##
License: TvZavr Ltd.
##
## Лицензия
##
URL: http://recl.tvzavr.ru
##
## Группа приложений
## Список возможных (допустимых) групп:
## Archiving/Backup
## Archiving/Cd burning
## Archiving/Compression
## Archiving/Other
## Books/Computer books
## Books/Faqs
## Books/Howtos
## Books/Literature
## Books/Other
## Communications
## Databases
## Development/C
## Development/C++
## Development/Databases
## Development/Debug
## Development/GNOME and GTK+
## Development/Java
## Development/KDE and Qt
## Development/Kernel
## Development/Other
## Development/Perl
## Development/PHP
## Development/Python
## Development/Ruby
## Development/X11
## Editors
## Education
## Emulators
## File tools
## Games/Adventure
## Games/Arcade
## Games/Boards
## Games/Cards
## Games/Other
## Games/Puzzles
## Games/Sports
## Games/Strategy
## Graphical desktop/Enlightenment
## Graphical desktop/FVWM based
## Graphical desktop/GNOME
## Graphical desktop/Icewm
## Graphical desktop/KDE
## Graphical desktop/Other
## Graphical desktop/Sawfish
## Graphical desktop/WindowMaker
## Graphical desktop/Xfce
## Graphics
## Monitoring
## Networking/Chat
## Networking/File transfer
## Networking/IRC
## Networking/Instant messaging
## Networking/Mail
## Networking/News
## Networking/Other
## Networking/Remote access
## Networking/WWW
## Office
## Publishing
## Sciences/Astronomy
## Sciences/Biology
## Sciences/Chemistry
## Sciences/Computer science
## Sciences/Geosciences
## Sciences/Mathematics
## Sciences/Other
## Sciences/Physics
## Shells
## Sound
## System/Base
## System/Cluster
## System/Configuration/Boot and Init
## System/Configuration/Hardware
## System/Configuration/Networking
## System/Configuration/Other
## System/Configuration/Packaging
## System/Configuration/Printing
## System/Fonts/Console
## System/Fonts/True type
## System/Fonts/Type1
## System/Fonts/X11 bitmap
## System/Internationalization
## System/Kernel and hardware
## System/Libraries
## System/Printing
## System/Servers
## System/X11
## Terminals
## Text tools
## Toys
## Video
##
Group: Databases
##
## Архив с исходными кодами.
## Может быть более одного.
##
Source0: xadv-sql-1.0.tar.gz
##
## Архитектура
##
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
##
## Зависимости
##
Requires: mysql
Requires: mysql-server
##
## Определим свои переменные.
##
%define dbname "xadv_adback"
##
## Подробное описание пакета
##
%description
Sets the initial database development
administrative part of the advertising system.
##
## Подробное описание пакета на русском
##
%description -l ru
Устанавливает начальную базу данных для разработки
административной части рекламной системы.
##
## Подготовка пакета к сборке.
## В этой секции полагается размещать подготовку
## исходников с сборке, применение патчей и т.п.
##
%prep
##
## Распаковка исходников Source0
##
%setup -q
%build
##
## Установка файлов в окружении сборки.
##
%install
rm -rf %{buildroot}
install -d %{buildroot}%{_datadir}/%{name}
install xcreate.sql %{buildroot}%{_datadir}/%{name}
install xinsert.sql %{buildroot}%{_datadir}/%{name}
install xtest.sql %{buildroot}%{_datadir}/%{name}
##
## Файлы, входящие в RPM-пакет. В этой секции
## желательно определить макросом %defattr(-,root,root)
## атрибуты по умолчанию
## (владелец root, группа root, доп. атрибутов нет.)
## При создании списка файлов
## можно использовать шаблоны с символами '*' и '?',
## но делать это следует осмотрительно,
## так как указание списка файлов как /* приведет
## к включению лишних файлов в пакет.
## Специально можно пометить конфигурационные файлы
## (%config), что приведет к специальному
## обращению с ними, например при обновлении пакета, документацию (%doc)
## и пустые директории, принадлежащие пакету (%dir).
##
%files
%defattr(-,root,root,-)
%dir %{_datadir}/%{name}
%{_datadir}/%{name}/xcreate.sql
%{_datadir}/%{name}/xinsert.sql
%{_datadir}/%{name}/xtest.sql
##
## Очистка временного окружения сборки и
## обычно ничего кроме двух указанных команд не содержит.
##
##
%clean
rm -rf %{buildroot}
##
## Постинсталляционный скрипт.
##
%post
info () {
echo -e "\033[1m info: \033[0m $@ ";
}
ok () {
echo -e "\033[1m done: \033[0m \033[32m $@ \033[0m";
}
error () {
echo -e "\033[1m ERROR:\033[0m \033[31m $@\033[0m"; exit 1;
}
info "service mysqld restart;"
service mysqld restart \
&& ok "service mysqld restart;" \
|| error "service mysqld restart;"
info "creating database;"
mysql -u root -e "create database if not exists %{dbname}" \
&& ok "creating database;" \
|| error "creating database;"
info "apply %{_datadir}/%{name}/xcreate.sql;"
mysql -u root %{dbname} < %{_datadir}/%{name}/xcreate.sql \
&& ok "apply %{_datadir}/%{name}/xcreate.sql;" \
|| error "apply %{_datadir}/%{name}/xcreate.sql;"
info "apply %{_datadir}/%{name}/xinsert.sql;"
mysql -u root %{dbname} < %{_datadir}/%{name}/xinsert.sql \
&& ok "apply %{_datadir}/%{name}/xinsert.sql;" \
|| error "apply %{_datadir}/%{name}/xinsert.sql;"
info "apply %{_datadir}/%{name}/xtest.sql;"
mysql -u root %{dbname} < %{_datadir}/%{name}/xtest.sql \
&& ok "apply %{_datadir}/%{name}/xtest.sql;" \
|| error "apply %{_datadir}/%{name}/xtest.sql;"
##
## История пишется записями с фиксированным форматом даты,
## имени и адреса электронной почты.
## Формат дальнейших заметок произволен.
##
%changelog
* Thu Mar 20 2014 Ilya w-495 Nikitin <w@w-495.ru> - 1.0
- Initial build
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment