karubabuの日記

タイトルに解決と書いているものがあるけれど、別に付いていない物は解決していないというわけではないです。つまるところ記事を書いた後に解決してちょっと嬉しかったので付けました。

linux版のciv5が7より高いgccでsys-libs/glibcとx11-libs/libxcbをビルドすると起動しないのをなんとかする

なんとかすると言っている様に、修正したわけではなくなんか起動出来る様になるというやつです
というよりこれについてググっても全然ひっかからないし、ただのおま環なのでは?ボブは訝しんだ

なにがあった

linux版 Civ5はsys-libs/glibcとx11-libs/libxcbをsys-devel/gcc-8.2.0-r2でビルドすると動作しなかった - karubabuの日記
これをみて
gcc9でも同じっぽい場所で落ちるのを確認しています

どうした

とりあえずgdbで起動してバックトレースを見る

f:id:karubabu:20190610204259p:plain
gdb civ5

なんかなんやかんや書かれているけれど、どうやら開幕に流れる動画を再生するところで落ちているみたい
つまり動画を再生しなければなんとかなるのでは?
Civ5App::PlayOpeningMovie()あたりをNOPで書き潰せば動画を再生せずに次の動作に向ってくれそう
objdump -CDMintel Civ5XP | grep PlayOpeningでPlayOpeningMovie()の場所を探すとそれっぽいものが出てくる

086e0f3a <Civ5App::PlayOpeningMovie()@@Base>:
 86e0f41:   e8 00 00 00 00          call   86e0f46 <Civ5App::PlayOpeningMovie()@@Base+0xc>
 86e0f58:   0f 85 2a 01 00 00       jne    86e1088 <Civ5App::PlayOpeningMovie()@@Base+0x14e>
 86e0f65:   0f 85 1d 01 00 00       jne    86e1088 <Civ5App::PlayOpeningMovie()@@Base+0x14e>
 86e0f72:   0f 85 10 01 00 00       jne    86e1088 <Civ5App::PlayOpeningMovie()@@Base+0x14e>
 86e0f87:   0f 85 fb 00 00 00       jne    86e1088 <Civ5App::PlayOpeningMovie()@@Base+0x14e>
 86e0fda:   0f 85 90 00 00 00       jne    86e1070 <Civ5App::PlayOpeningMovie()@@Base+0x136>
 86e106e:   74 8b                   je     86e0ffb <Civ5App::PlayOpeningMovie()@@Base+0xc1>
 86e1c41:   e8 f4 f2 ff ff          call   86e0f3a <Civ5App::PlayOpeningMovie()@@Base>

後はhexcurseあたりでe8 f4 f2 ff ffの部分を90 90 90 90 90に変更する
動く₍₍⁽⁽(ી( ‘ω’ )ʃ)₎₎⁾⁾

おわり

適当にプレイしてみたけれどなんやかんや落ちていないので問題なさそう
ゲームクリア時に動画が再生された気がするので、そのあたりでまた落ちそうな気がしないでもないけれどまあクリアした後なら良いでしょう
gdbの画面はなんだかよしなに色が付いていたので画像にしたけれど、これテキストでもよかったのかもしれない よくわかんないね
grepしてしまうと元のテキストが持っていた色が消えてしまうのがかなしい あれってなんとかならないのかしら
誰か教えてくれー!

f:id:karubabu:20190610205347p:plain
久し振りにやったciv5 周りに幸福資源がなさすぎるので多分途中で終わる

squidの/var/{run, cache, log}/squidのuser, groupが勝手にsquid:squidからproxy:proxyに変更される

タイトルの通りです
よくわからないけれど直ったしぐぐっても同じ様な症状の人が見付けられなかったので書いておくね

なにがあった

  • gentooのprofileを17.0から17.1にする
  • ライブラリ周りでsquidが起動できなくなったのでリビルドする
  • 再起動の度に/var/{run, cache, log}/squidsquid:squidからproxy:proxyに変更されるようになる

よくわからんポイントとしては、

  • _ find / -user proxyで検索してもproxyユーザになっているディレクトリは/var/{run, cache, log}/squidしかない
  • ebuild自体は問題ないぽいし、/var/{run, cache, log}/squid以下のファイルは問題なくsquid:squidになっている
  • proxyユーザって使われているんか?

後はapparmorのsquidプロファイルを無効にしてみたりしたけれど特に変化はなかった
zunda 🍡 nはおまけ :green_dango:: "@babukaru@mstdn.maud.io find /etc -type f | xargs…" - zundon
☝️(´・ω・`)ずんださんにアドバイスを貰ったのでこれもやってみたけれど、汎用的な単語すぎてめちゃんこ出てきたわりには何か分かりそうなものはありませんでした…

どうした

/var/{run, cache, log}/squidsquid:squidにして、
# userdel proxyして謎のユーザを消し飛して再起動
問題なく/var/{run, cache, log}/squidらがsquid:squidで維持されるようになった

わからんけれど直ったしいっかー☺️

media-gfx/fontforgeのビルドが通らない

通る様にはなったのだけれど問題ないかどうかは分からない
まあ多分大丈夫でしょ

なにがあった

かるばぶ: "https://github.com/fontforge/fontforge/blob/4293d…" - :don:
もうビルドログが残っていませんでした…

Masanori Ogino: "肝心のその構造体はfontP.h https://github.com/fontforge/fon…" - :don:

Masanori Ogino: "いえ、cairoがないので_NO_LIBCAIROは真で、pangoc_fdはないことを前提にしな…" - :don:

おまさのりさんに全部教えてもらいました
pangoc_fdとかいうメンバはcairoを使わないでビルドしようとする場合存在しないのに、それにアクセスしようとしているねというやつみたい

どうした

エラーが起きた所でプリプロセッサをよしなに置いてpangoc_fdではなくpango_fdを使うようにしてあげれば良さそう

    PangoFontDescription **fdbase = &font->pangoc_fd;

になっているところを

#if _NO_LIBCAIRO
    PangoFontDescription **fdbase = &font->pango_fd;
#else
    PangoFontDescription **fdbase = &font->pangoc_fd;
#endif

にした
もう一箇所同じエラーが出ているところがあったけれどそこも同じ対応で問題なかった

おわり

なんとかなったのも嬉しいけれど、今回よかったことは/var/tmp/portage/以下にあるビルド失敗した時に残るやつらのソースコードを編集してビルドし直せるというプレイングを知れたことですね… 適当にworkディレクトリのソースコードをよしなにするー>ebuild /usr/portage/nanya/kanya.ebuild compileとかやると良い感じにコンパイルしてくれるのでえらい
今迄は毎回ソースコードを取得して…からやっていてめちょ時間かかっていました

なんとか出来たのは九分九厘おまさのりさんのお陰です ありがとー!

gentoo-sourcesやnvidia-driversをビルドしようとすると"file format not recognized"と言われる

タイトル通りです
タイトル通りとタイダルウエーブって似てる

なにがあった

  • なんだか突如nvidia-drivers-418.43がビルド出来無くなる
  • 最新のドライバをmaskして一つ前のもの(415.27)にしてもやはりビルド出来無い
  • https://mstdn.maud.io/@babukaru/101669300482516290
  • kernelをビルドしようとする(4.20.11)とobjdump : file format not recognizedだかと連呼される

つい最近までビルド出来ていたのになんでなものなの

どうした

[SOLVED]unable to initialize decompress status for section .debug_info / Pacman & Package Upgrade Issues / Arch Linux Forums
Gentoo Forums :: View topic - [SOLVED] objdump : file format not recognized
これらなので、>dev-libs/elfutils-0.173-r1でmaskしてelfutilsのバージョンを下げてビルドし直すと解決する

おわり

本当にgentoo forumsとarch bbsさえ見ておけば大体どうにかなるのでえらい ありがたいね

【画像あり】栄養ペーストが旨すぎる 辺境の惑星Rimworldにある栄養ペーストが旨すぎると話題に

この記事は mstdn.maud .io Advent Calendar 2018 - Adventarの1日目の記事です
美少女なので時を遡れるし、誰もやっていなかったし勝手に埋めてしまってもよいよね

今回は、主にSteamで配信されているRimWorldというゲームの加工済み食品の一つである、栄養ペーストのが如何に素晴らしいアイテムであることを紹介します
これを読み終えた後には皆さんのコロニーはペーストディスペンサーが設置され電気コンロが埃を被る栄光の未来が待っているでしょう
栄養ペースト以外の部分の説明は適当に流すので困ったら不時着した惑星でドイツのトリを発見した - ぁを読んでください!最高の記事です

Rimworldとは

*1

シナリオセットはいくつかあり、カスタマイズも出来るのですが、ベーシックなシナリオでは、宇宙船が壊れ、未開の惑星「RimWorld」へと不時着したところから始まります。  
ほとんど体一つで放り出されてしまった3人は生活の拠点となる「コロニー」を発展させ、最終的には宇宙船を製造して惑星RimWorldから脱出します。  

プレイヤーは刻々と変わる様々なデータを見ながら、目標達成に向けて彼らに指示を出すことになります。  
要素が多いため初心者は簡単に全滅し、上級者でも決して気を抜けない、頭を使うのが好きな人にはたまらないゲームです。まあ俺のような一級プレイヤーは全滅などありえんけどなw

また、私達と同じ文明レベルを持つ漂流者向けに書かれたとされるドキュメント Rimworld世界観ドキュメント日本語訳 があります

栄養ペーストってなに

栄養ペーストはRimworldにおいて作成可能な加工食品の中で最も材料対栄養の効率が良い、人が問題なく生活する上での栄養素を全て含んだ完全栄養食です。
ペーストディスペンサーを使うことで0.3の材料栄養値分の資源を用いて0.9栄養値を持つ栄養ペーストを一瞬*2にして取得できます。

f:id:karubabu:20181213151534p:plain
栄養ペーストを食べる入植者達 まずそう

メリット

比較対象はfine meal(野菜5,肉類5の心情ボーナス5)です。
カサンドラ過激を想定して書いています。

  • 料理に人員を割く必要が無くなる
  • 栄養ペーストの作成に料理スキルが不要
  • 食中毒の発生確率が0になる
  • 使用材料が3/5(野菜、又は肉類を6)
  • 消費電力が電気コンロの4/7
  • 食べる時だけ栄養ペーストを作成するので通常プールする加工食品分の資産価値が抑えられる
  • 食べる時だけ栄養ペーストを作成するので食品を持ち運ぶことがなくなり、食堂一つにテーブルを置くだけで"テーブル無しで食事をした"ペナルティを常に回避できる
  • ペーストディスペンサーは壁として扱えるので栄養ペースト作成時に冷蔵室に侵入する必要はなく、料理を行うより遥かに冷蔵室への侵入回数が減り、温度管理が簡単になる

あーもうこれはどんどん栄養ペーストが食べたくなってきましたね

デメリット

  • -4の心情ペナルティ(fine mealと比較すれば-9)
    f:id:karubabu:20181213173404p:plain
    まずそうというか、食べた後じゃんね

メリットに対してデメリットは1つだけです
これはもう栄養ペーストを食べるしかないでしょう

メリットはデメリットを上回っているのか?

Rimworldにおいて、ネックなのが食材の調達とその加工です。
これらは人口が増える毎にコストが増加していき、更にさして緩和する方法がありません。
人口が増えることによって比例してコックの仕事量も増えていきます。 経験的に、入植者が12人を超えたあたりで一人のコックが一日中料理をするだけでは足りずに2人目のコックが必要になってきます。
コックの料理スキルが高くとも、調理場が汚なければ容易に食中毒になってしまいますし、この食中毒はver1.0で強化されておりこれを罹患した入植者は1日を棒に振ってしまいます。
その点栄養ペーストは少ない材料でコックを必要としません。食中毒も全く起きないので、食中毒による心情ペナルティも発生しません。

それでも栄養ペーストで発狂するのでは…と危惧されているかもしれませんが、これについても問題はありません。
多少減ったところで寝室を広く取る、食堂兼娯楽施設をよりよくすることで十分かつ恒久的な心情ボーナスが手に入ります。
心情値は入植者によって設定されている閾値を下回らなければ良いのであって大量にあっても意味は無いので効率を上げられる所はどんどん削っていきましょう。
サイコドローンが発生しても、比較的軽いドラッグであるビールやサイコペコーやスモークリーフジョイントを作成しておけば簡単に乗り切ることが出来ます。
ドラッグは襲撃者達からのドロップで事足りますが、金策のために作成しているコロニーが多いと思うのでこれが無いということはそうそう無いのではと思います。

それでも色々あって発狂することがあったとします。それでも栄養ペーストの優位は揺ぎません。
実際発狂なんて大したことがないものが多く、問題になってくる発狂行動は心情値が一桁%レベルまで落ち込んだ時であり、これはそもそも栄養ペースト以外が問題になっているパターンが多いです。*3 料理をしている時点でペーストディスペンサーから見れば料理をしている時間はコックが発狂しているのとなんら代わりませんし、料理ではカタルシスを上回る心情ボーナスが手に入りません。
食中毒になっている時間も発狂しているのとなんら代わらない上に、食中毒は罹患し、改善するまで1日かかるなんてザラです。
しかも食中毒にはカタルシスが無いどころか、"病気になった"と"痛み"で-20程度心情が持っていかれます。 栄養ペーストを食べている間は栄養ペーストを持ち歩かないので、"テーブル無しの食事"による心情ペナルティも付きません。
食事の後、食堂に併設された娯楽施設で遊ぶことを考えると食事の度に食堂へ戻るのも大したロスではありません。

また、ペーステディスペンサーを二つ直列に繋ぐことで虫肉と人肉の摂取時の心情ペナルティを踏み倒すことが出来ます。

これらを見るに、総じて上回っていると言って良いでしょう。
栄養ペーストを食べた入植者が結婚しているので栄養ペーストを食べると彼女も出来ます。

おわりに

ここまで読んだ皆さんはもう栄養ペーストが欲しくて欲しくてたまらなくなったかと思います。
私は栄養ペーストと共にカサンドラ過激を乗り越えてきたので完全に信頼しています。

RimworldはSteamで販売されています。セールはされないらしいので実質今が一番セールされているといっても過言ではありません買いましょう!RimWorld on Steam
日本語訳は初期設定で存在し、数々のMODがSteamワークショップで公開されています。
MODの有名所も有志によって翻訳されているので、英語がきびしい人でも問題なく楽しめます。
皆さんも是非栄養ペーストを使って辺境の惑星から脱出しましょう!

最後に1年前のアドベントカレンダーで非常に良い記事を書いてくれたとしあさん、としあさんが居なければ私がrimworldに興味を持つことはありませんでした。
そして私にrimworldをプレゼントしてくれたとしあさん、としあさんが居なければ私がrimworldで遊ぶ様になるのはもっとずっと先のことだったでしょう。本当にありがとう御座います。

こちらが二日目の記事です。
's Fagaim IExplore.exe • 【A:don:vent Calendar 2018 2日目】...

https://steamuserimages-a.akamaihd.net/ugc/946216664842837440/FA3CD371E1F2B6EA8C5DAD381B0FB1A9683DAA45/
画像がでかすぎる カサンドラ過激をクリアして嬉しかったので貼りました ほめてね

*1:不時着した惑星でドイツのトリを発見した - ぁ

*2:時間を停止した状態でも取得出来るので実際には一瞬ですら掛っていない。これはいったいー?

*3:でも侮辱だけは勘弁な!(TKUYRUATM

88x2buドライバのebuild まちがってたところを直した

もう大分前に直したやつの振り返りです
大分前すぎるしツイーヨしたけれどツイーヨを見付けられないしでわやになった
こんなことがないように覚えておこうね

なにがあった

# emerge @module-rebuildして再起動しても無線デバイスのドライバが存在しないことが何度も発生していた
よくわからんね…と思いながら放置していたのだけれど、ふとビルドログを眺めていると@module-rebuildなのに今使っているkernelに対するモジュールをビルドしていた
ここもっと詳しいのがツイーヨで残っていたはずなのだけれど見付からないしまあ雰囲気を感じてね

何をした

sedしてeselect kernelで設定されているカーネルに対してモジュールをビルドする様に変更した
詳しくはここを見てね
fix:88x2bu make it bulid against the correct kernel · karubabu/gentoo-overlay@946da91 · GitHub
この英語あっているんか

おわり

もはやなんも覚えていなくてこれを見てもなんもわからんな
Makefileの中身には気をつけよう!というやつです

media-video/mpv-0.27.2がemergeできない

できた
それ以前で有効だったUSEフラグを建てっぱなしにしておくと問題が出るみたい
フラグを建てっぱなしで放置するとなんか大変なことに巻き込まれるのラノベみたいじゃんね

なにがおきた

media-video/ffmpegを4.1にアップグレードすると、preserved-rebuildが必要になる
なのでmpvもリビルドだかあっぷぐれーどだかが必要になったのでリビルドする

You manually enabled the feature 'cuda-hwaccel', but the autodetection check failed. * ERROR: media-video/mpv-0.27.2::gentoo failed (configure phase): * configure failed * * Call stack: * ebuild.sh, line 124: Called src_configure * environment, line 4250: Called waf-utils_src_configure '--confdir=/etc/mpv' '--docdir=/usr/share/doc/mpv-0.27.2' '--htmldir=/usr/share/doc/mpv-0.27.2/html' '--disable-libmpv-shared' '--disable-libmpv-static' '--disable-static-build' '--disable-optimize' '--disable-debug-build' '--enable-html-build' '--disable-pdf-build' '--disable-cplugins' '--enable-zsh-comp' '--disable-test' '--disable-android' '--enable-iconv' '--disable-libsmbclient' '--enable-lua' '--disable-javascript' '--enable-libass' '--enable-libass-osd' '--enable-zlib' '--disable-encoding' '--disable-libbluray' '--disable-dvdread' '--disable-dvdnav' '--disable-cdda' '--enable-uchardet' '--disable-rubberband' '--disable-lcms2' '--disable-vapoursynth' '--disable-vapoursynth-lazy' '--disable-libarchive' '--enable-libavdevice' '--disable-sdl2' '--disable-sdl1' '--disable-oss-audio' '--disable-rsound' '--disable-sndio' '--enable-pulse' '--disable-jack' '--disable-openal' '--disable-opensles' '--enable-alsa' '--disable-coreaudio' '--disable-cocoa' '--disable-drm' '--disable-gbm' '--disable-wayland' '--enable-x11' '--enable-xv' '--disable-gl-cocoa' '--enable-gl-x11' '--enable-egl-x11' '--disable-egl-drm' '--disable-gl-wayland' '--disable-vdpau' '--disable-vdpau-gl-x11' '--disable-vaapi' '--disable-vaapi-x11' '--disable-vaapi-wayland' '--disable-vaapi-drm' '--disable-caca' '--disable-jpeg' '--disable-rpi' '--disable-plain-gl' '--disable-mali-fbdev' '--disable-vaapi-hwaccel' '--disable-vdpau-hwaccel' '--enable-cuda-hwaccel' '--disable-tv' '--disable-tv-v4l2' '--disable-libv4l2' '--disable-audio-input' '--disable-dvbin' '--disable-apple-remote' '--disable-build-date' * environment, line 5204: Called die * The specific snippet of code: * CCFLAGS="${CFLAGS}" LINKFLAGS="${CFLAGS} ${LDFLAGS}" "${WAF_BINARY}" "--prefix=${EPREFIX}/usr" "${libdir[@]}" "${@}" configure || die "configure failed" * * If you need support, post the output of emerge --info '=media-video/mpv-0.27.2::gentoo', * the complete build log and the output of emerge -pqv '=media-video/mpv-0.27.2::gentoo'. * The complete build log is located at '/var/tmp/portage/media-video/mpv-0.27.2/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/media-video/mpv-0.27.2/temp/environment'. * Working directory: '/var/tmp/portage/media-video/mpv-0.27.2/work/mpv-0.27.2' * S: '/var/tmp/portage/media-video/mpv-0.27.2/work/mpv-0.27.2'

通らない!

なにした

大事なのは

You manually enabled the feature 'cuda-hwaccel', but the autodetection check failed.

この部分で、なんかcudaに対する某かが問題を起こしているっぽい
sudo flaggie --strict media-video/mpv -cuda
してcuda系のUSEフラグを外す
通る

おわり

なんかわからんけれど問題なく通ったのでよかった(こなみるく)
何に使っていたフラグなのか覚えていないけれど覚えていないってことは要らないってことでしょ