| .\" Authors: Ian Jackson |
| .TH deb\-substvars 5 "2009-07-15" "Debian Project" "dpkg utilities" |
| .SH NAME |
| deb\-substvars \- Debian source substitution variables |
| . |
| .SH SYNOPSIS |
| substvars |
| . |
| .SH DESCRIPTION |
| Before |
| .BR dpkg\-source ", " dpkg\-gencontrol " and " dpkg\-genchanges |
| write their control information (to the source control file |
| .B .dsc |
| for |
| .B dpkg\-source |
| and to standard output for |
| .BR dpkg\-gencontrol " and " dpkg\-genchanges ) |
| they perform some variable substitutions on the output file. |
| |
| A variable substitution has the form |
| .BI ${ variable-name }\fR. |
| Variable names consist of alphanumerics, hyphens and colons and start |
| with an alphanumeric. Variable substitutions are performed repeatedly |
| until none are left; the full text of the field after the substitution |
| is rescanned to look for more substitutions. |
| |
| After all the substitutions have been done each occurrence of the |
| string |
| .B ${} |
| (which is not a legal substitution) is replaced with a |
| .B $ |
| sign. |
| |
| While variable substitution is done on all control fields, some of those |
| fields are used and needed during the build when the substitution did not |
| yet occur. That's why you can't use variables in the \fBPackage\fP, |
| \fBSource\fP and \fBArchitecture\fP fields. |
| |
| Variable substitution happens on the content of the fields after they have |
| been parsed, thus if you want a variable to expand over multiple lines you |
| do not have to include a space after the newline. This is done implicitly |
| when the field is output. For example, if the variable |
| \fB${Description}\fP is set to "foo is bar.${Newline}foo is |
| great." and if you have the following field: |
| |
| Description: foo application |
| ${Description} |
| . |
| More text. |
| |
| It will result in: |
| |
| Description: foo application |
| foo is bar. |
| foo is great. |
| . |
| More text. |
| |
| Variables can be set using the |
| .B \-V |
| common option. They can be also specified in the file |
| .B debian/substvars |
| (or whatever other file is specified using the |
| .B \-T |
| option). This file consists of lines of the form |
| .IB name = value\fR. |
| Trailing whitespace on each line, blank lines, and |
| lines starting with a |
| .B # |
| symbol (comments) are ignored. |
| |
| Additionally, the following standard variables are available: |
| .TP |
| .BI Arch |
| The current build architecture (from |
| .BR "dpkg \-\-print\-architecture" ). |
| .TP |
| .B source:Version |
| The source package version. |
| .TP |
| .B source:Upstream\-Version |
| The upstream source package version, including the Debian version epoch if |
| any. |
| .TP |
| .B binary:Version |
| The binary package version (which may differ from source:Version in a binNMU |
| for example). |
| .TP |
| .B Source\-Version |
| The source package version (from the changelog file). This variable is now |
| \fBdeprecated\fP as its meaning is different from its function, please use |
| the \fBsource:Version\fP or \fBbinary:Version\fP as appropriate. |
| .TP |
| .B Installed\-Size |
| The total size of the package's installed files. This value is copied |
| into the corresponding control file field; setting it will modify the |
| value of that field. If this variable isn't set |
| .B dpkg\-gencontrol |
| will use |
| .B du \-k debian/tmp |
| to find the default value. |
| .TP |
| .B Extra\-Size |
| Additional disk space used when the package is installed. If this |
| variable is set its value is added to that of the |
| .B Installed\-Size |
| variable (whether set explicitly or using the default value) before it |
| is copied into the |
| .B Installed\-Size |
| control file field. |
| .TP |
| .BI F: fieldname |
| The value of the output field |
| .IR fieldname |
| (which must be given in the canonical capitalisation). Setting these |
| variables has no effect other than on places where they are expanded |
| explicitly. |
| .TP |
| .B Format |
| The |
| .B .changes |
| file format version generated by this version of the source packaging |
| scripts. If you set this variable the contents of the |
| .B Format |
| field in the |
| .B .changes |
| file will change too. |
| .TP |
| .BR Newline ", " Space ", " Tab |
| These variables each hold the corresponding character. |
| .TP |
| .BI shlibs: dependencyfield |
| Variable settings with names of this form are generated by |
| .BR dpkg\-shlibdeps . |
| .TP |
| .B dpkg:Upstream\-Version |
| The upstream version of dpkg. |
| .TP |
| .B dpkg:Version |
| The full version of dpkg. |
| .LP |
| If a variable is referred to but not defined it generates a warning |
| and an empty value is assumed. |
| . |
| .SH FILES |
| .TP |
| .B debian/substvars |
| List of substitution variables and values. |
| . |
| .SH BUGS |
| The point at which field overriding occurs compared to certain |
| standard output field settings is rather confused. |
| |
| .SH SEE ALSO |
| .BR dpkg (1), |
| .BR dpkg\-genchanges (1), |
| .BR dpkg\-gencontrol (1), |
| .BR dpkg\-shlibdeps (1), |
| .BR dpkg\-source (1). |
| . |
| .SH AUTHOR |
| Copyright \(co 1995-1996 Ian Jackson |
| .br |
| Copyright \(co 2000 Wichert Akkerman |
| .sp |
| This is free software; see the GNU General Public Licence version 2 or |
| later for copying conditions. There is NO WARRANTY. |