MGroup

اندروید، باز بودن، اجبار و اختیار

Posted on: آوریل 16, 2011

اگر اخبار IT رو دنبال کنین، حتما خبر به تعویق افتادن انتشار سورس کد اندروید 3 رو شنیدین! و بحثهایی که در جامعه پیرامون اینکه اندروید دیگر متن باز نیست…

مطلب جالبی تو سایت osnews.com خوندم، که سوالات و شبهاتی در مورد اندروید و آزاد/متن باز بودنش برای من رفع کرد، خلاصه ای از اون رو براتون میارم.

از نظر مجوز انتشار میشه گفت اندروید از دو قسمت تشکیل شده کرنل لینوکس که تحت GPL v2 منتشر میشه، و بخشهای دیگه ای که تحت Apache v2 منتشر میشن! و مجوز Apache یک BSD Like License هست! پس در اون اصلا اجباری به انتشار سورس نیست!

پس میمونه کرنل لینوکس یا تغییراتی که مخصوص اندروید در کرنل لینوکس داده شده.

اما مجوز GPL هم اجباری نداره به اینکه شما مجبورید سورس کد تغییریافته را در اینترنت و فلان سایت منتشر کنید! و در واقع تنها کسانی که استفاده کننده برنامه هستند، یا بهتر بگیم خریدار برنامه هستند، حق درخواست سورس کد رو از شرکت توزیع کننده دارند.

همینطور مجوز GPL اجباری به انتشار سورس در زمان توسعه هم نداره، و تنها در زمان انتشار نهایی یا عمومی هست که سورس کد باید در دسترس قرار بگیره.

پس اگر کسی سورس کد رو میخواد باید یک دستگاه که روش اندروید 3 هست رو خریداری کنه و بعد در خواست داشتن سورس اون هم فقط سورس کرنل رو بده! چون طبق مجوز آپاچی اجباری برای در اختیار مصرف کننده گذاردن سورس قسمتهای دیگه وجود نداره!

اینطور میشه که اندروید هم متن باز/آزاد هست هم نیست! و میزان باز بودن امروزش فرقی با نسخه های دیروزش نداره.

خوشکل نیست، خوشم نمیاد!

23 پاسخ to "اندروید، باز بودن، اجبار و اختیار"

تنها موردی که از خوندن این مطلب درک کردم این بود که ان۹۰۰ رو خیلی دوست داری و باعث شده از اندروید بدت بیاد یا دنبال دلیل بگردی برای این که بدت بیاد. چیزی که مشخصه اینه که وضع اندروید خیلی خیلی بهتر از meego هست و با توجه به این که هنوز از اندروید ۳ فقط رو تبلت‌ها استفاده شده که اونم تعدادشون خیلی کمه مشکل جدی‌ای نیست. این ماجرا رو با سیمبیان و نوکیا مقایسه کن 🙂

بدم نمیاد!
از این سیستم خوشم نمیاد.
کاری که MeeGo در مقابل میکنه که جالبه برام اینه که تغییراتی که توی کرنل میده رو مستقیم به کرنل بر میگردونه! و فکر کنم میدونی که برگردوندن تغییرات به کد اصلی خیلی فرق داره با صرفا انتشار تغییرات!
بحث من هم صرفا روی مجوزها بود! نه کارایی سیستمها!
حرفت شبیه تایید کردن محصولات اپل (یا حتی شاید ویندوز) در مقابل لینوکس میمونه! بعله از لحاظ
از لحاظ کارایی و غیره ایرادهایی به نوکیا و میگو هم وارد میدونم! (کاری هم به سیمبیان ندارم! من فن نوکیا نیستم! شرمنده، فن هیچکس نیستم)

نمی‌دونم یادت هست یا نه ولی تو نسخه‌ی 2.6.30 (دقیق یادم نیست شاید 28 شایدم 32) گوگل تغییرات خودش رو برای کرنل فرستاد و اتفاقا اضافه هم شد ولی یک نسخه بعد حذفش کردن به دلیل این که تو اون مدت هیچ maintainی روی کد سورت نگرفته بود که به نظرم یه خورده مسخره‌س. یه کدی که درست کار می‌کرده و چیزی هم لازم نبوده بهش اضافه بشه رو به دلیل این که تغییری توش انجام نشده حذف کنن. همین بلا رو سر ماکروسافت و پچی که برای ماشین مجازیش زده بود آوردن.

چیزی که گفتی رو نشنیدم اون زمان!
اما الان که گشتم یه جا پیدا کردم که به همین که گفتی اشاره شده!
صرفا لازم نیست روی یه کد تغییری صورت بگیره تا نیاز به نگهداری داشته باشه! بستگی داره اون پچ کجاها دستکاری کرده باشه! اون تغییر نکرده اما چیز دیگه ای تغییر کرده! فکر کن APIی یه چیزی که این پچ ازش استفاده میکرده، تغییر کنه!
پچ مایکروسافت هم همینطور! قرار نیست شما یه پچ نوشتی تا همیشه کار کنه! اونم روی برنامه ای مثه کرنل با حجم تغییرات بالا.
حتی که اون پچ صرفا چند تا ماژول به سورس اضافه کرده باشه هم باز نیاز به نگهداری خواهد داشت!

قاعدتا به نظر من نمیاد توسعه دهنده های کرنل آدمای اسکولی باشن! یا آدمایی باشن که مثلا سر بغض نسبت به ماکروسافت بیان پچش رو حذف کنن! خوب از اول اعمال نمیکردن! یا اگه همچین موجوداتی بودن کرنل رو GPL3 میکردن!
یکی دو نفر هم که نیستن…

دوود! منظورت این نیست که احتمالا پچ رو روی هر ریلیز apply کنن که! وقتی یه پچی اعمال می‌شه تو سیستم دیگه جزوی از سیستمه و وقتی من یه قسمت دیگه رو تغییر می‌دم باید این تو ذهنم باشه که بقیه‌ی جهای سیستم رو نترکونم. یه چیزی مثل time scheduler که تپ تپ عوض نمی‌شه که بگی خوب با سیستم قبلی فلان جاش نمی‌خونه.

حالا نکته این جاس که یه پچی قبول شده و اومده تو کرنل پس از اونجا به دیگه کد کرنله نه کد گوگل که بگن «نه گوگل تو همکاری نمی‌کنی باید کدات رو حذف کنیم». الان وقتی یکی یه پچی بزنه برای چغک و دیگه نیاد سراغش می‌ندازی بیرون تو نسخه بعدی یا سعی می‌کنی اگه ایرادی داره با نسخه جدید درستش کنی؟

یه نکته در مورد مجوز رو یادم رفت بگم. مجوز آپاچی آزاد بودن خود نرم‌افزار (در اینجا اندروید) رو تضمین می‌کنه اما بسته بودن fork‌ها رو اجازه می‌ده. پس خود گوگل همیشه باید سورس رو منتشر کنه (مگر اینکه مجوز عوض بشه) اما شرکت‌هایی که استفاده می‌کنن می‌تونن تغییر بدن کد رو و تغییرات رو هم منتشر نکنن. پس یه جورایی اون مقاله از پایه مشکل داره که تو متن باز بودن اندروید شک کرده. من فکر می‌کنم این تاخیر تو انشار کد فقط به دلیل مشکل گوگل با اوراکل سر جاوا هست و بس.

منم گفتم که ممکن نیست سر اینکه این پچ رو گوگل یا ماکروسافت داده حذفش کنن!
درسته وقتی اعمال شد بخشی از کرنل حساب میشه! اما هر بخشی از برنامه های بزرگ رو یک نفر نگهداری میکنه!
مثلا الان یه همچین موضوعی برای یه پلاگین چغوک پیش اومده! یکی یه چیزی نوشته و قبول کردیم و اومده! اما جاییه که من چندان استفاده ای ازش نمیکنم! و وقت نگهداری ازش رو هم حتی ندارم، اخیرا باگی در همون مورد گزارش شد که من با یه نگاه اولیه نتونستم بفهمم چرا!؟ پس هیچی باگ افتاده کنار! وکسی نیست که حلش کنه! منم نه حس و حالشو دارم نه وقتشو! ولی خوشبختانه باگ ناجوری نیست، خوب دو تا باگ ناجور دیگه همونجا پیش بیاد احتمال اینکه حذفش کنم هم هست!
تازه اینکه کد چغوک چیز زیادی نداره، اما توی کدهای با حجم بالا این چیز عجیبی نیست!
الان تو پروژه KDE مثلا اگر یک برنامه که خوب هم کار میکنه، نگهدارنده اش بره و دیگه نتونه همکاری کنه، و از توسعه دهنده هاشم کسی نباشه که مسئولیتش رو قبول کنه، به مرور اون برنامه/کتابخانه به لیست unmaintained اضافه میشه و کنار گذاشته میشه، و مثلا زمان svn به پوشه مخصوصی هم منتقل میشد تا یکی پیدا بشه …
از نظر من این برای کرنل هم میتونه پیش بیاد، تا جایی که یادمه حجم کد پچ ماکروسافت کم نبود (در مورد گوگل نمیدونم) و تو نمیتونه انتظار داشته باشی که کدت رو یکی بیاد حتما نگهداری کنه، وقتی هیچکی علاقه ای نداشته باشه بهش!
و علاوه بر این وقتی بحث سر سخت افزار و پشتیبانی از سخت افزارهای عجیب غریب باشه که عمرا! یکی باید بشینه مشخصات اون سخت افزار رو بخوره تا بتونه کد تو رو نگهداری کنه!

دوود خود نرم افزار هم یه فورک از خودش حساب میشه! توی نسخه بعدی!
بعلاوه اینکه اون مقاله در واقع نتیجه گرفته بود که بسته نشده کد اندروید، بلکه هیچ اجباری به انتشار عمومی توی اینترنت نداره گوگل! و اینکه ملت دوره افتادن که کد اندروید رو قراره گوگل ببنده درست نیست!
این نتیجه گیری من بود که هم متن باز هست هم نیست!

کلا با بغض خوندی مطلب رو P:

و با این پیش شرط ذهنی که من میخوام بگم اندروید بده! و اوپن سورس نیست! 😉

هه هه! دوود باید ببینیم بقیه هم مثل من این طوری برداشت می‌کنن که با اندروید مشکل داری یا نه 🙂 ولی نسخه‌ی بعدی یه نرم‌افزار fork حساب نمی‌شه اگه این طوری بود نمی‌تونستن مجوز MonoDevelop رو از GPLv2 به MIT تغییر بدن دلیلش رو هم که خودت بهتر می‌دونی اما برای ثبت در تاریخ: چون مجوز GPLv2 یه copyleft حساب می‌شه ولی MIT نیست

فورک حساب نمیشه! اما برای مجوز عوض کردن میشه!
بحث فورک سر کرنل لینوکس نیست! (که اون مجوزش GPL هست و نمیشه بست!) بحث فورک سر قسمتهاییه که با مجوز Apache منتشر میشن! که میشه تو نسخه بعدی دیگه اوپن سورس نباشن!
فورک چیه؟
سورس یه برنامه رو بگیری، تغییر بدی و دوباره منتشر کنی! حالا تحت همون اسم یا اسم دیگه چه فرق داره!؟

منظورت از ماجرای تغییر مجوز MonoDevelop رو نفهمیدم!

کی‌دی‌ای کاری دیگه حاجی 🙂
اول گفتی:

دوود خود نرم افزار هم یه فورک از خودش حساب میشه! توی نسخه بعدی!

بعدش:

فورک حساب نمیشه! اما برای مجوز عوض کردن میشه!

اون قضیه MonoDevelop رو هم گفتم به خاطر چیزی که اول گفتی که بدونی نسخه بعدی fork حساب نمی‌شه که اگه fork حساب بشه نمی‌تونی یه نرم‌افزار با مجوز GPL رو به MIT تبدیل کرد تو fork

همین دیگه! منظور من فورک برای مجوز بود! اونجا هم دفعه دوم با تاکید گفتم که برای مجوز عوض کردن فرقی نمیکنه! همون میشه! یعنی مثه فورک میشه!

خوب معلومه دود! GPL رو در هیچ حالت نمیتونی به MIT تبدیل کنی! چون سازگار نیستن! نه که چون نسخه بعدی فورک حساب بشه یا نشه!

وقتی میگم با بغض مینویسی! یعنی همین که با دقت نمیخونی،‌یه چیزی میبینی سریع دکمه پاسخ رو میزنی که جواب بدی P:

بعلاوه اینکه اینجا بحث من تبدیل از مجوز Apache به مجوز بسته است!
ولی تو بحثت سر تبدیل از GPL به MIT هست!

که اولی مجازه و دومی در هیچ حالتی مجاز نیست! یعنی کدی که تحت GPL هست رو نمیتونی به هیچ شکلی غیر GPL Compatible منتشر کنی!

برادر compatible بودن به معنی قابل تغییر بودن مجوز نیست به معنی اینه که می‌شه به هم link کردشون. مثلا همین MIT با GPL کامپتیبله اما نمی‌شه مجوز رو تغییر داد. پس اینجا ۲نکته هست.
۱: MIT و GPL با هم compatible هستن (ویکی رو چک کن یا سایت fsf رو)
۲: بعدم دوود! بحث سر خود نرم‌افزار نیست سر استفاده‌ی ثانویه‌س. همین که الان HTC می‌تونه تغییر بده کد رو ولی منتشر نکنه تغییرات رو. پس اگه اندروید اوپن‌سورس / آزاد باشه الزامن اونی که رو گوشی استفاده می‌کنیم همون اوپن‌سورسه نیست. اینو همون اول هم خودم گفتم. اما قبول نمی‌کنم که اندروید از پایه بخواد close بشه

خوب دوود! منم که نگفتم از پایه close شده!
گفتم که نشده: «میزان باز بودن امروزش فرقی با نسخه های دیروزش نداره.»
بحث GPL و MIT هم قبول! اما اصلا این موضوع بحث نبود! پیچوندی بحث رو D:

اما اون که گفتم هم هست هم نیست، منظورم آزادی‌ای هست که استالمن و کمپ گنو میگن، اما گویا کلمات اشتباه استفاده کردم، گفتم متن‌باز.

اگه بخوام جواب کی‌دی‌ای کاری دیگه رو هم بدم:
همین دیگه، گنوم کاری دوود! نمیتونی سه چهارتا موضوع رو در کنار هم درک کنی قاطی میکنی همه چی رو، برا همینه که برنامه‌هایی که برات میسازن یکی دو تا کانفیگ بیشتر نداره 😉

مهرداد بهتر نیست خط آخر پست رو ویرایش کنی و به جای متن باز بنویسی آزاد؟ البته پاک نکن strike through کن.

راس میگی مهدی 🙂 مرسی! ( نمدونستم میشه ویرایش کرد D: )

البته امروز به نظرم opennessی که گوگل ادعا کرده هم زیر سواله!
چه برسه به open source و آزادی

ببینم مگه فرقی هم می‌کنه که اوپن‌سورس باشه یا نه؟ چون گوگل در هر دو حال به ما کاربران ایرانی جواب نمی‌ده. مگر اینکه از یک واسطه‌ای چیزی تو خارج بگیریم، که در هر حال رو اعصابه دیگه.
حس می‌کنم که حتی پروژه‌های متن‌باز رو هم داریم می‌دزدیم و به‌زور گیر میاریم.

راستی اون آزادی‌ای که استالمن / کمپ گنو مد نظرشونه، آیا توش تحریم کشورها هم هست؟
یا در اون آزادی ما دیگه «حق» (تاکید می‌کنم حق) داریم که به محصولی که با اون مجوز نوشته شده دسترسی داشته باشیم؟

نه! چیزی از تحریم و اینا وجود نداره!
و در واقع سازنده مسئولیتی نداره که به دست همه ملت دنیا برسونه!

بیان دیدگاه


توجه: برای رفع مشکلات لینوکسی خود به یکی از انجمنهای اینترنتی مراجعه کنید! اینجا به هیچ وجه برای رفع مشکلات لینوکسی شما مناسب نیست!
تبادل لینک نداریم! لطفا سوال نفرمایید ما به هرکس بخوایم لینک می‌دیم، هرکس هم خواست به اینجا لینک بده! :)

Kategories

بایگانی

وضعیت بلاگ

  • 120٬649 بازدید

مجوز انتشار:

تمامی مطالب و مقالات این بلاگ تحت مجوز GNU FDL قرار دارند. بنابراین کپی و ایجاد تغییر در آنها مطابق شرایط این مجوز آزاد می‌باشد.