joshgarde / aurora

A gui for NodeOS based off of ChromiumOS
MIT License
2 stars 0 forks source link

Ideas | Plans | Roadmap #1

Open Coretool opened 8 years ago

Coretool commented 8 years ago

I think we have to define a clear plan of what we want to do here.

My idea is to try to copy the way they built the gui on Chrome(ium)OS to NodeOS. To do so, I suggest, thaz we "study" the code they used in chromeOS and port it to NodeOS. What do you think ?!

joshgarde commented 8 years ago

I essentially had the same idea - basically reimplementing the same concepts in Chromium OS as node.js + HTML code where possible.

The checkout instructions for Chromium are over at https://dev.chromium.org/developers/how-tos/get-the-code - Just a warning, it's about a 15-10GB download.

Coretool commented 8 years ago

Is this the source of the browser or of the OS ? 10 GB is huge for a browser...

joshgarde commented 8 years ago

Ash/Aura are actually part of the Chromium browser - they're basically build options you can enable.

You might be able to get the relevant portions of the source here: (without the 10GB+ download) https://chromium.googlesource.com/chromium/src/

What you're after is src/ui/aura and src/ash

joshgarde commented 8 years ago

10 GB is huge for a browser...

I had the same thought when I was purchasing a VPS to fulfill the system requirements for the build

Coretool commented 8 years ago

^^ Let's see what we can get out of this thingy !

Coretool commented 8 years ago

Is it just me or is it impossible to clone only the chromium source from this page ?

joshgarde commented 8 years ago

I can clone just fine with git clone https://chromium.googlesource.com/chromium/src

Coretool commented 8 years ago

Yeah... was an error on my side... It works just fine ^^

joshgarde commented 8 years ago

Just pushed an initial commit with some of the extracted files I think we'll need. Looking at the dependency graph, looks like we need to tackle Aura first to get it working with EGL.

joshgarde commented 8 years ago

Looking at the documentation, looks like ozone already has an implementation we can use.

https://www.chromium.org/developers/design-documents/ozone

joshgarde commented 8 years ago

Also, what license do you want to use? The Chromium license looks compatible with most open source licenses. I was personally leaning towards MIT.

joshgarde commented 8 years ago

But it's a lot easier just to license under the same licenses as Chromium and ChromiumOS.

Coretool commented 8 years ago

I'd use MIT ... That's basically the most open license you can get.

Coretool commented 8 years ago

I've looked into ozone and I think I've found what I wanted:

Ozone has got 3 different platforms. The only one that we're really interested in is probably gbm. Gbm needs mesa so we will have to wait for lite to finish the mesa port.

Ozone only renders in 600x800 so we might want to scale this since full screen would be much better !

joshgarde commented 8 years ago

I was looking at targeting gbm as well and once we figure out how it does the rendering, it shouldn't be too hard to change the rendering size.

The source code from Google uses their own "configure" system and the ninja build system. Should we keep their stuff or try to port over to autoconf and automake?

Coretool commented 8 years ago

For testing we should leave it as it is, but afterwards we should change to more commonly used systems as we're going to pack everything into an npm package (maybe with prebuilt binaries ?)

joshgarde commented 8 years ago

I've found some good demo code under src/ui/aura/demo/demo_main.cc

joshgarde commented 8 years ago

Down the line I was also thinking of replacing the full Chromium implementation in Ash with the embedded version since it's a lot easier to build with a precompiled library than to keep building the entire Chromium source all the time.

joshgarde commented 8 years ago

More useful demo code:

src/ui/ozone/demo/ozone_demo.cc
src/ui/views/examples/examples_main.cc
Coretool commented 8 years ago

Thanks for the code, I'll look into it!

I think we should build the content shell with ozone first and then build everything ontop of that. That's probably like what you suggested :).

joshgarde commented 8 years ago

Yep, that's what I had in mind

joshgarde commented 8 years ago

Quick update: Instead of trying to modify the source directly and resolving dependencies independent of Google scripts, I'm going to be modeling the project after NodeOS/qemu. So instead of having the source in repo, it'll be downloaded along with all the other tools and dependencies when a build is run. We'll be building aurora on top of the existing source.

Coretool commented 8 years ago

Yeah, sure, that's what I thought we would do anyway ^^

Coretool commented 8 years ago

However, we should make it optional because it takes quiet some time to build it...

joshgarde commented 8 years ago

Yeah - primarily we're going to use prebuilds

Coretool commented 8 years ago

So we will have to create a script that builds prebuilds for every platform ...

joshgarde commented 8 years ago

Only Linux and since it's the early development stages, we'd only need to target 64-bit.

Coretool commented 8 years ago

Yeah but for the future since NodeOS will target 32-bit, arm, etc ^^

joshgarde commented 8 years ago

Got the aurora demo compiled, but I can't get it to run on my Ubuntu box - Possible issue: https://groups.google.com/a/chromium.org/d/msg/ozone-dev/PrqBxBmSG3s/Qyv_GZKtAwAJ

Coretool commented 8 years ago

Did you terminate X ?

I think the first two we will be able to patch ... the third one will be a bit more challenging but should be possible

joshgarde commented 8 years ago

I didn't even start X - Got to my display manager's login ui and immediately went into the CLI - Got a similar error to the OP of the topic.

I did get it "running" with X running, but with no display on screen.

joshgarde commented 8 years ago

The first two I think we already have. The last one might require some patching...

Coretool commented 8 years ago

I'll search the driver / export it from ChromeOS

joshgarde commented 8 years ago

https://chromium.googlesource.com/chromiumos/third_party/libdrm/ ^ This is probably the one we're after

https://chromium.googlesource.com/chromiumos/third_party/mesa/

joshgarde commented 8 years ago

I've had success compiling libdrm on my Ubuntu VPS without the need to checkout the entire ChromiumOS repo (just needed to install libpciaccess-dev). I'm going to try installing it on my local box tomorrow.

Coretool commented 8 years ago

So do we still need point 3 ?

Coretool commented 8 years ago

I'm cloning the whole chromium src now and will grap what I need to start hacking on it. Do you mind, if we list what we have to do and afterwards split it into several issues so we can track progress on everything ?!

joshgarde commented 8 years ago

Sure - libdrm should resolve point 3, but I still need to test

Coretool commented 8 years ago

So @joshgarde did you get the content shell ?

joshgarde commented 8 years ago

Either I'm not installing the library correctly or something else is needed -

I'm going to test a few more things out, but some other repos to probably investigate: https://chromium.googlesource.com/chromiumos/third_party/drm/ (<-- Seems outdated) https://chromium.googlesource.com/chromiumos/drm_hwcomposer/

Coretool commented 8 years ago

Why do we not just copy the driver out of a fully functional chromeos image (i.e. use a vm and then extract the driver ?)

joshgarde commented 8 years ago

We can, but I would also like to be able to build from source if the binary isn't available (this is an open source project after all).

Coretool commented 8 years ago

Yeah... maybe we want to contact a chromium dev ? (Using the mailing list )

joshgarde commented 8 years ago

Sure - it'd speed up development a bit

Coretool commented 8 years ago

So I'll go and make some friends... or try to ?! ^^

joshgarde commented 8 years ago

Go for it - I'll join in too

Coretool commented 8 years ago

Have you seen / tried out the 'tutorial' on how to deploy an ozone content_shell ? It looks pretty good ...

What did you compile exactly ?

joshgarde commented 8 years ago

https://www.chromium.org/developers/design-documents/ozone

Truthfully, I didn't see that part of the documentation. 😪 I was compiling aura_demo.

Coretool commented 8 years ago

Yeah, I thought that ^^ I think we should try this one out (I'll do that soon)

joshgarde commented 8 years ago

Compiling right now on my VPS - Will report back with results