めんてなのおしごと

Sat, Oct 7, 2017 in debian


openQAを漸くビルドし始めたのだけど、早速モジュールが足りないというエラーが…

Can't locate Mojolicious/Plugin/AssetPack/Backcompat.pm in @INC (you may need
        to install the Mojolicious::Plugin::AssetPack::Backcompat module)

なんでupstreamの依存関係には含まれとらんのだろう?

んじゃさくっとdh-make-perl…したらcpanに無い???どうやら消されているようだ。仕方がないのでupstreamに質問backpanというところに消したのは置いてあるよ、と教えてもらった。しかし、本来これは必要ないはず、なんだけども…?

兎にも角にも、とりあえずぶち込んでみてtestを実行してみると…またエラーだ。以下が延々と。

Uncaught exception from user code:
        Plugin "bootstrap3" missing, maybe you need to install it?
        Mojolicious::Plugins::load_plugin(Mojolicious::Plugins=HASH(0x562086593f80), "bootstrap3") called at /usr/share/perl5/Mojolicious/Plugins.pm line 46
        Mojolicious::Plugins::register_plugin(Mojolicious::Plugins=HASH(0x562086593f80), "bootstrap3", OpenQA::WebAPI=HASH(0x562086540380), HASH(0x5620867fe6d8)) called at /usr/share/perl5/Mojolicious.pm line 186
        Mojolicious::plugin(OpenQA::WebAPI=HASH(0x562086540380), "bootstrap3", HASH(0x5620867fe6d8)) called at lib/OpenQA/WebAPI.pm line 185
        OpenQA::WebAPI::startup(OpenQA::WebAPI=HASH(0x562086540380)) called at /usr/share/perl5/Mojolicious.pm line 179
        Mojolicious::new("OpenQA::WebAPI") called at /usr/share/perl5/Mojo/Server.pm line 17
        Mojo::Server::build_app(Mojo::Server=HASH(0x56208650f6d0), "OpenQA::WebAPI") called at /usr/share/perl5/Test/Mojo.pm line 247
        Test::Mojo::new("Test::Mojo", "OpenQA::WebAPI") called at ./t/05-scheduler-dependencies.t line 212
Can't locate t/ui/PhantomTest.pm in @INC (you may need to install the t::ui::PhantomTest module) (@INC contains: /build/openqa-4.3/t/ui lib /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.26.0 /usr/local/share/perl/5.26.0 /usr/lib/x86_64-linux-gnu/perl5/5.26 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.26 /usr/share/perl/5.26 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base) at ./t/ui/01-list.t line 37.
BEGIN failed--compilation aborted at ./t/ui/01-list.t line 37 (#1)
    (F) You said to do (or require, or use) a file that couldn't be found.
    Perl looks for the file in all the locations mentioned in @INC, unless
    the file name included the full path to the file.  Perhaps you need
    to set the PERL5LIB or PERL5OPT environment variable to say where the
    extra library is, or maybe the script needs to add the library name
    to @INC.  Or maybe you just misspelled the name of the file.  See
    "require" in perlfunc and lib.
Uncaught exception from user code:
        Can't locate dbicdh/_common/deploy/_any/21-seeds.pl in @INC (@INC contains: /build/openqa-4.3/t lib /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.26.0 /usr/local/share/perl/5.26.0 /usr/lib/x86_64-linux-gnu/perl5/5.26 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.26 /usr/share/perl/5.26 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base) at (eval 1326) line 4.
         at /usr/share/perl5/Context/Preserve.pm line 42.

Mojolicious::Plugin::Bootstrap3 が必要そうだ。t::ui::PhantomTest と dbicdh/_common/deploy/_any/21-seeds.pl はわからない。。。

…とここまで来たところで「upstreamもtestを実行していないので、とりあえず無視」ということにした。

  • ビルド時には存在しないユーザーにchownしてる
    • ということはpostinstでchownするほうがいいか
  • assetsディレクトリが存在しないので悩んでいたら、4.3の時点では存在せず、masterにはある…
    • コメントアウトしておく。
  • 存在しない systemd service ファイルのインストールが…
    • とりあえず消す

ということで4.3のビルドは一旦終わった。


色々と試行錯誤してみたが、多分最新のupstreamだと上記のMojolicious::Plugin周りは解決してるんだろうと思う…ということで、masterをそのまま 4.3+20170928 としてビルド(9/28が最終コミットだったから)…うわ、これ Makefile の最初のところで ./script/generate-packed-assets というのを実行して、どうやらネット越しにファイルを取ってくるようになってるぞ…厄介な…。