ডগএম এবং এইআর এর উত্তর একটি ন্যায্য পয়েন্ট তোলে। স্ট্যাটিক ব্যতিক্রম সহ এমপিএলভি 2 এবং এলজিপিএলভি 3 কপিলেফ্টটিকে ট্রিগার করতে পারে এমন ইভেন্টগুলির ক্ষেত্রে একই। তবে আমি মনে করি আমরা এলজিপিএল এবং এমপিএলের মধ্যে আরও একটি গুরুত্বপূর্ণ পার্থক্য মিস করছি। যখন কপিলিফ্ট ট্রিগার করা হয় তখন কপিলিফ্টটি প্রযোজ্য:
- এমপিএলের জন্য: আপনার মূল লাইব্রেরির একেবারে ঠিক একই ফাইলগুলিতে
- এলজিপিএলের জন্য: "লাইব্রেরি ব্যবহার করে এমন কাজ" এর বিপরীতে "লাইব্রেরির উপর ভিত্তি করে কাজ করা"। সুতরাং এলজিপিএল তার কপিলিফ্টটিকে নতুন ফাইলগুলিতে প্রসারিত করতে পারে।
এজ-কেস: এমপিএল ব্যবহার করে ব্যবহারকারীরা তাদের উন্নতিগুলি ভাগ না করতে সক্ষম করে
এমপিএল হ'ল ফাইল-স্তরের কপাইলফিট লাইসেন্স। এর অর্থ হ'ল কেউ যদি এটিকে কোনও বৃহত প্রকল্পে (স্থিতিশীলভাবে বা গতিশীলভাবে) এম্বেড করে আপনার ফাইলে পরিবর্তন করে থাকে তবে তাকে কেবলমাত্র এই নির্দিষ্ট ফাইলে করা পরিবর্তনটি প্রকাশ করতে হবে।
আপনি যদি নিজের কোড বেসের অখণ্ডতাটি উন্মুক্ত রাখার বিষয়ে উদ্বিগ্ন হন তবে এমন প্রান্তের কেস রয়েছে যাতে এমপিএলের এই কপিলফিট প্রভাবটি পর্যাপ্ত নাও হতে পারে।
উদাহরণস্বরূপ, কেউ আপনার প্রকল্পের মূল ফাইলগুলির মধ্যে একটি নিতে পারে, "আমার_প্রাইভেট_নিউ_ফাইল আমদানি করুন " যোগ করতে পারে এবং উদাহরণস্বরূপ "মাই_প্রাইভেট_নেউ_ফাইলে.নেউআউইউইজএফ.ফায়ার.আরুন ()" যুক্ত করে আপনার মূল পদ্ধতিটি পরিবর্তন করতে পারে ।
এবং এইভাবে তিনি কেবলমাত্র পরিবর্তিত মূল ফাইলটি প্রকাশ করার সময় এবং "my_private_new_file" এ নতুন বৈশিষ্ট্যটির বদ্ধ উত্সের আসল যুক্তি রাখার সময় আপনার প্রকল্পে নতুন বৈশিষ্ট্য যুক্ত করতে পারেন ।
সম্প্রদায়ের কাছে মূল ফাইলটি থাকা মাত্র আপনাকে তথ্য দেয় যে "ওহে আপনি একটি নতুন বৈশিষ্ট্য যুক্ত করেছেন" তবে এটি আপনাকে এই নতুন বৈশিষ্ট্যটি খোলার সাথে অন্তর্ভুক্ত করতে সক্ষম করে না ... নতুন বৈশিষ্ট্যটি যদি কাছাকাছি থাকে তবে তা বিরক্তিকর হতে পারে আপনার গ্রন্থাগারটি সমাধান করার চেষ্টা করছে এমন সমস্যার সাথে সম্পর্কিত।
স্পষ্টতই, এটি একটি প্রান্তের কেস এবং এটি করার সম্ভাবনা খুব কমই আছে কেউ এটি করতে চায় তবে এমপিএলভি 2 ব্যবহার করার সময় আপনাকে অবশ্যই সচেতন হওয়া উচিত।
এলজিপিএলকে এ জাতীয় আচরণ নিষেধ করার জন্য লেখা হয়েছিল। দেখুন:
আমি মূল এলজিপিএল লাইসেন্সটি উদ্ধৃত করেছি:
"লাইব্রেরির উপর ভিত্তি করে কাজ" এবং "লাইব্রেরি ব্যবহার করে এমন একটি কাজের" মধ্যে পার্থক্যের প্রতি গভীর মনোযোগ দিন। পূর্ববর্তীটিতে লাইব্রেরি থেকে প্রাপ্ত কোড রয়েছে, তবে পরবর্তীটি চালানোর জন্য লাইব্রেরির সাথে একত্রিত করতে হবে।
কপিলিফ্টটি কেবল "লাইব্রেরির উপর ভিত্তি করে কাজ" এ প্রয়োগ হয়। এখন অনুশীলনে "লাইব্রেরির উপর ভিত্তি করে কাজ" কী? এটি ব্যাখ্যার স্থান ছেড়ে যায়। এটি কেবল একটি দুর্দান্ত জিনিস নয় কারণ এর অর্থ আপনার লাইসেন্স মেনে চলা আরও জটিল এবং তাই ভীতিজনক হয়ে ওঠে। এটি কিছু লোককে কেবল আপনার গ্রন্থাগারটি ব্যবহার না করে পরিচালিত করতে পারে।
এই অর্থে, এলজিপিএল এমপিএল এর চেয়ে বেশি সীমাবদ্ধ তবে প্রকল্পের অখণ্ডতার চেয়েও বেশি সুরক্ষিত।
মালিকানাধীন বিশ্বের ব্যবহারকারীদের পক্ষে এমপিএল আপনার লাইব্রেরিটি ঠিক করতে এবং এটি ব্যবহার করা সহজ করে তোলে, তবুও ঠিকঠাকটি ভাগ করে নেওয়া উচিত
এমপিএলটির জন্য একটি সুবিধা হ'ল কোনও ব্যবহারকারী যদি আপনার লাইব্রেরিতে কোনও বাগ খুঁজে পান, তবে তিনি তার সমস্ত কোড না দিয়ে কেবল ফিক্স সরবরাহ না করে সরাসরি ফাইলটিতে এটি ঠিক করতে পারেন। ব্যবহারিকভাবে বলতে গেলে কোনও ক্লায়েন্টকে তার কাজ বিতরণ করার সময়, তিনি ঠিক আপনার প্রকল্পের কাঁটাচামড়ার একটি লিঙ্ক সরবরাহ করতে পারেন, এবং তিনি ভাল।
এলজিপিএল ব্যবহার করে জিনিসগুলি আরও জটিল হয়। যদি কেউ আপনার প্রকল্পটি কাঁটাচামচ করে, একটি বাগ সংশোধন করে এবং তার মালিকানাধীন সফ্টওয়্যারটিতে এটি স্থিতিশীলভাবে এম্বেড করে তবে তাকে অবশ্যই তার ব্যবহারকারীদের এলজিপিএল এর অধীনে "লাইব্রেরির উপর ভিত্তি করে কাজ" বিতরণ করতে হবে। যা একটি বরং অস্পষ্ট ধারণা, বিশেষত যখন লাইব্রেরিটি স্থিতিশীলভাবে এম্বেড করা থাকে ... এই প্রসঙ্গে, আমি মনে করি মূল এলজিপিএলটিতে "স্থিতিশীল" ব্যতিক্রম বলে কিছু নেই কেন এটিই মূল কারণ ছিল। এটি "লাইব্রেরির উপর ভিত্তি করে কাজ" কে তুচ্ছ হিসাবে সনাক্ত করে: এটি আপনার গৌণ সফ্টওয়্যারটিতে ডায়নামিক লাইব্রেরি call
ফলস্বরূপ, এমপিএল মালিকানা বিক্রেতাদের পক্ষে এলজিপিএলের চেয়ে আপনার লাইব্রেরিতে ফিক্স ব্যবহার এবং প্রেরণ করা আকর্ষণীয়ভাবে সহজ করে তোলে।
একই সময়ে, বেশিরভাগ সময় মালিকানাধারী বিক্রেতাদের কাছে আপনার জটিল লাইব্রেরিতে ডুব দেওয়ার মতো সংস্থান নেই এবং সময়ও নেই এবং সম্ভবত তারা নিজেরাই এটি ঠিক করবেন না। তারা বরং আপনার গিটহাব রেপোতে একটি সমস্যা খুলবে, বা মেলিং তালিকায় একটি ইমেল প্রেরণ করবে এবং আপনার সমাধানের জন্য অপেক্ষা করবে।
এই শ্রদ্ধায়, এলজিপিএল আরও এই ধরণের আচরণ প্রয়োগ করে। তবে বাস্তবায়নের কি দরকার?
উপসংহার
এলজিপিএল এবং এমপিএলের মধ্যে নির্বাচন করা একটি জটিল প্রশ্ন এবং যথারীতি সফ্টওয়্যার লাইসেন্স সহ, আপনার লক্ষ্যের উপর নির্ভর করে। উভয় লাইসেন্সই একই রকম তবে একই সাথে অত্যন্ত পৃথক। এগুলি খুব ভিন্ন লক্ষ্য এবং দর্শনের জন্য ডিজাইন করা হয়েছিল।
মালিকানা বিশ্বে ফ্রি সফটওয়্যার গ্রন্থাগারগুলির বিস্তৃত ব্যবহার সক্ষম করার জন্য ফ্রি সফটওয়্যার ফাউন্ডেশন দ্বারা এলজিপিএল তৈরি করা হয়েছিল তবে ফ্রি সফটওয়্যার প্রচার এবং মালিকানাধীন সফ্টওয়্যারগুলির বিরুদ্ধে লড়াইয়ের ধারণাকে সর্বদা মাথায় রেখে। এটি তাদের আদর্শের প্রতি কৌশলটির সমস্ত অংশ। দেখুন:
https://www.gnu.org/license/why-not-lgpl.html
MPL মোজিলা দ্বারা ডিজাইন জোরদার করা বাস্তবসম্মত লাইসেন্স কিছু , শেয়ার-আলাইক মূল লাইব্রেরিতে এর এখনও মালিকানা সফটওয়্যার করতে এবং অ্যাড-অন উপরে, যা অভ্যাস (মোজিলা নিজেই সহ) মানুষের উত্সাহিত যে মাধ্যমে এফএসএফ কর্তৃপক্ষ সেখানে এলজিপিএল কিন্তু এখনও ক্ষতিকারক বলে মনে করে।
সংক্ষেপে, এমপিএলভি 2 কে অনেকে অনুমতিমূলক লাইসেন্স হিসাবে বিবেচনা করেন, যখন স্থির ব্যতিক্রম সহ এলজিপিএলভি 3 সম্ভবত এইভাবে বলা হয়।
সম্পাদনা
আমি গুরুত্বপূর্ণ কিছু উল্লেখ করতে ভুলে গেছি। LGPLv3 (স্থির ব্যতিক্রম সহ বা ছাড়া) টিভোয়েজেশন নিষিদ্ধ করে । আপনি এটি একটি "বিশদ" মনে করতে পারেন তবে এটি আসলে আপনার লক্ষ্যের উপর নির্ভর করে না। আপনি ব্যবহারকারীদের স্বাধীনতা সম্পর্কে যত্নশীল? তারপরে এটি বিশদ নয়। আপনার লাইব্রেরি অ্যাপলের ডিভাইসে ব্যবহার করা যেতে পারে সে বিষয়ে আপনি কি খেয়াল করেন? ভিএলসি ব্যবহারের বিষয়ে আরও যত্নশীল, তাই তারা এলজিপিএলভি 2 ব্যবহার করার সিদ্ধান্ত নিয়েছে যার মধ্যে এই জাতীয় বিধিনিষেধ নেই। একইভাবে, লিনাক্স জিপিএলভি 2 ব্যবহার করা চালিয়ে যাওয়ার অন্যতম কারণ । এমপিএলভি 2-তে কোনও দ্বি-রূপিক নিষেধাজ্ঞাও নেই, স্পষ্টতই এটি এফএসএফ মতাদর্শ নয়, আরও বেশি "ব্যবহারিক" ওপেন সোর্স দর্শন নিয়ে মজাদার একটি লাইসেন্স is
এর মতো অন্যান্য "নাবালক" জিনিস থাকতে পারে যা আমি মিস করেছি।