Launchpad doesn't take in account dependancy packages present in my PPA

Asked by Pascal Mons on 2018-10-29

In my PPA
https://launchpad.net/~anton+/+archive/ubuntu/photo-video-apps

I did previously copy and build debhelper - 9.20150101ubuntu1~ubuntu14.04.1york2 from PPA
https://launchpad.net/~jonathonf/+archive/ubuntu/dpkg-1.17/+packages

for Trusty 14.04, then I assumed that the latest available version of debhelper for Trusty 14.04 is 9.20150101ubuntu1 and available to any newer build inside my PPA repository for serie Trusty 14.04.

It looks like not obviously and I don't understand why ?

I have just launched a cmake_3.6.2.orig.tar.xz build for Trusty 14.04 and I get from Launchpad this error message:

Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 sbuild-build-depends-cmake-dummy : Depends: debhelper (>= 9.20131104) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

To me version 9.20150101ubuntu1 is >= 9.20131104 so I would have expected the build to proceed ...
Why then would Launchpad fails to build this package ?

Again I have an example of the same exact package cmake 3.6.2 build on September 22, 2016 inside this PPA:
https://launchpad.net/~josh-bialkowski/+archive/ubuntu/cmake/+packages

besides that the default version for Trusty is 9.20131227, so even without taking into account the latest update for debhelper version, Launchpad should have proceed I believe.

So why the error ?

Question information

Language:
English Edit question
Status:
Solved
For:
Launchpad itself Edit question
Assignee:
No assignee Edit question
Solved by:
Colin Watson
Solved:
2018-10-31
Last query:
2018-10-31
Last reply:
2018-10-30
Colin Watson (cjwatson) said : #1

It would really be quicker for you to do a bit of simple investigation yourself when this sort of thing happens. In this case, all it takes is to set up a trusty chroot with your PPA installed:

  # cat >/etc/apt/sources.list
  deb http://archive.ubuntu.com/ubuntu trusty main restricted universe multiverse
  deb-src http://archive.ubuntu.com/ubuntu trusty main restricted universe multiverse
  deb http://archive.ubuntu.com/ubuntu trusty-updates main restricted universe multiverse
  deb-src http://archive.ubuntu.com/ubuntu trusty-updates main restricted universe multiverse
  deb http://ppa.launchpad.net/anton+/photo-video-apps/ubuntu trusty main
  deb-src http://ppa.launchpad.net/anton+/photo-video-apps/ubuntu trusty main
  # apt update
  ...
  # apt-get install debhelper
  Reading package lists... Done
  Building dependency tree
  Reading state information... Done
  Some packages could not be installed. This may mean that you have
  requested an impossible situation or if you are using the unstable
  distribution that some required packages have not yet been created
  or been moved out of Incoming.
  The following information may help to resolve the situation:

  The following packages have unmet dependencies:
   debhelper : Depends: libdpkg-perl (>= 1.17.14) but 1.17.5ubuntu5.8 is to be installed
  E: Unable to correct problems, you have held broken packages.

In other words, you copied a version of debhelper into your PPA that's uninstallable because it depends on a version of dpkg that you don't have in your PPA. Thus, pretty much every build in your PPA will now fail. You will probably have to delete your copy of that debhelper build before you can get any further.

I very strongly recommend against attempting to backport dpkg or debhelper. It can be done, and some people have made it work, but they're usually people who are confident in investigating this sort of problem themselves and testing the builds locally before uploading them. Most people will have much better luck with converting the packages that build-depend on newer versions of debhelper to build-depend on older versions instead as part of the backporting process (this is often just a matter of going back through the changelog and finding what changed, but failing that the documentation of the various compatibility levels in "man debhelper" is usually enough).

Pascal Mons (anton+) said : #2

Well, thanks for your answer.
True I didn't check the first lines of the buildlog ppa:jonathonf/dpkg-1.17 detailing the linked PPAs.

I followed your suggestion and completely removed the copied debhelper from my PPA.

Then I did link the same PPAs to my PPA as Jonathonf did, that is:

'deb http://ppa.launchpad.net/jonathonf/gcc-defaults-4.9/ubuntu trusty main'
'deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu trusty main'

Tried to build anew dpkg 1.17.25 and failed again on debhelper >= 7

May be the faulty debhelper copied package was not still removed from the repository.

But still the Merged Build-Depends: packages looks by far incomplete vs. Jonathonf's ones listed in the buildlog.

Though I have now the same linked PPAs including trusty trusty-security trusty-updates, I still miss the regular Ubuntu trusty-backports.

How to add 'deb http://ftpmaster.internal/ubuntu trusty-backports main restricted universe multiverse'
to my 'in-target override-sources-list' (in buildlog) in Launchpad ?

I didn't find any answer by looking at web resources.

Colin Watson (cjwatson) said : #3

Removals do take a little while to process.

You can enable backports on https://launchpad.net/~anton+/+archive/ubuntu/photo-video-apps/+edit-dependencies, using the radio buttons under "Ubuntu dependencies".

You could also consider just adding ~jonathonf's PPA to your PPA's dependencies, rather than trying to replicate the builds there.

Pascal Mons (anton+) said : #4

OK. I am well aware of the radio button to add PPAs dependencies, however my question was hoe to add plain ubuntu source 'deb http://ftpmaster.internal/ubuntu trusty-backports main restricted universe multiverse' which is not a Launchpad PPA.

Upon searching in the radio button for trusty-backports I get only Launchpad PPAs containing the word ...

While I can see in JonathanF buildlog that Launchpad did include the source from Ubuntu trusty-backports repository, however not in my own build.

How can I add the Ubuntu source trusty-backports ? or more generally all series backports to my launchpad builds ? Theses sources are Ubuntu ones not a Launchpad PPA.

Thanks.

Best Colin Watson (cjwatson) said : #5

No, you misunderstand. The radio button set I was referring to, under "Ubuntu dependencies", has the following caption:

  "Select which packages of the Ubuntu primary archive should be used as build-dependencies when building sources in this PPA."

That is the option you are asking for; it is separate from the widgets further down the page which allow you to add dependencies on other PPAs.

Pascal Mons (anton+) said : #6

Than you very much for the details.
Sorry I overlooked these settings ...

I will close these questions as soon as I can get the faulty debhelper package removed from my PPA archives and build successfully.

Pascal Mons (anton+) said : #7

OK. Great. Thanks for your insight.
Everything is fine right now.

Pascal Mons (anton+) said : #8

Thanks Colin Watson, that solved my question.