DebianパッケージがホストされているGitLabでGitLab CIをぐるぐると回すための設定としてSalsa Pipelineが提供されている。ざっというとdebian/salsa-ci.ymlという形で以下のような設定を保存・GitLab側で参照を指定してからgit pushするとDebianパッケージ用の各種ビルドテストが走ってくれる。

---
include:
  - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml
  - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml

variables:
  SALSA_CI_DISABLE_BLHC: 1
  SALSA_CI_DISABLE_BUILD_PACKAGE_ANY: 1

reprotest:
  allow_failure: true

includeでは実行テストとその関係を規定、その上でvariablesでこのパッケージでは不要なテストをスキップしている。

テストの中でreproducible buildsのテストが走るが、若干不安定であったり、直すまでに目処が立たなかったりすることが多い…のだけど、明示的にdisableにするのも微妙という位置づけであることが多い。そのため最後に「失敗してもヨシ!」と指定している。

結構この「package archはallなのでany関連なテストは不要」「reprotestはallow_failureしたい」のコンビネーションが多いので、ファイルをコピーして追加することが多かったり。


FSFAPライセンス

Wed, May 6, 2020  in debian

FSFAPライセンス(FSF All Permissive License)というライセンスがあった。AppStreamのmetadataに使われたりするらしい。



debhelper-compat 13 では dh_missing が強制的に enable になる。これによってパッケージにインストールされていなかったファイルを洗い出せた。 なお「意図的にインストールしたくないファイル」(.laなど)は debian/not-installed というファイルに記述しておけば良い。


Lintian Brushを試してみる

Wed, May 6, 2020  in debian

Debian パッケージは一旦作ると、依存関係などの大幅な変更以外はDebian Policyの更新に従ってチマチマとした修正をすることがほとんどです。気がついたところは手直しをするわけですが、些細な問題については見逃していることが多く、この発見と修正を自動化できるとメンテナは楽ができます。Policyに追随するツールとしてはlintianがありますが、解釈不要な機械的な変更についてはlintian-brushというツールが利用できます。最近まで存在は知っていたものの利用はしていなかったので試してみました。

$ sudo apt install lintian-brush
(snip)
$ cd package-dir
$ lintian-brush 
Lintian tags fixed: {'file-contains-trailing-whitespace', 'out-of-date-standards-version', 'field-name-typo-dep5-copyright'}
$

どうやら3つほど問題を発見して修正をかけてくれたようです。変更点はgitにコミットされていました。

ommit 2aab55f3d809396ab8250014cc082210662d327a (HEAD -> master)
Author: Hideki Yamane <henrich@debian.org>
Date:   Wed May 6 18:43:12 2020 +0900

    Update standards version to 4.5.0, no changes needed.
    
    Fixes: lintian: out-of-date-standards-version
    See-also: https://lintian.debian.org/tags/out-of-date-standards-version.html

commit bfdc944abb5485e8c0ba1361a74f0dfd632722ca
Author: Hideki Yamane <henrich@debian.org>
Date:   Wed May 6 18:43:12 2020 +0900

    Fix field name typos in debian/copyright.
    
    Fixes: lintian: field-name-typo-dep5-copyright
    See-also: https://lintian.debian.org/tags/field-name-typo-dep5-copyright.html

commit f78f21cc22c1f9749f412fbd8a874711c6cbee6c
Author: Hideki Yamane <henrich@debian.org>
Date:   Wed May 6 18:43:01 2020 +0900

    Trim trailing whitespace.
    
    Fixes: lintian: file-contains-trailing-whitespace
    See-also: https://lintian.debian.org/tags/file-contains-trailing-whitespace.html

内容をちょっと見てみます。

commit bfdc944abb5485e8c0ba1361a74f0dfd632722ca
Author: Hideki Yamane <henrich@debian.org>
Date:   Wed May 6 18:43:12 2020 +0900

    Fix field name typos in debian/copyright.
    
    Fixes: lintian: field-name-typo-dep5-copyright
    See-also: https://lintian.debian.org/tags/field-name-typo-dep5-copyright.html

diff --git a/debian/changelog b/debian/changelog
index 833204f..148cbe4 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,7 @@
 fonts-kanjistrokeorders (4.002~dfsg-4) UNRELEASED; urgency=medium
 
   * Trim trailing whitespace.
+  * Fix field name typos in debian/copyright.
 
  -- Hideki Yamane <henrich@debian.org>  Wed, 06 May 2020 18:43:01 +0900
 
diff --git a/debian/copyright b/debian/copyright
index 0f08c52..26f22f2 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -1,7 +1,7 @@
 Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
 Upstream-Name: ttf-kanjistrokeorders
 Source: https://www.nihilist.org.uk/
-Upstream-contact: Tim Eyre <mail |at| nihilist (dot) org (dot) uk>
+Upstream-Contact: Tim Eyre <mail |at| nihilist (dot) org (dot) uk>
 
 Files: KanjiStrokeOrders_v*.ttf readme_en_*.txt
 Copyright: 2004-2018, Ulrich Apel, the AAAA project and the Wadoku project
@@ -34,4 +34,3 @@ Copyright: 2008-2019, Hideki Yamane (Debian-JP) <henrich@debian.or.jp>
 License: GPL-3
  On Debian systems the full text of the GNU General Public License Version 3
  can be found in the `/usr/share/common-licenses/GPL-3' file.

…?となりましたがよくよく見てみるとUpstream-contactフィールドがUpstream-ContactフィールドとCが大文字に修正されてます。こんなの気づかねぇよ…(´・ω・`)

とまぁ、手動作業では見つけられないような重箱の隅も直せていいツールですね。


めんてなのおしごと

Mon, Aug 12, 2019  in debian debian

超久々にパッケージをアップデートした。

ruby-serverengineのは以下の問題。

mv lib .gem2deb.lib
RUBYLIB=. GEM_PATH= ruby2.5 -S rake -f debian/ruby-tests.rake
/usr/bin/ruby2.5 /usr/bin/rspec --pattern ./spec/\*\*/\*_spec.rb --format documentation

[!] There was an error parsing `Gemfile`: 
[!] There was an error while loading `serverengine.gemspec`: cannot load such file -- /tmp/autopkgtest-lxc.1jlmt47i/downtmp/build.eOn/src/lib/serverengine/version
Does it try to require a relative path? That's been removed in Ruby 1.9. Bundler cannot continue.

 #  from /tmp/autopkgtest-lxc.1jlmt47i/downtmp/build.eOn/src/serverengine.gemspec:1
 #  -------------------------------------------
 >  require File.expand_path 'lib/serverengine/version', File.dirname(__FILE__)
 #  
 #  -------------------------------------------
. Bundler cannot continue.

 #  from /tmp/autopkgtest-lxc.1jlmt47i/downtmp/build.eOn/src/Gemfile:2
 #  -------------------------------------------
 #  source 'https://rubygems.org/'
 >  gemspec
 #  -------------------------------------------
Run `bundle install` to install missing gems
/usr/bin/ruby2.5 /usr/bin/rspec --pattern ./spec/\*\*/\*_spec.rb --format documentation failed

Java系パッケージはCIが有効にできないので問い合わせ、Perl系パッケージは何故かautopkgtestでlxcなtestbed関連でfailureになるのでお預け。

autopkgtest [15:34:19]: test autodep8-perl: [-----------------------
bash: line 0: cd: /tmp/autopkgtest-lxc.5hqs7t01/downtmp/build.dc3/src: No such file or directory
autopkgtest [15:34:19]: test autodep8-perl: -----------------------]
Unexpected error:
Traceback (most recent call last):
  File "/usr/share/autopkgtest/lib/VirtSubproc.py", line 738, in mainloop
    command()
  File "/usr/share/autopkgtest/lib/VirtSubproc.py", line 667, in command
    r = f(c, ce)
  File "/usr/share/autopkgtest/lib/VirtSubproc.py", line 605, in cmd_copyup
    copyupdown(c, ce, True)
  File "/usr/share/autopkgtest/lib/VirtSubproc.py", line 490, in copyupdown
    copyupdown_internal(ce[0], c[1:], upp)
  File "/usr/share/autopkgtest/lib/VirtSubproc.py", line 515, in copyupdown_internal
    copyup_shareddir(sd[0], sd[1], dirsp, downtmp_host)
  File "/usr/share/autopkgtest/lib/VirtSubproc.py", line 429, in copyup_shareddir
    shutil.copy(tb, host)
  File "/usr/lib/python3.7/shutil.py", line 248, in copy
    copyfile(src, dst, follow_symlinks=follow_symlinks)
  File "/usr/lib/python3.7/shutil.py", line 120, in copyfile
    with open(src, 'rb') as fsrc:
FileNotFoundError: [Errno 2] No such file or directory: '/tmp/autopkgtest-lxc.5hqs7t01/downtmp/autodep8-perl-stdout'
autopkgtest [15:34:20]: ERROR: testbed failure: unexpected eof from the testbed

めんてなのおしごと

Sat, Jun 15, 2019  in debian debian

  • 先日delayed/5 queueにいれたpython-arucoがtestingに落ちないので「?」と思ってたのだが、debian/changelogファイルにきちんとclose書き忘れていた…仕方がないのでcloseメールを送ったりした。いかんいかん。unblockもしないとダメかな。
  • 報告者が数年放置のRCバグがあったので2週間前ぐらいに「どうなってんの?」とつついたが、二人目の報告者しか反応せず。こちらもcloseしといた

久々にダウンロードしたパッケージが壊れている、というのを体験。

thunderbird (1:60.7.1-1) で (1:60.7.0-1 に) 上書き展開しています ...
dpkg-deb (サブプロセス): アーカイブメンバーを伸張しています: lzma エラー: 圧縮データが壊れています
dpkg-deb: エラー: <伸張> subprocess returned error exit status 2
dpkg: アーカイブ /tmp/apt-dpkg-install-72mWan/34-thunderbird_1%3a60.7.1-1_amd64.deb の処理中にエラーが発生しました (--unpack):
 './usr/lib/thunderbird/libxul.so' の展開済みデータを '/usr/lib/thunderbird/libxul.so.dpkg-new' にコピーできません: ファイルまたは
ストリームの予期しない終わりです

apt cleanして対処。


  • 自前のdebian/.gitlab-ci.ymlからsalsa-ciチームのpipelineを使う方向に転換した。gitlabのCI設定を変更してdebian/salsa-ci.ymlを参照するようにし、ファイルには以下の3行を書くだけで、ビルドからpiuparts, lintian, reproducible test, autopkgtest, blhcの5つのテストが走る。
include:
  - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml
  - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml


めんてなのおしごと

Wed, Jun 5, 2019  in debian debian

  • python-aruco、ちょいと debian/rules いじって不要そうなのを削ったらビルド自体は通った。なんであんなやり方してたのだろう? それよりは同じoverrideルールが2度に渡って書いてある方も気になったが、手は加えなかった。
  • hklのFTBFSunreproducibleタグつけて来た
  • php7で動かねぇ、というsimpleidパッケージのバグfixed-upstreamタグは着けるが、testingからは削除バグを登録しておいた。
    • 即座に削除が実施された。stableはまた別口なのでもう1個登録してね、と言われたので見様見真似で登録
  • 直ってるsqlalchemyがunblockまだなのでZigoを突つく

めんてなのおしごと

Fri, May 31, 2019  in debian debian

  • インストールガイドのアップデートやりかけを見つけたのでpushしておいた

めんてなのおしごと

Thu, May 30, 2019  in debian debian


めんてなのおしごと

Tue, May 28, 2019  in debian debian

  • fontconfigのRCバグ、直ってるよという報告者の話があったのに閉じてなかったので閉じた

  • jrubyのCVEバグだが、rubygem由来でパッチそのものがあったので適用して閉じた

  • snapdのCVEバグ、あとで確認しよう…

  • gucharmapのFTBFS、unicode-data 12.0由来なので弄ってビルド通るようにしてアップロードした

  • ghostscriptのunblockをメンテナに代わって実施してあげた

  • Linuxパッケージのバグ、upstreamで直ってたのでタグ付け

  • リリースノートをいじる

    • CDがメディアとして挙げられてるが、基本DVDメディアになったのでそのあたり
    • httpsで繋がるところはhttpsに直した
      • ビルドがうまくいってないところが出てきちゃう、とあったので一部revert
  • notoフォントパッケージのバグじゃない?という問い合わせに対応

  • firmware-atherosパッケージ変、というのがあったのでreplyしてみた