Subject: Bug#959965: reprepro: Using $fullfilename with --list-format uses basedir even if a different outdir is configured

From: Silas McCroskey <[email-masked]>
Date: Thu, 07 May 2020 07:46:32 -0700

Package: reprepro
Version: 5.3.0-1.1
Severity: normal

The reprepro manual states the following about $fullfilename:

    The special field names $basename, $filekey and $fullfilename
    denote the first package file part of this entry (i.e.  usually
    the .deb, .udeb or .dsc file) as basename, as filekey (filename
    relative to the outdir) and the full filename with outdir
    prepended (i.e.  as relative or absolute as your outdir (or
    basedir if you did not set outdir) is).

But reprepro unconditionally uses the basedir to populate
$fullfilename, regardless of whether or not an outdir was set:

    } else { /* fullfilename */
            value = calc_dirconcat(global.basedir,
                            filekeys.values[0]);
            if (FAILEDTOALLOC(value))
                    return RET_ERROR_OOM;
            v = value;
    }

(source is from a fresh clone from git, using the debian branch).

$fullfilename should use outdir as described.

-- System Information:
Debian Release: bullseye/sid
  APT prefers testing
  APT policy: (500, 'testing'), (450, 'unstable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.3.0-3-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages reprepro depends on:
ii  libarchive13   3.4.0-1+b1
ii  libbz2-1.0     1.0.8-2
ii  libc6          2.29-10
ii  libdb5.3       5.3.28+dfsg1-0.6
ii  libgpg-error0  1.37-1
ii  libgpgme11     1.13.1-6
ii  liblzma5       5.2.4-1+b1
ii  zlib1g         1:1.2.11.dfsg-1.2

Versions of packages reprepro recommends:
ii  apt  1.8.4

Versions of packages reprepro suggests:
ii  gpg-agent [gnupg-agent]  2.2.19-1
ii  inoticoming              0.2.3-2+b1
pn  lzip                     <none>
ii  pinentry-curses          1.1.0-3+b1

-- no debconf information