プロフィール

kosaki

Author:kosaki
連絡先はコチラ

ブログ検索
最近の記事
最近のコメント
最近のトラックバック
リンク
カテゴリー
月別アーカイブ
RSSフィード
FC2ブログランキング

RHELのO_SYNCって面白い事になってるんだなあという話 このエントリーをはてなブックマークに追加

昔、kernel watch で真のO_SYNCサポートについての記事(※下記参照)を書いたことがあるんだけど、RHELではちょっと事情が違うことがわかった。

http://www.atmarkit.co.jp/flinux/rensai/watch2009/watch12b.html

時系列でいうと、まずkernel 2.6.33でO_SYNCサポートが入り(上記記事)、glibc 2.12 でそれに対応するためのヘッダファイル修正が入ったんだけど、RHEL6は kernel 2.6.32 + glibc 2.12 なんだな。

だからRHEL6でコンパイルしたアプリをRHEL6で実行するケース
→ O_SYNCはの実体は (__O_SYNC|O_DSYNC) なんだけど、カーネルのほうに、_O_SYNCの定義がないので、その部分は無視されて、O_DSYNCとして動作

RHEL6でコンパイルしたアプリをRHEL7で実行するケース
→ カーネルに_O_SYNCの実体があるので、O_SYNCが正しくO_SYNCとして動く

つまり、OSをバージョンアップするとアプリの挙動が変わってしまう。コミュニティ開発者がとんでもなく苦労して後方互換性を維持してもディストリのうっかりで台無しになることもあるよという例でした。

まあ、O_SYNCを使ってるのに、O_DSYNCセマンティクスを仮定してるアプリがいたら、そいつがアホという意見には同意する。同意するが、後方互換性とはそういうものじゃないんだよ。バグ互換も含めて考えるのが互換性。



関連記事
linux | 【2014-10-21(Tue) 14:43:05】 | Trackback:(0) | Comments:(0)

RHEL7でスクリーンセーバー無効化 このエントリーをはてなブックマークに追加

ここに載ってる情報でいいっぽい

http://zurlinux.com/?p=1625

要約: ふつうにぐぐると

gsettings set org.gnome.desktop.screensaver idle-activation-enabled false



っていう記事ばかり見つかるけど、もう古い。今は

gsettings set org.gnome.desktop.session idle-delay 0



ってしなきゃダメ


関連記事
linux | 【2014-09-03(Wed) 11:19:48】 | Trackback:(0) | Comments:(0)

commit 直前にChangeLogの日付を変更する このエントリーをはてなブックマークに追加

今日、なるせさんが




とかつぶやいていて、意味がわからないので突っ込んだところ。svn ポッキー問題と呼ばれる大きな問題が隠れている事がわかった(詳細はコチラ http://togetter.com/li/706683) ので、コミット時に ChangeLogの日付を自動更新する git hookを書いた。これで自動的にChangeLogの時刻がコミット時時刻に一致する。

ソースはこちら。これを .git/hooks/pre-commit というファイル名で保存し、実行可能権限をつける



関連記事
ruby | 【2014-08-15(Fri) 00:53:49】 | Trackback:(0) | Comments:(2)

[Rubyコミッタ向け] Rubyリポジトリへのコミット時にコミットメッセージ自動生成 このエントリーをはてなブックマークに追加

いまさら確認するまでもないが、Rubyコミッタは全員 git svn を使っていて、コミット時にはなるせさんの
コミットメッセージ自動整形スクリプト(http://d.hatena.ne.jp/nurse/20100413)を使ってる。
異論はみとめない(キリッ

さて、これはこれで大変いいものであるのだが、脊髄反射的に git commit -av <リターン> とか打ってることがあって、他のプロジェクトと行ったり来たりしていると今ひとつなところがあった。
そういうわけで、上記URLのスクリプトをgit hook に移植して、git commit -a したら自動的にChangeLogからコミットメッセージを生成するようにしてみた

以下のスクリプトを、/.git/hooks/prepare-commit-msg というファイル名でセーブして、実行権限をつけるとよい。




関連記事
ruby | 【2014-08-14(Thu) 22:59:06】 | Trackback:(0) | Comments:(2)

global --single-update このエントリーをはてなブックマークに追加

今日知ったこと。
gtagsのupdate は global --single-update で1ファイルだけのアップデートが出来る。
よって、



みたいなスクリプトで、gitのコミットIDから変更ファイルだけアップデートが出来る。わたしはこれをcherry-pickの処理に仕込んだ

関連記事
linux | 【2014-08-14(Thu) 15:08:01】 | Trackback:(0) | Comments:(0)
次のページ
  1. 無料アクセス解析