Score:2

How to use a older version of a package from the same PPA as a dependency while building is Launchpad?

in flag

I'm trying to package software for the Cardano blockchain using Launchpad, and so far I have been able to create a PPA with the required libsodium fork. This fork is required to build the Cardano node software, which was my next step - to build it and put it on the PPA as well. The problem is that in order to build the node software, the builder needs to use that PPA to be able to install the proper dependency.

Without it, I get build failures like this, where it fails to resolve the needed version:

The following packages have unmet dependencies:
 sbuild-build-depends-cardano-node-dummy : Depends: libsodium-dev (= 1.0.17.1-0ubuntu1) but 1.0.18-1 is to be installed
E: Unable to correct problems, you have held broken packages.

I have tried making the PPA a depedency, but apparently you can't do that because the package is built as part of the same PPA, and it can't depend on itself. What do I do here?

Edit to clarify: I am trying to build a package in a PPA that depends on a package that comes from the same PPA.

us flag
Just to clarify, you are trying to build a package in your PPA, which depends on another package, that is available on another PPA? If so, can you post the links of both the PPAs by editing the question?
in flag
@ArchismanPanigrahi I have edited the question to clarify - the PPA is the same.
Score:1
us flag

The package cardano-node explicitly depends on libsodium-dev (= 1.0.17.1-0ubuntu1) which is in the PPA. However, version 1.0.18-1 is already available in the repositories, and the older version would not be installed.

You have two options.

  1. If the version in the Ubuntu repositories work for you, then remove the explicit version number of the dependency libsodium-dev in the debian/control file.
  2. If you really need this older version with your package, then rebuild the older version under a fake version number like 2:1.0.17.1-0, and again remove the explicit version number from the debian/control file, so that the older version of libsodium-dev (now 2:1.0.17.1-0) would get a higher preference.
in flag
I was thinking about approach 2, since I do need the custom version. But the problem is that the library is in the same PPA, making another version of it wouldn't help with the fact that the version is not available to the package being built, would it?
in flag
Oh, I see what you mean though. The later package being available - that's why the dependency can't resolve. I have been working around it with an apt pin, do you know if it can be done in Launchpad environment?
us flag
No, I don't think Launchpad can use apt pin. Just change the version number in `debian/control`, run `debuild -S`, and push to Launchpad.
mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.