Packaging HOWTO
(revision 0.3)
Dmitry V. Levin <ldv@altlinux.ru>
ALT Linux Team
��� ���������� ��������� � ���������� � rpm �������� ��������� ������:
- ���������� �������� ����������������:
- ���� ������ ������ ��������
������������ ��������, � ������� ������ ���� ��������� �����. ��� �����
����, ����� spec-����� ������������ ���������� ���� ������.
- ������ ������������:
- ��� ��� spec-����� ��� ��� �����
����, �� �� ������ ����� ������ � ���� ��������, �������, ����������, �
������� ������� ��������. ����������� �� ������ ���������� ����� ����
�� ����� � ����, ��� ��� ������������������ ������ �������� ����� ��� �
������� ��������. ��� ����� ���� �������. ���� �����-�� ��� ���������� �
������ spec-������ ����� ������ ����, �� ���� �������� ������(�).
- ������� spec-����� ����� ������������:
- ��, ��� ��� ����� ������ -
���� ����� ����. �� ����� �������, ���� � ������������, ������������ �
������������� ��������� ��������� spec-������ ����� ������������ �������.
- X11R6:
- %_x11dir, %_x11bindir, %_x11libdir, %_x11includedir, %_x11mandir, %_x11datadir;
- ��������:
- %_licensedir;
- ����:
- %_menudir, %_iconsdir, %_miconsdir, %_liconsdir;
- emacs:
- %_emacslispdir;
- ������ ���������:
- %_initdir, %_lockdir, %_logdir.
- %add_optflags <options>:
- �������� ��������� ��������� � ����������� ����� %opflags;
- %remove_optflags <options>:
- ������ ��������� ��������� �� ������������ ������ %opflags;
- %optflags_core:
- ������� ���������;
- %_optlevel:
- ������� �����������;
- %optflags_optimization:
- ���������, ���������� �� �����������, ����� ������������-���������;
- %optflags_warnings:
- warning options;
- %optflags_debug:
- debugging options;
- %optflags_shared:
- ���������, ����������� ��� �������� relocatable ������;
- %optflags_nocpp:
- ���������, ����������� ��������� C++ exceptions � C++ RTTI;
- %optflags_notraceback:
- -fomit-frame-pointer;
- %optflags_fastmath:
- -ffast-math;
- %optflags_strict:
- -fstrict-aliasing;
- %optflags_kernel:
- ���������, ������������ ��� ���������� ���� � ��� �������.
�� ���������, ����������� ����� %opflags ������� ��
"%optflags_core %optflags_warnings %optflags_optimization".
- %make_build:
- ����� make � ����������, �������������� ����������� ������������ ������ � ������ �����;
- %make_install:
- ����� make c �������������� ���������� INSTALL,
��� � ������ ���������� ���������� Makefile�� ������ ��������� ���������
���� ��������� ����������� ������, ��� �������� ����� ��� ������������;
- %makeinstall:
- ``%make_install <������������� ������ ����������,
������������ ������� Makefile���> install''.
- %install_info:
- ����������� �����/����������� info-�������;
- %uninstall_info:
- ������ ����������� ��������� info-�������.
- %update_menus:
- ����������� �����/����������� ����;
- %clean_menus:
- ������ ����������� ��������� ����.
- %__libtoolize:
- ���� � ������� libtoolize;
- %_configure_script:
- ���� � ������� configure;
- %_configure_target:
- ������� ��������� ��� configure;
- %_configure_gettext:
- -without-included-gettext.
- %post_service:
- ����������� ������ ������� ��� ���������, ���������� ��� ����������;
- %preun_service:
- ������ ����������� ������� � ��� ���������� ��� ��������.
- %buildroot:
- �������� BuildRoot;
- %_defattr:
- �������� ������ � ��������� �� ��������� ��� ������ ������ %files � ��� ������� �����, ����������� � ���� �������;
- %_compress_method:
- �����, ������������ ��� ������ ������������ � ������ %install;
- %_strip_method:
- �����, ������������ ��� ��������� ELF-������ � ������ %install;
- %_findreq_default_method:
- �����, ������������ �� ��������� ��� ������ ��������� ������������;
- %_findprov_default_method:
- �����, ������������ �� ��������� ��� ������ ��������������� ������������;
- %set_strip_method:
- �������� �������� ������� %_strip_method;
- %find_lang:
- ����� /usr/lib/rpm/find-lang
- %strip_executable:
- ����� /usr/lib/rpm/brp-strip ��� ��������� ELF executables;
- %strip_relocatable:
- ����� /usr/lib/rpm/brp-strip ��� ��������� ELF relocatables;
- %strip_shared:
- ����� /usr/lib/rpm/brp-strip ��� ��������� ELF shared objects;
- %strip_static:
- ����� /usr/lib/rpm/brp-strip ��� ��������� ELF ar archives;
- %cleanup_build:
- ����� /usr/lib/rpm/brp-cleanup;
- %compress_docs:
- ����� /usr/lib/rpm/brp-compress;
- %strip_binaries:
- ����� /usr/lib/rpm/brp-strip;
- %clean_buildroot:
- ���������� rm -rf %buildroot, ���� %buildroot �� ��������� �� ��������� /.
- %buildmulti:
- �������������� ��������� %build ��� ������,
����� � ������ %build ���������� ���������� %buildroot.
������ ������, ����� ������� ����� �������� �� ���� �������, �����
��� ��������.
- glibc:
- %__glibc_version, %__glibc_version_major, %__glibc_version_minor;
- python:
- %__python_version;
- %get_version:
- ������ ���������� ������;
- %get_release:
- ����� ���������� ������;
- %get_serial:
- Serial ���������� ������;
- %add_serial:
- Serial ���������� ������ � ����, ��������� ��� ��������� � spec-����.
��� �������, ��� �������, ������������ � �������, ������ ������� ��������
� ���������� �������� ���� ��������, ���� ��� ������ ��������� ���������.
- %intel:
- ������ ���������� intel, ����������� � i386;
- %amd:
- ������ ���������� amd, ����������� � i386;
- %ix86:
- ������ ���� ����������, ����������� � i386;
- ���������� ������� %packager:
- %packagerName, %packagerAddress.
- -bE:
- ����� ����� ������ rpm, ��� ������� ���������� ������ ����������� ��������;
- -nowait-lock:
- �� ����������� �������, ���� ���� ������ rpm ������;
- -fancypercent:
- ���������� �������������� ����������
� ��������� ����������� ������ ��� ���������/���������� �������.
� ���������� � ������������ ������ ������������ ��/��� ����������� ���������,
����������� ��������� ������ ��������� ������������ ��� shell � perl-��������,
� ����� ��������� ������ ��������������� ������������ ��� perl-��������.
����� ����������� rpm �� ��������������� ������ ������������ ��� ������ �������
�����������, ��� � ������, ���������� ����� AutoReq, AutoProv � AutoReqProv.
� ����������� ��������� yes/no (true/false), ����� �������, ��������� �����
��������� ��������, ���������� ������� ������� ������ ������������:
- lib: ��������� ������ ������������ ��/��� ����������� ���������;
- shell: ��������� ������ ������������ � shell-��������;
- perl: ��������� ������ ������������ � perl-��������;
- nolib: ���������� ������ ������������ ��/��� ����������� ���������;
- noshell: ���������� ������ ������������ � shell-��������;
- noperl: ���������� ������ ������������ � perl-��������;
- default: �� ��, ��� � yes;
- none,off: �� ��, ��� � no;
- all: ��������� ���� ��������� ������� ������ ������������.
��������� ���� ����� �������� ��� ���� �����, ��� � ������������ �������.
�� ���������, ��� ������� ��� ������ ����������� ������ AutoReq = AutoProv = yes,
��� �� �������� �������� ������������� �������� %_findreq_default_method �
%_findprov_default_method ��� ����������� ������� ������ ������������.
��� ������������ ������, �������������� ��� man ��� info-������������, �� ���������
������ ������ %install, ��������� �������� ���������� ������.
�������������� ��������� ������ ������:
- bzip2: ������ � ������� ``bzip2 -9'';
- gzip: ������ � ������� ``gzip -9n'';
- auto: ������ � ������� ``gzip -9n'' ���� ``bzip2 -9'' � ����������� �� ����,
����� ������� �������� �����������;
- none: ������������ ������������ ������ ������ ������;
- skip: ��������� ������ ������������ ���������.
����� ����� ����� ����������� � ������ ���������� ������, ������� �� �������� �������
%_compress_method; �������� �� ��������� ��� ����� ������� - auto.
�� ��������� ��������� ������ ������������ ������������ ������, �������, ��������,
������� ��������� � ����� � ����������� ���� ������ � �������� �� ������.
�������� �������� ��������� ������ ���������� � ���������� ������ ������
ELF-������ ��� ������ �������� �� ���� �������� �� ��� ���������� ����������.
������� �� ��������� ������ ������ %install ��� ELF-����� ��������� �����
�������������� ���������� strip. ����� ����� ������ ������������ ��������� �������
%_strip_method, ������� ���� ����� �� ��������� ��������� ��������:
- executable: ELF executable;
- relocatable: ELF relocatable;
- shared: ELF shared object;
- static: ar archive.
����� ����, ���� ����������� �������� strip �������, ��� ���� ���� �������������
������� %strip_executable, %strip_relocatable, %strip_shared, %strip_static.
��������� ���� �������� �������� ������� � ``/usr/lib/rpm/brp-strip -help''.
��� ��������, python-������ ������ ����������� � �������� ����� ��� ����������
�������������� ��� ����������� ������ � ����. ������ ����� ������, ������ ����� �������,
������ ����� ������ �������� � ������ ��� �����, � ������� ������ ����������. � ����� �
��������� ��������������� ���������������� ������, ��������� � ���������� ������ ������
%install, ����������, ��� �� ����� ���� ������������ ����� ��������� ������.
�� ���� ������� ������ �� ��������� ������ ������ %install ������������ ��������������
���� python-������� ����� �������, ����� �� ����� ���� ������������ ����� ��������� ������.
� �������� ����-����������� ����� �������������� ���������, ��� ������� �������� � �������
%__python. ������ ��� /usr/bin/python, ������ � ��������� ������� ����� �������������
�������� ��� �������� �� ������ (��������, � ������ ������ ������ python ��� ���� �� �����-��
������� �������������� �� �����).
�������, ����� ��� BuildRoot � spec-����� ���������, ����� ������� rpm �����
������������ � �������� BuildRoot, ������ ������������. ������ ���� ��� �� �����
������� ���������� � ����� (� ������) ���� ������. ������ ����� ������������ �������� �������
%buildroot, ������� ��������� ��� ``%{_tmppath}/%{name}-buildroot'' � �����
/usr/lib/rpm/macros � ����� ���� ������������� � ����� �����, ��� ����������� ����������
�������. � ������, ���� ������ %buildroot �� ��������� ���� ��� �������� ������������ �����
������������ �������� ``/'', ������ ������ �� ����� ���������.
����� ����������� ������ %install � �� ��������� ���������� ������ %clean rpm
������������� ������� BuildRoot � ������� ������� %clean_buildroot. ��� ������, ���
������ �� ����� ������������ ��� ������� ``rm -rf $RPM_BUILD_ROOT''. ������ %clean
������ ����� (� ������) ���� �������, ���� � ��� �� ���������� ������, ����� ����� ``rm''.
� ��� ������ �������, ����� � spec-����� ������������ ���������� BuildRoot �� � ������
%install, ��� ��� ������ ����, � � ������ %build, ��� � �������� �����������, �����
��������� ����� ������� BuildRoot �� ������ ������ %install � ������ ������ %build,
���� �������� ��������� %build �� ������ %buildmulti.
����� � ������ ������ ������ %files ���� ���������� ��������� �������� ������ �
��������� ����������� ������� � ������� �������� ����������� ������������
��������� %defattr. ������ ��� ���������� ������������� � ������ ������ ������ %files,
� ����� � ������ ������� �����, ����������� � ������ %files � ������� ����� -f.
������ ������, � �������� ���� ��������� ������������ �������� ������� %_defattr.
����� �������, ������� ������������� ��������� %defattr � ������ ������ � ������
������� ������� ������������.
��, ��� �����-�� ���� ��������������, �� �������� ����� ��������, � ����� � ������ �������.
������, ����� ��� ������, ����� ������-������������� MAKEDEV, ����� (� �����) ��������
������������������� ������������� �� ��������� ����� ���������� ������� � ������������
������, ������ ������� ����������������� ������������� �� ��������� ���������. ���� ������
����� ����� ����� ��������� �������� ������� %_allow_root_build.
�� ������� ������������ ���������� ����������� - ��� ���� ������������ spec-����,
������ ��� ����� ��� �������������. � ���������� ������������, � ���������, ���������:
- ��� BuildRoot:;
- c����� ���� rm -rf $RPM_BUILD_ROOT;
- %_defattr �� ������������ ����������� � ������ ������ � ������ %files;
- ������ %clean, ������ ���� ��� ��������� ����������.
��� ������ �������� ����� spec-����� ��������� ��������� ��������.
��������� �� ��� �����:
perl -pi -e 's/%\{([A-Za-z_0-9]+)\}([^A-Za-z_0-9?*]|$)/%$1$2/g' spec-����
������������� ������� ������������ �����: Name, Version, Release, Serial,
����� Summary, License, Group, Url, Packager, BuildArch, ����� Source, Patch,
����� Provides, Requires, PreReqs, Conflicts, �, �������,
Prefix, BuildPreReqs, BuildRequires. ����������, �� ��� �� �����������������
�����, ��� �������, ������������, ����� ��� ����������� � ������ ����� ������������
����. � ����� � ���, ��� BuildRequires �������������� ��� �������������
����������� ������������, ��� �������� ������ ������������ ������� ������������ BuildPreReq.
���� � ������ ������ ������ ����� ����������� ���� ������ ����� �� ������ ������,
����� ������������ ������ %find_lang. ��������� ���������� ���� �
``/usr/lib/rpm/find-lang -h''
������� �� ��������� ����� Group: ��� ������ ��������������� ����������������
� ��� ���� ������������ �������������� ���������, �������������� � ����� /usr/lib/rpm/GROUPS.
��� ������ � ��������������� spec-������� ���������� ������� �������������� ������������:
���� ���� ����� � �����-���� ���� ������� �� ������� ���������,
�� ��� ����������� ������ ���� ������� ���������, ������� �� ������ ���, �� ����� ���c��,
����� � serial (���� ����). ��������, ``Requires: %name = %version-%release''.
�������� �������� �� ���������: ���� ���������, � ������� �� ������, ������� ���������.
������, ���������� ��� ����������� ����������, ��� � ������������ �� ���������,
������ ���� ��������� �� ��������� ����� �������, ����� � ��������,
���������� ����������� ����������, �� ������� ������������ �� ���������.
��� �������� ��������� ���������� ����������� ������������.
�� ��������, ����� �������, ��������� ������ �� ����������� ���������,
������ ���������� � �������� ``lib`` ���� ��������� ��� ������ �����.
��� ���������� ���������� ������� ������� � �������������� ������������.
����������� ���������� ������ ���������� � ��������� ���������,
��� ������� �� ���������� �� �������������.
���� ��� devel-��������� ������������� ��������� -devel,
�� ��� ������ devel-static-��������� ����� ������������� ��������� -devel-static.
��� ���������� ���������� ������� ������� � �������������� ������������:
� ������ ������������ devel-static-��������� ������ �������������� �����������
�� -devel = %version-%release.
������ ������ ���������������. ��������, ��� ��������� ��� �������� ����������� ���������.
� ����� ������� ������� ��������� ���������� ���������� � ������������,
����������� ��� ����������� ����������. � ���������, ����� ��������������:
- ��� Provides: ������_��� = %version
- ��� Obsoletes: ������_���