اندروید، باز بودن، اجبار و اختیار
Posted آوریل 16, 2011
on:- In: لینوکس | اخبار
- 23 Comments
اگر اخبار IT رو دنبال کنین، حتما خبر به تعویق افتادن انتشار سورس کد اندروید 3 رو شنیدین! و بحثهایی که در جامعه پیرامون اینکه اندروید دیگر متن باز نیست…
مطلب جالبی تو سایت osnews.com خوندم، که سوالات و شبهاتی در مورد اندروید و آزاد/متن باز بودنش برای من رفع کرد، خلاصه ای از اون رو براتون میارم.
از نظر مجوز انتشار میشه گفت اندروید از دو قسمت تشکیل شده کرنل لینوکس که تحت GPL v2 منتشر میشه، و بخشهای دیگه ای که تحت Apache v2 منتشر میشن! و مجوز Apache یک BSD Like License هست! پس در اون اصلا اجباری به انتشار سورس نیست!
پس میمونه کرنل لینوکس یا تغییراتی که مخصوص اندروید در کرنل لینوکس داده شده.
اما مجوز GPL هم اجباری نداره به اینکه شما مجبورید سورس کد تغییریافته را در اینترنت و فلان سایت منتشر کنید! و در واقع تنها کسانی که استفاده کننده برنامه هستند، یا بهتر بگیم خریدار برنامه هستند، حق درخواست سورس کد رو از شرکت توزیع کننده دارند.
همینطور مجوز GPL اجباری به انتشار سورس در زمان توسعه هم نداره، و تنها در زمان انتشار نهایی یا عمومی هست که سورس کد باید در دسترس قرار بگیره.
پس اگر کسی سورس کد رو میخواد باید یک دستگاه که روش اندروید 3 هست رو خریداری کنه و بعد در خواست داشتن سورس اون هم فقط سورس کرنل رو بده! چون طبق مجوز آپاچی اجباری برای در اختیار مصرف کننده گذاردن سورس قسمتهای دیگه وجود نداره!
اینطور میشه که اندروید هم متن باز/آزاد هست هم نیست! و میزان باز بودن امروزش فرقی با نسخه های دیروزش نداره.
خوشکل نیست، خوشم نمیاد!
23 پاسخ to "اندروید، باز بودن، اجبار و اختیار"
کیدیای کاری دیگه حاجی 🙂
اول گفتی:
دوود خود نرم افزار هم یه فورک از خودش حساب میشه! توی نسخه بعدی!
بعدش:
فورک حساب نمیشه! اما برای مجوز عوض کردن میشه!
اون قضیه MonoDevelop رو هم گفتم به خاطر چیزی که اول گفتی که بدونی نسخه بعدی fork حساب نمیشه که اگه fork حساب بشه نمیتونی یه نرمافزار با مجوز GPL رو به MIT تبدیل کرد تو fork
مهرداد بهتر نیست خط آخر پست رو ویرایش کنی و به جای متن باز بنویسی آزاد؟ البته پاک نکن strike through کن.
ببینم مگه فرقی هم میکنه که اوپنسورس باشه یا نه؟ چون گوگل در هر دو حال به ما کاربران ایرانی جواب نمیده. مگر اینکه از یک واسطهای چیزی تو خارج بگیریم، که در هر حال رو اعصابه دیگه.
حس میکنم که حتی پروژههای متنباز رو هم داریم میدزدیم و بهزور گیر میاریم.
راستی اون آزادیای که استالمن / کمپ گنو مد نظرشونه، آیا توش تحریم کشورها هم هست؟
یا در اون آزادی ما دیگه «حق» (تاکید میکنم حق) داریم که به محصولی که با اون مجوز نوشته شده دسترسی داشته باشیم؟
1 | بهروز
آوریل 16, 2011 در 1:31 ب.ظ.
تنها موردی که از خوندن این مطلب درک کردم این بود که ان۹۰۰ رو خیلی دوست داری و باعث شده از اندروید بدت بیاد یا دنبال دلیل بگردی برای این که بدت بیاد. چیزی که مشخصه اینه که وضع اندروید خیلی خیلی بهتر از meego هست و با توجه به این که هنوز از اندروید ۳ فقط رو تبلتها استفاده شده که اونم تعدادشون خیلی کمه مشکل جدیای نیست. این ماجرا رو با سیمبیان و نوکیا مقایسه کن 🙂
Mehrdad
آوریل 16, 2011 در 2:07 ب.ظ.
بدم نمیاد!
از این سیستم خوشم نمیاد.
کاری که MeeGo در مقابل میکنه که جالبه برام اینه که تغییراتی که توی کرنل میده رو مستقیم به کرنل بر میگردونه! و فکر کنم میدونی که برگردوندن تغییرات به کد اصلی خیلی فرق داره با صرفا انتشار تغییرات!
بحث من هم صرفا روی مجوزها بود! نه کارایی سیستمها!
حرفت شبیه تایید کردن محصولات اپل (یا حتی شاید ویندوز) در مقابل لینوکس میمونه! بعله از لحاظ
از لحاظ کارایی و غیره ایرادهایی به نوکیا و میگو هم وارد میدونم! (کاری هم به سیمبیان ندارم! من فن نوکیا نیستم! شرمنده، فن هیچکس نیستم)
بهروز
آوریل 16, 2011 در 2:17 ب.ظ.
نمیدونم یادت هست یا نه ولی تو نسخهی 2.6.30 (دقیق یادم نیست شاید 28 شایدم 32) گوگل تغییرات خودش رو برای کرنل فرستاد و اتفاقا اضافه هم شد ولی یک نسخه بعد حذفش کردن به دلیل این که تو اون مدت هیچ maintainی روی کد سورت نگرفته بود که به نظرم یه خورده مسخرهس. یه کدی که درست کار میکرده و چیزی هم لازم نبوده بهش اضافه بشه رو به دلیل این که تغییری توش انجام نشده حذف کنن. همین بلا رو سر ماکروسافت و پچی که برای ماشین مجازیش زده بود آوردن.
Mehrdad
آوریل 16, 2011 در 2:34 ب.ظ.
چیزی که گفتی رو نشنیدم اون زمان!
اما الان که گشتم یه جا پیدا کردم که به همین که گفتی اشاره شده!
صرفا لازم نیست روی یه کد تغییری صورت بگیره تا نیاز به نگهداری داشته باشه! بستگی داره اون پچ کجاها دستکاری کرده باشه! اون تغییر نکرده اما چیز دیگه ای تغییر کرده! فکر کن APIی یه چیزی که این پچ ازش استفاده میکرده، تغییر کنه!
پچ مایکروسافت هم همینطور! قرار نیست شما یه پچ نوشتی تا همیشه کار کنه! اونم روی برنامه ای مثه کرنل با حجم تغییرات بالا.
حتی که اون پچ صرفا چند تا ماژول به سورس اضافه کرده باشه هم باز نیاز به نگهداری خواهد داشت!
Mehrdad
آوریل 16, 2011 در 2:36 ب.ظ.
قاعدتا به نظر من نمیاد توسعه دهنده های کرنل آدمای اسکولی باشن! یا آدمایی باشن که مثلا سر بغض نسبت به ماکروسافت بیان پچش رو حذف کنن! خوب از اول اعمال نمیکردن! یا اگه همچین موجوداتی بودن کرنل رو GPL3 میکردن!
یکی دو نفر هم که نیستن…
بهروز
آوریل 16, 2011 در 4:32 ب.ظ.
دوود! منظورت این نیست که احتمالا پچ رو روی هر ریلیز apply کنن که! وقتی یه پچی اعمال میشه تو سیستم دیگه جزوی از سیستمه و وقتی من یه قسمت دیگه رو تغییر میدم باید این تو ذهنم باشه که بقیهی جهای سیستم رو نترکونم. یه چیزی مثل time scheduler که تپ تپ عوض نمیشه که بگی خوب با سیستم قبلی فلان جاش نمیخونه.
حالا نکته این جاس که یه پچی قبول شده و اومده تو کرنل پس از اونجا به دیگه کد کرنله نه کد گوگل که بگن «نه گوگل تو همکاری نمیکنی باید کدات رو حذف کنیم». الان وقتی یکی یه پچی بزنه برای چغک و دیگه نیاد سراغش میندازی بیرون تو نسخه بعدی یا سعی میکنی اگه ایرادی داره با نسخه جدید درستش کنی؟
بهروز
آوریل 16, 2011 در 4:47 ب.ظ.
یه نکته در مورد مجوز رو یادم رفت بگم. مجوز آپاچی آزاد بودن خود نرمافزار (در اینجا اندروید) رو تضمین میکنه اما بسته بودن forkها رو اجازه میده. پس خود گوگل همیشه باید سورس رو منتشر کنه (مگر اینکه مجوز عوض بشه) اما شرکتهایی که استفاده میکنن میتونن تغییر بدن کد رو و تغییرات رو هم منتشر نکنن. پس یه جورایی اون مقاله از پایه مشکل داره که تو متن باز بودن اندروید شک کرده. من فکر میکنم این تاخیر تو انشار کد فقط به دلیل مشکل گوگل با اوراکل سر جاوا هست و بس.
Mehrdad
آوریل 16, 2011 در 4:54 ب.ظ.
منم گفتم که ممکن نیست سر اینکه این پچ رو گوگل یا ماکروسافت داده حذفش کنن!
درسته وقتی اعمال شد بخشی از کرنل حساب میشه! اما هر بخشی از برنامه های بزرگ رو یک نفر نگهداری میکنه!
مثلا الان یه همچین موضوعی برای یه پلاگین چغوک پیش اومده! یکی یه چیزی نوشته و قبول کردیم و اومده! اما جاییه که من چندان استفاده ای ازش نمیکنم! و وقت نگهداری ازش رو هم حتی ندارم، اخیرا باگی در همون مورد گزارش شد که من با یه نگاه اولیه نتونستم بفهمم چرا!؟ پس هیچی باگ افتاده کنار! وکسی نیست که حلش کنه! منم نه حس و حالشو دارم نه وقتشو! ولی خوشبختانه باگ ناجوری نیست، خوب دو تا باگ ناجور دیگه همونجا پیش بیاد احتمال اینکه حذفش کنم هم هست!
تازه اینکه کد چغوک چیز زیادی نداره، اما توی کدهای با حجم بالا این چیز عجیبی نیست!
الان تو پروژه KDE مثلا اگر یک برنامه که خوب هم کار میکنه، نگهدارنده اش بره و دیگه نتونه همکاری کنه، و از توسعه دهنده هاشم کسی نباشه که مسئولیتش رو قبول کنه، به مرور اون برنامه/کتابخانه به لیست unmaintained اضافه میشه و کنار گذاشته میشه، و مثلا زمان svn به پوشه مخصوصی هم منتقل میشد تا یکی پیدا بشه …
از نظر من این برای کرنل هم میتونه پیش بیاد، تا جایی که یادمه حجم کد پچ ماکروسافت کم نبود (در مورد گوگل نمیدونم) و تو نمیتونه انتظار داشته باشی که کدت رو یکی بیاد حتما نگهداری کنه، وقتی هیچکی علاقه ای نداشته باشه بهش!
و علاوه بر این وقتی بحث سر سخت افزار و پشتیبانی از سخت افزارهای عجیب غریب باشه که عمرا! یکی باید بشینه مشخصات اون سخت افزار رو بخوره تا بتونه کد تو رو نگهداری کنه!
Mehrdad
آوریل 16, 2011 در 4:58 ب.ظ.
دوود خود نرم افزار هم یه فورک از خودش حساب میشه! توی نسخه بعدی!
بعلاوه اینکه اون مقاله در واقع نتیجه گرفته بود که بسته نشده کد اندروید، بلکه هیچ اجباری به انتشار عمومی توی اینترنت نداره گوگل! و اینکه ملت دوره افتادن که کد اندروید رو قراره گوگل ببنده درست نیست!
این نتیجه گیری من بود که هم متن باز هست هم نیست!
کلا با بغض خوندی مطلب رو P:
Mehrdad
آوریل 16, 2011 در 4:59 ب.ظ.
و با این پیش شرط ذهنی که من میخوام بگم اندروید بده! و اوپن سورس نیست! 😉
بهروز
آوریل 16, 2011 در 5:10 ب.ظ.
هه هه! دوود باید ببینیم بقیه هم مثل من این طوری برداشت میکنن که با اندروید مشکل داری یا نه 🙂 ولی نسخهی بعدی یه نرمافزار fork حساب نمیشه اگه این طوری بود نمیتونستن مجوز MonoDevelop رو از GPLv2 به MIT تغییر بدن دلیلش رو هم که خودت بهتر میدونی اما برای ثبت در تاریخ: چون مجوز GPLv2 یه copyleft حساب میشه ولی MIT نیست
Mehrdad
آوریل 16, 2011 در 6:14 ب.ظ.
فورک حساب نمیشه! اما برای مجوز عوض کردن میشه!
بحث فورک سر کرنل لینوکس نیست! (که اون مجوزش GPL هست و نمیشه بست!) بحث فورک سر قسمتهاییه که با مجوز Apache منتشر میشن! که میشه تو نسخه بعدی دیگه اوپن سورس نباشن!
فورک چیه؟
سورس یه برنامه رو بگیری، تغییر بدی و دوباره منتشر کنی! حالا تحت همون اسم یا اسم دیگه چه فرق داره!؟
منظورت از ماجرای تغییر مجوز MonoDevelop رو نفهمیدم!