infinality-remix patch for ubuntu20.10

系统字体配置、中文显示和输入法问题
回复
zrqlx126
帖子: 372
注册时间: 2007-06-22 18:52

infinality-remix patch for ubuntu20.10

#1

帖子 zrqlx126 » 2020-11-25 22:29

本补丁包主要对三个源文件打补丁:cairo,fontconfig,freetype。同时需要对rules文件进行修改,所有原材料见附件。下面依次简要说明注意事项
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
2.编译fontconfig

代码: 全选

# 安装编译依赖
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
这里需要对源文件进行修改,解压附件中的fontconfig-infinality-remix-srcs-20191030.tar.bz2,将解压后的conf.d.infinality目录和doc目录以及fc-presets文件放置在源文件根目录中,然后修改rules文件,在最后添加

代码: 全选

	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
这里需要对源文件进行修改,解压附件中的freetype2.sh,infinality-settings.sh以及xft-settings.sh文件放置在源文件根目录中,然后修改rules文件,在override_dh_install段中添加

代码: 全选

	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
附件中infinality-remix.tar.xz文件是已经制作好的补丁包和必要文件。release.tar.xz文件是作者,根据自身需要打包好的deb包,需要注意的是该包使用Microsoft font collection模式,打包水平有限,仅供测试。
附件
release.tar.xz
(1.34 MiB) 已下载 78 次
infinality-remix.tar.xz
(60.63 KiB) 已下载 92 次
上次由 zrqlx126 在 2020-11-26 11:06,总共编辑 1 次。
头像
qy117121
论坛版主
帖子: 50548
注册时间: 2007-12-14 13:40
系统: Winbuntu
来自: 志虚国乌由市
联系:

Re: infinality-remix patch for ubuntu21.10

#2

帖子 qy117121 » 2020-11-26 10:28

21.10
渠月 · QY   
本人只会灌水,不负责回答问题
无聊可以点一下→ http://u.nu/ubuntu

Ubuntu 20.04 快速设置指南,请配合浏浏览器自动翻译使用

邮箱 chuan@ubuntu.org.cn
zrqlx126
帖子: 372
注册时间: 2007-06-22 18:52

Re: infinality-remix patch for ubuntu21.10

#3

帖子 zrqlx126 » 2020-11-26 11:06

qy117121 写了: 2020-11-26 10:2821.10
:Grimace :Grimace
回复