Code Monkey home page Code Monkey logo

servonk's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

servonk's Issues

Can't run on macOS

$ ./servonk run glutin
assertion failed: mach_sys::mach_port_mod_refs(mach_task_self(), self.port,
                             MACH_PORT_RIGHT_SEND, 1) == KERN_SUCCESS (thread Constellation, at /Users/pancake/.cargo/registry/src/github.com-1ecc6299db9ec823/ipc-channel-0.10.0/src/platform/macos/mod.rs:336)
ERROR 2018-04-18T08:10:50Z: servo: assertion failed: mach_sys::mach_port_mod_refs(mach_task_self(), self.port,
                             MACH_PORT_RIGHT_SEND, 1) == KERN_SUCCESS
called `Result::unwrap()` on an `Err` value: Io(Custom { kind: ConnectionReset, error: StringError("No senders exist for this port.") }) (thread StorageManager, at libcore/result.rs:945)
ERROR 2018-04-18T08:10:52Z: servo: called `Result::unwrap()` on an `Err` value: Io(Custom { kind: ConnectionReset, error: StringError("No senders exist for this port.") })

Figure out how to upgrade backtrace on Gonk

It is currently forced to stay on 0.3.7 and backtrace-sys on 0.1.16 to avoid a compilation error with backtrace-sys 0.1.19. This will be hitting us at each Servo update.

detailing readme

Can you detail the part of the readme where you write:

Configure the Gonk build by setting the GONK_DIR environment variable to the path of your b2g repository,

As: where to set that GONK_DIR and where to get the b2g repo?
Thanks!

[meta] Servo blockers

These are Servo issues that are blocking servonk one way or the other from being awesome:

  • servo/servo#20822 : Flex layout is not updated on window resize. That prevents the layout of the status and navbars to update properly on window resize.
  • servo/servo#20379 : The Idle state is not always reached at the end of css transitions. Many animations are disabled because of that bug.
  • servo/servo#20731 : Keyframe animations are not stopped/removed properly. That is preventing us from using keyframe animations without using a crazy amount of cpu.
  • servo/servo#20660 : Add a ThemeColorChanged embedder message. Needed to implement ambient themeing.
  • servo/servo#20284 : The :active pseudo class is not (fully) supported. That forces us to manually set classes on tapped elements to eg. change the background color (see the lockscreen code).
  • servo/servo#20111 : Full page flexbox layout doesn't fill the page. Maybe we could have a simpler page layout if that worked.
  • servo/ipc-channel#143 : Make android OSes use the unix module instead of inprocess. This blocks multiprocess on Gonk.
  • servo/servo#21025 : BroadcastChannel could be used as a message bus for the default apps.
  • servo/servo#20770 : composition events are needed for the virtual keyboard.

"Server failed to accept"... in Ubuntu for Windows

When trying to run release 0.1-alpha in Ubuntu for Windows using VcXsrv it returned this error:

Server failed to accept.: Io(Os { code: 22, kind: InvalidInput, message: "Invalid argument" }) (thread Constellation, at libcore/result.rs:945)
ERROR 2018-05-10T13:43:28Z: servo: Server failed to accept.: Io(Os { code: 22, kind: InvalidInput, message: "Invalid argument" })

I believe it may be related to graphics since the Windows Subsystem for Linux doesn't formally support graphical apps, hence why I needed to use VcXsrv as well.

Since this platform is not an intended target for Servonk I expect this issue to be given a low priority.

Note that in addition to the instructions in the reader I set up the environment as:

export DISPLAY=:0 export XDG_RUNTIME_DIR=/tmp

CI Builds

Ideally we need:

  • Desktop builds.
  • Device builds.

We need to check if such builds can be done quickly enough to use something like Travis CI.

Work needed on new target device/platform.

Hello everyone,

As described in the new page on target devices and platforms in the docs folder, there are many possible targets. But who's working on any of them right now?

More importantly, is anyone working on the intended targets?

Cheers :)

On-screen keyboard not working

The code for the keyboard is included in the repo frontend code but the keyboard doesn't actually appear on screen when a text input box is selected.

Is this working as intended? Is this behaviour expected because that keyboard code isn't yet included in the build?

Simple Web OS based on Servo, WebAssembly and Redox

I have been thinking of a very simple OS that runs a Servo process for each desktop element (GUI, file system manager, terminal, Office app etc) optimized with WebAssembly for both mobile and desktop. With a very simple microkernel like Redox.

Does this make sense? Is this also feasible?

Error on running servonk on Nexus 5 device

Hi Team,

I had flashed the Nexus 5 device. However when I run the command ./servonk run gonk I'm getting the below error. Also here is my git log:

arun@devilbox ~/Documents/servonk $ git log | head
commit a7082e6c7294109d002c663db1208727ad6653fa
Merge: 9350561 3ea68e2
Author: arunkumar413 <[email protected]>
Date:   Tue May 22 20:22:00 2018 +0530

    latest update Merge branch 'master' of https://github.com/fabricedesre/servonk into arun

commit 3ea68e2c38a802f584efbcc738796093d89dcc08
Author: Fabrice Desré <[email protected]>
Date:   Mon May 21 15:01:39 2018 -0700
arun@devilbox ~/Documents/servonk $
arun@devilbox ~/Documents/servonk $ ./servonk run gonk
Options configured as None Some(1.0) false
thread 'ResourceManager' panicked at 'Can't read file: Os { code: 2, kind: NotFound, message: "No such file or directory" }', libcore/result.rs:945:5
thread 'main' panicked at 'Can't read file: Os { code: 2, kind: NotFound, message: "No such file or directory" }', libcore/result.rs:945:5
stack backtrace:
   0: <unknown>
   1: <unknown>
   2: <unknown>
   3: <unknown>
   4: <unknown>
   5: <unknown>
   6: <unknown>
   7: <unknown>
   8: <unknown>
   9: <unknown>
  10: <unknown>
  11: <unknown>
  12: <unknown>
  13: <unknown>
  14: <unknown>
stack backtrace:
   0: <unknown>
   1: <unknown>
   2: <unknown>
   3: <unknown>
   4: <unknown>
   5: <unknown>
   6: <unknown>
   7: <unknown>
   8: <unknown>
   9: <unknown>
  10: <unknown>
  11: <unknown>
  12: <unknown>
  13: <unknown>
  14: <unknown>
  15: __libc_init
thread 'StorageManager' panicked at 'called `Result::unwrap()` on an `Err` value: Io(Custom { kind: ConnectionReset, error: StringError("MPSC channel sender closed") })', libcore/result.rs:945:5
stack backtrace:
   0: <unknown>
   1: <unknown>
   2: <unknown>
   3: <unknown>
   4: <unknown>
   5: <unknown>
   6: <unknown>
   7: <unknown>
   8: <unknown>
   9: <unknown>
  10: <unknown>
  11: <unknown>
  12: <unknown>
arun@devilbox ~/Documents/servonk $ ./servonk run gonk

Project name

Hi Fabrice,
Since you said you would like to find a "better" name for the project I thought we could put suggestions here instead of telegram.

My suggestions are:

  1. Serval, which is a wild African cat which should be easy to stylise for a logo, eg https://www.qwant.com/?q=serval%20cartoon&t=images

  2. Anancy, spider character from African/Caribbean folklore. Spiders are to do with webs...

  3. Nervous Crow, very tenuous name derived from an anagram of Servonk and a character from the same programme as Servo

  4. Minya, son of Godzilla

Scripts assume the build is release

Those platform/glutin/support/scripts/*.sh assume the build was done in release mode, it should check which one is the most recent (release|debug) and use that, or let the user specify it with an env var.

screen shot 2018-04-18 at 10 06 21

Suggest Reddit group

This is a really, really exciting concept. It very much opens the door for some of the design changes
identified in Ben Francis' paper on Firefox OS's history. Being relatively karma-less, I can't create
/r/Servonk, but it seems like it would be a useful place to communicate?

Target platforms and devices

To recap some discussion in telegram:

Currently Servonk is targetting Gonk from B2G derived from Android Lollipop. There's also the desktop build with Glutin. As far as I understand it the Gonk port is more for convenience of familiarity and available devices for potential contributors.

Long term there is a desire not to support old hardware and to make Servonk usable on new devices. Options for this are:

  • For Gonk to continue to be useful it needs to be updated to base it off later versions of AOSP. Since tha latest Gonk is currently 4 versions behind the current AOSP it would a lot of effort to bring it up to date.
  • Porting Servonk to AOSP directly probably isn't much different from updating Gonk and porting Servonk to these later versions of Gonk. It would probably be less work for a small number of devices, but for a large number the benefits of a smaller number of targets (Gonk-M, N, O, etc) wouldbe preferred.
  • LineageOS isn't exactly a fixed target, AFAIK, at least, they seem to be moving rapidly on to O base (15.1), 14.1 is now in maintenance and there is no more support for earlier versions. The benefit of lineage is that there's more people maintaining them, and they have better longevity than the vendor support for AOSP.
  • For using either AOSP or LineageOS as a base it should be easier to target devices that support Project Treble than ones that don't. Treble was mandatory for any device which shipped with O, but is not mandatory for devices which are upgraded to O. However, many of the suitable devices (which have an unlockable bootloader) are still quite expensive.

Other options:

  • Would it be easier just to target Halium and save porting effort? Aries does have a port, but I don't know the current work status.

  • GNU/Linux options:

  • Librem 5 is already a stated target, is working on the desktop build enough for this?

  • postmarketOS is another option but I don't know how much different it will be to target it's Alpine Linux base vs the Debian base of Librem 5 PureOS.

  • Both these should also make it easier to port to Halium, because they are closer to each other than they are to AOSP.

In all cases one still needs to choose which devices to target. Is it actually easier to choose devices to support first, then choose the best porting option?

  • Sony have stopped support for Aries and there's less than 100 LineageOS users on Aries (see stats.lineageos.org).
  • Nexus 5 is also no longer supported by Google/LG but is obviously in a much better state with LineageOS support.
  • But these are still older devices and both of the above are supported with Gonk-L anyway, so they could be continued to be supported via the Gonk platform, although supporting multiple platforms could become laborious.

What are the minimum system requirements of Servo? How low a spec device can be supported? Is it worth it? Who would use it? Will they contribute to Servonk front end development? At this stage porting to a new device/platform is probably only worth it if it increases contributions to the servo and front end parts of Servonk. Longer term the aim would be to make Servonk available for more general use.

Finally, what about Gonk-KK based devices? What needs to be done to port Servonk to Gonk-KK? That would make the flame, open c and many others possible - even the FX0 using the work by Cutol on Reddit! This may get more previous FirefoxOS/B2G users interested and potentially contributing to the servo and frontend stuff. Most of these people will have moved on to more modern devices now anyway, so once they have success on their old FirefoxOS phones they will probably want to try on their newer, faster phones instead. So "support" for Gonk kk probably won't be needed for long.

  • Note that Fabrice did try to build for KK devices first but some dependencies like Spidermonkey would not compile. So, some work to be done to get this working.

In summary, I don't think it's easy to decide. Whichever platforms(s) are chosen there should be a ready to go set of devices which can be targeted (see the lists of supported devices in all the links above), but it's not clear how to choose the platform.

To try and limit the available choices, here are the devices which I think meet the criteria of Project Treble enabled, with an unlocked bootloader, derived from LineageOS 15.1 devices list and which ones have Project Treble :

  • OnePlus 5 and 5T (unofficial)
  • Xiaomi Redmi Note 4, Mi Note 2, Mi 5, Mi 5s, Mi 5s plus, Mi 6 (unofficial)
  • Motorola Moto Z (unofficial)
  • There must be devices which support Project Treble officially and have an unlocked bootloader, but I haven't found an an easy source for this info.

Documentation and wiki

Hi Fabrice,

It's not possible to do pull requests on a GitHub wiki so how would you like us to contribute to documentation? Create a wiki folder within the code and manually create markdown files? Html?

What about explanation of how Servonk works? Control flow, architecture etc? Will this be in the code comments? Should it be in the wiki? Do you eventually foresee automated documentation?

Cheers

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.