rpm-build/README.ALT

90 lines
5.2 KiB
Plaintext
Raw Normal View History

2002-03-25 23:37:46 +03:00
There are few noticeable for packager differences of this version
of the RPM from ALT Linux Team from the version from MandrakeSoft on which
this one is based upon:
Features and incompatibilities:
0. Many bug fixes still missing in public release of rpm-3.0.6.
1. Advanced and enhanced macros designed to simplify work of packager, including
+ add_optflags, remove_optflags, and many others (for easy compilation
tuning);
+ make_compile, make_install, make (aliases for make in %build and %install
sections);
+ install_info, uninstall_info (advanced variants of _install_info and
_remove_install_info from MDK for work with info pages);
+ various macros aliasing well-known directories;
2. Automatic lookup for dependencies in shell scripts (use "Autoreq: no" to
disable).
3. By default, info and man pages are compressed with either "gzip -9n" or
"bzip2 -9", depending on result size; it means that numerous ".bz2"s in
%files section should be replaced with "*"; same changes should be done in
other sections of spec file.
This behavior of rpm is handled by %_compress_method macro; currently defined
methods are:
+ auto: compression as described above;
+ bzip2: compression with "bzip2 -9" program;
+ gzip: compression with "gzip -9n" program;
+ none: all pages will be uncompressed;
+ skip: just skip this phase, do not (un)compress at all, only check links.
4. At the post-install stage, ELF binaries are stripped, depending on file type.
This behavior of rpm is handled by %_strip_method macro which is set of
recognizable ELF file types:
+ executable (ELF executable);
+ relocatable (ELF relocatable);
+ shared (ELF shared object);
+ static (current ar archive);
+ no, none, off, false - designates no stripping at all.
Value of %_strip_method macro can be set by %set_strip_method macro or
defined directly.
By default, only ELF executables and ELF shared objects will be stripped.
Also, there are 4 macros designed for manual stripping from .spec file:
%strip_executable, %strip_relocatable, %strip_shared, %strip_static.
Syntax of these macros described in '/usr/lib/rpm/brp-strip --help'.
5. At the post-install stage, RPM performs lookup for dependencies.
This behavior of rpm is handled by standard tags: AutoReq, AutoProv,
AutoReqProv. Unlike original yes/no rule, these tags now define set of
methods to be used for lookup. Currently, following methods are recognized:
+ files - enable lookup for external files dependencies;
+ nofiles - disable lookup for external files dependencies;
+ lib - enable lookup for shared library dependencies;
+ nolib - disable lookup for shared library dependencies;
+ pam - enable lookup for pam dependencies;
+ nopam - disable lookup for pam dependencies;
+ perl - enable lookup for dependencies found in perl scripts;
+ noperl - disable lookup for dependencies found in perl scripts;
+ shell - enable lookup for dependencies found in Bourne shell scripts;
+ noshell - disable lookup for dependencies found in Bourne shell scripts;
+ default, yes, true - enable lookup using default methods (see rcfiles for details).
+ all - enable lookup using all known methods (files, lib, pam, perl, shell).
+ no, none, off, false - disable lookup;
By default, both AutoReq and AutoProv defined to "yes" - it means that
values of %_findreq_default_method and %_findprov_default_method macros will
be used to define lookup methods.
In addition, macro _perl_lib_path can be defined to customize
RPM_PERL_LIB_PATH variable used to find perl provides/requires.
6. At the post-install stage, RPM performs recompilation of python modules
if found in BuildRoot, using value of __python macro as python compiler.
By default, it's equal to /usr/bin/python; to bypass the procedure, just
undefine this macro.
Rationale: if not compiled properly, compiled python modules will be useless
after package installation.
7. BuildRoot now defined in /usr/lib/rpm/macros; that is, BuildRoot tag
defined in specfile will have no effect and may be omitted. More even,
building packages without proper defined BuildRoot is impossible.
%buildroot macro can be redefined in any rcfile.
8. Before executing %install and after executing %clean sections, BuildRoot will
be automatically purged; that is, you don't need to specify this pesky
"rpm -rf" any more. Note, however, that any activity in BuildRoot before
%install section will be lost.
If you need to keep BuildRoot before %install section, you should use
%buildmulti macro instead of %build. In this case, BuildRoot will be purged
right before %build section.
9. Default %defattr value in all %files sections is %{_defattr}.
This macro have been defined to %defattr(-,root,root,755) by default.
That is, most of %defattr entries in spec file may be omitted.
10.POPT library now distributed in separate package; also, files required only
for packaging have been moved to rpm-build subpackage.
11.By default, rpm now blocks if package database lock cannot be obtained.
This wait-for-lock behavior can be disabled with --nowait-lock option.
12.By default, root no longer allowed to build packages. This behavior can be
changed by _allow_root_build macro.