Opened 10 years ago

Closed 10 years ago

Last modified 6 months ago

#46411 closed defect (fixed)

p5-mac-carbon: should we retire ports depending on Carbon?

Reported by: mojca (Mojca Miklavec) Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: pixilla (Bradley Giesbrecht), ryandesign (Ryan Carsten Schmidt), cooljeanius (Eric Gallager)
Port: p5-mac-appleevents-simple p5-mac-apps-launch p5-mac-carbon p5-mac-glue p5-mac-growl p5-mac-osa-simple

Description (last modified by mojca (Mojca Miklavec))

A bunch of ports fails to work on any recent OS X version due to a dependency on Carbon:

  • p5-mac-carbon
    • p5-mac-appleevents-simple
      • p5-mac-apps-launch
        • p5-mac-glue
          • p5-mac-growl
    • p5-mac-osa-simple

Should we remove those ports?

Another 32-bit-only port:

  • p5-macosx-file

Other p5-mac* ports not related to Carbon include:

  • p5-mac-applescript
  • p5-mac-applescript-glue
  • p5-mac-applesingledouble
  • p5-mac-errors
  • p5-mac-pasteboard
  • p5-mac-propertylist
  • p5-mac-sysprofile
  • p5-mac-systemdirectory

See also comment:29:ticket:46322

Change History (19)

comment:1 Changed 10 years ago by mojca (Mojca Miklavec)

The port p5-mac-carbon fails with

*** 64-BIT WARNING ***  *** 64-BIT WARNING ***  *** 64-BIT WARNING ***
Mac-Carbon does not run under 64-bit perl, and it appears you're running
a 64-bit perl.  We can try to compile anyway, in case this is a fat binary;
we'll try to leave out the 64-bit compilation.

My guess is that you're running a 64-bit, non-fat, perl and that there's no
real chance this will work.  But you set TRY_ANYWAY=1 so we'll try anyway.

If you want to use these modules, it must be in 32-bit mode.  For more
information, see:

    http://use.perl.org/~pudge/journal/39596
./../Carbon.h:87:10: fatal error: 'Events.h' file not found
#include <Events.h>
         ^
In file included from PerlAEUtils.cpp:29:
./PerlAEUtils.h:33:10: fatal error: 'AppleEvents.h' file not found
#include <AppleEvents.h>
         ^

Some other ports fail with

Error: Cannot install p5.16-mac-glue for the arch(s) 'x86_64' because
Error: its dependency p5.16-mac-appleevents-simple only supports the arch(s) 'i386 ppc'.

comment:2 Changed 10 years ago by mojca (Mojca Miklavec)

The port p5-macosx-file fails in a related way and seems to be i386-only:

/usr/bin/clang -c  -I../ -I/Developer/Headers/FlatCarbon -pipe -Os -fno-common -DPERL_DARWIN -I/opt/local/include -fno-strict-aliasing -fstack-protector -I/opt/local/include -arch i386 -O3   -DVERSION=\"0.70\" -DXS_VERSION=\"0.70\"  "-I/opt/local/lib/perl5/5.16.3/darwin-thread-multi-2level/CORE"   Catalog.c
In file included from Catalog.xs:16:
../common/util.c:10:10: fatal error: 'Files.h' file not found
#include <Files.h>
         ^
1 error generated.
make[1]: *** [Catalog.o] Error 1

comment:3 in reply to:  2 ; Changed 10 years ago by larryv (Lawrence Velázquez)

Replying to mojca@…:

The port p5-macosx-file fails in a related way and seems to be i386-only:

/usr/bin/clang -c  -I../ -I/Developer/Headers/FlatCarbon -pipe -Os -fno-common -DPERL_DARWIN -I/opt/local/include -fno-strict-aliasing -fstack-protector -I/opt/local/include -arch i386 -O3   -DVERSION=\"0.70\" -DXS_VERSION=\"0.70\"  "-I/opt/local/lib/perl5/5.16.3/darwin-thread-multi-2level/CORE"   Catalog.c
In file included from Catalog.xs:16:
../common/util.c:10:10: fatal error: 'Files.h' file not found
#include <Files.h>
         ^
1 error generated.
make[1]: *** [Catalog.o] Error 1

What version of p5-macosx-file are you trying to build? I fixed this issue in r130542.

comment:4 in reply to:  3 ; Changed 10 years ago by mojca (Mojca Miklavec)

Replying to larryv@…:

Replying to mojca@…:

The port p5-macosx-file fails in a related way and seems to be i386-only:

/usr/bin/clang -c  -I../ -I/Developer/Headers/FlatCarbon -pipe -Os -fno-common -DPERL_DARWIN -I/opt/local/include -fno-strict-aliasing -fstack-protector -I/opt/local/include -arch i386 -O3   -DVERSION=\"0.70\" -DXS_VERSION=\"0.70\"  "-I/opt/local/lib/perl5/5.16.3/darwin-thread-multi-2level/CORE"   Catalog.c
In file included from Catalog.xs:16:
../common/util.c:10:10: fatal error: 'Files.h' file not found
#include <Files.h>
         ^
1 error generated.
make[1]: *** [Catalog.o] Error 1

What version of p5-macosx-file are you trying to build? I fixed this issue in r130542.

I'm sorry then, I didn't notice the fix (there were too many commits to the perl ports to check them all). I was merely documenting all the failures on the buildbot (see comment:29:ticket:46322), but that was a few days before the commit you are quoting.

Since you were already working with that port and testing it, can you please also check compatibility with 5.18 and 5.20 and add those two subports?

comment:5 in reply to:  4 ; Changed 10 years ago by larryv (Lawrence Velázquez)

Replying to mojca@…:

Since you were already working with that port and testing it, can you please also check compatibility with 5.18 and 5.20 and add those two subports?

Sure, I’ll look into this shortly.

comment:6 in reply to:  5 Changed 10 years ago by larryv (Lawrence Velázquez)

I added the subports in r131232, but the tests fail to run (#46461).

comment:7 Changed 10 years ago by mojca (Mojca Miklavec)

Description: modified (diff)

comment:8 Changed 10 years ago by larryv (Lawrence Velázquez)

I’ve gotten p5-mac-carbon to build, but there are still some kinks.

comment:9 Changed 10 years ago by dbevans (David B. Evans)

Cc: pixilla@… ryandesign@… added; pixilla@… removed

In spite of Larry's valiant attempts, if you believe the documentation, p5-mac-carbon dates from pre-OSX times and portions of the provided API only work on MacOS while the portion that works with OSX is definitely 32bit only and they say needs to run on a 32 bit perl or at least a universal one that supports 32 bit platforms. Looks like development stalled trying to port it to 10.6 some time in 2009. Comments/bugs on CPAN note build problems that remain unaddressed and recommend removal from CPAN.

Given these issues, I'm sceptical of the utility of the provided API on OSX and the value of resurrecting it and would vote for removing this port and its dependents as being outdated and obsolete. We have plenty of other ports to maintain,

On the other hand, I recognize that there is a community that uses MacPorts on older 32 bit machines, so if someone from that community who finds them useful would step up to maintain these, that might be a different situation.

I see pixilla is the maintainer of dependent p5-mac-growl. Perhaps he would be willing to maintain the lot.

comment:10 Changed 10 years ago by dbevans (David B. Evans)

Cc: pixilla@… added; pixilla@… removed

comment:11 in reply to:  9 Changed 10 years ago by larryv (Lawrence Velázquez)

Replying to devans@…:

while the portion that works with OSX is definitely 32bit only and they say needs to run on a 32 bit perl or at least a universal one that supports 32 bit platforms

Yes, this preventing the tests from running at all. I haven’t yet found a way to force the tests to run under a 32-bit Perl.

I admit that I’m pretty much doing this for fun. I’d have no objections to removing them all.

comment:12 Changed 10 years ago by dbevans (David B. Evans)

pixilla has dropped maintainership of p5-mac-growl in r131395, so I guess that makes 4-0 for dropping p5-mac-carbon and dependents.

Looking at the documentation for p5-macosx-file

As of Mac OS X v10.4 (Tiger), most of these operations with resource fork are supported by the ordinary (cp|mv|rsync). If you are looking for psync, you may as well consider using rsync -E instead.

Based on this and its 32 bit nature, I would nuke this one too except that PsyncX, maintained by ryandesign depends on it. Are you still using this, Ryan?

comment:13 Changed 10 years ago by dbevans (David B. Evans)

p5-mac-carbon and dependents, obsolete ports deleted in r131409.

comment:14 Changed 10 years ago by cooljeanius (Eric Gallager)

I still work on code that depends on 32-bit Carbon, albeit not exactly these perl things though... I find Carbon much easier to work with because I only know C and not Objective-C (OOP makes no sense to me in general), so it's a real shame to see it (Carbon) being moved from the "deprecation" stage of its life cycle to the "complete removal" stage... although I suppose it's inevitable...

comment:15 Changed 10 years ago by cooljeanius (Eric Gallager)

Cc: egall@… added

Cc Me!

comment:16 Changed 10 years ago by mojca (Mojca Miklavec)

Nobody removed Carbon. At least not yet. But I find carbon-based Perl on the very edge of usefulness. If you need Carbon-based Perl ports, let us know.

comment:17 in reply to:  14 Changed 10 years ago by larryv (Lawrence Velázquez)

Replying to egall@…:

I find Carbon much easier to work with because I only know C and not Objective-C

For your own benefit, you really really should be spending your energy getting off Carbon. It’s dead and buried in everything but name.

comment:18 Changed 10 years ago by mojca (Mojca Miklavec)

Resolution: fixed
Status: newclosed

comment:19 in reply to:  16 Changed 6 months ago by barracuda156

Replying to mojca:

Nobody removed Carbon. At least not yet. But I find carbon-based Perl on the very edge of usefulness. If you need Carbon-based Perl ports, let us know.

Yeah, we need :)

Note: See TracTickets for help on using tickets.