Changes between Version 3 and Version 4 of RPMBuilding


Ignore:
Timestamp:
Aug 4, 2010 9:04:21 AM (11 years ago)
Author:
thomas
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • RPMBuilding

    v3 v4  
    11= Getting started with RPM Building =
    22
     3[[PageOutline(2-6)]]
    34How to get started with building RPMS - in particular how to setup your build environment and the basics of spec file writing.
    45
    56== Getting Started ==
    67
    7 [attachment:rpm-talk-2.white.pdf RPM Building (PDF)]
     8[attachment:rpm-talk-2.white.pdf RPM Building (PDF)] - presentation on RPM building given at IAS.
    89
    910To build rpms you need to have a .rpmmacros file in your home directory which configures your build tree location. The minimum you'll need is the location of your top directory for building
     
    7273BuildRoot: /var/tmp/NaV{version}-root
    7374Requires: /etc/blabla
    74 plazonic@math.princeton.edu>
    75 Description
     75}}}
    7676
     77==== Description ====
     78
     79{{{
     80#!sh
    7781%description
    7882This is an example rpm, with no useful content or purpose, just here to show how to do it.
    79 Prep
     83}}}
    8084
     85==== Prep ====
     86{{{
     87#!sh
    8188%setup -q -a 1
    8289%patch0 -p1 -b .paths
     
    8592cd examples-additional
    8693gunzip -dc % | tar xf -
    87 Build
     94}}}
    8895
     96==== Build ====
     97{{{
     98#!sh
    8999%build
    90100%configure --with-special-option=princeton --exclude-motif
     
    94104%configure --with-tex --with-pdf
    95105make all
    96 Install
     106}}}
    97107
     108==== Install ====
     109{{{
     110#!sh
    98111%install
    99112rm -rf $RPM_BUILD_ROOT
     
    104117install -m755 examples-additional/example2 $RPM_BUILD_ROOT%{_datadir}/example-doc
    105118perl -pi -e "s|$RPM_BUILD_ROOT||g" $RPM_BUILD_ROOT%{_mandir}/man*/*
    106 Scripts
     119}}}
    107120
     121==== Scripts ====
     122{{{
     123#!sh
    108124# post install script for the example-doc rpm
    109125%post doc
     
    112128%preun
    113129echo "Oh why, why, are you removing me..."
    114 Files
     130}}}
    115131
     132==== Files ====
     133{{{
     134#!sh
    116135%files
    117136%doc README COPYRIGHT
     
    123142%doc example-doc-%{version}/README
    124143%{_datadir}/example-doc
     144}}}
    125145
     146==== Clean ====
     147{{{
     148!#sh
    126149# clean the build root - highly advisable
    127150%clean
    128151rm -rf $RPM_BUILD_ROOT
     152}}}
    129153
     154==== Changelog ====
     155{{{
     156#!sh
    130157%changelog
    131158* Tue Dec 11 2001 Josko Plazonic <plazonic@....> 0.11-1
     
    135162== Additional useful directives: ==
    136163
    137 * BuildArch? - to force a particular architecture on build, e.g. for perl modules ("BuildArch: noarch")
    138 * %postun (post install), %pre (pre install) scripts
    139 * %setup options (setup macro understands tar.gz, tgz, tar.bz2, zip and maybe other archives...)
    140 * -n name will set the name of the build directory to the listed name. The default is $NAME-$VERSION.
    141 * -c will create and cd to the named directory before doing the untar
    142 * -b # will untar Source# before cd'ing into the directory (and this makes no sense with -c so don't do it). This is only useful with multiple source files
    143 * a # will untar Source# after cd'ing into the directory
    144 * -T This option overrides the default action of untarring the Source and requires a -b 0 or -a 0 to get the main source file untarred. You need this when there are secondary sources
    145 * -D Do not delete the directory before unpacking. This is only useful where you have more than one setup macro. It should only be used in setup macros after the first one (but never in the first one).
     164 * !BuildArch - to force a particular architecture on build, e.g. for perl modules ("BuildArch: noarch")
     165 * %postun (post install), %pre (pre install) scripts
     166 * %setup options (setup macro understands tar.gz, tgz, tar.bz2, zip and maybe other archives...)
     167 * -n name will set the name of the build directory to the listed name. The default is $NAME-$VERSION.
     168 * -c will create and cd to the named directory before doing the untar
     169 * -b # will untar Source# before cd'ing into the directory (and this makes no sense with -c so don't do it). This is only useful with multiple source files
     170 * a # will untar Source# after cd'ing into the directory
     171 * -T This option overrides the default action of untarring the Source and requires a -b 0 or -a 0 to get the main source file untarred. You need this when there are secondary sources
     172 * -D Do not delete the directory before unpacking. This is only useful where you have more than one setup macro. It should only be used in setup macros after the first one (but never in the
     173      first one).