popularity-contestで特定のパッケージを除外するには

t.co

このバグにあるように、Debianのパッケージ調査に参加した場合、 特定のパッケージのみ除外するようば設定はない。

したがって、特定のパッケージを除外したい場合には参加自体をとりやめるしか選択肢がない。 例えば、個人的なパッケージを作成している場合や、開発中のパッケージを公開したくないような状況では それらが含まれてしまうとノイズにしかならない。 せっかくなのだから、パッケージ調査に参加しつつも、一部だけは除くことができるような選択肢がユーザーに あったほうがよい。

そこで、popularity-contestコマンドで特定のパッケージを除外できるような仕組みをいれる簡単なパッチを書いてみた。

% diff -u popularity-contest-1.70.orig/popularity-contest popularity-contest-1.70/popularity-contest
--- popularity-contest-1.70.orig/popularity-contest     2020-03-31 02:47:56.000000000 +0900
+++ popularity-contest-1.70/popularity-contest  2020-09-20 13:08:25.858919252 +0900
@@ -28,6 +28,7 @@
 my $dpkg_db="/var/lib/dpkg/info";
 my $dpkg_origin="/etc/dpkg/origins/default";
 my $popcon_conf="/etc/popularity-contest.conf";
+my $donotsend_conf="/etc/popularity-contest.donotsend.conf";
 
 # $popcon_conf is in shell-script format
 my $HOSTID = qx(unset MY_HOSTID; . $popcon_conf; echo \$MY_HOSTID );
@@ -204,6 +205,19 @@
 
 close PACKAGES;
 
+# We do not send package name which is listed on /etc/popularity-contest.donotsend.conf.
+if ( -r $donotsend_conf && -s $donotsend_conf ) {
+    open DONOTSEND, $donotsend_conf;
+    while (<DONOTSEND>) {
+       chomp $_;
+       my $name = $_;
+       if (exists $popcon{$name}) {
+           delete $popcon{$name};
+       }
+    }
+    close (DONOTSEND);
+}
+
 # We're not done yet.  Sort the output in reverse by atime, and
 # add a header/footer.
 

あとは/etc/popularity-contest.donotsend.confにパッケージ名をずらずらとリストアップしておけば、そのパッケージに関する 利用状況は送信されることはなくなるはずである。 なお、上記のパッチはpopularity-contest-1.70向けである。

OCメモリを増設 B450 Pro4

B450 Pro4のMBにOCメモリを増設した。

B450 Pro4はあらかじめBIOSファームウェアを4.20にあげてある。 これはAMD AGESA Combo-AM4 1.0.0.6に更新されたもの。(DDR4 4000までサポートだとか。)

www.gskill.com

OCメモリは DDR4-3600 CL16-19-19 32GB(16GBx2枚組) を選択した。 (ただしメモリメーカーのQVLリストには対応MBとしてはリストアップされていなかった) 起動時にXMPを読み込ませて、DDR4 3600に変更するだけ。

これで、メモリにもだいぶ余裕ができた。

Be aware to execute piuparts before uploading a package

Recently I've got a bug about

#965164 - policykit-1: fails to install - Debian Bug report logs

It seems that it freezes after logged in. When I've noticed this bug by apt upgrade, so I could recover by manually.

I recalled the following bug about a year ago. It was also critical bug that I had got.

#932855 - e2fsprogs 1.45.3-1 breaks initramfs-tools-core <=0.133 - Debian Bug report logs

I have to admit that Debian unstable is truly "unstable" even though it seems that it works like a "stable" in mostly.

We need to be aware to execute piuparts before uploading a package. (Maybe should we forced?)

libhinawa 1.4.0のパッケージ更新

salsa.debian.org

ということなので、更新作業を。

% gbp import-orig --uscan 
gbp:info: Launching uscan...
gpgv: 2019年10月12日 20時56分59秒 JSTに施された署名
gpgv:                RSA鍵25DA5B9699F132DB74BD2270B5A586C7D66FD341を使用
gpgv: "Takashi Sakamoto <o-takashi@sakamocchi.jp>"からの正しい署名
gbp:info: Using uscan downloaded tarball ../libhinawa_1.4.0.orig.tar.xz
What is the upstream version? [1.4.0] 
gbp:info: ../libhinawa_1.4.0.orig.tar.xz already exists, moving to ../libhinawa_1.4.0.orig.tar.xz.1571235182
gbp:info: Importing '../libhinawa_1.4.0.orig.gbp.tar.xz' to branch 'upstream' (filtering out ['*egg.info', '.bzr', '.hg', '.hgtags', '.svn', 'CVS', '*/debian/*', 'debian/*'])...
gbp:info: Source package is libhinawa
gbp:info: Upstream version is 1.4.0
gbp:info: Replacing upstream source on 'debian/unstable'
gbp:info: Successfully imported version 1.4.0 of ../libhinawa_1.4.0.orig.gbp.tar.xz

もらったパッチを適用。

% git am ../0001-debian-update-for-v1.4.0-release.patch
Applying: debian: update for v1.4.0 release

debian/controlが古いのを直して、dput.

Lintian Tag: rules-requires-root-missing

なんてものも知る。

filezillaのRCバグ(CVE-2019-5429)を修正してみる

bugs.debian.org

sidおよびbusterに影響するRCバグをまだ誰も修正していなさそうなのでやってみた。 (filezillaのユーザーというわけではないけれど)

ざっくりとした内容としては、細工したfzsftpバイナリが置かれていたらfilezillaがそいつをロードしてしまうというもの。

security-tracker.debian.org

バグ報告で言及されているトラッカーをみると、upstreamですでに修正されているのでパッチはある。なのであとはパッチを適用してあげれば解決できそう。

具体的には apt source filezilla で現在のソースパッケージを取得して、該当するパッチをあててみる。

dquilt new CVE-2019-5429.patch
パッチ CVE-2019-5429.patch を最上位にしました

修正対象がわかっているのでdquiltで対象にいれてから該当のパッチをあててみればよい。

% dquilt add src/interface/FileZilla.cpp
ファイル src/interface/FileZilla.cpp をパッチ CVE-2019-5429.patch に追加しました
-[8078]% dquilt add src/interface/filezillaapp.h
ファイル src/interface/filezillaapp.h をパッチ CVE-2019-5429.patch に追加しました
-[8079]% patch -p0 < ../CVE-2019-5429.trunk.patch
patching file src/interface/FileZilla.cpp
Hunk #1 succeeded at 49 (offset 1 line).
Hunk #2 succeeded at 400 (offset 27 lines).
Hunk #3 succeeded at 415 (offset 27 lines).
Hunk #4 succeeded at 422 (offset 27 lines).
Hunk #5 succeeded at 515 (offset 27 lines).
Hunk #6 succeeded at 524 (offset 27 lines).
Hunk #7 succeeded at 625 (offset 27 lines).
Hunk #8 succeeded at 632 (offset 27 lines).
Hunk #9 succeeded at 659 (offset 27 lines).
Hunk #10 succeeded at 669 (offset 27 lines).
Hunk #11 succeeded at 717 (offset 27 lines).
Hunk #12 succeeded at 729 (offset 27 lines).
patching file src/interface/filezillaapp.h

バージョンがやや古いのでバックポートする形になった。 あとは、パッチを更新する。

dquilt refresh
パッチ CVE-2019-5429.patch をリフレッシュしました

パッチのヘッダは dquilt header -e でDEP3にならう形で修正しておく。

dep-team.pages.debian.net

Subject: Restrict directories in which tools and data files are searched .
Origin: https://svn.filezilla-project.org/filezilla?revision=9097&view=revision
Bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=928282 
Author: Tim Kosse <tim.kosse@filezilla-project.org>
Forwarded: not-needed

Apply upstream patch to fix CVE-2019-5429.

ref. https://security-tracker.debian.org/tracker/CVE-2019-5429

The patch is coming from:
  https://svn.filezilla-project.org/filezilla?view=revision&revision=9097
  https://svn.filezilla-project.org/filezilla?view=revision&revision=9098

This patch is needless when Filezilla itself is upgraded to 3.41.0 or newer version.

実際のところは、トラッカーで言及されているパッチだけだとコンパイルできないというオチがついていた。

気になっているのは、どうもCVE-2019-5429の修正でよけいなバグを入れ込んでいるようにみえるところ。最低限のパッチとしていれるのかどうか迷ったのでひとまず見送った。

https://svn.filezilla-project.org/filezilla?view=revision&revision=9099

あとは debdiff filezilla_3.39.0-2.dsc filezilla_3.39.0-2.1.dscみたいにしてパッチを作成する。

#928282 - filezilla: CVE-2019-5429 - Debian Bug report logs としてパッチを送ってひとくぎり。

あとは偉い人がどうにかしてくれるだろう。

libhinawa 1.3.1のパッケージ更新

v1.3.0がリリースされていたようだ。

v1.3.0 packaging (#6) · Issues · Debian / libhinawa · GitLab

でさっき確認したら、v1.3.1がリリースされている。 full freezeなのでtestingにははいらないのだけれども、unstableは更新してしまってもよいかと作業した。

libhinawa1.symbolsのパッチを適用してupload.

 dput libhinawa_1.3.1-1_source.changes
Trying to upload package to ftp-master (ftp.upload.debian.org)
Checking signature on .changes
gpg: /home/kenhys/work/debian/libhinawa/libhinawa_1.3.1-1_source.changes: Valid signature from F7FB75C566ED20E3
Checking signature on .dsc
gpg: /home/kenhys/work/debian/libhinawa/libhinawa_1.3.1-1.dsc: Valid signature from F7FB75C566ED20E3
Uploading to ftp-master (via ftp to ftp.upload.debian.org):
  Uploading libhinawa_1.3.1-1.dsc: done.
  Uploading libhinawa_1.3.1.orig.tar.xz: done.
  Uploading libhinawa_1.3.1.orig.tar.xz.asc: done.
  Uploading libhinawa_1.3.1-1.debian.tar.xz: done.
  Uploading libhinawa_1.3.1-1_source.buildinfo: done.
  Uploading libhinawa_1.3.1-1_source.changes: done.
Successfully uploaded packages.

Groonga 9.0.1 upload

Groonga 9.0.1がリリースされたのでパッケージの更新を実施。

gbp import-orig --uscanでdebian/unstableブランチにインポートする。

% gbp import-orig --uscan 
gbp:info: Launching uscan...
gpgv: 20190328174127秒 JSTに施された署名
gpgv:                DSA鍵C97E4649A2051D0CEA1A73F972A7496B45499429を使用
gpgv: "groonga Key (groonga Official Signing Key) <packages@groonga.org>"からの正しい署名
uupdate: -> Copy to      groonga_9.0.1-1.debian.tar.xz
gbp:info: Using uscan downloaded tarball ../groonga_9.0.1.orig.tar.gz
What is the upstream version? [9.0.1] 
gbp:info: ../groonga_9.0.1.orig.tar.gz already exists, moving to ../groonga_9.0.1.orig.tar.gz.1553868246
gbp:info: Importing '../groonga_9.0.1.orig.gbp.tar.gz' to branch 'upstream' (filtering out ['*egg.info', '.bzr', '.hg', '.hgtags', '.svn', 'CVS', '*/debian/*', 'debian/*'])...
gbp:info: Source package is groonga
gbp:info: Upstream version is 9.0.1
gbp:info: Replacing upstream source on 'debian/unstable'
gbp:info: Successfully imported version 9.0.1 of ../groonga_9.0.1.orig.gbp.tar.gz
gbp import-orig --uscan  44.59s user 2.88s system 93% cpu 50.783 total

debian/unstableブランチをpushする。

% git push
Enumerating objects: 1827, done.
Counting objects: 100% (1353/1353), done.
Delta compression using up to 8 threads
Compressing objects: 100% (864/864), done.
Writing objects: 100% (877/877), 1.25 MiB | 3.88 MiB/s, done.
Total 877 (delta 744), reused 0 (delta 0)
remote: Resolving deltas: 100% (744/744), completed with 409 local objects.
To salsa.debian.org:debian/groonga.git
   468fbce..8b30499  debian/unstable -> debian/unstable

import-origでupstreamブランチも更新されているのでcheckoutしてpushしておく。

% git checkout upstream
Switched to branch 'upstream'
Your branch is ahead of 'origin/upstream' by 1 commit.
  (use "git push" to publish your local commits)
%  git push
Total 0 (delta 0), reused 0 (delta 0)
remote: 
remote: To create a merge request for upstream, visit:
remote:   https://salsa.debian.org/debian/groonga/merge_requests/new?merge_request%5Bsource_branch%5D=upstream
remote: 
To salsa.debian.org:debian/groonga.git
   d1d3e5c..4ff374c  upstream -> upstream

pristine-tarブランチも同様に更新する。

% git checkout pristine-tar
Switched to branch 'pristine-tar'
Your branch is ahead of 'origin/pristine-tar' by 1 commit.
  (use "git push" to publish your local commits)
% git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (4/4), 453.86 KiB | 15.65 MiB/s, done.
Total 4 (delta 1), reused 0 (delta 0)
remote: 
remote: To create a merge request for pristine-tar, visit:
remote:   https://salsa.debian.org/debian/groonga/merge_requests/new?merge_request%5Bsource_branch%5D=pristine-tar
remote: 
To salsa.debian.org:debian/groonga.git
   846fc24..56c36a2  pristine-tar -> pristine-tar

あとは、debian/unstableブランチに戻ってdebian/*を修正する。

% git checkout debian/unstable
Switched to branch 'debian/unstable'
Your branch is up to date with 'origin/debian/unstable'.
% gbp dch
gbp:info: Changelog last touched at '468fbceadd3ef9afbaceb9df842ba1ad8fada838'

gbp dchはエントリを追加するがUNRELEASEDになる。

diff --git a/debian/changelog b/debian/changelog
index e62f6bf..3909010 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+groonga (9.0.1-1) UNRELEASED; urgency=medium
+
+  * New upstream version 9.0.1
+
+ -- Kentaro Hayashi <hayashi@clear-code.com>  Fri, 29 Mar 2019 23:10:53 +0900                                                             
+
 groonga (9.0.0-1) unstable; urgency=medium

   * New upstream version 9.0.0

そういうときはdch -rでエントリを更新するとよい。

あとはパッケージのビルドに問題がないか確認する。

% gbp buildpackage --git-ignore-new

パッケージができたらpiupartsを流しておく。

%  sudo piuparts -d sid -t build-area -m "http://ftp.jp.debian.org/debian main" -b /var/cache/pbuilder/unstable-amd64-base.tgz -l piuparts.log build-area/*.deb
()
1m50.0s DEBUG: Removed directory tree at build-area/tmpG6UAGA
1m50.0s INFO: PASS: All tests.
1m50.0s INFO: piuparts run ends.
sudo piuparts -d sid -t build-area -m "http://ftp.jp.debian.org/debian main"   62.53s user 19.37s system 74% cpu 1:50.26 total

問題なければソースパッケージを用意する。

debuild -S -sa
 dpkg-buildpackage -us -uc -ui -S -sa
dpkg-buildpackage: info: source package groonga
dpkg-buildpackage: info: source version 9.0.1-1
dpkg-buildpackage: info: source distribution unstable
dpkg-buildpackage: info: source changed by Kentaro Hayashi <hayashi@clear-code.com>
 dpkg-source --before-build .
dpkg-source: info: using patch list from debian/patches/series
dpkg-source: info: applying fix-nginx-FTBFS-on-kfreebsd.patch
dpkg-source: info: applying remove-groonga-keyring-postrm.patch
 fakeroot debian/rules clean
dh clean
   dh_clean
 dpkg-source -b .
dpkg-source: info: using source format '3.0 (quilt)'
dpkg-source: info: building groonga using existing ./groonga_9.0.1.orig.tar.gz
dpkg-source: info: building groonga using existing ./groonga_9.0.1.orig.tar.gz.asc
dpkg-source: info: using patch list from debian/patches/series
dpkg-source: warning: ignoring deletion of directory packages/apt/debian
dpkg-source: info: building groonga in groonga_9.0.1-1.debian.tar.xz
dpkg-source: info: building groonga in groonga_9.0.1-1.dsc
 dpkg-genbuildinfo --build=source
 dpkg-genchanges -sa --build=source >../groonga_9.0.1-1_source.changes
dpkg-genchanges: info: including full source code in upload
 dpkg-source --after-build .
dpkg-source: info: unapplying remove-groonga-keyring-postrm.patch
dpkg-source: info: unapplying fix-nginx-FTBFS-on-kfreebsd.patch
dpkg-buildpackage: info: full upload (original source is included)
Now running lintian groonga_9.0.1-1_source.changes ...
Finished running lintian.
Now signing changes and any dsc files...
 signfile dsc groonga_9.0.1-1.dsc D92025640886D27D14A9EE02D22C1A883455D448

 fixup_buildinfo groonga_9.0.1-1.dsc groonga_9.0.1-1_source.buildinfo
 signfile buildinfo groonga_9.0.1-1_source.buildinfo D92025640886D27D14A9EE02D22C1A883455D448

 fixup_changes dsc groonga_9.0.1-1.dsc groonga_9.0.1-1_source.changes
 fixup_changes buildinfo groonga_9.0.1-1_source.buildinfo groonga_9.0.1-1_source.changes
 signfile changes groonga_9.0.1-1_source.changes D92025640886D27D14A9EE02D22C1A883455D448

Successfully signed dsc, buildinfo, changes files
debuild -S -sa  36.27s user 2.09s system 80% cpu 47.935 total

あとは dput でアップロードする。

% dput groonga_9.0.1-1_source.changes
Trying to upload package to ftp-master (ftp.upload.debian.org)
Checking signature on .changes
gpg: /home/kenhys/work/debian/groonga/groonga_9.0.1-1_source.changes: Valid signature from F7FB75C566ED20E3
Checking signature on .dsc
gpg: /home/kenhys/work/debian/groonga/groonga_9.0.1-1.dsc: Valid signature from F7FB75C566ED20E3
Uploading to ftp-master (via ftp to ftp.upload.debian.org):
  Uploading groonga_9.0.1-1.dsc: done.
  Uploading groonga_9.0.1.orig.tar.gz: done.
  Uploading groonga_9.0.1.orig.tar.gz.asc: done.
  Uploading groonga_9.0.1-1.debian.tar.xz: done.
  Uploading groonga_9.0.1-1_source.buildinfo: done.
  Uploading groonga_9.0.1-1_source.changes: done.
Successfully uploaded packages.

タグを打っておくことを忘れずに。

gbp buildpackage --git-tag-only --git-ignore-new                   
dh clean
   dh_clean
gbp:info: Tagging Debian package 9.0.1-1 as debian/9.0.1-1 in git
% git push --tags
Enumerating objects: 9, done.
Counting objects: 100% (9/9), done.
Delta compression using up to 8 threads
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 710 bytes | 710.00 KiB/s, done.
Total 6 (delta 3), reused 0 (delta 0)
To salsa.debian.org:debian/groonga.git
 * [new tag]         debian/9.0.1-1 -> debian/9.0.1-1
 * [new tag]         upstream/9.0.1 -> upstream/9.0.1