Skip to content
This repository has been archived by the owner on Aug 20, 2020. It is now read-only.

Jhbuild #404

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open

Jhbuild #404

wants to merge 6 commits into from

Conversation

mcatanzaro
Copy link
Contributor

jhbuild sysdeps work on any distro, and let us install the things we
need without knowing distribution-specific names for all the packages.

To use:

$ cd chromium/src/ozone/tools/jhbuild
$ jhbuild -f wayland.jhbuildrc sysdeps --install

Caveat: you need to install python-mako manually, since jhbuild doesn't
support installation of python dependencies yet. But it will appear in
the list of missing system dependencies.

This is done using PackageKit on most distros (which is great and usually doesn't require root) but using apt-file on Debian/Ubuntu (which is a bit slow and unfortunately requires it to be installed and run manually; jhbuild will instruct you on how to do so). I tested only on Fedora 22 and am curious if it works for you on Ubuntu; I expect there will be some build error requiring another dependency to be added to the moduleset, but maybe we get lucky and it will work the first time.

Example output:

$ jhbuild -f wayland.jhbuildrc sysdeps --install
System installed packages which are new enough:
    libxcb-composite (xcb-composite.pc, installed=1.11)
    libxcb-dri2 (xcb-dri2.pc, required=1.8, installed=1.11)
    pthread-stubs (pthread-stubs.pc, installed=0.1)
    libxcb-dri3 (xcb-dri3.pc, installed=1.11)
    xmlto 
    libxcb-glx (xcb-glx.pc, required=1.8.1, installed=1.11)
    libxcb-present (xcb-present.pc, installed=1.11)
    libXcursor (xcursor.pc, installed=1.1.14)
    automake 
    libX11-xcb (x11-xcb.pc, installed=1.6.3)
    doxygen 
    libxcb-sync (xcb-sync.pc, installed=1.11)
    git 
    libffi (libffi.pc, installed=3.1)
    libxcb-xfixes (xcb-xfixes.pc, installed=1.11)
    graphviz 
    libtool 
    make 
    libXfixes (xfixes.pc, installed=5.0.1)
    pkg-config 
    libXdamage (xdamage.pc, installed=1.1.4)
    mako 
    libXext (xext.pc, installed=1.3.3)
    libudev (libudev.pc, required=151, installed=219)
    libX11 (x11.pc, installed=1.6.3)
    llvm (required=3.1)
    libxshmfence (xshmfence.pc, required=1.1, installed=1.2)
    libxcb (xcb.pc, required=1.8, installed=1.11)
Required packages:
  System installed packages which are too old:
    (none)
  No matching system package installed:
    libevdev (libevdev.pc)
Optional packages: (JHBuild will build the missing packages)
  System installed packages which are too old:
    (none)
  No matching system package installed:
I: Installing dependencies on system: libevdev
I: Installing:
  libevdev-devel;1.4.2-1.fc22;x86_64;fedora
I: Complete!

I'm planning to remove the WebKitGTK+ install-dependencies script in favor of jhbuild sysdeps as well, incidentally, but that is a much bigger project.

@kalyankondapally
Copy link
Contributor

nice @joone PTAL

@joone
Copy link
Contributor

joone commented Jul 21, 2015

I tried to run jhbuild with this patches after installed Ubuntu 14.10. The installation and build work fine in Ubuntu 14.10, but it needs to install apt-file, llvm-dev, libexpat1-dev, libpng12-dev, libxcb-shm0-dev, libjpeg-dev and libpam0g-dev

@kalyankondapally kalyankondapally added this to the Trask milestone Jul 21, 2015
@mcatanzaro
Copy link
Contributor Author

Do you remember which particular modules required those packages, so I can add them as sysdeps? I will need to try removing those from my system and see if I can figure it out.

apt-file isn't a sysdep of course, since jhbuild will prompt Ubuntu/Debian users to install that.

@joone
Copy link
Contributor

joone commented Jul 21, 2015

@mcatanzaro I don't remember exactly.
Here is the order of packages I installed:
llvm-dev(mesa?)
libexpat1-dev(mesa?)
libpng12-dev (Cairo)
libxcb-shm0-dev (weston?)
libjpeg-dev (weston?)
libpam0g-dev(weston?)

@kalyankondapally kalyankondapally removed this from the Trask milestone Aug 15, 2015
@joone
Copy link
Contributor

joone commented Sep 14, 2015

@kalyankondapally I think we can merge this patch and then add the missing dependencies.

jhbuild sysdeps work on any distro, and let us install the things we
need without knowing distribution-specific names for all the packages.

To use:

$ cd chromium/src/ozone/tools/jhbuild
$ jhbuild -f wayland.jhbuildrc sysdeps --install

Caveat: you need to install python-mako manually, since jhbuild doesn't
support installation of python dependencies yet. But it will appear in
the list of missing system dependencies.
The demo clients are nifty tools to have during development.
Currently, you have to cd into src/ozone/tools/jhbuild in order to run
jhbuild. That's annoying. Make the paths depend on the location of the
jhbuildrc, rather than the cwd.
I've never actually managed to run Weston outside of X11. But hey, if
you want to do it, you can do it! This allows using the jhbuild
environment without installing a bunch of X11 dependencies. (Compare the
result of `jhbuild -f wayland.jhbuildrc sysdeps` with `jhbuild -f
wayland-no-x11.jhbuildrc sysdeps` to see the difference.)
@mcatanzaro
Copy link
Contributor Author

I'm working on this now. It's not a big job, I was just a bit lazy in getting around to it.

@mcatanzaro
Copy link
Contributor Author

I forgot to say, I think this is ready now. :)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants