Hi, just made a fresh install of Pd in a new partition with macOS 12.3.1 (monterey) installed. My intent is to try and compile externals for apple silicon. I have a test update already up (not to be used). Anyway, I opened Pd and tried to use deken to download else and got an "Application Error" window/message, which says:
"No application knows how to open URL file:///Users/porres/Documents/Pd/externals/else%5Bv1.0-0rc1-test_with_live_electronics_tutorial%5D(Darwin-amd64-32).dek (Error Domain=NSOSStatusErrorDomain Code=-10814 "kLSApplicationNotFoundErr: E.g. no application claims the file" UserInfo={_LSLine=1489, _LSFunction=runEvaluator}). No application knows how to open URL file:///Users/porres/Documents/Pd/externals/else%5Bv1.0-0rc1-test_with_live_electronics_tutorial%5D(Darwin-amd64-32).dek (Error Domain=NSOSStatusErrorDomain Code=-10814 "kLSApplicationNotFoundErr: E.g. no application claims the file" UserInfo={_LSLine=1489, _LSFunction=runEvaluator}). while executing "exec sh -c [format "open '%s'" $filename]" (procedure "pd_menucommands::menu_openfile" line 3) invoked from within "pd_menucommands::menu_openfile $fullpkgfile" (procedure "::deken::utilities::extract" line 60) invoked from within "::deken::utilities::extract $installdir $filename $fullpkgfile $keep" (procedure "::deken::install_package" line 38) invoked from within "::deken::install_package ${fullpkgfile} ${filename} ${installdir} ${::deken::keep_package}" (procedure "::deken::clicked_link" line 37) invoked from within "::deken::clicked_link { http://puredata.info/Members/porres/software/else/1.0-0rc1-test_with_live_el..... ." (command bound to event)"
See algo the attached log.
Deken also gives me an error, it says:
[deken] Unable to extract package automatically. Please perform the following steps manually:
/Users/porres/Documents/Pd/externals/elsev1.0-0rc1-test_with_live_electronics_tutorial.dek. You might need to change the file-extension from .dek to .zip 2. Copy the contents into /Users/porres/Documents/Pd/externals. 3. Remove /Users/porres/Documents/Pd/externals/elsev1.0-0rc1-test_with_live_electronics_tutorial.dek. (optional)
In my download folder I have an empty " *elsev1.0-0rc1-test_with_live_electronics_tutorial.dek*" file of 0 bytes.
same happened for cyclone/zexy and any other download attempt.
I'm writing to the list because I think this should have come up before if this is a real issue, I can't be the first one facing it, anyway, I guess I should also open an issue...
By the Way, the default font for the console was 10 in this install and I really think it should be "12" and I'll open a ticket for that.
cheers
hmmm, I see now the same problem in my old mac with mojave... so yeah, might be a server thing
Em sáb., 16 de abr. de 2022 às 19:12, Alexandre Torres Porres < porres@gmail.com> escreveu:
Hi, just made a fresh install of Pd in a new partition with macOS 12.3.1 (monterey) installed. My intent is to try and compile externals for apple silicon. I have a test update already up (not to be used). Anyway, I opened Pd and tried to use deken to download else and got an "Application Error" window/message, which says:
"No application knows how to open URL file:///Users/porres/Documents/Pd/externals/else%5Bv1.0-0rc1-test_with_live_electronics_tutorial%5D(Darwin-amd64-32).dek (Error Domain=NSOSStatusErrorDomain Code=-10814 "kLSApplicationNotFoundErr: E.g. no application claims the file" UserInfo={_LSLine=1489, _LSFunction=runEvaluator}). No application knows how to open URL file:///Users/porres/Documents/Pd/externals/else%5Bv1.0-0rc1-test_with_live_electronics_tutorial%5D(Darwin-amd64-32).dek (Error Domain=NSOSStatusErrorDomain Code=-10814 "kLSApplicationNotFoundErr: E.g. no application claims the file" UserInfo={_LSLine=1489, _LSFunction=runEvaluator}). while executing "exec sh -c [format "open '%s'" $filename]" (procedure "pd_menucommands::menu_openfile" line 3) invoked from within "pd_menucommands::menu_openfile $fullpkgfile" (procedure "::deken::utilities::extract" line 60) invoked from within "::deken::utilities::extract $installdir $filename $fullpkgfile $keep" (procedure "::deken::install_package" line 38) invoked from within "::deken::install_package ${fullpkgfile} ${filename} ${installdir} ${::deken::keep_package}" (procedure "::deken::clicked_link" line 37) invoked from within "::deken::clicked_link { http://puredata.info/Members/porres/software/else/1.0-0rc1-test_with_live_el..... ." (command bound to event)"
See algo the attached log.
Deken also gives me an error, it says:
[deken] Unable to extract package automatically. Please perform the following steps manually:
- Unzip
/Users/porres/Documents/Pd/externals/elsev1.0-0rc1-test_with_live_electronics_tutorial.dek. You might need to change the file-extension from .dek to .zip 2. Copy the contents into /Users/porres/Documents/Pd/externals. 3. Remove /Users/porres/Documents/Pd/externals/elsev1.0-0rc1-test_with_live_electronics_tutorial.dek. (optional)
In my download folder I have an empty " *elsev1.0-0rc1-test_with_live_electronics_tutorial.dek*" file of 0 bytes.
same happened for cyclone/zexy and any other download attempt.
I'm writing to the list because I think this should have come up before if this is a real issue, I can't be the first one facing it, anyway, I guess I should also open an issue...
By the Way, the default font for the console was 10 in this install and I really think it should be "12" and I'll open a ticket for that.
cheers
Hi, I have fat binaries for a test release update of else, it should work on apple silicon macs running Pd compiled for arm that loads externals for arm. Can anyone test these? I don't have a silicon mac.
Download from here since deken seems to be down. https://github.com/porres/pd-else/releases/tag/v1.0-rc1-test
Em sáb., 16 de abr. de 2022 às 21:07, Alexandre Torres Porres < porres@gmail.com> escreveu:
Hi, I have fat binaries for a test release update of else, it should work on apple silicon macs running Pd compiled for arm that loads externals for arm. Can anyone test these? I don't have a silicon mac.
Download from here since deken seems to be down. https://github.com/porres/pd-else/releases/tag/v1.0-rc1-test
So, someone on facebook said he couldn't load the externals. The usual ~load _object: Symbol "else_setup" not found~ is given. He also said he had to run *sudo spctl --master-disable* to allow it to load, no idea what that means, but doesn't look good as well.
The fat binaries run fine in my mac intel...
Let me tell you my process.
Hi, I now have a machine with Monterey and XCode 13 installed and I want to build fat binaries for my externals. I still have a mac intell by the way.
Em ter., 20 de out. de 2020 às 17:36, Alexandre Torres Porres < porres@gmail.com> escreveu:
I did *make install objectsdir=../ extension=d_fat *and pd-lib-builder generated binaries with that extension.
Before, I was using the above command to build fat binaries with pdlibbuilder for both 32/64 bits (taken from some other email to this list). Today I installed Monterey and XCode 13 on a mac intel and tried that command but got an error.
porres@Alexandres-MacBook-Pro pd-else copy % make install objectsdir=../ extension=d_fat
++++ info: using Makefile.pdlibbuilder version 0.6.0
++++ info: making target install in lib else
++++ info: installpath is '..//else'
++++ info: linking objects in timed.gate~.d_fat for lib else
cc -undefined suppress -flat_namespace -bundle -arch i386 -arch x86_64 -mmacosx-version-min=10.6 -o timed.gate~.d_fat Classes/Source/timed.gate~.o -lc
ld: warning: The i386 architecture is deprecated for macOS (remove from the Xcode build setting: ARCHS)
ld: warning: ignoring file Classes/Source/timed.gate~.o, building for macOS-i386 but attempting to link with file built for unknown-x86_64
ld: warning: ignoring file /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/libSystem.tbd, missing required architecture i386 in file /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/libSystem.tbd (3 slices)
ld: warning: ignoring file /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/libc.tbd, missing required architecture i386 in file /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/libc.tbd (3 slices)
ld: dynamic main executables must link with libSystem.dylib for architecture i386
clang: *error: **linker command failed with exit code 1 (use -v to see invocation)*
make: *** [timed.gate~.d_fat] Error 1
porres@Alexandres-MacBook-Pro pd-else copy %
I understood it tried to compile for 32/64 bits t even possible to create a single fat binary for all the 3 architectures? It complained that *The i386 architecture is deprecated for macOS*, so I guess I can't build it anymore for it with XCode 13, right? I wondered if I could build a fat binary for 32/64 bits and arm, but I can forget about it, right?
Well, I then tried compiling with pdlibbuilder like this: "make install objectsdir=../ arch="arm64 x86_64 i386" extension=d_fat" didn't work...
It didn't work either... then I tried.
*make install objectsdir=../ arch="arm64 x86_64" extension=d_fat*
and it worked, it did build, but I got stuff like
++++ info: linking objects in timed.gate~.d_fat for lib else cc -undefined suppress -flat_namespace -bundle -arch arm64 -arch x86_64 -mmacosx-version-min=10.6 -o timed.gate~.d_fat Classes/Source/timed.gate~.o -lc *ld: warning: ignoring file Classes/Source/timed.gate~.o, building for macOS-arm64 but attempting to link with file built for unknown-x86_64* ++++ info: linking objects in trig.delay2~.d_fat for lib else
I was worried from the warning *attempting to link with file built for unknown-x86_64* would mean it would work for apple silicon but probably not for mac intel, but it worked for mac intel, so I thought it'd work just fine for apple silicon as well, but it didn't!
I couldn't upload to deken because the server is down, but I made deken package the external, it did create a deken file named *else[v1.0-0rc1-test_with_live_electronics_tutorial]* *(Darwin-amd64-32)(Darwin-arm64-0)**.dek*, so that seems ok. Nonetheless, I got some warnings in deken, probably for all objects, which said, for example:
OUCH: couldn't detect float-size for 'else/asr~.d_fat'
and no default set, assuming None
use '--default-floatsize <N>' to override)
I didn't bother trying to explicitly define a float size because I wasn't uploading it to deken... and this wouldn't change my build anyway...
So, I'm really lost here and I don't know what I should do to build a proper fat binary...
As for not being able to create a fat binary that also includes *i386*, I guess we can forget about it, for deken at least. I can still build for it and keep that on my release page on github if needed, but it doesn't seem like something I should bother that much these days (I'm not even mentioning ppc).
Anyway, any hints on what I can do to build it properly? And also maybe avoid the needed *sudo spctl --master-disable *command (whatever that is)?
Thanks
Am 17. April 2022 04:26:56 MESZ schrieb Alexandre Torres Porres porres@gmail.com:
*make install objectsdir=../ arch="arm64 x86_64" extension=d_fat*
and it worked, it did build, but I got stuff like
++++ info: linking objects in timed.gate~.d_fat for lib else cc -undefined suppress -flat_namespace -bundle -arch arm64 -arch x86_64 -mmacosx-version-min=10.6 -o timed.gate~.d_fat Classes/Source/timed.gate~.o -lc *ld: warning: ignoring file Classes/Source/timed.gate~.o, building for macOS-arm64 but attempting to link with file built for unknown-x86_64* ++++ info: linking objects in trig.delay2~.d_fat for lib else
Run 'make clean' first. Most likely you have leftover .o files (containing the wrong architectures) from previous builds.
mfg.sfg.jfd IOhannes
Em dom., 17 de abr. de 2022 às 01:50, IOhannes m zmölnig zmoelnig@iem.at escreveu:
Most likely you have leftover .o files (containing the wrong architectures) from previous builds.
Yup, something like that. Tried again from scratch and it worked :) at least the same guy on the facebook group said it works now! I also didn't get weird or alarming warnings. Deken also packages it correctly without complaining (but I can't upload it yet).
As for the '*spctl --master-disable*' command, I hear it disables Gatekeeper, the thing that keeps unsigned or whatever apps from running. I wonder if I can do anything about it, huh?
I guess I can now ask for other people to test this again :) check -- https://github.com/porres/pd-else/releases/tag/v1.0-rc1-test (I have a new upload "else-fat-macos.zip").
Thanks!
Em sáb., 16 de abr. de 2022 às 23:26, Alexandre Torres Porres < porres@gmail.com> escreveu:
I wondered if I could build a fat binary for 32/64 bits and arm, but I can forget about it, right?
So, yeah, doesn't seem possible, but I'm still not sure yet, and other than, it seems I can't mix in the download a fat binary (with 64/arm) along with some other binary for 32 bits (darwin or 'd_i386'). If I'm using Pd 32 bits it won't be able to load the correct one as it tries to load the fat one and fails!
I guess we can fix this by maybe changing the order of how Pd searches for the binaries (trying the fat one for last), but the problem is tha if I want to ship for the three architectures I have to use 3 separate binaries.
A fat one for the three would be ideal and if I choose to use fat I have to eliminate support for 32 bits or have it as a separate download in deken (not ideal as well, since ELSE is quite huge and takes a lot of space).
Anyway, what do you people have to say?
I think I'm just gonna let 32 bits go and provide it as a download on my repository under "releases", that should do it, right? What do you think?
Cheers
On 4/17/22 19:14, Alexandre Torres Porres wrote:
Em sáb., 16 de abr. de 2022 às 23:26, Alexandre Torres Porres < porres@gmail.com> escreveu:
I wondered if I could build a fat binary for 32/64 bits and arm, but I can forget about it, right?
So, yeah, doesn't seem possible, but I'm still not sure yet, and other than, it seems I can't mix in the download a fat binary (with 64/arm) along with some other binary for 32 bits (darwin or 'd_i386'). If I'm using Pd 32 bits it won't be able to load the correct one as it tries to load the fat one and fails!
you can always create fat binaries manually using 'lipo'.
I think I'm just gonna let 32 bits go and provide it as a download on my repository under "releases", that should do it, right? What do you think?
which is probably also a viable alternative.
gfmasrd IOhannes
On 4/17/22 19:14, Alexandre Torres Porres wrote:
So, yeah, doesn't seem possible, but I'm still not sure yet, and other than, it seems I can't mix in the download a fat binary (with 64/arm) along with some other binary for 32 bits (darwin or 'd_i386'). If I'm using Pd 32 bits it won't be able to load the correct one as it tries to load the fat one and fails!
hmm.
i guess there's two separate bugs here
extensions (.d_i386
), and only then it should fall back to loading the
fat binary (.d_fat
).
obviously it doesn't do that [1] right now.
architecture), it should continue to try the other file extensions. could you provide the full (related) output of the Pd-console, when it tries (and fails) to load the i386 binary?
mfasr IOhannes
On 4/19/22 13:11, IOhannes m zmoelnig wrote:
- i *think*, on macOS Pd should first try to load the arch-specific
extensions (
.d_i386
), and only then it should fall back to loading the fat binary (.d_fat
). obviously it doesn't do that [1] right now.
in the meantime, you could try to force the extension for the fat binary to ".pd_darwin" (which is searched for after the arch-specific extensions).
i'm not sure whether pd-lib-builder handles this correctly, but something like this might do the trick:
make extension="pd_darwin" arch="x86_64 arm64"
gmndas IOhannes
Em ter., 19 de abr. de 2022 às 08:13, IOhannes m zmoelnig zmoelnig@iem.at escreveu:
could you provide the full (related) output of the Pd-console, when it tries (and fails) to load the i386 binary?
It doesn't try and fail, it actually finds the fat binary first and then fails loading it.. it never gets to the right i386 binary. See below
------------------ done with main ---------------------- connection from 'pd' to 'pd-gui' on 127.0.0.1:64688 Tk 8.5.19 detected font: DejaVu Sans Mono using font: Menlo normal Loading plugin: /Applications/ Pd-0.52-2-i386.app/Contents/Resources/Scripts/pd_deken.tcl [deken] Platform detected: Darwin-x86_64-float32 Loading plugin: /Applications/ Pd-0.52-2-i386.app/Contents/Resources/Scripts/pd_docsdir.tcl Pd documents directory: /Users/porres/Documents/Pd [deken] Platform re-detected: Darwin-i386-float32 tried ./else.d_fat and failed tried ./else.d_i386 and failed tried ./else.pd_darwin and failed tried ./else.so and failed tried ./else/else.d_fat and failed tried ./else/else.d_i386 and failed tried ./else/else.pd_darwin and failed tried ./else/else.so and failed tried ./else.pd and failed tried ./else.pat and failed tried ./else/else.pd and failed tried /Users/porres/Documents/Pd/externals/else.d_fat and failed tried /Users/porres/Documents/Pd/externals/else.d_i386 and failed tried /Users/porres/Documents/Pd/externals/else.pd_darwin and failed tried /Users/porres/Documents/Pd/externals/else.so and failed
*tried /Users/porres/Documents/Pd/externals/else/else.d_fat and succeeded/Users/porres/Documents/Pd/externals/else/else.d_fat: dlopen(/Users/porres/Documents/Pd/externals/else/else.d_fat, 10): no suitable image found. Did find: /Users/porres/Documents/Pd/externals/else/else.d_fat: no matching architecture in universal wrapper /Users/porres/Documents/Pd/externals/else/else.d_fat: no matching architecture in universal wrapper... you might be able to track this down from the Find menu.* tried /Users/porres/Documents/Pd/externals/else.pd and failed tried /Users/porres/Documents/Pd/externals/else.pat and failed tried /Users/porres/Documents/Pd/externals/else/else.pd and failed tried /Users/porres/Documents/Pd/externals/else/else.d_fat and succeeded /Users/porres/Documents/Pd/externals/else/else.d_fat: dlopen(/Users/porres/Documents/Pd/externals/else/else.d_fat, 10): no suitable image found. Did find: /Users/porres/Documents/Pd/externals/else/else.d_fat: no matching architecture in universal wrapper /Users/porres/Documents/Pd/externals/else/else.d_fat: no matching architecture in universal wrapper tried /Users/porres/Documents/Pd/externals/else/else.pd and failed tried /Users/porres/Documents/Pd/externals/else/else.pat and failed tried /Users/porres/Documents/Pd/externals/else/else/else.pd and failed tried /Users/porres/Library/Pd/else.d_fat and failed tried /Users/porres/Library/Pd/else.d_i386 and failed tried /Users/porres/Library/Pd/else.pd_darwin and failed tried /Users/porres/Library/Pd/else.so and failed tried /Users/porres/Library/Pd/else/else.d_fat and failed tried /Users/porres/Library/Pd/else/else.d_i386 and failed tried /Users/porres/Library/Pd/else/else.pd_darwin and failed tried /Users/porres/Library/Pd/else/else.so and failed tried /Users/porres/Library/Pd/else.pd and failed tried /Users/porres/Library/Pd/else.pat and failed tried /Users/porres/Library/Pd/else/else.pd and failed tried /Library/Pd/else.d_fat and failed tried /Library/Pd/else.d_i386 and failed tried /Library/Pd/else.pd_darwin and failed tried /Library/Pd/else.so and failed tried /Library/Pd/else/else.d_fat and failed tried /Library/Pd/else/else.d_i386 and failed tried /Library/Pd/else/else.pd_darwin and failed tried /Library/Pd/else/else.so and failed tried /Library/Pd/else.pd and failed tried /Library/Pd/else.pat and failed tried /Library/Pd/else/else.pd and failed tried /Applications/ Pd-0.52-2-i386.app/Contents/Resources/Scripts/../extra/else.d_fat and failed tried /Applications/ Pd-0.52-2-i386.app/Contents/Resources/Scripts/../extra/else.d_i386 and failed tried /Applications/ Pd-0.52-2-i386.app/Contents/Resources/Scripts/../extra/else.pd_darwin and failed tried /Applications/ Pd-0.52-2-i386.app/Contents/Resources/Scripts/../extra/else.so and failed tried /Applications/ Pd-0.52-2-i386.app/Contents/Resources/Scripts/../extra/else/else.d_fat and failed tried /Applications/ Pd-0.52-2-i386.app/Contents/Resources/Scripts/../extra/else/else.d_i386 and failed tried /Applications/ Pd-0.52-2-i386.app/Contents/Resources/Scripts/../extra/else/else.pd_darwin and failed tried /Applications/ Pd-0.52-2-i386.app/Contents/Resources/Scripts/../extra/else/else.so and failed tried /Applications/ Pd-0.52-2-i386.app/Contents/Resources/Scripts/../extra/else.pd and failed tried /Applications/ Pd-0.52-2-i386.app/Contents/Resources/Scripts/../extra/else.pat and failed tried /Applications/ Pd-0.52-2-i386.app/Contents/Resources/Scripts/../extra/else/else.pd and failed else: can't load library the Pd window filtered 72 lines