Problem with PPA Dependency inside my PPA

Asked by Pascal Mons

I have a set in my ppa::anton+/photo-video-apps a PPA dependency to ppa:otto-kesselgulasch/gimp-edge in order to build against GIMP 2.9 instead of 2.8

Since the change I am unable to build package ufraw, as autoreconf does not see any GIMP lib/pkgconfig data, despite the fact that Launchpad do install libgimp2.0-dev_2.9.3~10-0t1~ppa in its build environment, and the pkgconfig data is in there. As well dependency package libgimp2.0_2.9.3~10-0t1~ppa is present.

Here is an excerpt of the failure in Trusty 14.04

checking for GIMP... no
configure: error: in `/«PKGBUILDDIR»':
configure: error: --with-gimp was given, but test for gimp failed
See `config.log' for more details
make: *** [config-stamp] Error 1

[I have no access to Launchpad config.log]

Instead of (before adding the PPA dependency and as well on my system)

checking for GIMP... yes

The config.log (on my system) for this checking is :

configure:5645: checking for GIMP
configure:5652: $PKG_CONFIG --exists --print-errors "gimpui-2.0 >= 2.2.0"
configure:5655: $? = 0
configure:5669: $PKG_CONFIG --exists --print-errors "gimpui-2.0 >= 2.2.0"
configure:5672: $? = 0
configure:5726: result: yes
configure:5735: checking for GIMP_2_4
configure:5742: $PKG_CONFIG --exists --print-errors "gimpui-2.0 >= 2.4.0"
configure:5745: $? = 0
configure:5759: $PKG_CONFIG --exists --print-errors "gimpui-2.0 >= 2.4.0"
configure:5762: $? = 0
configure:5808: result: yes
configure:5818: checking for GIMP_2_9
configure:5825: $PKG_CONFIG --exists --print-errors "gimpui-2.0 >= 2.9.0"
configure:5828: $? = 0
configure:5842: $PKG_CONFIG --exists --print-errors "gimpui-2.0 >= 2.9.0"
configure:5845: $? = 0
configure:5891: result: yes

I don't understand why the behaviour is different at this point.
Side note : I have just installed sbuild but I still need to get it working

I followed instructions from https://wiki.ubuntu.com/SimpleSbuild

from my $HOME

$ schroot -c trusty-amd64 -u root
W: Failed to change to directory ‘/home/ubuntu-trusty/user’: No such file or directory
I: The directory does not exist inside the chroot. Use the --directory option to run the command in a different directory.
W: Falling back to directory ‘/root’
(trusty-amd64)root@Marius-PC:/root#

Question information

Language:
English Edit question
Status:
Solved
For:
Launchpad itself Edit question
Assignee:
No assignee Edit question
Solved by:
Pascal Mons
Solved:
Last query:
Last reply:
Revision history for this message
Colin Watson (cjwatson) said :
#1

I recommend converting to dh_auto_configure; as well as it generally being a good idea to abbreviate common things across packages, it automatically dumps the contents of config.log on failure. (Or of course you can also do something like "./configure ... || { cat config.log; exit 1; }".)

As for your schroot issues, you probably need to fiddle with the fstab in the schroot configuration for the appropriate profile and make it bind-mount /home.

Revision history for this message
Pascal Mons (anton+) said :
#2

OK. I took time to rewrite completely the outdated debian/rules still used by Debian and Ubuntu.

Then I got the details of the failure, just as you said.

Package gegl-0.3 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gegl-0.3.pc'
to the PKG_CONFIG_PATH environment variable
Package 'gegl-0.3', required by 'GIMP', not found

It looks like the dependencies for GIMP 2.9 which are available in the same PPA dependency = ppa:otto-kesselgulasch/gimp-edge are not "seen" by Launchpad ... Is it a normal behaviour ? Then I would have to explicitly add those packages in my ufraw package Build-Depends: ?

Here it is libgegl-dev (>= 0.3.4) which is part of the Build-Depends: in the control file of gimp 2.9.3 in the mentioned ppa.

I thought any dependency within the PPA dependency would be found automatically.

Thanks for your feedback.

Revision history for this message
William Grant (wgrant) said :
#3

Try to build the package in sbuild. It will fail in exactly the same way.

Revision history for this message
Pascal Mons (anton+) said :
#4

Sure because it looks like Launchpad / sbuild / chroot don't look for dependencies for packages coming from a dependency PPA inside this PPA at the time they build the environment. IMO it should look for dependencies in that PPA whenever it founds a more recent package there ...

But it's not the case obviously. So we have to add all Build-Depends packages as if we were to build this 'picked up' in its dependency PPA ... It looks a bit weird. Outside the dependencies PPA, the build process looks for all dependencies at the time f environment building I believe.

Revision history for this message
Colin Watson (cjwatson) said :
#5

Depends of packages that you Build-Depend on are followed, but not Build-Depends. It is normally expected that -dev packages will include anything necessary for other packages that use them in their own Depends field.

Revision history for this message
Pascal Mons (anton+) said :
#6

I don't get your stated difference between Build-Depend and Build-Depends ...
In the debian/control file there is a Build-Depnds: field with a list of all dependency packages.
The there is a specific Depends: field for each package, and if read well your previous comment the Depends: field of package libgimp2.0-dev should contain libbabl-dev (>= 0.1.12), libgegl-dev (>= 0.3.4) in order for Launchpad to pick up the dependency from the gimp-edge PPA depdendency ?

Revision history for this message
Colin Watson (cjwatson) said :
#7

I wasn't drawing any distinction between "Build-Depend" and "Build-Depends"; I was drawing a distinction between "Depends of Build-Depends" and "Build-Depends". The reason I left out the "s" in one case was just to make it make a little more grammatical sense.

Yes, libgimp2.0-dev needs to declare in its Depends field any packages that it requires for proper functioning, just as any other package would have to do. A Build-Depends field is only significant when building the source package that declares that Build-Depends field; it is entirely ignored when building any other source package.

The PPA dependency is only significant in that it adds that PPA to apt's sources.list while satisfying build-dependencies. In order to be installed during a build, packages must still be build-depended on or be (recursively) dependencies of packages that are themselves build-depended on. We don't and will not simply install all the packages in a PPA when you add it as a dependency.

Finally, you're asking a lot of questions like this and they really have nothing at all to do with Launchpad; all of them are reproducible by installing the build-dependencies in a clean chroot with an appropriate sources.list and building the package, as tools such as sbuild and pbuilder can do, or you can do yourself by hand starting from a debootstrap --variant=buildd chroot; and the semantics of Build-Depends and Depends are defined precisely in the Debian policy manual. Could I please ask that you put a bit more effort into research before asking us for help with packaging? There are only a few Launchpad developers and I'm afraid we have limited time for personalised help like this. It's fine to ask us for help when Launchpad seems to be deviating from the specifications in some way or otherwise malfunctioning, but in this case this is all working as described in the policy manual.

Revision history for this message
otto06217 (otto-kesselgulasch) said :
#8

Simply look at what I do. This what I do is not perfet. So what?
Read! Is it so hard to read the files under debian or is so hard to understand the autotools, cmake or what ever?
All what I'm doing, all my false steps, all what I patched is written under debian/*.
Not all my thoughts, and not all of my passions is here, but the most of them.

Revision history for this message
Pascal Mons (anton+) said :
#9

Calm down please. That part of was not aware of myself.

So it looks like adding those dependencies for the dev package will make it work.

That's it.

My packages suffer as well of the defect.

> To: <email address hidden>
> From: <email address hidden>
> Subject: Re: [Question #285003]: Problem with PPA Dependency inside my PPA
> Date: Fri, 12 Feb 2016 21:46:51 +0000
>
> Your question #285003 on Launchpad itself changed:
> https://answers.launchpad.net/launchpad/+question/285003
>
> otto06217 proposed the following answer:
> Simply look at what I do. This what I do is not perfet. So what?
> Read! Is it so hard to read the files under debian or is so hard to understand the autotools, cmake or what ever?
> All what I'm doing, all my false steps, all what I patched is written under debian/*.
> Not all my thoughts, and not all of my passions is here, but the most of them.
>
> --
> If this answers your question, please go to the following page to let us
> know that it is solved:
> https://answers.launchpad.net/launchpad/+question/285003/+confirm?answer_id=7
>
> If you still need help, you can reply to this email or go to the
> following page to enter your feedback:
> https://answers.launchpad.net/launchpad/+question/285003
>
> You received this question notification because you asked the question.

Revision history for this message
Pascal Mons (anton+) said :
#10

OK. I understand Launchpad and its team should not engaged in answering this. I was just asking for a yes / no answer. And it later proved the answer was yes. Your first answer was almost clear.