• ベストアンサー
  • 困ってます

phpで作成したプログラムで、Smartyを使用していますが商用で問題は出ないでしょうか?

現在、取引先の社内で使うアプリケーションをphpで作成しております。 で、そのプログラムではSmartyを利用しているのですが、SmartyのライセンスLGPLについて疑問が出てきたので、質問したいと思います。 LGPLのプログラムを、商用で利用しても問題はないのでしょうか? もっと言えば、私の作成したphpプログラムにはLGPLの配布における制約は影響しないでしょうか? LGPLですが、非公式ですが日本語訳がこちらで公開されてます。 http://www.opensource.jp/lesser/lgpl.ja.html この中で、「複製、頒布、改変に関する条件と制約」では、 ----------------- 5. 『ライブラリ』のいかなる部分の派生物も含まないが、それとコンパイルされるかリンクされることにより『ライブラリ』と共に動作するようデザインされているプログラムは、「『ライブラリ』を利用する著作物」と呼ばれる。そのような著作物は、単体では『ライブラリ』の派生著作物ではないので、この契約書の範囲外に置かれる。 ----------------- とあります。 つまり、phpでSmartyを利用するプログラムを作成しても、顧客に渡すとき、パッケージにSmartyが含めなければ(そして、顧客側で、Smartyをサーバに入れて頂くようお願いすれば)OKなのではないかと考えているのですが、認識違いはありますでしょうか? LGPLの事を色々と調べている内に、人によって解釈が結構違うので混乱してきました。 ライセンスに詳しい方、ご回答の程、よろしくお願いいたします。

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数1936
  • ありがとう数16

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.2

LPGL(やGPL)は本来Cのようなコンパイルしてバイナリを作るような言語を念頭においているっぽいところがあるので、 PHPのようなスクリプト言語だと微妙な部分があるとは思いますが、基本的には > つまり、商用とした場合でも、単に「require_once ($SMARTY_DIR . > > "Smarty.class.php");」でSmartyを呼び出してその機能を使うだけなら、 > 作成したプログラム部分ではLGPLを適用させなくても良いのか、という事です。 このような使い方であれば、質問者さんの作ったプログラムは「派生物」にはあたらないと 考えるのが自然でしょうから、LPGLの縛りは受けません。 ですから、 >例として、顧客の改良・改変などを禁止するようにしても問題はないのか ライブラリそのものは改変していない。上記のように呼び出しているだけ。 ということであれば問題ないと思いますが、PHPのような言語でそのようにすることに 意味があるのかなあという気はします。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ご回答、ありがとうございます。自分でも、また調べてみましたが、大丈夫そうですね。Smarty利用したWEBアプリを商用で売っている例もあったので。

関連するQ&A

  • LGPLの適用範囲について

    LGPLライセンスについて教えてください。 ↓にiTextという、OSSのPDFを生成ライブラリがあります。 http://www.lowagie.com/iText/ この場合はデュアルライセンスなのですが、例えばLGPLのライセンスを適用した場合、このライブラリを使ったサーバサイド・プログラム(iTextを改変せず動的リンクしたプログラム)で、PDFを生成する機能を商用サービスの一環として提供した場合、LGPLによる制限が発生するでしょうか? http://www.opensource.jp/lesser/lgpl.ja.html.euc-jp ↑では、 「複製や頒布、改変以外の活動はこの契約書ではカバーされない。」 とあります。 この場合のPDF生成機能の有償提供は、「カバーされない」部分にあたるのでしょうか? そしてその場合、「iTextを使用している」という旨を明記したり、ソースの開示をしなくともよいのでしょうか。 上記のようなiTextへのリンクを含んでコンパイルされたプログラム自体を再配布する場合、LGPLの制限が発生するように思うのですが、iTextに限らずLGPLのライブラリを使った成果物の領布において、どのように考えるべきなのか分かりません。 よろしければ、ご教授ください。 お願いいたします。

  • LGPLのファイルを改変し、別のプログラムに組み込んで配布するには何が

    LGPLのファイルを改変し、別のプログラムに組み込んで配布するには何が必要でしょうか。 現在PHPでWikiクローンを作成しており、それでText_Diff(PEARのライブラリ、LGPL)を使用しています。このウィキは配布するつもりで、PEARのインストールを強要しないためにText_Diffを同じZipファイルに入れて配布したいと考えています。 この際に必要な著作権の表示や手続きを教えていただけますでしょうか。

    • ベストアンサー
    • PHP
  • SmartyでのShift-JIS使用

    現在、携帯サイトの構築を行っています。 EUC-JPならば問題なく表示されるのですが携帯電話はShift-JISをサポート。 一応、EUC-JPも表示はされますがサポート外である事実は変わりません。 そこで、表示に関してはShift-JISで行いと考えています。 (全ての携帯がEUC-JPでも問題なく表示できる確証がない限り表示はShift-JISを考えています。) しかし、今度はSmartyがShift-JISがサポート外。 普通にShift-JISを使うと文字化けを起こしたりエラーが表示されます。 PHPもShift-JIS、SmartyのテンプレートもShift-JISにすれば とりあえずはPHPからの表示する文字に関してはShift-JIS表示できますが Smartyテンプレートに直接書いた文字は文字化けを起こします。 自分なりに調べて http://blog.livedoor.jp/alpha1280/archives/50225918.html http://www.knym.net/wiki/index.php?PHP%2FSmarty のサイトを見つけて記事内に書いてあるPHPを利用してみました。 Smarty_Extends.phpをSmarty.class.phpと同じフォルダに作成して テンプレートをShift-JISで作成、プレフィルタとポストフィルタのコメントを外して Smarty_Extendsを利用して表示するPHPを作成↓ <?php include_once('Smarty_Extends.php'); $smarty = new Smarty_Extends('templates','templates_c'); $smarty->assign("test", "Shift-JISによる表示だよ。必須"); $smarty->display("Enc_Shift-JIS.tpl"); ?> エラーは出なかったんですが従来通り文字化け、何度もテストしているんですが判りません。 SmartyでShift-JIS表示の経験がある方、上記の問題点や解決作の判る方。 お力を頂ければ幸いです、宜しくお願い致しますm(_ _)m

    • ベストアンサー
    • PHP

その他の回答 (1)

  • 回答No.1

GPLやLPGLが要求しているのは基本的に、これこれこういうときはあなたの書いた分の ソースコードも公にアクセスできるようにしなさい。 ってなことですから、商用に使うかどうかは問題ではありません。 お客さんにあなたの作った(Smarty使用の)PHPプログラムを引き渡すということは ソースコード丸見えなわけですから、気にするようなことはないと思います。 >認識違いはありますでしょうか? 引用している部分で述べられているのは簡単にいうと、 ・ライブラリのコードを改変したものは「派生物」である ・ライブラリを単に呼び出して使っているのは「派生物」ではない ということです。 使用しているライブラリが支障なく入手できる状態になっていれば問題ありません。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

どうやら、問題はないようです。 ご回答、ありがとうございます。

質問者からの補足

申し訳ございません。若干、質問が曖昧で分かりづらかったです。 つまり、商用とした場合でも、単に「require_once ($SMARTY_DIR . "Smarty.class.php");」でSmartyを呼び出してその機能を使うだけなら、作成したプログラム部分ではLGPLを適用させなくても良いのか、という事です。 例として、顧客の改良・改変などを禁止するようにしても問題はないのかなと思って質問させていただきました。LGPLの場合、リバースエンジニアリングは許可しなくてはいけないという情報を見たもので、少し気になっております。

関連するQ&A

  • PHP初心者はSmartyやPEARを使うべきですか?

     PHPのサンプルなどが載っている書籍で勉強をしていると、Smartyで効率を上げるとか、PEARのクラスを利用して実装の時間を減らすということが書かれていて、実際のサンプルプログラムもそれらの技術を使って作られていることが多いです。  しかし、PHPをまだ習熟できていない私は、それらの技術が出てくる所為でプログラムを理解することに苦しむことがあります。エラーがあっても、その原因を特定するのに時間がかかってしまったり、PEARのマニュアルを読むだけでも一苦労だったりします。  そこで皆さんの意見をお聞きしたいのですが、PEARやSmartyは是非とも使いたいものなのでしょうか?私はこういう所が気に入っているから使っているとか、ここがダメだから使っていないなどありましたら教えてください。  また、初心者だからこそPEARやSmartyを使ったほうが良いのでしょうか?

    • ベストアンサー
    • PHP
  • 【php】Smartyを使うとどの様な利点があるか

    phpによるWEB制作で 現在 デザイナーが作ったデザインを1枚のHTMLファイルに コーディングまでしてもらって それを、プログラマーがバラバラに分解、インクルード、データベースとの組み込みなどを 加えていくという工程を行っています。 以前からプログラマーとデザイナーが作業を分担しやすいという Smartyというものに興味があったのですが、 Smartyも、デザインをパーツごとにわけて変数化するということですよね? インクルード化や、phpの変数に納めるのと どう違うのか また、動的ページは条件によって1枚のページがいろいろ変化するわけですから 結局デザイナーにもある程度のプログラムを意識した作成が求められるように思えます。 Smartyを導入すると、どのような利点があるのでしょうか。

    • ベストアンサー
    • PHP
  • xserver Smarty PHP+MySQL

    xserver Smarty PHP+MySQL xserver(レンタルサーバー)でSmartyのtplが読み込まれません。 Xserver(レンタルサーバー)環境 MySQL5 バージョン:5.0.77 MySQL5 ホスト名:xxx.xserver.jp PHP Version 5.3.3 include_path .:/usr/share/php53/pear :/usr/share/php Xserver PHP関連の仕様一覧 PEARインストール済み <インストール済みライブラリ> ・Archive_Tar ・Auth ・Console_Getopt ・DB ・HTML_Common ・HTML_QuickForm ・HTTP ・HTTP_Header ・HTTP_Download ・Mail ・Net_SMTP ・Net_Socket ・Pager ・PEAR ・XML_Parser ・XML_RPC ・Structures_Grap データベースは同じくXserverに設置されているphpmyadmin(MySQL5)で作成しました。 /xxx.xsrv.jp/内に 【php_libs】   [config]     ・config.inc.php   [module]     ・build_screen.inc.php     ・menu.inc.php     ・MYDB.inc.php     ・sub.inc.php       [smarty]     ・cache     ・configs     ・libs     ・templates     ・templates_c 【public_html(DocumentRoot)】   ・testsmarty.php   ・testsmarty.tpl を置いています。 以下のコードでエラーがでます。 Warning: Smarty error: unable to read resource: "testsmarty.tpl" in /home/xxx/xxx.xsrv.jp/php_libs/smarty/libs/Smarty.class.php on line 1088 どこが間違っているのか教えて下さい。 ●testsmarty.php <?php $documentroot = dirname( __FILE__) . '/'; require_once $documentroot . '../php_libs/config/config.inc.php'; require_once( _SMARTY_LIBS_DIR . "Smarty.class.php"); $smarty = new Smarty; $smarty->template_dir = _SMARTY_TEMPLATES_DIR; $smarty->compile_dir = _SMARTY_TEMPLATES_C_DIR; $smarty->config_dir = _SMARTY_CONFIG_DIR; $smarty->cache_dir = _SMARTY_CACHE_DIR; $smarty->assign("title", "タイトル名"); $file = 'testsmarty.tpl'; $smarty->display($file); ?> ●testsmarty.tpl {$title} ●config.inc.php <?php //---------------------------------------------------- // デバッグ表示 true / デバッグ表示オフfalse //---------------------------------------------------- // define("_DEBUG_MODE", true); define("_DEBUG_MODE", false); //---------------------------------------------------- // データベース関連 //---------------------------------------------------- define("_DB_USER", "xxx_sample"); define("_DB_PASS", "password"); define("_DB_HOST", "tcp+xxx.xserver.jp"); define("_DB_NAME", "xxx_sampledb"); define("_DB_TYPE", "mysqli"); define("_DSN", _DB_TYPE . '://' . _DB_USER . ':' . _DB_PASS . '@' . _DB_HOST . '/' . _DB_NAME); //---------------------------------------------------- // 認証関連 //---------------------------------------------------- // 会員認証に使うテーブル名 define("_DB_MEMBER_TB", "m_member"); // 管理者認証に使うテーブル名 define("_DB_SYSTEM_TB", "m_system"); // ユーザー名を格納するカラム名 define("_DB_USERNAMECOL", "username"); // パスワードを格納するカラム名 define("_DB_PASSWORDCOL", "password"); //---------------------------------------------------- // 会員・管理者 処理分岐用 //---------------------------------------------------- // 会員用フラッグ define("_MEMBER_FLG", false); // 管理者フラッグ define("_SYSTEM_FLG", true); //---------------------------------------------------- // セッション名 //---------------------------------------------------- // 会員用セッション名 define("_MEMBER_SESSNAME", "PHPSESSION_MEMBER"); // 管理者用セッション名 define("_SYSTEM_SESSNAME", "PHPSESSION_SYSTEM"); //---------------------------------------------------- // ファイル設置ディレクトリ //---------------------------------------------------- //$smarty->○○○を使わない場合下記で表示されました。 define( "_PHP_LIBS_DIR", "/home/xxx/xxx.xsrv.jp/php_libs/"); // 設定ファイル define( "_CONFIG_DIR", _PHP_LIBS_DIR . "config/"); // 機能ファイル define( "_MODULE_DIR", _PHP_LIBS_DIR . "module/"); //---------------------------------------------------- // Smarty関連設定 //---------------------------------------------------- // Smartyのlibsディレクトリ define( "_SMARTY_LIBS_DIR", _PHP_LIBS_DIR . "smarty/libs/"); // Smartyのテンプレートファイルを保存したディレクトリ define( "_SMARTY_TEMPLATES_DIR", _PHP_LIBS_DIR . "smarty/templates/"); // Smartyのlibsディレクトリ Webサーバから書き込めるようにします。、 define( "_SMARTY_TEMPLATES_C_DIR", _PHP_LIBS_DIR . "smarty/templates_c/"); // Smartyのlibsディレクトリ define( "_SMARTY_CONFIG_DIR", _PHP_LIBS_DIR . "smarty/configs/"); // Smartyのlibsディレクトリ Webサーバから書き込めるようにします。、 define( "_SMARTY_CACHE_DIR", _PHP_LIBS_DIR . "smarty/cache/"); ?>

    • 締切済み
    • PHP
  • プログラムの著作権について

    知人(法人)からプログラムの修正依頼があったのですが、 著作権は知人のものではなく、別の業者に作って もらったもののようです。 プログラムの修正は、数十行程度のごく小さな 修正なのですが、これは著作権違反になります でしょうか? 自分でも少し調べてみたら、古い資料の 著作権法20条2項3号に 「特定の電子計算機においては利用し得ないプログラム の著作物を当該電子計算機において利用しうるように するため、またはプログラムの著作物を電子計算機に おいてより効果的に利用しうるようにするために必要な 改変」と書いてあったのですが、なにぶんシロウトなので これを読んでも、結局いいのかダメなのか明確に 分かりませんでした。どうかお教えください。

  • PHP5(データベースは使わない)で作成したプログラムを配布したいので

    PHP5(データベースは使わない)で作成したプログラムを配布したいのですが、スクリプトのコピー等を防止する方法を教えてください。 例えば、以下うちで出来るものはありますか? 1.ある部分のみ暗号化されていてライセンス認証する仕組み 2.スクリプトの暗号化(難読化ではない) よろしくお願いします。

    • ベストアンサー
    • PHP
  • LGPLライセンスのdllの二次配布について

    LGPLライセンスのdllの二次配布について LGPLライセンスについて質問させていただきます。 Windowsのアプリを作成しています。 プログラム内で、LGPLライセンスのdll(7-zip32.dll)を動的にリンクするのですが このプログラムをインストーラ形式で配布する場合、上記のdllをインストーラに含めて配布しても問題ないでしょうか?  また、ReadMeなどのテキストに特別な記述(LGPLライセンスの○○○.dllを使用している)が必要になりますか? 私のほうで調べてみたところ、以下のように認識しています。間違っていたらご指摘いただけたら幸いです。 A:自分のプログラム(LGPLライセンスのdllを動的にリンク) B:LGPLライセンスのdll ・インストーラにLGPLライセンスのdllを含めて二次配布するのは可能 (商用利用も可能) ・"A"のソースを公開する必要はない、"B"もソースの変更が無ければ公開する必要はない ・ReadMeに"A"のリバース・エンジニア、逆コンパイル禁止の文面を記述できない ・ReadMeに"B"を使用していることの記述が必要? <-- これがよくわかりません。

  • ライセンスについて

    企業向けソフトウェアの開発をしております。 開発は得意なのですが、絵心がないため、アイコンの作成は不得手です。商用目的でフリーで使用できるアイコンを探していたところ、「LGPL(GNU Lesser General Public License)」というライセンス形態をとっているアイコン集がありました。 いろいろと調べてはみたものの、「プログラムのライブラリを組み込むだけなら、ソースコードの開示の必要がない」らしい、ということまではつかめたのですが、アイコンはライブラリをもっていないため、どこまでが「プログラムのライブラリを組み込む」にあたるのか、ちょっとわかりません… 32×32サイズのアイコンが16×16に縮小され表示、または設定された場合は、ソースの改変にあたるのでしょうか? もちろん、『企業向けソフトウェア』の開発のためソースコードの開示はしたくありませんので、開示が必要になるようであれば、使用はあきらめたいと思います。 もし、使用する事になったときには、なにか明記が必要なのでしょうか? よろしくご教授下さい。

  • プログラムの著作権について、教えてください!

    以下の著作権についての記述で、間違ってるのはどれでしょうか?教えてください。 1.著作権法においては、プログラム言語、規約、解放は保護の対象ではない。 2.著作権法は、ソースプログラムの著作物性を保護するものであることから、機械翻訳後のオブジェクトプログラムは保護対象としない。 3.著作者に無断で著作物を改変することを禁ずる同一性保護権の規定は、プログラムの著作物には適用されない場合がある。 4.特設の規定がない限り、法人が作成したプログラムは法人の著作物とされる。 5.請負契約、派遣契約のいずれかにあたっても、外注による著作は、発注者である法人に著作権が成立する。 6.不正複製物と知りつつ取得した複製プログラムを業務上使用することは、著作権の侵害とみなされる。 7.論文、数値などの情報を体系的に構成したデータベースについては、収録された論文などが著作権保護の対象であり、データベースそのものには適用されない。 8.日本ではコンピュータプログラムは、著作権法によって保護されるが、米国では特許権としての登録が必要である。 お願いします。

  • SmartyでMySQLに登録したテンプレートを使用するには?

    現在、Smartyを使用してブログを作成しようとしています。 テンプレートファイル(htmlソース)をMySQLに登録し、 これを呼び出して出力する方法を教えてください。 ※各ユーザーでレイアウトを変更するため Smartyマニュアルの「テンプレートリソース」等を確認しましたが、 なかなかうまく表示されません。 http://smarty.php.net/manual/ja/template.resources.php MySQLに「template」フィールド作成し、ここにHTMLソースを記述しています。 試した方法は 1.display時に「template」フィールドを呼び出し ×変数が呼び出されない 2.custom.tplを作成し、「template」フィールドをecho。そしてdisplay ×変数がそのまま出力 3.「テンプレートリソース」の利用 ×うまく表示されない クラス「SQL」を作成しないといけない? サンプルや他に方法が記載されているサイトがあれば教えてください。

    • 締切済み
    • PHP
  • LGPLを自分のサイトで使う場合です。

    初めて投稿させていただきます。 LGPLライセンスについて、色々検索する言葉を変えたりしてずっとネットで調べていたのですが、全てソフトの開発やLGPLライセンスを含んだプログラムの配布、開発などのことばかりで参ってしまい、こちらを利用させていただきました。 LGPLライセンスのwz_tooltip.jsというバルーンツールチップのライブラリ http://www.walterzorn.com/tooltip/tooltip_e.htm http://f32.aaa.livedoor.jp/~azusa/?t=ajax&p=balloonjs (JavaScript, DHTML Tooltipsの項目のものです) このライブラリを自分のホームページで使いたいのですが、それは可能なのでしょうか? テキストにカーソルをあわせると、それの詳細が出るようにしたいだけです。 特にそのライブラリを使って他のプログラムを作ったり、そういうことはしません。というか、できません。。。 メタタグにjsを呼び出して、サイトのレイアウトで使用したいだけです。 wz_tooltip.jsを普通に使いたいだけなのですが、その関係に関しては全く書かれていなかったので、こちらへ質問させていただきました。 そんなこと聞くなんてアホらしいとか思われるかもしれないですが、自分としては使用できるかどうかが分からないので、是非教えていただきたく思っています。 よろしくお願いします。