最近の変更サイトマップ

FreeBSDのmail/courierが0.65止まりなのは依存パッケージの問題

変人御用達の Courier Mail Serverのバージョンが、9月にめでたく1.0の大台に乗っていた。

その一方、FreeBSDのportsのmail/courierは何年も0.65止まり。メンテ自体は行われていて、0.65.3のまま周辺環境の変更に追従している感じ。なぜ本体のバージョンアップを行わないのか不思議だったんだけど、MLによれば、メンテナが他の件で忙しいのと、0.65より新しいCourierは依存関係が増え、その解消のために新たなportsを作らなきゃならんのが原因らしい。まぁ、その投稿(2014年)から4年が経つわけですがね…。

早く追従してくれないかなー(人任せ

FreeBSD/MySQLのWITH_CHARSET, WITH_XCHARSETはもう止めよう

FreeBSDでPortsからMySQL/MariaDBを入れる際、盲目的に指定するオプションにWITH_CHARSET, WITH_XCHARSETがある。Ports独自のオプションで、しかも日本以外での使用例が殆なく、これぞという解説も見当たらない。仕方ないのでportsの更新履歴や8-RELEASE以前の古いportsツリーを調査してみたところ、なんとmysql55で廃止されてるっぽい。

mysql51-serverのportsのMakefile(MySQLそのもののMakefileじゃないよ)には以下の記述があるが、mysql55-serverからは消えているのだ…!MariaDBはMySQL 5.5からのフォークなので言わずもがなである。

.if defined(WITH_CHARSET) && ${WITH_CHARSET} != ""
CONFIGURE_ARGS+=--with-charset=${WITH_CHARSET}
.endif
.if defined(WITH_XCHARSET) && ${WITH_XCHARSET} != ""
CONFIGURE_ARGS+=--with-extra-charsets=${WITH_XCHARSET}
.endif

見ればわかるが、portsのWITH_CHARSET, WITH_XCHARSETオプションは、それぞれMySQLの–with-charset, –with-extra-charsetsオプションに対応している(正確には“していた”)。そして、MySQL 5.5からは–with-charset自体が消えてるっぽい。–extra-charsetsってのはあるみたいだけど。–with-extra-charsetsの方もデフォルト値がallとなり、ports側から敢えて指定する必要性もなくなったのだと思われる。

WITH_CHARSET, WITH_XCHARSETオプションは、2001年1月25日にmysql323-serverに対する追加が初出のようだ。その時の更新メッセージは「Add options for alternate charsets (WITH_CHARSET and WITH_XCHARSET).」といったもの。

というわけで、MySQL/MariaDBインストールでWITH_CHARSET, WITH_XCHARSETを付けるのはもう止めよう

参考サイト

FreeBSDのportmasterで失敗ログが自動保存されるようになってた

家のFreeBSDサーバのportsたちをportmasterで更新していたところ失敗するやつがあった。失敗自体は取り立てて珍しいことでもないが、今回はThis command has been saved to /tmp/portmasterfail.txtという見慣れない行が現れた。メッセージの通り、失敗した時の結果が保存されるらしい。中身はというと…

portmaster <flags> lang/php71-extensions graphics/php71-gd x11/libXpm x11-toolkits/libXt x11/libICE x11/xorgproto x11/libSM x11/libX11 x11/libXau x11/libxcb devel/check x11/libXdmcp x11/xcb-proto x11/libXext math/php71-gmp security/php71-filter security/php71-mcrypt security/libmcrypt security/php71-openssl sysutils/php71-fileinfo sysutils/php71-posix textproc/php71-ctype textproc/php71-dom textproc/php71-simplexml textproc/php71-xml textproc/php71-xmlreader textproc/php71-xmlwriter www/php71-opcache www/php71-session

あ、うん、はい(白目

失敗部分のログが保存されてるかと思いきや、portmasterコマンドのログだけだった…。この機能は2017/2/3のportmaster 3.17.10で実装されたっぽい。まぁ、何も無いよりはマシか。

ちなみに今回の直接の失敗原因はxorgprotoとglprotoの競合だった。

===>  Installing for xorgproto-2018.4
===>  Checking if xorgproto already installed
===>   Registering installation for xorgproto-2018.4 as automatic
Installing xorgproto-2018.4...
pkg-static: xorgproto-2018.4 conflicts with glproto-1.4.17 (installs files into the same place).  Problematic file: /usr/local/include/GL/glxint.h
*** Error code 70

Stop.
make: stopped in /usr/ports/x11/xorgproto

こういう時はまず/usr/ports/UPDATINGを見てみる。特にportsの競合の場合は大抵解決策が書いてある。今回も見事に書いてあった。

20180731:
  AFFECTS: users of x11/xorg and all ports with USE_XORG=*proto
  AUTHOR: zeising@FreeBSD.org

  The xorg *proto packages have all been merged into one package,
  x11/xorgproto.  This might cause issues with upgrading.  If you
  get conflicts between xorgproto and old *proto packages, please
  remove the old package and install xorgproto again.

  In order to remove all orphaned ports, including all *proto port,
  the following can be used after the ports tree has been updated:
  pkg version -l \? | cut -f 1 -w | grep -v compat | xargs pkg delete -fy

X.orgのproto系パッケージがx11/xorgprotoに統合されたために、glprotoと衝突した事がわかる。最終行のコマンドを実行して解決。失敗したportmasterコマンドを再実行してインストール完了。あ、この時にportmasterfail.txtが役立つのか!

Portsの脆弱性チェックを無効化する方法

Portsからソフトを入れようとすると、

===>  apache22-2.2.26 has known vulnerabilities:
apache22-2.2.26 is vulnerable:
apache -- several vulnerabilities
CVE: CVE-2013-6438
CVE: CVE-2014-0098
WWW: http://portaudit.FreeBSD.org/91ecb546-b1e6-11e3-980f-20cf30e32f6d.html
=> Please update your ports tree and try again.

こんな事言われてインストール出来ない事がある。

Portsの脆弱性チェック機能に引っかかってる訳だが、ライブラリ更新などで依存関係のあるソフトをreinstallしたいだけだったりする時に非常に困る。

そんな時は脆弱性チェックを一時的に無効化してやれば良い。

  • makeの場合
    • make -DDISABLE_VULNERABILITIES xxxx
  • portmasterの場合
    • portmaster -m DISABLE_VULNERABILITY=yes xxxx

言うまでもなく、本来は修正版を使用するのが筋。あくまで緊急回避策なので注意されたし。

start.txt · 最終更新: 2016-05-07 17:46 by decomo
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0