---
name: "dput.cf"
section: "5"
platform: "linux"
package: "dput"
version: "1.2.4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/dput.cf"
---

# dput.cf(5)

Debian package upload tool configuration file

## NAME

**dput.cf** - Debian package upload tool configuration file

## DESCRIPTION

This manpage gives a brief overview of dput's configuration file and the available options in it. **dput** is a tool to upload Debian packages to the archive.

## FORMAT

**dput.cf** consists of different groups of configuration options, one for each host where you want to be able to upload packages. Hosts are defined using an identifier header with a short name for the host, enclosed in square brackets. For example, a section named **foo.example.org** is introduced with the header:

```
[foo.example.org]
```

Note that if multiple section names in the configuration match the specified hostname, only the last matching section is considered. This is done to avoid confusion when overriding a global configuration file with a user-specific one.

A special section name, **DEFAULT**, holds default parameters for all the hosts. The defaults can be overridden by redefining them again in each host section.

The available parameters are listed below.

- **fqdn =** *DOMAIN\[**:**PORT\]*

  Connect to the remote host using the fully-qualified domain *DOMAIN*, connecting on port *PORT*. The port is only relevant for HTTP or FTP protocols.

- **login =** *USERNAME*

  Authenticate to this host with the username *USERNAME*. If *USERNAME* is a single asterisk **\***, the **scp** and **rsync** methods will not supply a login name when invoking the **ssh**, **scp**, and **rsync** commands.

- **incoming =** *PATH*

  Upload files to the filesystem path *PATH* on this host.

- **method =** *METHOD*

  Use the file transfer method *METHOD* for uploading files to this host. Currently, **dput** accepts the following values for *METHOD*:

  - **ftp**

    The package will be uploaded via FTP, either anonymously or using a login and password. Note that FTP is unencrypted so you should not use password authentication with this.

  - **http** **https**

    The package will be uploaded via HTTP or HTTPS using the PUT method as specified in WebDAV. The upload method will prompt for a password if necessary.

  - **scp**

    The package will be uploaded using SSH's **scp**. This transfers files using a secure SSH tunnel, and needs authentication credentials on the remote machine.

  - **rsync**

    The package will be uploaded using **rsync** over the SSH protocol. This is similar to **scp**, but can save some bandwidth if the destination file already exists on the remote server. It also needs authentication credentials for the remote machine as it uses SSH.

  - **local**

    The package will be "uploaded" locally using **/usr/bin/install**. This transfers files to a local incoming directory, and needs appropriate permissions set on that directory.

- **hash =** *ALGORITHM*

  Use the hash algorithm *ALGORITHM* to compute the checksum of all files before the upload. If any hash does not match the value specified in the *CHANGESFILE*, the upload does not happen. Currently, **dput** accepts the following values for *ALGORITHM*:

  - **md5**

    The MD5 algorithm.

  - **sha**

    The SHA-1 algorithm.

- **allow\_unsigned\_uploads =** *FLAG*

  If *FLAG* is true, **dput** may upload files without a GnuPG signature.

- **allow\_dcut =** *FLAG*

  If *FLAG* is true, **dcut** may upload a queue commands file to remove or move files in the queue on this host.

- **distributions =** *NAMES*

  If defined, *NAMES* is a comma-separated list of distributions that this host accepts. This is used to guess the host to use when none is specified on the command line.

- **allowed\_distributions =** *PATTERN*

  If defined, **dput** will refuse the upload if the distribution field does not match *REGEX* using Python's **re** syntax.

- **delayed =** *DAYS*

  An integer giving the “days” parameter for delayed uploads to this host. If defined, **dput** will upload to the queue named **DELAYED/***DAYS* (i.e. uploads to this host will be delayed the specified number of days). Defaults to the empty string, meaning no delay. This only works with hosts that support delayed uploads.

- **run\_lintian =** *FLAG*

  If *FLAG* is true, **dput** will run [**lintian**(1)](/lintian/1.md) on the *CHANGESFILE* before uploading. If the package is not Lintian clean, the upload will not happen.

- **run\_dinstall =** *FLAG*

  If *FLAG* is true, **dput** will run **dinstall -n** after the package has been uploaded. This is an easy way to test if your package would be installed into the archive or not.

- **check\_version =** *FLAG*

  This option defines if dput should check if the user has installed the package in his system for testing it before putting it into the archive. If the user has not installed and tested it, dput will reject the upload.

- **passive\_ftp =** *FLAG*

  This option defines if dput should use passive ftp or active ftp for uploading a package to one of the upload queues. By default, dput uses passive ftp connections. If you need to use active ftp connections, set passive\_ftp to 0.

- **progress\_indicator =** *STYLE*

  Display a progress indicator using style *STYLE* for uploads to this host. (Currently implemented for **ftp** method only.)

-

  Supported values for *STYLE*:

  - **0**

    (default) No progress indicator.

  - **1**

    Rotating progress indicator.

  - **2**

    Kilobyte counter.

- **scp\_compress =** *FLAG*

  If *FLAG* is true and the *METHOD* is **scp**, enable SSH compression for uploads to this host. This parameter has been found to decrease upload time for slow links, and increase upload times for faster links.

- **ssh\_config\_options =** *OPTIONS*

  Specify the command-line options (text) to pass to all automatic invocations of **ssh** and **scp**. The *OPTIONS* should be SSH client configuration options, as documented in [**ssh\_config**(5)](/ssh_config/5.md). Note that you can define multiline (dput) configuration options by indenting the second line with whitespace (i.e. similar to RFC822 header continuations).

- **post\_upload\_command =** *COMMAND*

  If defined, **dput** will invoke the command *COMMAND* after a successful upload.

- **pre\_upload\_command =** *COMMAND*

  If defined, **dput** will invoke the command *COMMAND* before attempting an upload.

- **default\_host\_main =** *HOSTNAME*

  Specify to use the **dput.cf** section named *HOSTNAME* for packages that are allowed to be uploaded to the main archive. This variable is used when guessing the host to upload to.

## FILES

- **/etc/dput.cf**

  Global configuration file.

- **$XDG\_CONFIG\_HOME/dput/dput.cf** (XDG standard) **$HOME/.dput.cf** (legacy)

  Per-user configuration file. If the file at the XDG standard path can be opened, the legacy path is ignored.

## SEE ALSO

[**dput**(1)](/dput/1.md)

‘dput’ package documentation ⟨file:///usr/share/doc/dput/⟩.
