Wayland:修订间差异

来自Ubuntu中文
跳到导航跳到搜索
Manbuzhe留言 | 贡献
清空页面
Manbuzhe留言 | 贡献
无编辑摘要
第1行: 第1行:
== wayland的编译 ==


=== 准备工作 ===
==== 基础知识 ====
# 具有lfs编译经验
# 一个可用的LFS系统(仅在LFS 7.1 64位版本验证过,其他版本没有测试)
==== 设置环境变量 ====
<pre>
WLD=/usr/ 
LD_LIBRARY_PATH=$WLD/lib64
PKG_CONFIG_PATH=$WLD/lib64/pkgconfig/:$WLD/share/pkgconfig/
ACLOCAL="aclocal -I $WLD/share/aclocal"
export WLD LD_LIBRARY_PATH PKG_CONFIG_PATH ACLOCAL
</pre>
<pre>
export XORG_CONFIG="--prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man --localstatedir=/var"
</pre>
=== 安装一些基本工具 ===
==== openssl ====
<pre>
wget http://www.openssl.org/source/openssl-1.0.1c.tar.gz
tar -xvpf openssl-1.0.1c.tar.gz
cd openssl-1.0.1c
patch -Np1 -i ../openssl-1.0.1c-fix_manpages-1.patch &&
./config --prefix=/usr zlib-dynamic --openssldir=/etc/ssl shared &&
make
make install
</pre>
==== 安装 wget ====
<pre>
wget http://ftp.gnu.org/gnu/wget/wget-1.14.tar.xz
tar -xvpf wget-1.14.tar.xz
cd wget-1.14
./configure --prefix=/usr      \
            --sysconfdir=/etc  \
            --with-ssl=openssl &&
make
make install
</pre>
==== 安装 git ====
http://git-core.googlecode.com/files/git-1.8.0.tar.gz
./configure --without-python
==== 安装 libffi ====
install libffi
wget ftp://sourceware.org/pub/libffi/libffi-3.0.11.tar.gz
tar -xvpf libffi-3.0.11.tar.gz
cd libffi-3.0.11
./configure --prefix=/usr &&
make -j10
make install
==== 安装 expat ====
install expat
==== 安装 wayland ====
git clone git://anongit.freedesktop.org/wayland/wayland
cd wayland
./autogen.sh --prefix=$WLD --disable-documentation
make -j10
make install
==== libpthread-stubs-0.3 ====
wget http://xcb.freedesktop.org/dist/libpthread-stubs-0.3.tar.bz2
tar -xvpf libpthread-stubs-0.3.tar.bz2
cd libpthread-stubs-0.3
./configure --prefix=/usr &&
make -j8
make install
==== libpciaccess ====
http://xorg.freedesktop.org/archive/individual/lib/libpciaccess-0.13.1.tar.gz
tar -xvpf libpciaccess-0.13.1.tar.gz
cd libpciaccess-0.13.1
./configire --prefix=/usr
make
make install
==== 安装 drm ====
git clone git://anongit.freedesktop.org/git/mesa/drm
cd drm
./autogen.sh --prefix=$WLD
make -j8 && make install
==== 安装 util-macros-1.17 ====
wget http://xorg.freedesktop.org/releases/individual/util/util-macros-1.17.tar.bz2
tar -xvpf util-macros-1.17.tar.bz2
cd util-macros-1.17
./configure --prefix=$WLD
make && make install
<pre>
cat > proto-7.7.md5 << "EOF"
1a05fb01fa1d5198894c931cf925c025  bigreqsproto-1.1.2.tar.bz2
98482f65ba1e74a08bf5b056a4031ef0  compositeproto-0.4.2.tar.bz2
998e5904764b82642cc63d97b4ba9e95  damageproto-1.2.1.tar.bz2
4ee175bbd44d05c34d43bb129be5098a  dmxproto-2.3.1.tar.bz2
2eb74959684f47c862081099059a11ab  dri2proto-2.6.tar.bz2
e7431ab84d37b2678af71e29355e101d  fixesproto-5.0.tar.bz2
c5f4f1fb4ba7766eedbc9489e81f3be2  fontsproto-2.1.2.tar.bz2
d1ff0c1acc605689919c1ee2fc9b5582  glproto-1.4.15.tar.bz2
13c8aedaf98a92e282b7e456c0a5bed9  inputproto-2.2.tar.bz2
677ea8523eec6caca86121ad2dca0b71  kbproto-1.0.6.tar.bz2
597491c0d8055e2a66f11350c4985775  randrproto-1.3.2.tar.bz2
1b4e5dede5ea51906f1530ca1e21d216  recordproto-1.14.2.tar.bz2
a914ccc1de66ddeb4b611c6b0686e274  renderproto-0.11.1.tar.bz2
cfdb57dae221b71b2703f8e2980eaaf4  resourceproto-1.2.0.tar.bz2
edd8a73775e8ece1d69515dd17767bfb  scrnsaverproto-1.2.2.tar.bz2
c3b348c6e2031b72b11ae63fc7f805c2  videoproto-2.3.1.tar.bz2
5f4847c78e41b801982c8a5e06365b24  xcmiscproto-1.2.2.tar.bz2
eaac343af094e6b608cf15cfba0f77c5  xextproto-7.2.1.tar.bz2
120e226ede5a4687b25dd357cc9b8efe  xf86bigfontproto-1.2.0.tar.bz2
a036dc2fcbf052ec10621fd48b68dbb1  xf86dgaproto-2.1.tar.bz2
1d716d0dac3b664e5ee20c69d34bc10e  xf86driproto-2.1.1.tar.bz2
e793ecefeaecfeabd1aed6a01095174e  xf86vidmodeproto-2.3.1.tar.bz2
9959fe0bfb22a0e7260433b8d199590a  xineramaproto-1.2.1.tar.bz2
d4d241a4849167e4e694fe73371c328c  xproto-7.0.23.tar.bz2
EOF
mkdir proto &&
cd proto &&
grep -v '^#' ../proto-7.7.md5 | awk '{print $2}' | wget -i- -c \
    -B http://xorg.freedesktop.org/releases/individual/proto/ &&
md5sum -c ../proto-7.7.md5
export XORG_PREFIX="/usr"
export XORG_CONFIG="--prefix=$XORG_PREFIX --sysconfdir=/etc \
    --mandir=$XORG_PREFIX/share/man --localstatedir=/var"
for package in $(grep -v '^#' ../proto-7.7.md5 | awk '{print $2}')
do
  packagedir=${package%.tar.bz2}
  tar -xf $package
  pushd $packagedir
  ./configure $XORG_CONFIG
  make install
  popd
  rm -r $packagedir
done
</pre>
==== 安装pkg-config ====
==== 安装 makedepend-1.0.4 ====
wget http://xorg.freedesktop.org/releases/individual/util/makedepend-1.0.4.tar.bz2
tar -xvpf makedepend-1.0.4.tar.bz2
cd makedepend-1.0.4
./configure $XORG_CONFIG &&
make
make install
==== 安装 libxml2-2.9.0 ====
wget http://xmlsoft.org/sources/libxml2-2.9.0.tar.gz
tar -xvpf libxml2-2.9.0.tar.gz
cd libxml2-2.9.0
./configure --prefix=/usr --disable-static &&
make
==== 安装libxslt ====
wget http://xmlsoft.org/sources/libxslt-1.1.27.tar.gz
tar -xvpf libxslt-1.1.27.tar.gz
cd libxslt-1.1.27
./configure --prefix=/usr --disable-static &&
make
make install
==== 安装Python2.7.x ====
wget http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tar.xz
tar -xvpf Python-2.7.3.tar.xz
cd Python-2.7.3
sed -i "s/ndbm_libs = \[\]/ndbm_libs = ['gdbm', 'gdbm_compat']/" setup.py &&
./configure --prefix=/usr --enable-shared &&
make -j8
====  安装xcb-proto-1.7.1 ====
wget http://xcb.freedesktop.org/dist/xcb-proto-1.7.1.tar.bz2
tar -xvpf xcb-proto-1.7.1.tar.bz2
cd xcb-proto-1.7.1
./configure --prefix=/usr
make && make install
==== 安装libXau ====
wget http://xorg.freedesktop.org/releases/individual/lib/libXau-1.0.7.tar.bz2
tar -xvpf libXau-1.0.7.tar.bz2
cd libXau-1.0.7
./configure --prefix=/usr
make
make install
==== 安装libXdmcp ====
wget http://xorg.freedesktop.org/releases/individual/lib/libXdmcp-1.1.1.tar.bz2
tar -xvpf libXdmcp-1.1.1.tar.bz2
cd libXdmcp-1.1.1
./configure --prefix=/usr
make
make install
==== 安装libxcb ====
wget http://xcb.freedesktop.org/dist/libxcb-1.8.1.tar.bz2
tar -xvpf libxcb-1.8.1.tar.bz2
cd libxcb-1.8.1
./configure $XORG_CONFIG
make
make install
==== 安装 Xorg lib ====
<pre>
cat > lib-7.7.md5 << "EOF"
84c66908cf003ad8c272b0eecbdbaee3  xtrans-1.2.7.tar.bz2
78b4b3bab4acbdf0abcfca30a8c70cc6  libX11-1.5.0.tar.bz2
71251a22bc47068d60a95f50ed2ec3cf  libXext-1.3.1.tar.bz2
645f83160cf7b562734e2038045106d1  libFS-1.0.4.tar.bz2
471b5ca9f5562ac0d6eac7a0bf650738  libICE-1.0.8.tar.bz2
766de9d1e1ecf8bf74cebe2111d8e2bd  libSM-1.2.1.tar.bz2
7a773b16165e39e938650bcc9027c1d5  libXScrnSaver-1.2.2.tar.bz2
a6f137ae100e74ebe3b71eb4a38c40b3  libXt-1.1.3.tar.bz2
a4efff8de85bd45dd3da124285d10c00  libXmu-1.1.1.tar.bz2
7ae7eff7a14d411e84a67bd166bcec1a  libXpm-3.5.10.tar.bz2
f39942f2cab379fc9b4c3731bf191b84  libXaw-1.0.11.tar.bz2
678071bd7f9f7467e2fc712d81022318  libXfixes-5.0.tar.bz2
a60e0b5c276d0aa9e2d3b982c98f61c8  libXcomposite-0.4.3.tar.bz2
ee62f4c7f0f16ced4da63308963ccad2  libXrender-0.9.7.tar.bz2
52efa81b7f26c8eda13510a2fba98eea  libXcursor-1.1.13.tar.bz2
44774e1a065158b52f1a0da5100cebec  libXdamage-1.1.3.tar.bz2
a2a861f142c3b4367f14fc14239fc1f7  libfontenc-1.1.1.tar.bz2
6851da5dae0a6cf5f7c9b9e2b05dd3b4  libXfont-1.4.5.tar.bz2
78d64dece560c9e8699199f3faa521c0  libXft-2.3.1.tar.bz2
78ee882e1ff3b192cf54070bdb19938e  libXi-1.6.1.tar.bz2
cb45d6672c93a608f003b6404f1dd462  libXinerama-1.1.2.tar.bz2
92473da2fccf5fac665be4fa4f2037fa  libXrandr-1.3.2.tar.bz2
80d0c6d8522fa7a645e4f522e9a9cd20  libXres-1.0.6.tar.bz2
e8abc5c00c666f551cf26aa53819d592  libXtst-1.2.1.tar.bz2
5e1ac203ccd3ce3e89755ed1fbe75b0b  libXv-1.0.7.tar.bz2
3340c99ff556ea2457b4be47f5cb96fa  libXvMC-1.0.7.tar.bz2
b7f38465c46e7145782d37dbb9da8c09  libXxf86dga-1.1.3.tar.bz2
ffd93bcedd8b2b5aeabf184e7b91f326  libXxf86vm-1.1.2.tar.bz2
782ced3a9e754dfeb53a8a006a75eb1a  libdmx-1.1.2.tar.bz2
399a419ac6a54f0fc07c69c9bdf452dc  libpciaccess-0.13.1.tar.bz2
19e6533ae64abba0773816a23f2b9507  libxkbfile-1.0.8.tar.bz2
EOF
mkdir lib &&
cd lib &&
grep -v '^#' ../lib-7.7.md5 | awk '{print $2}' | wget -i- -c \
    -B http://xorg.freedesktop.org/releases/individual/lib/ &&
md5sum -c ../lib-7.7.md5
for package in $(grep -v '^#' ../lib-7.7.md5 | awk '{print $2}')
do
  packagedir=${package%.tar.bz2}
  tar -xf $package
  pushd $packagedir
  case $packagedir in
    libXfont-[0-9]* )
      ./configure $XORG_CONFIG --disable-devel-docs
    ;;
    libXt-[0-9]* )
      ./configure $XORG_CONFIG \
        --with-appdefaultdir=/etc/X11/app-defaults
    ;;
    * )
      ./configure $XORG_CONFIG
    ;;
  esac
  make
  make install
  popd
  rm -r $packagedir
  /sbin/ldconfig
done
</pre>
==== 安装 llvm ====
<pre>
wget http://llvm.org/releases/3.1/llvm-3.1.src.tar.gz
tar -xvpf llvm-3.1.src.tar.gz
cd llvm-3.1.src
wget http://llvm.org/releases/3.1/clang-3.1.src.tar.gz
tar -xf clang-3.1.src.tar.gz -C tools &&
mv tools/clang-3.1.src tools/clang
CC=gcc                                \
CXX=g++                                \
./configure --prefix=/usr              \
            --libdir=/usr/lib/llvm    \
            --sysconfdir=/etc          \
            --enable-shared            \
            --enable-libffi            \
            --enable-targets=all      \
            --disable-expensive-checks \
            --disable-debug-runtime    \
            --disable-assertions      \
            --enable-optimized        &&
make
make install
</pre>
==== 安装 Mesa ====
Note on Mesa build failures: If you're not building in your Mesa git repo for the first time, the first thing to try is always "git clean -xfd", and possibly deleting your $WLD directory, as Mesa requires this often.
git clone git://anongit.freedesktop.org/mesa/mesa
cd mesa
./autogen.sh --prefix=$WLD \
--enable-gles2 \
--disable-gallium-egl \
--with-egl-platforms=x11,wayland,drm \
--enable-gbm \
--enable-shared-glapi \
--with-gallium-drivers=r300,r600,swrast,nouveau
make && make install
wget ftp://ftp.freedesktop.org/pub/mesa/glu/glu-9.0.0.tar.bz2
make
make install
./configure --prefix=/usr                  \
            --sysconfdir=/etc              \
            --enable-texture-float        \
            --enable-gles1                \
            --enable-gles2                \
            --enable-openvg                \
            --enable-xa                    \
            --enable-gbm                  \
            --enable-gallium-egl          \
            --enable-gallium-gbm          \
            --enable-r600-llvm-compiler    \
            --enable-glx-tls              \
    --enable-shared-glapi   \
            --with-egl-platforms="x11,wayland,drm" \
            --with-gallium-drivers="nouveau,r300,r600,radeonsi,svga,swrast" &&
make
==== 安装 libxkbcommon ====
git clone git://people.freedesktop.org/xorg/lib/libxkbcommon.git
cd libxkbcommon/
./autogen.sh --prefix=$WLD --with-xkb-config-root=/usr/share/X11/xkb
make && make install
==== pixman ====
git clone git://anongit.freedesktop.org/pixman
cd pixman
./autogen.sh --prefix=$WLD
make && make install
==== libpng ====
wget http://downloads.sourceforge.net/libpng/libpng-1.5.13.tar.xz
tar -xvpf libpng-1.5.13.tar.xz
cd libpng-1.5.13
./configure --prefix=/usr --disable-static &&
make -j10 && make install
==== cairo ====
<pre>
git clone git://anongit.freedesktop.org/cairo
cd cairo
./autogen.sh --prefix=$WLD --enable-gl --enable-xcb --enable-tee
make && make install
</pre>
==== wayland demon ====
wayland demon
not wayland parts
wget http://dri.freedesktop.org/libdrm/libdrm-2.4.39.tar.bz2
tar -xvpf libdrm-2.4.39.tar.bz2
cd libdrm-2.4.39
./configure --prefix=/usr \
            --enable-udev \
            --enable-vmwgfx-experimental-api &&
make
make install
==== mtdev-1.1.3 ====
wget http://bitmath.org/code/mtdev/mtdev-1.1.3.tar.bz2
tar -xvpf mtdev-1.1.3.tar.bz2
cd mtdev-1.1.3
./configure --prefix=/usr --disable-static &&
make
make install
==== libjpeg ====
wget http://www.ijg.org/files/jpegsrc.v8d.tar.gz
tar -xvpf jpegsrc.v8d.tar.gz
cd jpeg-8d
./configure --prefix=/usr &&
make
make install
==== Linux PAM ====
<pre>
wget http://linux-pam.org/library/Linux-PAM-1.1.6.tar.bz2
tar -xvpf Linux-PAM-1.1.6.tar.bz2
cd Linux-PAM-1.1.6
./configure --prefix=/usr \
            --sysconfdir=/etc \
            --docdir=/usr/share/doc/Linux-PAM-1.1.6 \
            --disable-nis &&
make -j10
make install
</pre>
==== weston ====
<pre>
git clone git://anongit.freedesktop.org/wayland/weston
cd weston
./autogen.sh --prefix=$WLD
make
make install
</pre>
配置 weston
<pre>
cp weston.ini $HOME/.config/weston.ini
export XDG_RUNTIME_DIR=/tmp
weston
</pre>
==== xbitmaps ====
wget http://xorg.freedesktop.org/releases/individual/data/xbitmaps-1.1.1.tar.bz2
tar -xvpf xbitmaps-1.1.1.tar.bz2
cd xbitmaps-1.1.1
./configure $XORG_CONFIG
==== gperf ====
wget http://ftp.gnu.org/gnu/gperf/gperf-3.0.4.tar.gz
tar -xvpf gperf-3.0.4.tar.gz
cd gperf-3.0.4
./configure --prefix=/usr --docdir=/usr/share/doc/gperf-3.0.4 &&
make &&
make install
==== xcb-util-0.3.9 ====
wget http://xorg.freedesktop.org/releases/individual/xcb/xcb-util-0.3.9.tar.bz2
tar -xvpf xcb-util-0.3.9.tar.bz2
cd xcb-util-0.3.9
./configure $XORG_CONFIG &&
make &&
make install
==== freetype-2.4.10 ====
wget http://downloads.sourceforge.net/freetype/freetype-2.4.10.tar.bz2
tar -xvpf freetype-2.4.10.tar.bz2
cd freetype-2.4.10
./configure --prefix=/usr --disable-static &&
make
make install
==== fontconfig-2.10. ====
wget http://fontconfig.org/release/fontconfig-2.10.1.tar.bz2
tar -xvpf fontconfig-2.10.1.tar.bz2
cd fontconfig-2.10.1
./configure --prefix=/usr \
            --sysconfdir=/etc \
            --localstatedir=/var \
            --docdir=/usr/share/doc/fontconfig-2.10.1 \
            --disable-docs \
            --disable-static &&
make
make install
==== Xorg App====
<pre>
cat > app-7.7.md5 << "EOF"
4a7a4a848c43c42f7d499b60666434a4  bdftopcf-1.0.3.tar.bz2
08e3f6b523da8b0af179f22f339508b2  iceauth-1.0.5.tar.bz2
c4a3664e08e5a47c120ff9263ee2f20c  luit-1.1.1.tar.bz2
18c429148c96c2079edda922a2b67632  mkfontdir-1.0.7.tar.bz2
414fcb053418fb1418e3a39f4a37e0f7  mkfontscale-1.1.0.tar.bz2
e99172cbd72700eeeae99f64632b5dc2  sessreg-1.0.7.tar.bz2
1001771344608e120e943a396317c33a  setxkbmap-1.3.0.tar.bz2
edce41bd7562dcdfb813e05dbeede8ac  smproxy-1.0.5.tar.bz2
5c3c7431a38775caaea6051312a49bc9  x11perf-1.5.4.tar.bz2
cbcbd8f2156a53b609800bec4c6b6c0e  xauth-1.0.7.tar.bz2
c9891d6a3f3129d56cede72daa0ba26c  xbacklight-1.1.2.tar.bz2
5812be48cbbec1068e7b718eec801766  xcmsdb-1.0.4.tar.bz2
09f56978a62854534deacc8aa8ff3031  xcursorgen-1.0.5.tar.bz2
1ef08f4c8d0e669c2edd49e4a1bf650d  xdpyinfo-1.3.0.tar.bz2
3d3cad4d754e10e325438193433d59fd  xdriinfo-1.0.4.tar.bz2
2727c72f3eba0c23f8f6b2e618d195a2  xev-1.2.0.tar.bz2
c06067f572bc4a5298f324f27340da95  xgamma-1.0.5.tar.bz2
a0fcd2cb6ddd9f378944cc6f4f83cd7c  xhost-1.0.5.tar.bz2
d2459d35b4e0b41ded26a1d1159b7ac6  xinput-1.6.0.tar.bz2
a0fc1ac3fc4fe479ade09674347c5aa0  xkbcomp-1.2.4.tar.bz2
37ed71525c63a9acd42e7cde211dcc5b  xkbevd-1.1.3.tar.bz2
52ad6d8d87577a8ac736ab5488bec210  xkbutils-1.0.3.tar.bz2
e7f0d57b6ba49c384e9cf8c9ff3243c1  xkill-1.0.3.tar.bz2
9d0e16d116d1c89e6b668c1b2672eb57  xlsatoms-1.1.1.tar.bz2
760099f0af112401735801e3b9aa8595  xlsclients-1.1.2.tar.bz2
d9b65f6881afe0d6d9863b30e1081bde  xmodmap-1.0.7.tar.bz2
6101f04731ffd40803df80eca274ec4b  xpr-1.0.4.tar.bz2
d5529dc8d811efabd136ca2d8e857deb  xprop-1.2.1.tar.bz2
9735173a84dca9b05e06fd4686196b07  xrandr-1.3.5.tar.bz2
ed2e48cf33584455d74615ad4bbe4246  xrdb-1.0.9.tar.bz2
2f63f88ad0dcecd33c8cf000f38e9250  xrefresh-1.0.4.tar.bz2
d44e0057d6722b25d5a314e82e0b7e7c  xset-1.2.2.tar.bz2
b78a2da4cf128775031a5a3422fc0b78  xsetroot-1.1.0.tar.bz2
c88feb501083951a8f47a21aaeb1529d  xvinfo-1.1.1.tar.bz2
2113126f9ac9c02bb8547c112c5d037e  xwd-1.0.5.tar.bz2
9e8b58c8aa6172e87ab4f9cf3612fedd  xwininfo-1.1.2.tar.bz2
3025b152b4f13fdffd0c46d0be587be6  xwud-1.0.4.tar.bz2
EOF
for package in $(grep -v '^#' ../app-7.7.md5 | awk '{print $2}')
do
  packagedir=${package%.tar.bz2}
  tar -xf $package
  pushd $packagedir
  ./configure $XORG_CONFIG
  make
  make install
  popd
  rm -r $packagedir
done
</pre>
==== XML-Parser-2.41 ====
wget http://anduin.linuxfromscratch.org/sources/BLFS/svn/perl-modules/XML-Parser-2.41.tar.gz
tar -xvpf XML-Parser-2.41.tar.gz
cd XML-Parser-2.41
perl Makefile.PL &&
make &&
make install
==== intltool-0.50.2 ====
wget http://launchpad.net/intltool/trunk/0.50.2/+download/intltool-0.50.2.tar.gz
tar -xvpf intltool-0.50.2.tar.gz
cd intltool-0.50.2
./configure --prefix=/usr &&
make
make install
==== xkeyboard-config-2.6 ====
wget http://xorg.freedesktop.org/releases/individual/data/xkeyboard-config/xkeyboard-config-2.6.tar.bz2
tar -xvpf xkeyboard-config-2.6.tar.bz2
cd xkeyboard-config-2.6
./configure $XORG_CONFIG --with-xkb-rules-symlink=xorg &&
make
<pre>
    $ sudo groupadd weston-launch
    $ sudo usermod -a -G weston-launch $USER
    $ # Log all the way out (of X, etc.)
    $ sudo chown root weston-launch
    $ sudo chmod +s weston-launch
    $ weston-launch
</pre>
=== GTK+3.6 ===
==== icu4c ====
<pre>
wget http://download.icu-project.org/files/icu4c/49.1.2/icu4c-49_1_2-src.tgz
tar -xvpf icu4c-49_1_2-src.tgz
cd source &&
./configure --prefix=/usr &&
make
make install
</pre>
==== pcre-8.31 ====
<pre>
wget http://downloads.sourceforge.net/pcre/pcre-8.31.tar.bz2
tar -xvpf pcre-8.31.tar.bz2
pushd pcre-8.31
./configure --prefix=/usr \
            --docdir=/usr/share/doc/pcre-8.31 \
            --enable-utf \
            --enable-unicode-properties \
            --enable-pcregrep-libz \
            --enable-pcregrep-libbz2 \
            --disable-static &&
make
make install
popd
</pre>
==== glib ====
<pre>
git clone git://git.gnome.org/glib
pushd glib
./configure --prefix=/usr --with-pcre=system &&
make -j10
make install
popd
</pre>
==== harfbuzz-0.9.5 ====
<pre>
wget http://www.freedesktop.org/software/harfbuzz/release/harfbuzz-0.9.5.tar.bz2
tar -xvpf harfbuzz-0.9.5.tar.bz2
pushd harfbuzz-0.9.5
./configure --prefix=/usr &&
make -j10
make install
popd
</pre>
==== Pango-1.32.1 ====
* Required
# Cairo-1.12.6
# glib-2.33
# Harfbuzz-0.9.5
# Xorg Libraries
<pre>
wget http://ftp.gnome.org/pub/gnome/sources/pango/1.32/pango-1.32.1.tar.xz
tar -xvpf pango-1.32.1.tar.xz
pushd pango-1.32.1
./configure --prefix=/usr --sysconfdir=/etc &&
make -j10
make uninstall
popd
</pre>
==== gdk-pixbuf-2.26.4 ====
<pre>
wget http://ftp.gnome.org/pub/gnome/sources/gdk-pixbuf/2.26/gdk-pixbuf-2.26.4.tar.xz
tar -xvpf gdk-pixbuf-2.26.4.tar.xz
cd gdk-pixbuf-2.26.4
./configure --prefix=/usr --without-libtiff
make -j4
make install
</pre>
==== dbus-1.6.8 ====
<pre>
groupadd -g 18 messagebus &&
useradd -c "D-Bus Message Daemon User" -d /var/run/dbus \
        -u 18 -g messagebus -s /bin/false messagebus
wget http://dbus.freedesktop.org/releases/dbus/dbus-1.6.8.tar.gz
tar -xvpf dbus-1.6.8.tar.gz
cd dbus-1.6.8
./configure --prefix=/usr \
            --sysconfdir=/etc \
            --localstatedir=/var \
            --libexecdir=/usr/lib/dbus-1.0 \
            --with-console-auth-dir=/run/console/ \
            --without-systemdsystemunitdir \
            --disable-systemd \
            --disable-static &&
make
make install
cat > /etc/dbus-1/session-local.conf << "EOF"
<!DOCTYPE busconfig PUBLIC
"-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>
  <!-- Search for .service files in /usr/local -->
  <servicedir>/usr/local/share/dbus-1/services</servicedir>
</busconfig>
EOF
wget http://www.linuxfromscratch.org/blfs/downloads/svn/blfs-bootscripts-20120828.tar.bz2
tar -xvpf blfs-bootscripts-20120828.tar.bz2
cd blfs-bootscripts-20120828
make install-dbus
</pre>
==== atk ====
<pre>
git clone git://git.gnome.org/atk
cd atk
./configure --prefix=/usr &&
make
make install
</pre>
==== at-spi2-core-2.6.1 ====
<pre>
wget http://ftp.gnome.org/pub/gnome/sources/at-spi2-core/2.6/at-spi2-core-2.6.1.tar.xz
tar -xvpf at-spi2-core-2.6.1.tar.xz
cd at-spi2-core-2.6.1
./configure --prefix=/usr \
            --sysconfdir=/etc \
            --libexecdir=/usr/lib/at-spi2-core &&
make
make install
</pre>
==== at-spi2-atk-2.6.1 ====
<pre>
wget http://ftp.gnome.org/pub/gnome/sources/at-spi2-atk/2.6/at-spi2-atk-2.6.1.tar.xz
tar -xvpf at-spi2-atk-2.6.1.tar.xz
cd at-spi2-atk-2.6.1
./configure --prefix=/usr &&
make
make install
</pre>
==== gtk+ ====
For correct functionality with current Wayland you must use the GTK+ master branch. As a precursor to these steps you must have downloaded and compiled Wayland as per the building instructions.
GTK+ master also currently depends on an unstable release version of glib and atk. To avoid problems it is advisable to install this into the prefix used in the Wayland build instructions.
<pre>
git clone git://git.gnome.org/gtk+
cd gtk+
./configure --prefix=/usr --sysconfdir=/etc --disable-packagekit --enable-wayland-backend &&
make -j10
make install
</pre>
=== GTK for wayland ===
==== UnZip-6.0 ====
<pre>
wget http://downloads.sourceforge.net/infozip/unzip60.tar.gz
tar -xvpf unzip60.tar.gz
cd unzip60
case `uname -m` in
  i?86)
    sed -i -e 's/DASM"/DASM -DNO_LCHMOD"/' unix/Makefile
    make -f unix/Makefile linux
    ;;
  *)
    sed -i -e 's/CFLAGS="-O -Wall/& -DNO_LCHMOD/' unix/Makefile
    make -f unix/Makefile linux_noasm
    ;;
esac
make prefix=/usr install
</pre>
==== docbook-xml-4.5.zip ====
<pre>
wget http://www.docbook.org/xml/4.5/docbook-xml-4.5.zip
mkdir docbook-xml
unzip -x docbook-xml-4.5.zip -d docbook-xml
cd docbook-xml
install -v -d -m755 /usr/share/xml/docbook/xml-dtd-4.5 &&
install -v -d -m755 /etc/xml &&
chown -R root:root . &&
cp -v -af docbook.cat *.dtd ent/ *.mod /usr/share/xml/docbook/xml-dtd-4.5
if [ ! -e /etc/xml/docbook ]; then
    xmlcatalog --noout --create /etc/xml/docbook
fi &&
xmlcatalog --noout --add "public" \
    "-//OASIS//DTD DocBook XML V4.5//EN" \
    "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" \
    /etc/xml/docbook &&
xmlcatalog --noout --add "public" \
    "-//OASIS//DTD DocBook XML CALS Table Model V4.5//EN" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5/calstblx.dtd" \
    /etc/xml/docbook &&
xmlcatalog --noout --add "public" \
    "-//OASIS//DTD XML Exchange Table Model 19990315//EN" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5/soextblx.dtd" \
    /etc/xml/docbook &&
xmlcatalog --noout --add "public" \
    "-//OASIS//ELEMENTS DocBook XML Information Pool V4.5//EN" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5/dbpoolx.mod" \
    /etc/xml/docbook &&
xmlcatalog --noout --add "public" \
    "-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.5//EN" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5/dbhierx.mod" \
    /etc/xml/docbook &&
xmlcatalog --noout --add "public" \
    "-//OASIS//ELEMENTS DocBook XML HTML Tables V4.5//EN" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5/htmltblx.mod" \
    /etc/xml/docbook &&
xmlcatalog --noout --add "public" \
    "-//OASIS//ENTITIES DocBook XML Notations V4.5//EN" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5/dbnotnx.mod" \
    /etc/xml/docbook &&
xmlcatalog --noout --add "public" \
    "-//OASIS//ENTITIES DocBook XML Character Entities V4.5//EN" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5/dbcentx.mod" \
    /etc/xml/docbook &&
xmlcatalog --noout --add "public" \
    "-//OASIS//ENTITIES DocBook XML Additional General Entities V4.5//EN" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5/dbgenent.mod" \
    /etc/xml/docbook &&
xmlcatalog --noout --add "rewriteSystem" \
    "http://www.oasis-open.org/docbook/xml/4.5" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5" \
    /etc/xml/docbook &&
xmlcatalog --noout --add "rewriteURI" \
    "http://www.oasis-open.org/docbook/xml/4.5" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5" \
    /etc/xml/docbook
if [ ! -e /etc/xml/catalog ]; then
    xmlcatalog --noout --create /etc/xml/catalog
fi &&
xmlcatalog --noout --add "delegatePublic" \
    "-//OASIS//ENTITIES DocBook XML" \
    "file:///etc/xml/docbook" \
    /etc/xml/catalog &&
xmlcatalog --noout --add "delegatePublic" \
    "-//OASIS//DTD DocBook XML" \
    "file:///etc/xml/docbook" \
    /etc/xml/catalog &&
xmlcatalog --noout --add "delegateSystem" \
    "http://www.oasis-open.org/docbook/" \
    "file:///etc/xml/docbook" \
    /etc/xml/catalog &&
xmlcatalog --noout --add "delegateURI" \
    "http://www.oasis-open.org/docbook/" \
    "file:///etc/xml/docbook" \
    /etc/xml/catalog
</pre>
==== docbook-xsl-1.77.1 ====
<pre>
wget http://downloads.sourceforge.net/docbook/docbook-xsl-1.77.1.tar.bz2
tar -xvpf docbook-xsl-1.77.1.tar.bz2
cd docbook-xsl-1.77.1
install -v -m755 -d /usr/share/xml/docbook/xsl-stylesheets-1.77.1 &&
cp -v -R VERSION common eclipse epub extensions fo highlighting html \
        htmlhelp images javahelp lib manpages params profiling \
        roundtrip slides template tests tools webhelp website \
        xhtml xhtml-1_1 \
    /usr/share/xml/docbook/xsl-stylesheets-1.77.1 &&
ln -s VERSION /usr/share/xml/docbook/xsl-stylesheets-1.77.1/VERSION.xsl &&
install -v -m644 -D README /usr/share/doc/docbook-xsl-1.77.1/README.txt &&
install -v -m755    RELEASE-NOTES* NEWS* /usr/share/doc/docbook-xsl-1.77.1
if [ ! -d /etc/xml ]; then install -v -m755 -d /etc/xml; fi &&
if [ ! -f /etc/xml/catalog ]; then
    xmlcatalog --noout --create /etc/xml/catalog
fi &&
xmlcatalog --noout --add "rewriteSystem" \
          "http://docbook.sourceforge.net/release/xsl/1.77.1" \
          "/usr/share/xml/docbook/xsl-stylesheets-1.77.1" \
    /etc/xml/catalog &&
xmlcatalog --noout --add "rewriteURI" \
          "http://docbook.sourceforge.net/release/xsl/1.77.1" \
          "/usr/share/xml/docbook/xsl-stylesheets-1.77.1" \
    /etc/xml/catalog &&
xmlcatalog --noout --add "rewriteSystem" \
          "http://docbook.sourceforge.net/release/xsl/current" \
          "/usr/share/xml/docbook/xsl-stylesheets-1.77.1" \
    /etc/xml/catalog &&
xmlcatalog --noout --add "rewriteURI" \
          "http://docbook.sourceforge.net/release/xsl/current" \
          "/usr/share/xml/docbook/xsl-stylesheets-1.77.1" \
    /etc/xml/catalog
</pre>
==== gtk-doc-1.18 ====
<pre>
wget http://ftp.gnome.org/pub/gnome/sources/gtk-doc/1.18/gtk-doc-1.18.tar.xz
tar -xvpf gtk-doc-1.18.tar.xz
cd gtk-doc-1.18
./configure --prefix=/usr &&
make
make install
</pre>
==== glib ====
<pre>
git clone git://git.gnome.org/glib
pushd glib
./autogen.sh --prefix=$WLD
make && make install
popd
</pre>
==== atk ====
<pre>
git clone git://git.gnome.org/atk
pushd atk
./autogen.sh --prefix=$WLD
make && make install
popd
</pre>
==== gobject-introspection ====
git clone git://git.gnome.org/gobject-introspection
==== gdk-pixbuf-2.26.4 ====
<pre>
wget http://ftp.gnome.org/pub/gnome/sources/gdk-pixbuf/2.26/gdk-pixbuf-2.26.4.tar.xz
tar -xvpf gdk-pixbuf-2.26.4.tar.xz
cd gdk-pixbuf-2.26.4
./configure --prefix=/usr --without-libtiff
make -j4
make install
</pre>
==== gtk+ ====
<pre>
git clone git://git.gnome.org/gtk+
pushd gtk+
./autogen.sh --prefix=$WLD --enable-wayland-backend
make && make install
popd
</pre>

2012年11月2日 (五) 23:12的版本

wayland的编译

准备工作

基础知识

  1. 具有lfs编译经验
  2. 一个可用的LFS系统(仅在LFS 7.1 64位版本验证过,其他版本没有测试)

设置环境变量

WLD=/usr/  
LD_LIBRARY_PATH=$WLD/lib64
PKG_CONFIG_PATH=$WLD/lib64/pkgconfig/:$WLD/share/pkgconfig/
ACLOCAL="aclocal -I $WLD/share/aclocal"

export WLD LD_LIBRARY_PATH PKG_CONFIG_PATH ACLOCAL
export XORG_CONFIG="--prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man --localstatedir=/var"

安装一些基本工具

openssl

wget http://www.openssl.org/source/openssl-1.0.1c.tar.gz
tar -xvpf openssl-1.0.1c.tar.gz
cd openssl-1.0.1c
patch -Np1 -i ../openssl-1.0.1c-fix_manpages-1.patch &&
./config --prefix=/usr zlib-dynamic --openssldir=/etc/ssl shared &&
make
make install

安装 wget


wget http://ftp.gnu.org/gnu/wget/wget-1.14.tar.xz
tar -xvpf wget-1.14.tar.xz
cd wget-1.14
./configure --prefix=/usr      \
            --sysconfdir=/etc  \
            --with-ssl=openssl &&
make
make install

安装 git

http://git-core.googlecode.com/files/git-1.8.0.tar.gz

./configure --without-python

安装 libffi

install libffi

wget ftp://sourceware.org/pub/libffi/libffi-3.0.11.tar.gz tar -xvpf libffi-3.0.11.tar.gz cd libffi-3.0.11 ./configure --prefix=/usr && make -j10 make install

安装 expat

install expat

安装 wayland

git clone git://anongit.freedesktop.org/wayland/wayland

cd wayland ./autogen.sh --prefix=$WLD --disable-documentation make -j10 make install

libpthread-stubs-0.3

wget http://xcb.freedesktop.org/dist/libpthread-stubs-0.3.tar.bz2 tar -xvpf libpthread-stubs-0.3.tar.bz2 cd libpthread-stubs-0.3 ./configure --prefix=/usr && make -j8 make install

libpciaccess

http://xorg.freedesktop.org/archive/individual/lib/libpciaccess-0.13.1.tar.gz tar -xvpf libpciaccess-0.13.1.tar.gz cd libpciaccess-0.13.1 ./configire --prefix=/usr make make install

安装 drm

git clone git://anongit.freedesktop.org/git/mesa/drm cd drm ./autogen.sh --prefix=$WLD make -j8 && make install



安装 util-macros-1.17

wget http://xorg.freedesktop.org/releases/individual/util/util-macros-1.17.tar.bz2 tar -xvpf util-macros-1.17.tar.bz2 cd util-macros-1.17 ./configure --prefix=$WLD make && make install



cat > proto-7.7.md5 << "EOF"
1a05fb01fa1d5198894c931cf925c025  bigreqsproto-1.1.2.tar.bz2
98482f65ba1e74a08bf5b056a4031ef0  compositeproto-0.4.2.tar.bz2
998e5904764b82642cc63d97b4ba9e95  damageproto-1.2.1.tar.bz2
4ee175bbd44d05c34d43bb129be5098a  dmxproto-2.3.1.tar.bz2
2eb74959684f47c862081099059a11ab  dri2proto-2.6.tar.bz2
e7431ab84d37b2678af71e29355e101d  fixesproto-5.0.tar.bz2
c5f4f1fb4ba7766eedbc9489e81f3be2  fontsproto-2.1.2.tar.bz2
d1ff0c1acc605689919c1ee2fc9b5582  glproto-1.4.15.tar.bz2
13c8aedaf98a92e282b7e456c0a5bed9  inputproto-2.2.tar.bz2
677ea8523eec6caca86121ad2dca0b71  kbproto-1.0.6.tar.bz2
597491c0d8055e2a66f11350c4985775  randrproto-1.3.2.tar.bz2
1b4e5dede5ea51906f1530ca1e21d216  recordproto-1.14.2.tar.bz2
a914ccc1de66ddeb4b611c6b0686e274  renderproto-0.11.1.tar.bz2
cfdb57dae221b71b2703f8e2980eaaf4  resourceproto-1.2.0.tar.bz2
edd8a73775e8ece1d69515dd17767bfb  scrnsaverproto-1.2.2.tar.bz2
c3b348c6e2031b72b11ae63fc7f805c2  videoproto-2.3.1.tar.bz2
5f4847c78e41b801982c8a5e06365b24  xcmiscproto-1.2.2.tar.bz2
eaac343af094e6b608cf15cfba0f77c5  xextproto-7.2.1.tar.bz2
120e226ede5a4687b25dd357cc9b8efe  xf86bigfontproto-1.2.0.tar.bz2
a036dc2fcbf052ec10621fd48b68dbb1  xf86dgaproto-2.1.tar.bz2
1d716d0dac3b664e5ee20c69d34bc10e  xf86driproto-2.1.1.tar.bz2
e793ecefeaecfeabd1aed6a01095174e  xf86vidmodeproto-2.3.1.tar.bz2
9959fe0bfb22a0e7260433b8d199590a  xineramaproto-1.2.1.tar.bz2
d4d241a4849167e4e694fe73371c328c  xproto-7.0.23.tar.bz2
EOF

mkdir proto &&
cd proto &&
grep -v '^#' ../proto-7.7.md5 | awk '{print $2}' | wget -i- -c \
    -B http://xorg.freedesktop.org/releases/individual/proto/ &&
md5sum -c ../proto-7.7.md5

export XORG_PREFIX="/usr"
export XORG_CONFIG="--prefix=$XORG_PREFIX --sysconfdir=/etc \
    --mandir=$XORG_PREFIX/share/man --localstatedir=/var"

for package in $(grep -v '^#' ../proto-7.7.md5 | awk '{print $2}')
do
  packagedir=${package%.tar.bz2}
  tar -xf $package
  pushd $packagedir
  ./configure $XORG_CONFIG
  make install
  popd
  rm -r $packagedir
done


安装pkg-config

安装 makedepend-1.0.4

wget http://xorg.freedesktop.org/releases/individual/util/makedepend-1.0.4.tar.bz2 tar -xvpf makedepend-1.0.4.tar.bz2 cd makedepend-1.0.4 ./configure $XORG_CONFIG && make make install


安装 libxml2-2.9.0

wget http://xmlsoft.org/sources/libxml2-2.9.0.tar.gz tar -xvpf libxml2-2.9.0.tar.gz cd libxml2-2.9.0 ./configure --prefix=/usr --disable-static && make

安装libxslt

wget http://xmlsoft.org/sources/libxslt-1.1.27.tar.gz tar -xvpf libxslt-1.1.27.tar.gz cd libxslt-1.1.27 ./configure --prefix=/usr --disable-static && make make install

安装Python2.7.x

wget http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tar.xz tar -xvpf Python-2.7.3.tar.xz cd Python-2.7.3 sed -i "s/ndbm_libs = \[\]/ndbm_libs = ['gdbm', 'gdbm_compat']/" setup.py && ./configure --prefix=/usr --enable-shared && make -j8

安装xcb-proto-1.7.1

wget http://xcb.freedesktop.org/dist/xcb-proto-1.7.1.tar.bz2 tar -xvpf xcb-proto-1.7.1.tar.bz2 cd xcb-proto-1.7.1 ./configure --prefix=/usr make && make install

安装libXau

wget http://xorg.freedesktop.org/releases/individual/lib/libXau-1.0.7.tar.bz2 tar -xvpf libXau-1.0.7.tar.bz2 cd libXau-1.0.7 ./configure --prefix=/usr make make install

安装libXdmcp

wget http://xorg.freedesktop.org/releases/individual/lib/libXdmcp-1.1.1.tar.bz2 tar -xvpf libXdmcp-1.1.1.tar.bz2 cd libXdmcp-1.1.1 ./configure --prefix=/usr make make install

安装libxcb

wget http://xcb.freedesktop.org/dist/libxcb-1.8.1.tar.bz2 tar -xvpf libxcb-1.8.1.tar.bz2 cd libxcb-1.8.1 ./configure $XORG_CONFIG make make install

安装 Xorg lib

cat > lib-7.7.md5 << "EOF"
84c66908cf003ad8c272b0eecbdbaee3  xtrans-1.2.7.tar.bz2
78b4b3bab4acbdf0abcfca30a8c70cc6  libX11-1.5.0.tar.bz2
71251a22bc47068d60a95f50ed2ec3cf  libXext-1.3.1.tar.bz2
645f83160cf7b562734e2038045106d1  libFS-1.0.4.tar.bz2
471b5ca9f5562ac0d6eac7a0bf650738  libICE-1.0.8.tar.bz2
766de9d1e1ecf8bf74cebe2111d8e2bd  libSM-1.2.1.tar.bz2
7a773b16165e39e938650bcc9027c1d5  libXScrnSaver-1.2.2.tar.bz2
a6f137ae100e74ebe3b71eb4a38c40b3  libXt-1.1.3.tar.bz2
a4efff8de85bd45dd3da124285d10c00  libXmu-1.1.1.tar.bz2
7ae7eff7a14d411e84a67bd166bcec1a  libXpm-3.5.10.tar.bz2
f39942f2cab379fc9b4c3731bf191b84  libXaw-1.0.11.tar.bz2
678071bd7f9f7467e2fc712d81022318  libXfixes-5.0.tar.bz2
a60e0b5c276d0aa9e2d3b982c98f61c8  libXcomposite-0.4.3.tar.bz2
ee62f4c7f0f16ced4da63308963ccad2  libXrender-0.9.7.tar.bz2
52efa81b7f26c8eda13510a2fba98eea  libXcursor-1.1.13.tar.bz2
44774e1a065158b52f1a0da5100cebec  libXdamage-1.1.3.tar.bz2
a2a861f142c3b4367f14fc14239fc1f7  libfontenc-1.1.1.tar.bz2
6851da5dae0a6cf5f7c9b9e2b05dd3b4  libXfont-1.4.5.tar.bz2
78d64dece560c9e8699199f3faa521c0  libXft-2.3.1.tar.bz2
78ee882e1ff3b192cf54070bdb19938e  libXi-1.6.1.tar.bz2
cb45d6672c93a608f003b6404f1dd462  libXinerama-1.1.2.tar.bz2
92473da2fccf5fac665be4fa4f2037fa  libXrandr-1.3.2.tar.bz2
80d0c6d8522fa7a645e4f522e9a9cd20  libXres-1.0.6.tar.bz2
e8abc5c00c666f551cf26aa53819d592  libXtst-1.2.1.tar.bz2
5e1ac203ccd3ce3e89755ed1fbe75b0b  libXv-1.0.7.tar.bz2
3340c99ff556ea2457b4be47f5cb96fa  libXvMC-1.0.7.tar.bz2
b7f38465c46e7145782d37dbb9da8c09  libXxf86dga-1.1.3.tar.bz2
ffd93bcedd8b2b5aeabf184e7b91f326  libXxf86vm-1.1.2.tar.bz2
782ced3a9e754dfeb53a8a006a75eb1a  libdmx-1.1.2.tar.bz2
399a419ac6a54f0fc07c69c9bdf452dc  libpciaccess-0.13.1.tar.bz2
19e6533ae64abba0773816a23f2b9507  libxkbfile-1.0.8.tar.bz2
EOF



mkdir lib &&
cd lib &&
grep -v '^#' ../lib-7.7.md5 | awk '{print $2}' | wget -i- -c \
    -B http://xorg.freedesktop.org/releases/individual/lib/ &&
md5sum -c ../lib-7.7.md5


for package in $(grep -v '^#' ../lib-7.7.md5 | awk '{print $2}')
do
  packagedir=${package%.tar.bz2}
  tar -xf $package
  pushd $packagedir
  case $packagedir in
    libXfont-[0-9]* )
      ./configure $XORG_CONFIG --disable-devel-docs
    ;;
    libXt-[0-9]* )
      ./configure $XORG_CONFIG \
        --with-appdefaultdir=/etc/X11/app-defaults
    ;;
    * )
      ./configure $XORG_CONFIG
    ;;
  esac
  make
  make install
  popd
  rm -r $packagedir
  /sbin/ldconfig
done

安装 llvm

wget http://llvm.org/releases/3.1/llvm-3.1.src.tar.gz
tar -xvpf llvm-3.1.src.tar.gz
cd llvm-3.1.src
wget http://llvm.org/releases/3.1/clang-3.1.src.tar.gz
tar -xf clang-3.1.src.tar.gz -C tools &&
mv tools/clang-3.1.src tools/clang
CC=gcc                                 \
CXX=g++                                \
./configure --prefix=/usr              \
            --libdir=/usr/lib/llvm     \
            --sysconfdir=/etc          \
            --enable-shared            \
            --enable-libffi            \
            --enable-targets=all       \
            --disable-expensive-checks \
            --disable-debug-runtime    \
            --disable-assertions       \
            --enable-optimized        &&

make 
make install

安装 Mesa

Note on Mesa build failures: If you're not building in your Mesa git repo for the first time, the first thing to try is always "git clean -xfd", and possibly deleting your $WLD directory, as Mesa requires this often.

git clone git://anongit.freedesktop.org/mesa/mesa cd mesa ./autogen.sh --prefix=$WLD \ --enable-gles2 \ --disable-gallium-egl \ --with-egl-platforms=x11,wayland,drm \ --enable-gbm \ --enable-shared-glapi \ --with-gallium-drivers=r300,r600,swrast,nouveau make && make install

wget ftp://ftp.freedesktop.org/pub/mesa/glu/glu-9.0.0.tar.bz2

make make install


./configure --prefix=/usr \

           --sysconfdir=/etc              \
           --enable-texture-float         \
           --enable-gles1                 \
           --enable-gles2                 \
           --enable-openvg                \
           --enable-xa                    \
           --enable-gbm                   \
           --enable-gallium-egl           \
           --enable-gallium-gbm           \
           --enable-r600-llvm-compiler    \
           --enable-glx-tls               \

--enable-shared-glapi \

           --with-egl-platforms="x11,wayland,drm" \
           --with-gallium-drivers="nouveau,r300,r600,radeonsi,svga,swrast" &&

make

安装 libxkbcommon

git clone git://people.freedesktop.org/xorg/lib/libxkbcommon.git cd libxkbcommon/ ./autogen.sh --prefix=$WLD --with-xkb-config-root=/usr/share/X11/xkb make && make install

pixman

git clone git://anongit.freedesktop.org/pixman cd pixman ./autogen.sh --prefix=$WLD make && make install

libpng

wget http://downloads.sourceforge.net/libpng/libpng-1.5.13.tar.xz tar -xvpf libpng-1.5.13.tar.xz cd libpng-1.5.13 ./configure --prefix=/usr --disable-static && make -j10 && make install

cairo

git clone git://anongit.freedesktop.org/cairo
cd cairo
./autogen.sh --prefix=$WLD --enable-gl --enable-xcb --enable-tee
make && make install

wayland demon

wayland demon

not wayland parts

wget http://dri.freedesktop.org/libdrm/libdrm-2.4.39.tar.bz2 tar -xvpf libdrm-2.4.39.tar.bz2 cd libdrm-2.4.39 ./configure --prefix=/usr \

           --enable-udev \
           --enable-vmwgfx-experimental-api &&

make make install

mtdev-1.1.3

wget http://bitmath.org/code/mtdev/mtdev-1.1.3.tar.bz2 tar -xvpf mtdev-1.1.3.tar.bz2 cd mtdev-1.1.3 ./configure --prefix=/usr --disable-static && make make install

libjpeg

wget http://www.ijg.org/files/jpegsrc.v8d.tar.gz tar -xvpf jpegsrc.v8d.tar.gz cd jpeg-8d ./configure --prefix=/usr && make make install

Linux PAM

wget http://linux-pam.org/library/Linux-PAM-1.1.6.tar.bz2
tar -xvpf Linux-PAM-1.1.6.tar.bz2
cd Linux-PAM-1.1.6
./configure --prefix=/usr \
            --sysconfdir=/etc \
            --docdir=/usr/share/doc/Linux-PAM-1.1.6 \
            --disable-nis &&
make -j10
make install

weston

git clone git://anongit.freedesktop.org/wayland/weston
cd weston
./autogen.sh --prefix=$WLD
make
make install

配置 weston

cp weston.ini $HOME/.config/weston.ini
export XDG_RUNTIME_DIR=/tmp
weston

xbitmaps

wget http://xorg.freedesktop.org/releases/individual/data/xbitmaps-1.1.1.tar.bz2 tar -xvpf xbitmaps-1.1.1.tar.bz2 cd xbitmaps-1.1.1 ./configure $XORG_CONFIG

gperf

wget http://ftp.gnu.org/gnu/gperf/gperf-3.0.4.tar.gz tar -xvpf gperf-3.0.4.tar.gz cd gperf-3.0.4 ./configure --prefix=/usr --docdir=/usr/share/doc/gperf-3.0.4 && make && make install

xcb-util-0.3.9

wget http://xorg.freedesktop.org/releases/individual/xcb/xcb-util-0.3.9.tar.bz2 tar -xvpf xcb-util-0.3.9.tar.bz2 cd xcb-util-0.3.9 ./configure $XORG_CONFIG && make && make install

freetype-2.4.10

wget http://downloads.sourceforge.net/freetype/freetype-2.4.10.tar.bz2 tar -xvpf freetype-2.4.10.tar.bz2 cd freetype-2.4.10 ./configure --prefix=/usr --disable-static && make make install

fontconfig-2.10.

wget http://fontconfig.org/release/fontconfig-2.10.1.tar.bz2 tar -xvpf fontconfig-2.10.1.tar.bz2 cd fontconfig-2.10.1 ./configure --prefix=/usr \

           --sysconfdir=/etc \
           --localstatedir=/var \
           --docdir=/usr/share/doc/fontconfig-2.10.1 \
           --disable-docs \
           --disable-static &&

make make install

Xorg App

cat > app-7.7.md5 << "EOF"
4a7a4a848c43c42f7d499b60666434a4  bdftopcf-1.0.3.tar.bz2
08e3f6b523da8b0af179f22f339508b2  iceauth-1.0.5.tar.bz2
c4a3664e08e5a47c120ff9263ee2f20c  luit-1.1.1.tar.bz2
18c429148c96c2079edda922a2b67632  mkfontdir-1.0.7.tar.bz2
414fcb053418fb1418e3a39f4a37e0f7  mkfontscale-1.1.0.tar.bz2
e99172cbd72700eeeae99f64632b5dc2  sessreg-1.0.7.tar.bz2
1001771344608e120e943a396317c33a  setxkbmap-1.3.0.tar.bz2
edce41bd7562dcdfb813e05dbeede8ac  smproxy-1.0.5.tar.bz2
5c3c7431a38775caaea6051312a49bc9  x11perf-1.5.4.tar.bz2
cbcbd8f2156a53b609800bec4c6b6c0e  xauth-1.0.7.tar.bz2
c9891d6a3f3129d56cede72daa0ba26c  xbacklight-1.1.2.tar.bz2
5812be48cbbec1068e7b718eec801766  xcmsdb-1.0.4.tar.bz2
09f56978a62854534deacc8aa8ff3031  xcursorgen-1.0.5.tar.bz2
1ef08f4c8d0e669c2edd49e4a1bf650d  xdpyinfo-1.3.0.tar.bz2
3d3cad4d754e10e325438193433d59fd  xdriinfo-1.0.4.tar.bz2
2727c72f3eba0c23f8f6b2e618d195a2  xev-1.2.0.tar.bz2
c06067f572bc4a5298f324f27340da95  xgamma-1.0.5.tar.bz2
a0fcd2cb6ddd9f378944cc6f4f83cd7c  xhost-1.0.5.tar.bz2
d2459d35b4e0b41ded26a1d1159b7ac6  xinput-1.6.0.tar.bz2
a0fc1ac3fc4fe479ade09674347c5aa0  xkbcomp-1.2.4.tar.bz2
37ed71525c63a9acd42e7cde211dcc5b  xkbevd-1.1.3.tar.bz2
52ad6d8d87577a8ac736ab5488bec210  xkbutils-1.0.3.tar.bz2
e7f0d57b6ba49c384e9cf8c9ff3243c1  xkill-1.0.3.tar.bz2
9d0e16d116d1c89e6b668c1b2672eb57  xlsatoms-1.1.1.tar.bz2
760099f0af112401735801e3b9aa8595  xlsclients-1.1.2.tar.bz2
d9b65f6881afe0d6d9863b30e1081bde  xmodmap-1.0.7.tar.bz2
6101f04731ffd40803df80eca274ec4b  xpr-1.0.4.tar.bz2
d5529dc8d811efabd136ca2d8e857deb  xprop-1.2.1.tar.bz2
9735173a84dca9b05e06fd4686196b07  xrandr-1.3.5.tar.bz2
ed2e48cf33584455d74615ad4bbe4246  xrdb-1.0.9.tar.bz2
2f63f88ad0dcecd33c8cf000f38e9250  xrefresh-1.0.4.tar.bz2
d44e0057d6722b25d5a314e82e0b7e7c  xset-1.2.2.tar.bz2
b78a2da4cf128775031a5a3422fc0b78  xsetroot-1.1.0.tar.bz2
c88feb501083951a8f47a21aaeb1529d  xvinfo-1.1.1.tar.bz2
2113126f9ac9c02bb8547c112c5d037e  xwd-1.0.5.tar.bz2
9e8b58c8aa6172e87ab4f9cf3612fedd  xwininfo-1.1.2.tar.bz2
3025b152b4f13fdffd0c46d0be587be6  xwud-1.0.4.tar.bz2
EOF


for package in $(grep -v '^#' ../app-7.7.md5 | awk '{print $2}')
do
  packagedir=${package%.tar.bz2}
  tar -xf $package
  pushd $packagedir
  ./configure $XORG_CONFIG
  make
  make install
  popd
  rm -r $packagedir
done

XML-Parser-2.41

wget http://anduin.linuxfromscratch.org/sources/BLFS/svn/perl-modules/XML-Parser-2.41.tar.gz tar -xvpf XML-Parser-2.41.tar.gz cd XML-Parser-2.41 perl Makefile.PL && make && make install

intltool-0.50.2

wget http://launchpad.net/intltool/trunk/0.50.2/+download/intltool-0.50.2.tar.gz tar -xvpf intltool-0.50.2.tar.gz cd intltool-0.50.2 ./configure --prefix=/usr && make make install

xkeyboard-config-2.6

wget http://xorg.freedesktop.org/releases/individual/data/xkeyboard-config/xkeyboard-config-2.6.tar.bz2 tar -xvpf xkeyboard-config-2.6.tar.bz2 cd xkeyboard-config-2.6

./configure $XORG_CONFIG --with-xkb-rules-symlink=xorg && make


    $ sudo groupadd weston-launch
    $ sudo usermod -a -G weston-launch $USER
    $ # Log all the way out (of X, etc.)
    $ sudo chown root weston-launch
    $ sudo chmod +s weston-launch
    $ weston-launch

GTK+3.6

icu4c

wget http://download.icu-project.org/files/icu4c/49.1.2/icu4c-49_1_2-src.tgz
tar -xvpf icu4c-49_1_2-src.tgz
cd source &&
./configure --prefix=/usr &&
make
make install

pcre-8.31

wget http://downloads.sourceforge.net/pcre/pcre-8.31.tar.bz2
tar -xvpf pcre-8.31.tar.bz2
pushd pcre-8.31
./configure --prefix=/usr \
            --docdir=/usr/share/doc/pcre-8.31 \
            --enable-utf \
            --enable-unicode-properties \
            --enable-pcregrep-libz \
            --enable-pcregrep-libbz2 \
            --disable-static &&
make
make install
popd

glib

git clone git://git.gnome.org/glib
pushd glib
./configure --prefix=/usr --with-pcre=system &&
make -j10
make install
popd

harfbuzz-0.9.5

wget http://www.freedesktop.org/software/harfbuzz/release/harfbuzz-0.9.5.tar.bz2
tar -xvpf harfbuzz-0.9.5.tar.bz2
pushd harfbuzz-0.9.5
./configure --prefix=/usr &&
make -j10
make install
popd

Pango-1.32.1

  • Required
  1. Cairo-1.12.6
  2. glib-2.33
  3. Harfbuzz-0.9.5
  4. Xorg Libraries


wget http://ftp.gnome.org/pub/gnome/sources/pango/1.32/pango-1.32.1.tar.xz
tar -xvpf pango-1.32.1.tar.xz
pushd pango-1.32.1
./configure --prefix=/usr --sysconfdir=/etc &&
make -j10
make uninstall
popd

gdk-pixbuf-2.26.4

wget http://ftp.gnome.org/pub/gnome/sources/gdk-pixbuf/2.26/gdk-pixbuf-2.26.4.tar.xz
tar -xvpf gdk-pixbuf-2.26.4.tar.xz
cd gdk-pixbuf-2.26.4
./configure --prefix=/usr --without-libtiff
make -j4
make install

dbus-1.6.8


groupadd -g 18 messagebus &&
useradd -c "D-Bus Message Daemon User" -d /var/run/dbus \
        -u 18 -g messagebus -s /bin/false messagebus


wget http://dbus.freedesktop.org/releases/dbus/dbus-1.6.8.tar.gz
tar -xvpf dbus-1.6.8.tar.gz
cd dbus-1.6.8
./configure --prefix=/usr \
            --sysconfdir=/etc \
            --localstatedir=/var \
            --libexecdir=/usr/lib/dbus-1.0 \
            --with-console-auth-dir=/run/console/ \
            --without-systemdsystemunitdir \
            --disable-systemd \
            --disable-static &&
make
make install

cat > /etc/dbus-1/session-local.conf << "EOF"
<!DOCTYPE busconfig PUBLIC
 "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>

  <!-- Search for .service files in /usr/local -->
  <servicedir>/usr/local/share/dbus-1/services</servicedir>

</busconfig>
EOF

wget http://www.linuxfromscratch.org/blfs/downloads/svn/blfs-bootscripts-20120828.tar.bz2
tar -xvpf blfs-bootscripts-20120828.tar.bz2
cd blfs-bootscripts-20120828
make install-dbus

atk

git clone git://git.gnome.org/atk
cd atk
./configure --prefix=/usr &&
make
make install

at-spi2-core-2.6.1

wget http://ftp.gnome.org/pub/gnome/sources/at-spi2-core/2.6/at-spi2-core-2.6.1.tar.xz
tar -xvpf at-spi2-core-2.6.1.tar.xz
cd at-spi2-core-2.6.1
./configure --prefix=/usr \
            --sysconfdir=/etc \
            --libexecdir=/usr/lib/at-spi2-core &&
make 
make install

at-spi2-atk-2.6.1

wget http://ftp.gnome.org/pub/gnome/sources/at-spi2-atk/2.6/at-spi2-atk-2.6.1.tar.xz
tar -xvpf at-spi2-atk-2.6.1.tar.xz
cd at-spi2-atk-2.6.1
./configure --prefix=/usr &&
make
make install

gtk+

For correct functionality with current Wayland you must use the GTK+ master branch. As a precursor to these steps you must have downloaded and compiled Wayland as per the building instructions.

GTK+ master also currently depends on an unstable release version of glib and atk. To avoid problems it is advisable to install this into the prefix used in the Wayland build instructions.

git clone git://git.gnome.org/gtk+
cd gtk+
./configure --prefix=/usr --sysconfdir=/etc --disable-packagekit --enable-wayland-backend &&
make -j10
make install

GTK for wayland

UnZip-6.0

wget http://downloads.sourceforge.net/infozip/unzip60.tar.gz
tar -xvpf unzip60.tar.gz
cd unzip60

case `uname -m` in
  i?86)
    sed -i -e 's/DASM"/DASM -DNO_LCHMOD"/' unix/Makefile
    make -f unix/Makefile linux
    ;;
  *)
    sed -i -e 's/CFLAGS="-O -Wall/& -DNO_LCHMOD/' unix/Makefile
    make -f unix/Makefile linux_noasm
    ;;
esac

make prefix=/usr install

docbook-xml-4.5.zip

wget http://www.docbook.org/xml/4.5/docbook-xml-4.5.zip
mkdir docbook-xml
unzip -x docbook-xml-4.5.zip -d docbook-xml
cd docbook-xml

install -v -d -m755 /usr/share/xml/docbook/xml-dtd-4.5 &&
install -v -d -m755 /etc/xml &&
chown -R root:root . &&
cp -v -af docbook.cat *.dtd ent/ *.mod /usr/share/xml/docbook/xml-dtd-4.5

if [ ! -e /etc/xml/docbook ]; then
    xmlcatalog --noout --create /etc/xml/docbook
fi &&
xmlcatalog --noout --add "public" \
    "-//OASIS//DTD DocBook XML V4.5//EN" \
    "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" \
    /etc/xml/docbook &&
xmlcatalog --noout --add "public" \
    "-//OASIS//DTD DocBook XML CALS Table Model V4.5//EN" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5/calstblx.dtd" \
    /etc/xml/docbook &&
xmlcatalog --noout --add "public" \
    "-//OASIS//DTD XML Exchange Table Model 19990315//EN" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5/soextblx.dtd" \
    /etc/xml/docbook &&
xmlcatalog --noout --add "public" \
    "-//OASIS//ELEMENTS DocBook XML Information Pool V4.5//EN" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5/dbpoolx.mod" \
    /etc/xml/docbook &&
xmlcatalog --noout --add "public" \
    "-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.5//EN" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5/dbhierx.mod" \
    /etc/xml/docbook &&
xmlcatalog --noout --add "public" \
    "-//OASIS//ELEMENTS DocBook XML HTML Tables V4.5//EN" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5/htmltblx.mod" \
    /etc/xml/docbook &&
xmlcatalog --noout --add "public" \
    "-//OASIS//ENTITIES DocBook XML Notations V4.5//EN" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5/dbnotnx.mod" \
    /etc/xml/docbook &&
xmlcatalog --noout --add "public" \
    "-//OASIS//ENTITIES DocBook XML Character Entities V4.5//EN" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5/dbcentx.mod" \
    /etc/xml/docbook &&
xmlcatalog --noout --add "public" \
    "-//OASIS//ENTITIES DocBook XML Additional General Entities V4.5//EN" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5/dbgenent.mod" \
    /etc/xml/docbook &&
xmlcatalog --noout --add "rewriteSystem" \
    "http://www.oasis-open.org/docbook/xml/4.5" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5" \
    /etc/xml/docbook &&
xmlcatalog --noout --add "rewriteURI" \
    "http://www.oasis-open.org/docbook/xml/4.5" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5" \
    /etc/xml/docbook

if [ ! -e /etc/xml/catalog ]; then
    xmlcatalog --noout --create /etc/xml/catalog
fi &&
xmlcatalog --noout --add "delegatePublic" \
    "-//OASIS//ENTITIES DocBook XML" \
    "file:///etc/xml/docbook" \
    /etc/xml/catalog &&
xmlcatalog --noout --add "delegatePublic" \
    "-//OASIS//DTD DocBook XML" \
    "file:///etc/xml/docbook" \
    /etc/xml/catalog &&
xmlcatalog --noout --add "delegateSystem" \
    "http://www.oasis-open.org/docbook/" \
    "file:///etc/xml/docbook" \
    /etc/xml/catalog &&
xmlcatalog --noout --add "delegateURI" \
    "http://www.oasis-open.org/docbook/" \
    "file:///etc/xml/docbook" \
    /etc/xml/catalog

docbook-xsl-1.77.1

wget http://downloads.sourceforge.net/docbook/docbook-xsl-1.77.1.tar.bz2
tar -xvpf docbook-xsl-1.77.1.tar.bz2
cd docbook-xsl-1.77.1 

install -v -m755 -d /usr/share/xml/docbook/xsl-stylesheets-1.77.1 &&

cp -v -R VERSION common eclipse epub extensions fo highlighting html \
         htmlhelp images javahelp lib manpages params profiling \
         roundtrip slides template tests tools webhelp website \
         xhtml xhtml-1_1 \
    /usr/share/xml/docbook/xsl-stylesheets-1.77.1 &&

ln -s VERSION /usr/share/xml/docbook/xsl-stylesheets-1.77.1/VERSION.xsl &&

install -v -m644 -D README /usr/share/doc/docbook-xsl-1.77.1/README.txt &&
install -v -m755    RELEASE-NOTES* NEWS* /usr/share/doc/docbook-xsl-1.77.1

if [ ! -d /etc/xml ]; then install -v -m755 -d /etc/xml; fi &&
if [ ! -f /etc/xml/catalog ]; then
    xmlcatalog --noout --create /etc/xml/catalog
fi &&

xmlcatalog --noout --add "rewriteSystem" \
           "http://docbook.sourceforge.net/release/xsl/1.77.1" \
           "/usr/share/xml/docbook/xsl-stylesheets-1.77.1" \
    /etc/xml/catalog &&

xmlcatalog --noout --add "rewriteURI" \
           "http://docbook.sourceforge.net/release/xsl/1.77.1" \
           "/usr/share/xml/docbook/xsl-stylesheets-1.77.1" \
    /etc/xml/catalog &&

xmlcatalog --noout --add "rewriteSystem" \
           "http://docbook.sourceforge.net/release/xsl/current" \
           "/usr/share/xml/docbook/xsl-stylesheets-1.77.1" \
    /etc/xml/catalog &&

xmlcatalog --noout --add "rewriteURI" \
           "http://docbook.sourceforge.net/release/xsl/current" \
           "/usr/share/xml/docbook/xsl-stylesheets-1.77.1" \
    /etc/xml/catalog


gtk-doc-1.18

wget http://ftp.gnome.org/pub/gnome/sources/gtk-doc/1.18/gtk-doc-1.18.tar.xz
tar -xvpf gtk-doc-1.18.tar.xz
cd gtk-doc-1.18
./configure --prefix=/usr &&
make
make install


glib

git clone git://git.gnome.org/glib
pushd glib
./autogen.sh --prefix=$WLD
make && make install
popd

atk

git clone git://git.gnome.org/atk
pushd atk
./autogen.sh --prefix=$WLD 
make && make install
popd

gobject-introspection

git clone git://git.gnome.org/gobject-introspection

gdk-pixbuf-2.26.4

wget http://ftp.gnome.org/pub/gnome/sources/gdk-pixbuf/2.26/gdk-pixbuf-2.26.4.tar.xz
tar -xvpf gdk-pixbuf-2.26.4.tar.xz
cd gdk-pixbuf-2.26.4
./configure --prefix=/usr --without-libtiff
make -j4
make install

gtk+

git clone git://git.gnome.org/gtk+
pushd gtk+
./autogen.sh --prefix=$WLD --enable-wayland-backend
make && make install
popd