On Jan 16, 2010, at 16:35, Scott Haneda wrote:

> On Jan 15, 2010, at 6:18 PM, Ryan Schmidt wrote:
> 
>> On Jan 15, 2010, at 19:03, Scott Haneda wrote:
>> 
>>> I am trying to get mcrypt universal working, but hit an error:
>> 
>> It builds fine universal here. Presumably one of the dependencies is not 
>> built universal on your system.
> 
> Can you tell me how to list all the dependencies, not just the ones for 
> mcrypt, but those for the dependencies of the dependencies of mcrypt.  
> 
> I suspect there is no simple way to get that list.

The port-rdeps script provides that list.

http://trac.macports.org/browser/contrib/port-rdeps/

Unfortunately nobody has yet created a port for that script, so it must be 
installed manually.

Here is the output of "port-rdeps -r php5-mcrypt" on my system:


Dependencies of php5-mcrypt:
  php5
    gsed
      gettext
        libiconv
          gperf
        ncurses
          ncursesw
        expat
    libtool
      automake
        perl5
          perl5.8
        autoconf
          m4
          help2man
            p5-locale-gettext
    libxml2
      zlib
    bzip2
    mhash
    pcre
      readline
    apache2
      apr
      apr-util
        db46
        sqlite3
      openssl
    pkgconfig
    autoconf213
      gawk
  libmcrypt



As of MacPorts 1.8.0, probably the easiest way to install php5-mcrypt universal 
when some of its dependencies aren't installed universal is as follows:


1. Install php5-mcrypt non-universal:

sudo port install php5-mcrypt


2. Upgrade php5-mcrypt and any necessary dependencies to universal:

sudo port upgrade --enforce-variants php5-mcrypt +universal



> I am a little confused with this:
>    $port dependents php5-mcrypt
>    php5-mcrypt has no dependents!
> 
> But the Portfile shows:
>    depends_lib-append      port:libmcrypt \
>                            port:libtool

Correct: php5-mcrypt has no dependents (ports that depend on php5-mcrypt) but 
it has dependencies (ports php5-mcrypt depends on). You can see the latter with:

port deps php5-mcrypt

Dependents and dependencies are different (opposite) things.


> Is it a good idea to maybe just adjust my conf file for MacPorts to just 
> built everything as a 4way UB?

There's probably no reason to build 4-way universal, and not all ports will 
support it; particularly ports using the muniversal portgroup often have 
trouble cross-compiling. If you're on Intel, there's probably no need to build 
for PowerPC and vice versa. On Snow Leopard there is a good reason to build 
2-way universal for x86_64 and i386 because ports build 64-bit by default but 
some ports can only be built 32-bit so the only way to use both kinds in the 
same prefix is to install as many ports as possible 2-way universal. On Leopard 
which builds 32-bit by default it can still be advantageous to build 2-way 
x86_64 i386 universal because 64-bit software on Intel can be faster and can 
address more memory.


> Where can I read more about how to do this? I think I just need to add 
> +universal to all the ports I install, but if there is a way to do so without 
> remembering to add that to every port install command, it would be nice.

Set universal_archs as desired in macports.conf.

Add "+universal" in variants.conf.


> How do I adjust portfiles to be able to support +universal?
> 
>    $port info php5-mcrypt
>    Variants:             debug, universal
> 
> I do not see anything in that Portfile that has debug or universal.  This is 
> confusing to me, as when I compare that to a simple Portfile of my own, 
> memtester:
> 
>    $port info memtester
>    memtester @4.1.2 (sysutils)
> 
>    Description:          A userspace utility for testing the memory subsystem 
> for 
>                          faults.
>    Homepage:             http://pyropus.ca/software/memtester/
> 
>    Platforms:            darwin
>    License:              unknown
> 
> I am not sure how you get universal and debug into your Portfile, since there 
> is no explicit code that is offering it.

MacPorts provides a universal variant automatically for all ports that don't 
request otherwise. It may not work in all ports. Ports in which it does not 
work should use "universal_variant no" to turn it off, or override the 
universal variant and make it work. Some portgroups provide their own universal 
variants, like the cmake and xcode portgroups. Your port memtester uses 
"use_configure no"; the default universal variant assumes configure-based 
programs, so if you turn off the configure phase, MacPorts turns off the 
universal variant automatically; see:

http://trac.macports.org/ticket/12170

As to why php5-mcrypt has a debug variant, that's added by the php5extension 
portgroup; for why, see:

http://trac.macports.org/ticket/22662


_______________________________________________
macports-users mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macports-users

Reply via email to