2021年03月02日 : yaskkserv2のdeb
yaskkserv2のdeb化を頑張る
再着手しました。 現在、以前と比べて、yaskkserv2が依存しているcrateのdeb化が進んでいる(と言っていいか実際はちょっと微妙なんですが)みたいで、 あとはtwowayというcrateだけが足りない状態みたいです。 そして、そのtwowayも、Rustのcrateをdeb化する debcargo-conf で pending branchが作られていたので、ひとまずそちらもそのうちunstableに入るのかしら……?
また、気付けばupstreamの方も0.1.1がリリースされており、作業はしやすくなってますね……!! ただし、crateから作られたlibrust-パッケージの依存の関係で、 ひとまず以下のようなパッチをぶっこむ必要があります……。
relax dependency versions of some crates
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -7,21 +7,21 @@
edition = "2018"
[dependencies]
-bincode = "1.1.4"
+bincode = ">= 1.1.4, <= 1.3"
clap = "2.33.0"
json = "0.12.0"
-mio = "0.6.19"
-once_cell = "1.4.1"
-regex = "1.3.1"
-reqwest = "0.9.20"
-rustc-hash = "1.0.1"
-serde = "1.0.101"
-serde_derive = "1.0.101"
+mio = "0.6"
+once_cell = "1"
+regex = ">= 1.3.1, < 1.4"
+reqwest = ">= 0.9.19, <= 0.9.20"
+rustc-hash = "1"
+serde = "1.0"
+serde_derive = "1.0"
sha1 = "0.6.0"
tempfile = "3.1.0"
thiserror = "1.0.20"
-twoway = "0.2.0"
-url = "1.7.2"
+twoway = ">= 0.2.0, <= 0.2.1"
+url = ">= 1.7.2, < 2.2"
# for test
rand = "*"
ちょっと、パッチつくった時期がバラバラなので、 書いた時期によってバージョンの指定の緩め方が違ってますね……。 またどっかで統一したいところですが、結局何がいいたいかというと、 せっかくcargoで動作確認できているバージョンが指定されてるんですが、 それだとlibrust-がアーカイブでバージョン毎に無限に増大するからという理由で、 librust-のdebのあるバージョンを使うようにパッチを当てて変更するという作業が待ち構えています。
In some cases, libraries/programs are forcing an old version of a library as dependencies. In order to limit the number of duplicated libraries in the archive, please try to evaluate if a newer version of the dependencies could be used. (Updating the dependencies@debcargo-confより)
その関係で、librust-がバージョン上がって、 二度とビルドできなくなるパッケージとか出てきてる気がするんですが、どうするんでしょうねぇ……。 あと、リビジョンくらいならともかく、マイナーバージョンまで上げたりしてるんですが、 これ、ちゃんとdebの作成者が動作を担保するんでしょうか……。
とにもかくにも、そんな状況ですが、運良く現在はビルドが通ってます(手元では10ヶ月ぶりくらい)。
が、なぜかデーモン動かそうとするとstartで失敗するので現在調査中……。
なお、systemdはdebhelper-compatの12以降は dh_installsystemd
を使うようです。
debian/rulesの書き方がわからないのですが……以下をかけばよい?
override_dh_installsystemd:
dh_installsystemd
ちょっとそのあたりはよくわからんのですが、ひとまずdebにyaskkserv2.serviceは含まれるようになったので、 これがちゃんとstartするところまで持っていこうと確認中……。 ご期待は乞わない。