Tuesday, June 05, 2007

খোলা পাতা, খোলা কোড - ওপেন সোর্সের দুনিয়া (২)

প্রশ্নত্তোর

গুরুচণ্ডা৯ নয়ে লেখাটার প্রথম পর্বের পর কিছু প্রশ্ন উঠেছিলো৷ যতটা মনে আছে, সেই অনুযায়ী প্রশ্নগুলো অধিকাংশ ওপেন সোর্সের সাপোর্ট নিয়ে৷ এই পর্বের লেখা শুরু করার আগে প্রশ্নগুলোর উত্তর দেওয়ার চেষ্টা করি৷

() রিলায়েবিলিটি - ওপেন সোর্স সফটওয়্যারের কোন সমস্যা হলে GNU-এর মতন সংস্থা থেকে সাপোর্ট পাওয়া যায় কি?

ছোট উত্তর - না৷ অবশ্যই কমার্শিয়াল প্রোডাক্টের মতন টেকনিক্যাল হেল্পলাইন বা কলসেন্টার পাবেন না৷ কিন্তু মনে রাখতে হবে ওপেন সোর্স একটা কমিউনিটির মতন৷ প্রতিটা প্রোডাক্টের অসংখ্য ইউজার আছেন, এবং তাঁদের নিয়েই প্রতিটি প্রোডাক্টের নিজস্ব কমিউনিটি তৈরী৷ এবং camaraderie ব্যাপারটা এর মধ্যে প্রবল৷ প্রতিটি প্রোডাক্টের নিজস্ব mailing list আছে, এবং সেখানে সমস্যার কথা লিখলে কেউ না কেউ ঠিকই সাহায্য করেন৷ এমনও হতে পারে, ওখানে কিছু পোস্ট করার আগেই উত্তর পেয়ে যাবেন - পুরনো পোস্টে, কারণ আপনার আগেও হয়তো কেউ একই সমস্যায় পড়েছেন, এবং সমাধানটা পোস্ট করেছেন৷ এই দেওয়া-নেওয়ার পদ্ধতি মেনেই ওপেন-সোর্স এগোয়৷

তবে ধরে নেওয়া হয় যে আপনি একদম লে-ম্যান নন - সমস্যা পোস্ট করার আগে একটু অন্তত: ফোরাম বা মেইলিং লিস্টটা খুঁজে দেখবেন৷

() সকলে যদি ওপেন সোর্স সফটওয়্যারে কন্ট্রিবিউট করেন তাহলে ভার্সন মেইন্টেনেন্স হবে কি করে?

অ্যাসোসিয়েশন ফর কম্পিউটিং মেশিনারীতে প্রকাশিত একটি পেপার থেকে তুলে দিচ্ছি - "The Open Source software maintenance process framework structure is guidelined by the ISO/IEC maintenance process and it is result of the evaluation of the Mozilla and Apache case studies...The maintenance plans should be developed and updated. The plans can be informal, as a road map of the project. They should be updated during the projects' lifecycle."

Apache বা Mozilla-র মতন সমস্ত প্রোজেক্টেই ডিফেক্ট ম্যানেজমেন্ট সিস্টেম আছে ডিফেক্ট লগ করার জন্যে৷ এক্সটেনশন জমা দেওয়ার ব্যবস্থাও আছে৷

পেপারটার নাম Open source software maintenance process framework

কেন সফটওয়্যারের মালিক থাকা উচিত নয়

রিচার্ড স্টলম্যান ফ্রী সফটওয়্যার ফিলোজফি সম্পর্কে বলেন "you should think of 'free' as in 'free speech', not as in 'free ice cream'" - ফিলোজফিটা ভালো করে বুঝতে গেলে পড়তে হবে স্টলম্যানেরই "Why Software Should Not Have Owners" প্রবন্ধটা৷ নব্বইয়ের দশকে লেখা এই প্রবন্ধে স্টলম্যান দেখান বড় সফটওয়্যার নির্মাতাদের তরফে কি ধরণের যুক্তি সাজানো হয় সফটওয়্যারকে প্রোপ্রাইটারি করে রাখার পক্ষে৷ সফটওয়্যার পাবলিশারস অ্যাসোসিয়েশনের নেওয়া চারটে পদক্ষেপ লক্ষ্য করুন -
  • কোন বন্ধু বা সহকর্মীকে সাহায্য করার জন্যে সফটওয়্যার নির্মাতার শর্ত ভাঙা অমার্জনীয় অপরাধ - এই মর্মে ব্যাপক প্রচার
  • সহকর্মীদের ওপর প্রায় গুপ্তচরবৃত্তি করতে বলা
  • পুলিশের সাহায্য নিয়ে অফিস এবং শিক্ষাপ্রতিষ্ঠানে তল্লাশি, যেখানে সেই প্রতিষ্ঠানের সাথে যুক্ত মানুষদের প্রমাণ করতে হয় যে তাঁরা অবৈধভাবে সফটওয়্যার কপি করার কাজে লিপ্ত নন
  • SPA-র অনুরোধেই মার্কিন যুক্তরাষ্ট্রের MIT-র David LaMacchia-র মতন নাগরিকদের বিরুদ্ধে সরকারী ব্যবস্থা নেওয়া - সফটওয়্যার কপি করার অপরাধে নয়, শুধুমাত্র কপি করার যন্ত্র অরক্ষিত অবস্থায় রাখার জন্য
স্টলম্যান লেখেন যে এগুলো মনে করায় প্রাক্তন সোভিয়েত ইউনিয়নকে - যেখানে প্রতিলিপি বন্ধ করার জন্যে সমস্ত কপিং মেশিনের সামনে সশস্ত্র রক্ষী রাখার ব্যবস্থা ছিলো৷ গোপনে তথ্য কপি করার জন্যে ব্যবহার করা হত samizdat৷ সোভিয়েত ইউনিয়নে এর পিছনে রাজনৈতিক কারণ ছিলো, কিন্তু আমেরিকায় সফটওয়্যারের ক্ষেত্রে কারণটা শুধুমাত্র মুনাফা - বড় ফারাক এখানেই৷ স্টলম্যান বলেন "it is the actions that affect us, not the motive. Any attempt to block the sharing of information, no matter why, leads to the same methods and the same harshness."

স্টলম্যান প্রশ্ন করেন সমাজ কি চায়?
  • তথ্য, এমনভাবে যাতে প্রতিটি নাগরিক সেটা সত্যি সত্যিই পেতে পারেন - যেমন এমন কম্পিউটার প্রোগ্রাম যেটা মানুষে পড়তে পারে, দরকারে ঠিক করতে পারে, বদলাতে পারে, যার উন্নতি করতে পারে - শুধুমাত্র রোবটের মতন তাকে চালানো নয়৷ সাধারণত: সফটওয়্যার নির্মাতাদের কাছ থেকে আমরা যা পাই সেটা একটা ব্ল্যাক বক্সের বেশি কিছু নয় - তার মধ্যে কি হচ্ছে, কি চলছে - সেসব জানার কোন উপায় আমাদের হাতে নেই৷ এবং সফটওয়্যার মনোপলির সমর্থকেরা সেটাই চান - কারণ এতেই তাঁদের মুনাফা - "জানার কোন শেষ নাই, জানার চেষ্টা বৃথা তাই"...
  • স্বাধীনতা - সফটওয়্যারের মালিক থাকলে ব্যবহারকারী হিসেবে আপনি আপনার জীবনের একটা অংশের ওপর থেকে নিয়ন্ত্রন হারাচ্ছেন - যতই ছোট হোক না কেন সেই অংশটুকু৷
  • সহযোগ - সমাজ চায় সমস্ত মানুষের মধ্যে স্বেচ্ছায় তৈরী হওয়া একটা সহযোগিতার পরিবেশ - camaraderie৷ বন্ধু বা সহকর্মীকে সাহায্য করাকে piracy-র তকমা দিয়ে মনোপলির প্রচারকেরা সামাজিক মূল্যবোধকে ছোট করতে চান৷
এইখান থেকেই ফ্রী সফটওয়্যার ফাউন্ডেশনের মটোটা উঠে আসে - "free software is a matter of freedom, not price" - ফ্রী আইসক্রীম নয়, ফ্রী স্পীচ৷

"As a computer user today, you may find yourself using a proprietary program. If your friend asks to make a copy, it would be wrong to refuse. Cooperation is more important than copyright. But underground, closet cooperation does not make for a good society. A person should aspire to live an upright life openly with pride, and this means saying “No” to proprietary software.

You deserve to be able to cooperate openly and freely with other people who use software. You deserve to be able to learn how the software works, and to teach your students with it. You deserve to be able to hire your favorite programmer to fix it when it breaks.

You deserve free software.
"

কপিলেফট - কি এবং কেন

GNU প্রোজেক্ট থেকেই জন্ম নেয় কপিলেফটের চিন্তা - a general method for making a program or other work free, and requiring all modified and extended versions of the program to be free as well. [What is Copyleft]

কোন কম্পিউটার প্রোগ্রামকে ফ্রী সফটওয়্যার বানানোর সবচেয়ে সহজ উপায় হল বিনা-কপিরাইটে সেটিকে বিতরণ করা৷ এক্ষেত্রে কেউ চাইলে এই প্রোগ্রামের মধ্যে বদল করতে পারেন, কোন উন্নতি করতে পারেন - এবং চাইলে সেই পরিবর্তিত বা উন্নত প্রোগ্রামটিকে শেয়ারও করতে পারেন৷ কিন্তু, কেউ চাইলে ফ্রী প্রোগ্রামটিকে প্রোপ্রাইটারি সফটওয়্যারও বানিয়ে ফেলতে পারেন৷

GNU প্রোজেক্টের লক্ষ্য হল সকলকেই GNU সফটওয়্যার পরিবর্তন করার এবং রিডিস্ট্রিবিউট করার সুবিধা দেওয়া৷ কেউ যাতে GNU সফটওয়্যারকে প্রোপ্রাইটারি না বানিয়ে ফেলেন, সেই উদ্দেশ্যে তৈরী "কপিলেফট" - পরিবর্তিত বা অপরিবর্তিত - যাই হোক না কেন, সফটওয়্যারটি রিডিস্ট্রিবিউট করতে গেলে তার সঙ্গে সেটিকে আরো বদলানো বা কপি করার স্বাধীনতাটাও দিতে হবে৷

একটা সফটওয়্যারকে কি করে কপিলেফট করা হয়? প্রথমে সেটাকে "কপিরাইটেড" বলে ঘোষনা করা হয়, তারপর তাতে আরো কিছু আইনী শর্ত (distribution terms) রাখা হয় - যে শর্তগুলো সকলকেই এই সফটওয়্যার ব্যবহার করার, এর মধ্যে বদল করার, একে বা এই সফটওয়্যার থেকে তৈরী অন্য কোন সফটওয়্যার রিডিস্ট্রিবিউট করার অধিকার দেয়, এই শর্তে যে অরিজিনাল distribution terms গুলো অপরিবর্তিত থাকবে৷ সফটওয়্যারের কোড এবং ব্যবহারের স্বাধীনতা তখন অবিচ্ছেদ্য হয়ে দাঁড়ায়৷

প্রোপ্রাইটারি সফটওয়্যারের সাথে তফাত্টা এখানেই - প্রোপ্রাইটারি সফটওয়্যারের ক্ষেত্রে কপিরাইট ব্যবহার করা হয় সফটওয়্যার ব্যবহারকারীর স্বাধীনতা কেড়ে নিতে; GNU প্রোজেক্টে কপিরাইট ব্যবহৃত হয় ব্যবহারকারীর স্বাধীনতার গ্যারান্টী দিতে৷ তাই নামটা উল্টে দেওয়া হয় - "কপিরাইট" হয়ে যায় "কপিলেফট"৷

বিভিন্ন ধরণের লাইসেন্সের ব্যবহার আছে কপিলেফটের ক্ষেত্রে, যেমন -

GNU General Public License (GPL)
GNU Lesser General Public License (LGPL)
GNU Free Documentation License (FDL)

এই লাইসেন্সগুলোর ব্যবহারও অত্যন্ত সহজ - লাইসেন্সের মধ্যে কোন পরিবর্তনের প্রয়োজন নেই, শুধুমাত্র সফটওয়্যার প্যাকেজের মধ্যে লাইসেন্সের একটা কপি আর প্রতিটা সোর্স ফাইলের (যার মধ্যে প্রোগ্রাম লেখা) মধ্যে এই লাইসেন্সের কথা বলে একটা নোটিশ - এটুকুই আপনার তৈরী সফটওয়্যারকে কপিলেফটের আওতায় আনবে৷ ও হ্যাঁ, এর সাথে প্রয়োজন "ইচ্ছে" - তথ্যের আদানপ্রদানের ইচ্ছে, সহযোগীতার ইচ্ছে, স্বাধীনতার ইচ্ছে - সেগুলোই আপনাকে বলে দেবে আপনি ওপেন-সোর্স বা ফ্রী সফটওয়্যার আন্দোলনের সাথী কিনা৷

(মূল লেখা, এবং কিছু তর্ক-বিতর্ক)




No comments: