kWatanabe 記事一覧へ

kWatanabe の 技術帖

某企業でOSや仮想化の研究をやっているインフラ系エンジニア。オンプレとクラウドのコラボレーションなど、興味ある技術を綴る。

RHEL互換ディストリの作り方を手探ってみる1(大晦日ハッカソン)

  • 2020年はSTAY HOMEのため、帰省できないため何かやりたかった
  • ひとりでもくもく会をやってもいいのだが、折角だから大晦日ハッカソンに参加してみる
  • 自己啓発として、RHEL互換(かも知れない)ディストリの作り方を手探ってみることにした

晦日ハッカソン

2012年より、毎年大晦日に開催されているイベントっぽい何かです。

omisoka-hackathon.connpass.com

内容としては、

以上。

2020年は、コロナ渦対策のSTAY HOMEで、旅行も帰省もできないので。ちょっと参加してみようと思ったのです。

何をやるか

とはいいつつも、何かをこれまで作ってきたわけでもなく、何か作りたいものがあるわけでもない。1日で材料から集めてモノを作っても、中途半端になるに決まってる。

そこで、「何かモノを作るのではなく、知見をためよう。知見であれば中間報告であっても、ブログで公開するなり、会社の勉強会で語るなりすれば、それはれっきとした成果物になるだろう。」と言い訳をして、手を動かして何かを手探っていこうと思った次第です。

ネタ探し

1ヶ月前のとある出来事

ところで、1月ほど前にある出来事があり、業界でちょっとした騒動になりました。

blog.centos.org

超意訳すると、RHEL*1という商用Linuxディストリビューションのクローンとして無償公開されていた CentOS が、突如2021年に開発終了するとアナウンスされたものです*2

元々、CentOS はクローン元の RHEL と同様に2028年まで開発されると予想されていたので、これに期待して構築されたシステムは RHEL の購入、 Oracle Linux などの他のクローンへの移行、Debian などの他のディストリへの移行のいずれかを強いられることになりました。

RHELクローン(互換ディストリビューション)とは

そもそも、RHELクローンとは何でしょうか。

RHELは商用のLinuxディストリビューションですが、製品の多くはオープンソースプロジェクトの成果物のうえに成り立っています。そのため、RHEL はそれ自身もオープンソースとして公開されています*3

そして、RHELEULA*4には、以下の記載があります。

1. License Grant. Subject to the following terms, Red Hat, Inc. ("Red
   Hat") grants to you a perpetual, worldwide license to the Programs
   (most of which include multiple software components) pursuant to
   the GNU General Public License v.2. The license agreement for each
   software component is located in the software component's source
   code and permits you to run, copy, modify, and redistribute the
   software component (subject to certain obligations in some cases),
   both in source code and binary code forms, with the exception of
   (a) certain binary only firmware components and (b) the images
   identified in Section 2 below. The license rights for the binary
   only firmware components are located with the components
   themselves. This EULA pertains solely to the Programs and does not
   limit your rights under, or grant you rights that supersede, the
   license terms of any particular component.
 
2. Intellectual Property Rights. The Programs and each of their
   components are owned by Red Hat and other licensors and are
   protected under copyright law and under other laws as
   applicable. Title to the Programs and any component, or to any
   copy, modification, or merged portion shall remain with Red Hat and
   other licensors, subject to the applicable license. The "Red Hat"
   trademark and the "Shadowman" logo are registered trademarks of Red
   Hat in the U.S. and other countries. This EULA does not permit you
   to distribute the Programs or their components using Red Hat's
   trademarks, regardless of whether the copy has been modified. You
   may make a commercial redistribution of the Programs only if (a)
   permitted under a separate written agreement with Red Hat
   authorizing such commercial redistribution, or (b) you remove and
   replace all occurrences of Red Hat trademarks. Modifications to the
   software may corrupt the Programs. You should read the information
   found at http://www.redhat.com/about/corporate/trademark/ before
   distributing a copy of the Programs.

要するに、オープンソースライセンスの下に公開されているソースコードは、RedHatの商標やロゴ、その他独占的な権限を有するものを全て排除した場合に限り、そのライセンスに抵触しない範囲で再利用して良いことになっています。

そこで、RHELソースコードから RedHat が権利を有するものを削除し、再配布されている Linux ディストリビューションがあります。それが、RHEL クローンと呼ばれるものです。

過去には様々な RHEL クローンがありましたが、2020年現在、プロダクトに耐えうるものは Oracle LinuxAsianux です*5Asianux は有償のため、無償のものは Oracle Linux のみです。なお、このアナウンスを受けて、CentOS に代わる新たな RHEL クローンを作ろうというプロジェクトがいくつか立ち上がっています。

rockylinux.org

www.projectlenix.org

RHELクローンの作り方

さて、やっと本題になりました。大晦日ハッカソンでは、この RHELクローンの作り方を手探っていくことにします。

大まかには以下の流れになるはずです。

  1. RHELサブスクリプションを得る
  2. RHELソースコード (SRPM) を入手
  3. ソースコードの全てから、RedHat に関わる商標やその他権利を有するモノを仕分け・排除
  4. 上記の結果、動かなくなってしまうものがあれば、それを補填するモノを開発
  5. リビルド

SRPMを入手してビルドするだけなら、RHEL を開発で使ったことがある人なら難なくできる作業です。しかし、RedHat が権利を持つものを削除したうえで、RedHatの権利を侵害すること無く同等の機能を補填し、RHEL と同じ動きをするものを作るとなると、簡単にはいきません。

RHEL クローンは、莫大な資金と人的リソースを費やして開発されているものなので、大晦日にちょっと手を出したくらいで何か形になるとは思いません。ひとつでも知見を得られれば、それで成功だと思っています*6

おわりに

  • 2020年の大晦日ハッカソンでは、RHEL クローン(RHEL 互換ディストリビューション)の作り方を手探っていく
  • 目標は、何らかの知見を得ることで、RHEL クローンを作ることでは無い(そもそも無理)
  • 得られた知見は、別途整理して、何らかの形でまとめる

*1:Red Hat Enterprise Linux

*2:より正確には、RHEL のクローンとしての CentOS が開発終了。RHEL のアップストリームとしての CentOS Stream は継続される。

*3: RHELサブスクリプションを持っている人には全てのソースコードを詰め込んだ 20GB強もの ISO ファイルがダウンロードできる

*4:End User License Agreement。https://www.redhat.com/ja/about/agreements

*5: ただし、汎用品として。他にも Red Hawk Linux などの特定用途に特化した製品はあります。

*6:そもそも環境の構築方法を調べるだけで1日終わるかもしれないし…