متنباز بودن نرمافزار به چه معنی است؟ تا آنجا که من میدانم هر نرمافزاری میتواند متنباز هم باشد. مثلاً یک نرمافزار پولی یا مجانی یا آزاد یا غیر آزاد میتواند متنباز هم باشد یا نباشد. دلیل این که همراه بیشتر نرمافزارهای پولی سورس آنها هم ارائه نمیشود آن است که سورس برنامهها بسیار گرانقیمتتر از خود نرمافزارها هستند. مثلا ویندوز ایکسپی فرضاً ۱۰۰ دلار است ولی سورس کد آن ۱۰ میلیون دلار است.
اما نرمافزار آزاد به نرمافزاری گفته میشود که کاربر آن میتواند هر طور که دلش خواست آن را تغییر داده و حتی مجدداً منتشر کند. دقت کنید که در کشورهای غربی قوانین سختگیرانهای در رعایت اجازهنامهی نرمافزار وجود دارد. مثلاً اگر در اجازهنامهی ویندوز ایکسپی نوشته شده باشد که شما اجازه ندارید با آن آهنگ گوش کنید یعنی واقعاً اجازهی انجام این کار ندارید و انجام آن به معنی جرم است. تا آنجا که من میدانم آزاد بودن یک نرمافزار به معنی متنباز بودن آن نیست. یعنی نرمافزار میتواند آزاد باشد ولی سورس آن در دسترس نباشد.
آزاد بودن نرمافزار اصلاً ربطی به پول ندارد. یعنی نرمافزار میتواند آزاد باشد ولی پولی هم باشد. مثلاً شرکت موزیلا میتواند فایرفاکس را در حین این که نرمافزاری آزادی هم هست، آن را به فروش هم برساند. حتی شرکتهایی غیر از موزیلا، مثلاً مایکروسافت یا شهرداری تهران هم میتوانند فایرفاکس را بفروشند بدون که کار خلاف قانونی انجام داده باشند.
اما در مورد تغییرات قضیه یک کم فرق میکند. اگر شما یا هر کس دیگری در چیزی مثل فایرفاکس یا وردپرس یا جوملا یا هر چیز دیگری تغییری دادید و خواستید آن را دوباره منتشر کنید باید طبق اجازهنامهی آن رفتار کنید. مثلاً اگر اجازهنامهی آن GPL است باید نسخه تغییر یافتهی آن مجدداً تحت اجازهنامهی GPL بوده و سورس تغییر یافتهی آن به طور عمومی در دسترس باشد. بیشتر اجازهنامهها شما را مجبور میکنند علاوه بر این که نسخهی تغییر و سورس آن منتشر کنید، شما را مجبور میکنند نسخهی مجوز قبلی، پدیدآورندگان، تغییر دهندگان قبلی و… را همراه با تغییرات جدید ارائه دهید. این به این معنی است که اگر وردپرس تحت یکی از این جور اجازهنامهها مثل GPL باشد و شما آن را تغییر داده و مجدداً منتشر کردید، علاوه بر این باید سورس تغییر یافته را در دسترس عموم قرار داده و ضمناً اجازه ندارید مشخصات پدیدآورندگان قبلی را پاک کرده یا تغییر دهید.
در مورد کامپوننتها و کتابخانههای نرمافزار یک سری قواعد خاصی هست که از یک اجازهنامه به اجازهنامهی دیگر تفاوت میکند. مثلاً اگر آن کامپوننت تحت اجازهنامهی GPL بود آن وقت نرمافزاری که از آن کتابخانه استفاده میکند هم باید تحت اجازهنامهی GPL بوده و سورس آن به رایگان در دسترس عموم قرار بگیرد. این داستان در مورد کامپوننتهایی که تحت اجازهی LGPL باشند صادق نیست. یعنی میتوانید از چنین کامپوننتهایی در نرمافزارتان استفاده و مجوز آن را همچنان به صورت تجاری نگه دارید. به طور کلی در مورد هر کامپوننتی باید به متن اجازهنامهی آن مراجعه کنید.
روش رایج پول در آوردن از نرمافزارهای آزاد، پشتیبانی فنی و خدمات مشاوره است. مثلاً نرمافزار OTRS خودش آزاد، متنباز و مجانی است و هر کسی هر کار که دلش خواست میتواند با آن بکند. اما شرکت حامی آن خدمات hosting آن را به صورت پولی ارائه میکند، خدمات نصب و مشاوره و خدمات پشتیبانی آن را هم به صورت پولی ارائه میکند و پول خوبی از این راه به دست میآورد. البته راههای زیادی برای پول درآوردن از نرمافزارهای آزاد هست که بستگی به شرایط دارد.
فراموش نشود که هیچ کدام از این قوانین در داخل ایران اهمیتی ندارد و فقط اگر خواستید کارتان را به طور جدی در خارج از کشور هم استفاده کرده یا منتشر کنید باید آنها را دانسته و رعایت کنید.
جهت اطلاع بیشتر:
کپیلفت (Copyleft) چیست؟
برنامههای من برای مهاجرت به FOSS
ضمناً فکر میکنم سایتها و انجمنهای فارسیزبان زیادی باشند که روی این موضوعات کار میکنند.
Comments
این که گفتید «نرمافزار میتواند آزاد باشد ولی سورس آن در دسترس نباشد.» درست نیست. نرمافزاری که کدش در دسترس نیست شرایط کامل آزادی نرمافزار رو محقق نمیکنه و آزاد محسوب نمیشه. هر نرمافزار بازمتنی آزاد نیست ولی نرمافزار آزاد بازمتن هست.
سلام
بسیار ممنون از پاسختون در قالب نوشته
کمک بسیاری به من کردید
راستی تا جایی هم که من تحقیق کردم وقتی نرم افزاری آزاد است حتما باید متن باز باشد ولی نرم افزاری می تواند متن باز بوده ، ولی آزاد نباشد.
در مورد پولی بودن نرم افزار های آزاد و متن باز هم نظرات شما کمک خیلی زیادی به من کرد ولی به نظرم این مسئله مربوط به نوع پروانه نرم افزار میشه.باز هم ممنون به خاطر این پست ارزشمند
خدانگهدار
@حمید رضا:
راستش من در مورد اون موضوع خیلی مطمئن نیستم و ممکن است همین طور باشد که شما میگویید.
@Afshar Mohebbi:
میشه با ویکیپدیا چک کرد:
http://en.wikipedia.org/wiki/The_Free_Software_Definition#The_definition
طبق تعریف بنیاد نرمافزارهای آزاد، نرمافزار آزاد چهار شرط داره که دوتاش نیازمند در دسترس بودن متن برنامهست: اول) آزادی اجرای برنامه بدون محدودیت در هدف از اجرا؛ دوم) آزادی در مطالعهی نحوهی پیادهسازی برنامه؛ سوم) آزادی در انتشار و کپی برنامه؛ چهارم) آزادی در تغییر، بهینهسازی و انتشار تغییرات
که موارد دوم و چهارم نیاز به کد برنامه داره، منطقاً و خارج از تعریف بنیاد نرمافزارهای آزاد، آزادی نرمافزار بدون در دسترس بودن کدش و امکان تغییرش محقق نمیشه.
@حمیدرضا: ممنون