[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: How to download source package using only console?



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 stable   ftp.debian.org
No stable-updates version
lego:amd64 4.9.1-1      testing  ftp.debian.org
lego:amd64 4.9.1-1      unstable ftp.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 to: