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

# dcut(1)

Debian command upload tool for the archive upload queue

## NAME

**dcut** - Debian command upload tool for the archive upload queue

## SYNOPSIS

**dcut** \[**-Pds**\] \[**-c** *CONFIGFILE*\] \[**-k** *KEYID*\] \[**-m** *MAINTAINER*\] \[**-O** *COMMANDFILE*\] \[ \[**--host**\] *HOSTNAME*\] *COMMAND* \[**,** *COMMAND*\] ...

**dcut** \[**-Pds**\] \[**-c** *CONFIGFILE*\] \[**-k** *KEYID*\] \[**-m** *MAINTAINER*\] \[**-O** *COMMANDFILE*\] \[ \[**--host**\] *HOSTNAME*\] **-i** *CHANGESFILE*

**dcut** \[**-Pds**\] \[**-c** *CONFIGFILE*\] \[ \[**--host**\] *HOSTNAME*\] **-U** *COMMANDFILE*

**dcut** **-h**

**dcut** **-v**

## DESCRIPTION

**dcut** creates and / or uploads Debian queue commands files for a Debian repository upload queue. It is a companion for [**dput**(1)](/dput/1.md) and uses dput configuration files (see **FILES**, below).

The normal workflow is:

- •

  Determine the queue control commands.

- •

  Compose the batch of commands to upload.

- •

  Determine the hostname of the queue host.

- •

  Upload the commands to the queue host.

### Determine queue control commands

In the default command-line syntax, parse each command-line argument *COMMAND*, in the format needed by a Debian archive queue manager. Multiple queue commands must be separated by a comma (**,**) as a separate word between each command.

See **COMMANDS** below for valid queue commands.

When the *CHANGESFILE* parameter is specified, instead parse that file and compose a **rm** command for each file specified in *CHANGESFILE*.

If the **--upload** (**-U**) option is specified, instead read the queue control commands from the file *COMMANDFILE*.

### Compose the batch of commands

The **Uploader** field in the batch is set to the package maintainer specification *MAINTAINER*. If not specified, the value of *MAINTAINER* is derived from environment variables (see **ENVIRONMENT**, below).

The **Commands** field in the batch is set to the sequence of queue control commands determined.

If the **--output** (**-O**) option is specified, write the batch to the file named by its *COMMANDFILE* argument. Otherwise, write the batch to a temporary file and remove it after upload.

After writing the batch of commands to a file, sign the file with [**debsign**(1)](/debsign/1.md). The *MAINTAINER* and *KEYID* parameters, if specified, are passed to the **debsign** command.

If the **--upload** (**-U**) option is specified, do not compose the batch of commands; instead use the content of its *COMMANDFILE* argument as the name of the command file to upload to the queue host.

### Determine the queue host

The *HOSTNAME* must match one of the named hosts in the configuration (see [**dput.cf**(5)](/dput.cf/5.md)). The value is determined as follows:

- •

  If the **--host** option is specified, use that option's *HOSTNAME* argument.

- •

  If the first non-option argument is not a valid queue command, that is interpreted as the *HOSTNAME*.

- •

  Otherwise, *HOSTNAME* defaults to the value of the **default\_host\_main** configuration parameter.

### Upload queue commands

Upload the composed batch of queue commands to the queue host *HOSTNAME*, using the parameters in the [**dput.cf**(5)](/dput.cf/5.md) configuration for that host.

If the **--output** (**-O**) option is specified, do not upload the commands to the queue host. Instead, leave the composed file *COMMANDFILE* on the filesystem.

## COMMANDS

Presently supported commands are:

- **rm**

  Remove files from the UploadQueue directories. **dcut** generates commands that search the subdirectories automatically, but you can also specify **--nosearchdirs** and then target individual UploadQueue directories, i.e. either filenames without path for regular incoming or **DELAYED/***DAYS***-day/***filename*. Wildcards are accepted.

- **reschedule** *CHANGESFILE\_NAME DAYS***-day**

  Move an upload from any **DEFERRED** queue to *DAYS***-day** (use **0-day** for immediate processing).

- **cancel** *CHANGESFILE\_NAME*

  Cancels an upload from **DEFERRED**.

Both **reschedule** and **cancel** use the *CHANGESFILE\_NAME* argument as the base filename of a changes file in the queue.

The authoritative documentation for the commands interface can be found at ⟨https://salsa.debian.org/ftp-team/dak/-/raw/master/tools/debianqueued-0.9/Queue.README⟩.

## OPTIONS

- **-c** *CONFIGFILE* **--config** *CONFIGFILE*

  Use the file *CONFIGFILE* for configuration. See [**dput.cf**(5)](/dput.cf/5.md) for the specification of this file format.

- **-d** **--debug**

  Display debugging messages.

- **-h** **--help**

  Display help information, then exit.

- **--host** *HOSTNAME*

  Specify the *HOSTNAME* unambiguously. This allows naming a host that may be ambiguous with a queue command.

- **-m** *MAINTAINER* **--maintaineraddress** *MAINTAINER*

  Use *MAINTAINER* for the **Uploader** field and GnuPG key selection. This has no effect when **--upload** is used.

- **-k** *KEYID* **--keyid** *KEYID*

  Specify the GnuPG key id *KEYID* to pass to the [**debsign**(1)](/debsign/1.md) command. This has no effect when **--upload** is used.

- **-O** *COMMANDFILE* **--output** *COMMANDFILE*

  Write commands file to *COMMANDFILE* instead of uploading. You should not specify a *HOSTNAME* when using this option. Also, this option should not be used with **--upload**.

- **-P** **--passive**

  Use passive mode for FTP. If not specified, default for FTP is active mode.

- **-s** **--simulate**

  Do not actually upload to the queue host.

- **-U** *COMMANDFILE* **--upload** *COMMANDFILE*

  Instead of composing a new queue command file, upload the existing file *COMMANDFILE*. Note: No checks (syntax or presence/validity of signature) are currently performed.

- **-i** *CHANGESFILE* **--input** *CHANGESFILE*

  Do not parse queue commands from the command line. Instead, read the package changes file *CHANGESFILE* and compose a **rm** command for each file specified in *CHANGESFILE*. This has no effect when **--upload** is used.

- **-v** **--version**

  Display version information, then exit.

## ENVIRONMENT

- **DEBEMAIL** **EMAIL**

  If *MAINTAINER* is not specified, use the first of these which has a value to determine the email address portion of *MAINTAINER*.

- **DEBFULLNAME**

  If *MAINTAINER* is not specified, use this value to determine the full name portion of *MAINTAINER*.

- **USER**

  If no username is specified for authenticating to the remote host, use the value of this variable.

## FILES

- Configuration

  See [**dput.cf**(5)](/dput.cf/5.md) for the files to configure **dcut.**

## EXAMPLES

To upload a GPG signed commands file that removes dput\_0.9.2.33\_all.deb file from the queue, one would have to do:

```
$ dcut rm dput_0.9.2.33_all.deb
```

This creates and uploads a commands file that looks like the following:

```
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Uploader: Foo Bar <foo@bar.org>
Commands:
 rm dput_0.9.2.33_all.deb
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
iEYEARECAAYKAkisYx0ACgkQ4eu+pS04mIfwLQCg85XVpae/LHLrbvzywcQNt9PS
ztsAoMgw6HjcI9flfmwjgMiapcu379Pu
=fjp0
-----END PGP SIGNATURE-----
```

To upload a GPG signed commands file that removes files named in dput\_0.9.4\_i386.changes from the queue, one would have to do:

```
$ dcut --input dput_0.9.4_i386.changes
```

This creates and uploads a commands file that looks like the following:

```
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Uploader: Foo Bar <foo@bar.org>
Commands:
 rm --searchdirs dput_0.9.4.dsc
 rm --searchdirs dput_0.9.4.tar.gz
 rm --searchdirs dput_0.9.4_all.deb
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
iEYEARECAAYKAkisYx0ACgkQ4eu+pS04mIfwLQCg85XVpae/LHLrbvzywcQNt9PS
ztsAoMgw6HjcI9flfmwjgMiapcu379Pu
=fjp0
-----END PGP SIGNATURE-----
```

If you've uploaded packages with the **--delayed** option (uploaded to **DEFERRED** queue), then use the **cancel** command with a .changes file:

```
$ dcut cancel dput_0.9.4_i386.changes
```

This creates and uploads a commands file just like the other commands.

## SEE ALSO

[**dput**(1)](/dput/1.md), [**dput.cf**(5)](/dput.cf/5.md), [**debsign**(1)](/debsign/1.md)

Read Me document for the Debian upload queue ⟨ftp://ftp.upload.debian.org/pub/UploadQueue/README⟩.
