Skip to content

Instantly share code, notes, and snippets.

@Sakura286
Last active May 21, 2024 04:28
Show Gist options
  • Save Sakura286/4059ed1e2660f29ebf2259210998de7d to your computer and use it in GitHub Desktop.
Save Sakura286/4059ed1e2660f29ebf2259210998de7d to your computer and use it in GitHub Desktop.

构建 LibreOffice

官方源码构建

参考如何编译LibreOffice

# 安装依赖
sudo apt install -y  \
    build-essential zip ccache junit4 libkrb5-dev nasm graphviz python3 python3-dev \
    qtbase5-dev libkf5coreaddons-dev libkf5i18n-dev libkf5config-dev libkf5windowsystem-dev \
    libkf5kio-dev autoconf libcups2-dev libfontconfig1-dev gperf default-jdk doxygen \
    libxslt1-dev xsltproc libxml2-utils libxrandr-dev libx11-dev libxt-dev libassuan-dev \
    bison flex libgtk-3-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev firebird-dev \
    ant ant-optional libnss3-dev libavahi-client-dev automake git vim wget tar xz-utils unzip
    
# 下载源码并解压
# 也可以使用国内源,或者直接下载 tar 源码包 https://zh-cn.libreoffice.org/download/source-code/
git clone --depth=1 --branch libreoffice-24-2 https://github.com/LibreOffice/core.git ./libreoffice-24-2 && cd libreoffice-24-2

# external tarballs 最好提前下下来,这里使用了国内镜像
# 一共大约 3G ,请耐心等待
wget -r --level=1 -nv -nd -P "./external/tarballs" "https://go.suokunlong.cn:88/dl/libreoffice/external_tarballs/"

# 设置编译选项,自行修改编译并行任务数量
# 可以用 ./autogen.sh --help 命令查看可用选项
cat << EOF > autogen.input
--with-system-firebird
--with-parallelism=12
EOF

ccache -M 32G

# 配置与构建
./autogen.sh
make

# 构建完成后的运行
./instdir/program/soffice

Debian 构建软件包

基于 Debian Sid

# 源码
apt source libreoffice

# 补丁
wget https://gist.githubusercontent.com/Sakura286/e045dc583aa61658d55591947ff5ecb5/raw/fa133fafa930c9c7d34a8ff6151575c84794db39/disable-nanpayload-test.diff
cd libreoffice-24.2.3
patch -p1 <../disable-nanpayload-test.diff

# 后续可以用 dpkg-buildpackage 或者 sbuild 等工具来构建 deb 包
@Sakura286
Copy link
Author

本文档用于在 Debian unstable riscv64 上构建 LibreOffice。

  • 2024-05-21 初始提交

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment