1.编译cairo
代码: 全选
# 安装补丁工具和编译依赖
sudo apt build-dep cairo -y
sudo apt install quilt -y
# 准备打补丁环境
if [ ! -f ~/.quiltrc-dpkg ]; then
cat > ~/.quiltrc-dpkg << 'EOF'
d=. ; while [ ! -d $d/debian -a $(readlink -e $d) != / ]; do d=$d/..; done
if [ -d $d/debian ] && [ -z $QUILT_PATCHES ]; then
# if in Debian packaging tree with unset $QUILT_PATCHES
QUILT_PATCHES="debian/patches"
QUILT_PATCH_OPTS="--reject-format=unified"
QUILT_DIFF_ARGS="-p ab --no-timestamps --no-index --color=auto"
QUILT_REFRESH_ARGS="-p ab --no-timestamps --no-index"
QUILT_COLORS="diff_hdr=1;32:diff_add=1;34:diff_rem=1;31:diff_hunk=1;33:diff_ctx=35:diff_cctx=33"
if ! [ -d $d/debian/patches ]; then mkdir $d/debian/patches; fi
fi
EOF
fi
if [ "$(cat ~/.bashrc | grep dquilt)" == "" ]; then
cat >> ~/.bashrc << 'EOF'
alias dquilt="quilt --quiltrc=${HOME}/.quiltrc-dpkg"
complete -F _quilt_completion -o filenames dquilt
EOF
fi
source ~/.bashrc
# 下载源文件
apt source cairo
# 为cairo打补丁
cd cairo-*/
dquilt import ../cairo-make-lcdfilter-default-and-cairo-respect-fontconfig_pb.patch
dquilt push
dquilt refresh
dquilt import ../cairo-server-side-gradients.patch
dquilt push
dquilt refresh
dquilt import ../cairo-webkit-html5-fix.patch
dquilt push
dquilt refresh
# 开始编译
dpkg-buildpackage -us -uc
代码: 全选
# 安装编译依赖
sudo apt build-dep fontconfig -y
# 下载源文件
apt source fontconfig
# 为fontconfig打补丁
cd fontconfig-*/
dquilt import ../0001-configure-2.13.1.patch
dquilt push
dquilt refresh
dquilt import ../0002-configure-2.13.1.ac.patch
dquilt push
dquilt refresh
dquilt import ../0003-Makefile-2.13.1.in.patch
dquilt push
dquilt refresh
dquilt import ../0004-Makefile-2.13.1.am.patch
dquilt push
dquilt refresh
代码: 全选
install -m755 fc-presets debian/tmp/usr/bin
mkdir -p debian/fontconfig-config/etc/fonts
cp -arf conf.d.infinality debian/fontconfig-config/etc/fonts/conf.avail.infinality
rm debian/fontconfig-config/etc/fonts/conf.avail.infinality/Makefile
rm debian/fontconfig-config/etc/fonts/conf.avail.infinality/Makefile.am
rm debian/fontconfig-config/etc/fonts/conf.avail.infinality/Makefile.in
rm debian/fontconfig-config/etc/fonts/conf.avail.infinality/README
rm debian/fontconfig-config/etc/fonts/conf.avail.infinality/README.in
mkdir -p debian/fontconfig-config/usr/share/fontconfig/
cp -arf debian/fontconfig-config/etc/fonts/conf.avail.infinality debian/fontconfig-config/usr/share
cp -arf doc/fontconfig-infinality-remix debian/fontconfig-config/usr/share/doc
cd debian/fontconfig-config/etc/fonts/conf.d && \
ln -sf ../conf.avail.infinality/remix/30-metric-aliases-remix.conf . && \
ln -sf ../conf.avail.infinality/remix/37-repl-global-remix.conf . && \
ln -sf ../conf.avail.infinality/remix/60-latin-remix.conf . && \
ln -sf ../conf.avail.infinality/remix/65-non-latin-remix.conf . && \
ln -sf ../conf.avail.infinality/remix/66-aliases-wine-remix.conf .
3.编译freetype
代码: 全选
# 安装编译依赖
sudo apt build-dep freetype -y
# 下载源文件
apt source freetype
# 为freetype打补丁
cd freetype-*/
dquilt import ../0002-infinality-2.10.1-2019.08.21.patch
dquilt push
dquilt refresh
dquilt import ../0004-Enable-long-PCF-family-names.patch
dquilt push
dquilt refresh
dquilt import ../0005-freetype-2.5.2-more-demos.patch
dquilt push
dquilt refresh
dquilt import ../0006-infinality-remix-tweaks.patch
dquilt push
dquilt refresh
代码: 全选
mkdir -p debian/libfreetype6/etc/profile.d/
mkdir -p debian/libfreetype6/etc/X11/xinit/xinitrc.d/
install -Dm644 freetype2.sh debian/libfreetype6/etc/profile.d/freetype2.sh
install -Dm755 xft-settings.sh debian/libfreetype6/etc/X11/xinit/xinitrc.d/xft-settings.sh
install -Dm755 infinality-settings.sh debian/libfreetype6/etc/X11/xinit/xinitrc.d/infinality-settings.sh
测试时,安装6个软件包即可:
代码: 全选
# 以下软件包为最新版本号。
sudo dpkg -i fontconfig_2.13.1-2ubuntu3_amd64.deb \
fontconfig-config_2.13.1-2ubuntu3_all.deb \
libcairo2_1.16.0-4ubuntu1_amd64.deb \
libcairo-gobject2_1.16.0-4ubuntu1_amd64.deb \
libfontconfig1_2.13.1-2ubuntu3_amd64.deb \
libfreetype6_2.10.2+dfsg-4_amd64.deb
sudo apt install -f