python-ldap package prevents python3-only build

Bug #1850283 reported by bugproxy
18
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Ubuntu on IBM z Systems
Fix Released
Wishlist
Canonical Foundations Team
python-ldap (Ubuntu)
Fix Released
Undecided
Skipper Bug Screeners
Bionic
Fix Released
Undecided
Unassigned
Disco
Won't Fix
Undecided
Unassigned
Eoan
Fix Released
Undecided
Unassigned
Focal
Fix Released
Undecided
Skipper Bug Screeners

Bug Description

[Impact]

 * python-ldap & python3-ldap used to share documentation which resulted in python3-ldap package depending on python-ldap
 * However whilst that used to be harmless, it no longer is, due to perceived risks of pulling in unused interpreter.
 * Solution is to stop linking docs directory cross-packages like it is done in the later releases
 * As a minimal sru, auxiliary and api documentation will remain shipped in python-ldap package with -doc subpackage not being introduced.

[Test Case]

 * Install python3-ldap from release
 * Observe that /usr/share/doc/python3-ldap is a symlink
 * Upgrade to python3-ldap from proposed
 * Observe that /usr/share/doc/python3-ldap is a directory
 * Remove python-ldap python2.7-minimal
 * Observe that python3-ldap is still installed

[Regression Potential]

 * The changes introduced match those that are shipped in focal, sans introduction of the docs package

[Other Info]

 * Original bug report

By moving away from Python2 following problem occured.

The package Package: python3-ldap (3.0.0-1) is dependent on
Package: python-ldap (3.0.0-1).

This has a dependency: python interactive high-level object-oriented language (default version)
python (<< 2.8)
python (>= 2.7~)

see https://packages.ubuntu.com/bionic/python-ldap

We need Canonicals support for a backport the changes from https://packages.debian.org/buster/python3-ldap ,which resolves this python2 dependency.

Many thanks in advance.

bugproxy (bugproxy)
tags: added: architecture-s39064 bugnameltc-182118 severity-high targetmilestone-inin1804
Changed in ubuntu:
assignee: nobody → Skipper Bug Screeners (skipper-screen-team)
affects: ubuntu → linux (Ubuntu)
Frank Heimes (fheimes)
affects: linux (Ubuntu) → python-ldap (Ubuntu)
Revision history for this message
Frank Heimes (fheimes) wrote :

I just installed python3-ldap on 19.10 and 18.04 and it installs fine on both.

You're right that it pulls in some python(2) packages:

$ sudo apt --no-install-recommends install python3-ldap
[sudo] password for ubuntu:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python python-ldap
  python-minimal python-pyasn1 python-pyasn1-modules python2.7
  python2.7-minimal python3-pyasn1 python3-pyasn1-modules
Suggested packages:
  python-doc python-tk python2.7-doc binutils binfmt-support
The following NEW packages will be installed:
  libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python python-ldap
  python-minimal python-pyasn1 python-pyasn1-modules python2.7
  python2.7-minimal python3-ldap python3-pyasn1 python3-pyasn1-modules
0 upgraded, 13 newly installed, 0 to remove and 0 not upgraded.
...

The needed packages are all in main, hence are all fully supported - as the following command shows:
apt show python libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python python-ldap python-minimal python-pyasn1 python-pyasn1-modules python2.7 python2.7-minimal python3-ldap python3-pyasn1 python3-pyasn1-modules | grep 'Supported\|APT-Sources'

The situation in 19.10/Eoan (and therefore also in Focal) is different - if python3-ldap is installed there, no python2 packages are pulled-in:

$ sudo apt install python3-ldap
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  python3-pyasn1 python3-pyasn1-modules
The following NEW packages will be installed:
  python3-ldap python3-pyasn1 python3-pyasn1-modules
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.

I'm not sure what you are going to accomplish - why do you want to get rid of the python2-related packages in bionic already?
Please notice that any patched and/or recompiled packages are usually w/o support - just the one from the archives are in support.

Changed in python-ldap (Ubuntu):
status: New → Incomplete
Changed in ubuntu-z-systems:
importance: Undecided → Wishlist
status: New → Incomplete
assignee: nobody → Canonical Foundations Team (canonical-foundations)
Revision history for this message
Matthias Klose (doko) wrote :

in the python-ldap source:

override_dh_installdocs:
        dh_installdocs --link-doc=python-ldap

needs to be removed, and the symlink/directory conversion be handled. Of course, also not done in Debian

Changed in python-ldap (Ubuntu):
status: Incomplete → Triaged
Changed in python-ldap (Ubuntu Bionic):
status: New → Triaged
Revision history for this message
Matthias Klose (doko) wrote :

debian #905198 only handled the /u/s/doc/python-ldap-dbg symlink

Revision history for this message
Dimitri John Ledkov (xnox) wrote :

as matthias has explained, there is license information that only shipped in the python2 package, but referenced from the python3 package, hence a hard dependency is there.

However, the python3-ldap package should be usuable under python3 just fine in the mean time.

You are disliking the fact that python2 is pulled in at all, right? But python3-ldap otherwise works fine under python3 for you in Bionic?

tags: added: sts
Revision history for this message
bugproxy (bugproxy) wrote : Comment bridged from LTC Bugzilla

------- Comment From <email address hidden> 2019-11-12 18:01 EDT-------
> You are disliking the fact that python2 is pulled in at all, right?
RIght

> But python3-ldap otherwise works fine under python3 for you in Bionic
RIght, although to get around the hard-dependency on python-ldap (thus python2.7) we built with the Debian "stable" version of python3-ldap version 3.1.0-2 from
https://packages.debian.org/buster/python3-ldap
and verification succeeded. We cannot ship a product with this package however.

Frank Heimes (fheimes)
Changed in ubuntu-z-systems:
status: Incomplete → Triaged
Changed in python-ldap (Ubuntu Bionic):
status: Triaged → In Progress
description: updated
Revision history for this message
Dimitri John Ledkov (xnox) wrote :

Note to SRU team:

using 0.x for disco
using 1.x for eoan

due to same version in release pockets for both of those series.

Changed in python-ldap (Ubuntu Disco):
status: New → Incomplete
status: Incomplete → In Progress
Changed in python-ldap (Ubuntu Eoan):
status: New → In Progress
Changed in python-ldap (Ubuntu Focal):
status: Triaged → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package python-ldap - 3.2.0-3ubuntu1

---------------
python-ldap (3.2.0-3ubuntu1) focal; urgency=medium

  * Add python3-ldap.maintscript to correctly perform symlink to dir
    conversion of the previously linked docs directory on upgrades. LP:
    #1850283

 -- Dimitri John Ledkov <email address hidden> Wed, 11 Dec 2019 00:24:01 +0000

Changed in python-ldap (Ubuntu Focal):
status: Fix Committed → Fix Released
Revision history for this message
Timo Aaltonen (tjaalton) wrote : Please test proposed package

Hello bugproxy, or anyone else affected,

Accepted python-ldap into eoan-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/python-ldap/3.1.0-2ubuntu1.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested and change the tag from verification-needed-eoan to verification-done-eoan. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-eoan. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Changed in python-ldap (Ubuntu Eoan):
status: In Progress → Fix Committed
tags: added: verification-needed verification-needed-eoan
Changed in python-ldap (Ubuntu Disco):
status: In Progress → Fix Committed
tags: added: verification-needed-disco
Revision history for this message
Timo Aaltonen (tjaalton) wrote :

Hello bugproxy, or anyone else affected,

Accepted python-ldap into disco-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/python-ldap/3.1.0-2ubuntu0.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested and change the tag from verification-needed-disco to verification-done-disco. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-disco. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Changed in python-ldap (Ubuntu Bionic):
status: In Progress → Fix Committed
tags: added: verification-needed-bionic
Revision history for this message
Timo Aaltonen (tjaalton) wrote :

Hello bugproxy, or anyone else affected,

Accepted python-ldap into bionic-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/python-ldap/3.0.0-1ubuntu0.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested and change the tag from verification-needed-bionic to verification-done-bionic. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-bionic. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Frank Heimes (fheimes)
Changed in ubuntu-z-systems:
status: Triaged → Fix Committed
Revision history for this message
Ubuntu SRU Bot (ubuntu-sru-bot) wrote : Autopkgtest regression report (python-ldap/3.1.0-2ubuntu0.1)

All autopkgtests for the newly accepted python-ldap (3.1.0-2ubuntu0.1) for disco have finished running.
The following regressions have been reported in tests triggered by the package:

barbican/1:8.0.0-0ubuntu1 (armhf)

Please visit the excuses page listed below and investigate the failures, proceeding afterwards as per the StableReleaseUpdates policy regarding autopkgtest regressions [1].

https://people.canonical.com/~ubuntu-archive/proposed-migration/disco/update_excuses.html#python-ldap

[1] https://wiki.ubuntu.com/StableReleaseUpdates#Autopkgtest_Regressions

Thank you!

Revision history for this message
Ubuntu SRU Bot (ubuntu-sru-bot) wrote : Autopkgtest regression report (python-ldap/3.1.0-2ubuntu1.1)

All autopkgtests for the newly accepted python-ldap (3.1.0-2ubuntu1.1) for eoan have finished running.
The following regressions have been reported in tests triggered by the package:

salt/2018.3.4+dfsg1-6ubuntu1 (s390x)

Please visit the excuses page listed below and investigate the failures, proceeding afterwards as per the StableReleaseUpdates policy regarding autopkgtest regressions [1].

https://people.canonical.com/~ubuntu-archive/proposed-migration/eoan/update_excuses.html#python-ldap

[1] https://wiki.ubuntu.com/StableReleaseUpdates#Autopkgtest_Regressions

Thank you!

Revision history for this message
Bryan Quigley (bryanquigley) wrote :

Starting at 18.04
sudo apt install python3-ldap
brings in python2

root@set-moose:~# file /usr/share/doc/python3-ldap
/usr/share/doc/python3-ldap: symbolic link to python-ldap

Switch to normal upgrades, do-release-upgrade to disco, then eoan

root@set-moose:~# file /usr/share/doc/python3-ldap
/usr/share/doc/python3-ldap: broken symbolic link to python-ldap

Upgrade to -proposed

# file /usr/share/doc/python3-ldap
/usr/share/doc/python3-ldap: directory
root@set-moose:~# ls /usr/share/doc/python3-ldap
changelog.Debian.gz copyright

Now it's a directory at version i python3-ldap:amd64 3.1.0-2ubuntu1.1

For Eoan, python2 was autoremoved as part of the upgrade process (not sure if to eoan or disco).

tags: added: verification-done-eoan
removed: verification-needed-eoan
Revision history for this message
Bryan Quigley (bryanquigley) wrote :

Starting at 18.04 (for Disco verify)
sudo apt install python3-ldap
brings in python2

root@set-moose:~# file /usr/share/doc/python3-ldap
/usr/share/doc/python3-ldap: symbolic link to python-ldap

#Switch to normal upgrades, do-release-upgrade to disco

root@singular-kit:~# file /usr/share/doc/python3-ldap
/usr/share/doc/python3-ldap: broken symbolic link to python-ldap

Enable proposed and upgrade

root@singular-kit:~# file /usr/share/doc/python3-ldap
/usr/share/doc/python3-ldap: directory
root@singular-kit:~# ls /usr/share/doc/python3-ldap
changelog.Debian.gz copyright

root@singular-kit:~# dpkg -l | grep python3-ldap
ii python3-ldap:amd64 3.1.0-2ubuntu0.1 amd64 LDAP interface module for Python3

tags: added: verification-done-disco
removed: verification-needed-disco
Revision history for this message
bugproxy (bugproxy) wrote : Comment bridged from LTC Bugzilla

------- Comment From <email address hidden> 2019-12-13 16:55 EDT-------
Tested Bionic s390x binary packages
python-ldap_3.0.0-1ubuntu0.1_s390x.deb in a python2 environment and
python3-ldap_3.0.0-1ubuntu0.1_s390x.deb in a python3 (only) environment.
No change, as expected, to python2 environment (success).
Successful change to the python3 environment. python2 is no longer pulled in to our python3 build by this or any other python3 package in our local repository. Completed python ldap test suite successfully in both environments. Note we do not use or build with python[3]-pyldap.

Please set tag verification-done-bionic

Revision history for this message
Bryan Quigley (bryanquigley) wrote :

Thank you for the testing, marking as verification-done!

I also ran through checking the directory is changed (18.04):

root@charming-blowfish:~# file /usr/share/doc/python3-ldap
/usr/share/doc/python3-ldap: symbolic link to python-ldap

Upgrade to proposed

root@charming-blowfish:~# file /usr/share/doc/python3-ldap
/usr/share/doc/python3-ldap: directory

# apt autoremove
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
  libdumbnet1 libfreetype6 libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python python-ldap python-minimal python-pyasn1 python-pyasn1-modules python2.7 python2.7-minimal
0 upgraded, 0 newly installed, 12 to remove and 0 not upgraded.

root@charming-blowfish:~# dpkg -l | grep python3-ldap
ii python3-ldap 3.0.0-1ubuntu0.1 amd64 LDAP interface module for Python3

tags: added: verification-done verification-done-bionic
removed: verification-needed verification-needed-bionic
Revision history for this message
Steve Langasek (vorlon) wrote : Update Released

The verification of the Stable Release Update for python-ldap has completed successfully and the package is now being released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package python-ldap - 3.0.0-1ubuntu0.1

---------------
python-ldap (3.0.0-1ubuntu0.1) bionic; urgency=medium

  * Stop linking docs to python-ldap package, like it is done in later
    releases. This drops python2 dependenices from the python3
    package. LP: #1850283

 -- Dimitri John Ledkov <email address hidden> Wed, 11 Dec 2019 00:14:27 +0000

Changed in python-ldap (Ubuntu Bionic):
status: Fix Committed → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package python-ldap - 3.1.0-2ubuntu1.1

---------------
python-ldap (3.1.0-2ubuntu1.1) eoan; urgency=medium

  * Add python3-ldap.maintscript to correctly perform symlink to dir
    conversion of the previously linked docs directory on upgrades. LP:
    #1850283

 -- Dimitri John Ledkov <email address hidden> Wed, 11 Dec 2019 00:27:51 +0000

Changed in python-ldap (Ubuntu Eoan):
status: Fix Committed → Fix Released
Revision history for this message
Frank Heimes (fheimes) wrote :

Since Ubuntu 19.04 / Disco reached it's end-of-life on January the 23rd:
https://lists.ubuntu.com/archives/ubuntu-announce/2020-January/000253.html
the entry that marks this ticket as affecting 'Disco' is changed to 'Won't Fix'
and with that the overall project status got adjusted, too.

Changed in python-ldap (Ubuntu Disco):
status: Fix Committed → Won't Fix
Changed in ubuntu-z-systems:
status: Fix Committed → Fix Released
Revision history for this message
bugproxy (bugproxy) wrote : Comment bridged from LTC Bugzilla

------- Comment From <email address hidden> 2020-01-27 09:03 EDT-------
IBM Bugzilla-> closed, Fix Released with all requested distros.

Frank Heimes (fheimes)
tags: added: ssc
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.