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

Reply via email to