#877081 apt-clone: restore system with mixed/pinned sources fails and preference files ignored

#877081#5
Date:
2017-09-28 13:33:29 UTC
From:
To:
Dear Maintainer,


   * What led up to the situation?
   Wanted to clone a preconfigured system where the source does use 1 package and 3-4 dependencies from newer release only by using apt-pinning,
   aswell some packages from 3rd party sources valid for sources current release
   * What exactly did you do (or not do) that was effective (or
     ineffective)?
     followed the instructions to create apt-clone archive, which perfectly saved preferences file and sources lists,
     tried to apt-clone restore .tar.gz
   * What was the outcome of this action?
   first attempt it ignored apt-pinning and then pulled stuff preferable from newer release
   tampering with preference file lead to apt-clone not installing any package at all because apt was feared of breaking stuff
   * What outcome did you expect instead?
   restore apt-preferences file and install packages as they were selected on source e.g. source had package 1 from stable
   so install that from stable aswell, package2 from unstable so install that from unstable aswell ...

#877081#10
Date:
2017-09-28 19:26:20 UTC
From:
To:
meanwhile this solution is far away from clone but does the job I
needed, maybe someone else might find it useful.
It's basically what I actually needed/expected.

1. On source system gather the installed packages and source

$apt-show-versions | awk -F'[ ]' '{print $1}' | awk -F'[:/]' '{print $1
"\t" $3}' > pkg.list

I use that awkward awk since I have packages which didn't come from apt,
  have no release or have been removed and $apt-show-versions lists them as:

gnupg-agent:amd64 not installed
jailkit:amd64 2.19-1 installed: No available version in archive


2. On destination I prepare my apt-preferences aswell as my sources lists

and since I use https source I'll

$apt-get update
$apt-get install apt-transport-https
$apt-get update


3. On destination I run

$./setup_list.py -i pkg.list

and wait :)

Yes, since apt-clone is in python3, this script aswell requires python,
I attached it, maybe it's not nice and I won't guarantee it works for
anyone else soo... missing License aswell so ... do whatever t f u want
with that :)

The generated pkg.list syntax is:

<packagename>\t<release>

or a translated example:

curl	stretch

#877081#15
Date:
2025-08-13 09:13:51 UTC
From:
To:
Dear submitter,

as the package apt-clone has just been removed from the Debian archive
unstable we hereby close the associated bug reports.  We are sorry
that we couldn't deal with your issue properly.

For details on the removal, please see https://bugs.debian.org/1108671

The version of this package that was in Debian prior to this removal
can still be found using https://snapshot.debian.org/.

Please note that the changes have been done on the master archive and
will not propagate to any mirrors until the next dinstall run at the
earliest.

This message was generated automatically; if you believe that there is
a problem with it please contact the archive administrators by mailing
ftpmaster@ftp-master.debian.org.

Debian distribution maintenance software
pp.
Thorsten Alteholz (the ftpmaster behind the curtain)