purr-data merge requestshttps://git.purrdata.net/jwilkes/purr-data/-/merge_requests2023-01-03T22:39:45Zhttps://git.purrdata.net/jwilkes/purr-data/-/merge_requests/842Apple Silicon support2023-01-03T22:39:45ZAlbert GräfApple Silicon supportI found that previous Intel builds on macOS did not work on new Apple Silicon (M1, M2) Macs, mainly due to GUI issues, and the source wouldn't compile on my M1 Air either, so I set out to do a proper port which includes the following com...I found that previous Intel builds on macOS did not work on new Apple Silicon (M1, M2) Macs, mainly due to GUI issues, and the source wouldn't compile on my M1 Air either, so I set out to do a proper port which includes the following compilation fixes and updates required to make Purr Data work on that platform:
- nw.js updated to 0.71.0 (macOS only)
- bundled portaudio updated to the latest stable release ([19.7.0](https://github.com/PortAudio/portaudio/releases/tag/v19.7.0))
- fixes to scripts and Makefiles required to make the source compile properly on Apple Silicon Macs
- backported some macOS arm64 related fixes from vanilla
**NOTES:**
- The full native arm64 build doesn't work yet. It crashes in seemingly random places during launch. I haven't been able to sort those out yet, maybe someone else who is more proficient with macOS arm64 will be more lucky.
- **For the time being, use the Intel build from this branch instead, it works fine on arm64 via Rosetta 2.** The native arm64 _light_ build seems to work fine, too.
- While nw.js 0.71.0 appears to work fine on macOS, I couldn't get it to work properly on Linux, and thus the Linux and Windows builds still use the tried and tested 0.28.3. (Slight version bump from 0.28.1 to 0.28.3 there, which is the final point release in the 0.28 series which we've been using for some years now.)
- There's no official native macOS arm64 build of nw.js yet, so we use the Intel one, which reportedly works fine via Rosetta 2.
Tested on macOS (Intel Big Sur 11.7.2, M1 Ventura 13.1) with the latest Xcode and Homebrew, as well as on Linux and Windows.
Test builds of this branch (at rev. e0562d0bdbfaf5ddd8bb9a668d69c52293c2ae3e) for macOS (full Intel build, as well as arm64 light) and Windows can be found on my university seafile: https://seafile.rlp.net/d/befe61ce07d34d36b5d6/
Test builds of the same revision for various Linux systems can be found on the OBS: https://build.opensuse.org/package/show/home:aggraef:test/purr-data
See below for some notes on how to do an Intel build on Mac M1/M2, if you want to roll your own.Jonathan WilkesJonathan Wilkeshttps://git.purrdata.net/jwilkes/purr-data/-/merge_requests/766debuild: Adjust the arm64 build to use Maurits Lamers' nwjs package.2021-04-19T10:45:29ZAlbert Gräfdebuild: Adjust the arm64 build to use Maurits Lamers' nwjs package.This is a followup to !732 which further adjusts our debuild machinery so that arm64 packages can now be built successfully on the OBS. An exemplary Debian 10 arm64 build is available [here](https://build.opensuse.org/package/show/home:a...This is a followup to !732 which further adjusts our debuild machinery so that arm64 packages can now be built successfully on the OBS. An exemplary Debian 10 arm64 build is available [here](https://build.opensuse.org/package/show/home:aggraef:purr-data-git/purr-data) (go to "Download package", choose "Debian" and then follow the instructions; or you can just grab the arm64.deb package right here: https://download.opensuse.org/repositories/home:/aggraef:/purr-data-git/Debian_10/arm64/purr-data_2.16.0+git4826+48ca6e4d-1_arm64.deb).
This build uses the only arm64 build of nw.js that seems to be available *anywhere* right now, which is a build of nw.js 0.23.7 done some time ago by Maurits Lamers, available here: https://github.com/LeonardLaszlo/nw.js-armv7-binaries/releases/tag/v0.23.7
I haven't tested the resulting binary yet. But at least it builds on the OBS now. I invite anyone with an arm64 Debian 10 system to give it a go.Jonathan WilkesJonathan Wilkeshttps://git.purrdata.net/jwilkes/purr-data/-/merge_requests/732Arm64 Debian build fixes2021-04-14T17:22:31ZAlbert GräfArm64 Debian build fixesThe goal of this MR is to have Purr build correctly on the OBS for arm64 Debian systems (Buster a.k.a. Debian 10 for now), so that it can be run on Chromebooks with a true 64 bit Linux subsystem, but it's not quite there yet. The problem...The goal of this MR is to have Purr build correctly on the OBS for arm64 Debian systems (Buster a.k.a. Debian 10 for now), so that it can be run on Chromebooks with a true 64 bit Linux subsystem, but it's not quite there yet. The problem is that we don't have any proper arm64/aarch64 packages for nw.js yet, so we're using Leonard Laszlo's armv7 (32 bit) packages instead.
**What works:** The package builds correctly and all regression tests pass. So everything but the gui works.
**What doesn't work yet:** The final packaging fails during the `dpkg-shlibdeps` phase, when dpkg detects that it can't find the 32 bit system libraries needed to run nw.js.
I guess that the package would work fine if I knew what 32 bit library dependencies are needed to make the armv7 version of nw.js work on an arm64 Debian system.
Jonathan, can you help with this? I know that you're running Purr on your Chromebook, is that a 32 or 64 bit Debian that you're running there? Maybe what I'm trying to do just isn't possible, so running Purr only works on 32 bit arm Debian systems for now?Jonathan WilkesJonathan Wilkes