[Pythonmac-SIG] PackageMaker and bdist_mpkg
Bob Ippolito
bob at redivi.com
Mon Mar 7 18:22:40 CET 2005
bdist_mpkg can't do this simply yet. It's not designed as a general
package creation tool, it's designed to do what it does and little
else.
As I said, by default, PackageMaker creates mpkgs that use ".." as the
path, so you need to manually copy the packages *next to* the mpkg.
Not inside.
If you want to put them inside, you have to edit the plist and change
the component directory.
-bob
On Mar 7, 2005, at 12:11 PM, Charles Moad wrote:
> Sounds like that is probably it. So I should manually copy the
> packages into the mpkg? What would be a simple python script to make
> bdist_mpkg do that given a list of pkgs.
>
> Thanks again,
>
> Bob Ippolito wrote:
>> On Mar 7, 2005, at 11:20 AM, Bob Ippolito wrote:
>>>
>>> On Mar 7, 2005, at 11:02 AM, Charles Moad wrote:
>>>
>>>> I am trying to make a mpkg using PackageMaker that includes a
>>>> combination of frameworks wrapped as pkg's, and bdist_mpkg outputs.
>>>> Each of these pkg's work fine when installed separately, but die
>>>> when I try running the resulting mpkg. One machine gave me a
>>>> horribly long stack trace that I think amounted to a NULL pointer
>>>> and another said, "There was an error in the package (999)" (might
>>>> not be exact).
>>>> Has anybody every been successful doing something similar?
>>>
>>>
>>> Nesting packages works fine if it's done by bdist_mpkg. I've never
>>> tried using PackageMaker on the outside, but I suspect either you
>>> did something wrong with PackageMaker, or PackageMaker has bugs.
>>> The mpkgs and pkgs that bdist_mpkg outputs are perfectly compliant
>>> with the specfiications.
>>>
>>> If you put together a minimal example that demonstrates the problem,
>>> I'll look at it.
>> Ok, I just put a minimal example together and it worked fine. It
>> appears you are using PackageMaker incorrectly. By default, it sets
>> its IFPkgFlagComponentDirectory to "..", which means that all of the
>> sub-packages must be siblings of the mpkg. If they are not there,
>> you will get an error 999. PackageMaker does not copy the
>> sub-packages anywhere, you have to do this on your own.
>> bdist_mpkg creates mpkgs that have an IFPkgFlagComponentDirectory of
>> "Packages", which means it looks *inside* the mpkg for the pkg files.
>> Perhaps you thought that PackageMaker also did this kind of
>> encapsulation by default?
>> -bob
More information about the Pythonmac-SIG
mailing list