From af2986246b17b7ac1fd212b6800a6edc574e42ae Mon Sep 17 00:00:00 2001 From: madb1lly Date: Sun, 20 May 2018 20:22:33 +0200 Subject: [PATCH 01/29] Update readme.md Add dependencies for bindgen which don't appear to be included in Ubuntu 18.04, servo or B2G dependencies. --- readme.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/readme.md b/readme.md index 742e9c8..4a58599 100644 --- a/readme.md +++ b/readme.md @@ -15,6 +15,9 @@ Since we depend on Servo, first check that you have everything set up [as explai You need to do a [b2g](https://github.com/mozilla-b2g/B2G) build for your device (eng or userdebug to get root access), as this is not properly setup with the Android build system yet. +Also: +- sudo apt-get llvm-dev libclang-dev and clang (Ubuntu 18.04). + ## Building 1) First, install [rustup](https://rustup.rs/). From 73dfabda1fdc4010550ed6e0bc7dd4e0bbf60605 Mon Sep 17 00:00:00 2001 From: madb1lly Date: Tue, 12 Jun 2018 11:01:44 +0200 Subject: [PATCH 02/29] Create Target-devices-and-platforms.md Wiki file --- docs/Target-devices-and-platforms.md | 43 ++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 docs/Target-devices-and-platforms.md diff --git a/docs/Target-devices-and-platforms.md b/docs/Target-devices-and-platforms.md new file mode 100644 index 0000000..6e3ea2d --- /dev/null +++ b/docs/Target-devices-and-platforms.md @@ -0,0 +1,43 @@ +# Currently working devices: +Currently Servonk is targetting Gonk from B2G derived from Android Lollipop. There's also the desktop build with Glutin. + +Using Gonk-L: +* Sony Xperia Z3 Compact +* LG Google Nexus 5 + +Using Glutin: +* Linux desktop Glutin + +To do: add links to the build instructions for each of the working devices. + +# Work in progress +Nothing at present. + +# Potential targets +## Intended targets +Long term there is a desire not to support old hardware and to make Servonk usable on new devices. These devices listed below are the intended targets for running Servonk, so if you're working on this then great! +* [Purism Librem 5](https://puri.sm/shop/librem-5/) +* Any Android phone supporting Project Treble (Android O/8.0 or later, Project Treble support must be checked and confirmed) + +## Preferred alternatives +Whilst not the intended targets of Servonk, porting to these devices/platforms will probably help work on the intended targets, so efforts on these platforms are welcome. +* Non-Project Treble Android O/8.0 phones +* [LineageOS](https://github.com/LineageOS) 15.1 base +* [Halium](https://github.com/Halium) +* [postmarketOS](https://github.com/postmarketOS) +* Other GNU/Linux platforms + +## Other possibilities +There are many other possible devices and platforms which could run Servonk, however work on these is unlikely to contribute much to the intended targets. +* FirefoxOS devices with a working Gonk layer derived from Android L/5.0 + * The Sony Xperia Z3 Gonk-L build should work (leo-l) + * Other devices with work-in-progress builds based on Android L include the Fairphone 2, Flame, Nexus 6, Nexus Player, Raspberry Pi 2B and Sony Xperia E3, M2, T2U, T3, Z1, Z1 Compact, Z2, Z2 Tablet (Wifi only and LTE variants) and Z3 Tablet. +* FirefoxOS devices with a Gonk layer derived from Android KK/4.4 or earlier + * 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. +* KaiOS phones, which use a Gonk layer derived from Android M/6.0... +* AOSP earlier than O/8.0 + * This includes updating Gonk to work with M or N versions of AOSP +* LineageOS/CyanogenMod bases earlier than 15.1 +* Smart TVs using FirefoxTV or Panasonic's My Home Screen. + +For discussion use this issue: [Target platforms and devices #13](https://github.com/fabricedesre/servonk/issues/13) From 2853dff5663d486c9c2f3883b554228f21c9aaf9 Mon Sep 17 00:00:00 2001 From: madb1lly Date: Tue, 12 Jun 2018 11:05:00 +0200 Subject: [PATCH 03/29] Update readme.md --- readme.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 36a7e78..ceb19ec 100644 --- a/readme.md +++ b/readme.md @@ -5,7 +5,8 @@ This is an experimental project, aiming at providing a web based environment for - Encourage contributions to [Servo](https://servo.org) outside of the mandate of its corporate backers. - Scratch an itch and have fun. -It currently runs on Gonk based devices and on desktop platforms (tested on Linux only so far, let me know if you get it to run on Windows or Mac). Another potential target will be the [Librem 5 from Purism](https://puri.sm/shop/librem-5/). +It currently runs on Gonk based devices and on desktop platforms (tested on Linux only so far, let me know if you get it to run on Windows or Mac). Another potential target will be the [Librem 5 from Purism](https://puri.sm/shop/librem-5/). For more information on target devices and platforms see this page in the [wiki](/docs/Target-devices-and-platforms.md +). It is in very early stages and not really usable yet. There is an incomplete [todo list](todo.md) if you want to help! From ab3bb7474cac9268d228281a254da80767f35669 Mon Sep 17 00:00:00 2001 From: madb1lly Date: Tue, 12 Jun 2018 11:13:20 +0200 Subject: [PATCH 04/29] Update Target-devices-and-platforms.md More info on Panasonic TVs, and added Redox OS following telegram discussion. --- docs/Target-devices-and-platforms.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/Target-devices-and-platforms.md b/docs/Target-devices-and-platforms.md index 6e3ea2d..490d8d7 100644 --- a/docs/Target-devices-and-platforms.md +++ b/docs/Target-devices-and-platforms.md @@ -39,5 +39,8 @@ There are many other possible devices and platforms which could run Servonk, how * This includes updating Gonk to work with M or N versions of AOSP * LineageOS/CyanogenMod bases earlier than 15.1 * Smart TVs using FirefoxTV or Panasonic's My Home Screen. + * These were apparenetly originally based on BSD but recent source code releases suggest they are now based on GNU/Linux (not Android). + * It's possible therefore that making Servonk work on a hacked Panasonic TV could contribute to support on Librem 5! +* [Redox OS](https://www.redox-os.org/) is a POSIX compliant OS written entirely in Rust. Since Servo is also written in Rust there's some synergies which make building for Redox interesting, but this won't contribute to the intended platforms. For discussion use this issue: [Target platforms and devices #13](https://github.com/fabricedesre/servonk/issues/13) From 007c4c96bab458514b8f9613a92ab799dbd79aa7 Mon Sep 17 00:00:00 2001 From: madb1lly Date: Tue, 12 Jun 2018 11:14:17 +0200 Subject: [PATCH 05/29] Update Target-devices-and-platforms.md Add link to Panasonic source code. --- docs/Target-devices-and-platforms.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Target-devices-and-platforms.md b/docs/Target-devices-and-platforms.md index 490d8d7..1deb7fc 100644 --- a/docs/Target-devices-and-platforms.md +++ b/docs/Target-devices-and-platforms.md @@ -39,7 +39,7 @@ There are many other possible devices and platforms which could run Servonk, how * This includes updating Gonk to work with M or N versions of AOSP * LineageOS/CyanogenMod bases earlier than 15.1 * Smart TVs using FirefoxTV or Panasonic's My Home Screen. - * These were apparenetly originally based on BSD but recent source code releases suggest they are now based on GNU/Linux (not Android). + * These were apparenetly originally based on BSD but recent [source code releases](http://www.unipf.jp/dl/EUIDTV17/) suggest they are now based on GNU/Linux (not Android). * It's possible therefore that making Servonk work on a hacked Panasonic TV could contribute to support on Librem 5! * [Redox OS](https://www.redox-os.org/) is a POSIX compliant OS written entirely in Rust. Since Servo is also written in Rust there's some synergies which make building for Redox interesting, but this won't contribute to the intended platforms. From f18f901b11a7a5de0b7752487e2ecddc1d7f19ac Mon Sep 17 00:00:00 2001 From: madb1lly Date: Wed, 13 Jun 2018 08:55:07 +0200 Subject: [PATCH 06/29] Change filename to lower case and remove empty section --- ...evices-and-platforms.md => target-devices-and-platforms.md} | 3 --- 1 file changed, 3 deletions(-) rename docs/{Target-devices-and-platforms.md => target-devices-and-platforms.md} (98%) diff --git a/docs/Target-devices-and-platforms.md b/docs/target-devices-and-platforms.md similarity index 98% rename from docs/Target-devices-and-platforms.md rename to docs/target-devices-and-platforms.md index 1deb7fc..dcf13a1 100644 --- a/docs/Target-devices-and-platforms.md +++ b/docs/target-devices-and-platforms.md @@ -10,9 +10,6 @@ Using Glutin: To do: add links to the build instructions for each of the working devices. -# Work in progress -Nothing at present. - # Potential targets ## Intended targets Long term there is a desire not to support old hardware and to make Servonk usable on new devices. These devices listed below are the intended targets for running Servonk, so if you're working on this then great! From 4fa4b834dd953c00d980c9e7a65f3262b14e8c01 Mon Sep 17 00:00:00 2001 From: madb1lly Date: Wed, 13 Jun 2018 08:57:01 +0200 Subject: [PATCH 07/29] Remove reference to "wiki" Since GitHub already has a wiki section of each project it is ambiguous to refer to the "wiki" in the general sense, because people may think we mean the GitHub wiki section instead of another wiki. --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index ceb19ec..2414839 100644 --- a/readme.md +++ b/readme.md @@ -5,7 +5,7 @@ This is an experimental project, aiming at providing a web based environment for - Encourage contributions to [Servo](https://servo.org) outside of the mandate of its corporate backers. - Scratch an itch and have fun. -It currently runs on Gonk based devices and on desktop platforms (tested on Linux only so far, let me know if you get it to run on Windows or Mac). Another potential target will be the [Librem 5 from Purism](https://puri.sm/shop/librem-5/). For more information on target devices and platforms see this page in the [wiki](/docs/Target-devices-and-platforms.md +It currently runs on Gonk based devices and on desktop platforms (tested on Linux only so far, let me know if you get it to run on Windows or Mac). Another potential target will be the [Librem 5 from Purism](https://puri.sm/shop/librem-5/). For more information on target devices and platforms see [this page](/docs/Target-devices-and-platforms.md ). It is in very early stages and not really usable yet. There is an incomplete [todo list](todo.md) if you want to help! From 046c6bdab2edae7194eac6cdc2acc60fca88cfde Mon Sep 17 00:00:00 2001 From: madb1lly Date: Wed, 13 Jun 2018 13:51:18 +0200 Subject: [PATCH 08/29] Add OSX and Windows to other possibilities --- docs/target-devices-and-platforms.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/target-devices-and-platforms.md b/docs/target-devices-and-platforms.md index dcf13a1..19550ed 100644 --- a/docs/target-devices-and-platforms.md +++ b/docs/target-devices-and-platforms.md @@ -6,7 +6,7 @@ Using Gonk-L: * LG Google Nexus 5 Using Glutin: -* Linux desktop Glutin +* Linux desktop To do: add links to the build instructions for each of the working devices. @@ -39,5 +39,7 @@ There are many other possible devices and platforms which could run Servonk, how * These were apparenetly originally based on BSD but recent [source code releases](http://www.unipf.jp/dl/EUIDTV17/) suggest they are now based on GNU/Linux (not Android). * It's possible therefore that making Servonk work on a hacked Panasonic TV could contribute to support on Librem 5! * [Redox OS](https://www.redox-os.org/) is a POSIX compliant OS written entirely in Rust. Since Servo is also written in Rust there's some synergies which make building for Redox interesting, but this won't contribute to the intended platforms. +* macOS / Mac OSX desktop using Glutin +* Windows For discussion use this issue: [Target platforms and devices #13](https://github.com/fabricedesre/servonk/issues/13) From c6edec0deedce4d30d340db22459ece98ae369b0 Mon Sep 17 00:00:00 2001 From: madb1lly Date: Wed, 13 Jun 2018 17:44:17 +0200 Subject: [PATCH 09/29] typo --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 2414839..26cf9bf 100644 --- a/readme.md +++ b/readme.md @@ -5,7 +5,7 @@ This is an experimental project, aiming at providing a web based environment for - Encourage contributions to [Servo](https://servo.org) outside of the mandate of its corporate backers. - Scratch an itch and have fun. -It currently runs on Gonk based devices and on desktop platforms (tested on Linux only so far, let me know if you get it to run on Windows or Mac). Another potential target will be the [Librem 5 from Purism](https://puri.sm/shop/librem-5/). For more information on target devices and platforms see [this page](/docs/Target-devices-and-platforms.md +It currently runs on Gonk based devices and on desktop platforms (tested on Linux only so far, let me know if you get it to run on Windows or Mac). Another potential target will be the [Librem 5 from Purism](https://puri.sm/shop/librem-5/). For more information on target devices and platforms see [this page](/docs/target-devices-and-platforms.md ). It is in very early stages and not really usable yet. There is an incomplete [todo list](todo.md) if you want to help! From d0788aa230f82045bbd03a973268e934036d8e89 Mon Sep 17 00:00:00 2001 From: madb1lly Date: Thu, 14 Jun 2018 10:16:56 +0200 Subject: [PATCH 10/29] Create organisation.md --- docs/organisation.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/organisation.md diff --git a/docs/organisation.md b/docs/organisation.md new file mode 100644 index 0000000..ad0eb6d --- /dev/null +++ b/docs/organisation.md @@ -0,0 +1 @@ +This will describe the files in the Servonk repo AND the other dependent repos. From edd62169e8908137efdbbb039d8c29bcf8c08e10 Mon Sep 17 00:00:00 2001 From: madb1lly Date: Thu, 14 Jun 2018 10:17:35 +0200 Subject: [PATCH 11/29] Create troubleshooting.md --- docs/troubleshooting.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/troubleshooting.md diff --git a/docs/troubleshooting.md b/docs/troubleshooting.md new file mode 100644 index 0000000..58bf2ff --- /dev/null +++ b/docs/troubleshooting.md @@ -0,0 +1 @@ +This will describe troubleshooting tips for building and running Servonk based on the experience of other contributors. From c6c16dc0be40ab6cc3aae60ca99ae74563fcd4e6 Mon Sep 17 00:00:00 2001 From: madb1lly Date: Thu, 14 Jun 2018 10:19:04 +0200 Subject: [PATCH 12/29] Create build-process.md --- docs/build-process.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/build-process.md diff --git a/docs/build-process.md b/docs/build-process.md new file mode 100644 index 0000000..3310b53 --- /dev/null +++ b/docs/build-process.md @@ -0,0 +1 @@ +This will decribe the flow of the build process for Servonk including the dependent repositories. Note that it will not attempty to fully describe the build process for the platforms (Gonk, GNU/Linux, etc) nor Servo as these should be described elsewhere. From 595e088960fb366a1c3e56fa8020dbd0b08b3f55 Mon Sep 17 00:00:00 2001 From: madb1lly Date: Thu, 14 Jun 2018 10:20:40 +0200 Subject: [PATCH 13/29] Create architecture-and-execution.md --- docs/architecture-and-execution.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/architecture-and-execution.md diff --git a/docs/architecture-and-execution.md b/docs/architecture-and-execution.md new file mode 100644 index 0000000..19ca1d4 --- /dev/null +++ b/docs/architecture-and-execution.md @@ -0,0 +1 @@ +This will describe the architecture of Servonk and how it executes. From b3f412e79be9ec07e0d7c0a27608a367f24199b2 Mon Sep 17 00:00:00 2001 From: madb1lly Date: Thu, 14 Jun 2018 10:24:33 +0200 Subject: [PATCH 14/29] Create build-linux-glutin.md --- docs/build-linux-glutin.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/build-linux-glutin.md diff --git a/docs/build-linux-glutin.md b/docs/build-linux-glutin.md new file mode 100644 index 0000000..be93d6b --- /dev/null +++ b/docs/build-linux-glutin.md @@ -0,0 +1 @@ +This will describe how to build for Linux using Glutin. Instructions will be confirmed using Docker. From d868b81ca4ba75b3069b001db561139b8bf4341d Mon Sep 17 00:00:00 2001 From: madb1lly Date: Thu, 14 Jun 2018 10:25:28 +0200 Subject: [PATCH 15/29] Create build-aries-l --- docs/build-aries-l | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/build-aries-l diff --git a/docs/build-aries-l b/docs/build-aries-l new file mode 100644 index 0000000..6ff4454 --- /dev/null +++ b/docs/build-aries-l @@ -0,0 +1 @@ +This will describe how to build for the Sony Xperia Z3 Compact based on Android L/5.0. This device is known as the aries-l. The instructions will be confirmed using Docker. From c77e8f39a3ad74c2402a52b86b6479d1811d048e Mon Sep 17 00:00:00 2001 From: madb1lly Date: Thu, 14 Jun 2018 10:25:41 +0200 Subject: [PATCH 16/29] Rename build-aries-l to build-aries-l.md --- docs/{build-aries-l => build-aries-l.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/{build-aries-l => build-aries-l.md} (100%) diff --git a/docs/build-aries-l b/docs/build-aries-l.md similarity index 100% rename from docs/build-aries-l rename to docs/build-aries-l.md From ae0c0328e94e8d5a818a86b39cbb6c630fef1837 Mon Sep 17 00:00:00 2001 From: madb1lly Date: Thu, 14 Jun 2018 10:26:22 +0200 Subject: [PATCH 17/29] Create build-nexus-5-l.md --- docs/build-nexus-5-l.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/build-nexus-5-l.md diff --git a/docs/build-nexus-5-l.md b/docs/build-nexus-5-l.md new file mode 100644 index 0000000..da5138e --- /dev/null +++ b/docs/build-nexus-5-l.md @@ -0,0 +1 @@ +This will describe how to build for the Nexus 5. The instructions will be confirmed using Docker. From c32c4066265c830196802c2587ddd43acfc3fb05 Mon Sep 17 00:00:00 2001 From: madb1lly Date: Thu, 14 Jun 2018 10:27:19 +0200 Subject: [PATCH 18/29] Create get-servonk.md --- docs/get-servonk.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/get-servonk.md diff --git a/docs/get-servonk.md b/docs/get-servonk.md new file mode 100644 index 0000000..cf0ed05 --- /dev/null +++ b/docs/get-servonk.md @@ -0,0 +1 @@ +This will describe how to get a running version of Servonk. From 2854a500c316013688b1e17e29541f51eb31b9f7 Mon Sep 17 00:00:00 2001 From: madb1lly Date: Thu, 14 Jun 2018 10:28:10 +0200 Subject: [PATCH 19/29] Create run-releases.md --- docs/run-releases.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/run-releases.md diff --git a/docs/run-releases.md b/docs/run-releases.md new file mode 100644 index 0000000..73662d4 --- /dev/null +++ b/docs/run-releases.md @@ -0,0 +1 @@ +This will describe how to run the ready-built releases of Servonk. From 3d4425ab884f102d2dbbb4065fa1481d71bcd7eb Mon Sep 17 00:00:00 2001 From: madb1lly Date: Tue, 26 Jun 2018 11:21:04 +0200 Subject: [PATCH 20/29] Update target-devices-and-platforms.md Add work in progress devices - macOS and Flame. --- docs/target-devices-and-platforms.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/target-devices-and-platforms.md b/docs/target-devices-and-platforms.md index 19550ed..b3a456a 100644 --- a/docs/target-devices-and-platforms.md +++ b/docs/target-devices-and-platforms.md @@ -10,6 +10,10 @@ Using Glutin: To do: add links to the build instructions for each of the working devices. +# Work in progress +* macOS using Glutin - @novski in Telegram, confirmed built, instructions to be written and need confirmation it's running. +* Flame - @penserbjorne has stated a desire to get this working in the repo issues. + # Potential targets ## Intended targets Long term there is a desire not to support old hardware and to make Servonk usable on new devices. These devices listed below are the intended targets for running Servonk, so if you're working on this then great! @@ -40,6 +44,7 @@ There are many other possible devices and platforms which could run Servonk, how * It's possible therefore that making Servonk work on a hacked Panasonic TV could contribute to support on Librem 5! * [Redox OS](https://www.redox-os.org/) is a POSIX compliant OS written entirely in Rust. Since Servo is also written in Rust there's some synergies which make building for Redox interesting, but this won't contribute to the intended platforms. * macOS / Mac OSX desktop using Glutin +* Raspberry Pi or other SBCs using Glutin (not Gonk) * Windows For discussion use this issue: [Target platforms and devices #13](https://github.com/fabricedesre/servonk/issues/13) From e156261f82ad1c98105128f6012386756ec2ba29 Mon Sep 17 00:00:00 2001 From: madb1lly Date: Tue, 26 Jun 2018 17:07:14 +0200 Subject: [PATCH 21/29] Add descriptions of files in root Descriptions of rust-toolchain, bootstrap.sh and update-servo.sh. --- docs/organisation.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/docs/organisation.md b/docs/organisation.md index ad0eb6d..9b7e964 100644 --- a/docs/organisation.md +++ b/docs/organisation.md @@ -1 +1,23 @@ This will describe the files in the Servonk repo AND the other dependent repos. + +# [Servonk repo] (https://github.com/fabricedesre/servonk) +## Root +### [rust-toolchain] (https://github.com/fabricedesre/servonk/blob/master/rust-toolchain) +Contains the current version of the Rust toolchain which is used by Servo. This is updated by manually running update-servo.sh script. + +### [bootstrap.sh] (https://github.com/fabricedesre/servonk/blob/master/bootstrap.sh) +This checks the current version of the [rust-toolchain] (https://github.com/fabricedesre/servonk/blob/master/rust-toolchain), installs the rust toolchain for your current platform and the target armv7-linux-androideabi uaing the current vrsion and sets the override so that within the Servonk directory it will use this installed version of the toolchain for work on Servonk. This will only work if you have already installed [rustup] (https://github.com/rust-lang-nursery/rustup.rs), which is part of the dependencies for Servo (and therefore Servonk) as described [here] (https://github.com/servo/servo/blob/master/README.md#setting-up-your-environment). + +[Bindgen] (https://github.com/rust-lang-nursery/rust-bindgen) is needed to generate Rust FFI bindings to the [mtdev C library] (https://github.com/fabricedesre/servonk/tree/master/platform/gonk/mtdev/mtdev-1.1.5). "command -v bindgen >/dev/null 2>&1 || { etc..." checks if bindgen exists and if not it installs it with "cargo install -f bindgen". + +### [servonk] (https://github.com/fabricedesre/servonk/blob/master/servonk) + + +### [update-servo.sh] (https://github.com/fabricedesre/servonk/blob/master/update-servo.sh) +This script updates the Servonk repo with key resources from a Servo repository. The location of the Servo repository is given as an argument to the script. The script copies: +* The /resources directory of the Servo repository into the [/platform/shared] (https://github.com/fabricedesre/servonk/tree/master/platform/shared/resources) directory of the Servonk repository, +* The cargo.lock file into the [/platform/gonk] (https://github.com/fabricedesre/servonk/tree/master/platform/gonk) and [/platform/glutin] (https://github.com/fabricedesre/servonk/tree/master/platform/glutin) directories of the Servonk repository +* rust-toolchain into the Servonk respository +* For Gonk only, update the [cargo.lock] (https://github.com/fabricedesre/servonk/blob/master/platform/gonk/Cargo.lock) with the package versions for Fabrice's forks of [mozjs_sys] (https://github.com/fabricedesre/mozjs.git), [rust-webvr] (https://github.com/fabricedesre/rust-webvr.git) and [rust-webvr-api] (https://github.com/fabricedesre/rust-webvr.git). + +The script also runs [bootstrap.sh] (https://github.com/fabricedesre/servonk/blob/master/bootstrap.sh) to update the Rust toolchain and Bindgen. From 3ce8ec3e05ade564341e8f439d985d928173ae58 Mon Sep 17 00:00:00 2001 From: madb1lly Date: Wed, 27 Jun 2018 12:52:19 +0200 Subject: [PATCH 22/29] Fix hyperlinks --- docs/organisation.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/organisation.md b/docs/organisation.md index 9b7e964..c7f63d5 100644 --- a/docs/organisation.md +++ b/docs/organisation.md @@ -1,23 +1,23 @@ This will describe the files in the Servonk repo AND the other dependent repos. -# [Servonk repo] (https://github.com/fabricedesre/servonk) +# [Servonk repo](https://github.com/fabricedesre/servonk) ## Root -### [rust-toolchain] (https://github.com/fabricedesre/servonk/blob/master/rust-toolchain) +### [rust-toolchain](https://github.com/fabricedesre/servonk/blob/master/rust-toolchain) Contains the current version of the Rust toolchain which is used by Servo. This is updated by manually running update-servo.sh script. -### [bootstrap.sh] (https://github.com/fabricedesre/servonk/blob/master/bootstrap.sh) -This checks the current version of the [rust-toolchain] (https://github.com/fabricedesre/servonk/blob/master/rust-toolchain), installs the rust toolchain for your current platform and the target armv7-linux-androideabi uaing the current vrsion and sets the override so that within the Servonk directory it will use this installed version of the toolchain for work on Servonk. This will only work if you have already installed [rustup] (https://github.com/rust-lang-nursery/rustup.rs), which is part of the dependencies for Servo (and therefore Servonk) as described [here] (https://github.com/servo/servo/blob/master/README.md#setting-up-your-environment). +### [bootstrap.sh](https://github.com/fabricedesre/servonk/blob/master/bootstrap.sh) +This checks the current version of the [rust-toolchain](https://github.com/fabricedesre/servonk/blob/master/rust-toolchain), installs the rust toolchain for your current platform and the target armv7-linux-androideabi uaing the current vrsion and sets the override so that within the Servonk directory it will use this installed version of the toolchain for work on Servonk. This will only work if you have already installed [rustup](https://github.com/rust-lang-nursery/rustup.rs), which is part of the dependencies for Servo (and therefore Servonk) as described [here](https://github.com/servo/servo/blob/master/README.md#setting-up-your-environment). -[Bindgen] (https://github.com/rust-lang-nursery/rust-bindgen) is needed to generate Rust FFI bindings to the [mtdev C library] (https://github.com/fabricedesre/servonk/tree/master/platform/gonk/mtdev/mtdev-1.1.5). "command -v bindgen >/dev/null 2>&1 || { etc..." checks if bindgen exists and if not it installs it with "cargo install -f bindgen". +[Bindgen](https://github.com/rust-lang-nursery/rust-bindgen) is needed to generate Rust FFI bindings to the [mtdev C library](https://github.com/fabricedesre/servonk/tree/master/platform/gonk/mtdev/mtdev-1.1.5). "command -v bindgen >/dev/null 2>&1 || { etc..." checks if bindgen exists and if not it installs it with "cargo install -f bindgen". -### [servonk] (https://github.com/fabricedesre/servonk/blob/master/servonk) +### [servonk](https://github.com/fabricedesre/servonk/blob/master/servonk) -### [update-servo.sh] (https://github.com/fabricedesre/servonk/blob/master/update-servo.sh) +### [update-servo.sh](https://github.com/fabricedesre/servonk/blob/master/update-servo.sh) This script updates the Servonk repo with key resources from a Servo repository. The location of the Servo repository is given as an argument to the script. The script copies: -* The /resources directory of the Servo repository into the [/platform/shared] (https://github.com/fabricedesre/servonk/tree/master/platform/shared/resources) directory of the Servonk repository, -* The cargo.lock file into the [/platform/gonk] (https://github.com/fabricedesre/servonk/tree/master/platform/gonk) and [/platform/glutin] (https://github.com/fabricedesre/servonk/tree/master/platform/glutin) directories of the Servonk repository +* The /resources directory of the Servo repository into the [/platform/shared](https://github.com/fabricedesre/servonk/tree/master/platform/shared/resources) directory of the Servonk repository, +* The cargo.lock file into the [/platform/gonk](https://github.com/fabricedesre/servonk/tree/master/platform/gonk) and [/platform/glutin](https://github.com/fabricedesre/servonk/tree/master/platform/glutin) directories of the Servonk repository * rust-toolchain into the Servonk respository -* For Gonk only, update the [cargo.lock] (https://github.com/fabricedesre/servonk/blob/master/platform/gonk/Cargo.lock) with the package versions for Fabrice's forks of [mozjs_sys] (https://github.com/fabricedesre/mozjs.git), [rust-webvr] (https://github.com/fabricedesre/rust-webvr.git) and [rust-webvr-api] (https://github.com/fabricedesre/rust-webvr.git). +* For Gonk only, update the [cargo.lock](https://github.com/fabricedesre/servonk/blob/master/platform/gonk/Cargo.lock) with the package versions for Fabrice's forks of [mozjs_sys](https://github.com/fabricedesre/mozjs.git), [rust-webvr](https://github.com/fabricedesre/rust-webvr.git) and [rust-webvr-api](https://github.com/fabricedesre/rust-webvr.git). -The script also runs [bootstrap.sh] (https://github.com/fabricedesre/servonk/blob/master/bootstrap.sh) to update the Rust toolchain and Bindgen. +The script also runs [bootstrap.sh](https://github.com/fabricedesre/servonk/blob/master/bootstrap.sh) to update the Rust toolchain and Bindgen. From a37b28e4beee505cb5f12e6b337d523f255a0d42 Mon Sep 17 00:00:00 2001 From: madb1lly Date: Thu, 28 Jun 2018 12:27:24 +0200 Subject: [PATCH 23/29] Describe servonk script. --- docs/organisation.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/docs/organisation.md b/docs/organisation.md index c7f63d5..d73a19b 100644 --- a/docs/organisation.md +++ b/docs/organisation.md @@ -11,7 +11,24 @@ This checks the current version of the [rust-toolchain](https://github.com/fabri [Bindgen](https://github.com/rust-lang-nursery/rust-bindgen) is needed to generate Rust FFI bindings to the [mtdev C library](https://github.com/fabricedesre/servonk/tree/master/platform/gonk/mtdev/mtdev-1.1.5). "command -v bindgen >/dev/null 2>&1 || { etc..." checks if bindgen exists and if not it installs it with "cargo install -f bindgen". ### [servonk](https://github.com/fabricedesre/servonk/blob/master/servonk) +This is the main script for interfacing with Servonk. It's parameters are the functions you wish to perform, on which platform and with which options. The functions call other scripts in the [/platform](https://github.com/fabricedesre/servonk/tree/master/platform) for the specified platform, e.g. [/platform/gonk/support/scripts](https://github.com/fabricedesre/servonk/tree/master/platform/gonk/support/scripts) for Gonk. +Usage: ./servonk {build|clean|flash|package|run} {gonk|glutin} + +Functions: +* _build_ Servonk for specified platform. +* _clean_ the Servonk build files for the specified platform. +* _flash_ Servonk to the specified platform (not for Glutin) +* _frontend_ which only flashes the frontend of Servonk, it does not update the rest (not for Glutin) +* _package_ the built Servonk runtimes for distribution, e.g. as a [release](https://github.com/fabricedesre/servonk/releases) +* _run_ Servonk for the specified platform + +Supported platforms: +* _gonk_ +* _glutin_ + +Options: +* These depend on the function; to be completed. ### [update-servo.sh](https://github.com/fabricedesre/servonk/blob/master/update-servo.sh) This script updates the Servonk repo with key resources from a Servo repository. The location of the Servo repository is given as an argument to the script. The script copies: From bd970b643237e552100ad3cf99638518111139ba Mon Sep 17 00:00:00 2001 From: madb1lly Date: Thu, 28 Jun 2018 14:46:50 +0200 Subject: [PATCH 24/29] Revert "Update readme.md" --- readme.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/readme.md b/readme.md index d36678d..5b04825 100644 --- a/readme.md +++ b/readme.md @@ -20,9 +20,6 @@ You need to do a [b2g](https://github.com/mozilla-b2g/B2G) build for your device Also: - sudo apt install llvm-dev libclang-dev and clang (Ubuntu 18.04). -Also: -- sudo apt-get llvm-dev libclang-dev and clang (Ubuntu 18.04). - ## Building 1) First, install [rustup](https://rustup.rs/). From b3fa1ece51991a7b14e5012d1f9627b485ab123b Mon Sep 17 00:00:00 2001 From: madb1lly Date: Sat, 30 Jun 2018 00:19:21 +0200 Subject: [PATCH 25/29] Add more work in progress --- docs/target-devices-and-platforms.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/target-devices-and-platforms.md b/docs/target-devices-and-platforms.md index b3a456a..9489ad1 100644 --- a/docs/target-devices-and-platforms.md +++ b/docs/target-devices-and-platforms.md @@ -11,6 +11,8 @@ Using Glutin: To do: add links to the build instructions for each of the working devices. # Work in progress +* AOSP 8.1 in Android Emulator - vmx from IRC #b2g, built but not running +* AOSP 6.0 - confirmed working by Fabrice in Telegram group * macOS using Glutin - @novski in Telegram, confirmed built, instructions to be written and need confirmation it's running. * Flame - @penserbjorne has stated a desire to get this working in the repo issues. From e3e71c76f9c0ca4438e42c41ecd040a5fb484ab0 Mon Sep 17 00:00:00 2001 From: Will Date: Thu, 5 Jul 2018 23:35:29 +0200 Subject: [PATCH 26/29] Updated todo.md with TODO notes in source files. --- todo.md | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/todo.md b/todo.md index 5662b8d..161ca77 100644 --- a/todo.md +++ b/todo.md @@ -6,11 +6,15 @@ Servonk feature list ## Lockscreen - [x] lock after 1min of inactivity or when pressing the power button. +- [ ] main.js: replace idle event listener with a proper signal from the Servo side. +- [ ] main.js: turn off and turn off the screen properly ## Virtual Keyboard (see attachResizeListener) - [ ] script injection to listen to focus/blur events for now. - [ ] open keyboard... how to send back events? +- [ ] layout_dictionary_downloader.js: harden the verification +- [ ] candidate_panel_view.js: (latin too) Don't create a business logic object in these views ## Window manager - [x] frames are layout side by side. @@ -20,12 +24,20 @@ Servonk feature list - [x] the window title is displayed in the status bar. - [x] the favicon is displayed in the status bar. - [ ] pressing the status bar opens details/action for the site (eg. bookmarking). +- [ ] browser_window.rs: Change the scale based on the phone display's DPI. ## Homescreen - [ ] basic grid of bookmarked sites. - [ ] reorganize icons by dragging them around. - [ ] grouping by folders / sections? - [ ] automatic grouping by origin? +- [ ] statusbar.js: Use a default favicon + +## Search +- [ ] search_panel.js: + - [ ] Implement abortable fetch() in Servo instead for the search suggestion fetcher + - [ ] Don't hardcode Google as the default search engine (in utils.js too) + - [ ] Update top sites fetcher by dispatching to worker ## Menu (short press on the menu icon) - [ ] opens a panel with the search field at the bottom and quick settings on top. @@ -50,6 +62,7 @@ Servonk feature list - [ ] wifi (open and wpa/wpa2). - [ ] vibration? - [ ] lights? +- [ ] lib.rs: Why is disable_signals() preventing shutdown? # Notifications - [ ] from the desktop notifications api. @@ -84,7 +97,15 @@ Servonk feature list - [x] Desktop packages (Linux). - [ ] Desktop packages (Windows & Mac). - ## Tests - [ ] Embedding tests. - [ ] Frontend tests. + +## Dependencies +- [ ] bootstrap.sh: Check the current Rust version and only call rustup if needed + +## Building +- [ ] mtdev/build.rs: Unwrap the directory less when generating mod.rs + + + From c8f6370d0a69583733ad1162e0adb79d40c60165 Mon Sep 17 00:00:00 2001 From: madb1lly Date: Wed, 10 Oct 2018 16:51:02 +0200 Subject: [PATCH 27/29] Correct rust-toolchain description + typos --- docs/organisation.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/organisation.md b/docs/organisation.md index d73a19b..542d63e 100644 --- a/docs/organisation.md +++ b/docs/organisation.md @@ -3,10 +3,10 @@ This will describe the files in the Servonk repo AND the other dependent repos. # [Servonk repo](https://github.com/fabricedesre/servonk) ## Root ### [rust-toolchain](https://github.com/fabricedesre/servonk/blob/master/rust-toolchain) -Contains the current version of the Rust toolchain which is used by Servo. This is updated by manually running update-servo.sh script. +Contains the current version of the Rust toolchain which is used by Servo. This is updated by manually running bootstrap.sh script. ### [bootstrap.sh](https://github.com/fabricedesre/servonk/blob/master/bootstrap.sh) -This checks the current version of the [rust-toolchain](https://github.com/fabricedesre/servonk/blob/master/rust-toolchain), installs the rust toolchain for your current platform and the target armv7-linux-androideabi uaing the current vrsion and sets the override so that within the Servonk directory it will use this installed version of the toolchain for work on Servonk. This will only work if you have already installed [rustup](https://github.com/rust-lang-nursery/rustup.rs), which is part of the dependencies for Servo (and therefore Servonk) as described [here](https://github.com/servo/servo/blob/master/README.md#setting-up-your-environment). +This checks the current version of the [rust-toolchain](https://github.com/fabricedesre/servonk/blob/master/rust-toolchain), installs the rust toolchain for your current platform and the target armv7-linux-androideabi using the current version and sets the override so that within the Servonk directory it will use this installed version of the toolchain for work on Servonk. This will only work if you have already installed [rustup](https://github.com/rust-lang-nursery/rustup.rs), which is part of the dependencies for Servo (and therefore Servonk) as described [here](https://github.com/servo/servo/blob/master/README.md#setting-up-your-environment). [Bindgen](https://github.com/rust-lang-nursery/rust-bindgen) is needed to generate Rust FFI bindings to the [mtdev C library](https://github.com/fabricedesre/servonk/tree/master/platform/gonk/mtdev/mtdev-1.1.5). "command -v bindgen >/dev/null 2>&1 || { etc..." checks if bindgen exists and if not it installs it with "cargo install -f bindgen". From 5cb18af4805fa9707e1c98835daa353eda3ccaa7 Mon Sep 17 00:00:00 2001 From: madb1lly Date: Wed, 10 Oct 2018 16:52:45 +0200 Subject: [PATCH 28/29] Whitespace removal --- todo.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/todo.md b/todo.md index 161ca77..002893d 100644 --- a/todo.md +++ b/todo.md @@ -106,6 +106,3 @@ Servonk feature list ## Building - [ ] mtdev/build.rs: Unwrap the directory less when generating mod.rs - - - From 984d9412d6d5b9914d7a28221dbad09829cf73d2 Mon Sep 17 00:00:00 2001 From: Will Date: Thu, 11 Oct 2018 21:35:48 +0200 Subject: [PATCH 29/29] Remove placeholder files --- docs/architecture-and-execution.md | 1 - docs/build-aries-l.md | 1 - docs/build-linux-glutin.md | 1 - docs/build-nexus-5-l.md | 1 - docs/build-process.md | 1 - docs/get-servonk.md | 1 - docs/run-releases.md | 1 - docs/troubleshooting.md | 1 - 8 files changed, 8 deletions(-) delete mode 100644 docs/architecture-and-execution.md delete mode 100644 docs/build-aries-l.md delete mode 100644 docs/build-linux-glutin.md delete mode 100644 docs/build-nexus-5-l.md delete mode 100644 docs/build-process.md delete mode 100644 docs/get-servonk.md delete mode 100644 docs/run-releases.md delete mode 100644 docs/troubleshooting.md diff --git a/docs/architecture-and-execution.md b/docs/architecture-and-execution.md deleted file mode 100644 index 19ca1d4..0000000 --- a/docs/architecture-and-execution.md +++ /dev/null @@ -1 +0,0 @@ -This will describe the architecture of Servonk and how it executes. diff --git a/docs/build-aries-l.md b/docs/build-aries-l.md deleted file mode 100644 index 6ff4454..0000000 --- a/docs/build-aries-l.md +++ /dev/null @@ -1 +0,0 @@ -This will describe how to build for the Sony Xperia Z3 Compact based on Android L/5.0. This device is known as the aries-l. The instructions will be confirmed using Docker. diff --git a/docs/build-linux-glutin.md b/docs/build-linux-glutin.md deleted file mode 100644 index be93d6b..0000000 --- a/docs/build-linux-glutin.md +++ /dev/null @@ -1 +0,0 @@ -This will describe how to build for Linux using Glutin. Instructions will be confirmed using Docker. diff --git a/docs/build-nexus-5-l.md b/docs/build-nexus-5-l.md deleted file mode 100644 index da5138e..0000000 --- a/docs/build-nexus-5-l.md +++ /dev/null @@ -1 +0,0 @@ -This will describe how to build for the Nexus 5. The instructions will be confirmed using Docker. diff --git a/docs/build-process.md b/docs/build-process.md deleted file mode 100644 index 3310b53..0000000 --- a/docs/build-process.md +++ /dev/null @@ -1 +0,0 @@ -This will decribe the flow of the build process for Servonk including the dependent repositories. Note that it will not attempty to fully describe the build process for the platforms (Gonk, GNU/Linux, etc) nor Servo as these should be described elsewhere. diff --git a/docs/get-servonk.md b/docs/get-servonk.md deleted file mode 100644 index cf0ed05..0000000 --- a/docs/get-servonk.md +++ /dev/null @@ -1 +0,0 @@ -This will describe how to get a running version of Servonk. diff --git a/docs/run-releases.md b/docs/run-releases.md deleted file mode 100644 index 73662d4..0000000 --- a/docs/run-releases.md +++ /dev/null @@ -1 +0,0 @@ -This will describe how to run the ready-built releases of Servonk. diff --git a/docs/troubleshooting.md b/docs/troubleshooting.md deleted file mode 100644 index 58bf2ff..0000000 --- a/docs/troubleshooting.md +++ /dev/null @@ -1 +0,0 @@ -This will describe troubleshooting tips for building and running Servonk based on the experience of other contributors.