目前因为处理一个s390的ftbfs issue,所以需要一台s390的机器,当然,这是在不考虑qemu的前提下。
参考这里 会给1-2 mothes的时间登陆相关的机器。
hardware list这里有很多机器,目前还没有riscv的,需要我们在后面完善。
可以参考这篇文章: https://etbe.coker.com.au/2020/07/05/debian-s390x-emulation/
我最终借用dqib创建了一个s390x的虚拟机。
如果因为有symbols file的影响导致ftbfs,可以尝试着更新xx.symbols文件,具体的方法如下:
最根本的教程是here。
首先安装 pkg-kde-tools
依赖包。
然后要把源码下载下来,可以使用 apt source xx
的方法。
pkgkde-getbuildlogs
pkgkde-symbolshelper batchpatch -v 1.6.1 *_unstable_logs/*.build
有可能需要多次的更新symbols文件。
我们暂时定于使用 http://download.documentfoundation.org/libreoffice/src/7.3.4/ 的tarball包。
apt-get install git 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 bison flex libgtk-3-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev ant ant-optional libnss3-dev libavahi-client-dev
xz-utils pkg-config autoconf make gcc libfontconfig1-dev libarchive-zip-perl libclucene-dev libxmlsec1-dev librevenge-dev libodfgen-dev libepubgen-dev libwpd-dev libwpg-dev libwps-dev libvisio-dev libcdr-dev libmspub-dev libmwaw-dev libetonyek-dev libfreehand-dev libe-book-dev libabw-dev libqxp-dev libzmf-dev libstaroffice-dev libreoffice-sdbc-hsqldb libpq-dev libcurl4-gnutls-dev libboost-dev libboost-date-time-dev libboost-filesystem-dev libboost-locale-dev libboost-iostreams-dev libmdds-dev libglm-dev
xz -d libreoffice-7.3.4.2.tar.xz
wget -r --level=1 -nd -P <lo_root>/external/tarballs https://go.suokunlong.cn:88/dl/libreoffice/external_tarballs/
docker pull riscv64/debian:unstable
docker build ~/mydockerbuild -f example_dockerfile -t example_image
docker run example_image # 交互模式
// 或者这样的方式去执行:
docker run -it --rm example_image bash
[email protected]:~/git/LibreOffice-riscv-port/patch$ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE example_image latest 27be1957beac 5 hours ago 2.02GB
这里记载下loongarch64 on Debian的一些资源,虽然现在还没有准备好。
https://blog.xen0n.name/en/posts/tinkering/loongarch-faq/
记录下维护rush的操作,在后面进行更广泛的总结。
[email protected]:~/build_test/rfs/debian-rush$ gbp clone [email protected]:vimerbf-guest/rush.git
gbp:info: Cloning from '[email protected]:vimerbf-guest/rush.git'
其实,如果有新的upstream更新,应该是先gbp pq import
,其次才是import upstream release.
https://www.eyrie.org/~eagle/notes/debian/git.html#workflow:
When there's a new upstream release, run:
git fetch upstream
gbp pq import # only if you have patches against upstream
git checkout debian/master
gbp import-orig --uscan --upstream-vcs-tag=<upstream-tag>
# The rest are only if you have patches against upstream
gbp pq rebase
gbp pq export
gbp pq drop
git add debian/patches
git commit
import新的版本:
[email protected]:~/build_test/rfs/debian-rush/rush$ gbp import-orig --uscan --debian-branch=debian/main --upstream-branch=upstream/latest --verbose
gbp:debug: ['git', 'rev-parse', '--show-cdup']
gbp:debug: ['git', 'rev-parse', '--is-bare-repository']
gbp:debug: ['git', 'rev-parse', '--git-dir']
gbp:debug: ['git', 'for-each-ref', '--format=%(refname:short)', 'refs/heads/']
gbp:debug: ['git', 'show-ref', '--verify', 'refs/heads/upstream/latest']
gbp:error:
Repository does not have branch 'upstream/latest' for upstream sources. If there is none see
file:///usr/share/doc/git-buildpackage/manual-html/gbp.import.html#GBP.IMPORT.CONVERT
on howto create it otherwise use --upstream-branch to specify it.
这里失败了,因为没有upstream/latest
branch. 对策是新建一个upstream/latest
branch即可。
[email protected]:~/build_test/rfs/debian-rush/rush$ git checkout -b upstream/latest
切换到一个新分支 'upstream/latest'
[email protected]:~/build_test/rfs/debian-rush/rush$ git checkout debian/main
切换到分支 'debian/main'
您的分支与上游分支 'origin/debian/main' 一致。
...
[email protected]:~/build_test/rfs/debian-rush/rush$ gbp import-orig --uscan --debian-branch=debian/main --upstream-branch=upstream/latest --verbose
...
gbp:debug: rm ['-rf', '../tmpdk5cwagw'] []
gbp:info: Successfully imported version 2.2 of ../rush_2.2.orig.tar.gz
假设我们有一个新的 upstream release,使用 gbp buildpackage
时,如果没有orig的tarball,则不会build的,
build的version是根据top of changelog来确定版本及对应的tarball。
gbp buildpackage --git-upstream-tree=upstream/2.2 --git-upstream-branch=upstream/2.2 --git-builder=sbuild -d unstable --git-debian-branch=debian/main --git-export-dir=../build-area/ --git-ignore-new --verbose
这个只有在我们没有新的orig tarball时确认使用。
gpg --armor --detach-sign myprogram-0.1.orig.tar.gz
salsa 后面所有的改动转移到这里来。