در اینجا تعریف کاملی از نرم افزار آزاد ارائه می گردد تا بطور واضح نشان داده شود چه موارد در مورد یک نرم افزار خاص باید صدق کند تا به عنوان نرم افزار آزاد تلقی شود.
نرمافزار آزاد موضوع آزادی است، نه قیمت. برای درک بهتر باید به معنای "free" در"free speech" فکر کنید، نه در "free gift"، نرمافزار آزاد در مورد آزادی کاربران برای اجرا، کپی، توزیع، بررسی، تغییر و بهبود دادن نرمافزار میباشد. بطور دقیقتر نرمافزار آزاد به چهار نوع آزادی برای کاربران یک نرمافزار اشاره میکند:
در صورتی برنامهای یک نرمافزار آزاد به شمار میآید که کاربران آن همهی این آزادیها را داشته باشند. بنابراین شما باید برای توزیع مجدد کپیهایی از آن، خواه با اصلاحات و تغییرات و خواه بدون آن، خواه رایگان و خواه در ازاء دریافت وجهی، برای هر شخصی و در هر جایی آزاد باشید. آزاد بودن برای انجام این کارها به این معنی است که شما مجبور به درخواست و پرداخت هزینه برای مجوز نیستید.
شما همچنین باید این آزادی را داشته باشید تا در برنامه تغییراتی ایجاد کنید و حتی بدون اشاره به وجود آنها، از آنها بطور خصوصی و برای کار خود استفاده کنید. اگر هم تغییرات خود را منتشر کردید، نباید ملزم به اعلام آن به شخص خاص و یا به روش خاصی باشید.
آزادی برای استفاده از برنامه به معنای آزادی هر شخص و یا سازمانی برای استفاده از آن برنامه بر روی هر سیستم کامپیوتری، برای هر کاری، و بدون نیاز به هر گونه ارتباط بعدی با توسعهدهنده و یا هر نهاد خاصی میباشد.
آزادی برای توزیع مجدد کپیهایی از برنامه باید علاوه بر کد منبع، شامل شکل باینری و اجرایی برنامه و برای هر دو نسخهی تغییر یافته و تغییر نیافته نیز باشد. (توزیع برنامهها در شکل اجرایی برای سیستمعاملهای آزادی که به راحتی نصب میشوند ضروری است.) اگر هیچ روشی برای تولید شکل باینری و اجرایی برای برنامهی بخصوصی وجود نداشته باشد، مشکلی نیست. اما شما باید این آزادی را داشته باشید تا اگر روشی برای ارائهی شکل باینری و اجرایی برنامه پیدا کردید، آن برنامه را مجددا به این دو شکل توزیع کنید.
به منظور داشتن آزادی برای تغییر دادن، و انتشار نسخههای بهبود یافته، شما باید به کدهای منبع برنامه دسترسی داشته باشید. بنابراین دسترسی به کد منبع یک شرط ضروری برای نرمافزار آزاد میباشد .برای عملی و اجرا شدن این آزادیها٬ آنها باید تا وقتی که شما هیچ کاری بر خلاف این آزادیها انجام ندادهاید٬ غیر قابل فسخ و قطعی بمانند.
بنابراین شما ممکن است پولی پرداخت کرده باشید تا کپیهایی از نرمافزار آزاد را بدست آورده باشید و یا ممکن است کپیها را بدون پرداخت هزینه بدست آورده باشید. اما صرفنظر از اینکه چگونه کپیها را بدست آورده باشید، شما همیشه این آزادی را دارید تا نرمافزار را کپی کنید، تغییر دهید و یا حتی کپیهایی از آن را بفروشید. نرمافزار آزاد به معنای غیر تجاری نیست. یک برنامهی آزاد باید برای استفادهی تجاری، توسعهی تجاری، و توزیع تجاری در دسترس باشد. توسعهی تجاری نرمافزار آزاد دیگر غیر معمول نیست، بلکه چنین نرمافزارهای آزاد تجاری بسیار مهم هستند
نرمافزار آزاد موضوع آزادی است، نه قیمت. برای درک بهتر باید به معنای "free" در"free speech" فکر کنید، نه در "free gift"، نرمافزار آزاد در مورد آزادی کاربران برای اجرا، کپی، توزیع، بررسی، تغییر و بهبود دادن نرمافزار میباشد. بطور دقیقتر نرمافزار آزاد به چهار نوع آزادی برای کاربران یک نرمافزار اشاره میکند:
- آزادی برای اجرای برنامه برای هر منظوری (آزادی ۰)
- آزادی برای مطالعه و بررسی چگونگی عملکرد برنامه و تغییر آن برای نیاز خود (آزادی ۱). دسترسی به کد منبع یک پیششرط برای این آزادی میباشد.
- آزادی برای توزیع مجدد کپیهایی از آن، بنابراین شما میتوانید به اطرافیان خود کمک کنید (آزادی ۲).
- آزادی برای بهبود برنامه و انتشار این تغییرات برای عموم، بنابراین تمام جامعه از آن بهره میبرند (آزادی ۳). دسترسی به کد منبع یک پیششرط برای این آزادی میباشد.
در صورتی برنامهای یک نرمافزار آزاد به شمار میآید که کاربران آن همهی این آزادیها را داشته باشند. بنابراین شما باید برای توزیع مجدد کپیهایی از آن، خواه با اصلاحات و تغییرات و خواه بدون آن، خواه رایگان و خواه در ازاء دریافت وجهی، برای هر شخصی و در هر جایی آزاد باشید. آزاد بودن برای انجام این کارها به این معنی است که شما مجبور به درخواست و پرداخت هزینه برای مجوز نیستید.
شما همچنین باید این آزادی را داشته باشید تا در برنامه تغییراتی ایجاد کنید و حتی بدون اشاره به وجود آنها، از آنها بطور خصوصی و برای کار خود استفاده کنید. اگر هم تغییرات خود را منتشر کردید، نباید ملزم به اعلام آن به شخص خاص و یا به روش خاصی باشید.
آزادی برای استفاده از برنامه به معنای آزادی هر شخص و یا سازمانی برای استفاده از آن برنامه بر روی هر سیستم کامپیوتری، برای هر کاری، و بدون نیاز به هر گونه ارتباط بعدی با توسعهدهنده و یا هر نهاد خاصی میباشد.
آزادی برای توزیع مجدد کپیهایی از برنامه باید علاوه بر کد منبع، شامل شکل باینری و اجرایی برنامه و برای هر دو نسخهی تغییر یافته و تغییر نیافته نیز باشد. (توزیع برنامهها در شکل اجرایی برای سیستمعاملهای آزادی که به راحتی نصب میشوند ضروری است.) اگر هیچ روشی برای تولید شکل باینری و اجرایی برای برنامهی بخصوصی وجود نداشته باشد، مشکلی نیست. اما شما باید این آزادی را داشته باشید تا اگر روشی برای ارائهی شکل باینری و اجرایی برنامه پیدا کردید، آن برنامه را مجددا به این دو شکل توزیع کنید.
به منظور داشتن آزادی برای تغییر دادن، و انتشار نسخههای بهبود یافته، شما باید به کدهای منبع برنامه دسترسی داشته باشید. بنابراین دسترسی به کد منبع یک شرط ضروری برای نرمافزار آزاد میباشد .برای عملی و اجرا شدن این آزادیها٬ آنها باید تا وقتی که شما هیچ کاری بر خلاف این آزادیها انجام ندادهاید٬ غیر قابل فسخ و قطعی بمانند.
بنابراین شما ممکن است پولی پرداخت کرده باشید تا کپیهایی از نرمافزار آزاد را بدست آورده باشید و یا ممکن است کپیها را بدون پرداخت هزینه بدست آورده باشید. اما صرفنظر از اینکه چگونه کپیها را بدست آورده باشید، شما همیشه این آزادی را دارید تا نرمافزار را کپی کنید، تغییر دهید و یا حتی کپیهایی از آن را بفروشید. نرمافزار آزاد به معنای غیر تجاری نیست. یک برنامهی آزاد باید برای استفادهی تجاری، توسعهی تجاری، و توزیع تجاری در دسترس باشد. توسعهی تجاری نرمافزار آزاد دیگر غیر معمول نیست، بلکه چنین نرمافزارهای آزاد تجاری بسیار مهم هستند