What about Mulet?

Hi Folks!

This is not about the haircut, but about Firefox Mulet (more doc on the MDN page).
Anyone tried to use it?

1 Like

(let’s rename this project Mulet OS :smiley: :joy:)

I didn’t but I plan to do it.
It’s a good idea to use the simulator, especially if you don’t have a dedicated device to test B2G OS right now.

last week i tired to create a gecko mulet build, but I’m on Elementary OS and somehow I can’t install all the required dependencies. I didn’t have much time to investigate, but I can give it an other try this weekend.

Elementary OS is a fork of ubuntu, anyone here who could help me with that? The dependencies seemed really messed up to me.

1 Like

I don’t use Elementary OS, but as it’s close to Ubuntu there might be a simple solution. Which dependency is broken ?

As a last option, you could use a live usb key.

I don’t have the machine here right now, but I will tell you tonight

This is where the build configuration process stops:

0:12.74 DEBUG: configure:15667: checking for gtk+-3.0 >= 3.4.0 gtk+-unix-print-3.0 glib-2.0 gobject-2.0
 0:12.74 DEBUG: configure: error: Library requirements (gtk+-3.0 >= 3.4.0 gtk+-unix-print-3.0 glib-2.0 gobject-2.0 ) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.
 0:12.74 ERROR: old-configure failed
 0:12.75 *** Fix above errors and then restart with\
 0:12.75                "/usr/bin/make -f client.mk build"
 0:12.75 make[2]: *** [configure] Fehler 1
 0:12.75 make[1]: *** [/home/jovan/pine/obj-x86_64-pc-linux-gnu/Makefile] Fehler 2
 0:12.75 make: *** [build] Fehler 2
 0:12.76 0 compiler warnings present.

so I tried to install gtk±3.0:

jovan@EOS:~/pine$ sudo aptitude install -V libgtk-3-dev
[sudo] password for jovan: 
The following NEW packages will be installed:
  gcc-4.9-base:i386{a} [4.9.3-0ubuntu4]  
  libatk-bridge2.0-dev{a} [2.10.2-2ubuntu1]  
  libatk1.0-dev{ab} [2.10.0-2ubuntu2]  libc6:i386{a} [2.19-0ubuntu6.7]  
  libcairo-script-interpreter2{a} [1.13.0~20140204-0ubuntu1.1]  
  libcairo2-dev{ab} [1.13.0~20140204-0ubuntu1.1]  
  libelfg0:i386{a} [0.8.13-5]  
  libffi6:i386{a} [3.1~rc1+r3.0.13-12ubuntu0.1]  
  libfontconfig1-dev{a} [2.11.0-0ubuntu4.1]  
  libfreetype6-dev{a} [2.5.2-1ubuntu2.5]  
  libgcc1:i386{a} [1:4.9.3-0ubuntu4]  
  libgdk-pixbuf2.0-dev{a} [2.30.7-0ubuntu1.2]  
  libglib2.0-0:i386{ab} [2.40.2-0ubuntu1]  
  libglib2.0-bin:i386{ab} [2.40.2-0ubuntu1]  
  libglib2.0-dev{ab} [2.40.2-0ubuntu1]  
  libgtk-3-dev{b} [3.10.8-0ubuntu1.6]  
  libharfbuzz-dev{a} [0.9.27-1ubuntu1]  
  libharfbuzz-gobject0{a} [0.9.27-1ubuntu1]  libice-dev{a} [2:1.0.8-2]  
  libpango1.0-dev{ab} [1.36.3-1ubuntu1.1]  
  libpcre3:i386{a} [1:8.31-2ubuntu2.3]  
  libpcre3-dev{a} [1:8.31-2ubuntu2.3]  libpcrecpp0{a} [1:8.31-2ubuntu2.3]  
  libpixman-1-dev{a} [0.30.2-2ubuntu1.1]  
  libpng12-dev{a} [1.2.50-1ubuntu2.14.04.2]  
  libpthread-stubs0-dev{a} [0.3-4]  
  libselinux1:i386{a} [2.2.2-1ubuntu0.1]  libsm-dev{a} [2:1.2.1-2]  
  libwayland-dev{ab} [1.4.0-1ubuntu1]  libx11-dev{a} [2:1.6.2-1ubuntu2]  
  libx11-doc{a} [2:1.6.2-1ubuntu2]  libxau-dev{a} [1:1.0.8-1]  
  libxcb-render0-dev{a} [1.10-2ubuntu1]  
  libxcb-shm0-dev{a} [1.10-2ubuntu1]  libxcb1-dev{a} [1.10-2ubuntu1]  
  libxcomposite-dev{a} [1:0.4.4-1]  libxcursor-dev{a} [1:1.1.14-1]  
  libxdamage-dev{a} [1:1.1.4-1ubuntu1]  libxdmcp-dev{a} [1:1.1.1-1]  
  libxext-dev{a} [2:1.3.2-1ubuntu0.0.14.04.1]  
  libxfixes-dev{a} [1:5.0.1-1ubuntu1.1]  libxft-dev{a} [2.3.1-2]  
  libxi-dev{ab} [2:1.7.1.901-1ubuntu1.1]  libxinerama-dev{a} [2:1.1.3-1]  
  libxkbcommon-dev{ab} [0.4.1-0ubuntu1]  libxrandr-dev{a} [2:1.4.2-1]  
  libxrender-dev{a} [1:0.9.8-1build0.14.04.1]  
  x11proto-composite-dev{a} [1:0.4.2-2]  
  x11proto-core-dev{a} [7.0.26-1~ubuntu2]  
  x11proto-damage-dev{a} [1:1.2.1-2]  
  x11proto-fixes-dev{a} [1:5.0-2ubuntu2]  x11proto-input-dev{a} [2.3-1]  
  x11proto-kb-dev{a} [1.0.6-2]  
  x11proto-randr-dev{a} [1.4.0+git20120101.is.really.1.4.0-0ubuntu1]  
  x11proto-render-dev{a} [2:0.11.1-2]  x11proto-xext-dev{a} [7.3.0-1]  
  x11proto-xinerama-dev{a} [1.2.1-2]  xorg-sgml-doctools{a} [1:1.11-1]  
  xtrans-dev{a} [1.3.5-1~ubuntu14.04.1]  
  zlib1g:i386{a} [1:1.2.8.dfsg-1ubuntu1]  
  zlib1g-dev{a} [1:1.2.8.dfsg-1ubuntu1]  
0 packages upgraded, 61 newly installed, 0 to remove and 41 not upgraded.
Need to get 15,3 MB of archives. After unpacking 74,8 MB will be used.
The following packages have unmet dependencies:
 libpango1.0-dev : Depends: libpango-1.0-0 (= 1.36.3-1ubuntu1.1) but 1.36.8-0ubuntu1~14.04~ricotz1 is installed.
                   Depends: libpangocairo-1.0-0 (= 1.36.3-1ubuntu1.1) but 1.36.8-0ubuntu1~14.04~ricotz1 is installed.
                   Depends: libpangoft2-1.0-0 (= 1.36.3-1ubuntu1.1) but 1.36.8-0ubuntu1~14.04~ricotz1 is installed.
                   Depends: libpangoxft-1.0-0 (= 1.36.3-1ubuntu1.1) but 1.36.8-0ubuntu1~14.04~ricotz1 is installed.
                   Depends: gir1.2-pango-1.0 (= 1.36.3-1ubuntu1.1) but 1.36.8-0ubuntu1~14.04~ricotz1 is installed.
 libxkbcommon-dev : Depends: libxkbcommon0 (= 0.4.1-0ubuntu1) but 0.4.3-2~14.04~ricotz1 is installed.
 libwayland-dev : Depends: libwayland-client0 (= 1.4.0-1ubuntu1) but 1.6.0-0ubuntu1~14.04~ricotz0 is installed.
                  Depends: libwayland-server0 (= 1.4.0-1ubuntu1) but 1.6.0-0ubuntu1~14.04~ricotz0 is installed.
                  Depends: libwayland-cursor0 (= 1.4.0-1ubuntu1) but 1.6.0-0ubuntu1~14.04~ricotz0 is installed.
 libglib2.0-0 : Breaks: libglib2.0-0:i386 (!= 2.42.2-0ubuntu1~14.04~ricotz0) but 2.40.2-0ubuntu1 is to be installed.
 libglib2.0-0:i386 : Breaks: libglib2.0-0 (!= 2.40.2-0ubuntu1) but 2.42.2-0ubuntu1~14.04~ricotz0 is installed.
 libglib2.0-dev : Depends: libglib2.0-0 (= 2.40.2-0ubuntu1) but 2.42.2-0ubuntu1~14.04~ricotz0 is installed.
 libxi-dev : Depends: libxi6 (= 2:1.7.1.901-1ubuntu1.1) but 2:1.7.4-1~14.04~ricotz1 is installed.
 libcairo2-dev : Depends: libcairo2 (= 1.13.0~20140204-0ubuntu1.1) but 1.14.2-1ubuntu1~trusty1 is installed.
                 Depends: libcairo-gobject2 (= 1.13.0~20140204-0ubuntu1.1) but 1.14.2-1ubuntu1~trusty1 is installed.
 libglib2.0-bin : Conflicts: libglib2.0-bin:i386 but 2.40.2-0ubuntu1 is to be installed.
 libglib2.0-bin:i386 : Conflicts: libglib2.0-bin but 2.42.2-0ubuntu1~14.04~ricotz0 is installed.
 libatk1.0-dev : Depends: libatk1.0-0 (= 2.10.0-2ubuntu2) but 2.14.0-1ubuntu1~trusty1 is installed.
                 Depends: gir1.2-atk-1.0 (= 2.10.0-2ubuntu2) but 2.14.0-1ubuntu1~trusty1 is installed.
 libgtk-3-dev : Depends: libgtk-3-0 (= 3.10.8-0ubuntu1.6) but 3.14.15-0ubuntu1~14.04~ricotz1 is installed.
                Depends: gir1.2-gtk-3.0 (= 3.10.8-0ubuntu1.6) but 3.14.15-0ubuntu1~14.04~ricotz1 is installed.
The following actions will resolve these dependencies:

      Keep the following packages at their current version:
1)      libatk-bridge2.0-dev [Not Installed]               
2)      libatk1.0-dev [Not Installed]                      
3)      libcairo2-dev [Not Installed]                      
4)      libgdk-pixbuf2.0-dev [Not Installed]               
5)      libglib2.0-0:i386 [Not Installed]                  
6)      libglib2.0-bin:i386 [Not Installed]                
7)      libglib2.0-dev [Not Installed]                     
8)      libgtk-3-dev [Not Installed]                       
9)      libpango1.0-dev [Not Installed]                    
10)     libwayland-dev [Not Installed]                     
11)     libxi-dev [Not Installed]                          
12)     libxkbcommon-dev [Not Installed]                   



Accept this solution? [Y/n/q/?] Y
No packages will be installed, upgraded, or removed.
0 packages upgraded, 0 newly installed, 0 to remove and 41 not upgraded.
Need to get 0 B of archives. After unpacking 0 B will be used.

but that doesn’t work so well :confused:

Why do you need to build it? What is wrong with the builds out of TaskCluster like this one? https://tools.taskcluster.net/task-inspector/#Q3HaTnVkT3KLhk2Ui-qqBA/0

Besides, those build dependencies are from Firefox mostly. Please refer to those documentation.

ah thank you, I’ll use that build

So I can run the latest kani branch. Browsing, settings and keyboard, all works fine.

That’s a good news. Maybe we can document this somewhere.
Is there any doc page to gather this kind of feedback ?
(I will link that to the doc topic)

1 Like

@TitanNano @kskarthik A documentation page (with screenshots :camera:) would be lovely. Do you have a little time to work on this?

2 Likes

yes:)

1 Like

I try to launch mulet to debug the apps but I have some problems.

  • The documentation is it up-to-date? I read that we can install mulet using the command “make mulet” into the gaia repository. I used also “npm install” before to install the dependencies but I still have:

/bin/bash: ./node_modules/.bin/mozilla-download: No such file or directory

Did I miss something? After correcting my problems, I will update the documentation on Mdn with all the aspects that are not completely clear.

  • So I tried to download the mulet build for linux. I supposed it is this one: Linux Gecko Mulet Pine. Mdn still point to mozilla central, we should precise the link to pine for the transition branch.
    Moreover, the documentation says that the build is called target.linux-x86_64.tar.bz2, but there is no file called like that, so I supposed it is public/build/target.tar.bz2

After that, I launched mulet with a command like this one into my gaia folder:
../mulet-b2g/firefox-bin -no-remote -profile profile-debug/
The firefox nighly window appears but it remains black on the “chrome://b2g/content/shell.html” url.
My console printed this: https://public.etherpad-mozilla.org/p/mulet-error

Thanks for any help on my problem. I run under Ubuntu 16.04 LTS, I don’t really know if it is important.

1 Like

How did you built the gaia profile?

I built it running DEBUG=1 DESKTOP=0 make into the gaia folder on the kanikani branch.

I’m not sure how well debug version of gaia will work : bug 1263308
I would recommend 1) to ./mach clobber and then ./mach build in the pine
and make a profile that’s not debug for gaia. You don’t need the DESKTOP=0
variable. make profile should be enough.

1 Like

mach is used to build. What I have download on task cluster is the result of the mach command, is it?

Yes, naoki is referring to |mach| tool for building Gecko.

1 Like

Ah apologies. I thought you had created your own mulet. Yes, you can use
the downloaded version instead; please try to use a non debug version of
gaia.

No problem, I should try to build my own to learn more about mulet.

Indeed, using the default options works. I have just run “make” into the gaia folder. Maybe having Firefox launched doesn’t help. Thank you a lot for your help @nhirata and @lissyx . I will go step by step to learn more about how all this thing work. But I can start working on dead apps and that’s really cool!