[PLDWWW] page changed: rpm5

"Elan Ruusamäe (glen)" glen at pld-linux.org
Sat Nov 24 17:39:03 CET 2012


use spec syntax hiliting

--- https://www.pld-linux.org/rpm5?rev=1353773690
+++ https://www.pld-linux.org/rpm5
@@ -25,10 +25,11 @@
  
  ==== Querying database ====
  The semantics of rpm query option **-f** (**--file**) has changed in rpm 5.x; '''rpm -q -f <file-with-path>''' will **not** resolve all symlinks in queried file's path. So the query (assuming ///usr/src/linux// is a symlink to ///usr/src/linux-A.B.C-R//): 
  
- <file>rpm -q -f /usr/src/linux/include/linux/fs.h
- </file>
+ <code>rpm -q -f /usr/src/linux/include/linux/fs.h
+ </code>
+ 
  That returned //kernel-headers-A.B.C-R.arch.rpm// with old rpm, will return nothing with rpm 5.x. You have to do '''readlink -f''' first, or change to symlinked directory and do relative path query. 
  
  
  
@@ -57,45 +58,46 @@
    * **Stack Smashing Protector** is also enabled by default, if you really MUST disable SSP then undefine **_ssp_cflags** macro 
  
  
  ==== Loading additional macros in .spec files ====
- With old rpm 4.x several macro files were loaded in .spec files via **#include** directive: 
  
+ With old rpm 4.x several macro files were loaded in .spec files via **#include** directive: 
  
  
- <file>%include /usr/lib/rpm/macros.perl
+ <file rpmspec>%include /usr/lib/rpm/macros.perl
  </file>
- In rpm 5.x those macro files have been moved to ''/usr/lib/rpm/macros.d/'' directory, and must be loaded using %{load:} directive. However the old statement still works, as it contains the same code to load the macros. 
  
+ In rpm 5.x those macro files have been moved to ''/usr/lib/rpm/macros.d/'' directory, and must be loaded using %{load:} directive. However the old statement still works, as it contains the same code to load the macros. 
  
  
- <file>%{load:/usr/lib/rpm/macros.d/perl}
+ <file rpmspec>%{load:/usr/lib/rpm/macros.d/perl}
  </file>
  
  ==== Excluding dependencies ====
  
  Regexp patterns for '''%%_noauto*%%''' macros changed slightly, and '(' must be escaped now, for example:
  
- <file>
+ <file rpmspec>
  %define _noautoreq 'perl\\(something::.*\\)'
  </file>
  
  rpm-build-tools [[http://git.pld-linux.org/?p=packages/rpm-build-macros.git;a=commitdiff;h=0a9bb9747529d8f89a74f6db5f317abe1454d8ac|v1.654]] adds handy macros to have same syntax for rpm4/5 .specs:
  
- <code>
+ <code rpmspec>
  BuildRequires:      rpmbuild(macros) >= 1.654
      
  %define _noautoreq_pear Excluded.php PEAR/Something.php
  %define _noautoreq_perl Apache::.*
  </code>
+ 
  ==== noarch subpackages ====
  
  Rpm 5.x supports **noarch** subpackages, a feature that can save space on ftp server and mirrors and ease use of multiarch packages.
  
  To use it within a package, add in the preamble of a subpackage that should be/is architecture independent:
  
- <file>
+ <file rpmspec>
  # noarch subpackages only when building with rpm5
  %if "%{_rpmversion}" >= "5"
  BuildArch:  noarch
  %endif
  </file>


Diff URL:
  https://www.pld-linux.org/rpm5?do=diff&r1=1353773690&r2=1353775142
-- 
This mail was generated by DokuWiki at
https://www.pld-linux.org/


More information about the pld-cvs-commit mailing list