fastsupply / growl

Automatically exported from code.google.com/p/growl
0 stars 0 forks source link

Mac App Store rejections due to ppc code in the framework #191

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
We should include either a script that uses lipo to remove ppc from the 
framework or a whole complete framework suited for use by developers that are 
targeting the Mac App Store.

Original issue reported on code.google.com by rarich...@gmail.com on 14 Apr 2011 at 1:30

GoogleCodeExporter commented 9 years ago

Original comment by rarich...@gmail.com on 14 Apr 2011 at 1:31

GoogleCodeExporter commented 9 years ago
Let's make a new framework.

Should we keep this one open, or keep 192 open?

Original comment by chrisf.g...@gmail.com on 14 Apr 2011 at 1:54

GoogleCodeExporter commented 9 years ago
192 is entirely a duplicate.

Original comment by rarich...@gmail.com on 14 Apr 2011 at 3:00

GoogleCodeExporter commented 9 years ago
Issue 192 has been merged into this issue.

Original comment by chrisf.g...@gmail.com on 14 Apr 2011 at 3:06

GoogleCodeExporter commented 9 years ago
I would prefer we provide a framework that we know works, rather than some 
extra steps.

Original comment by chrisf.g...@gmail.com on 14 Apr 2011 at 3:07

GoogleCodeExporter commented 9 years ago
I was just stating the two options available to us. The third option (which we 
will eventually end up doing at some point in the future) would be to remove 
ppc support from the only framework.

Original comment by rarich...@gmail.com on 14 Apr 2011 at 3:33

GoogleCodeExporter commented 9 years ago
Speaking as someone affected by this... I actually prefer the lipo option for 
the moment.  This is because a lot of us are targeting both the Mac App Store 
(Intel only, no PowerPC allowed) and standalone Leopard (where PowerPC support 
may be important).

Right now, I can still link against all the same libraries in both my builds, 
provided I lipo the PowerPC parts out of the Mac App Store build (which is the 
approach I take).  I imagine Transmit and anything else that uses Growl takes 
the same approach.  Turning the Growl framework Intel-only would mean anyone in 
this same situation would either need to roll their own lipo solution /anyway/, 
or would need to link against two separate versions of the framework for the 
two different builds.

Down the road, killing PowerPC support is probably viable, when Lion is the 
dominant OS.

Original comment by cerulean...@gmail.com on 14 Apr 2011 at 4:31

GoogleCodeExporter commented 9 years ago
I was more thinking of providing 2 versions of the framework, not killing off 
one over the other. If it's as simple as lipo'ing it and then having 2 
directories for the fw in the sdk (and docs) that's fine.

However, if we can write up something about how to do this in xcode instead in 
some automated fashion, maybe just lipo'ing is the best option.

Off Topic, do we have your app listed on the applications page? If not let's 
get that done.

Original comment by chrisf.g...@gmail.com on 14 Apr 2011 at 4:36

GoogleCodeExporter commented 9 years ago
It's pretty straightforward in an Xcode 'Run Script' stage.

        ditto -arch i386 "$TARGET_BUILD_DIR" "$TARGET_BUILD_DIR Intel"

...et voila, an app with all the PowerPC portions stripped out of all 
executables, including any bundled frameworks such as Growl. :)

Original comment by cerulean...@gmail.com on 14 Apr 2011 at 4:55

GoogleCodeExporter commented 9 years ago
I stand corrected, this is a much better solution than multiple frameworks.

We likely just need to add some documentation about build targets and whatnot.

Original comment by chrisf.g...@gmail.com on 14 Apr 2011 at 5:00

GoogleCodeExporter commented 9 years ago
Rudy: Re: Your comment on #192 about Transmit: They have not done that. The 
Growl.framework in Transmit 4 as downloaded from the MAS includes all three 
architectures. If this is a recent change, perhaps Panic shipped before it was 
enacted?

Original comment by p...@growl.info on 14 Apr 2011 at 9:42

GoogleCodeExporter commented 9 years ago
So, while building 1.2.2 from the development repo to test #179, I got this:

---
Ld 
build/BeepHammer.build/Release/BeepHammer.build/Objects-normal/ppc/BeepHammer 
normal ppc
    cd "/Volumes/Home-etc/Users/prh/Projects/@otherpeoplesprojects/growl-development/Developer Tools/BeepHammer"
    /Developer-XC3/usr/bin/gcc-4.2 -arch ppc blah de blah de blah

ld: warning: in 
/Volumes/Home-etc/Users/prh/Projects/@otherpeoplesprojects/growl-development/bui
ld/Release/Growl.framework/Growl, missing required architecture ppc in file

Ld "build/BeepHammer.build/Release/BeepHammer 
Growl-WithInstaller.build/Objects-normal/ppc/BeepHammer Growl-WithInstaller" 
normal ppc
    cd "/Volumes/Home-etc/Users/prh/Projects/@otherpeoplesprojects/growl-development/Developer Tools/BeepHammer"
    /Developer-XC3/usr/bin/gcc-4.2 -arch ppc blah de blah de blah

ld: warning: in 
/Volumes/Home-etc/Users/prh/Projects/@otherpeoplesprojects/growl-development/bui
ld/Release/Growl-WithInstaller.framework/Growl-WithInstaller, missing required 
architecture ppc in file

The following build commands failed:
BeepHammer:
        Ld "/Volumes/Home-etc/Users/prh/Projects/@otherpeoplesprojects/growl-development/Developer Tools/BeepHammer/build/BeepHammer.build/Release/BeepHammer.build/Objects-normal/ppc/BeepHammer" normal ppc
BeepHammer Growl-WithInstaller:
        Ld "/Volumes/Home-etc/Users/prh/Projects/@otherpeoplesprojects/growl-development/Developer Tools/BeepHammer/build/BeepHammer.build/Release/BeepHammer Growl-WithInstaller.build/Objects-normal/ppc/BeepHammer Growl-WithInstaller" normal ppc
(2 failures)
---

On the other hand, the Growl Xcode project clearly has both framework targets 
set to build universal, with PowerPC included. So I'm not sure where it's 
getting stripped out.

Original comment by p...@growl.info on 17 Apr 2011 at 6:28

GoogleCodeExporter commented 9 years ago
Did you upgrade to Xcode 3.2.6? Apple removed the ppc arch target from the 
default archs.

Original comment by rarich...@gmail.com on 17 Apr 2011 at 6:30

GoogleCodeExporter commented 9 years ago
Ahhh! Tricksy field truncation. “32/64-bit Intel” indeed. Thanks.

So, do we want to continue building PowerPC in the framework at all? If not, 
simply using Xcode 3.2.6 means this is already fixed.

Original comment by p...@growl.info on 17 Apr 2011 at 6:33

GoogleCodeExporter commented 9 years ago
There is definitely a point where we should stop building for ppc, i'm unsure 
if we are there yet though. Maybe drop inclusion at 1.3 and if someone really 
needs ppc they can build from the included source?

Original comment by rarich...@gmail.com on 17 Apr 2011 at 6:36

GoogleCodeExporter commented 9 years ago
Yeah, that's how I'm leaning after the thread on the development mailing 
list[1]. We'll drop PowerPC in 1.3.

[1]: 
http://groups.google.com/group/growl-development/browse_frm/thread/dec7fa693f557
256/9652521875527dda#9652521875527dda

Original comment by p...@growl.info on 21 Apr 2011 at 7:42

GoogleCodeExporter commented 9 years ago
Apparently one of the other developers did this already—I looked and it 
appears the framework is already set to build Intel-only for 1.3. Whoever it 
was, please claim this ticket.

And thanks!

Original comment by p...@growl.info on 10 Jul 2011 at 11:18

GoogleCodeExporter commented 9 years ago

Original comment by ch...@growl.info on 4 Nov 2011 at 2:55