90 lines
5.2 KiB
Plaintext
90 lines
5.2 KiB
Plaintext
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.
|