wiki:pne-merge-license
 ここの情報は古いです。ご理解頂いた上でお取り扱いください。

TOC

ライセンスについて考えるWiki

OpenPNEのライセンスを考える

  • 修正BSDスタイルで、OpenPNEライセンスを作る
  • PHPライセンスのままで行く
  • 他の適用できるライセンスを選択する【BSDスタイル】(Apache2.0等)
  • 他の適用できるライセンスを選択する【その他】(GPL等)

企業が貢献に耐えうるライセンス規定はどうすべきか?

apache.orgのライセンス規定を参考にする。 http://www.apache.org/licenses/cla-corporate.txt

修正BSDライセンス http://www.opensource.org/licenses/bsd-license.html

パッチソースを受け入れるときのコピーライト表記

草案

 /**
  * ■ファイル説明(一行)■
  * ■ライセンス表記(複数行)■
  *
  * @license ■ライセンスURL■ ■ライセンス名■
  * @copylight ■20xx-20xx■ ■株式会社手嶋屋■
  * @copylight ■20xx-20xx■ ■名前■<■メールアドレス■>
  * @author ■名前■<■メールアドレス■>
  * @author ■名前■<■メールアドレス■>
  */

 /**
  * function datafunction
  */
 function datafunction()
 {
 ...

 }

参考 linuxカーネルのソース

/*
 * linux/kernel/power/swsusp.c
 *
 * This file provides code to write suspend image to swap and read it back.
 *
 * Copyright (C) 1998-2001 Gabor Kuti <seasons@fornax.hu>
 * Copyright (C) 1998,2001-2005 Pavel Machek <pavel@suse.cz>
 *
 * This file is released under the GPLv2.
 *
 * I'd like to thank the following people for their work:
 *
 * Pavel Machek <pavel@ucw.cz>:
 * Modifications, defectiveness pointing, being with me at the very beginning,
 * suspend to swap space, stop all tasks. Port to 2.4.18-ac and 2.5.17.
 *
 * Steve Doddi <dirk@loth.demon.co.uk>:
 * Support the possibility of hardware state restoring.
 *
 * Raph <grey.havens@earthling.net>:
 * Support for preserving states of network devices and virtual console
 * (including X and svgatextmode)
 *
 * Kurt Garloff <garloff@suse.de>:
 * Straightened the critical function in order to prevent compilers from
 * playing tricks with local variables.
 *
 * Andreas Mohr <a.mohr@mailto.de>
 *
 * Alex Badea <vampire@go.ro>:
 * Fixed runaway init
 *
 * Rafael J. Wysocki <rjw@sisk.pl>
 * Added the swap map data structure and reworked the handling of swap
 *
 * More state savers are welcome. Especially for the scsi layer...
 *
 * For TODOs,FIXMEs also look in Documentation/power/swsusp.txt
 */

#include <linux/module.h>
#include <linux/mm.h>
#include <linux/suspend.h>
#include <linux/smp_lock.h>
#include <linux/file.h>
#include <linux/utsname.h>
#include <linux/version.h>
#include <linux/delay.h>
#include <linux/bitops.h>
#include <linux/spinlock.h>
#include <linux/genhd.h>
#include <linux/kernel.h>
#include <linux/major.h>
#include <linux/swap.h>

/*
 *  kernel/sched.c
 *
 *  Kernel scheduler and related syscalls
 *
 *  Copyright (C) 1991-2002  Linus Torvalds
 *
 *  1996-12-23  Modified by Dave Grothe to fix bugs in semaphores and
 *		make semaphores SMP safe
 *  1998-11-19	Implemented schedule_timeout() and related stuff
 *		by Andrea Arcangeli
 *  2002-01-04	New ultra-scalable O(1) scheduler by Ingo Molnar:
 *		hybrid priority-list and round-robin design with
 *		an array-switch method of distributing timeslices
 *		and per-CPU runqueues.  Cleanups and useful suggestions
 *		by Davide Libenzi, preemptible kernel bits by Robert Love.
 *  2003-09-03	Interactivity tuning by Con Kolivas.
 *  2004-04-02	Scheduler domains code by Nick Piggin
 */

#include <linux/mm.h>
#include <linux/module.h>
#include <linux/nmi.h>
#include <linux/init.h>
#include <asm/uaccess.h>
#include <linux/highmem.h>

参考 TRACのソース

# -*- coding: utf-8 -*-
#
# Copyright (C) 2003-2005 Edgewall Software
# Copyright (C) 2003-2004 Jonas Borgstr旦m <jonas@edgewall.com>
# Copyright (C) 2004-2005 Christopher Lenz <cmlenz@gmx.de>
# All rights reserved.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
# are also available at http://trac.edgewall.org/wiki/TracLicense.
#
# This software consists of voluntary contributions made by many
# individuals. For the exact contribution history, see the revision
# history and logs, available at http://trac.edgewall.org/log/.
#
# Author: Jonas Borgstr旦m <jonas@edgewall.com>
#         Christopher Lenz <cmlenz@gmx.de>

参考 Apache HTTP Severのソース

/* Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/*
 * mod_deflate.c: Perform deflate content-encoding on the fly
 *
 * Written by Ian Holsman, Justin Erenkrantz, and Nick Kew
 */

/*
 * Portions of this software are based upon zlib code by Jean-loup Gailly
 * (zlib functions gz_open and gzwrite, check_header)
 */


コード受け入れではpearプロジェクトも参考に

http://pear.php.net/manual/en/developers.contributing.php

ノート

修正BSDライクなライセンスを使えばいいのだと思います。 手っ取り早いのは、同様の内容を持つApacheライセンス2.0を適用するとか。

修正BSDライクな新しいライセンスを作るとしたら、 PHPライセンスを書き直すよりも、 Apacheライセンス2.0を元にしたほうが簡単そうです。

現在のPHP3.1ライセンス(http://www.php.net/license/3_01.txt)も、 実質修正BSDライセンスみたいなもののような気がします。

メールを読んでみて、3つのポイントがあると考えました。

A.修正BSDライクなライセンスを探すこと B.ライセンス文書の主筆者の変更 C.Apache Foundationのような組織運営

もう少し詳しく説明します。

A.修正BSDライクなライセンスを探すこと

ご存じのとおり修正BSDライセンスは、とてもシンプルで使いやすいライセンス です。 ・日本語訳 http://sourceforge.jp/projects/opensource/wiki/licenses%2Fnew_BSD_license ・英語 http://opensource.org/licenses/bsd-license.php

実は、ほぼ同様の内容のライセンスがいくつかあります。

・MITライセンス http://opensource.org/licenses/mit-license.php http://sourceforge.jp/projects/opensource/wiki/licenses%2FMIT_license

・Apacheライセンス 2.0 http://opensource.org/licenses/apache2.0.php http://sourceforge.jp/projects/opensource/wiki/licenses%2FApache_License_2.0

・PHPライセンス 3.0 http://opensource.org/licenses/php.php http://sourceforge.jp/projects/opensource/wiki/licenses%2FPHP_License

ほかにもあるかも知れませんが、とりあえずここでは、 この3つでいいでしょう。

MITライセンスは、分かりやすいと思います。 修正BSDライセンスからソースとバイナリの区別をのぞいたもの。

Apacheライセンス2.0は、けっこうややこしい書き方になっています。 でも、前半の定義を読み飛ばし、特許・ソフトウェア名の扱い・ライセンスバー ジョンの扱いなどをのぞけば、言っていることは修正BSDライセンスと同じで す。つまり、無保証で著作権者名を残せば、再配布していい。 この記述形式は、MozillaライセンスやEclispeライセンスでも同じなので、ライ センス文のような法律文書の一般的な書き方なのだと思います。

PHPライセンスについては、私よりもよくご存じでしょう。

PHPライセンスとApacheライセンスを読み比べてみると、前者はPHPというソフト ウェア名が繰り返し出てくるのに対して、後者はほとんど出てこないだけで、項 目とその内容はほぼ同義のようです。

ですから、Apacheライセンス2.0をそのまま適用するか、これを元にして、新し くOpenPNEライセンスを作る(ライセンス名だけ変更する)と話が早い。新しいラ イセンス文を作った場合は、付録の部分に、「Apacheライセンス2.0と同じ内 容」というようなことを記述しておくことで、利用者の理解が早くなるような気 がします。まったくの新ライセンスを作ると、ビックリされますし。

B.ライセンス文書の主筆者の変更

主筆者というのは(そんな言葉があるのか分かりませんが)、著作権者ではなく、 ライセンス文を書いた人という意味です。

Apacheライセンス2.0は、そもそも主筆者名も修正制限も出てこないので、ライ センス名称とか変えても問題ないでしょう。 まあ一応、ほかのライセンスがどうなっているか説明してみます。

ライセンス文というと、著作権者に注目が集まりますが、その文書を書いた人 (以下、主筆者)も登場します。たとえば、GPLv2では、FSFが主筆者になります。 ちなみに、GPLv2の冒頭には、文を書き直してはいけないと書いてあります。

--- この利用許諾契約書を、一字一句そのままに複製し頒布することは許可する。 しかし変更は認めない。 --- http://sourceforge.jp/projects/opensource/wiki/licenses% 2FGNU_General_Public_License

主筆者が変わっていった例として、Eclipseのライセンスがあります。 これは、次のように3回変わっています。

  1. IBM_Public_License http://sourceforge.jp/projects/opensource/wiki/licenses%2FIBM_Public_License http://opensource.org/licenses/ibmpl.php
  1. Common Public License Version 1.0 http://sourceforge.jp/projects/opensource/wiki/licenses% 2FCommon_Public_License http://opensource.org/licenses/cpl.php
  1. Eclipse_Public_License http://sourceforge.jp/projects/opensource/wiki/licenses% 2FEclipse_Public_License http://opensource.org/licenses/eclipse-1.0.php

これは、3つとも内容的にはほぼ同義(MPLとよく似ているようです)で、主筆者が 変わっていっています(ちゃんと細部まで追跡していないので、間違っているか も知れません)。

1番目に採用されたIBM_Public_Licenseは、ライセンス名にIBMという社名が出て きて、「IBM以外の者に本契約書を修正する権利はありません。」なんて書いて あります(7項 全般)。これが、Eclipseの最初のライセンスでした。

2番目に採用されたCommon Public License Versionは、次のEclispeのライセン スとして採用されました。タイトルにも著作権者名にもIBMの社名は出てこな い、Commonなものになっています。

ただし、第7項は、こんなふうになっています。 ---- 誰でも本契約書をコピーしたりコピーを頒布したりしてかまいませんが、不一致 が起きないようにするため、本契約書は著作権で保護されており、修正は次に述 べる方法でのみ行えるものとします。契約書管理人は本契約書の新バージョン (改訂も含む)を発行する権利を留保します。契約書管理人以外の者に本契約書 を修正する権利はありません。IBMが初期契約書管理人です。IBMは契約書管理人 の役割を適任者に割り当てることができます。本契約書の各新バージョンには識 別用のバージョン番号が与えられます。プログラム(コントリビューションも含 む)の頒布は、必ずそれを受け取ったときの契約書バージョンに従って行わなけ ればなりません。 ----

Common Licenseなので、Eclipse以外のソフトウェアに使うこともできそうです (Microsoftが実際に使ってました)。でも、主筆者がIBMなのがクセ物です。その ときMicrosoftがどうしたのか、未確認です。

現在のEclipseは、3番目のEclipse_Public_Licenseを使っています。ここでは、 主筆者(初期契約書管理人となっていますね)は、Eclipse Foundationになってい ます。ソフトウェアの開発元・著作権者・主筆者が一致しており(Eclipse foundation)、私企業でないので、他の開発者も参加しやすいでしょう。

--- 誰でも本契約書をコピーしたりコピーを頒布したりしてかまいませんが、不一致 が起きないようにするため、本契約書は著作権で保護されており、修正は次に述 べる方法でのみ行えるものとします。契約書管理人は本契約書の新バージョン (改訂も含む)を発行する権利を留保します。契約書管理人以外の者に本契約書 を修正する権利はありません。The Eclipse Foundationが初期契約書管理人で す。The Eclipse Foundationは契約書管理人の役割を適任者に割り当てることが できます。本契約書の各新バージョンには識別用のバージョン番号が与えられま す。プログラム(コントリビューションも含む)の頒布は、必ずそれを受け取っ たときの契約書バージョンに従って行わなければなりません。 ---

PHPライセンスは、著作権者・ソフトウェア名・主筆者が本文中に混ざってい て、ややこしい感じを受けました。

Apacheライセンス2.0は、主筆者名も修正制限も出てこないので、そのまま適用

しても大丈夫でしょうし、変えちゃっても問題ないでしょう。ただし、ライセン ス名を新規に作ると、「なんだコレは」ということになるので、付録あたりに 「Apacheライセンス2.0と同じ内容」と書くのがいい、というのはさっきも述べ たとおりです。

※ここ、大事ですね。新しくライセンスを作るのはばかばかしいです。

C. Apache Foundationのような組織運営

これも、ちゃんとおっかけていないので、現状と違うところがあるかも知れませ んが、Apache foundationは、ゆるいライセンスを持っている変わりに、きちん とした組織体が結束の中心になっているという印象を持っています。

Foudation(財団法人)ですし。

日本では、Seaserファウンデーション(http://www.seasarfoundation.org/)が、 それをうまく真似しているような気がします。Seaser Projectが、どんどんサブ プロジェクトを増やしていっているところとか(http://www.seasar.org/)。

メイン開発者の比嘉さんのパーソナリティだけでなく、Foudationの代表理事で ある栗原さんとか、立ち上げ時にいた羽生さんとかが、よく考えて組織を立ち上 げたのではないでしょうか。最初に良いルールを採用したことで、そこから自然 と良いコミュニティが育っていったということだと思います。「バザールモデル は、ゆるい繋がりなんだ。NPOを作るなんて!」という人が混ざっていたりする と、なかなかこうは行きませんが(

もともとは、比嘉さん・栗原さん・羽生さんらが、全然別の(オープンソースで ない)コミュニティで知り合いで、信頼関係が出来ていたと、栗原さんから聞い たことがあります。このあたりは、栗原さんとかに、一度話を聞いてみると面白 いかも知れませんね。

雑談ノート

  • Apache2.0ライセンスがうまく書かれている気がするなぁ。そのまま使っても問題ないようです。

WikiInclude(DIRECTORYNAVI)?

Last modified 10 years ago Last modified on Feb 7, 2008, 12:50:55 AM