Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.debian.maint.python > #14833 > unrolled thread

Old generated binary dependencies after renaming psycopg

Started byTomasz Rybak <serpent@debian.org>
First post2023-01-17 09:30 +0100
Last post2023-01-30 22:50 +0100
Articles 5 — 3 participants

Back to article view | Back to linux.debian.maint.python


Contents

  Old generated binary dependencies after renaming psycopg Tomasz Rybak <serpent@debian.org> - 2023-01-17 09:30 +0100
    Re: Old generated binary dependencies after renaming psycopg Julian Gilbey <julian@d-and-j.net> - 2023-01-17 10:40 +0100
      Re: Old generated binary dependencies after renaming psycopg Tomasz Rybak <serpent@debian.org> - 2023-01-18 00:20 +0100
        Re: Old generated binary dependencies after renaming psycopg Scott Kitterman <debian@kitterman.com> - 2023-01-18 00:50 +0100
          Re: Old generated binary dependencies after renaming psycopg Tomasz Rybak <serpent@debian.org> - 2023-01-30 22:50 +0100

#14833 — Old generated binary dependencies after renaming psycopg

FromTomasz Rybak <serpent@debian.org>
Date2023-01-17 09:30 +0100
SubjectOld generated binary dependencies after renaming psycopg
Message-ID<FOPvX-10md-1@gated-at.bofh.it>

[Multipart message — attachments visible in raw view] — view raw

Hello.
After fixing #1016031 "psycopg3: binary package name should be python3-
psycopg"
(I renamed package names, full changes:
* python3-psycopg3 -> python3-psycopg
* python3-psycopg3-pool -> python3-psycopg-pool
* python-psycopg3-doc -> python3-psycopg-doc)
I tried to rebuild reverse dependencies,
i.e. pgcli and python3-pgspecial.
Rebuild went without problems, new packages are the same
as old ones, but their binary packages still depend on python3-
psycopg3,
even though they build-depend on python3-psycopg.

I analysed build process and this dependency comes from
*.substvars file (e.g. pgcli/debian/pgcli.substvars)
which is generated by dh-python.
Apt search shows both python3-psycopg3 (in old version)
and python3-psycopg, so I suspect the former gets taken
in as binary dependency to be used.

What can I do to fix it? Should I ask ftp-masters to remove old
packages, or will the problem fix itself in the next few days?

Best regards.

-- 
Tomasz Rybak, Debian Developer <serpent@debian.org>
GPG: A565 CE64 F866 A258 4DDC F9C7 ECB7 3E37 E887 AA8C

[toc] | [next] | [standalone]


#14834

FromJulian Gilbey <julian@d-and-j.net>
Date2023-01-17 10:40 +0100
Message-ID<FOQBH-10ZS-5@gated-at.bofh.it>
In reply to#14833
On Tue, Jan 17, 2023 at 09:08:01AM +0100, Tomasz Rybak wrote:
> Hello.
> After fixing #1016031 "psycopg3: binary package name should be python3-
> psycopg"
> (I renamed package names, full changes:
> * python3-psycopg3 -> python3-psycopg
> * python3-psycopg3-pool -> python3-psycopg-pool
> * python-psycopg3-doc -> python3-psycopg-doc)
> I tried to rebuild reverse dependencies,
> i.e. pgcli and python3-pgspecial.
> Rebuild went without problems, new packages are the same
> as old ones, but their binary packages still depend on python3-
> psycopg3,
> even though they build-depend on python3-psycopg.

Nope, pgcli does not build-depend on it, rather it explicitly
specifies Depends: python3-psycopg3.  Likewise, python-pgspecial
specifies the same Depends (though it also has a Build-Depends:
python3-psycopg3).  These packages will need their dependencies
updating.  (You might also consider making python3-psycopg Provides:
python3-psycopg3 and likewise for the other two binary packages for
bookworm.)

Best wishes,

   Julian

[toc] | [prev] | [next] | [standalone]


#14843

FromTomasz Rybak <serpent@debian.org>
Date2023-01-18 00:20 +0100
Message-ID<FP3pf-19cS-1@gated-at.bofh.it>
In reply to#14834

[Multipart message — attachments visible in raw view] — view raw

On Tue, 2023-01-17 at 09:20 +0000, Julian Gilbey wrote:
> On Tue, Jan 17, 2023 at 09:08:01AM +0100, Tomasz Rybak wrote:
> > Hello.
> > After fixing #1016031 "psycopg3: binary package name should be python3-
> > psycopg"
> > (I renamed package names, full changes:
> > * python3-psycopg3 -> python3-psycopg
> > * python3-psycopg3-pool -> python3-psycopg-pool
> > * python-psycopg3-doc -> python3-psycopg-doc)
> > I tried to rebuild reverse dependencies,
> > i.e. pgcli and python3-pgspecial.
> > Rebuild went without problems, new packages are the same
> > as old ones, but their binary packages still depend on python3-
> > psycopg3,
> > even though they build-depend on python3-psycopg.
> 
> Nope, pgcli does not build-depend on it, rather it explicitly
> specifies Depends: python3-psycopg3.  Likewise, python-pgspecial
> specifies the same Depends (though it also has a Build-Depends:
> python3-psycopg3).  These packages will need their dependencies
> updating.  (You might also consider making python3-psycopg Provides:
> python3-psycopg3 and likewise for the other two binary packages for
> bookworm.)
> 

No, this is not the problem.
I checked (rebuilt packages with) different variants - with and
without python3-psycopg[3] as explicit dependency. In all the cases
dependency for python3-psycopg3 comes from ${python3:Depends}
via  pgcli/debian/pgcli.substvars which contains
python3:Depends=python3-cli-helpers, python3-click, python3-configobj,
python3-pendulum, python3-pgspecial, python3-prompt-toolkit, python3-
psycopg3, python3-pygments, python3-setproctitle, python3-sqlparse (>=
0.3), python3:any.

When python3-psycopg is in Depends in debian/control, it just gets
added - so binary package's Depends contains it twice (once
python3-psycopg3 from ${python3:Depends, once python3-psycopg
mentioned explicitly; in case of pgcli the second one is versioned).

Sample line from control file for pgcli, which contains both
python3-psycopg and python3-psycopg3:
Depends: python3-cli-helpers, python3-pendulum, python3-pgspecial (>=
2), python3-pkg-resources, python3-prompt-toolkit (>= 3.0), python3-
psycopg (>= 3.0.14), python3-sqlparse (>= 0.3), python3-tabulate,
python3-terminaltables, python3-click, python3-configobj, python3-
psycopg3, python3-pygments, python3-setproctitle, python3:any

I tried to analyze dh_python3, but could not understand where exactly
fills it in list of (additional) dependencies. They are generated
somewhere between dh_python3, dhpython/pydist.py,
and dhpython/depends.py (all files belong to package dh-python
and are in /usr/share/dh-python).

So - any tips how to fix it would be really helpful.

Best regards.

-- 
Tomasz Rybak, Debian Developer <serpent@debian.org>
GPG: A565 CE64 F866 A258 4DDC F9C7 ECB7 3E37 E887 AA8C

[toc] | [prev] | [next] | [standalone]


#14844

FromScott Kitterman <debian@kitterman.com>
Date2023-01-18 00:50 +0100
Message-ID<FP3Sh-19tZ-1@gated-at.bofh.it>
In reply to#14843

On January 17, 2023 11:01:45 PM UTC, Tomasz Rybak <serpent@debian.org> wrote:
>On Tue, 2023-01-17 at 09:20 +0000, Julian Gilbey wrote:
>> On Tue, Jan 17, 2023 at 09:08:01AM +0100, Tomasz Rybak wrote:
>> > Hello.
>> > After fixing #1016031 "psycopg3: binary package name should be python3-
>> > psycopg"
>> > (I renamed package names, full changes:
>> > * python3-psycopg3 -> python3-psycopg
>> > * python3-psycopg3-pool -> python3-psycopg-pool
>> > * python-psycopg3-doc -> python3-psycopg-doc)
>> > I tried to rebuild reverse dependencies,
>> > i.e. pgcli and python3-pgspecial.
>> > Rebuild went without problems, new packages are the same
>> > as old ones, but their binary packages still depend on python3-
>> > psycopg3,
>> > even though they build-depend on python3-psycopg.
>> 
>> Nope, pgcli does not build-depend on it, rather it explicitly
>> specifies Depends: python3-psycopg3.  Likewise, python-pgspecial
>> specifies the same Depends (though it also has a Build-Depends:
>> python3-psycopg3).  These packages will need their dependencies
>> updating.  (You might also consider making python3-psycopg Provides:
>> python3-psycopg3 and likewise for the other two binary packages for
>> bookworm.)
>> 
>
>No, this is not the problem.
>I checked (rebuilt packages with) different variants - with and
>without python3-psycopg[3] as explicit dependency. In all the cases
>dependency for python3-psycopg3 comes from ${python3:Depends}
>via  pgcli/debian/pgcli.substvars which contains
>python3:Depends=python3-cli-helpers, python3-click, python3-configobj,
>python3-pendulum, python3-pgspecial, python3-prompt-toolkit, python3-
>psycopg3, python3-pygments, python3-setproctitle, python3-sqlparse (>=
>0.3), python3:any.
>
>When python3-psycopg is in Depends in debian/control, it just gets
>added - so binary package's Depends contains it twice (once
>python3-psycopg3 from ${python3:Depends, once python3-psycopg
>mentioned explicitly; in case of pgcli the second one is versioned).
>
>Sample line from control file for pgcli, which contains both
>python3-psycopg and python3-psycopg3:
>Depends: python3-cli-helpers, python3-pendulum, python3-pgspecial (>=
>2), python3-pkg-resources, python3-prompt-toolkit (>= 3.0), python3-
>psycopg (>= 3.0.14), python3-sqlparse (>= 0.3), python3-tabulate,
>python3-terminaltables, python3-click, python3-configobj, python3-
>psycopg3, python3-pygments, python3-setproctitle, python3:any
>
>I tried to analyze dh_python3, but could not understand where exactly
>fills it in list of (additional) dependencies. They are generated
>somewhere between dh_python3, dhpython/pydist.py,
>and dhpython/depends.py (all files belong to package dh-python
>and are in /usr/share/dh-python).
>
>So - any tips how to fix it would be really helpful.

You'll need to add a py3dist-overrides file in /debian.  The details are in the dh-python or pybuild documentation.  I don't recall where.

Scott K

[toc] | [prev] | [next] | [standalone]


#14874

FromTomasz Rybak <serpent@debian.org>
Date2023-01-30 22:50 +0100
Message-ID<FTKci-2hfh-5@gated-at.bofh.it>
In reply to#14844

[Multipart message — attachments visible in raw view] — view raw

On Tue, 2023-01-17 at 23:26 +0000, Scott Kitterman wrote:
> 
[ cut ]
> 
> You'll need to add a py3dist-overrides file in /debian.  The details are in the dh-python or pybuild documentation.  I don't recall where.
> 

Thanks for tip. Summary, for others with similar problems:
Solution is described in dh-python documentation
(man dh_python3, section dependencies).

Mapping of name psyscopg to python3-psycopg3 is in file
/usr/share/dh-python/dist/cpython3_fallback, provided
by dh-python. It's quite long file, containing many
of such translations.

I created debian/python3-psycopg.pydist which got installed
to /usr/share/python3/dist/python3-psycopg, and provided proper
mapping. I guess when mapping in dh-python is fixed, I'll be
able to drop *.pydist files.

Best regards, and thanks for help!

-- 
Tomasz Rybak, Debian Developer <serpent@debian.org>
GPG: A565 CE64 F866 A258 4DDC F9C7 ECB7 3E37 E887 AA8C

[toc] | [prev] | [standalone]


Back to top | Article view | linux.debian.maint.python


csiph-web