On 14.05.2023 10:06, Vincent Lefevre wrote:
On 2023-05-14 00:15:39 +0500, Alexander V. Makartsev wrote:
Hello, fellow Debian users.

When I need to build a backport of a package, I sometimes find it difficult
to obtain actual source package(-s) from Debian repos using console.
Following advice from a wiki page [1], after "apt update", doesn't do it:

    $ apt source lego/testing
    Reading package lists... Done
    Picking 'golang-github-xenolf-lego' as source package instead of 'lego'
    E: Can not find version '3.2.0-3.1' of package 'lego'
    E: Unable to find a source package for golang-github-xenolf-lego
zira:~> apt-show-versions -a lego
lego:amd64 3.2.0-3.1+b5 stableftp.debian.org
No stable-updates version
lego:amd64 4.9.1-1      testingftp.debian.org
lego:amd64 4.9.1-1      unstableftp.debian.org
No experimental version
lego:amd64 not installed

Indeed, 3.2.0-3.1 is no longer the testing version. Your database
seems to be out-of-date.

I think you haven't noticed that I requested for "4.9.1-1" version from "testing" specifically, hence why the command was "$ apt source lego/testing" not just "$ apt source lego". There is no reason for building a backport package for "stable" using a source package from "stable"...

I've changed all my repo mirrors to "deb.debian.org" suspecting the previous mirror I used was somehow out-of-date. Why is my output differ from yours?

   $ apt-show-versions -a lego
   lego:amd64 3.2.0-3.1+b5 bullseye deb.debian.org
   No proposed-updates version
   No stable-updates version
   No testing version
   No unstable version
   lego:amd64 not installed
   lego:i386 3.2.0-3.1+b5 bullseye deb.debian.org
   No proposed-updates version
   No stable-updates version
   No testing version
   No unstable version
   lego:i386 not installed

Yet "rmadison" reports there is a version "4.9.1-1" available in "testing":

   $ rmadison lego
   lego       | 0.3.1-5+b13   | oldstable  | amd64, arm64, armel,
   armhf, i386, mips, mips64el, mipsel, ppc64el, s390x
   lego       | 3.2.0-3.1+b5  | stable     | amd64, arm64, armel,
   armhf, i386, mips64el, mipsel, ppc64el, s390x
   lego       | 4.9.1-1       | testing    | amd64, arm64, armel,
   armhf, i386, mips64el, mipsel, ppc64el, s390x
   lego       | 4.9.1-1       | unstable   | amd64, arm64, armel,
   armhf, i386, mips64el, mipsel, ppc64el, s390x

I suspect "apt-show-versions" output is inconsistent because I only request "deb-src" from "testing" in "sources.list", as I've shown before.

Here is another example package that works as expected:

   $ rmadison roundcube
   roundcube  | 1.3.17+dfsg.1-1~deb10u2         | oldstable        |
   source, all
   roundcube  | 1.4.13+dfsg.1-1~deb11u1~bpo10+1 | buster-backports |
   source, all
   roundcube  | 1.4.13+dfsg.1-1~deb11u1         | stable           |
   source, all
   roundcube  | 1.6.1+dfsg-1                    | testing          |
   source, all
   roundcube  | 1.6.1+dfsg-1                    | unstable         |
   source, all

   $ apt-show-versions -a roundcube
   roundcube:all 1.4.13+dfsg.1-1~deb11u1 bullseye          deb.debian.org
   roundcube:all 1.4.13+dfsg.1-1~deb11u1 bullseye-security deb.debian.org
   No proposed-updates version
   No stable-updates version
   No testing version
   No unstable version
   roundcube:all not installed

   $ apt source roundcube/testing
   Reading package lists... Done
   Selected version '1.6.1+dfsg-1' (testing) for roundcube
   ...


I did some additional research and I think I got it.
"lego" package is special because its source package is named differently:

   $ rmadison golang-github-xenolf-lego
   golang-github-xenolf-lego | 0.3.1-5       | oldstable      | source
   golang-github-xenolf-lego | 3.2.0-3.1     | stable         | source
   golang-github-xenolf-lego | 4.9.1-1       | testing        | source
   golang-github-xenolf-lego | 4.9.1-1       | unstable       | source
   golang-github-xenolf-lego | 4.9.1-1       | unstable-debug | source

   $ apt source golang-github-xenolf-lego/testing
   Reading package lists... Done
   Selected version '4.9.1-1' (testing) for golang-github-xenolf-lego
   ...

But why "apt" doesn't play along, since it knows the source package for "lego" has different name, but ignores the "testing" part of the request?

   $ apt source lego/testing
   Reading package lists... Done
   Picking 'golang-github-xenolf-lego' as source package instead of 'lego'
   E: Can not find version '3.2.0-3.1' of package 'lego'
   E: Unable to find a source package for golang-github-xenolf-lego


Looks like an "apt" bug to me.


--
With kindest regards, Alexander.

⢀⣴⠾⠻⢶⣦⠀
⣾⠁⢠⠒⠀⣿⡁ Debian - The universal operating system
⢿⡄⠘⠷⠚⠋⠀ https://www.debian.org
⠈⠳⣄⠀⠀⠀⠀

Reply via email to