One of the most confusing areas in RPM is certainly the %setup macro and how its options interact with each other. I found myself cut & pasting existing examples or doing trail & error for every new package. I've now read the (incomplete) documentation and (more complete ;-) source code in-depth and tried to summarize this beast for us.
- - - Synopsis -------- %setup[<x>] -q # quiet unpacking operation -n <dir> # set name of directory -c # create directory (and change to it) before unpacking -D # do not delete directory before unpacking sources -T # do not perform default archive unpacking of %{SOURCE<x>} -b <n> # also unpack %{SOURCE<n>} before changing to directory (usually combined with -T, -D) -a <n> # also unpack %{SOURCE<n>} after changing to directory (usually combined with -T, -D, -c) %patch[<x>] -P <n> # apply %{PATCH<n>} instead of %{PATCH<x>} -p <#> # strip <#> leading slashes and directories from patch filenames -b <ext> # set the backup file extension to <ext> instead of ".orig" -E # remove empty output files -R # apply patch as it would be reversed Visualization ------------- Input: %setup[<x>] # default for <x> is 0 Output: rm -rf <name>-<version> # changed by -n <dir>, omitted by -D mkdir <name>-<version> # changed by -n <dir>, added by -c (else omitted) cd <name>-<version> # changed by -n <dir>, added by -c (else omitted) gunzip <%{SOURCE<x>} | tar xvf - # omitted by -T, "xvf" replaced with "xf" by -q gunzip <%{SOURCE<n>} | tar xvf - # added by -b <n>, "xvf" replaced with "xf" by -q cd <name>-<version> # changed by -n <dir> gunzip <%{SOURCE<n>} | tar xvf - # added by -a <n>, "xvf" replaced with "xf" by -q - - - Keep especially the above "Output" sequence in mind when fiddling around with the %setup options. Then %setup is no more mystery and can be used straight-forward... Ralf S. Engelschall [EMAIL PROTECTED] www.engelschall.com ______________________________________________________________________ The OpenPKG Project www.openpkg.org Developer Communication List [EMAIL PROTECTED]