Can I import a package from another PPA into my PPA?

Asked by Benjamin Kay

Is it possible to mirror a package in someone else's PPA into one of my own PPAs? I may just need to RTFM more closely, but I don't think this feature exists in Launchpad.

Usage Case:
Jane the computer whiz uploads a bunch of neat educational packages to her PPA. Bob the homeroom teacher would like to install some, but not all, of those packages on his classroom computers. Bob creates his own PPA and imports the packages he needs from Jane's PPA. Bob then adds his PPA to all of his classroom computers. When Jane updates the packages in her PPA, they are automatically updated on Bob's computers.

Alternatives:
1. Bob manually downloads and installs the packages he needs from Jane's PPA. Disadvantage: the packages won't be updated automatically, and repeating the process on each and every classroom computer will be tedious.

2. Bob uses Jane's PPA and then uses APT pinning to exclude those packages he doesn't want. Disadvantage: APT pinning is difficult to set up. Bob will have trouble explaining it to the teacher in the classroom down the hall.

3. Bob re-uploads the packages he needs into his own PPA. Disadvantage: Bob has to do extra work, and Launchpad now has to compile each package twice.

Question information

Language:
English Edit question
Status:
Solved
For:
Launchpad itself Edit question
Assignee:
No assignee Edit question
Solved by:
Max Bowsher
Solved:
Last query:
Last reply:
Revision history for this message
Daniel Hollocher (chogydan) said :
#1

I don't Canonical wants copies of packages in ppas: https://help.launchpad.net/Packaging/PPA/Uploading

Revision history for this message
Benjamin Kay (benkay) said :
#2

Daniel, thank you for your response. In fact, Canonical does not want duplicates of official packages (i.e. packages that already reside in main, universe, or multiverse) in PPAs. This is not what I wish to accomplish. I want to "copy" a package that is already in a PPA (i.e. NOT in Canonical's official repositories) into another PPA. I hope my usage case makes it clear why this would be desirable. I do not think this contravenes Canonical's policy.

Revision history for this message
Ursula Junque (ursinha) said :
#3

Hi Benjamin,

WIth Launchpad you can do a 4th way:

4) Bob copies packages from Jane's PPA using <Jane's PPA url>/+copy-packages, and gets in his PPA all packages he wants from Jane. Disadvantage: Launchpad doesn't link one PPA to another, so the automatic update of Bob's PPA when Jane updates hers won't happen.

I suggest you to open a bug, or check if there's none existing, asking to add this "mirroring" feature.

Hope this helps,

Ursula

Revision history for this message
Max Bowsher (maxb) said :
#4

It should be noted that automatic update cannot be done safely. Consider: Jane updates a package to depend on a new library, which she also publishes to her PPA. If Launchpad were to blindly sync the new version of the original package into Bob's PPA, it would appear to be broken for users of Bob's PPA, since it would be missing a required dependency. Ultimately, some human thought and input is required when constructing a set of packages to be published together - I don't think automatic syncing is possible to make work 100% correctly.

Revision history for this message
Benjamin Kay (benkay) said :
#5

Ursula, could you elaborate on how to pull select packages from another PPA? Just to pick an unofficial package I use at random, would the syntax be something like:

ppa:samrog131/ppa/+plasma-widget-cashew-off

If so, where would I input this statement to achieve the desired effect?

Max, you bring up a valid point. It might be better if Launchpad automatically notified Bob whenerver Jane updates a package he uses instead of just syncing to the new package. Presumably Launchpad would cache the older version of the package until Bob manually updates to the new version. I still think having some degree of automaticity would be nice though:

* If Bob is using a lot Jane's packages in his PPA, checking each and every package for updates by hand would be tedious. Automatic notifications would ensure Bob never misses an update.
* So long as Bob and Jane are using the same version of the package, Launchpad only needs to store one copy of the package.
* Launchpad only has to build each version of the package once.

Revision history for this message
Best Max Bowsher (maxb) said :
#6

Benjamin:

1. Go to https://launchpad.net/~samrog131/+archive/ppa
2. Click "View package details" near the top-right
3. Click "Copy packages" near the top-right of the new page
4. Use the search box to filter the package list to be more managable
5. Tick the packages to copy.
6. Specify the destination PPA (if you have more than one), destination series (You usually want "The same series"), and copy options (You might as well choose "Copy existing binaries" unless you *want* the source package to be rebuilt for your PPA).

Regarding your further point: Being able to "subscribe" to a PPA would be rather nice actually, and is a clear missing feature - you can subscribe to branches, to bugs, to answers - why can't you subscribe to PPAs? *That's* something you definitely might consider filing a feature-request bug about.

Revision history for this message
Benjamin Kay (benkay) said :
#7

Thanks Max, that's exactly what I was looking for. I'm glad I asked here rather than assuming the feature didn't exist.

If nobody beats my to it, I'll file a wishlist bug for "subscribing to a PPA" after I've had some time to play around with the system.

Revision history for this message
Max Bowsher (maxb) said :
#8

allangering: Thankyou for your comment, but it is not relevant to this question. Please try to keep questions tightly on-topic.