[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