BSD界隈四方山話

第74回FreeBSD 12、GNU rcsをベースから削除

GNU rcsをベースから削除

FreeBSDの開発版は12-CURRENTになりましたが、10月中頃の段階で12-CURRENTからGNU rcsのコードが削除されました。

リスト 20161015: GNU rcsをベースから削除
20161015:
        GNU rcs has been removed from base.  It is available as packages:
        - rcs: Latest GPLv3 GNU rcs version.
        - rcs57: Copy of the latest version of GNU rcs (GPLv2) before it was
        removed from base.

GNU rcsはFreeBSD 11.0-RELEASEにはまだ取り込まれています。また、ベースシステムから削除されましたがパッケージに2系列が用意されていますので、必要に応じてインストールすれば利用できます。

 パッケージ: rcs 5.9
% pkg search -f rcs-5
rcs-5.9.4
Name           : rcs
Version        : 5.9.4
Origin         : devel/rcs
Architecture   : freebsd:11:x86:64
Prefix         : /usr/local
Repository     : FreeBSD [pkg+http://pkg.FreeBSD.org/FreeBSD:11:amd64/quarterly]
Categories     : devel
Licenses       : GPLv3
Maintainer     : zeising@FreeBSD.org
WWW            : http://www.gnu.org/software/rcs/
Comment        : Version control system
Annotations    :
Flat size      : 670KiB
Pkg size       : 188KiB
Description    :
The Revision Control System (RCS) manages multiple revisions of files.  RCS
automates the storing, retrieval, logging, identification, and merging of
revisions.  RCS is useful for text that is revised frequently, including source
code, programs, documentation, graphics, papers, and form letters.

This port is gnu rcs.

WWW: http://www.gnu.org/software/rcs/
%
 パッケージ: rcs 5.7
% pkg search -f rcs57
rcs57-5.7
Name           : rcs57
Version        : 5.7
Origin         : devel/rcs57
Architecture   : freebsd:11:x86:64
Prefix         : /usr/local
Repository     : FreeBSD [pkg+http://pkg.FreeBSD.org/FreeBSD:11:amd64/quarterly]
Categories     : devel
Licenses       : GPLv2
Maintainer     : cy@FreeBSD.org
WWW            : http://www.gnu.org/software/rcs/
Comment        : Version control system (as was in FreeBSD prior to removal)
Options        :
	FREEBSD        : on
Annotations    :
Flat size      : 731KiB
Pkg size       : 159KiB
Description    :
The Revision Control System (RCS) manages multiple revisions of files.  RCS
automates the storing, retrieval, logging, identification, and merging of
revisions.  RCS is useful for text that is revised frequently, including source
code, programs, documentation, graphics, papers, and form letters.

This port is gnu rcs 5.7. It is compatible with the rcs that was in FreeBSD
prior to its removal in FreeBSD-10.0. Some ports will not work with changes
made to rcs (e.g. changes to command line syntax) following the rcs 5.7
release.

WWW: http://www.gnu.org/software/rcs/
%

このままいけば少なくともFreeBSD 12.0-RELEASEからはベースシステムにはGNU rcsがない状態になります。

GNUフリーのベースへ向けて

FreeBSDプロジェクトは数年前からベースシステムからGNU系のツールやライブラリを取り除く取り組みを進めています。FreeBSD 11.0-RELEASEの段階だとGNUツールのうち次のライブラリやコマンドがベースシステムに取り込まれています。

  • cc
  • dialog
  • diff
  • diff3
  • dtc
  • gdb
  • gperf
  • grep
  • groff
  • rcs
  • バイナリユーティリティ(as、ld、objcopy、objdump)
  • 上記コマンドが利用するライブラリ

10月のコミットでこのなかからrcsが削除されたことになります。ビルド系のツールは最終的にLLVMの成果物に置き換わることが予定されていますので、これでほとんどがベースから消えることになると思います。それ以外のツールもすでに代替がありますので、今後徐々に削除が進むことになると思います。

ただ、grepだけは最後の最後まで残るか、これはいつまでたってもベースに入っているかもしれません。すでにbsdgrep(1)という代替候補が存在しているのですが、GNU grepは実行速度がともて動作が高速なのです。

RCS

RCS(Revision Control System)はバージョン管理システムの1つです。単一のテキストデータのバージョン管理を主な目的にしています。GNU rcsはRCSの代表的な実装系の1つです。

RCSの利点はなんといっても設定や利用が簡単という点にあります。利用するにあたってデータベースをセットアップするとかリポジトリの領域を用意して準備するとかそういったことをする必要がありません。RCS系の制御コマンドを使っていきなり利用をはじめることができます。

設定ファイルやソースコードなど、自分だけで利用するもので、過去の履歴も保存しておきたいといった場合に結構便利に使えるコマンドです。現在はGitHubのようにとても優れたツールを無償で利用できますのであえてRCSを使う必要性は低いかもしれません。FreeBSDの場合だとZFSもあるので、十分おきくらいにスナップショットを取っておけばバージョン管理システムがなくてもそれなりに便利にやっていけるのでもう必要ないといえば必要ないかもしれません。

ただ今でも、たとえば仮想環境でFreeBSDを使うとか、ネットワークに接続していない環境でも利用できる必要があるとかといったことになると、RCSは便利なものです。パッケージに入っていますし今後も使い続けられますので、使ったことがないのであれば一度試してみることをお勧めします。

おすすめ記事

記事・ニュース一覧