S signa11 در lwn.net

پایان خط برای پکیج Chromium در گنتو؛ وقتی نگهداری مرورگرها به کابوس تبدیل می‌شود

۳ دقیقه مطالعه ۸۱ امتیاز ۸۱ نظر ۲۴ مهر ۱۴۰۵

پایان خط برای پکیج Chromium در گنتو؛ وقتی نگهداری مرورگرها به کابوس تبدیل می‌شود — Last rites for Gentoo's Chromium package

خلاصه

توسعه‌دهندگان توزیع گنتو (Gentoo) به دلیل حجم بالای آسیب‌پذیری‌ها، سیستم ساخت پیچیده و مشکلات ابزارهای گوگل، تصمیم به حذف پکیج Chromium گرفتند. این رویداد چالش‌های نگهداری نرم‌افزارهای بزرگ از منابع (Source-based) را برجسته می‌کند.

توزیع گنتو (Gentoo Linux) یکی از قدیمی‌ترین و محبوب‌ترین سیستم‌عامل‌ها برای توسعه‌دهندگانی است که دوست دارند همه‌چیز را از صفر و به کمک ابزار مدیریت بسته Portage و دستور emerge از کد منبع کامپایل کنند. این رویکرد به کاربران اجازه می‌دهد تا با استفاده از USE flagها، پیکربندی‌ها و کتابخانه‌های پیوندی را به دلخواه خود تغییر دهند. اما حالا سام جيمز (Sam James)، یکی از نگهدارندگان پکیج Chromium در گنتو، رسماً آیین خاک‌سپاری یا همان «last rites» را برای این مرورگر اجرا کرده است که به معنای حذف قریب‌الوقوع آن از مخزن اصلی است.

چرا نگهداری Chromium در گنتو به بن‌بست رسید؟

مرورگر Chromium که پروژه منبع‌باز پشت گوگل کروم است، به دلایل زیر یکی از سنگین‌ترین چالش‌ها برای بسته‌بندی در توزیع‌های لینوکسی محسوب می‌شود:

  • سیستم ساخت بسیار پیچیده: این پروژه دارای ده‌ها هزار مرحله ساخت است و فرآیند کامپایل آن روی قدرتمندترین سخت‌افزارها هم ساعت‌ها زمان می‌برد.
  • وابستگی‌های پیچیده و ناپایدار: افزوده شدن زبان‌های Go و Rust به پشته فنی Chromium و استفاده توسعه‌دهندگان بالادستی (Upstream) از ویژگی‌های تجربی Rust، مشکلات زیادی را ایجاد کرده است.
  • مشکلات بسته‌های منبع (Unbundling): گنتو ترجیح می‌دهد از کتابخانه‌های مشترک سیستم استفاده کند، اما توسعه‌دهندگان Chromium کدهای زیادی را به صورت باندل شده ارائه می‌دهند و ابزارهای تست بالادستی چندان قابل اتکا نیستند.

فشار کاربران برای به‌روزرسانی سریع بسته به دلیل کشف صدها آسیب‌پذیری امنیتی (CVE) در هفته، در کنار کمبود نیروی داوطلب، نگهداری این پکیج را طاقت‌فرسا کرده بود. وقتی کاربران ناراضی از قدیمی بودن نسخه پکیج گلایه کردند و از طرف دیگر کمترین کمکی برای رفع باگ‌ها یا ارائه پچ‌های معتبر ارائه ندادند، تیم نگهدارنده تصمیم گرفت به جای فرسودگی شغلی مداوم (Burnout)، کاملاً از این پروژه دست بکشد.

نگاه جامعه برنامه‌نویسان در هکر نیوز

بحث‌های شکل گرفته در Hacker News ابعاد جالبی از این ماجرا را روشن کرد:

  • بسیاری از کاربران به پیچیدگی جنون‌آمیز کامپایل مرورگرهای مدرن اشاره کردند. برای مثال، فایرفاکس و کرومیوم به دلیل حجم عظیم کد و وابستگی به نسخه‌های خاصی از کتابخانه‌هایی مانند ICU، فرآیند کامپایل را به یک زنجیره وابستگی دردناک تبدیل می‌کنند.
  • برخی کاربران با کنایه اشاره کردند که خود سیستم‌عامل ChromeOS در واقع بر پایه گنتو ساخته شده است، اما تیم گوگل منابع مهندسی عظیمی برای آن دارد در حالی که گنتو متکی به چند توسعه‌دهنده داوطلب است.
  • بحث مفصلی درباره معضل همیشگی «کتابخانه‌های مشترک (Shared) در برابر کتابخانه‌های باندل شده» شکل گرفت؛ استفاده از کتابخانه‌های مشترک در گنتو می‌تواند کل سیستم را با تغییرات ABI خراب کند و باندل کردن آن‌ها نیز زمان کامپایل را به شکل سرسام‌آوری افزایش می‌دهد.

چرا این موضوع برای مهندسان نرم‌افزار اهمیت دارد؟

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

این مطلب به‌صورت کاملاً خودکار و با هوش مصنوعی از مقالهٔ اصلی و بحث هکرنیوز تهیه شده و ممکن است خطا داشته باشد. حقوق مطلب اصلی متعلق به نویسندهٔ آن است. قوانین و گزارش مشکل

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