۲۹ شهریور ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

OpenTofu ممکن است به ما راه اشتباهی برای فورک کردن را نشان دهد

با مجوز موافق نیستید؟ پروژه را منقطع کنید، اما کد را بلند نکنید و نگویید که همیشه در دسترس عموم بوده است. کد HashiCorp و مجوز را با نسخه OpenTofu مقایسه کنید.

با مجوز موافق نیستید؟ پروژه را منقطع کنید، اما کد را بلند نکنید و نگویید که همیشه در دسترس عموم بوده است. کد HashiCorp و مجوز را با نسخه OpenTofu مقایسه کنید.

بنیان‌گذاران OpenTofu یک مأموریت داشتند. از تغییرات مجوز HashiCorp در آگوست ۲۰۲۳ در زیرساخت محبوب Terraform ناراحت شده است. ابزار -as-code، OpenTofu قرار است به عنوان “جانشین منبع باز MPLv2” باشد. Terraform دارای مجوز،» و همچنین قول می‌دهد که «جامعه محور، بی‌طرف، لایه‌ای و مدولار، و سازگار با عقب‌نشینی خواهد بود».

بسیار امیدوارکننده است، اما انجام آن فوق‌العاده دشوار است. در واقع آنقدر سخت است که OpenTofu ممکن است به طور غیرقانونی از کد HashiCorp استفاده کرده باشد تا سرعت خود را حفظ کند.

دست کم، اجتناب از این نتیجه گیری، بررسی مخازن گیت هاب OpenTofu و مقایسه آنها با HashiCorp دشوار است. به طور خاص، به نظر می‌رسد که OpenTofu کد Terraform مربوط به ویژگی بلوک حذف شده را که برای اولین بار در Terraform V1.7 پیاده‌سازی شده بود، برداشته است، که تحت مجوز نرم‌افزار تجاری (BUSL) چند ماه پس از انتشار فورک OpenTofu منتشر شد. ایجاد شده. گفتن؟ OpenTofu این کد HashiCorp دارای مجوز BUSL را برداشت، سرصفحه ها را حذف کرد و در عوض سعی کرد آن را تحت مجوز عمومی موزیلا (MPL 2.0) مجدداً مجوز دهد.

مردم، منبع باز اینگونه کار نمی کند. شما می‌توانید با انتخاب مجوز صاحب حق نسخه‌برداری مخالف باشید، اما حق ندارید کد شخص دیگری را بگیرید و مجوز او را پاره و جایگزین کنید.

غرور جوانی

OpenTofu در سپتامبر ۲۰۲۳ با سر و صدای زیاد و “تعهدهای رسمی” حمایت از بیش از ۱۴۰ سازمان، از جمله Cloudflare، Harness، Oracle، و GitLab راه اندازی شد. البته، نگهبانان اصلی عمدتاً از رقبای مستقیم HashiCorp (Spacelift، env0) بودند. که کسب و کار خود را بر روی Terraform ساخته بودند و از تغییر مجوز HashiCorp ناراحت بودند. به اندازه کافی منصفانه است.

خودکارسازی CI/CD با GitHub Actions

تا ژانویه، پروژه در دسترس بودن عمومی OpenTofu را تبلیغ می کرد، حتی همانطور که از ویژگی‌هایی که به زودی منتشر می‌شوند، مانند رمزگذاری حالت سمت مشتری که Terraform فاقد آن بود، نام برد. با وجود این، علیرغم شروع خوشبینانه، تیم به زودی به سختی اجرای این ویژگی پی بردند. . امنیت سخته (به هر حال شاید HashiCorp احمق نبود.)

اگر این سرعت توسعه بیش از حد خوب به نظر می رسد که درست باشد، از سوی یک گروه عجولانه از شرکت های نسبتا کوچک (و هیچکدام از فروشندگان بزرگ ابر) که به سرعت جمع شده اند، آمده است، شاید اینطور بوده است. به هر حال، هر چیزی که ممکن است در مورد تغییر مجوز HashiCorp فکر کند، این شرکت یک دهه را صرف ساخت این محصول کرده است. عضله مهندسی پشت چنین تلاشی، صرف نظر از ایده آل های بلندپایه بنیانگذاران، در عرض چند ماه زنده نمی شود.

جادوی مجوز

در Terraform V1.7، HashiCorp یک مورد بزرگ معرفی کرد ویژگی جدید: حذف اتوماسیون بلوک، که به Terraform اجازه می دهد حذف منابع را بهتر مدیریت کند. آن را به عنوان یک رویکرد مبتنی بر پیکربندی برای در نظر بگیرید terraform state rm. با این حال، خود این ویژگی، اگرچه جالب است، اما نکته مهم نیست. زمان آن ویژگی است. نکته مهم این است که این ویژگی در اواخر نوامبر ۲۰۲۳ بعد از اینکه HashiCorp به BUSL تغییر مکان داد، معرفی شد. اگر شخصی بخواهد از عملکرد بلوک حذف شده استفاده کند، نمی‌تواند آن را تحت MPL دریافت کند.

سینوپسیس گزارش می دهد که آسیب پذیری های منبع باز پرخطر در حال افزایش است

در اواخر فوریه، OpenTofu عملکردی مشابه با اتوماسیون بلوک حذف شده HashiCorp منتشر کرد. نه فقط از نظر کاری که انجام می دهد، بلکه از نظر کدی که برای انجام آن نوشته شده است. به این مخازن نگاهی بیندازید و اگر چیزی مشابه را نمی بینید به من بگویید:

قانون کپی رایت پیچیده است. من یک وکیل هستم، اما کار نمی کنم و بنابراین نمی توان آن را وکیل خیلی خوبی در نظر گرفت. شاید مهم باشد که OpenTofu برخی از نظرات را در چند فایل حذف کرده است. شاید این مهم است که به نظر می رسد آنها یک خط را در اینجا یا آنجا تغییر داده اند. شاید بتوان استدلال کرد که OpenTofu در واقع آثاری مشتق از کد دارای مجوز BUSL Terraform ایجاد نکرده است. شاید.

با این حال، وقتی به سربرگ های OpenTofu روی فایل ها نگاه می کنید، چنین استدلالی کمتر متقاعد کننده می شود. هدری که HashiCorp روی فایل‌های بلوک حذف شده خود استفاده کرده است:

// حق نشر (c) HashiCorp, Inc.
// SPDX-License-Identifier: BUSL-1.1

اکنون هدری که OpenTofu استفاده کرده است:

// حق نشر (c) 2023 HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0

مشکل را می بینید؟ OpenTofu تشخیص می دهد که از کد HashiCorp استفاده می کند اما وانمود می کند که کد مورد نظر تحت مجوز MPL است. جز اینکه اینطور نبود همیشه. همه کدهای مورد نظر پس از اینکه HashiCorp برای Terraform به BUSL منتقل شد منتشر شد. در بهترین حالت، جامعه OpenTofu درگیر افکار آرزویی شده است، و به شدت امیدوار است که بتواند به صورت ماسبق کد دارای مجوز BUSL را به شکل جادویی تبدیل به کد دارای مجوز MPL کند. در بدترین حالت، توسعه دهندگان OpenTofu با فریب مالکیت معنوی HashiCorp را تصاحب کردند و سعی کردند آن را متعلق به خود کنند.

هر چه که توسعه دهندگان OpenTofu فکر کنند، این نوع رفتار مخالف یک رویکرد مثبت و “جامعه محور” است و قطعا “ارزش منبع باز” را نشان نمی دهد، همانطور که بیانیه مطبوعاتی بنیاد لینوکس اعلام می کند. به نظر بسیار شبیه نقض مالکیت معنوی HashiCorp است. برای OpenTofu کاملاً منصفانه است که با تغییر مجوز HashiCorp مخالفت کند و پروژه را متوقف کند. دریافت کد HashiCorp و اعمال هر مجوزی که ترجیح می دهند برای OpenTofu یا هر شخص دیگری کاملاً غیرقانونی است.

از جمله موارد دیگر، این مانند یک شکست در حکومت است. هیچ راهی وجود ندارد که Cloudflare، Oracle، و سایر شرکت‌های مسئول برای چنین جامعه‌ای ثبت‌نام کنند، اما به نظر می‌رسد این چیزی است که آنها به دست می‌آورند.