License در پروژه های github (حل شد)
در پروژه های github (مخصوصا پروژه های معروف) همراه با پروژه یه فایل به نام license یا همون لایسنس ( پروانه یا جواز در فارسی) وجود دارد.
در توضیحات پروژه هم همیشه یه سری اطلاعات درباره آن لایسنس میزارند و همچنین به جر یه فایل به نام license.txt در پروژه در تمام فایل های پروژه همون اول یه سری نوشته برای توضیحات نوشته شده است.
نمونه لایسنس لایبری actionbarsherlock :
Copyright 2012 Jake Wharton
Licensed 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.
سوالات من درباره این موضوع :
- این فایل چیست؟
- به چه دردی می خورد و برای چی این فایل در بیشتر پروژه ها موجود میباشد؟
- از کجا میتوان این فایل را دریافت کرد و به پروژه اضافه کرد؟
- پروژه این license را نداشته باشه چی میشه ؟ (ازش سوء استفاده میکنند؟)
این فایل شرایط استفاده از پروژه رو توضیح میده . تو لینکی که همه لایسنس ها دارن این شرایط کامل بیان شده. مثلا ممکنه فقط در صورتی مجاز به استفاده رایگان باشی که محصولت هم رایگان عرضه بشه یا فقط مجاز با استفاده ار library هستی نه سورس و ... داشتن این فایل برای مصرف کننده پروژه مهمه. تو طبق شرایط پروژه اونو تحت یه لایسنس منتشر میکنی .
اینجا هم میتونی لیست لایسنس پروژه های open source رو ببینی.
در مورد سوء استفاده هم که کارایی لایسنس رو گفتم. در حقیقت سطح دسترسی برای developer تعیین میکنی
ببین حامد جان این لایسنس یه تعهد نامه است ، حالا مثلا اگه این تعهدات شما نزدیک به یک لایسنس بین المللی باشه ، می تونی تحت اون لایسنس منتشرش کنی ، ولی اگه بخوای یه تعهدنامه ی ویژه درست کنی ، دیگه باید خودت لایسنس بنویسی ، مثلا بگی کسی حق استفاده از فلان فایل یا کتابخانه رو در پروژه های غیر رایگان نداره ، ولی بقیش رو می تونید در پروژه هایی که قرار هست رایگان منتشر بشه ، به رایگان استفاده کنید ، در صورت استفاده تجاری ، باید هزینه پرداخت کنید و... این میشه لایسنس ، وقتی شما از یه چیزی استفاده می کنید ، یعنی قوانینش رو پذیرفته اید ، مثلا اگه ثبت و انتشار اطلاعات شخصی جزو تعهدات یه برنامه ی ویندوزی باشه ، و شما نصبش کنید و ازش استفاده کنید ، بعدا نمیتونی شکایت کنی ، طرف میگه آقا من اول برنامه با شما اتمام حجت کردم !
معمولا این تعهدات باعث میشه شما خودتون رو از درد سر های احتمالی کنار بکشید !
مثلا آخرین اتفاق بدی که به خاطر دارم ، دستگیری یکی از دوستانم هست ! ، بنده خدا یه آدرس یاب رایگان نوشته بود ، در یک سایت با محتوا ای که شامل مصادیق مجرمانه میشد استفاده شده بود ، کلی واسش درد سر ساز شد و الان هم سابقه دار حساب میشه :|
این در صورتی هست که اگه فقط در لایسنس برنامه میگقت "محتوای سایت به عهده ی استفاده کننده میباشد" احتمالا این مشکلات رو نداشت (حداقل تو خارج اینجوریه ! ، من که نرفتم ولی بقیه میگن D: )
در برنامه نویسی معمولاً تیمی کار میشه مخصوصاً پروژه های Open Source و ما تعداد کثیری مدل License داریم، لینک زیر مقایسه License های OpenSource هست
http://en.wikipedia.org/wiki/Comparison_of_free_and_open-source_software_licenses
این License ها در همه Scope ـی می تونن بکار برن. در سطح فایل، در سطح Package ، در سطح Library ، در سطح Project ، در سطح Website و ... . اما معمولا کسی برای یک فایل License نمی ذاره و بلکه بالاش به نوعی نام نویسندگان اون کد ذکر میشه و بیان میشه که این کد رو چطور در پروژه هاتون Copy/Import کنید. مثلاً شاید یکی بگه این کد رو فقط تو پروژه های تجاری استفاده نکنید که بعید هست باز همچین چیزهایی. پس معمولاً بالای فایل مشخصات نویسنده(گان) اون کد به همراه مشخصات Contact نوشته میشه و عرف هست کسانی که اون فایل رو داخل پروژه استفاده می کنن، دیگه خط های Comment نویسندگان رو پاک نمی کنن تا مشخص بشه نویسنده اصلی کد کیه.
ما با یک شرکت بسیار معروف کار می کردیم و قرار بود کارفرما زمانی کار رو تحویل بگیره که من تأیید کنم. اینها کد رو به دست من بعد از 3 هفته رسوندم و من با تعجب دیدم، رفتن از همه جای اینترنت سورس کپی کردن، چسبوندن به هم و تمامی Comment های نویسنده کد ها رو از توش ور داشتن. بعد بهشون گفتم که این کدها رو کی نوشته، با خونسردی گفتن، خودمون همش رو از صفر نوشتیم. من هم یک پروژه بهشون دادم که توش کپی رایت ها بالای فایلها نوشته شده بود ( پروژه خودشون رو کپی رایت گذاری کردم ) گفتم برید این رو مطالعه کنید. کپی ایراد نداره اما مردونگی داشته باشید.
شما اگر یک کد یک شخص خاص رو کپی کردید، اگر پروژه برای خودتونه و یک نفره روش کار می کنید و می خواید برای خلوتی کد تمیز کنید کامنت ها رو، پاک کنید مشکلی نیست. اما اگر قرار هست به جایی تحویل بدید، خیلی خیلی مهم هست که Comment های نویسنده بالاش باشه. برای شما هم اعتبار بیشتری به همراه میاره.
اگر هم تغییری در کد ها دادید، خیلی راحت اسم خودتون رو کنار اسم نویسنده اضافه کنید. ( البته اگر تغییر به اندازه کافی محسوس بود )
من به شخصه چون برای هیچ شرکتی کار نمی کنم، همیشه این Comment ها رو پاک می کنم چون سورس فقط برای خودم هست.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .