Dear Matt,

I’m the official MacPorts maintainer for Demeter. I am an amateur at this (i.e., at Ports), but I do have notes somewhere on how to update the port file (and, indeed, where to find it in the first place!).

Concerning the long list of dependencies: I was unaware of the size of this list. I agree. It sounds crazy to think that we need THREE non-clang compilers to build demeter. I know the fellow who was the previous maintainer, and he has a bit of a superstitious belief in the powers of gcc. Perhaps he imposed this belief unnecessarily on us all?

It sounds to me like you understand the internals of what demeter uses and how, much much better than I do. Let me suggest that you either contact me privately OR file a trac ticket at MacPorts about this. Either way, include details of what you think plausibly might be false dependencies. Of course, we’ll also want to add the new Perl dependencies that you pointed out.  Perhaps then I can patch the port file and get your assistance in testing it in some way? Once we have a patch we like, I don’t have the powers to commit it to the MacPorts repository directly, but I can certainly make a request for a commit (they are pretty fast and responsive about that).

I’d like to comment also on the time it takes to install MacPorts. The whole MacPorts concept supports installing from source AND installing pre-built binaries. The catch (as I understand it) is that the server resources that they use to build and serve the binaries are donated by a large corporation (one with a strong interest in selling more Macintosh computers, naturally). Thus the open-source Ports team cannot simply make the binary “buildbots” appear at will. An early adopter of an OS X version has to install every port, even the incredibly complex ones, from source. Again, I could be wrong, but I think that El Capitan is still in this state. See https://trac.macports.org/ticket/48609 and http://macports-dev.macosforge.narkive.com/tRq2luOR/el-capitan-buildbot for some additional info.

Now, this is not to say that Homebrew is a worse solution than MacPorts. I have no basis for comparison (though here is one clue: many packages that I use within the Julia language depend on Homebrew for further dependencies, and I have noticed that they manage to Just Work). But I did want to defend MacPorts from the implied charge that it will always take all users ten hours to install a working system. If you can find a Homebrew expert to work with and develop a Demeter solution, that’s great. Here in my group at NIST, we use MacPorts for so many things that I’m sure we’ll continue to maintain the port file for the foreseeable future.

Best wishes,
Joe Fowler



On Nov 13, 2015, at 11:00 AM, <ifeffit-request@millenia.cars.aps.anl.gov> <ifeffit-request@millenia.cars.aps.anl.gov> wrote:



From: Matt Newville <newville@cars.uchicago.edu>
Subject: Re: [Ifeffit] Demeter under El Capitan
Date: November 13, 2015 at 9:34:31 AM MST
To: XAFS Analysis using Ifeffit <ifeffit@millenia.cars.aps.anl.gov>
Reply-To: XAFS Analysis using Ifeffit <ifeffit@millenia.cars.aps.anl.gov>


Hi George, All, 

Some progress: 

The MacPorts folks fixed the problem with PDL so that a 'port selfupdate' will then allow PDL to build and then install.  With that, Demeter then installs, though there are some warnings about missing dependencies (Heap, XMLRPC::Lite, File::Slurp::Tiny, Encoding::FixLatin::XS) which I'm guessing are relatively new dependencies, not included in the Portfile.    I installed these missing perl modules using the 'perl -MCPAN -e shell'

The basic Athena and Hephaestus and Artemis run OK, though I haven't done exhaustive testing.  I did have to change the default gnuplot terminal from Qt to wxt for each of Athena and Artemis (I did not try plotting with Hephaestus).  The settings page for Artemis is not easy to find --  it might be that the multiple-small-screen layout is difficult to map to the Mac window styling.

As for Xorg vs XQuartz:  The correct answer should be "neither".  Neither Demeter nor gnuplot actually use X11 at all -- both are using wxWidgets, which does not use X11 on Mac.    Similarly, I cannot understand the dependency on all of llvm, gcc4.9, and gcc5.2 from MacPorts.  Most of the code even for MacPorts appears to be built with the *system* (ie, Apple-supplied) clang compiler.   I can believe it "necessary" (well, really, "easiest") to build all of gcc to get gfortran, but not twice.    And, yeah, if you have to install from source, it sort of matters.

I do not know where to update the MacPorts Portfile.  All links to the actual portfile scripts seem broken to me, but maybe they're available someplace.

--Matt