Hello ,
I am trying to build gtk+-3.2.0 with wayland backend by running the attached
script. I have used following configuration.
1.Wayland 0.85.
2. libffi -3.0.10
3. glib -2.30.2
4. atk -2.3.3
5. gdk-pixbuf 2.24.1
6. pango 1.29.4
7.gtk+-3.2.0
I am getting following error. Please guide me how to resolve these errors.
CC gdkdevice-wayland.lo
CC gdkdisplay-wayland.lo
gdkdisplay-wayland.c:121:21: error: variable 'shell_listener' has initializer
but incomplete type
gdkdisplay-wayland.c:122:3: warning: excess elements in struct initializer
[enabled by default]
gdkdisplay-wayland.c:122:3: warning: (near initialization for 'shell_listener')
[enabled by default]
gdkdisplay-wayland.c: In function 'compositor_handle_visual':
gdkdisplay-wayland.c:154:7: error: 'WL_COMPOSITOR_VISUAL_ARGB32' undeclared
(first use in this function)
gdkdisplay-wayland.c:154:7: note: each undeclared identifier is reported only
once for each function it appears in
gdkdisplay-wayland.c:155:3: warning: implicit declaration of function
'wl_visual_create' [-Wimplicit-function-declaration]
gdkdisplay-wayland.c:155:18: warning: assignment makes pointer from integer
without a cast [enabled by default]
gdkdisplay-wayland.c:157:7: error: 'WL_COMPOSITOR_VISUAL_PREMULTIPLIED_ARGB32'
undeclared (first use in this function)
gdkdisplay-wayland.c:158:32: warning: assignment makes pointer from integer
without a cast [enabled by default]
gdkdisplay-wayland.c:161:7: error: 'WL_COMPOSITOR_VISUAL_XRGB32' undeclared
(first use in this function)
gdkdisplay-wayland.c:162:17: warning: assignment makes pointer from integer
without a cast [enabled by default]
gdkdisplay-wayland.c: At top level:
gdkdisplay-wayland.c:167:21: error: variable 'compositor_listener' has
initializer but incomplete type
gdkdisplay-wayland.c:168:2: warning: excess elements in struct initializer
[enabled by default]
gdkdisplay-wayland.c:168:2: warning: (near initialization for
'compositor_listener') [enabled by default]
gdkdisplay-wayland.c: In function 'gdk_display_handle_global':
gdkdisplay-wayland.c:185:5: warning: implicit declaration of function
'wl_compositor_create' [-Wimplicit-function-declaration]
gdkdisplay-wayland.c:185:33: warning: assignment makes pointer from integer
without a cast [enabled by default]
gdkdisplay-wayland.c:186:5: warning: implicit declaration of function
'wl_compositor_add_listener' [-Wimplicit-function-declaration]
gdkdisplay-wayland.c:189:5: warning: implicit declaration of function
'wl_shm_create' [-Wimplicit-function-declaration]
gdkdisplay-wayland.c:189:26: warning: assignment makes pointer from integer
without a cast [enabled by default]
gdkdisplay-wayland.c:191:5: warning: implicit declaration of function
'wl_shell_create' [-Wimplicit-function-declaration]
gdkdisplay-wayland.c:191:28: warning: assignment makes pointer from integer
without a cast [enabled by default]
gdkdisplay-wayland.c:192:5: warning: implicit declaration of function
'wl_shell_add_listener' [-Wimplicit-function-declaration]
gdkdisplay-wayland.c:195:5: warning: implicit declaration of function
'wl_output_create' [-Wimplicit-function-declaration]
gdkdisplay-wayland.c:195:29: warning: assignment makes pointer from integer
without a cast [enabled by default]
gdkdisplay-wayland.c:199:5: warning: implicit declaration of function
'wl_input_device_create' [-Wimplicit-function-declaration]
gdkdisplay-wayland.c:199:11: warning: assignment makes pointer from integer
without a cast [enabled by default]
gdkdisplay-wayland.c: In function 'gdk_wayland_display_sync':
gdkdisplay-wayland.c:396:3: warning: implicit declaration of function
'wl_display_sync_callback' [-Wimplicit-function-declaration]
make[4]: *** [gdkdisplay-wayland.lo] Error 1
Regards,
Suranjana
Please do not print this email unless it is absolutely necessary.
The information contained in this electronic message and any attachments to
this message are intended for the exclusive use of the addressee(s) and may
contain proprietary, confidential or privileged information. If you are not the
intended recipient, you should not disseminate, distribute or copy this e-mail.
Please notify the sender immediately and destroy all copies of this message and
any attachments.
WARNING: Computer viruses can be transmitted via email. The recipient should
check this email and any attachments for the presence of viruses. The company
accepts no liability for any damage caused by any virus transmitted by this
email.
www.wipro.com
#!/bin/bash
# This builds and installs Wayland on Ubuntu Oneric machines with most video
cards.
set -e # exit script if anything fails
# Change this to where you want everything installed:
WLD=$HOME/install
export WLD
SOURCE=$HOME/source
export SOURCE
# Change to 1 to build relevant stuff. You'll need wayland built to
# build the others. But you can enable only wayland, build it, then
# disable wayland and enable something else. Or you can disable all of
# them to just run wayland (weston).
BUILD_WAYLAND=1
BUILD_GTK=1
BUILD_QT=0
BUILD_XWAYLAND=0 # Doesn't work.
# Set to nothing to skip cleaning for faster but less reliable rebuilds.
#CLEAN='git clean -x -f -d'
CLEAN=
# You might want to put these in your ~/.bashrc
PKG_CONFIG_PATH=$WLD/lib/pkgconfig/:$WLD/share/pkgconfig/
export PKG_CONFIG_PATH
ACLOCAL="aclocal -I $WLD/share/aclocal"
export ACLOCAL
C_INCLUDE_PATH=$WLD/include
export C_INCLUDE_PATH
LIBRARY_PATH=$WLD/lib
export LIBRARY_PATH
PATH=$WLD/bin:$PATH # Needed by gtk for $WLD/bin/gdk-pixbuf-pixdata
export PATH
# Do *not* put this in your ~/.bashrc, it will break things.
LD_LIBRARY_PATH=$WLD/lib
export LD_LIBRARY_PATH
# Get some more debugging output
MESA_DEBUG=1
export MESA_DEBUG
EGL_LOG_LEVEL=debug
export EGL_LOG_LEVEL
LIBGL_DEBUG=verbose
export LIBGL_DEBUG
# This one is noisy.
#WAYLAND_DEBUG=1
#export WAYLAND_DEBUG
#EGL_PLATFORM=wayland
#export EGL_PLATFORM
#EGL_DRIVER=egl_gallium
#export EGL_DRIVER
# qt5
QTVER=qt5
#QTDIR=$WLD/qt/$QTVER
#PATH=$QTDIR/bin/:$PATH
#LD_LIBRARY_PATH=$QTDIR/lib/:$LD_LIBRARY_PATH
#PKG_CONFIG_PATH=$QTDIR/lib/pkgconfig/:$PKG_CONFIG_PATH
#QT_PLUGIN_PATH=$QTDIR/lib/plugins/
QMAKE_INCLUDE=$WLD/include
QMAKE_LIBDIR=$WLD/lib
PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1
unset QTDIR
PATH="$SOURCE/qt5/qtbase/bin:$SOURCE/qt5/qtrepotools/bin:$PATH"
QT_QPA_PLATFORM=wayland # instead of args -platform wayland
export QTVER QTDIR PATH LD_LIBRARY_PATH PKG_CONFIG_PATH QT_PLUGIN_PATH
QMAKE_INCLUDE QMAKE_LIBDIR PKG_CONFIG_ALLOW_SYSTEM_CFLAGS QTDIR PATH
QT_QPA_PLATFORM
if [ "$XDG_RUNTIME_DIR" == "" ]
then
XDG_RUNTIME_DIR=/tmp
export XDG_RUNTIME_DIR
fi
GDK_BACKEND=wayland
export GDK_BACKEND
if [ ! -d $WLD ]
then
mkdir -p $WLD
fi
if [ ! -d $WLD/share/aclocal ]
then
mkdir -p $WLD/share/aclocal
fi
if [ ! -d $SOURCE ]
then
mkdir -p $SOURCE
fi
cd $SOURCE
# Changes:
# 2010-11-20 Changes from André de Souza Pinto
# 2010-12-06 "set -e" instead of "set -u". More aggressive git cleaning.
# 2010-12-29 --with-xkb-config-root, WAYLAND_DEBUG,
# gtk building stuff that doesn't work yet
# 2011-01-03 Upstream gtk git, reset --hard
# 2011-01-04 Conditional for building gtk instead of commenting out
# 2011-01-07 Don't reset to origin/master, build vte, added
# gobject-introspection package required to build vte, added
# gperf for gtk
# 2011-01-23 Added pixman git, new dep of cairo, stop using deprecated
# --enable-gles-overlay
# 2011-01-26 Install rsvg-convert for new window icon, also start:
# eventdemo, resizor, and simple-client
# 2011-01-31 Remove --disable-gallium-{i915,i965} from mesa build flags
# 2011-02-08 Update for wayland-egl.
# 2011-02-13 Stop building Gallium EGL driver, nolonger needed.
# 2011-02-14 Only do Ubuntu stuff if on Ubuntu. Re-install
# 70-wayland.rules if previously installed but different.
# Don't change XDG_RUNTIME_DIR if it's already set.
# 2011-02-16 Update for wayland repo split.
# 2011-04-02 Change build order to match instructions, thanks to creak
# in #wayland.
# 2012-03-10 Non-functional attempt to update for Ubuntu Oneric.
# 2012-03-12 Made functional by adding flex, llvm-dev, libxcb-xfixes0-dev
# libjpeg-dev to installed packages.
# Changed weston's make install to use sudo.
# 2012-03-12 Cleaned up mesa build args, changed installprefix variable
# from $installprefix to $WLD to match build instructions.
# 2012-03-14 Actually got wayland to run.
# 2012-03-14 Download to $SOURCE instead of $WLD. Re-enabled building
# cairo-gl - supposedly optional. Update GTK build, might
# be done, suspect gtk git bug.
# 2012-03-14 Preliminary xwayland stuff, didn't work.
# 2012-03-16 Add $WLD/bin to path to get latest gtk to build. Switch back
# to latest gtk.
# 2012-03-16 Cleanup cloning branches.
# 2012-03-21 Switch vte from branch vte-0-30 to vte-0-32 which apparently
# works better.
# 2012-03-23 Added Qt + qtwebkit, not tested. Fix apt-get install
# for GTK+. Add $BUILD_WAYLAND var so it's easier to skip.
# 2012-03-24 Builds fancybrowser (qtwebkit), doesn't run it, qt5
# downloading not test.ed
# 2012-03-24 Re-enable set -e for everything but qt5 make. Fixed running
# webkit.
# 2012-03-24 Base running of vte and webkit on file existence, so it's
# easier to use this script to just run everything.
# 2012-03-24 Only apt-get install packages for wayland if building
# wayland.
# 2012-03-25 Updated xwayland build, still not working. Added bison to
# installed packags.
# 2012-04-06 Check out specific cairo commit before bug, also build
# pango - new gtk dependency.
# 2012-04-06 Fixed pango git clone command.
# 2012-04-08 Install more ubuntu packages for QT5.
# 2012-04-15 Switch mesa back to master - 8.0 no-longer biulds against
# drm master, and wayland 0.85 now builds against mesa master.
# Problem reported by runeks. Disabled Qt build by default
# because it's so problematic, mostly the download.
# 2012-04-21 Added comment with the reason for the cairo checkout:
# https://bugs.freedesktop.org/show_bug.cgi?id=48221
# 2012-03-12 mesa flex
# 2012-03-12 mesa llvm-dev
# 2012-03-12 weston libxcb-xfixes0-dev No package 'xcb-xfixes' found
# 2012-03-12 weston libjpeg-dev configure: error: libjpeg not found
# 2012-03-13 mesa libxcb-dri2-0-dev EGL drivers missing egl_dri2
# GTK:
# 2012-03-14 glib gtk-doc-tools *** No GTK-Doc found, please install it
***
# 2012-03-14 gtk gobject-introspection gdk/Makefile.am:187:
HAVE_INTROSPECTION does not appear in AM_CONDITIONAL
# 2012-03-14 gtk libpango1.0-dev No package 'pango' found
# 2012-03-14 ? gperf You need to install GNU gperf
# xwayland:
# 2012-03-14 xserver x11proto-xcmisc-dev No package 'xcmiscproto' found
# 2012-03-14 xserver x11proto-bigreqs-dev No package 'bigreqsproto' found
# 2012-03-14 xserver x11proto-randr-dev No package 'randrproto' found
# 2012-03-14 xserver x11proto-fonts-dev No package 'fontsproto' found
# 2012-03-14 xserver x11proto-video-dev No package 'videoproto' found
# 2012-03-14 xserver x11proto-composite-dev No package 'compositeproto' found
# 2012-03-14 xserver x11proto-record-dev No package 'recordproto' found
# 2012-03-14 xserver x11proto-resource-dev No package 'resourceproto' found
# 2012-03-14 xserver libxkbfile-dev No package 'xkbfile' found
# 2012-03-14 xserver libxfont-dev No package 'xfont' found
if [ $BUILD_WAYLAND == '1' ]
then
echo "Building wayland.";
# Wayland libraries, required by Mesa
cd wayland/
./autogen.sh --prefix=$WLD
make
make install
cd ..
# Needed for wayland on nouveau and ATI
cd drm
./autogen.sh --prefix=$WLD --enable-nouveau-experimental-api
make
make install
cd ..
# Needed for libX11 and xproto
cd macros
./autogen.sh --prefix=$WLD
make install
cd ..
# Needed for mesa
cd glproto
./autogen.sh --prefix=$WLD
make install
cd ..
# Needed for mesa
cd dri2proto
./autogen.sh --prefix=$WLD
make install
cd ..
# Needed for wayland
cd mesa
# Now using egl_dri2 for everything.
./autogen.sh --prefix=$WLD --enable-gles2 --disable-gallium-egl
--with-egl-platforms=wayland,drm --enable-gbm --enable-shared-glapi
make
make install
cd ..
# Needed for libxkbcommon
cd xproto
./autogen.sh --prefix=$WLD
make install
cd ..
# Needed for libxkbcommon
cd kbproto/
./autogen.sh --prefix=$WLD
make install
cd ..
# Needed for libxkbcommon
cd libX11
./autogen.sh --prefix=$WLD
make install
cd ..
# Needed for wayland
cd libxkbcommon/
./autogen.sh --prefix=$WLD --with-xkb-config-root=/usr/share/X11/xkb
make
make install
cd ..
# Needed for cairo
cd pixman
./autogen.sh --prefix=$WLD
make
make install
cd ..
# Needed for wayland
cd cairo
./autogen.sh --prefix=$WLD --enable-gl --enable-xcb
make
make install
cd ..
# Wayland demo applications (compositor, terminal, flower, etc.)
cd weston
#./autogen.sh --prefix=$WLD
./autogen.sh --prefix=$WLD --disable-setuid-install # To remove need for sudo
make
#sudo make install # Because weston is installed setuid root
make install # Need to enable --disable-setuid-install above to use this.
cd ..
# No-longer used?
# # The one file that needs to be installed outside of ~/install/ .
# #diff -q wayland/compositor/70-wayland.rules
/etc/udev/rules.d/70-wayland.rules
# #if [ $? -eq 1 ] && [ -d /etc/udev/rules.d ]
# #then
# sudo cp -a wayland-demos/compositor/70-wayland.rules /etc/udev/rules.d/
# sudo udevadm trigger --subsystem-match=drm --subsystem-match=input
# #fi
fi
if [ $BUILD_GTK == '1' ]
then
echo "Building GTK with vte."
cd libffi-3.0.10
./configure --prefix=$WLD
make
make install
cd ..
cd glib-2.33.1
./autogen.sh --prefix=$WLD
make
make install
cd ..
cd atk-2.3.3
./configure --prefix=$WLD
make
make install
cd ..
cd pango-1.29.4
./autogen.sh --prefix=$WLD
make
make install
cd ..
# As of 2012-03-14, gtk git is saying:
# Requested 'gdk-pixbuf-2.0 >= 2.25.2' but version of GdkPixbuf is 2.24.0
cd gdk-pixbuf-2.24.1
./configure --prefix=$WLD --without-libtiff # Is it worth grabbing libtiff?
make
make install
cd ..
cd gtk+-3.2.0
#./autogen.sh --prefix=$WLD --enable-wayland-backend --enable-x11-backend
./autogen.sh --prefix=$WLD --enable-wayland-backend
make
make install
cd ..
cd vte
./autogen.sh --prefix=$WLD --with-gtk=3.0 # --with-gtk=3.0 nolonger needed?
make
make install
cd ..
fi
if [ $BUILD_QT == '1' ]
then
echo "Building qt5 with webkit.";
if [ ! -d qt5 ]
then
git clone git://gitorious.org/qt/qt5 # 0:38.56elapsed
cd qt5
perl init-repository # 1:00:19elapsed 46:53.51elapsed
else
cd qt5
fi
cd qtwayland
git clean -xfd
git checkout 0.85
cd ..
#./configure -confirm-license -developer-build -opensource -nomake examples
-nomake tests -prefix $WLD/qt5 # 0:48.11elapsed
#./configure -confirm-license -opensource -nomake examples -nomake tests
-prefix $WLD/qt5 # 0:48.11elapsed
./configure -confirm-license -developer-build -opensource -nomake examples
-nomake tests # 0:48.11elapsed # works, but only installs to $SOURCE
set +e # I think qt5's make always returns non-zero :(
make # 37:43.72elapsed
# make install
# make module-qtwebkit # shouldn't be necessary, but sometimes is?
# make install
make module-qtwayland # 0:14.01elapsed
# PATH=$WLD/qt5:$PATH # Who ever heard of needing to set this for
# QTDIR=$WLD/qt5 # make install to work? Doesn't help :(
# export PATH QTDIR
make install # 2:18.32elapsed
set -e
cd ..
fi
if [ $BUILD_XWAYLAND == '1' ]
then
if [ ! -d xserver ]
then
git clone git://people.freedesktop.org/~krh/xserver -b xwayland-1.10
else
cd xserver
$CLEAN
git pull
git checkout xwayland-1.10
cd ..
fi
cd xserver
./autogen.sh --prefix=$WLD --disable-dri --disable-dri2 --disable-config-hal
--enable-unix-transport --enable-tcp-transport --disable-config-udev
--disable-config-dbus --disable-xaa --enable-libdrm --disable-xnest
--disable-xvfb --disable-dmx --disable-xvmc --disable-dga --disable-screensaver
--disable-xdmcp --disable-xdm-auth-1 --disable-glx --disable-xinerama
--disable-xace --disable-selective-werror
make
make install
cd ..
if [ ! -d xf86-video-wlshm ]
then
git clone git://people.freedesktop.org/~iksaif/xf86-video-wlshm
else
cd xf86-video-wlshm
$CLEAN
git pull
cd ..
fi
cd xf86-video-wlshm
./autogen.sh --prefix=$WLD
make
make install
cd ..
# if [ ! -d xf86-video-intel ]
# then
# git clone git://people.freedesktop.org/~krh/xf86-video-intel -b xwayland
# else
# cd xf86-video-intel
# $CLEAN
# git pull
# git checkout xwayland
# cd ..
# fi
# cd xf86-video-intel
# ./autogen.sh --prefix=$WLD
# make
# make install
if [ ! -d $WLD/etc/X11 ]
then
mkdir -p $WLD/etc/X11/bah
fi
if [ ! -e $WLD/etc/X11/bah/xorg.conf ]
then
cat > $WLD/etc/X11/bah/xorg.conf <<EOF
Section "Device"
Identifier "Device"
Driver "wlshm" # or intel
EndSection
EOF
fi
cd ..
fi
echo -e "\nRunning weston, the example wayland compositor."
$WLD/bin/weston &
echo "Sleeping 2 seconds so the compositor is actually running by the time I
run other stuff."
sleep 2
#$SOURCE/weston/clients/clickdot &
#$SOURCE/weston/clients/dnd &
#$SOURCE/weston/clients/eventdemo &
$SOURCE/weston/clients/flower &
#$SOURCE/weston/clients/image &
#$SOURCE/weston/clients/resizor &
#$SOURCE/weston/clients/screenshot &
#$SOURCE/weston/clients/simple-egl &
#$SOURCE/weston/clients/simple-shm &
#$SOURCE/weston/clients/simple-touch &
#$SOURCE/weston/clients/smoke &
#$SOURCE/weston/clients/view &
#$SOURCE/weston/clients/weston-desktop-shell &
#$SOURCE/weston/clients/weston-tablet-shell &
#$SOURCE/weston/clients/weston-terminal &
$WLD/bin/weston-terminal &
# $SOURCE/gtk+/tests/testgtk &
if [ -e $WLD/bin/vte2_90 ]
then
echo "Running vte, a gtk+ terminal client."
$WLD/bin/vte2_90 &
else
echo "vte terminal client isn't installed."
fi
# Run webkit web browser!
if [ -e
$SOURCE/qt5/qtwebkit-examples-and-demos/examples/webkit/fancybrowser/fancybrowser
]
then
echo "Running fancybrowser / qtwebkit."
$SOURCE/qt5/qtwebkit-examples-and-demos/examples/webkit/fancybrowser/fancybrowser
&
else
echo "QtWebKit web browser isn't installed.";
fi
if [ -e $WLD/bin/Xorg ]
then
echo "Running X.org rootless as DISPLAY=:2"
$WLD/bin/Xorg -config bah/xorg.conf -wayland -rootless :2 &
echo "Running xterm via rootless X.org"
# DISPLAY=:2
# export DISPLAY
"xterm -display :2 &";
fi
_______________________________________________
wayland-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-devel