Warning

Currently, Compiz sessions are failing to launch on Fedora 21. This is being investigated.

JHBuild

The instructions on this page need JHBuild. If you are new to JHBuild or need more information about installing and configuring JHBuild please take a look at the Getting Started page of JHBuild

Update ~/.config/jhbuildrc

These steps will build the full session.

Update modulesets and modules

Note that these steps will build gnome-shell and mutter even though we will not use them.

moduleset = 'gnome-world'
modules = ['meta-gnome-core', 'meta-gnome-flashback']

Workaround for Fedora and other distros with cpupower instead of cpufreq

module_autogenargs['gnome-applets'] = '--with-cpufreq-lib=cpupower'

These lines may also be necessary

module_autogenargs['wayland'] = '--disable-documentation'
module_autogenargs['gnome-terminal'] = '--disable-search-provider'
module_autogenargs['gnome-settings-daemon'] = '--disable-network-manager'

Install dependencies

Ubuntu 14.10

This command was written for Gnome and Gnome Flashback 3.14.x.

sudo apt-get install ant ant-optional ca-certificates-java clang-3.3 comerr-dev default-jre-headless emscripten fastjar icedtea-7-jre-jamvm icon-naming-utils icu-devtools jarwrapper java-common krb5-multidev libandroid-json-org-java libarchive-dev libargs4j-java libasound2-dev libatinject-jsr330-api-java libavahi-client-dev libavahi-common-dev libavahi-glib-dev libavahi-gobject-dev libc-ares2 libcairomm-1.0-dev libcanberra-gtk-dev libclang-common-3.3-dev libclang1-3.3 libclosure-compiler-java libcurl4-gnutls-dev libdrm-dev libenchant-dev libexempi-dev libexif-dev libflac-dev libgcrypt11-dev libgl1-mesa-dev libgmime-2.6-dev libgnutls-dev libgnutlsxx27 libgpg-error-dev libgphoto2-dev libgssrpc4 libguava-java libicu-dev libidn11-dev libjson-c-dev libjson0-dev libjsr305-java libkadm5clnt-mit9 libkadm5srv-mit9 libkdb5-7 libkrb5-dev liblcms2-dev libldap2-dev libllvm3.3 libmozjs-24-0 libmozjs-24-bin libmozjs-24-dev libmozjs185-1.0 libmozjs185-dev libmusicbrainz5-0 libmusicbrainz5-dev libneon27-gnutls-dev libnice-dev liboauth-dev libobjc-4.8-dev libobjc4 libogg-dev libp11-kit-dev libproxy-dev libpython-dev libpython2.7-dev libpython3-dev libpython3.4-dev librtmp-dev libsigc++-2.0-dev libsmbclient-dev libsndfile1-dev libspeex-dev libtag1-dev libtasn1-6-dev libtinfo-dev libusb-1.0-0-dev libusb-1.0-doc libv4l-dev libv4l2rds0 libv8-3.14.5 libvorbis-dev libvpx-dev libwavpack-dev libx11-xcb-dev libxcb-dri2-0-dev libxcb-dri3-dev libxcb-glx0-dev libxcb-present-dev libxcb-randr0-dev libxcb-shape0-dev libxcb-sync-dev libxcb-xfixes0-dev libxerces2-java libxml-commons-external-java libxml-commons-resolver1.1-java libxml-namespacesupport-perl libxml-sax-base-perl libxml-sax-expat-perl libxml-sax-perl libxml-simple-perl libxshmfence-dev libxtst-dev libxxf86vm-dev llvm llvm-3.3 llvm-3.3-dev llvm-3.3-runtime llvm-3.4 llvm-3.4-dev llvm-3.4-runtime llvm-runtime mesa-common-dev nodejs openjdk-7-jre-headless python-dev python2.7-dev python3-cairo-dev python3-dev python3.4-dev tzdata-java uuid-dev x11proto-dri2-dev x11proto-gl-dev x11proto-record-dev x11proto-xf86vidmode-dev libcap-dev libdb-dev libwebp-dev ruby libpam-dev libmpfr-dev bison flex gperf ragel libreadline-dev libjpeg-dev libtiff-dev libsystemd-login-dev libegl1-mesa-dev libgusb-dev libudev-dev libsbc-dev libsystemd-journal-dev libsystemd-daemon-dev libwacom-dev libcups2-dev texinfo libcrack2-dev libmm-glib-dev modemmanager-dev libgnome-bluetooth-dev raptor-utils python-rdflib

Fedora 21

1st, run this command, which will prompt you to install numerous dependencies:

jhbuild sysdeps --install

The following package is required at runtime:

sudo yum install gnome-icon-theme-legacy

The following packages may also be necessary:

sudo yum install docbook-style-xsl python-rdflib pygobject2-devel pygobject3-devel gtksourceview3 polkit-gnome polkit-devel xmlto raptor2 sqlite appdata-tools cmake gnome-icon-theme-devel

sudo yum install gl startup-notification taglib gudev xcb-dri2 xkeyboard-config js17 xorg-wacom json lcms2 libatasmart xtrans libcanberra libmusicbrainz libXdamage libXcursor libXfixes WebKit1 libXrandr gnutls libXt libusb1 xorg-macros xorg-xproto avahi xfont gmime libxkbfile libxklavier libxml2 libdrm libexif dbus dbus-glib nss libical mtdev cairomm dvdread enchant p11-kit libnl-route liboauth exempi libsndfile flac libsystemd libtasn1 gbm libxslt pixman shared-mime-info bluez js24 libndp libnice WebKit sbc

Run jhbuild build

jhbuild build

Fix errors that you got until all packages are built. Almost all errors will be due to missing dependencies.

Setup GNOME to run from display manager

For more info, see: https://developer.gnome.org/jhbuild/stable/jhbuild-and-gnome.html.en

However:

1. Create 2 additional files:

/usr/share/xsessions/gnome-flashback-metacity-jhbuild.desktop

[Desktop Entry]
Name=GNOME Flashback (Metacity) (JHBuild)
Comment=This session logs you into GNOME Flashback (Metacity) testing session
DesktopNames=GNOME-Flashback;GNOME;
TryExec=/usr/local/bin/gnome-flashback-metacity-jhbuild-session
Exec=/usr/local/bin/gnome-flashback-metacity-jhbuild-session
Icon=
Type=Application

/usr/share/xsessions/gnome-flashback-compiz-jhbuild.desktop

[Desktop Entry]
Name=GNOME Flashback (Compiz) (JHBuild)
Comment=This session logs you into GNOME Flashback (Compiz) testing session
DesktopNames=GNOME-Flashback;GNOME;
TryExec=/usr/local/bin/gnome-flashback-compiz-jhbuild-session
Exec=/usr/local/bin/gnome-flashback-compiz-jhbuild-session
Icon=
Type=Application

Note that the "DesktopNames" line is required for components such as gnome-panel to start.

2. In addition to creating the script for a regular GNOME jhbuild session, you will create 2 GNOME flashback scripts.

Create this script for Metacity:

/usr/local/bin/gnome-flashback-metacity-jhbuild-session

GNOME=~/jhbuild/install

PATH=${GNOME}/bin:${GNOME}/sbin:${PATH}
LD_LIBRARY_PATH=${GNOME}/lib:${LD_LIBRARY_PATH}
PYTHONPATH=${GNOME}/lib/python2.7/site-packages:/usr/lib/python2.7/site-packages
PKG_CONFIG_PATH=${GNOME}/lib/pkgconfig:${GNOME}/share/pkgconfig:/usr/lib/pkgconfig
XDG_DATA_DIRS=${GNOME}/share:/usr/share
XDG_CONFIG_DIRS=${GNOME}/etc/xdg

unset DBUS_SESSION_BUS_ADDRESS
export PATH LD_LIBRARY_PATH PYTHONPATH PKG_CONFIG_PATH GDK_USE_XFT XDG_DATA_DIRS XDG_CONFIG_DIRS

#exec valgrind --tool=memcheck --log-file=/tmp/session-grind.log ${GNOME}/bin/gnome-session
exec ${GNOME}/bin/gnome-session --debug --session=gnome-flashback-metacity

And create this script for Compiz:

/usr/local/bin/gnome-flashback-compiz-jhbuild-session

GNOME=~/jhbuild/install

PATH=${GNOME}/bin:${GNOME}/sbin:${PATH}
LD_LIBRARY_PATH=${GNOME}/lib:${LD_LIBRARY_PATH}
PYTHONPATH=${GNOME}/lib/python2.7/site-packages:/usr/lib/python2.7/site-packages
PKG_CONFIG_PATH=${GNOME}/lib/pkgconfig:${GNOME}/share/pkgconfig:/usr/lib/pkgconfig
XDG_DATA_DIRS=${GNOME}/share:/usr/share
XDG_CONFIG_DIRS=${GNOME}/etc/xdg

unset DBUS_SESSION_BUS_ADDRESS
export PATH LD_LIBRARY_PATH PYTHONPATH PKG_CONFIG_PATH GDK_USE_XFT XDG_DATA_DIRS XDG_CONFIG_DIRS

#exec valgrind --tool=memcheck --log-file=/tmp/session-grind.log ${GNOME}/bin/gnome-session
exec ${GNOME}/bin/gnome-session --session=gnome-flashback-compiz

These two files must be executable:

    sudo chmod a+x /usr/local/bin/gnome-flashback-metacity-jhbuild-session
    sudo chmod a+x /usr/local/bin/gnome-flashback-compiz-jhbuild-session

Troubleshooting

If gnome-panel has no applications menu

You can run this command.

Warning: It will reset all your gnome-panel settings.

jhbuild run dconf reset -f /org/gnome/gnome-panel/

Projects/GnomeFlashback/JHBuild/3.16 (last edited 2015-11-21 14:35:10 by SebastianGeiger)