MacPorts XAFS software: announcing a Port for Larch; and do we actually need Demeter on Macs?
Hello XAFS fans: This note is about the Demeter package on MacPorts. If you don’t use Demeter through MacPorts on a Mac, skip this note. I’m the MacPorts “maintainer” of the ports demeter and ifeffit. They have been not installable or upgradeable for something like a year, because of new releases of … something? Probably either Mac OS X, and/or Apple's Xcode development system. I’ve made a ton of progress on my big goal of restoring demeter to life, but I cannot get all the way to finish the project. I have to say here that I’m a poor choice to maintain these ports. I barely understand how MacPorts works, and I don’t understand or use Perl at all. I am not even really an x-ray scientist—I develop superconducting x-ray sensors in a team at NIST, and I happened to be a collaborator of the previous maintainer when he left the field 6 or 8 years ago. I worked on the problem in two parallel paths. One was to create an official port for the Python package Larch. Late last month this was complete, so you can do a “sudo port install py39-xraylarch” and have it. (Replace “py39” with “py38” or “py37” if you use Python 3.8/3.7.) This required creating about a dozen new ports for Larch’s dependencies. (Actually, I know a ton more about how MacPorts works than I did six weeks ago.) Some new ports that might be of interest to this community include: * py39-pymatgen * py39-peakutils * py39-xraydb * py39-spglib * py39-xraylarch My other path was to track down and fix the problem that prevented ifeffit from compiling. (Recall that this package is unmaintained since 2014. See https://github.com/newville/ifeffit/). It looks like Xcode’s C compiler recently turned the “implicit function warning” into an error. A few hours ago, MacPorts accepted my proposed patches, so at least ifeffit should be installable as a port again. Unfortunately, demeter still won’t install completely, owing to problems in certain Perl-based ports that it depends upon, like p5.30-wx. That problem is so far from my expertise that I am completely stuck. I had hoped that if I got ifeffit to work, demeter would follow, but I was wrong. There are four strategies I can imagine from here: 1. Declare the ports ifeffit and demeter to be obsolete. Mac users will need to figure out other ways to do what Athena and Artemis do. 2. Wait until Perl experts fix the Perl dependencies (expect it to take months or more), then I fix demeter. 3. Modify/migrate Demeter so that Athena and Artemis rely completely on Larch and not at all on ifeffit. 4. Ask this mailing list for advice. I don’t know what strategy #3 would entail—again, I know zero Perl and don’t use this software. Demeter’s author told me he doesn’t have much interest in this upgrade. All I can really support alone is strategy #1 or #2: obsoleting or waiting. And that’s why I’m writing. On one side, does anyone care if Athena/Artemis become unavailable through MacPorts? So, does anyone object to path #1? On the other, does anyone here have better ideas? Best wishes, Joe Fowler NIST Boulder Labs
Hi Joseph, First, thanks very much for doing this. I know that it is a lot of work, and you really only hear when it doesn't work perfectly. So, thanks! Second, please keep working on those TES detectors! We need those too! On Demeter: I sort of think the reality is that it is just too difficult to maintain Demeter running natively on MacOS. If MacPorts can't do it, it probably cannot be done. Larch XAS Viewer might be a viable alternative (at this point, I would say calling anything that XAS Viewer does not do that Demeter does is probably a bug or missing feature in XAS Viewer, or at least fair to discuss in those terms), or running Demeter on Windows (either a different machine or in a virtualization tool like Parallels) is a reasonable expectation. So, I would probably lean toward your option #1: declare these ports dead. I doubt that #2 (wait for Perl....) is likely to be any better over the next couple of years compared to the past couple of years. Again, thanks, On Thu, Nov 11, 2021 at 9:18 AM Fowler, Joseph W. (Assoc) < joe.fowler@nist.gov> wrote:
Hello XAFS fans:
This note is about the Demeter package on MacPorts. If you don’t use Demeter through MacPorts on a Mac, skip this note.
I’m the MacPorts “maintainer” of the ports demeter and ifeffit. They have been not installable or upgradeable for something like a year, because of new releases of … something? Probably either Mac OS X, and/or Apple's Xcode development system. I’ve made a ton of progress on my big goal of restoring demeter to life, but I cannot get all the way to finish the project.
I have to say here that I’m a poor choice to maintain these ports. I barely understand how MacPorts works, and I don’t understand or use Perl at all. I am not even really an x-ray scientist—I develop superconducting x-ray sensors in a team at NIST, and I happened to be a collaborator of the previous maintainer when he left the field 6 or 8 years ago.
I worked on the problem in two parallel paths. One was to create an official port for the Python package Larch. Late last month this was complete, so you can do a “sudo port install py39-xraylarch” and have it. (Replace “py39” with “py38” or “py37” if you use Python 3.8/3.7.) This required creating about a dozen new ports for Larch’s dependencies. (Actually, I know a ton more about how MacPorts works than I did six weeks ago.) Some new ports that might be of interest to this community include:
- py39-pymatgen - py39-peakutils - py39-xraydb - py39-spglib - py39-xraylarch
My other path was to track down and fix the problem that prevented ifeffit from compiling. (Recall that this package is unmaintained since 2014. See https://github.com/newville/ifeffit/). It looks like Xcode’s C compiler recently turned the “implicit function warning” into an error. A few hours ago, MacPorts accepted my proposed patches, so at least ifeffit should be installable as a port again.
Unfortunately, demeter still won’t install completely, owing to problems in certain Perl-based ports that it depends upon, like p5.30-wx. That problem is so far from my expertise that I am completely stuck. I had hoped that if I got ifeffit to work, demeter would follow, but I was wrong.
There are four strategies I can imagine from here:
1. Declare the ports ifeffit and demeter to be obsolete. Mac users will need to figure out other ways to do what Athena and Artemis do. 2. Wait until Perl experts fix the Perl dependencies (expect it to take months or more), then I fix demeter. 3. Modify/migrate Demeter so that Athena and Artemis rely completely on Larch and not at all on ifeffit. 4. Ask this mailing list for advice.
I don’t know what strategy #3 would entail—again, I know zero Perl and don’t use this software. Demeter’s author told me he doesn’t have much interest in this upgrade. All I can really support alone is strategy #1 or #2: obsoleting or waiting.
And that’s why I’m writing. On one side, does anyone care if Athena/Artemis become unavailable through MacPorts? So, does anyone object to path #1? On the other, does anyone here have better ideas?
Best wishes, Joe Fowler NIST Boulder Labs _______________________________________________ Ifeffit mailing list Ifeffit@millenia.cars.aps.anl.gov http://millenia.cars.aps.anl.gov/mailman/listinfo/ifeffit Unsubscribe: http://millenia.cars.aps.anl.gov/mailman/options/ifeffit
--Matthew Newville <newville at cars.uchicago.edu> 630-327-7411
participants (2)
-
Fowler, Joseph W. (Assoc)
-
Matt Newville