Where do I find CrossBox 2?

Where do I find CrossBox 2 to deploy it to my Mac and Linux computers?

CrossBxo 2 does not need a server deployable. As long as you have SSH access to your Mac and Linux machine, you’re good to go. See https://docs.elementscompiler.com/Tools/CrossBox/CrossBox2/.

Open Terminal.app on your Mac and look at the ~/.ssh folder (if it exists), by typing ld ~/.ssh .

Should that read ls ~/.ssh ?

I can’t seem to get this working.

I created the id_rsa and id_rsa.pub key files on my Windows (client) PC. I did not enter a passphrase.

Then I transferred these files to the Mac via a USB drive. They are placed in the ~/.ssh folder.

I renamed id_rsa.pub to authorized_keys as stated in the docs.

The Mac firewall is disabled.

Remote Login is enabled in Settings / Sharing on the Mac.

In the Register Crossbox Server dialog I have the IP address of the Mac entered. I’ve selected the id_rsa file that was generated via the ssh-keygen command.

When I click the Validate button the message “Connection failed: Permission denied (publickey).”

Yes.

That means you connected ok (i.e. no firewall issue, and the ssh service is up), but your private key doesn’t match the/a public key in authorized_keys. Did you manually specify the private key in the CrossBox dialog, for did it pick it automatically?

I clicked the ellipses button and manually browsed to the file

Okay, that’s good., then we know its using the right one, for sure.

Very strange. I’m not sure I have any radical ideas what else to test, aside from double-checking all the files are right.

Note that the server (ie Mac) needs only your public key, in authjoprized_keys. The client (Water) needs the matching private key.

Can you ssh into the Mac from the command line (think WIndoews comes with ssh these days?), or from your Linux box, if you copy the private key over there?

I can use ssh to connect from the command prompt though it asks for a password. Once I enter my Mac password it connects and I can execute commands.

I’ve tried putting the same user name and password into the Register Crossbox Server dialog in both Visual Studio and Water with the private key file blank. When I try this I get “Connection failed. Permission denied (password).”

One other note: The Register Crossbox Server behaves differently between the two. VS defaults to port 22 and Water does not. Water hides the password with *** and VS doesn’t (though it really should).

image

I left the user name blank and entered my Mac password in the password box. The Register Crossbox Server dialog went to “Platform: Darwin” so I clicked the Regiser button.

image

Now it just spins. Clicking the Skip button causes a hard crash of VS.

I put the same parameters into Water and it “registers” the server but doesn’t try to connect at that point.

After rebooting VS I can select the Mac that I registered in Water but it gets stuck at Waiting for server connection…

Then thats not using they keys. does the password option work from Water, too? it should.

Hmm. then you;re maybe connecting to the wrong server? Assuming the username and password are the same, you cannot get “Permission denied (password).” from one but nt the other, from the same server…

Pretty sure it does… What do you think it defaults to?

That;'s not nice, will log.

that’s good. FWIW< when you leave see blank, it uses the currently logged in username. if these don;t match, you have to provide the name of the account on the server.

But this means “it works”.

Curious. Did you get a crash log?

Good. Note you also can register from the command line with ebuild.exe --register-crossbox-server.

Either way, the registration shied work across all parts of Elements, as you noticed:

Very strange. Something seems flaky with the SSH connection…

I assume this is all with recent/latest Elements, yes?

I am referring to the dialog box. On Water it opens up with the Port being blank and Use Agent is not checked. In VS Port is 22 and Use Agent is checked.

image

There was no error or crash log in Water. It registers the server but shows (Disconnnected) as the state. There was a sub menu on the server with Mac, and Mac (Rosetta) on the menu.

I rebooted both PCs and now I can select the Mac in both Water and VS. Water now shows a check mark instead of (Disconnected). VS seems to connect as well.

When I try to build / run a Mac console app from either IDE then I get a message about the debugger failing to launch.

On a side note I think your VS extension needs updated.

image

The Windows Desktop has the latest version of Elements.

My laptop is one version behind and I get the same results on the laptop as I do on the desktop.

Someone in my office suggested that I install VS on the Mac and develop on that end. Do you support the Mac version?

I may also try this with a Linux box in the coming days to see if it is any less of a pain.

Ah ok. 22 is still the default, even if not shown. But I’ll see if I can fix it.

That’s fine, it wont connect unless it needs to. Buy you says VS crashed?

Cool.

Knowing the actual message might be helpful, to comment :wink:

Oops. will log to be fixed.

Logged as bugs://E26720.

Knowing the actual message might be helpful, to comment :wink:

image

"C:\Program Files (x86)\RemObjects Software\Elements\Bin\EBuild.exe" --logger:fire "C:\Users\Brian Wheatley\Documents\RemObjects Software\Elements\Water\Mac OS\MacApp\MacApp.sln" --configuration:Debug --build --setting:TreatFixableErrorsAsWarnings=True "--xml:C:\Users\Brian Wheatley\Documents\RemObjects Software\Elements\Water\Mac OS\MacApp\obj\MacApp.water.xml" --goal:16F26C3C-D642-4928-B660-EDC23181F0E4;Toffee-macOS --setting:16F26C3C-D642-4928-B660-EDC23181F0E4,Device=True --verbosity:normal
RemObjects EBuild. An open source build engine for Elements and beyond.
Copyright RemObjects Software 2016-2023. All Rights Reserved. Created by marc hoffman.
Version 11.0.0.2859 (develop) built on bajor, 20230812-125611. Commit 75443ef.

   Xcode Version is 14.3.1 (14E300c), macOS Version is 13.5 (22G74).
   No exact macOS SDK version was specified for target 'Toffee-macOS', using 'macOS 13.3'.
   Solution 'MacApp' built successfully.
Connecting to Server 192.168.33.21:22.
Connected.
Uploading MacApp.app to 192.168.33.21.
Port is 1472
Running /Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Versions/A/Resources/debugserver -f16 --log-file /dev/stdout 0.0.0.0:1472 -e OS_ACTIVITY_DT_MODE=1 -F -- "/Users/brianwheatley/Library/Application Support/RemObjects Software/EBuild/CrossBox/Clients/BWNEWDEVVM/DDACCF8A3F8872D6645ECBCE26757EB020E06BDF/Toffee-macOS/MacApp.app/Contents/MacOS/MacApp"
debugserver-@(#)PROGRAM:LLDB  PROJECT:lldb-1403.0.17.67
 for arm64.
1 +0.000000 sec [0334/0103]: error: ::posix_spawnp ( pid => 0, path = '/Users/brianwheatley/Library/Application Support/RemObjects Software/EBuild/CrossBox/Clients/BWNEWDEVVM/DDACCF8A3F8872D6645ECBCE26757EB020E06BDF/Toffee-macOS/MacApp.app/Contents/MacOS/MacApp', file_actions = 0x16da2ddf0, attr = 0x16da2de08, argv = 0x600000c940f0, envp = 0x600002090a00 ) err = Bad CPU type in executable (0x00000056)
2 +0.000007 sec [0334/0103]: RNBRunLoopLaunchInferior DNBProcessLaunch() returned error: 'Bad CPU type in executable'
error: failed to launch process /Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Versions/A/Resources/debugserver: Bad CPU type in executable
Exiting.

Visual Studio gives me different detail.

image

============= Deploy =============
Starting deploy to Crossbox Server 192.168.33.21
Uploading MacConsoleApplication1 to 192.168.33.21.
Failed to deploy to CrossBox Server 192.168.33.21: Error launching debugserver: no free socket available.

^^^

Don’t know much about Mac OS and I’m still pretty new to Elements. What do I need to do to fix?

Hard to say. Are you maybe building for arm64, but your Mac is Intel?

On your Mac, run

file /Users/brianwheatley/Library/Application Support/RemObjects Software/EBuild/CrossBox/Clients/BWNEWDEVVM/DDACCF8A3F8872D6645ECBCE26757EB020E06BDF/Toffee-macOS/MacApp.app/Contents/MacOS/MacApp

in Terminal and see what it says the architecture in the file is. and then run arch to find what architecture your Mac has.

CrossBox should detect and pass this on automatically, but its my best guess for this error message.

I pasted that command into the terminal window on the Mac and got:

brianwheatley@Brians-Mac-mini ~ % file /Users/brianwheatley/Library/Application Support/RemObjects Software/EBuild/CrossBox/Clients/BWNEWDEVVM/DDACCF8A3F8872D6645ECBCE26757EB020E06BDF/Toffee-macOS/MacApp.app/Contents/MacOS/MacApp
/Users/brianwheatley/Library/Application:                                                                                           cannot open `/Users/brianwheatley/Library/Application' (No such file or directory)
Support/RemObjects:                                                                                                                 cannot open `Support/RemObjects' (No such file or directory)
Software/EBuild/CrossBox/Clients/BWNEWDEVVM/DDACCF8A3F8872D6645ECBCE26757EB020E06BDF/Toffee-macOS/MacApp.app/Contents/MacOS/MacApp: cannot open `Software/EBuild/CrossBox/Clients/BWNEWDEVVM/DDACCF8A3F8872D6645ECBCE26757EB020E06BDF/Toffee-macOS/MacApp.app/Contents/MacOS/MacApp' (No such file or directory)

Don’t know if this helps…

image

Oh, and arch says arm64

You might need to add quotes for the spaces

yeah, so your Mac should be able to run arm64 and x86_64. very strange.

Can you run the app manually locally? just run

"/Users/brianwheatley/Library/Application Support/RemObjects Software/EBuild/CrossBox/Clients/BWNEWDEVVM/DDACCF8A3F8872D6645ECBCE26757EB020E06BDF/Toffee-macOS/MacApp.app/Contents/MacOS/MacApp"

(with quotes) in terminal.

With quotes I get

MacApp: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64:Mach-O 64-bit executable arm64]

When I run the app it reports

2023-08-25 12:56:41.975 MacApp[2049:161799] Unable to load nib file: MainMenu, exiting

This is the stock console application template with no changes on my part.

I downloaded Fire to try the same template directly on the Mac and it works there.

Odd. the binary has both architectures, so it should good either way. very strange. I’ll see if ic an repro this from here from Windows, over the weekend or Monday.

Are you good with that solution, for now?