LinuxQuestions.org
Review your favorite Linux distribution.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 09-28-2016, 02:21 AM   #1
cnv
LQ Newbie
 
Registered: Oct 2013
Posts: 9

Rep: Reputation: Disabled
Building Weston


Hi! I'm trying to build Weston on Slackware -current. It's failing at the linking stage:
Code:
  CC       clients/weston_subsurfaces-subsurfaces.o
  CCLD     weston_subsurfaces
/usr/local/lib/libxcb-shm.so: undefined reference to `xcb_send_request_with_fds'
collect2: error: ld returned 1 exit status
I use
pam
libxcb-1.12
MarkupSafe
Mako
wayland.SlackBuild

Code:


#!/bin/sh

# Slackware build script for Wayland

PRGNAM=Wayland
#VERSION=${VERSION:-$(date +"%Y%m%d")}
VERSION=${VERSION:-20160928}
BUILD=${BUILD:-1}
TAG=${TAG:-_WL}

SRCNAM=wayland

if [ -z "$ARCH" ]; then
  case "$( uname -m )" in
    i?86) ARCH=i586 ;;
    arm*) ARCH=arm ;;
       *) ARCH=$( uname -m ) ;;
  esac
fi

# Check if we have the tarball
if [ ! -r $SRCNAM-$VERSION.tar.bz2 ]; then
  echo ""
  echo "$SRCNAM-$VERSION.tar.bz2 not found."
  echo ""
  git clone git://anongit.freedesktop.org/wayland/wayland wayland/wayland || exit 1
  git clone git://anongit.freedesktop.org/git/mesa/drm wayland/drm || exit 1
  git clone git://anongit.freedesktop.org/xcb/proto wayland/proto || exit 1
  git clone git://anongit.freedesktop.org/xorg/util/macros wayland/macros || exit 1
  git clone git://anongit.freedesktop.org/xcb/libxcb wayland/libxcb || exit 1
  git clone git://anongit.freedesktop.org/xorg/proto/presentproto wayland/presentproto || exit 1
  git clone git://anongit.freedesktop.org/xorg/proto/dri3proto wayland/dri3proto || exit 1
  git clone git://anongit.freedesktop.org/xorg/lib/libxshmfence wayland/libxshmfence || exit 1
  git clone git://github.com/xkbcommon/libxkbcommon wayland/libxkbcommon || exit 1
  git clone git://anongit.freedesktop.org/mesa/mesa wayland/mesa || exit 1
  git clone git://anongit.freedesktop.org/pixman wayland/pixman || exit 1
  git clone git://anongit.freedesktop.org/cairo wayland/cairo || exit 1
  git clone git://git.sv.gnu.org/libunwind wayland/libunwind || exit 1
  git clone git://anongit.freedesktop.org/libevdev wayland/libevdev || exit 1
  git clone git://anongit.freedesktop.org/wayland/wayland-protocols wayland/wayland-protocols || exit 1
  git clone git://git.code.sf.net/p/linuxwacom/libwacom wayland/libwacom || exit 1
  git clone git://anongit.freedesktop.org/wayland/libinput wayland/libinput || exit 1
  git clone git://anongit.freedesktop.org/wayland/weston wayland/weston || exit 1

  git clone git://github.com/anholt/libepoxy wayland/libepoxy || exit 1
  git clone git://anongit.freedesktop.org/xorg/proto/glproto wayland/glproto || exit 1
  git clone git://anongit.freedesktop.org/xorg/proto/xproto wayland/xproto || exit 1
  git clone git://anongit.freedesktop.org/xorg/proto/xcmiscproto wayland/xcmiscproto || exit 1
  git clone git://anongit.freedesktop.org/xorg/lib/libxtrans wayland/libxtrans || exit 1
  git clone git://anongit.freedesktop.org/xorg/proto/bigreqsproto wayland/bigreqsproto || exit 1
  git clone git://anongit.freedesktop.org/xorg/proto/xextproto wayland/xextproto || exit 1
  git clone git://anongit.freedesktop.org/xorg/proto/fontsproto wayland/fontsproto || exit 1
  git clone git://anongit.freedesktop.org/xorg/proto/videoproto wayland/videoproto || exit 1
  git clone git://anongit.freedesktop.org/xorg/proto/recordproto wayland/recordproto || exit 1
  git clone git://anongit.freedesktop.org/xorg/proto/resourceproto wayland/resourceproto || exit 1
  git clone git://anongit.freedesktop.org/xorg/proto/xf86driproto wayland/xf86driproto || exit 1
  git clone git://anongit.freedesktop.org/xorg/proto/randrproto wayland/randrproto || exit 1
  git clone git://anongit.freedesktop.org/xorg/lib/libxkbfile wayland/libxkbfile || exit 1
  git clone git://anongit.freedesktop.org/xorg/lib/libXfont wayland/libXfont || exit 1
  git clone git://anongit.freedesktop.org/xorg/xserver wayland/xserver || exit 1
  find $SRCNAM -name ".*" -print0 | xargs -0 rm -rf 2> /dev/null
  tar -cvjf $SRCNAM-$VERSION.tar.bz2 $SRCNAM || exit 1
  rm -rf $SRCNAM
fi

CWD=$(pwd)
TMP=${TMP:-/tmp/WL}
OUTPUT=${OUTPUT:-/tmp}

if [ "$ARCH" = "i586" ]; then
  SLKCFLAGS="-O2 -march=i586 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
  SLKCFLAGS="-O2 -march=i686 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
  SLKCFLAGS="-O2 -fPIC"
  LIBDIRSUFFIX="64"
else
  SLKCFLAGS="-O2"
  LIBDIRSUFFIX=""
fi

set -e

rm -rf $TMP/package-$PRGNAM-*
mkdir -p $TMP $OUTPUT
cd $TMP
rm -rf $SRCNAM
tar xvf $CWD/$SRCNAM-$VERSION.tar.bz2
cd $SRCNAM
chown -R root:root .
find -L . \
 \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
 -o -perm 511 \) -exec chmod 755 {} \; -o \
 \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
 -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;

# Setup environment for local install:
WLD=/usr/local
export LD_LIBRARY_PATH=$WLD/lib${LIBDIRSUFFIX}
export PKG_CONFIG_PATH=$WLD/lib${LIBDIRSUFFIX}/pkgconfig/:$WLD/share/pkgconfig/
export PATH=$WLD/bin:$PATH
ACLOCAL_PATH=$WLD/share/aclocal
export ACLOCAL="aclocal -I $ACLOCAL_PATH"

INCLUDE_XWAYLAND=1

if [ "$ARCH" = "i?86" ]; then
  export WL_BITS=32
else
  export WL_BITS=64
fi

# Set up a few useful functions:
build() {
make
make install DESTDIR=$PKG
mkdir -p $PKG/usr/doc/$PRGNAM-$PKGNAME-$VERSION
cp -a \
 AUTHORS* COPYING* INSTALL* README* NEWS* TODO* \
 $PKG/usr/doc/$PRGNAM-$PKGNAME-$VERSION || true
if [ -r ChangeLog ]; then
  DOCSDIR=$(echo $PKG/usr/doc/$PRGNAM-$PKGNAME-$VERSION)
  cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
  touch -r ChangeLog $DOCSDIR/ChangeLog
fi
find $PKG/usr/doc/$PRGNAM-$PKGNAME-$VERSION -type f -size 0 -exec rm --verbose "{}" \;
rmdir --verbose $PKG/usr/doc/$PRGNAM-$PKGNAME-$VERSION 2> /dev/null || true
( cd $PKG
  find . -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
 | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
  if [ -d usr/local/man ]; then
    ( cd usr/local/man
      for manpagedir in $(find . -type d -name "man*") ; do
      ( cd $manpagedir
        for eachpage in $( find . -type l -maxdepth 1) ; do
          ln -s $( readlink $eachpage ).gz $eachpage.gz
          rm $eachpage
        done
        gzip -9 *.*
      )
      done
    )
  fi
  if [ -d usr/local/info ]; then
    ( cd usr/local/info
      rm -f dir
      gzip -9 *
    )
  fi
  if [ -d usr/local/share/doc ]; then
    mv usr/local/share/doc/* usr/doc/$PRGNAM-$PKGNAME-$VERSION
    rmdir usr/local/share/doc
    rmdir usr/local/share || true
  fi
  mkdir -p $PKG/install
  touch $PKG/install/slack-desc-missing
  /sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$PKGNAME-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
  /sbin/upgradepkg --install-new --reinstall $OUTPUT/$PRGNAM-$PKGNAME-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
)
}

cd wayland && pwd
PKGNAME=wayland
PKG=$TMP/package-$PRGNAM-$PKGNAME
mkdir -p $PKG
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./autogen.sh --prefix=$WLD \
 --disable-documentation \
 --libdir=$WLD/lib${LIBDIRSUFFIX} \
 --mandir=$WLD/man \
 --build=$ARCH-slackware-linux
build
cd -

cd wayland-protocols && pwd
PKGNAME=wayland-protocols
PKG=$TMP/package-$PRGNAM-$PKGNAME
mkdir -p $PKG
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./autogen.sh --prefix=$WLD \
 --libdir=$WLD/lib${LIBDIRSUFFIX} \
 --mandir=$WLD/man \
 --build=$ARCH-slackware-linux
build
cd -

cd libxcb && pwd
PKGNAME=libxcb
PKG=$TMP/package-$PRGNAM-$PKGNAME
mkdir -p $PKG
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./autogen.sh --prefix=$WLD \
 --libdir=$WLD/lib${LIBDIRSUFFIX} \
 --mandir=$WLD/man \
 --build=$ARCH-slackware-linux
build
cd -

cd drm && pwd
PKGNAME=drm
PKG=$TMP/package-$PRGNAM-$PKGNAME
mkdir -p $PKG
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./autogen.sh --prefix=$WLD \
 --disable-libkms \
 --libdir=$WLD/lib${LIBDIRSUFFIX} \
 --mandir=$WLD/man \
 --build=$ARCH-slackware-linux
build
cd -

cd proto && pwd
PKGNAME=proto
PKG=$TMP/package-$PRGNAM-$PKGNAME
mkdir -p $PKG
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./autogen.sh --prefix=$WLD \
 --libdir=$WLD/lib${LIBDIRSUFFIX} \
 --mandir=$WLD/man \
 --build=$ARCH-slackware-linux
build
cd -

cd macros && pwd
PKGNAME=macros
PKG=$TMP/package-$PRGNAM-$PKGNAME
mkdir -p $PKG
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./autogen.sh --prefix=$WLD \
 --libdir=$WLD/lib${LIBDIRSUFFIX} \
 --mandir=$WLD/man \
 --build=$ARCH-slackware-linux
build
cd -

cd presentproto && pwd
PKGNAME=presentproto
PKG=$TMP/package-$PRGNAM-$PKGNAME
mkdir -p $PKG
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./autogen.sh --prefix=$WLD \
 --libdir=$WLD/lib${LIBDIRSUFFIX} \
 --mandir=$WLD/man \
 --build=$ARCH-slackware-linux
build
cd -

cd dri3proto && pwd
PKGNAME=dri3proto
PKG=$TMP/package-$PRGNAM-$PKGNAME
mkdir -p $PKG
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./autogen.sh --prefix=$WLD \
 --libdir=$WLD/lib${LIBDIRSUFFIX} \
 --mandir=$WLD/man \
 --build=$ARCH-slackware-linux
build
cd -

cd libxshmfence && pwd
PKGNAME=libxshmfence
PKG=$TMP/package-$PRGNAM-$PKGNAME
mkdir -p $PKG
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./autogen.sh --prefix=$WLD \
 --libdir=$WLD/lib${LIBDIRSUFFIX} \
 --mandir=$WLD/man \
 --build=$ARCH-slackware-linux
build
cd -

cd libxkbcommon && pwd
PKGNAME=libxkbcommon
PKG=$TMP/package-$PRGNAM-$PKGNAME
mkdir -p $PKG
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./autogen.sh --prefix=$WLD \
 --with-xkb-config-root=/usr/share/X11/xkb \
 --with-x-locale-root=/usr/share/X11/locale \
 --disable-x11 \
 --libdir=$WLD/lib${LIBDIRSUFFIX} \
 --mandir=$WLD/man \
 --build=$ARCH-slackware-linux
build
cd -

llvm_drivers=swrast,nouveau,r300,r600
vga_pci=$(lspci | grep VGA | head -n1)
vga_name=${vga_pci#*controller: }
vga_manu=${vga_name%% *}
if [ "${vga_manu}" = "NVIDIA" ]; then
	llvm_drivers=swrast,nouveau
fi

cd mesa && pwd
PKGNAME=mesa
PKG=$TMP/package-$PRGNAM-$PKGNAME
mkdir -p $PKG
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./autogen.sh --prefix=$WLD \
 --enable-gles2 \
 --with-egl-platforms=x11,wayland,drm \
 --enable-gbm \
 --enable-shared-glapi \
 --disable-llvm-shared-libs \
 --disable-dri3 \
 --with-gallium-drivers=$llvm_drivers \
 --libdir=$WLD/lib${LIBDIRSUFFIX} \
 --mandir=$WLD/man \
 --build=$ARCH-slackware-linux
build
cd -

cd pixman && pwd
PKGNAME=pixman
PKG=$TMP/package-$PRGNAM-$PKGNAME
mkdir -p $PKG
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./autogen.sh --prefix=$WLD \
 --libdir=$WLD/lib${LIBDIRSUFFIX} \
 --mandir=$WLD/man \
 --build=$ARCH-slackware-linux
build
cd -

cd cairo && pwd
PKGNAME=cairo
PKG=$TMP/package-$PRGNAM-$PKGNAME
mkdir -p $PKG
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./autogen.sh --prefix=$WLD \
 --enable-xcb \
 --enable-gl \
 --libdir=$WLD/lib${LIBDIRSUFFIX} \
 --mandir=$WLD/man \
 --build=$ARCH-slackware-linux
build
cd -

cd libunwind && pwd
PKGNAME=libunwind
PKG=$TMP/package-$PRGNAM-$PKGNAME
mkdir -p $PKG
autoreconf -i
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure --prefix=$WLD \
 --libdir=$WLD/lib${LIBDIRSUFFIX} \
 --mandir=$WLD/man \
 --build=$ARCH-slackware-linux
build
cd -

cd libevdev && pwd
PKGNAME=libevdev
PKG=$TMP/package-$PRGNAM-$PKGNAME
mkdir -p $PKG
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./autogen.sh --prefix=$WLD \
 --libdir=$WLD/lib${LIBDIRSUFFIX} \
 --mandir=$WLD/man \
 --build=$ARCH-slackware-linux
build
cd -

rm -rf wayland-protocols
cd ..
tar xvf $CWD/$SRCNAM-$VERSION.tar.bz2 wayland/wayland-protocols
cd -
cd wayland-protocols && pwd
PKGNAME=wayland-protocols
PKG=$TMP/package-$PRGNAM-$PKGNAME
rm -rf $PKG
mkdir -p $PKG
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./autogen.sh --prefix=$WLD \
 --libdir=$WLD/lib${LIBDIRSUFFIX} \
 --mandir=$WLD/man \
 --build=$ARCH-slackware-linux
build
cd -

cd libwacom && pwd
PKGNAME=libwacom
PKG=$TMP/package-$PRGNAM-$PKGNAME
mkdir -p $PKG
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./autogen.sh --prefix=$WLD \
 --libdir=$WLD/lib${LIBDIRSUFFIX} \
 --mandir=$WLD/man \
 --build=$ARCH-slackware-linux
build
cd -

cd libinput && pwd
PKGNAME=libinput
PKG=$TMP/package-$PRGNAM-$PKGNAME
mkdir -p $PKG
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./autogen.sh --prefix=$WLD \
 --libdir=$WLD/lib${LIBDIRSUFFIX} \
 --mandir=$WLD/man \
 --build=$ARCH-slackware-linux
build
cd -

if [ ${INCLUDE_XWAYLAND} ]; then

  if [ ${WL_BITS} = 32 ]; then
    cd libxtrans && pwd
    PKGNAME=libxtrans
    PKG=$TMP/package-$PRGNAM-$PKGNAME
    mkdir -p $PKG
    CFLAGS="$SLKCFLAGS" \
    CXXFLAGS="$SLKCFLAGS" \
    ./autogen.sh --prefix=$WLD \
    --libdir=$WLD/lib${LIBDIRSUFFIX} \
    --mandir=$WLD/man \
    --build=$ARCH-slackware-linux
    build
    cd -
  fi

  cd xproto && pwd
  PKGNAME=xproto
  PKG=$TMP/package-$PRGNAM-$PKGNAME
  mkdir -p $PKG
  CFLAGS="$SLKCFLAGS" \
  CXXFLAGS="$SLKCFLAGS" \
  ./autogen.sh --prefix=$WLD \
  --libdir=$WLD/lib${LIBDIRSUFFIX} \
  --mandir=$WLD/man \
  --build=$ARCH-slackware-linux
  build
  cd -

  cd libepoxy && pwd
  PKGNAME=libepoxy
  PKG=$TMP/package-$PRGNAM-$PKGNAME
  mkdir -p $PKG
  CFLAGS="$SLKCFLAGS" \
  CXXFLAGS="$SLKCFLAGS" \
  ./autogen.sh --prefix=$WLD \
  --libdir=$WLD/lib${LIBDIRSUFFIX} \
  --mandir=$WLD/man \
  --build=$ARCH-slackware-linux
  build
  cd -

  cd glproto && pwd
  PKGNAME=glproto
  PKG=$TMP/package-$PRGNAM-$PKGNAME
  mkdir -p $PKG
  CFLAGS="$SLKCFLAGS" \
  CXXFLAGS="$SLKCFLAGS" \
  ./autogen.sh --prefix=$WLD \
  --libdir=$WLD/lib${LIBDIRSUFFIX} \
  --mandir=$WLD/man \
  --build=$ARCH-slackware-linux
  build
  cd -

  cd xcmiscproto && pwd
  PKGNAME=xcmiscproto
  PKG=$TMP/package-$PRGNAM-$PKGNAME
  mkdir -p $PKG
  CFLAGS="$SLKCFLAGS" \
  CXXFLAGS="$SLKCFLAGS" \
  ./autogen.sh --prefix=$WLD \
  --libdir=$WLD/lib${LIBDIRSUFFIX} \
  --mandir=$WLD/man \
  --build=$ARCH-slackware-linux
  build
  cd -

  rm -rf libxtrans
  cd ..
  tar xvf $CWD/$SRCNAM-$VERSION.tar.bz2 wayland/libxtrans
  cd -
  cd libxtrans && pwd
  PKGNAME=libxtrans
  PKG=$TMP/package-$PRGNAM-$PKGNAME
  rm -rf $PKG
  mkdir -p $PKG
  CFLAGS="$SLKCFLAGS" \
  CXXFLAGS="$SLKCFLAGS" \
  ./autogen.sh --prefix=$WLD \
  --libdir=$WLD/lib${LIBDIRSUFFIX} \
  --mandir=$WLD/man \
  --build=$ARCH-slackware-linux
  build
  cd -

  cd bigreqsproto && pwd
  PKGNAME=bigreqsproto
  PKG=$TMP/package-$PRGNAM-$PKGNAME
  mkdir -p $PKG
  CFLAGS="$SLKCFLAGS" \
  CXXFLAGS="$SLKCFLAGS" \
  ./autogen.sh --prefix=$WLD \
  --libdir=$WLD/lib${LIBDIRSUFFIX} \
  --mandir=$WLD/man \
  --build=$ARCH-slackware-linux
  build
  cd -

  cd xextproto && pwd
  PKGNAME=xextproto
  PKG=$TMP/package-$PRGNAM-$PKGNAME
  mkdir -p $PKG
  CFLAGS="$SLKCFLAGS" \
  CXXFLAGS="$SLKCFLAGS" \
  ./autogen.sh --prefix=$WLD \
  --libdir=$WLD/lib${LIBDIRSUFFIX} \
  --mandir=$WLD/man \
  --build=$ARCH-slackware-linux
  build
  cd -

  cd fontsproto && pwd
  PKGNAME=fontsproto
  PKG=$TMP/package-$PRGNAM-$PKGNAME
  mkdir -p $PKG
  CFLAGS="$SLKCFLAGS" \
  CXXFLAGS="$SLKCFLAGS" \
  ./autogen.sh --prefix=$WLD \
  --libdir=$WLD/lib${LIBDIRSUFFIX} \
  --mandir=$WLD/man \
  --build=$ARCH-slackware-linux
  build
  cd -

  cd videoproto && pwd
  PKGNAME=videoproto
  PKG=$TMP/package-$PRGNAM-$PKGNAME
  mkdir -p $PKG
  CFLAGS="$SLKCFLAGS" \
  CXXFLAGS="$SLKCFLAGS" \
  ./autogen.sh --prefix=$WLD \
  --libdir=$WLD/lib${LIBDIRSUFFIX} \
  --mandir=$WLD/man \
  --build=$ARCH-slackware-linux
  build
  cd -

  cd recordproto && pwd
  PKGNAME=recordproto
  PKG=$TMP/package-$PRGNAM-$PKGNAME
  mkdir -p $PKG
  CFLAGS="$SLKCFLAGS" \
  CXXFLAGS="$SLKCFLAGS" \
  ./autogen.sh --prefix=$WLD \
  --libdir=$WLD/lib${LIBDIRSUFFIX} \
  --mandir=$WLD/man \
  --build=$ARCH-slackware-linux
  build
  cd -

  cd resourceproto && pwd
  PKGNAME=resourceproto
  PKG=$TMP/package-$PRGNAM-$PKGNAME
  mkdir -p $PKG
  CFLAGS="$SLKCFLAGS" \
  CXXFLAGS="$SLKCFLAGS" \
  ./autogen.sh --prefix=$WLD \
  --libdir=$WLD/lib${LIBDIRSUFFIX} \
  --mandir=$WLD/man \
  --build=$ARCH-slackware-linux
  build
  cd -

  cd xf86driproto && pwd
  PKGNAME=xf86driproto
  PKG=$TMP/package-$PRGNAM-$PKGNAME
  mkdir -p $PKG
  CFLAGS="$SLKCFLAGS" \
  CXXFLAGS="$SLKCFLAGS" \
  ./autogen.sh --prefix=$WLD \
  --libdir=$WLD/lib${LIBDIRSUFFIX} \
  --mandir=$WLD/man \
  --build=$ARCH-slackware-linux
  build
  cd -

  cd randrproto && pwd
  PKGNAME=randrproto
  PKG=$TMP/package-$PRGNAM-$PKGNAME
  mkdir -p $PKG
  CFLAGS="$SLKCFLAGS" \
  CXXFLAGS="$SLKCFLAGS" \
  ./autogen.sh --prefix=$WLD \
  --libdir=$WLD/lib${LIBDIRSUFFIX} \
  --mandir=$WLD/man \
  --build=$ARCH-slackware-linux
  build
  cd -

  cd libxkbfile && pwd
  PKGNAME=libxkbfile
  PKG=$TMP/package-$PRGNAM-$PKGNAME
  mkdir -p $PKG
  CFLAGS="$SLKCFLAGS" \
  CXXFLAGS="$SLKCFLAGS" \
  ./autogen.sh --prefix=$WLD \
  --libdir=$WLD/lib${LIBDIRSUFFIX} \
  --mandir=$WLD/man \
  --build=$ARCH-slackware-linux
  build
  cd -

  cd libXfont && pwd
  PKGNAME=libXfont
  PKG=$TMP/package-$PRGNAM-$PKGNAME
  mkdir -p $PKG
  CFLAGS="$SLKCFLAGS" \
  CXXFLAGS="$SLKCFLAGS" \
  ./autogen.sh --prefix=$WLD \
  --libdir=$WLD/lib${LIBDIRSUFFIX} \
  --mandir=$WLD/man \
  --build=$ARCH-slackware-linux
  build
  cd -

  cd xserver && pwd
  PKGNAME=xserver
  PKG=$TMP/package-$PRGNAM-$PKGNAME
  mkdir -p $PKG
  CFLAGS="$SLKCFLAGS" \
  CXXFLAGS="$SLKCFLAGS" \
  ./autogen.sh --prefix=$WLD \
  --disable-devel-docs \
  --enable-xwayland \
  --disable-xorg \
  --disable-xvfb \
  --disable-xnest \
  --disable-xquartz \
  --disable-xwin \
  --libdir=$WLD/lib${LIBDIRSUFFIX} \
  --mandir=$WLD/man \
  --build=$ARCH-slackware-linux
  mkdir -p $PKG/usr/local/share/X11/xkb/rules
  mkdir -p $PKG/usr/local/bin
  ( cd $PKG/usr/local/share/X11/xkb/rules ; ln -s ../../../../../share/X11/xkb/rules/evdev )
  ( cd $PKG/usr/local/bin ; ln -s ../../bin/xkbcomp )
  build
  cd -

fi

cd weston && pwd
PKGNAME=weston
PKG=$TMP/package-$PRGNAM-$PKGNAME
mkdir -p $PKG
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./autogen.sh --prefix=$WLD \
 --with-cairo=image \
 --with-xserver-path=$WLD/bin/Xwayland \
 --enable-setuid-install=no \
 --enable-clients \
 --enable-headless-compositor \
 --enable-demo-clients-install \
 --libdir=$WLD/lib${LIBDIRSUFFIX} \
 --mandir=$WLD/man \
 --build=$ARCH-slackware-linux
mkdir -p $PKG/usr/doc/$PRGNAM-$PKGNAME-$VERSION
( cd $PKG/usr/doc/$PRGNAM-$PKGNAME-$VERSION ; cat <<'EOF' > running_weston.txt

Running Weston
--------------

Weston creates its unix socket file (for example, wayland-0) in the directory
specified by the required environment variable $XDG_RUNTIME_DIR. Clients use
the same variable to find that socket.

If you are using a distro that does set $XDG_RUNTIME_DIR for you, you can skip
this part. Otherwise, you must set it using your shell profile capability.

You should use the profile file if there is any, otherwise the login file will
do the trick. ~/.profile is generally a good guess, for most Bourne-shell
compatible shells.

We will use /tmp as the base to put our $XDG_RUNTIME_DIR in. Since /tmp can
be a tmpfs, and thus wiped on restart, we should take care of creating it when
we need it. Also, if you share your computer between several users, you must
take care of using a unique $XDG_RUNTIME_DIR for each one. We will also check
if the variable is already set. This way, if your system starts providing it,
you will use it directly. It is also useful if you want to use your profile
file on different systems.

Here is the code to put in your shell profile file (it is Bourne-shell
compatible, feel free to adapt it to your shell’s internals):

if test -z "${XDG_RUNTIME_DIR}"; then
    export XDG_RUNTIME_DIR=/tmp/${UID}-runtime-dir
    if ! test -d "${XDG_RUNTIME_DIR}"; then
        mkdir "${XDG_RUNTIME_DIR}"
        chmod 0700 "${XDG_RUNTIME_DIR}"
    fi
fi

Copy the weston/weston.ini file and edit it to set a background image that
you like:

$ mkdir -p ~/.config
$ cp weston.ini ~/.config

If $DISPLAY is set, the weston will run under X in a window and take input
from X. Run the compositor by typing:

$ weston

Otherwise (outside of X) it will run on the KMS/DRM framebuffer and take
input from evdev devices. Use weston-launch, which as a setuid-root program
does privileged operations on Weston's behalf.

# groupadd weston-launch
# usermod -a -G weston-launch,input username

Log all the way out (of X, etc.)

$ weston-launch

To run Weston with XWayland (X Clients under Wayland), in a non-X environment:

$ weston-launch -- --modules=xwayland.so

It is not possible to do an X screen dump of this: the standard X tools such as
gnome-screenshot will try to connect to the X server, and there isn't one running.

EOF
)
build
cd -

exit 0

# End

 
Old 09-28-2016, 03:47 AM   #2
aragorn2101
Member
 
Registered: Dec 2012
Location: Mauritius
Distribution: Slackware
Posts: 567

Rep: Reputation: 301Reputation: 301Reputation: 301Reputation: 301
Hi,

Have you tried using the script from SlackBuilds.org (https://slackbuilds.org/repository/1...search=wayland)?

Or maybe you can use: https://github.com/PhantomX/slackbui...ton.SlackBuild with some modification.
 
Old 09-28-2016, 01:31 PM   #3
fskmh
Member
 
Registered: Jun 2002
Location: South Africa
Distribution: Custom slackware64-current
Posts: 307

Rep: Reputation: 92
Quote:
Originally Posted by cnv View Post
/usr/local/lib/libxcb-shm.so: undefined reference to `xcb_send_request_with_fds'
The libxcb you've installed in /usr/local is going to conflict with the libxcb that was installed with Slackware. You first need to "make uninstall" or manually remove the libraries and header files installed in /usr/local.

Then (if you're still determined to upgrade libxcb) you need to copy the whole source/x/x11 tree over from -current to wherever your build scripts are. Then replace libxcb-1.11.1 and xcb-proto-1.11 in source/x/x11/src/xcb with the new 1.12 sources and build and install them by running the x11.SlackBuild like this: "./x11.SlackBuild xcb".

From my own experience with building weston (I have 1.11.0 here) you will also need libxkbcommon, libinput and wayland-protocols. You could probably get away with using the wayland.SlackBuild as a "template" for those last two packages.
 
Old 09-28-2016, 02:24 PM   #4
ReaperX7
LQ Guru
 
Registered: Jul 2011
Location: California
Distribution: Slackware64-15.0 Multilib
Posts: 6,554
Blog Entries: 15

Rep: Reputation: 2097Reputation: 2097Reputation: 2097Reputation: 2097Reputation: 2097Reputation: 2097Reputation: 2097Reputation: 2097Reputation: 2097Reputation: 2097Reputation: 2097
Be forewarned, Weston does have some issues with session handling with ConsoleKit2 still since it doesn't have all the abilities of logind yet. You might want to test a build of elogind alongside it.

Also, remember to treat Weston as a preliminary environment for testing wayland. It is not a full environment and actually has less functionality than twm. If you want a wayland capable environment, try Enlightenment or KDE/Plasma5.
 
1 members found this post helpful.
Old 09-29-2016, 02:14 AM   #5
cnv
LQ Newbie
 
Registered: Oct 2013
Posts: 9

Original Poster
Rep: Reputation: Disabled
Thanks for these tips.

Sorry, I mistype xcb-proto-1.12 and wrote libxcb-1.12 instead.
 
Old 10-02-2016, 01:50 AM   #6
cnv
LQ Newbie
 
Registered: Oct 2013
Posts: 9

Original Poster
Rep: Reputation: Disabled
Finally, I restore the xcb-proto-1.11 Slackware package and change the build order.
Code:
Description: Build libxcb after proto aka xcb-proto

--- a/wayland.SlackBuild	2016-10-02 00:32:03.646941713 +0400
+++ b/wayland.SlackBuild	2016-10-02 11:36:17.228025084 +0400
@@ -190,4 +190,4 @@
 
-cd libxcb && pwd
-PKGNAME=libxcb
+cd drm && pwd
+PKGNAME=drm
 PKG=$TMP/package-$PRGNAM-$PKGNAME
@@ -197,2 +197,3 @@
 ./autogen.sh --prefix=$WLD \
+ --disable-libkms \
  --libdir=$WLD/lib${LIBDIRSUFFIX} \
@@ -203,4 +204,5 @@
 
-cd drm && pwd
-PKGNAME=drm
+# xcb-proto
+cd proto && pwd
+PKGNAME=proto
 PKG=$TMP/package-$PRGNAM-$PKGNAME
@@ -210,3 +212,2 @@
 ./autogen.sh --prefix=$WLD \
- --disable-libkms \
  --libdir=$WLD/lib${LIBDIRSUFFIX} \
@@ -217,4 +218,4 @@
 
-cd proto && pwd
-PKGNAME=proto
+cd libxcb && pwd
+PKGNAME=libxcb
 PKG=$TMP/package-$PRGNAM-$PKGNAME
Then, I replaced the libtool-archives, otherwise libtool pick up libs in /usr/lib first.
Code:
# cd /usr/lib
# mkdir libtool-archives
# ls -l | grep "\.la"
# mv *.la libtool-archives
Build.
Code:
# cd /build/dir
# removepkg /var/log/packages/Wayland-*
# ./wayland.SlackBuild
Restore libtool-archives.
Code:
# cd /usr/lib/libtool-archives
# ls -l
# mv *.la ..
Screenshot
 
1 members found this post helpful.
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
<$cp weston.ini ~/.config> in this command what does ~/. mean? kjg0508 Linux - Software 6 04-22-2013 02:43 AM
how to run weston compositor?? kjg0508 Linux - Software 2 04-21-2013 02:51 PM
how to run weston compositor?? kjg0508 Ubuntu 2 04-17-2013 07:31 PM
LXer: Wayland 1.0 With Weston Has Been Branched LXer Syndicated Linux News 0 11-10-2012 07:21 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 06:20 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration